Beruflich Dokumente
Kultur Dokumente
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
1454 IEEE TRANSACTIONS ON SOFTWARE ENGINEERLNG. VOL. 14. NO. IO. OCTOBER I988
delivered later than expected, and to make matters worse, Whereas prototyping attempts to reduce development
it is often unreliable and fails to meet the ultimate users’ costs through partial implementations, reusable sofrwure
needs. Project managers often bypass stages or take short- [7] is the discipline of attempting to reduce development
cuts in order to solve the problem, but these unplanned costs by incorporating previously proven designs and code
and extemporaneous alterations of the life cycle just make in new software products. The software industry is guilty
the software even more expensive, later, and more unre- of continuously reinventing the wheel. This is primarily
liable. because few tools are available to help reuse software de-
The rapid throwaway prototyping approach (made pop- signs or code from previous projects. Clearly, what is
ular by Gomaa [3]) addresses the issue of ensuring that needed are techniques to create reusable components,
the software product being proposed really meets the techniques and tools to store and retrieve reusable com-
users’ needs. The approach is to construct a “quick and ponents, and component specification techniques to help
dirty” partial implementation of the system prior to (or catalog and locate relevant components. The net effect of
during) the requirements stage. The potential users utilize reusing components would be shorter development sched-
this prototype for a period of time and supply feedback to ules (by using wheels rather than reinventing them) and
the developers concerning its strengths and weaknesses. more reliable software (by using components that have
This feedback is then used to modify the software require- been previously “shaken down”).
ments specification to reflect the real user needs. At this Automated sofrwure synrhesis is a term used to describe
point, the developers can proceed with the actual system the transformation of requirements or high-level design
design and implementation with confidence that they are specifications into operational code. The transformation
building the “right” system (except in those cases where process may be directed by algorithmic [8] or knowledge-
the user needs evolve). An extension of this approach uses based [9] techniques. As Parnas [IO] points out, each gen-
a series of throwaway prototypes [4],culminating in full- eration of software engineering researchers applies the
scale development. term “software synthesis” to one language “higher” than
Incremental development [ 5 ] is the process of con- the one currently used for programming. Thus, when ma-
structing a partial implementation of a total system and chine language was used, software synthesis referred to
slowly adding increased functionality or performance. the “automatic” translation of assembly language into
This approach reduces the costs incurred before an initial machine code (now called assembly). Later, it referred to
capability is achieved. It also produces an operational sys- the translation of a high-level language into machine code
tem more quickly, and it thus reduces the possibility that (now called compilation). Now, it refers to the translation
the user needs will change during the development pro- of very-high-level languages (VHLL’s) into machine
cess. code. Since lines of code produced by person-month are
In evolutionary prototyping (established briefly at the relatively independent of the implementation language, it
end of [6]), the developers construct a partial implemen- becomes clear that the higher the programming language
tation of the system which meets known requirements. used becomes, the more true productivity (as measured
The prototype is then used by its intended users in order by the amount of functionality implemented per person-
to understand the full requirements better. Whereas incre- month) increases.
mental development implies that we understand most of The purpose of this paper is to describe a paradigm’
our requirements up front and simply choose to imple- which can be used to compare and contrast each of the
ment it in subsets of increasing capability, evolutionary above alternative life cycle models with the more conven-
prototyping implies that we do not know up front all of tional waterfall model (and with each other) in the face of
our requirements, but need to experiment with an opera- constantly evolving user needs.
tional system in order to learn them. Note that in the case
of throwaway prototypes we are likely to implement only THE PARADIGM
those aspects of the system that are poorly understood, For every application beyond the trivial, user needs are
but that in the case of evolutionary prototypes we are more constantly evolving. Thus, the system being constructed
likely to start with those system aspects that are best is always aiming at a moving target. This is a primary
understood and thus build upon our strengths. For com- reason for delayed schedules (caused by trying to make
plex applications, it is not reasonable at this time to ex- the software meet a new requirement it was not -designed
pect this application of prototypes to be particularly to meet) and software that fails to meet customer expec-
“rapid” because reliability, adaptability, maintainabil- tations (because the developers “froze” the requirements
ity, and performance (RAMP) are major forces behind and failed to acknowledge the inevitable changes).
making such system developments expensive and time- Fig. 2 shows graphically how users’ needs evolve over
consuming. Since the technology is not yet available to time. It is recognized that the function shown is neither
retrofit RAMP requirements, they would have to be im- linear nor continuous in reality. Please note that 1) the
plemented up front, thus forcing software development scale on the x-axis is not shown (the units can be either
costs high and schedules to their limit. Evolutionary pro-
totypes will become more practical in the future as tech- ’The term “paradigm” is used in this paper to mean “metamodel,”
niques for retrofitting RAMP requirements are developed. i.e., a model to describe software life cycle models.
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
DAVIS CI a l . : COMPARING SOFTWARE LIFE CYCLE MODELS 1455
TIME
FUNCTIONALITY
b
‘0 11 12 13 I 15
TIME
Fig. 3 . Software products fall short of meeting all current user needs
months or years), but could be assumed to be nonuniform, cycle approaches. These metrics are portrayed graphically
containing areas of compression and decompression, and in Fig. 4 and are described below.
2) the units of the scale on the y-axis are not shown, but 1) A shortfall is a measure of how far the operational
are assumed to be some measure of the amount of func- system, at any time t , is from meeting the actual require-
tionality (such as DeMarco’s “Bangs for the Buck” [ll]). ments at time t . This is the attribute that most people are
However, none of the observations made in this paper is referring to when they ask “Does this system meet my
dependent on either the uniformity of the axes or the lin- needs?”
earity or continuity of the curve shown in Fig. 2. 2) Lateness is a measure of the time that elapses be-
Fig. 3 shows what happens during a conventional soft- tween the appearance of a new requirement and its satis-
ware development. At time to, a need for a software sys- faction. Of course, recognizing that new requirements are
tem is recognized and a development effort commences not necessarily implemented in the order in which they
with relatively incomplete knowledge of the real user appear, lateness actually measures the time delay associ-
needs at time to. At time t l , the development effort has ated with achievement of a level of functionality.
produced an operational product, but not only does it not 3) The adaptability is the rate at which the software
satisfy the current t , needs, it does not even satisfy the solution can adapt to new requirements, as measured by
old to needs because of a poor understanding of those the slope of the solution curve.
needs in the first place. The product now undergoes a se- 4) The longevity is the time a system solution is adapt-
ries of enhancements (between times tl and t3),which able to change and remains viable, i.e., the time from
eventually enable it to satisfy the original requirements (at system creation through the time it is replaced.
t2)and then some. At some later point in time t l , the cost 5) Inappropriateness is the shaded area between the
of enhancement is so great that the decision is made to user needs and the solution curves in Fig. 5 and thus cap-
build a new system (once again based on poorly under- tures the behavior of shortfall over time. The ultimately
stood requirements), development of the product is com- “appropriate” model would exhibit a zero area, meaning
pleted at time t4, and the cycle repeats itself. that new requirements are instantly satisfied.
A number of useful metrics can now be defined based Each of the alternative life cycle models defined earlier
on the paradigm defined above. These metrics can later is now analyzed with respect to the paradigm described
be used to compare and contrast sets of alternative life above.
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
1456 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 14. NO. IO, OCTOBER 1988
/ T H E ACTUAL SYSTEM
CAPABILITIES
FUNCTIONALITY
- 7
SHADED AREA
SHOWS
INAPPROPRIATENESS
ADAPTABILITY IS
SLOPE OF LINE
I
TIME
RAPID THROWAWAY
PROTOTYPE APPROACH
CONVENTIONAL
APPROACH
F U N C l'IONALITY
I lo 11 12 13
TIME
Fig. 5 . Rapid prototyping versus conventional.
Rapid Throwaway Prototypes ration of new requirements and thus achieve higher adapt-
The use of a rapid throwaway prototype early in the ability. This approach has two effects: 1) the initial de-
development life cycle increases the likelihood that cus- velopment time is reduced because of the reduced level
tomers and developers will have a better understanding of of functionality, and 2) the software can be enhanced more
the real user needs that existed at time to. Thus, its use easily and for a longer period of time. Fig. 6 shows how
does not radically affect the life cycle model per se, but this approach compares to the conventional approach.
does increase the impact of the resulting system. This is Note that the initial development time is less than for the
shown in Fig. 5 , where the vertical line (i.e., the increase conventional approach, that the initial functionality (A) is
in functionality provided by the system upon deployment) less than for the conventional approach (B), and that the
at time t l is longer than in the conventional approach. Fig. increased adaptability is indicated by a higher slope of the
5 also shows the rapid prototype itself as a short vertical curve A-C than for the conventional approach (line B-
line providing limited and experimental capability soon D). The stair step aspect of the graph indicates a series of
after time to. There is no reason to believe that the length well-defined, planned, discrete builds of the system.
of time during which the product can be efficiently en-
hanced without replacement is any different than with the Evolutionary Prototypes
conventional approach. Therefore, this period of time for This approach .is an extension of the incremental de-
the rapid prototype-based development (i.e., t3 - t l ) is velopment. Here, the number and frequency of opera-
shown in Fig. 5 the same as for the conventionally de- tional prototypes increases. The emphasis is on evolving
veloped product. toward a solution in a more continuous fashion, instead
of by a discrete number of system builds.
Incremental Development With such an approach, an initial prototype emerges
When using incremental development, software is de- rapidly, presumably demonstrating functionality where the
liberately built to satisfy fewer requirements initially, but requirements are well understood (in contrast to the
is constructed in such a way as to facilitate the incorpo- throwaway prototypes, where one usually implements the
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
DAVIS ~f a l . : COMPARING SOFTWARE LIFE C Y C L E MODELS 1457
INCREMENTAL
DEVELOPMENT
APPROACH
FUNCTIONALITY
I 10 (1 12 13
TIME
FUNCTIONALITY
TIME
Fig. 7 . Evolutionary prototyping versus conventional
poorly understood aspects first) and providing an overall Automated Software Synthesis
framework for the software. Each successive prototype In the ultimate application of this approach, as an en-
explores a new area of user need, while refining the pre- gineer recognizes the requirements, these are specified in
vious functions. As a result, the solution evolves closer some type of VHLL and the system is automatically syn-
and closer to the user needs (see Fig. 7). In time, it too thesized. This approach has two dramatic effects: 1) the
will have to be redone or undergo major restructuring in development time is greatly reduced, and 2) the devel-
order to continue to evolve. opment costs are reduced so much that adapting “old”
As with the incremental development approach, the systems is rarely more meritorious than resynthesizing the
slope (line A-C) is steeper than in the conventional ap- entire system. Thus, the longevity of any version is low,
proach (line B-D) because the evolvable prototype was and the result is a stair-step graph, as shown in Fig. 9,
designed to be far more adaptable. Also, the line A-C in where the horizontal segments represent the time the sys-
Fig. 7 is not stepped like line A-C in Fig. 6 because of tem is utilized and the time needed to upgrade the require-
the replacement of well-defined and well-planned system ments. The vertical segments represent the additional
“builds” with a continuous influx of new, and perhaps functionality offered by each new generation.
experimental, functionality.
Summary
Reusable Software Note that all five approaches reduce the area between
the user need graph and actual system functionality graph
Reuse of existing software components has the poten- when compared to conventional development. That is, all
tial to decrease the initial development time for software five approaches decrease shortfall, lateness, and inappro-
significantly. Fig. 8 shows how this approach compares priateness to varying degrees. It is for this very reason
to conventional development. No parameters are changed, that these alternative life cycle approaches were devel-
except for the development times. oped by their inventors.
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
1458 lEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 14, NO. IO. OCTOBER 1988
REUSABLE
SOFTWARE APPROACH
FUNCTIONALITY
/
(1 12 13
,//
TIME
AUTOMATED
SOFTWARE CONVENTIONAL
L
APPROACH
USER NEEDS
/(/-
FUNCTIONALITY
v :I I : b
(0 tl 12 13
TIME
Other Models only meets all the requirements of time to, but most of the
The paradigm discussed in this paper makes it apparent additional t l requirements as well.
that alternative life cycle models improve product devel-
opment. It also provides insight into how we might mod- PRODUCTIVITY ANALYSIS
ify the conventional life cycle model to improve our sit- Suppose that at a particular point in time a project man-
uation. For example, it is apparent by looking at all the ager needed to meet a set of new requirements. Heishe
models described above that the evolution of require- could select one of a number of choices:
ments is fundamentally ignored during development. In 1) modify the existing program,
actuality, as important new requirements become appar- 2) build a new system from scratch using conventional
ent, they are reviewed by a configuration control board software development practices, or
and either discarded (or perhaps deferred for a later re- 3) build a new system from scratch using any of the
lease) or approved [12]. Such an approval may result in new alternative approaches.
relatively expensive modifications to all existing docu- Currently, many project managers make this selection
mentation and code under development. If techniques based on fuzzy perceptions and past experiences. On the
could be developed which would make the intermediate other hand, some project managers might analyze the
results of the software life cycle (e.g., software require- project’s aspects which affect the choice. For example,
ments specifications, high-level design specifications, de- aspects of the application that might affect the selection
tailed design specifications, and code) highly adaptable, inc1u d e
then the software development process itself could result requirements volatility (i.e., the likelihood that the
in systems that more closely met current requirements. If requirements will change);
such a scheme were possible, the result would be as shown the “shape” of requirements volatility (e.g., discrete
in Fig. 10. Note that although the development time re- leaps, based on brand new threats; or gradual changes, as
mains unchanged, the system that appears at time t l not with a need to do things faster);
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
__
ADAPTABLE
DEVELOPMENT
APPROACH
CONVENTIONAL
APPROACH
FUNCTIONALITY
‘0 ‘1 12 13
TIME
Fig. 10. Adaptable development versus conventional
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
1460 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 14, NO. IO. OCTOBER I Y X X
measure of productivity is, however, inappropriate for de- 181 H. Partsch and R. Steinbriiggen, “Program transformation systems,”
velopment models where lines of code are not a valid re- ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
flection of the problem space. This is one of the primary B a s c ~ d Construction. New
191 D. R. Barstow, K n o ~ c ’ l c ~ ~ l ~ c ~ -ProRram
York: North Holland, 1979.
reasons that comparison of the various development [IO] D. L. Parnas. “Can automatic programming solve the SDI software
models is so difficult today. problem?,” in “Software aspects of strategic defense systems,”
Anier. S c i . , vol. 73, pp. 432-440, Sept.-Oct. 1985.
FUTURE RESEARCH [ I I] T. DeMarco, Controlling Software Projects. New York: Yourdon,
1982.
While the paradigm presented in this paper is useful for 1121 E. Bersoff, “Elements of software configuration management.” IEEE
visualizing conceptual differences between development Trcms. Sofmure E n g , , vol. SE-IO, pp. 79-87, Jan. 1984.
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.
DAVIS e1 al.: COMPARING SOFTWARE LIFE CYCLE MODELS 1461
at universities in Boston, New York, and Washington, DC. His technical opment plan for Ada reusability. Prior to founding SPS, he led the Software
contributions to the fields of software requirements and design range from Technology Section at Harris Government Information Systems, Mel-
early publications in computer architecture, reliability, and programming bourne. In this role he was responsible for the research, development, and
languages to more recent publications on software quality and configura- transfer of advanced software techniques and tools for military software.
tion management, including a textbook entitled Soffwure Conjgurarion He provided the major technical input and guidance for Harris’s integrated
Munagernenr (Prentice-Hall). software methodology. He was on the original planning group for the Soft-
Dr. Bersoff is a member of the AFCEA. the American Management ware Technology Project of the Microelectronics and Computer Technol-
Association, the Air Traffic Control Association, and Mensa. ogy Corporation (MCC). He has developed a number of original techniques
for systems requirements definition, Ada software design, interface speci-
fication, database design, and structured systems modeling. He also held
positions at Harris in modeling and simulation and systems engineering,
Edward R. Comer (M’79) received the B S and where he participated in the development of mission-critical systems for
M S degrees in mathematics and the M S degree command and control, communications, intelligence data handling, avion-
in computer science from the Floridd Institute of ics, data acquisition, and physical security. He ha6 taught mathematics and
Technology, Melbourne computer science at the university level and has taught software and sys-
He is President and Founder of Software Pro- tems engineering courses in a variety of subjects for national seminars and
ductivity Solutions, Inc (SPS), Melbourne, a for corporate and government clients.
software technology company specializing i n the Mr. Comer has received a Distinguished Engineering Award. He was
development and application of advanced Ada- an author of the first published Ada Design Language Guide in industry
based methodologies and tools He has been a pri- and participated in the IEEE Ada as a PDL Working Group. He has pub-
mary technical contributor in the development of lished numerous papers in database design, Ada design languages, software
a number of strategic software technology plans techniques and environments, communications, and simulation. He was
including the research and development plans for the Software Productivity twice the Proceedings Editor of the Annual Simulation Symposium and has
Consortium in the areas of reusable software, software prototyping, and served on the program committees of COMSAC 86 and the Ada Applica-
knowledge-based systems for software development, Ada transition plans tions and Environments Conference. He is a member of the Association
for a number of corporate clients, and SPS’s internal research and devel- for Computing Machinery (SIGAda, SIGSOFT. SIGMOD, and SIGART).
Authorized licensed use limited to: NATIONAL INSTITUTE OF TECHNOLOGY SURATHKAL. Downloaded on May 13, 2009 at 08:27 from IEEE Xplore. Restrictions apply.