Software process

LARGE SCALE SOFTWARE DEVELOPMENT 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? ? Plan-driven model. Separate and distinct phases of specification and development. Specification, development and validation are interleaved. May be plan-driven or agile. ? 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? 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 amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. Customers can comment on demonstrations of the software and see how much has been implemented. ? 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. . What are the advantages of using incremental development and delivery? 9. What are the 4 sectors in each loop in Boehm’s spiral model? <> Objective setting ? Specific objectives for the phase are identified. ? Risks are assessed and activities put in place to reduce the key risks. ? A development model for the system is chosen which can be any of the generic models. <> ? The project is reviewed and the next phase of the spiral is planned. 10. What are the six fundamental best practices in the RUP? Plan increments based on customer priorities and deliver highest priority increments first. ? Explicitly document customer requirements and keep track of changes to these requirements. ? Organize the system architecture as a set of reusable components. ? Use graphical UML models to present static and dynamic views of the software. ? Ensure that the software meet’s organizational quality standards. Manage software changes using a change management system and configuration management tools.