Professional Documents
Culture Documents
Xiaojun Qi
Life-Cycle Model
It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and postdelivery maintenance, and the order in which they are to be carried out.
No design No specifications
The easiest way to develop software The most expensive way for maintenance (i.e., maintenance nightmare)
The developers simply throw code together and rework it as many times as necessary to satisfy the client.
It is used in small project and is totally unsatisfactory for products of any reasonable size.
Disadvantages:
Specification documents are long, detailed, and boring to read.
9
10
The lessons learned from the rapid prototype implementation are retained and used in subsequent development phases.
12
13
Key point: Individuals generally work voluntarily on an open-source project in their 14 spare time
(Cont.)
production has attracted some of the worlds finest software experts. They can function effectively without specifications or designs
16
The core group releases a new version of an open-source product as soon as it is ready
Perhaps a month or even a day after the previous version was released The core group performs minimal testing Extensive testing is performed by the members of the peripheral group in the course of utilizing the software Release early and often 19
20
21
Example:
Baseline at the end of Episode 4:
Requirements4, Analysis4, Design4, Implementation4
22
Any change made to a software product can potentially cause a regression fault. That is, a change to one part of the software induces a fault in an apparently unrelated part of the software If there are too many changes, the entire product may have to be redesigned and reimplemented There is no solution to the moving target problem!!
24
Iterative-and-Incremental Model
Iteration and incrementation are used in conjunction with one another 1) There is no single requirements phase/workflow or design phase/workflow 2) Instead, there are multiple instances of each phase/workflow. However, only one phase/workflow predominates at most times.
27
Workflows
All five core workflows are performed over the entire life cycle
Planning and documentation activities are performed throughout the life cycle
28
29
30
The robustness of the architecture can be determined early in the life cycle
Architecture the various component modules and how they fit together Robustness the property of being able to handle extensions and changes without falling apart
34
35
37
The TDD test cases used for the task are retained and utilized in all further integration testing.
39
Agile Processes
Extreme programming is one of a number of new paradigms that are collectively referred to as agile processes. Agile processes are characterized by
Less emphasis on analysis and design Earlier implementation (working software is considered more important than detailed documentation) Responsiveness to change in requirements Close collaboration with the client
41
42
Solutions are found at follow-up meetings, preferably held directly after the stand-up meeting 43
Both techniques are instances of two basic principles that underlie all agile methods:
Communication; and Satisfying the clients needs as quickly as possible
44
Requirements: Interview numerous potential clients for the package and extract a list of features of highest priority to the clients. Draw up specifications
Divide the work into three or four builds.
The 1st build: Most critical features. The 2nd build: The next most critical features. Each build is carried out by a number of small teams working in parallel. 47
Radial dimension: cumulative costs to date Angular dimension: progress through the spiral.
51
Strategy is analyzed from the viewpoint of risk. Attempts are made to resolve every potential risk. Follow each phase by:
The results of the phase are evaluated. The next phase is planned.
53
Weaknesses
For large-scale software only For internal (in-house) software only
54
Best suggestion
Mix-and-match life-cycle model
55
56