Software Development Process Models Flashcards
1
Q
Process
A
A process is a series of actions bringing about a result
2
Q
Software Development Process
A
- The process by which user needs are translated into software product. The process involves
- translating user needs into software requirements
- transforming the software requrirements into design
- implementing the design into code
- testing the code
- and sometimes, installing and checking out the software for operational use - May overlap
3
Q
Software Process Model
A
- A (software) process model is
- an abstraction of similar software processes
- a blueprint (a pattern) used to organize and perform a software process - A software process model should be
- useful and helpful
- clearly defined
- accepted by the development organization - Reduction of project risks!
4
Q
Code and Fix
A
- Coding and error correction together with ad-hoc tests are the only activities performed consciously
- Systems dont conform to the real requirements
- Cost for corrections are disproportionately high
- Important concepts and decisions are not documented
- Very often this development model is applied altough it is uneconomical
5
Q
Waterfall Model
A
- We work from top left to bottom right
- If errors are detected we go back to the corresponding activity
6
Q
Waterfall Model - Benefits
A
- Supports project management
- Supports planning and controlling
7
Q
Waterfall Model - Problems
A
Assumptions:
- Requirements are known up front before design
- Requirements rarely change
- Users know what they want and rearely need visualization
- The system is not so complex
8
Q
Spiral Model
A
- Reaction to waterfall model
- Core idea: Always react to development risks
- Repeat the cycle until the project is finished successfully or it fails
- Identify all the risks
- Assess all risks to get the most important one
- Select an approach to eliminate the risk and apply this approach
9
Q
Incremental Development
A
Basic idea: We dont develop the whole system
10
Q
Incremental Development - Benefits
A
- Project progress is shown not by documents but by executable systems
- Each increment implements a defined set of requirements
- allows for software to evolve, not be produced in one huge effort
- allows software to improve, by giving enough time to the evolutionary process itself
- forces attention on stability, because only a stable foundation can support multiple additions
11
Q
Iterative Development
A
- Controlled continuous revision of software aiming at correcting errors early and integrate improvements
- We get things wrong before we get them right
- recognizes the reality of chaning requirements
- promotes early risk mitigation, by breaking down the system into mini-projects and focusing on the riskier elements first
- allows you to plan a litte, design a little, code a little
12
Q
Prototyping - Idea
A
- It is easier to describe a system relatively to a similar system than to abstractly specify its requirements
- Experiences gained in building a prototype are useful for the final system development
13
Q
Prototyping - Implications
A
- A prototype hat to be executable / performable
- It only implements some selected attributes of the final system
- It has to be used and assesses by users / clients
- Based on the feedback, it is modified until it fits to what the user wants