SWE - chapter 2 :Software processes

Ace your homework & exams now with Quizwiz!

There are two related approaches that may be used to reduce the costs of rework

1 - Change avoidance 2 - Change tolerance

3 - System design with reuse.

During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused and they will organize the framework accordingly. Some new software has to be designed if some reusable components are not available.

Benefits of prototyping

Improved system usability. A closer match to users' real needs. Improved design quality. Improved maintainability. Reduced development effort.

Reuse-oriented Process stages

▪ Component analysis; ▪ Requirements modification; ▪ System design with reuse; ▪ Development and integration.

The waterfall model

▪ Requirements analysis and definition ▪ System and software design ▪ Implementation and unit testing ▪ Integration and system testing ▪ Operation and maintenance

Waterfall model phases(Activities)

▪ Requirements analysis and definition ▪ System and software design ▪ Implementation and unit testing ▪ Integration and system testing ▪ Operation and maintenance

A prototype can be used in:

▪ in The requirements engineering process to help with requirements elicitation and validation; ▪ In design processes to explore options and develop a UI design; ▪ In the testing process to run back-to-back tests.

agile processes,

planning is incremental and it is easier to change the process to reflect changing customer requirements.

Plan-driven processes

processes where all of the process activities are planned in advance and progress is measured against this plan.

sub-activities of software process

requirements validation, unit testing

Software Prototyping

A prototype is an initial version of a system used to demonstrate concepts and try out design options.

1 - Component analysis.

A search is made for the components to implement the given requirements specification. Usually, there's no exact match, and components may be only provide some of the functionality required.

There are four fundamental activities that are common to all software processes.

Software specification Software development Software validation Software evolution,

(@)The main drawback(disadvantage) 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.

T

@A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.

T

@In the waterfall model, you must plan and schedule all of the activities before starting working on them (plan-driven process).

T

@The waterfall model is A Sequential Approach.

T

Software process models

Waterfall Model Incremental Model reuse-oriented software engineering Evolutionary Model Concurrent Development Model

Waterfall model problems

- inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements - the waterfall model is mostly used for large systems engineering projects where a system is developed at several sites

the intermediate phases in a reuse-oriented process are different from the other models. These phases are:

1 - Component analysis. 2 - Requirements modification. 3 - System design with reuse. 4 - Development and integration.

There are basically three types of software components that can be used in a reuse-oriented process:

1 -Web services ( that are developed according to well-known service standards and which will become available for remote invocation.) 2- Collections of objects that are developed as a package ( to be integrated with a component framework such as .NET or Java EE.) 3- Standalone software systems ( that are configured for use in a particular environment. )

Software process descriptions beside discuss the activities and it's order it's may include :

1- Products (which are the outcomes of a process activity; E.g. the outcome of architectural design is a model of software architecture.) 2- Roles (which reflect the responsibilities of the people involved in the process; "e.g. Project Manager, Configuration Manager, Programmer") 3- Pre- and post-conditions (which are statements that are true before and after a process activity has been enacted or a product produced. " For example, before architectural design begins, a pre-condition may be that all requirements have been approved by the customer; after this activity is finished, a post-condition might be that the UML models describing the architecture have been reviewed." )

Software process

1- The systematic approach that is used in software engineering & 2-is a sequence of activities that leads to the production of a software product. & 3-A structured set of activities required to develop a software system.

Process activities

1-Software specification (Requirements), where customers and engineers define the software that is to be produced and the constraints on its operation. 2-Software development, where the software is designed and programmed (Design and implementation (Code)). (Creating Models (class diagram, flow charts, use cases, interactions, Algorithms, internal structure, data to be used, etc.), then Programming (new or reuse). 3-Software validation (Testing), where the software is checked to ensure that it is what the customer requires. 2-Software evolution, where the software is modified to reflect changing customer and market requirements.

2 - Requirements modification.

During this phase, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available components. If the modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions.

@In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work.

T

@Incremental development is based on the idea of developing an initial implementation, exposing this to user feedback, and evolving it through several versions until an acceptable system has been developed.

T

@Reuse is now the standard approach for building many types of business system

T

@Waterfall model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.

T

@When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities.

T

@in Incremental Customers can comment on demonstrations of the software and see how much has been implemented.

T

@in Incremental The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model.

T

@in reuse the initial "requirements specification" phase and the "validation" phase are comparable with other software processes

T

Incremental development activities of a process are not separated but interleaved with feedback involved across those activities.

T

4 - Development and integration.

The components are integrated to create the new system. System integration, in this model, may be part of the development process rather than a separate activity.

Incremental development benefits

The cost of accommodating changing customer requirements is reduced. It is easier to get customer feedback on the development work that has been done. More rapid delivery and deployment of useful software to the customer is possible.

Incremental development problems

The process is not visible. System structure tends to degrade as new increments are added.

Reuse-oriented software engineering

This approach is based on the existence of a significant number of reusable components. The system development process focuses on integrating these components into a system rather than developing them from scratch.

supporting-activities of software process

documentation and software configuration management

Change tolerance

where the process is designed so that changes can be accommodated at relatively low cost. This normally involves some form of incremental development. Proposed changes may be implemented in increments that have not yet been developed. If this is impossible, then only a single increment (a small part of the system) may have to be altered to incorporate the change.

Change avoidance

where the software process includes activities that can anticipate possible changes before significant rework is required. For example, a prototype system may be developed to show some key features of the system to customers. They can experiment with the prototype and refine their requirements before committing to high software production costs.


Related study sets

Chapter 54: Management of Patients With Kidney Disorders

View Set

Who, what, when, where, why, how

View Set

accounting chapter 11: pre test/objective test

View Set

26.3- Spermatogenesis occurs in the testes and produces mature sperm

View Set

Systems Analysis and Design | Chapter 1

View Set

CH 23 Southwest and Central Asia Cultures and History S 4 Saudi Arabia Oil and Islam

View Set

Nathan Li Anatomy & Physiology Chapter 9 Nervous System

View Set

Writing a Narrative about Overcoming a Challenge | English 1

View Set

Environmental Pollution study guides

View Set