CSC440 Chapter 2: Software Processes (Software Engineering, Sommerville, 10th Edition)

Ace your homework & exams now with Quizwiz!

Four main design activities

1) Architectural design 2) Database design 3) Interface design 4) Component selection and design

Two related approaches to reducing the cost of rework

1) Change anticipation: activities that can anticipate possible changes before significant rework is required 2) Change tolerance: where the process is designed so that changes can be accommodated at relatively low cost

Three Stages of Testing

1) Component testing 2) System testing 3) Acceptance (Customer) testing

Systems where the waterfall method is more appropriate

1) Embedded systems where the software has to interface with hardware systems 2) Critical systems where there is a need for extensive safety and security analysis 3) Large software systems that are a part of broader engineering systems

Process maturity levels

1) Initial - Few processes defined 2) Repeatable - Basic project management, requirements, and documentation are known 3) Defined - Process management procedures and strategies defined and used 4) Managed - Quality management strategies defined and used 5) Optimizing - Process improvement strategies defined and used

Process improvement activities

1) Measurement 2) Analysis 3) Change

Incremental delivery problems

1) Most systems require a set of basic facilities that are used by different parts of the system 2) The essence of iterative processes is that the specification is developed in conjunction with the software

Two approaches to process improvement

1) Process maturity approach 2) The agile approach

Advantages of reuse oriented software development

1) Reduced cost and risks as less software is developed from scratch 2) Faster delivery and deployment of system

Disadvantages of reuse oriented software development

1) Requirements compromises are inevitable so system may not meet real needs of users 2) Loss of control over evolution of reused system elements

Phases of the Waterfall model

1) Requirements definition 2) Systems and software design 3) Implementation and unit testing 4) Integration and system testing 5) Operation and maintenance

Three stages of the requirements engineering process

1) Requirements elicitation and analysis: What do the stakeholders require or expect? 2) Requirements specification: Defining those requirements in detail 3) Requirements validation: Checking the validity of those requirements

Key process stages of reuse based software engineering

1) Requirements specification 2) Software discovery and evaluation 3) Requirements refinement 4) Application system configuration 5) Component adaptation and integration

Four main software processes

1) Specification 2) Design and Implementation 3) Validation 4) Evolution

Four basic process activities of software development

1) Specification 2) Development 3) Validation 4) Evolution

Types of reusable software

1) Standalone application systems that are configured for use in a particular environment 2) Collections of objects that are developed as a package to be integrated into a framework 3) Web services that are developed according to service standards and which are available for remote invocation

Three main benefits of incremental development

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

Two main concerns with incremental development

1) The process is not visible 2) System structure tends to degrade as new increments are added

Incremental delivery advantages

1. Customer value can be delivered with each increment so system functionality is available earlier. 2. Early increments act as a prototype to help elicit requirements for later increments. 3. Lower risk of overall project failure. 4. The highest priority system services tend to receive the most testing.

Benefits of Prototyping

1. Improved system usability 2. A closer match to users' real needs 3. Improved design quality 4. Improved maintainability 5. Reduced development effort

Software Process

A structured set of activities required to develop a software system.

What is one of the main difficulties facing a pure waterfall model development project?

Accommodating change after the process is underway.

Describe the planning of Plan-driven processes

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

Software Process Model

An abstract representation of a process. It presents a description of a process from some particular perspective.

Name some examples of how and why system requirements can change

External pressures (Usually means money) Competition Changed management priorities

T or F: The four process activities of software development are organized the same regardless of what process model is being used

False! For example, in the waterfall model they are organized in sequence whereas in incremental development they are interleaved

Process improvement: Process maturity approach

Focuses on improving process and project management and introducing good software engineering practice. The level of process maturity reflects the extent to which good technical and management practice has been adopted in organizational software development processes

Process improvement: The agile approach

Focuses on iterative development and the reduction of overheads in the software process.

Reuse-Based Development: Application system configuration stage

If an off-the-shelf application system is available that meets the requirements, then it is configured for use in the new system

Reuse-Based Development: Component adaptation and integration stage

If there is no off-the-shelf application available, individual reusable components may be adapted and new components developed. These are then integrated into the system

Software evolution

Modifying or changing the software to meet changing customer needs.

Waterfall Model Process Model

Plan-driven model. Separate and distinct phases of specification and development.

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. Process descriptions may also include:

Products: The outcomes of a process activity Roles: Reflect the responsibilities of the people involved Pre- and Post-Conditions: Statements that are true before and after a process activity has been enacted or product produced

The integration and configuration software process model is based on what major concept?

Software reuse: Reused elements may be configured to adapt their behavior and functionality to a user's requirements

Incremental Development Process Model

Specification, development and validation are interleaved. May be plan-driven or agile.

System testing

Testing the entire system as one entity to ensure that it is working properly

Acceptance or Customer testing

Testing with customer data to check that the system meets the customer's needs.

Software design and implementation

The process of converting the system specification into an executable system.

Software Specification

The process of establishing what services are required and the constraints on the system's operation and development.

Integration and Configuration Process Model

The system is assembled from existing configurable components. May be plan-driven or agile.

Component testing

The testing of individual software components.

T or F: Most practical processes include elements of both plan-driven and agile approaches.

True!

T or F: Reuse is now the standard approach for building many types of business systems?

True!

T or F: 80% of Waterfall type projects fail

True! (According to Prof. Fazi)

T or F: Prototypes should be discarded after development and why?

True! They are not a good basis for a production system because it may be impossible to tune the system to meet non-functional requirements, they are normally undocumented, the structure is degraded through rapid change, and usually they do not meet normal organizational quality standards

Process Improvement

Understanding existing processes and changing these processes to increase product quality and/or reduce costs and development time.

Software validation (V & V)

Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing.

Coping with change: System Prototyping

Version of the system or part of the system is developed quickly to check the customer's requirements and the feasibility of design decisions. This approach supports change anticipation.

Coping with change: Incremental delivery

Where system increments are delivered to the customer for comment and experimentation. This supports both change avoidance and change tolerance.

Interface design

Where you define the interfaces between system components.

Database design

Where you design the system data structures and how these are to be represented in a database.

Architectural design

Where you identify the overall structure of the system, the principal components (subsystems or modules), their relationships and how they are distributed.

Component selection and design

Where you search for reusable components. If unavailable, you design how it will operate.


Related study sets

Chapter Exam: Louisiana Laws and Rules

View Set

Increased Intracranial Pressure and Traumatic Brain Injury

View Set

BOCHATON Cardio-vasculaire & lymphatique

View Set