Chapter 2: Software Processes
What are the three benefits of incremental development, compared to the waterfall model?
(a) The cost of accommodating changes to customer requirements is reduced. (b) It is easier to get customer feedback on development work that has been done. (c) More rapid delivery and deployment of useful software to the customer is possible.
Why is it increasingly irrelevant to distinguish between software development and evolution?
Few software systems are now completely new and a more realistic model of software development is of an iterative process that lasts for the lifetime of the software.
Why are iterations usually limited when the waterfall model is used?
The waterfall model is a document-driven model with documents produced at the end of each phase. Because of the cost of producing and approving documents, iterations and costly and involve significant rework. Hence they are limited.
What are the development stages in reuse-based development?
~Component analysis ~Requirements modification ~System design with reuse ~Development and integration
What are the six fundamental best practices in the RUP?
~Develop software iteratively ~Manage requirements ~Use component-based architectures ~Visually model software ~Verify software quality ~Control changes to software
What are the advantages of using incremental development and delivery?
~Early delivery of critical functionality to the customer ~Early increments serve as prototypes to explore requirements ~Lower risk of overall project failure ~More extensive testing of critical customer functionality
What are the principal requirements engineering activities?
~Feasibility study ~Requirements elicitation and analysis ~Requirements specification ~Requirements validation
What are the 4 sectors in each loop in Boehm's spiral model?
~Objective setting ~Risk assessment and reduction ~Development and validation ~Planning
What are the fundamental activities that are common to all software processes?
~Software specification ~Software design and implementation ~Software validation ~Software evolution
List the 3 generic process models that are used in software engineering?
~The waterfall model ~Incremental development ~Reuse-oriented software engineering