Você está na página 1de 5

JOURNAL OF COMPUTING, VOLUME 2, ISSUE 8, AUGUST 2010, ISSN 2151-9617

HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 38

Component Driven Approach to Overcome


The Challenges in Software Development
Process
Rupinder Kaur, Jyotsna Sengupta

Abstract—In software process models, focus is on the activities directly related to development of software, such as
requirement analysis, design, coding and testing. As the software process models play a vital role in software development, it
really forms the core of the software product. Various software process models are proposed till now but the high failure rate in
software development has shown the need of new approach. This paper will present a new approach of software process
model, which deals with the various issues like changing requirements, quality, cost and time. This approach also helps in
managing each phase more efficiently.

Index Terms— Component driven development approach, development process model, stage model, process model.

——————————  ——————————

1 INTRODUCTION

T O solve actual problems in an industry setting, a


software engineer or a team of engineers must incor-
porate a development strategy that encompasses the
proach is totally unlike CBSD (Component Based Soft-
ware Development) which is based on pre-built, stan-
dardize software components. The new approach pro-
process, methods, and tools layers. This strategy is often vides the ground for new software development life cycle
referred to as a process model. Process models specifies a model, which while implementing proven engineering
general process, usually as a set of stages in which a techniques. This will limit all the software development
project should be divided, the order in which the stages risks to a component only, and provide the firmer control
should be executed and any other constraints and condi- over software development process.
tion on execution of stages. Several process models exist The remainder of the paper is organized as follows: Sec-
to streamline the development process, which provides tion II discuss existing models and techniques, Section III
the framework to aid the software development. Software presents new software process model, which will handle
product quality results from a combination of factors in- dynamic requirements efficiently and has controller to
volving not only the product being developed but also listing the details of components which are added due to
the process that develops that product [14]. As Jaccheri requirement changes or because of new requirements. In
observe, software processes are highly complex activities Section IV we conclude and put forward the future work
that affect critical factors such as final product quality, directions.
time and costs, so process control is essential [12]. Soft-
ware engineering is seen as a fixed, standardized discip-
2 BACKGROUND WORK
line that evolves slowly, and a view which is often reflect-
ed in the repetitious or redundant character of recent There are various different methods and techniques used
software engineering methods. to direct the life cycle of a software development project.
One technique to improve the effectiveness of software The most influencing and initial process model was Wa-
engineering would be to ensure that it dynamically terfall Model. It follows the linear sequence to software
adapts to change. Tracking and monitoring change would development that begins at the system level and
then become essential components of software engineer- progresses through analysis, design, coding, testing, and
ing. An adaptive response to dynamic requirements that support. The Waterfall Model was widely used because it
adjusts according to changing environments can lead to a formalized certain elementary process control require-
better solution, which is lacking in present software ments. But it was not without problems, shortcomings of
process models. This leads us to introduce the new soft- the Waterfall Model included its lack of risk assessment,
ware process model, which is based on dynamic design fixed requirement, slow or unresponsive structure, and its
specification and development and scope for dynamic inadequacy for object orientation. Later the German de-
testing during software development process. This ap- fense organization introduced a modified version of the
Waterfall in 1992 called the V-Shaped Model. This model
————————————————
included validation and verification processes by asso-
 F.A. Rupinder is pursuing PhD in Computer Science, Department of ciating testing activities with the analysis and design
Computer Science, Punjabi University Patiala.
 S.B. Jyotsna Sengupta is working with the Department of Computer phases [5]. This model had higher chance of success over
