Software Process
Software Process defines the way to
produce software. I t includes
Software Life Cycle and Models
Software life-cycle model
Tools to use
Rajkumar Buyya
Individuals building software
Grid Computing and Distributed Systems Lab Software life-cycle model defines how
Dept. of Computer Science and Software Engineering
University of Melbourne, Australia
different phases of the life cycle are
http:// www.buyya.com managed.
1 2
Phases of Software Life-cycle Requirements
Requirements Assumption
Specification (Analysis)
The software being considered is considered
economically justifiable.
Design
I mplementation Concept exploration
I ntegration
Determine what the client needs, not what
the client wants
Maintenance
Retirement Document - Requirements Document
3 4
Specification (Analysis) Phase Design Phase
From the customer requirements identify
From the specification identify how to build.
what to build.
Design involves two steps
Specifications must not be
Architectural Design – Identify modules
Ambiguous
Detailed Design – Design each modules
Incomplete
Contradictory
Document – Architecture Document, Design
Document
Document – Specification Document
5 6
Implementation Phase Integration Phase
I mplement the detailed design in code. Combine the modules and test the
product as a whole.
Developer testing
Testing includes
Unit testing
Product testing
Module testing
Acceptance testing
Document – Commented source code Document – Test cases and test results
7 8
Maintenance Phase Retirement Phase
Any changes after the customer accepts the
Good software is maintained
system.
Sometimes software is rewritten from scratch
Software is now un-maintainable because
A drastic change in design has occurred
Maintenance phase is the most expensive
The product must be implemented on a totally new
Lack of documentation
hardware/operating system
Documentation is missing or inaccurate
Regression testing
Hardware is to be changed—it may be cheaper to rewrite
the software from scratch than to modify it
Document – Documented Changes, Regression
True retirement is a rare event
test cases
9 10
Life-Cycle Models Build and Fix Model
Build-and-fix model
Waterfall model
Rapid prototyping model
Incremental model
Extreme programming
Synchronize-and-stabilize model
Spiral model
Object-oriented life-cycle models
Comparison of life-cycle models
11 12
Notes Waterfall Model
Most software is developed using build-and-fix model.
Basically there is no model.
No specifications
No design
This model is completely unsatisfactory and should not
be adopted.
Need life-cycle model
“Game plan”
Phases
Milestones
13 14
Notes Rapid Prototyping Model
Output from one phase is fed as input to the next
phase.
One phase is completed, documented and signed-off
before the next phase begins.
Advantages
Each phase is well documented.
Maintenance easier.
Disadvantages
If there is a mismatch between what the client wanted and was
is built this will not be known till the product is delivered.
15 16
Notes Summary
A prototype of the product is build rapidly and shown to
Software Engineering is an important
the client before the product is completely built.
discipline due to various aspects.
Advantages :
Any mismatches between requirement and the
product can be found early.
Analysis and Design are two very
Disadvantages : important phases in the software
Sometimes the prototype ends up being the final
development lifecycle.
product which results in quality, maintenance
problems.
17 18
Reference
Stephen Schach, Classical and Object-
Oriented Software Engineering with UML
and Java, Chapter 3, McGraw-Hill, New
York, USA.
http:/ / www.mhhe.com/ engcs/ compsci/ schac
h5/ samplech.mhtml
Any other book on software engineering
is also fine!
19