The Software
Development Process
(Lecture 7)
10 the 90% syndrome
0
percent
complete
75
50
25
0
Start time End
quick start to coding lack of defined stages
concurrent analysis, lack of control
design, coding 90% syndrome
stage 2
stage 1 stage 4
stage 3
deliverable 1
task 1 deliverable 2
task 2 deliverable 3
deliverable 4
task 3 deliverable 5
project
Outputs
Inputs Stage (Deliverables)
baseline
Outputs
Inputs Stage (Deliverables)
baseline
Working to Standards
Outputs Applying Techniques
Inputs Stage (Deliverables) Appropriate
Correctly
baseline
Quality Assessed via…
Reviews
Walkthroughs
Quality Inspections
Testing
Structured Techniques
Outputs Dataflow Diagrams
Inputs Stage (Deliverables) Logical Data Models
etc
baseline
Object Oriented Techniques
Class Diagrams
Sequence Diagram
Quality etc
Techniques
Pseudo Code
Jackson Structured design
Hardware
Outputs Software
Inputs Stage (Deliverables) Staff
e.g Detailed Design
baseline
Database Designer
SQL Programmers
Web page designer
Resources Quality
Techniques
Feasibility Stages depend on
Study particular
Analysis size/type of project
System
Design Detailed
Design
Coding
& Testing
Integration
& Testing
Maintenance
When to use the Waterfall Model
Feasibility Maintenance/
Study Operation
Analysis Acceptance
System
Testing
Specification System Integration Verified &
Design Validated System
Testing
Design
Detailed Unit Integrated,
Design Testing Working System
Program
Specifications Documented,
Coding Working Code
Code
When to use the V Model
Each version is a complete
working system with a
Feasibility subset
Study of the final system's
features
Analysis Kernel
Maintenance
System
Design Version 1
Development
Plan Version 2
Version n
Using Evolutionary Development
INCREMENTAL DEVELOPMENT
ITERATIVE DEVELOPMENT
DEVELOPERS
Development systems
Build Release 1 Build Release 2 Build Release 3
Feedback Feedback
Time
USERS
Use Release 1 Use Release 2 Use Release 3
Production Systems
Feasibility
Study Analysis Create
Prototype
Review Evaluate
Design with User
Analyse
Production Outcome
REQUIREMENTS
Validate
ANALYSIS
SYSTEM
Verify
DESIGN
PROGRAM
DESIGN
CODING
PROTOTYPING INTE-GRATION TESTING
SYSTEM
TESTING
ACCEPTANCE
TESTING OPERATION
& MAINTENANCE
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)
Clarify User Requirements
Provide faster system development
Facilitates end-user involvement
Caters for uncertain requirements
Investigate, explore new technology
Confirm design objective
Problems
Harder to control budgets / resource use (how many times ?)
Danger of ‘requirements drift‘
Danger of lack of adherence to standards for good quality software
The Spiral Development Method
The Spiral Method
DETERMINE GOALS, EVALUATE ALTERNATIVES
ALTERNATIVES, AND RISKS
CONSTRAINTS
Risk analysis4
Risk analysis3
Risk analysis2
Risk analysis1 Proto- Proto- Proto-
Budget4 Budget3 Budget2 Budget Prototype1 type2 type3 type4
1
startRequirements, Concept of
Detailed
life-cycle plan operation design
Code
Unit test
System
Implementation Acceptance test
plan test
PLAN DEVELOP AND TEST
Fountain Model
Overlap
(parallelism)
Arrows
(iteration)
Smaller
maintenance
circle
Project Definition
Project Type Project Plans
Software Project Control
Development Project Integrity
Development Process
Environment
• Mission-critical
Enterprise-
Controlled • Multi-user
or division-
development • Multi-platform
wide applications
• 2- to 3-tier development
• Limited scope/vision
Departmental • Low/medium risk
applications • Single/multi-platform
• 1- to 2-tier development
•
Single-user, desktop Packages/minimal
productivity tools development
• Low cost/low risk
• Single platform
1990s Business Forces
• Globalisation
• Worldwide competition
• Productivity requirements
• Volatile environment (Emphasis Shifts to External)
Increased Connectivity
• Interorganisational business relationships
• Intraorganisational coordination for increased efficiency and
effectiveness
• Adaptable organisation structures
1990s Information Technology Opportunities
• Continued dramatic cost performance and capacity advances
• New IT architectures encompassing:
- Extensive communications networks
- Accessible distributed databases
- Enhanced human interface workstations
Recap