Software Enggniring: What Is A Software Process?
Software Enggniring: What Is A Software Process?
Waterfall model
Evolutionary development
Incremental model
Spiral model
Software Process Activities
Specification
Validation
Evolution
The first three of these approaches are all being used for practical system
development. Some systems have been built using formal transformation but
this is still an untried approach. The re-use-oriented model is still not
commercially viable because of the lack of reusable component libraries.
System and
software design
Implementation
and unit testing
Operation and
maintenance
Advantages:
Applicability:
• When requirements are well known and few changes are likely to be
needed
• Can be used also for parts of larger software systems
2. Evolutionary Development…
This is based on the idea of developing an initial implementation, exposing it to
the user and refining this through many stages until an adequate system has
been developed
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
Main characteristics
Advantages:
Disadvantages:
Applicability:
• When requirements are not well understood
• When the client and the developer agree on a “rapid prototype” that will be
thrown away
• Good for small and medium-sized software systems
3. Component-based Software
Engineering…
Main characteristics:
Development System
and integration validation
Advantages:
4. Incremental Development…
Main characteristics:
Advantages:
Disadvantages:
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
Advantages:
Risk reduction mechanisms are in place
Supports iteration and reflects real-world practices
Systematic approach
Disadvantages:
Requires expertise in risk evaluation and reduction
Complex, relatively difficult to follow strictly
Applicable only to large systems
Applicability:
Internal development of large systems
Process Activities
1. Specification
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
Design activities
Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification
Design products
3. Testing..
The debugging process
Locate Design Repair Re-test
error error repair error program
Testing phases
Requirements System System Detailed
specification specification design design
System evolution
Existing New
systems system
Analysis and
Programming Testing
design