Lecture 2: Software Process Models Flashcards
Building Vs. Growing
Building is when you plan everything before starting, but this does not always work well for software.
Growing software is better, because you start with a very simple system that runs, but with minimal functionality, and then continuously add on to that software and let it grow
Steps of code and fix model
- write some code
- Fix them problems in the code.
What are the drawbacks of code-and-fix model?
- After fixes, code becomes poorly structured, which made fixing expensive
- Even well designed software does not meet user’s need (you need a requirements phase)
- Code was expensive to fix - poor prep for testing and modification
What are the 5 phases of the waterfall process?
- Requirements definition
- system and software design
- implementation and unit testing
- integration and system testing
- Operations and maintenance
(These are all connected to each other)
What is the original theory of the waterfall model?
One should move to the the next phase of development only when its preceding phase is completed and perfected
What documents are generated from Waterfall process?
Each step will yield documents.
example: after finishing requirements analysis, a requirement document is generated, which is essential for later steps.
What are common roles of Waterfall?
Analyst
Designer
Programmer
Tester
Trainer
Maintainer
Why is cost-estimation tricky in Waterfall?
A problem is that we may not have enough information during the early phases to make accurate predictions about the effort needed, and hence the cost, of later phases.
Why is waterfall a poor model?
The waterfall model is based on classical engineering practice: it is not clear that experience gained from construction of physical objects is going to work for software development
-the software development process is not well-understood;
scientific foundations are lacking;
software requirements change;
developers are HUMANS!
Driven by documents: Document reflects what reader wants to read rather than what is actually happening
Pros and Cons of Waterfall process
Rigid and formal process, fits well for:
-Embedded systems
-Safety-critical systems
Activities are isolated:
-Late-changing requirements require a lot of rework!
What’s the main medium of communication in waterfall model?
Verification
Documentation
Meetings
Feedback and Reviews
Summarize prototype model
Design and build a prototype over and over until the customer approves the prototype and then the final design is done.
Benefits of prototyping
Improved system usability.
A closer match to users’ real needs.
Improved design quality.
Improved maintainability.
Reduced development effort.
Incremental development
Fancy name for “growing software.”
Advantages of incremental development
There is a working system at all times;
clients can see the system and provide feedback
Progress is visible, rather than being buried in documents;
Some kinds of errors can be avoided.