Session2
Session2
Session2
Development Life
Cycle (SDLC)
Software Development Life Cycle
Maintenance Planning
.
Testing Analysis
. SDLC
Implementation Design
.
SDLC Model
Requirements – defines
needed information,
function, behavior,
performance and interfaces.
Design – data structures,
software architecture,
interface representations,
algorithmic details.
Implementation – source
code, database, user
documentation, testing.
Waterfall Strengths
A variant of the
Waterfall that
emphasizes the
verification and
validation of the
product.
Testing of the product
is planned in parallel
with a corresponding
phase of development
V-Shaped Steps
Typical activites:
Create a design
Review design
Develop code
Inspect code
Test product
Spiral Quadrant
Plan next phase
Typical activities
Develop project plan
Develop
configuration
management plan
Develop a test plan
Develop an installation plan
Spiral Model Strengths
If code reviews are good, review code all the time (pair
programming)
If testing is good, everybody will test all the time
If simplicity is good, keep the system in the simplest design
that supports its current functionality. (simplest thing that
works)
If design is good, everybody will design daily (refactoring)
If architecture is important, everybody will work at defining and
refining the architecture (metaphor)
If integration testing is important, build and integrate test
several times a day (continuous integration)
If short iterations are good, make iterations really, really short
(hours rather than weeks)
XP References
Online references to XP at
http://www.extremeprogramming.org
/
http://c2.com/cgi/wiki?ExtremeProgra
mmingRoadmap
http://www.xprogramming.com/
Feature Driven Design (FDD)
http://www.nebulon.com/articles/index.html
Dynamic Systems
Development Method (DSDM)
Feasibility study
Business study – prioritized requirements
Functional model iteration
risk analysis
Time-box plan
Design and build iteration
Implementation
Adaptive SDLC
http://se.cs.depaul.edu/ise/agile.htm
Quality – the degree to which the
software satisfies stated and implied
requirements
Absence of system crashes
Correspondence between the software and the
users’ expectations
Performance to specified requirements