Process Activities
Process Activities
1
Process activities
✧ Real software processes are interleaved sequences of technical,
collaborative and managerial activities with the overall goal of
specifying, designing, implementing and testing a software system.
✧ The four basic process activities of specification, development,
validation and evolution are organized differently in different
development processes.
✧ For example, in the waterfall model, they are organized in
sequence, whereas in incremental development they are
interleaved.
2
The requirements engineering process
3
Software specification
✧ The process of establishing what services are required and the
constraints on the system’s operation and development.
✧ Requirements engineering process
– Requirements elicitation and analysis
• What do the system stakeholders require or expect from the system?
– Requirements specification
• Defining the requirements in detail
– Requirements validation
• Checking the validity of the requirements
4
Software design and implementation
✧ The process of converting the system specification into an
executable system.
✧ Software design
– Design a software structure that realises the specification;
✧ Implementation
– Translate this structure into an executable program;
✧ The activities of design and implementation are closely
related and may be interleaved.
5
A general model of the design process
6
Design activities
✧ Architectural design, where you identify the overall structure of the
system, the principal components (subsystems or modules), their
relationships and how they are distributed.
✧ Database design, where you design the system data structures and
how these are to be represented in a database.
✧ Interface design, where you define the interfaces between system
components.
✧ Component selection and design, where you search for reusable
components. If unavailable, you design how it will operate.
7
System implementation
✧ The software is implemented either by developing a program
or programs or by configuring an application system.
✧ Design and implementation are interleaved activities for most
types of software system.
✧ Programming is an individual activity with no standard
process.
✧ Debugging is the activity of finding program faults and
correcting these faults.
8
Software validation
✧ 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.
✧ System testing involves executing the system with test cases
that are derived from the specification of the real data to be
processed by the system.
✧ Testing is the most commonly used V & V activity.
9
Stages of testing
10
Testing stages
✧ Component testing
– Individual components are tested independently;
– Components may be functions or objects or coherent groupings of these entities.
✧ System testing
– Testing of the system as a whole. Testing of emergent properties is particularly
important.
✧ Customer testing
– Testing with customer data to check that the system meets the customer’s needs.
11
Testing phases in a plan-driven software process
(V-model)
12
Software evolution
✧ Software is inherently flexible and can change.
✧ As requirements change through changing business
circumstances, the software that supports the business
must also evolve and change.
13
System evolution
14
Key points
✧ Requirements engineering is the process of developing a software
specification.
✧ Design and implementation processes are concerned with transforming a
requirements specification into an executable software system.
✧ Software validation is the process of checking that the system conforms to
its specification and that it meets the real needs of the users of the
system.
✧ Software evolution takes place when you change existing software
systems to meet new requirements. The software must evolve to remain
useful.
15