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 process.
5.What are the development stages in reuse-based development?
▪ Component analysis;
▪ Requirements modification;
▪ System design with reuse;
▪ Development and integration.
6.What are the principal requirements engineering activities?
▪ Feasibility study
• Is it technically and financially feasible to build the system?
▪ Requirements elicitation and analysis
• What do the system stakeholders require or expect from the system?
▪ Requirements specification
• Defining the requirements in detail
▪ Requirements validation
• Checking the validity of the requirements
7.Why is it increasingly irrelevant to distinguish between software development and evolution?
- Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
8.What are the advantages of using incremental development and delivery?
← Customer value can be delivered with each increment so system functionality is available earlier.
← Early increments act as a prototype to help elicit requirements for later increments.
← Lower risk of overall project failure.
← The highest priority system services tend to receive the most testing.
9.What are the 4 sectors in each loop in Boehm’s spiral model?
← Objective setting
▪ Specific objectives for the phase are identified.
← Risk assessment and reduction
▪ Risks are assessed and activities put in place to reduce the key risks.
← Development and validation
▪ A development model for the system is chosen which can be any of the generic models.
▪ The project is reviewed and the next...