lecture 3
lecture 3
SOFTWARE
ENGINEERING
Lecture 3 : Chapter 2 – Software Processes
(cont.)
2
Process Activities
• The four basic process activities are:
1. Specification
2. Development
3. Validation
4. Evolution
• They are organized differently in different development
processes
o In the waterfall model, they are organized in sequence
o whereas in incremental development they are interleaved.
1. Software Specification
• Also called REQUIREMENTS ENGINEERING, functions
are:
• Understanding and defining system required services
• identifying the constraints on the system’s operation and development.
• produce an agreed requirements document that specifies a system
satisfying stakeholder requirements.
• critical stage of the software process
• errors at this stage inevitably lead to later problems in the system
design and implementation
• Requirements are presented at two levels of detail:
• End-users and customers: need a high-level statement of the
requirements
• System developers: need a more detailed system specification.
4
3. Software Validation
• Also known as verification and validation (V&V) aims to
show that a system both conforms to its specification and
that it meets the expectations of the system customer.
• Program testing, where the system is executed using
simulated test data, is the principal validation technique.
Stages of testing
9
4. Software Evolution
• Accepted software leads to hardware manufacturing
which is hard and expensive to be changed
• Software should accept changes more easily
• Software maintenance is a boring and dull activity.
• But it’s never less important than software development
which is an interesting one.
• Figure in the next slide shows that software is continually
changed over its lifetime in response to changing
requirements and customer need.
12
System Evolution
13
1. Prototyping
• What is a prototype:
A prototype is an initial version of a software system that is used to:
Demonstrate concepts
try out design options
find out more about the problem and its possible solutions
• Benefits of a prototype:
Costs are controlled
system stakeholders can experiment with the prototype early in the software
process.
In the requirements engineering process, a prototype can help with the
elicitation and validation of system requirements.
In the system design process, a prototype can be used to explore particular
software solutions and to support user interface design
• Prototypes do not have to be executable to be useful. Paper-based
mock-ups of the system user interface can be effective in helping
users refine an interface design and work through usage scenarios.
15
2. Incremental development
• Some increments of the system are delivered to the customer
and deployed for use in an operational environment.
• customers identify, in outline, the services to be provided by the
system and arrange them according to priority.
• The highest-priority services are implemented and delivered
first via an increment providing a sub-set of the system
functionality.
• During development, further requirements analysis for later
increments can take place
• But requirements changes for the current increment are not
accepted.
• Once an increment is completed and delivered,customers can
put it into service.
16
o Objective setting
o Specific objectives for the phase are identified.
o Risk assessment and reduction
o Risks are assessed and activities put in place to reduce the key
risks.
o Development and validation
o A development model for the system is chosen which can be
any of the generic models. Development takes place.
o Planning
o The project is reviewed and the next phase of the spiral is
planned.
22
Key points
Key points