Chapter 2 - Software Engineering

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

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.

Exercise 2.9: What are the advantages of providing static and dynamic views of the software process as in the Rational Unified Process?

- An approach to process modeling which is simply based on static activities, such as requirements, implementations, etc. forces these activities to be set out in a sequence which may not reflect the actual way that these are enacted in any one organization. - In most cases, the static activities shown in Figure 2.13 are actually interleaved so a sequential process model does not accurately describe the process used. By separating these from the dynamic perspective i.e. the phases of development, you can then discuss how each of these static activities may be used at each phased of the process. - Furthermore, some of the activities that are required during some of the system phases are in addition to the central static activities shown in Figure 2.13. These vary from one organization to another and it is not appropriate to impose a particular process in the model.

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.

Exercise 2.6: Explain why change is inevitable in complex systems and give examples (apart from prototyping and incremental delivery) of software process activities that help predict changes and make the software being developed more resilient to change.

- Systems must change because as they are installed in an environment the environment adapts to them and this adaptation naturally generates new/different system requirements. Furthermore, the system's environment is dynamic and constantly generates new requirements as a consequence of changes to the business, business goals and business policies. Unless the system is adapted to reflect these requirements, its facilities will become out-of-step with the facilities needed to support the business and, hence, it will become less useful. Example of process activities that support change are: 1. Recording of requirements rationale so that the reason why a requirement is included is known. This helps with future change. 2. Requirements traceability that shows dependencies between requirements and between the requirements and the design/code of the system. 3. Design modeling where the design model documents the structure of the software. 4. Code refactoring that improves code quality and so makes it more amenable to change.

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.

Exercise 2.3: Consider the reuse-based process model shown in Figure 2.3. Explain why it is essential to have two separate requirements engineering activities in the process.

-In a reuse based process, you need to know two requirements engineering activities because it is essential to adapt the system requirements according to the capabilities of the system/componenets to be reused. These activities are: 1. An initial activity where you can understand the function of the system and set out broad requirements for what the system should do. These should be expressed in sufficient detail that you can use them as a basis for deciding of a system/component satisfies some of the requirements and so can be reused. 2. Once systems/components have been selected, you need a more detailed requirements engineering activity to check that the features of the reused software meet the business needs to identify changes and additions that are required.

What are the fundamental activities that are common to all software processes?

Software specification - defining what the system should do Software design and implementation - - defining the organization of the system and implementing the system Software validation - checking that it does what the customer wants Software evolution - changing the system in response to changing customer needs

Why are iteration 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. ** 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.

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 - Plan increments based on customer priorities and deliver highest priority increments first. ~Manage requirements - Explicitly document customer requirements and keep track of changes to these requirements. ~Use component-based architectures - Organize the system architecture as a set of reusable components. ~Visually model software - Use graphical UML models to present static and dynamic views of the software. ~Verify software quality - Ensure that the software meet's organizational quality standards. ~Control changes to software - Manage software changes using a change management system and configuration management tools.

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 - 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. ~Planning - The project is reviewed and the next phase of the spiral is planned.


Ensembles d'études connexes

Chapter 5- The Lipids- Fats, Oils, Phospholipids & Sterols

View Set

Sorting, Filtering, and Deleting Records

View Set

Chapter 14: Direct, Online, Social Media, and Mobile Marketing

View Set

Brainscape 1533 all lessons and test

View Set

BIOL 224 - Exam 1 Practice questions

View Set