Science, Punjabi University Patiala. the Waterfall Model due to the development of the test
© 2010 Journal of Computing Press, NY, USA, ISSN 2151-9617
http://sites.google.com/site/journalofcomputing/
JOURNAL OF COMPUTING, VOLUME 2, ISSUE 8, AUGUST 2010, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 39
plan but was very inflexible like Waterfall Model. Then, component-based development model leads to software
demand for new method of developing system leads to reuse, and reusability provides software engineers with a
iterative development, in which project was divided into number of measurable benefits. The unified software de-
small parts. Prototyping Model helps to understand un- velopment process is representative of a number of com-
certain requirements but leads to false expectations and ponent-based development models that have been pro-
poorly designed system. A popular variation of the Proto- posed. Using a combination of iterative and incremental
typing Model is called Rapid Application Development development, the unified process defines the function of
(RAD). This model introduces firm time limits on each the system by applying a scenario-based approach [7].The
development phase and relies heavily on rapid applica- concentration is on object oriented development.
tion tools which allow for quick development [9]. Explo- The literature has shown that engineers, researchers and
ratory model use the prototyping as a technique for ga- practitioners are still using the traditional process models
thering requirements and was very simple in its construc- or combination of best features of different process mod-
tion but is limited with high level language for rapid de- els. But to manage the concern and challenges of modern
velopment. Lichter observed that prototyping reflects an world, no approach or model for effective software de-
evolutionary view of software development [6]. It is close- velopment is explicitly defined.
ly related to incremental development except that, in pro-
totyping, the development phase turn-around time is re-
3 FUSION PROCESS MODEL
duced by the quick development of a primitive version of
the product. Fusion process model is based on component driven de-
A number of Process Models evolved from the Iterative velopment approach, where each component implements
enhancement (evolutionary) approach. They are characte- a problem solving model. It includes the explicit
rized in a manner that enables software engineers to de- processes for technically analyzing the problem, solution
velop increasingly more complete versions of the soft- space analysis, alternative management, dynamic design
ware. The incremental model combines elements of the specification and development and scope for dynamic
linear sequential model with the iterative philosophy of testing. It implements the 3C-Model [15] on each stage or
prototyping. The incremental model applies linear se- phase, which assist fusion process model in generalizing
quences in a staggered fashion as time progresses. Each the process of solving the problems in each stage. It im-
linear sequence produces a deliverable “increment” of the plements component based development approach,
software [10]. Boehm proposed the Spiral Model, which which provides a dynamic nature to complete software
provides the potential for rapid development in a series development. Since it is component driven approach, the
of incremental releases [2]. Risk analysis, which identify risk associated with cost and time will be limited to com-
situations that might cause a development effort to fail or ponent only and ensure the overall quality of software
go over budget, occurs during each spiral cycle. In the system, reduce the development cost and time by consi-
course of several papers, Boehm and his colleagues ex- dering the changing requirements of customer, risk as-
tended the spiral model to a variant called the Win–Win sessment, identification, evaluation and composition of
Spiral Model [2], [3], [4]. The win–win stakeholder ap- relative concerns at each phase of development process.
proach is used to determine three critical project miles- The 3C-Model for each stage helps in mapping the real
tones that together anchor the development of the project: world problems or requirement with technical problems,
namely, life-cycle objectives, life-cycle architectures, and and providing the best available alternative with the help
initial operational capability [1]. of complete background information gathered and con-
Agile process model give less stress on analysis and de- trolled using process like solution space analysis, mathe-
sign. Implementation begins much early in the life cycle matical models and heuristics and optimization tech-
of the software development. This process model de- niques. The following section describes the various tech-
mands fixed time. Extreme Programming (XP) was niques of implementation model in detail.
created by Kent Beck during software development, and
is based on iterative enhancement model. Like other agile 4.1 Problem Analysis and Alternate Generation
software development, XP attempts to reduce the cost of The control part of 3C-Modle performs this step where it
change by having multiple short development cycles, analyzes the actual problem, which arises due to client
rather than one long one. It only works on teams of requirements. This provides an understanding of the
twelve or fewer people [11]. Industrial Extreme Pro- client perspective of the software system. The next step
gramming (IXP) was introduced as an evolution of XP. It involves the technical problem analysis process in which
is intended to bring the ability to work in large and dis- client requirements are mapped to technical problems
tributed teams. It then supported flexible values [8]. and solution domain is identified using solution space
There is not enough data to prove its usability. analysis process. Technical Problem Analysis includes the
These days, majority of the software development project definition of the problems and the sub problems that
involve some level of reuse of existing artifact like design need to be solved. In the problem analysis process, tech-
or code modules. The component-based development nical problems are identified and structured into loosely
(CBD) model incorporates many of the characteristics of coupled sub-problems that are first independently solved
the spiral model. It is evolutionary in nature, demanding and later integrated in the overall solution.
an iterative approach to the creation of software [13]. The
JOURNAL OF COMPUTING, VOLUME 2, ISSUE 8, AUGUST 2010, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 40
Extracting requirements of a desired software product is problem.
the first task in creating it. This process is called require-  Solution Domain Knowledge represents the back-
ments elicitation. While customers probably believe they ground information that is used to solve the problem.
know what the software should do, it may require skill  Alternative represents the possible alternative solu-
and experience in software engineering to recognize in- tions.
complete, ambiguous or contradictory requirements. Re-  Solution Description represents a feasible solution for
quirement analysis process provides an understanding of the given problem.
the client perspective of the software system. After re-  Artifact represents the solution for the given need.
quirements elicitation, client requirements are mapped to
technical problems in the technical problem analysis 4.2 Solution Domain and Alternate Space Analysis
process. The problem analysis process consists of the fol- Solution Domain represents the background information
lowing steps: that is used to solve the problem and alternative space
represents the possible alternative solutions. It includes
1. Generalize the Requirements: whereby the require- the search for the solution space, and the complete back-
ments are abstracted and generalized. ground information required to solve the problems. In the
2. Identify the Sub-Problems: whereby technical problems solution space analysis process, requirements are speci-
are identified from the generalized requirements. fied using some representation and this should be refined
3. Specify the Sub-Problems: whereby the overall technic- along the software development process until the final
al problem is decomposed into sub-problems. software is delivered.
4. Prioritize the Sub-Problems: whereby the identified
technical problems are prioritized before they are The Solution Domain Analysis process applied in soft-
processed. ware design phase aims to provide a solution domain
model that will be utilized to extract the architecture de-
Problem reduction is a strategic approach to manage sign solution. It consists of the following activities:
complexity. A widely known method for solving large
and complex problems is to split them into simpler prob- 1. Identify and prioritize the solution domains for each
lems and then iteratively apply this process. The process sub-problem
is put into action until the sub-problems are reduced to a 2. Identify and prioritize knowledge sources for each so-
level of complexity at which they are easily solved or at lution domain.
least exhibit an irreducible level of difficulty. This para- 3. Extract solution domain concepts from solution domain
digm for solving problems is called problem reduction. In knowledge.
this, a problem in a given domain is decomposed into a 4. Structure the solution domain concepts.
structured set of sub-problems in the same domain. Each 5. Refine the solution domain concepts.
sub-problem is evaluated for suitability to be further de-
composed until each sub-problem is determined solvable. The alternative space includes the alternative generation
This problem reduction paradigm has been successfully and alternative evaluation of the defined solutions. This
applied to problems in a variety of application domains can be defined as a set of possible design solutions that
and in many phases of the process in which a top-down can be derived from a given conceptual software architec-
decision making strategy is applicable. ture. The alternative design space analysis aims to depict
The problem reduction can be expensive if not handled this space and consists of the two sub-processes: define
properly. Often, the same process must be done repeated- the alternatives for each concept and describe the con-
ly for a similar type of problem with only minor differ- straints. Let us now explain these sub-processes in more
ences. As a result, problem reduction may cost even more detail.
over time as problems become more complex. One impor-
tant approach of handling the side effects of problem re-  Define the Alternatives for each Concept- In this
duction is to build reusable sub-problems and solutions, approach the various architecture design alternatives
instead of continually reinventing a related system reduc- are derived from well-established concepts in the
tive hierarchy. Such reusable sub-problems and solutions solution domain that have been leveraged to the
can be stored in a components library and retrieved as identified technical problems.
required. Complete solutions can then be obtained by
using and reassembling appropriate sub-solution compo-  Describe the Constraints - The total set of alternatives
nents. per concept may be too large and/or not relevant for
solving the identified problems. Therefore, to define
The capture part of 3C-Model consist these concepts: the boundaries of the architecture it is necessary to
Need, Problem Description, Solution Domain Knowledge, identify the relevant alternatives and omit the
Alternative, Solution Description and Artifact. irrelevant ones.

 Need represents an unsatisfied situation existing in 4.3 Development Process Control


