Lecture 2 - Software Development Life Cycle
Lecture 2 - Software Development Life Cycle
Software Development
Life Cycle
MAIN CONTENT
Feasibility Study
Requirements
Analysis
Deployment/
Implementation
Maintenance
Software Development Lifecycle
Determine the
scope of the
problem
Writing the
Writing specification
documentation
Testing Designing a
solution
Coding the
design
Stage 1 – Determine the scope of the problem
Feasibility
study
Requirements
Specification
Global
Succession of steps, with possibility design
V&V
Distribution
SYSTEM
REQUIREMENTS VALIDATION
ANALYSIS
SUBSYSTEM
GLOBAL DESIGN VALIDATION
UNIT
DETAILED DESIGN VALIDATION
IMPLEMENTATION
Problems with the waterfall
Late appearance of actual code. Feasibility
study
Lack of support for
Requirements
requirements change — and more
generally for extendibility and Specification
reusability Global
design
Lack of support for the
Detailed
maintenance activity (70% of design
As
Programming
developed it
As Operations installed it What the user wanted
A modern variant
The Spiral model (Boehm)
Iteration 3
Iteration 1
Iteration 2
The Spiral model
“Prototyping” in software
1. Experimentation:
•Requirements capture
2. Pilot project
3. Incremental development
4. Throw-away development
The problem with throw-away development
Seamless development:
Single set of notation, tools, concepts,
principles throughout
Continuous, incremental development
Keep model, implementation and
documentation consistent
Reversibility: can go back and forth
Seamless development
Example classes:
PLANE, ACCOUNT,
Single notation, tools, Analysis TRANSACTION…
STATE,
concepts, principles Design COMMAND…
development tation
forth
Generalization A D I V G
Y Z
Few companies have the guts to
provide the budget for this
Reversibility
Analysis
Design
Implemen-
tation
V&V
Generali-
zation
AGILE METHOD
Agile Software Development
o Modularity
o Iterative
o Time-bound
o Incremental
o Convergent
o People-oriented
o Collaborative
Existing Agile Methods
o Extreme Programming
o Scrum
Extreme Programming (XP)
o Phases of AUP
Inception
Elaboration
Construction
Transition
Disciplines of AUP
o Model
o Implementation
o Test
o Deployment
o Configuration Management
o Project Management
o Environment
Scrum
o It is an Agile Software development method for
project management
o Characteristics:
Prioritized work is done
Completion of backlog items
Progress is explained
Agile Software Development
Scrum
SOFTWARE
PROJECT MANAGEMENT
Software Project Management
o Software project management is perhaps the most
important factor in the outcome of a project
Adaptations include:
At the UI level, there are components for operator display and
communications;
At the I/O management level, there are components that handle
authentication, reporting and route planning;
Environment specialization
Functional specialization
Process specialization
Re-negotiate requirements