04 Generic Software Engineering Process
04 Generic Software Engineering Process
Process
Generic Phases
• Definition Phase
– Focus on ‘what’ the software is
• Development Phase
– Focus on ‘how’ the software works
• Maintenance Phase
– Focus on ‘change’ to the software
2
Definition Phase
• Identify information to be processed
• Identify system behavior - functions and
performance
• Determine constraints, interfaces, validation
criteria
• Major tasks:
– System engineering
– Software project planning
– Requirements analysis
3
Development Phase
• Define data structures, function
implementation, procedural details, interfaces
• Translate design to programming language
• How testing is performed
• Major tasks:
– Software design
– Code generation
– Software testing
4
Maintenance Phase
• Reapplies definition and development phases
to existing software
• Types of changes:
– Correction
– Adaptation
– Enhancement
– Prevention
5
Generic software Process Model
• Models:
– Waterfall model or classic life cycle
– The evolutionary models
• Prototyping
• The Spiral model
• The Concurrent development model
– Incremental process model
• The incremental model
• RAD (Rapid Application Development) model
– Specialized process models
• Component based development
• The formal methods model
• Aspect Oriented Software Development (AOSD)
– The Unified process model
6
Waterfall Model
System
Engineering
Analysis
Design
Code
Testing
Maintenance
7
Waterfall model for development
• Here steps are arranged in linear order
– A step has take inputs from previous step, gives
output to the next step(if any)
– Exit criteria of step must match with entry criteria
of the succeeding step
• It follows specify design build sequence
that is intuitively obvious and appears natural.
• Produce many intermediate deliverables,
usually documents.
8
Waterfall Model Characteristics
• The classic life cycle - oldest and most widely
used paradigm
• Activities ‘flow’ from one phase to another
• If there are corrections, return to a previous
phase and ‘flow’ from there again
• Major advantages: Good for planning and
well-defined/repeated projects
9
Deliverable in waterfall model
• Project plan and feasibility report
• SRS (Software Requirement Specifications)
• System design documents
• Detailed design document
• Test plans and test reports
• Source code
• Software manuals (user manual, installation manual)
• Review reports.
10
Problems of Waterfall Model
• Real projects often follow the sequence
• All requirements may not be stated explicitly by customer
• Customer only sees the results after some time
• Developers are often delayed at certain phases
• this model is only appropriate when the requirements are
well-understood and changes will be fairly limited during
the design process.
• Few business systems have stable requirements.
• The waterfall model is mostly used for large systems
engineering projects where a system is developed at several
sites.
11
Prototyping Model
Start
Requirements listen
Quick Building to build/revise
gathering and customer mock-up
refinement design prototype
Stop
Prototyping Model Characteristics
• Developer and customer determine objectives
and draft requirements
• Prototype quickly produced and evaluated by
customer
• Prototype then refined, and re-evaluated
• Process iterated, before final product
development
• Advantages: Customer participation and better
requirements
Problems of Prototyping Model
• Customer may see prototype as working model and
expects fast results
• Developer compromised when producing prototype
quickly, e.g. different operating system or programming
language
• Developer may continue with implementation choices
made during prototyping
– May not give required quality, performance
• Good tools need to be acquired for quick development
• May increase project cost.