Traditional Systems Development
Life Cycle
SDLC
SDLC – Systems Investigation
Begins with the business problem (or opportunity) followed
by the feasibility analysis.
Feasibility study
Go/No-Go Decision
SDLC – System Analysis
Is the examination of the business problem that
the organization plans to solve with an information
system.
Main purpose is to gather information about
existing system to determine requirements for the
new or improved system.
Deliverable is a set of system requirements.
SDLC – Systems Design
Describes how the system will accomplish this task.
Deliverable is the technical design that specifies:
System outputs, inputs, user interfaces.
Hardware, software, databases,
telecommunications, personnel & procedures.
Blueprint of how these components are
integrated.
SDLC – System Design (continued)
Logical system design states what the system will
do, using abstract specifications.
Physical system design states how the system
will perform its functions, with actual physical
specifications.
Scope creep is caused by adding functions after
the project has been initiated.
SDLC – Programming & Testing
Programming involves the translation of a system’s design
specification into computer code.
Testing checks to see if the computer code will produce
the expected and desired results under certain conditions.
Testing is designed to delete errors (bugs) in the computer
code. These errors are of two types:
Syntax errors ( e.g., misspelled word or a misplaced
comma)
Logic errors that permit the program to run but result in
incorrect output.
SDLC – Systems Implementation
Implementation or deployment is the process of
converting from the old system to the new
system. Four major conversion strategies ;
Direct Conversion
Pilot Conversion
Phased Conversion
Parallel Conversion
SLDC – Operation & Maintenance
Audits are performed to assess the
system’s capabilities and to determine if it
is being used correctly.
Systems need several types of
maintenance.
Debugging
Updating
Maintenance
10.4 Alternative Methods & Tools
for Systems Development
Prototyping
Joint application design (JAD)
Integrated computer-assisted software
engineering tools
Rapid application development (RAD)
Agile development
End-user development
Component-based development
RAD versus SDLC
Classifications of SDLC Model
SDLC Model
Sequential Progressive Iterative
V Model Waterfall Spiral Incremental
1. Sequential Model
The models used for the software development
lifecycle have been sequential, with the
development progressing through a number of
well defined phases.
The sequential phases are usually represented
V Model
Waterfall Model.
Different Phases of Sequential Model :
Requirements phase - in which the requirements for the software are gathered and
analyzed, to produce a complete and unambiguous specification of what the
software is required to do
Detailed Design phase - where the detailed implementation of each component is
specified.
Code and Unit Test phase - in which each component of the software is coded and
tested to verify that it faithfully implements the detailed design.
Software Integration phase - in which progressively larger groups of tested
software components are integrated and tested until the software works as a whole.
System Integration phase - in which the software is integrated to the overall
product and tested.
Acceptance Testing phase, where tests are applied and witnessed to validate that
the software faithfully implements the specified requirements.
Note: Software specifications will be products of the first three phases of this
lifecycle model. The remaining four phases all involve testing the software at
various levels, requiring test specifications against which the testing will be
conducted as an input to each of these phases.
a. V Model
Requirement User Acceptance
Specifications Testing
High Level System
Design Testing
Detail Integration
Design Testing
Program Unit
Specification Testing
Coding
b. Waterfall Model
Requirements
Specification
Architectural
Design
Detailed
Design
Code and Unit
Testing
Software
Integration
System
Integration
Acceptance
Testing
Advantages of Waterfall Model
Enforced discipline through documents
no phase is complete until the docs are done
& checked by SQA group
concrete evidence of progress
Testing is inherent in every phase
continuously as well as at end of phases
Verification of the Software is easy.
Drawbacks of Waterfall Model
Document-driven model
customers cannot understand these
imagine an architect just showing you a textual spec!
first time client sees a working product is after it has been
coded. Problem here?
leads to products that don’t meet customers needs
Assumes feasibility before implementation
re-design is problematic
works best when you know what you’re doing
when requirements are stable & problem is well-known
2. Progressive Model
A common problem with software development is that software is
needed quickly, but it will take a long time to fully develop.
The solution is to form a compromise between timescales and
functionality, providing "interim" deliveries of software, with reduced
functionality, but serving as a stepping stones towards the fully
functional software. It is also possible to use such a stepping stone
approach as a means of reducing risk.
The usual names given to this approach to software development
are progressive development or phased implementation.
Within a progressive development lifecycle, each individual phase
of development will follow its own software development lifecycle,
typically using a V or waterfall model.
2. Progressive Model -
Structure
Phase 1
Development Interim Delivery
1
Phase 2 Interim Delivery
Development 2
Final Final Delivery
Phase 2
3. Iterative Model
Requirements Design
Implementation
Review
and Test
An iterative lifecycle model does not attempt to start with a full specification of
requirements.
Instead, development begins by specifying and implementing just part of the
software, which can then be reviewed in order to identify further requirements.
This process is then repeated, producing a new version of the software for
each cycle of the model.
3. Iterative Model - Phases
Requirements phase, in which the requirements for the
software are gathered and analyzed. Iteration should
eventually result in a requirements phase which produces a
complete and final specification of requirements.
Design phase, in which a software solution to meet the
requirements is designed. This may be a new design, or an
extension of an earlier design.
Implementation and Test phase, when the software is coded,
integrated and tested.
Review phase - in which the software is evaluated, the current
requirements are reviewed, and changes and additions to
requirements proposed
3. Spiral model
The Spiral Model - an iterative (evolutionary) system development life cycle
developed by Boehm (1988) which incorporates risk assessment.
Developed in recognition of the fact that systems development projects tend to
repeat the stages of analysis, design and code as part of the prototyping process.
Model closely related to RAD, as it implies iterative development with a review
possible after each iteration or spiral - which corresponds to the production of one
prototype or incremental version.
Spiral model includes best features of both the classic Waterfall SDLC and the
Prototyping approach.
Spiral model ………contd
Each spiral consists of four main activities:
Planning: setting project objectives; defining alternatives;
further planning on the next spiral; etc.
Risk Analysis: analysis of alternatives & the identification &
solution of risks.
Development: designing, coding and testing etc. in increments.
Evaluation: user evaluation of each spiral and then the final
product.
Other SDLC Models Used
Build and fix Model
Incremental Model
Prototyping Model
Rapid Application Development Model
Incremental Model Requirements
phase
Verify
Specification
Divide project into builds phase
each adds new functions Verify
each build integrated w/ structure & product tested as a whole
Advantages ? Architectural
design
operation product in weeks
Verify
less traumatic to organization
smaller capital outlay For each build:
Perform detailed
Disadvantages ? design, imple-
mentation, and
need an open architecture integration. Test.
a big advantage come maintenance! Deliver to client.
too few builds build-and-fix
too many builds overhead
Operations mode
Development
Retirement
Maintenance