the context (environment). The development process in software engineering starts
 Problem Description represents the description of the with the need, while the goal is to arrive at an artifact
JOURNAL OF COMPUTING, VOLUME 2, ISSUE 8, AUGUST 2010, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 41
(output) by applying a sequence of actions. Since this may state. Every transformation process engages an evaluation
be a complex process, the concepts and functions that are step, evaluation of design state with the initial require-
applied are usually controlled. This is represented by the ments is done and verifies if additional requirements
Control part in the model. The controller observes va- identified during this step. In particular, this process in-
riables from the system, evaluates this against the criteria cludes an explicit phase for searching design alternatives
and constraints, produces the difference, and performs in the corresponding solution space and selecting these
some control actions to meet the criteria. alternatives based on explicit quality criteria. Our work
 Mathematical Model represents a description of the has shown that how this approach helps in controlling the
concept Alternative. overall development process by implementing compo-
 Quality Criteria represent the relevant criteria that nent based approach. Since it is component driven ap-
need to be met for the final artifact. proach, the threat tied with cost and time will be re-
 Constraints represent the possible constraints either stricted to component only, ensuring the overall quality
from the context or as described in Problem of software product, considering the changing require-
Statement. ment of customer, risk assessment, identification, evalua-
 Heuristics/Optimization Techniques represents the tion and composition of relative concerns at each phase of
