Professional Documents
Culture Documents
Requirements specification
Software discovery and evaluation
Requirements refinement
Application system configuration
Component adaptation and integration
Requirements specification
The initial requirements for the system are
proposed.
These do not have to be elaborated in detail but
should include brief descriptions of essential
requirements & desirable features.
Software discovery and evaluation
Given an outline of the software requirements,
Search is made for components and systems that
provide the functionality required.
Candidate components and systems are evaluated
to see if they meet the essential requirements and if
30/10/2014
they are generallyChapter
suitable for use in the system
2 Software Processes 21
Key process stages
Requirements refinement
Requirements are refined using information about the reusable
components, and modified to reflect the available components.
Where modifications are impossible, the component analysis
activity may be reentered to search for alternative solutions.
Application system configuration
If an off-the-shelf application system that meets the
requirements is available, it is configured for use to create the
new system.
Component adaptation and integration
If there is no off-the-shelf system, individual reusable
components may be modified and new components developed.
These are then integrated to create the system.
Component testing
Individual components are tested independently;
Components may be functions or objects or coherent
groupings of these entities.
System testing
System components are integrated to create a
complete system.
Testing of the system as a whole. Testing of emergent
properties is particularly important.
Customer testing
Testing with customer data rather than with simulated
test data, to check that the system meets the
30/10/2014
customer’s needs.Chapter 2 Software Processes 36
Normally, component testing is simply part of normal
development process. Programmers make up their own
test data and incrementally test the code.
In an incremental approach, each increment should be
tested as it is developed.
In test-driven development / agile processes, tests are
developed along with the requirements before
development starts. This helps the testers and
developers to understand the requirements.
When a plan-driven software process is used (for critical
systems development), testing is driven by a set of test
plans. which have been developed from the system
specification and design
30/10/2014 Chapter 2 Software Processes 37
Testing phases in a plan-driven software
process (V-model)
Incremental development
Develop the system in increments and evaluate each
increment before proceeding to the development of
the next increment;
Normal approach used in agile methods;
Evaluation done by user/customer proxy.
Incremental delivery
Deploy an increment for use by end-users;
More realistic evaluation about practical use of
software;
Difficult to implement for replacement systems as
increments have less functionality than the system
30/10/2014being replaced. Chapter 2 Software Processes 53
Incremental delivery
Process measurement
You measure one or more attributes of the software process
or product. These measurements forms a baseline that
helps you decide if process improvements have been
effective.
Process analysis
The current process is assessed, and process weaknesses
and bottlenecks are identified. Process models (sometimes
called process maps) that describe the process may be
developed.
Process change
Process changes are proposed to address some of the
identified process weaknesses. These are introduced and
the cycle resumes to collect data about the effectiveness of
30/10/2014 Chapter 2 Software Processes 61
the changes.
Process measurement