1. What are the fundamental activities that are common to all software processes?
a. Specification – defining what the system should do;
b. Design and implementation – defining the organization of the system and implementing the system;
c. Validation – checking that it does what the customer wants;
d. Evolution – changing the system in response to changing customer needs.
2. List the 3 generic process models that are used in software engineering?
← The waterfall model
▪ Plan-driven model. Separate and distinct phases of specification and development.
← Incremental development
▪ Specification, development and validation are interleaved. May be plan-driven or agile.
← Reuse-oriented software engineering
▪ The system is assembled from existing components. May be plan-driven or agile.
3. Why are iterations usually limited when the waterfall model is used?
← The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase.
4. What are the three benefits of incremental development, compared to the waterfall model?
← The cost of accommodating changing customer requirements is reduced.
▪ The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model.
← It is easier to get customer feedback on the development work that has been done.
▪ Customers can comment on demonstrations of the software and see how much has been implemented.
← More rapid delivery and deployment of useful software to the customer is possible.
▪ Customers are able to use and gain value from the software earlier than is possible with a waterfall