information for finding the necessary actions to meet development process.
the criteria and constraints.
REFERENCES
4.4 Software Development Scope [1] Barry Boehm, “Anchoring the Software Process”, IEEE Transaction on
Both the control and the problem-solving activities take Software Engineering, pp. 79-82, July 1996.
place in a particular context. Context can be expressed as [2] B.Boehm, “A Sprial Model of Software Development and Enhancement”,
the environment in which software development takes IEEE Computer, Volume 21, Issue 5, pp. 61-72, 1988.
place including a broad set of external constraints that [3] B.Boehm and D.Port, “Escaping the software tar pit: model clashes and
influence the final solution and the approach to the solu- how to avoid them”, Software Engineering Note, Volume 24, Issue 1, pp. 36-
tion. Constraints are the rules, requirements, relations, 48, 1999.
conventions, and principles that define the context of [4] B.Boehm and P.Bose, “A Collaborative Spiral Software Process Model
software engineering, that is, anything, which limits the Based on Theory W.Processing of ICSP”, 3, New York: IEEE Press, 1994.
final solution. Since constraints rule out alternative design [5] Fadi P. Deek, James A.M. McHugh and Osama M. Eljabiri, “Strategic
solutions directing engineers into taking action on what is Software Engineering an Interdisciplinary Approach”, Auerbach Publica-
doable and feasible. tions, pp. 11-35, 2005.
The context also defines the need and may be very [6] H.Lichter, M Hufschmidt Schneider,and H. Zullighoven, “Prototyping in
wide and include different aspects like the engineer’s ex- industrial software projects”, IEEE Trans. Software Eng., 20(11), pp. 825–832,
perience and profession, culture, history, and environ- 1994.
ment. [7] I. Jacobson, G. Booch, and J. Rumbaugh, “The Unified Software Develop-
ment Process”, Addison-Wesley, 1999.
4.5 Domain Engineering [8] Joshua Kerievsky, “Industrial XP: Making XP Work in Large Organiza-
The phased model use domain analysis to identify do- tions”, vol. 6, issue 2, Cutter Consortium Agile Product and Project Manage-
mains, bounding them, and discovering commonalities ment.
and variability’s among the systems. This information is [9] J. Martin, “Rapid Application Development”, Prentice-Hall Publication,
captured in models that are used in the domain imple- 1991.
mentation phase to create artifacts such as reusable com- [10] J. McDermid and P. Rook, “Software Development Process Models,” in
ponents, a domain-specific programming language, or Software Engineer’s Reference Book, CRC Press, pp. 15/26–15/28, 1993.
application generators that can be used to build new sys- [11] Kent Beck, “Extreme Programming Explain: Embrace Change”, Addi-
tems in the domain. A key idea in systematic software son-Wesley, First Edition-1999, Second Edition- 2004.
reuse is the domain, a software area that contains systems [12] M.L.Jaccheri,G.P. Picco, and P. Lago, (1998). Eliciting software process
sharing commonalities. models with the E3 language. ACM Trans. Software Eng. Methodol, Vo-
lume7, Issue 4, pp. 368–410, 1998.
[13] O.Nierstrasz, S. Gibbs, and D. Tsichritzis, “Component-Oriented Soft-
4 CONCLUSION ware Development,” CACM, vol. 35, no. 9, pp. 160–165, September 1992.
We have presented a Fusion Process Model for software [14] R.S.Pressman, “Software Engineering: a Practitioner’s Approach”,
development process and discussed the concept of 3C- McGraw–Hill Publication, Fourth Edition, 1996.
Model for each phase of development process model. In [15] Rupinder Kaur and Jyotsna Sengupta, “Development and Analysis of
this approach transformation of a problem specification 3C-Model for Software Development Lifecycle”, IEEE 2nd International
to a solution is made by decomposing the problem into Conference on Computer Engineering and Technology (ICCET 2010), Vo-
sub-problems that are independently solved and inte- lume 6, April 16 -18, Chengdu, China, 2010.
grated into an overall solution. This process consist of
multiple cycles, were each cycle transform from problem
specification state to design state. After each state trans-
formation, a sub-problem is solved and a new sub-
problem possibly be added to the problem specification
JOURNAL OF COMPUTING, VOLUME 2, ISSUE 8, AUGUST 2010, ISSN 2151-9617
HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/
WWW.JOURNALOFCOMPUTING.ORG 42

     
Project  Software  Realization  Testing  Go Live and 
Preparation  Blueprint  Support 

Fusion Process Controller


Fig. 1. Fusion Process Model

Você também pode gostar