Software Processes (SE)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Software processes

A software process is a set of related activities that leads to the production of a soft- ware product.

There are many different software processes but all must include four activities that are fundamental to software
engineering:

1. Software specification The functionality of the software and constraints on its operation must be
defined.
2. Software design and implementation The software to meet the specification must be produced.
3. Software validation The software must be validated to ensure that it does what the customer wants.
4. Software evolution The software must evolve to meet changing customer needs.

Software process models


1. The waterfall model This takes the fundamental process activities of specification, development,
validation, and evolution and represents them as separate process phases such as requirements
specification, software design, implementation, testing, and so on.

2. Incremental development This approach interleaves the activities of specifica- tion, development, and
validation. The system is developed as a series of versions (increments), with each version adding
functionality to the previous version.
3. 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.

Because of the cascade from one phase to another, this model is known as the ‘waterfall model’ or
software life cycle. The waterfall model is an example of a plan-driven process—in principle, you must
plan and schedule all of the process activities before starting work on them.

The principal stages of the waterfall model directly reflect the fundamental devel-

opment activities:

1. Requirements analysis and definition The system’s services, constraints, and goals are established by
consultation with system users. They are then defined in detail and serve as a system specification.
2. System and software design The systems design process allocates the require- ments to either hardware
or software systems by establishing an overall system architecture. Software design involves
identifying and describing the fundamen- tal software system abstractions and their relationships.
3. Implementation and unit testing During this stage, the software design is real- ized as a set of programs
or program units. Unit testing involves verifying that each unit meets its specification.
4. Integration and system testing The individual program units or programs are integrated and tested as a
complete system to ensure that the software requirements have been met. After testing, the software
system is delivered to the customer.
5. Operation and maintenance Normally (although not necessarily), this is the longest life cycle phase.
The system is installed and put into practical use. Maintenance involves correcting errors which were
not discovered in earlier stages of the life cycle, improving the implementation of system units and
enhancing the system’s services as new requirements are discovered.

Incremental development

Reuse-oriented software engineering

You might also like