Software Development
Life Cycle
What is Software?
Instructions (computer programs) that when executed
provide desired function and performance
Data structures enable the programs to adequately
manipulate information
Documents that describe the operation and use of the
program
Software engineering : A Practitioner's Approach
A definition of the software
development:
The application of a systemic, disciplined,
quantifiable approach to development,
operation, and maintenance of software.
Who’s Who
CUSTOMER Sponsors system
development
$$$, DEVELOPER
needs
USER Contractual
obligation
Uses Builds
system system
Needs
Software system
What is the Software Life Cycle
Software Engineering is a
series of steps for producing
software.
Methods, procedures, and
tools are defined.
Engineering discipline
Metrics and measures -
prediction
Classic Life Cycle Models
Linear sequential (Waterfall)
Prototyping
Rapid Application
Development (RAD)
Incremental (Block Release)
Spiral
Component Assembly
Concurrent Development
Fourth Generation techniques
Rapid Application Development
(RAD)
A good model for small VB systems
The IDE is designed to allow us to develop
the small system.
Waterfall Model
REQUIREMENTS
ANALYSIS
SYSTEM
DESIGN
PROGRAM
DESIGN
CODING
UNIT & INTE-
GRATION TESTING
SYSTEM
TESTING
ACCEPTANCE
TESTING OPERATION
& MAINTENANCE
“Interactive” (Chaotic) Model
REQUIREMENTS
ANALYSIS
MAINTENANCE
SYSTEM
DESIGN
DELIVERY
PROGRAM
DESIGN
SYSTEM
TESTING
PROGRAM
INTEGRATION IMPLEMENTATION
TESTING UNIT
TESTING
Waterfall with Prototyping
REQUIREMENTS
Validate
ANALYSIS
SYSTEM
Verify
DESIGN
PROGRAM
DESIGN
CODING
PROTOTYPING UNIT & INTE-
GRATION TESTING
SYSTEM
TESTING
ACCEPTANCE
TESTING OPERATION
& MAINTENANCE
Prototyping Cycles
LIST OF LIST OF LIST OF
REVISIONS REVISIONS REVISIONS
revise user/
prototype customer
review
PROTOTYPE PROTOTYPE PROTOTYPE TEST
REQUIREMENTS DESIGN SYSTEM
DELIVERED
SYSTEM SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
Multiple Builds
Development systems
DEVELOPERS
Build Release 1 Build Release 2 Build Release 3
Time
USERS
Use Release 1 Use Release 2 Use Release 3
Production systems
Spiral Model
Planning
Customer Risk
Communication Analysis
Start Axis
Customer
Evaluation Development
Integration
Process Metrics
Process Assessment
Document review
Peer reviews:
completed vs scheduled
results reported
Problem report status
Product Quality
Defect characteristics
Difficulty of accurate measurement
Let us Examine the Classic
Waterfall Model
Linear sequential model
Tries to define each part of the cycle
Very good method for developing large
systems
Stage 1: Defining the problem
What Happens in this Stage:
To Identify and understand the problem you
must look at the:
Needs of Users and System
Objectives that the solution is to meet
Boundaries of solution
Feasibility Study
Design Specifications Modelling System
User Requirements System Requirements
Stage 1: Design specification
The design specification helps you form the
basis for the planning and designing the final
solution.
You will use this specification throughout the
system development to help plan, build and
test the final solution.
The Design specifications give a workable
framework to aid development of the system
(and further understanding of the system).
Stage 1:
A quote on the problem of ill-defined system
requirements:
"the creation of software requirements is
reminiscent of hiking in a fog that is gradually
lifting”
Software Productivity Research Inc (1996)
Stage 1: Design specifications
You need to consider the specification for the
USER and the System (Developer's) point of
view.
Developer: Overall design specifications
User: Interface design specifications
Stage 1: Activity:
Developer's perspective
Algorithms,
Variables
Software design approach
Modelling the system
Documentation
User's perspective
Screen design
Ergonomic issues
Appropriate icons
Appropriate screen messages
Social and ethical issues
Relevant data formats for display
Stage 1: System Documentation:
Modelling different aspects of the System
Modelling tools are part of the documentation to be
interpreted by developers, maintainers and users, and
are used to represent a system.
They use diagrammatic methods and include:
Input Process Output (IPO) diagrams
System Flowcharts
Storyboards
Screen designs
Dataflow diagrams
Prototype
Stage 1: Questions:
Q 1: What are the aims of the first stage of the
development cycle?
Q 2: Why is the problem specification so important
in this stage?
Q 3: Why are modelling tools used in this stage?
Stage 2: Planning and Design of
Software Solution
Documentation and Models developed in
previous stage are used to give an overall view
of system design and help in the development of
data structures and logic necessary to fully
develop each module.
Stage 2: Planning and Design of
Software Solution
What Happens in this Stage:
The Planning stage consists of designing a solution. So in
this stage you need to:
1: Identify all inputs, outputs and processes
2: Select and describe relevant Data Structures
3: Create the Algorithm for final solution.
Stage 2 :
Use structured programming techniques of writing
programs.
You need to define your system's Data Structures
and files
You need to be able to recognize the logic in
Standard Algorithms
You need to test your algorithm
Documentation tools used to represent the overall
software solution in diagrammatic form
Chose your programming language wisely
Stage 2 : Questions:
Q 1: Which Documentation tools in the above table are used in
"stage one" of the SDC to help you understand and "model" the
new system.
Q 2: Which Documentation tools in the above table are used in
"stage two" of the SDC to help you Represent a Solution to the
problem.
Q 3: What is the different between customised and standard
algorithms?
Q 4: What information does a data dictionary hold?
Q 5: What is the term used for the ‘computer software’ that the
development team uses to help with analysis documentation and
development?
Q 6: Say the Planning stage is complete and the Programmer is
about to start to code. Select any two of the Representation Tools
below and describe how they both can complement each other to
give the programmer a better description of the system
Data dictionary, structure diagram, algorithm, IPO chart
Stage 3: Implementation of Software
Solution
What happens in this stage:
Source code written and tested., Ensure effective user
interface
Stage 3:
Use tools and techniques that will help correct and
detect errors.
Understand the Type of errors :
Syntax, Logic, Run-time
Consider the Hardware and software requirement of new
software.
Stage 3: Questions
Q 1: State one documentation prepared in this stage and
describe why it is important AND who is it important for?
Stage 4: Testing and Evaluation of
Software Solution
What happens in this stage:
Verify program solution using test data both at
program and system level.
Testing and Evaluation is integral to all stages.
Test that the Systems original “System Requirements
and Objectives” are being met.
Are we doing the “RIGHT JOB?”
Are we doing the “JOB RIGHT?”
Stage 4: Testing and Evaluation of
Software Solution
To ensure a quality product testing and evaluation is
done.
Quote: “definitions of software testing, however, boil
down to essentially the same thing: software testing is
the process of executing software in a controlled
manner, in order to answer the question ”Does the
software behave as specified?” .”
Stage 4: Questions
Q 1: What is the result from stage one of the SDC that is
used in this stage to help rest the solution?
Stage 5: Maintenance of Software Solution
What happens in this stage:
On-going process of corrections and refinement.
Modifications to code, macro, and scripts are often required. These
modifications do not need to be made by original developers.
In these situations, the original documentation is very important.
You need to keep in mind the ethical issues associated with
assessing and modifying the code of others.
For all Changes:
Test changes
Document changes
Modify present documentation