What is software life cycle?
What is a software life cycle model?
A software life cycle model is either a descriptive or prescriptive characterization of how
software is or should be developed. A descriptive model describes the history of how a particular software system was developed. Descriptive models may be used as the basis for understanding and improving software development processes, or for building empirically grounded prescriptive models (Curtis, Krasner, Iscoe, 1988). A prescriptive model prescribes how a new software system should be developed. Prescriptive models are used as guidelines or frameworks to organize and structure how software development activities should be performed, and in what order. Typically, it is easier and more common to articulate a prescriptive life cycle model for how software systems should be developed. This is possible since most such models are intuitive or well reasoned. This means that many idiosyncratic details that describe how a software
systems is built in practice can be ignored, generalized, or deferred for later consideration. This,of course, should raise concern for the relative validity and robustness of such life cycle models when developing different kinds of application systems, in different kinds of development settings, using different programming languages, with differentially skilled staff, etc. However,prescriptive models are also used to package the development tasks and techniques for using a given set of software engineering tools or environment during a development project.Descriptive life cycle models, on the other hand, characterize how particular software systems are actually developed in specific settings. As such, they are less common and more difficult to articulate for an obvious reason: one must observe or collect data throughout the life cycle of a software system, a period of elapsed time often measured in years. Also, descriptive models are specific to the systems observed and only generalizable through systematic comparative analysis.
Therefore, this suggests the prescriptive software life cycle models will dominate attention until a sufficient base of observational data is available to articulate empirically grounded descriptive life cycle models.
These two characterizations suggest that there are a variety of purposes for articulating software life cycle models. These characterizations serve as a
-Guideline to organize, plan, staff, budget, schedule and manage software project work
over organizational time, space, and computing environments.
-Prescriptive outline for what documents to produce for delivery to client.
-Basis for determining what software engineering tools and methodologies will be most
appropriate to support different life cycle activities.
- Framework for analyzing or estimating patterns of resource allocation and consumption
during the software life cycle (Boehm 1981)
-Basis for conducting empirical studies to determine what affects software productivity,
cost, and overall quality.
|