Alternative Software Life Cycle Models By Edward R. Corner vol. 2,
18 Slides159.00 KB
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp. 289-299 Presented by: Gleyner Garden EEL6883 Software Engineering II
Feel free to interrupt!
Introduction The classic waterfall model that we are familiar with was developed around 1970 by Dr. Winston Royce Many different models have been proposed since then They all exist to help cope with the great complexity and expense of software products, and to help create a product that meets the user’s needs and expectations
Definition Not a definition of process followed by a software development organization Not a methodology Is a reference model for a software development process that provides: a common basis for standards, and where these standards belong with respect to the model a description of major functions involved in software development insight towards the important aspects or features necessary for common understanding and focus
Alternative Models Rapid, Throwaway Prototype: Gomaa and Scott made it popular in 1981 Focuses on ensuring product meets user’s needs Goal is to improve the quality of requirements specifications by providing a “quick and dirty” partial implementation during requirements phase Use of this implementation by the users can expose miscommunications in the requirement specifications
Alternative Models Incremental Development: Constructing a partially implemented, yet useful build and then incrementally added functionality Requirements can be defined for each increment in advance, or during development between increments If done correctly, can increase reliability and decrease risk Requires a very flexible system architecture, and especially if the overall end-result is not fully planning for
Alternative Models Evolutionary Prototypes: Views the software life cycle as a set of prototypes that are evolved through iterative experimentation and refinement Intended to addresses customer satisfaction Sort of a mixture of Rapid Prototyping and Incremental Development, without the need for a full understanding of requirements Hard to scale up to large systems Expensive to use for complex mission-critical applications
Alternative Models Reusable Software: Reduce costs by incorporating existing designs, programs, modules, and data into new software products Compatible with all life cycle models Avoid reinventing the wheel Less schedule needed, since code is already written, and less bugs to fix, since software has been “proven”
Alternative Models Automated Software Synthesis: Automated transformation of formal requirements into operational code Relies heavily on automated tools (very smart compilers)
Evaluation of Alternative Life Cycle Models User’s needs are constantly evolving Creates new requirements which must be met to meet expectations Project gets behind schedule Waterfall example shows how development is affected
Evaluation of Alternative Life Cycle Models Shortfall is a measure of how far the system at a given time t, is from meeting the actual requirements at time t Lateness is a measure of the time that elapses between the appearance of a new requirement and its satisfaction Adaptability is the rate at which the software solution can adapt to new requirements Longevity is the time a system solution is adaptable to change and remains viable Inappropriateness captures the behavior of the shortfall over time (area between needs and actual capabilities
Evaluation of Alternative Life Cycle Models Rapid Prototyping: Increases likelihood that customers and developers are on the same page at time t0 At t1 the delivered function is higher for the rapid prototyping approach Shows overall, that function is closer to needs than the waterfall model
Evaluation of Alternative Life Cycle Models Incremental Development: Deliberately built to satisfy fewer requirements initially, but facilitates incorporation of new requirements which increases adaptability Initial development time is reduced because of limited functionality Software can be enhanced more easily for a longer period of time Stair steps show series of well-defined, planned, discrete builds of the system
Evaluation of Alternative Life Cycle Models Evolutionary Prototypes: Number and frequency of operational prototypes is increased Initial prototype emerges rapidly to provide a framework for the software Each prototype explores a new area of user need, while refining previous function More adaptable Not stepped because we are introducing new functionality with more refined old functionality
Evaluation of Alternative Life Cycle Models Reusable Software: Potential to significantly decrease initial development time Only development time is different here
Evaluation of Alternative Life Cycle Models Automated Software Synthesis: Development time is greatly reduced Development costs are reduced so much that adapting old systems is not as good as resynthesizing the entire system Low longevity, but very low shortfall
Defining, Selecting, or Adapting a Life Cycle Model Life cycle model evaluation provides insight as to how we might define, select, or adapt a life cycle model to improve our process Points that should affect selection: Requirements volatility (likelihood that requirements will change The way that requirements change (big jumps, gradually) The longevity of the application The availability of resources to develop or effect changes; it may be easier to get resources up front than to devote significant resources for enhancements
Conclusion It was a very good paper that describes and evaluates several different life cycle approaches I would have liked to know if he used any real data to get a general idea as to what the different evaluation plots looked like