【正文】
mockups, demonstration systems, quickanddirty prototypes, and incremental evolutionary prototypes (Hekmatpour 1987). Increasing functionality and subsequent evolvability is what istinguishes the prototype forms on this list. Prototyping technologies usually take some form of software functional specifications 13 as their starting point or input, which in turn is simulated, analyzed, or directly executed. These technologies can allow developers to rapidly construct early or primitive versions of software systems that users can evaluate. User evaluations can then be incorporated as feedback to refine the emerging system specifications and designs. Further, depending on the prototyping technology, the plete working system can be developed through a continual revising/refining the input specifications. This has the advantage of always providing a working version of the emerging system, while redefining software design and testing activities to input specification refinement and execution. Alternatively, other prototyping approaches are best suited for developing throwaway or demonstration systems, or for building prototypes by reusing part/all of some existing software systems. Subsequently, it bees clear why modern models of software development like the Spiral Model (described later) and the ISO 12207 expect that prototyping will be a mon activity that facilitates the capture and refinement of software requirements, as well as overall software development. 14 指導教師意見: 指導教師簽字: 年 月 日 系 (教研室 )意見: 主任簽字: 年 月 日 注:此表單獨作為一頁 . 。s capabilities and limits in order to effectively use the system. ? Software Maintenance: sustaining the useful operation of a system in its host/target environment by providing requested functional enhancements, repairs, performance improvements, and conversions. What is a software life cycle model? A software life cycle model is either a descriptive or prescriptive characterization of 8 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 anize and structure how software development activities should be performed, and in what order. Typically, it is easier and more mon 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 mon 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 parative 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 anize, plan, staff, budget, schedule and manage software project work over anizational time, space, and puting 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. 9 ? 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. What is a software process model? In contrast to software life cycle