2. What is a Process … ?
• When we provide a service or create a product we
always follow a sequence of steps to accomplish a set
of tasks
▫ You do not usually
bake a cake before all the ingredients are mixed together
• We can think of a series of activities as a process
2
3. What is a Process … ?
• Any process has the following characteristics
▫ It prescribes all of the major activities
▫ It uses resources and produces intermediate and
final products
▫ It may include sub-processes and has entry and exit
criteria
▫ The activities are organized in a sequence
▫ Constraints or controls may apply to activities
(budget constraints, availability of resources , etc.)
3
4. The software process
• A structured set of activities that leads to the development of
a software product.
From scratch
By extending and modifying existing systems
• Basic Process activities(common to all software Processes)
▫ Specification
▫ Design
▫ Validation
▫ Evolution
5. Software specification/requirement
engineering
• The process of understanding and defining
- what services are required from the system
- Identify the constraints on the system’s operation and
development
- Critical Stage of the software process
- The “what” of the software life cycle
6. Software specification(contd..)
• Four main phases in requirements engineering
process
▫ Feasibility study
▫ Requirements elicitation and analysis
▫ Requirements specification
▫ Requirements validation
7. Software specification(contd..)
1.Feasibility study :
- an estimate is made of whether the identified user
needs may be satisfied using current software and
hardware technologies.
- whether the proposed system will be cost effective
- the decision of whether to go ahead with a more
detailed analysis.
8. Software specification(contd..)
Requirements elicitation and analysis:
This is the process of deriving the system requirements through
- observation of existing systems
- discussions with potential users
- task analysis, etc.
This may involve the development of one or more different
system models and prototypes. These help analyst
understand the system to be specified.
9. Software specification(contd..)
Requirements specification:
is the activity of translating the information gathered during
the analysis activity into a document that defines a set of
requirements.
Two types of requirements :
• User requirements
• System requirements
Requirements validation :
This activity checks the requirements for realism, consistency
and completeness.
10. The requirements engineering process
Feasibility
study
Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation
Feasibility
report
System
models
User and system
requirements
Requirements
document
11. The requirements engineering process
Note :
Of course the activities in the requirements process are not simply carried
out in a strict sequence. Therefore, the activities of analysis, definition
and specification are interleaved.
12. Software design and implementation
• The process of converting the system specification
into an executable system
• Software design
▫ Description of the structure of software to be
implemented
• Implementation
▫ Translate this structure into an executable program
• The activities of design and implementation are
closely related and may be inter-leaved
• The “how” of the software life cycle
14. The software design process
1.Architectural design The sub-systems making up the
system and their relationships are identified and
documented.
2.Abstract specification For each sub-system, an
abstract specification of its services and the
constraints under which it must operate is produced.
15. The software design process
• Interface design For each sub-system, its interface
with other sub-system is designed and documented.
This interface specification must be unambiguous as
it allows the sub-system to be used without
knowledge of the sub-system operation.
1.Component design Services are allocated to
different components and the interfaces of these
components are designed.
16. The software design process
1.Data Structure design The data structures used in
the system implementation are designed in detail
and specified.
2.Algorithm design The algorithms used to provide
services are designed in detail and specified.
17. The software design process
Architectural
design
Abstract
specification
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Requirements
specification
Design activities
Design products
18. The software design process
In many software development projects, software
design is still an ad hoc process. Starting from a set
of requirements, usually in natural language, an
informal design is prepared.
A more methodical approach to software design is
proposed by “structured methods” which are sets of
notations and guidelines for software design.
19. Design methods
• Systematic approaches to developing a software
design
• The design is usually documented as a set of
graphical models
• Possible models
▫ Data-flow model
▫ Entity-relation-attribute model
▫ Structural model
▫ Object models
20. Programming and debugging
• Translating a design into a program and removing
errors from that program
• Programming is a personal activity - there is no
generic programming process
• Programmers carry out some program testing to
discover faults in the program and remove these
faults in the debugging process
22. Software validation
• Verification and validation 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
23. The testing process
Sub-system
testing
Module
testing
Unit
testing
System
testing
Acceptance
testing
Component
testing
Integration testing User
testing
24. Testing stages
• Unit testing
▫ Individual components are tested
• Module testing
▫ Related collections of dependent components are tested
• Sub-system testing
▫ Modules are integrated into sub-systems and tested. The focus here
should be on interface testing
• System testing
▫ Testing of the system as a whole. Testing of emergent properties
• Acceptance testing
▫ Testing with customer data to check that it is acceptable
25. Testing phases
Requirements
specification
System
specification
System
design
Detailed
design
Module and
unit code
and tess
Sub-system
integration
test plan
System
integration
test plan
Acceptance
test plan
Service
Acceptance
test
System
integration test
Sub-system
integration test
26. 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
• Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems
are completely new
27. System evolution
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems