2.

The Systems Development Life Cycle (SDLC)

CSC 2202 Systems Analysis and Design

The System Development Life Cycle
It was started in the 1960s and 1970s as the first documented approach to computer systems development. All the stages of the development system are thought about, planned, monitored and Completed. SDLC is the process by which an Information System comes to life and maintains its usefulness to a business as it moves from inception to replacement.
CSC 2202 Systems Analysis and Design

System Development Life Cycle
Business need - changing business conditions prompt request for new/improved computer system System development - analyse, design and implement a system to meet the business need System installation - move new system into production
CSC 2202 Systems Analysis and Design

System Development Life Cycle
System operation - period of active use System obsolescence - system no longer reflects changed business needs

CSC 2202 Systems Analysis and Design

System Life Cycle - illustration
Obsolete Need

Develop

Install Operate
CSC 2202 Systems Analysis and Design

System Development Challenges
Critical Success Factors for Systems Development:
 effectively

meet the stated business needs  build a flexible and maintainable system  build a reliable system  produce a system on time and within budget

CSC 2202 Systems Analysis and Design

Terminologies for the SDLC phases
The phases of the SDLC are described Differently depending on the author: Kendall & Kendall terminology Shelly terminology Powers et al terminology Etc.
CSC 2202 Systems Analysis and Design

System Development Life Cycle (Kendall & Kendall terminology)
Investigation

Identify problems and opportunities

Determine requirements Analysis Design Develop software System Test Implement and evaluate
CSC 2202 Systems Analysis and Design

System Development Life Cycle (Kendall & Kendall terminology)

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle (Shelly terminology)
« Systems planning « Preliminary investigation report « Systems analysis « System requirements document « Systems design « System design specification « Systems implementation « Complete functioning information system « Systems operation and support « Operational information system
CSC 2202 Systems Analysis and Design

SDLC – (Shelly terminology)
.

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Systems planning
« Purpose – identify problem’s nature/scope « Systems request – begins the process & describes desired changes/improvements « Systems planning – includes preliminary investigation or feasibility study « End product – preliminary investigation report

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Systems analysis
« Purpose is to learn exactly how the current system operates « Fact-finding or requirements determination is used to define all functions of the current system

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Options « Develop a system in-house « Purchase a commercial package « Modify an existing system « Stop development « The end product for this phase is the systems requirements document

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Systems design
« Purpose is to satisfy all documented requirements « Identify all outputs, inputs, files, manual procedures, & application programs « Avoid misunderstanding through manager and user involvement « End product is system design specification

CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Systems implementation
« Construct/deliver information system « Prepares functioning, documented system « Write, test, document application programs « User and manager approval obtained « File conversion occurs « Users, managers, IS staff trained to operate and support the system « Post-implementation evaluation performed
CSC 2202 Systems Analysis and Design

Systems Development Life Cycle
« Systems operation and support
« New system supports business operations « Maintenance changes correct errors or meet requirements « Enhancements increase system capability « After several years of operation, systems experience need for extensive changes « Systems development life cycle ends with system replacement
CSC 2202 Systems Analysis and Design

System Development Life Cycle illustration
1. Investigation Identify problems, opportunities 7. Implement and evaluate 2. Determine requirements

3. Analysis

4. Design 6. System Test 5. Develop software
CSC 2202 Systems Analysis and Design

Other Terminology for SDLC phases
Many organisations and many authors use different terminology for the phases of the SDLC However essentially the same activities are performed Refer to examples of other terminology

CSC 2202 Systems Analysis and Design

System Development Life Cycle (Powers et al terminology) Investigation phase Analysis and General Design phase Detailed Design and Implementation phase Installation phase Review phase

CSC 2202 Systems Analysis and Design

Investigation phase
Initial investigation Feasibility study
 Financial

feasibility  Technical feasibility  Operational feasibility  Legal /ethical feasibility

CSC 2202 Systems Analysis and Design

Analysis and General Design phase
Existing system review

build model of existing system from User’s point of view sufficient information for management to decide whether to proceed plan to cover next phases
CSC 2202 Systems Analysis and Design

New system requirements

New system design

Implementation and Installation planning

Detailed Design and Implementation phase
Technical design

for programs (pseudo-code), files, records, reports, screens

Test specifications and Testing prepare test plans Programming and Testing

write and test program code

User Training System and Acceptance test

by Users, simulating production conditions
CSC 2202 Systems Analysis and Design

Installation phase
File conversion

run programs to convert files into new format critical system transition to production

System installation

Options for installation are:
Cutover can be abrupt  Operate old and new systems in parallel (for 2 weeks)  Phase in new system, over time  Install version of the system

CSC 2202 Systems Analysis and Design

Review phase
Development recap

team review of project, for benefit of future projects

Post implementation review
evaluate how well the system is working  to what extent are project benefits being achieved?

CSC 2202 Systems Analysis and Design

S D L C Phases (general)
Business Survey Feasibility Systems Analysis Systems Design Programming Testing Implementation Post Implementation Review Maintenance
CSC 2202 Systems Analysis and Design

CSC 2202 Systems Analysis and Design

Why have a System Development Life Cycle?

Management needs to know:
 project

is on time  project is within budget

These project control stages (checkpoints) are the end of each phase of the System Development Life Cycle
CSC 2202 Systems Analysis and Design

1. Business Survey
Initial broad term report Estimate:
 project

cost  project resources (people)  project time

Recommend whether go on to Feasibility
CSC 2202 Systems Analysis and Design

2. Feasibility
Assess feasibility of the project:
 operational

feasibility  technical feasibility  financial feasibility

Identify possible solutions and options Recommend most appropriate to management Outline of development plan
CSC 2202 Systems Analysis and Design

3. Systems Analysis
Information Gathering User Requirements refined to specify the new system Goal - User Requirements Document
design for the new system  just enough technical detail for the customer

Report contents geared towards customer
CSC 2202 Systems Analysis and Design

4. Systems Design
Convert User Requirements into computer terms Specify
 how

system will operate  what programs are needed  what the programs will do

CSC 2202 Systems Analysis and Design

5. Programming and Design Aim
Convert specifications into program code Prepare test plans

for unit testing (individual programs)

CSC 2202 Systems Analysis and Design

5. Programming and Design Aim
Design aim must ensure that the system is:
Accurate  Maintainable  Timely  Robust  Efficient  Compatible

• Implementable • Acceptable • Flexible • Economic • Secure • Portable

CSC 2202 Systems Analysis and Design

6. Testing - make system “bullet proof”
System Testing & Acceptance Testing System Testing
 test

program as part of the whole system e.g. new program in whole payroll system

CSC 2202 Systems Analysis and Design

6. Testing - make system “bullet proof”
Acceptance Testing
 Customers

/ Users now involved  usually have their own test plans  sometimes also use programmer tests

Sign-Off document - signed by Customer Coordinator

CSC 2202 Systems Analysis and Design

7. Implementation
Implementation Plan or Update Log Provides project leader with a list of all:
 files

- new / amended  screen messages - new / amended  programs (sources) - new / amended

Timing for lodgment in production environment decided with customer
CSC 2202 Systems Analysis and Design

8. Post Implementation Review
BUILDING of the system is now complete Development recap

team review - what can be learned from the project

Post Implementation Review (after 3 or 4 months)
degree to which system meets objectives  often results in recommended improvements

CSC 2202 Systems Analysis and Design

9. Maintenance
Ensure customer changes to the system:
retain quality  adhere to standards and procedures

Now back at the beginning of the SDLC Size of maintenance change will determine whether all (or subset of) phases of the system Development Life Cycle are required

CSC 2202 Systems Analysis and Design

Life-Cycle Models
• • • • •

The waterfall model The spiral model Rapid application development Joint application development The V model

CSC 2202 Systems Analysis and Design

Each Phase of SDLC has an “Output”
Phase
Requirements analysis

Output
Software Requirements Specification (SRS), Design Document, Design Classes Code Test Report, Change Requests
CSC 2202 Systems Analysis and Design

Design Implementation Test

“Life-Cycle” Models
Single-Version Models Incremental Models
 Single-Version

with Prototyping

Iterative Models

CSC 2202 Systems Analysis and Design

“Life-Cycle” Models (1)
Single-Version Models
 Waterfall

Model
Model with “back flow”

 Waterfall

 “V”

model: Integrating testing

CSC 2202 Systems Analysis and Design

Incremental vs. Iterative
These sound similar, and sometimes are equated. Subtle difference:
Incremental: add to the product at each phase  Iterative: re-do the product at each phase

Some of the models could be used either way

CSC 2202 Systems Analysis and Design

The Waterfall model
The waterfall model
 First

described by Royce in 1970

There seem to be at least as many versions as there are authorities perhaps more

CSC 2202 Systems Analysis and Design

Waterfall Model
Requirements

Design

Implementation
Each phase “pours over” into the next phase.

Test

CSC 2202 Systems Analysis and Design

Waterfall Model
Managers love waterfall models:
 Nice

milestones  No need to look back (linear system), one activity at a time  Easy to check progress : 90% coded, 20% tested

CSC 2202 Systems Analysis and Design

Waterfall Model
 Traditional

life cycle  Analysis, design, code, test & maintenance  Top down rigidity  No iteration between phases  Difficult accommodating uncertainty & risk  Black box approach

CSC 2202 Systems Analysis and Design

Why Not Waterfall?
2. Requirements are not stable/unchanging.
The market changes—constantly. The technology changes. The goals of the stakeholders change.

CSC 2202 Systems Analysis and Design

Why Not Waterfall?
3. The design may need to change during implementation.
Requirements are incomplete and changing. Too many variables, unknowns, and novelties. A complete specification must be as detailed as code itself. Software is very “hard”.

Discover Magazine, 1999: Software characterized as the most complex “machine” humankind builds.
CSC 2202 Systems Analysis and Design

V - Model
The V Model Distinguishes between Development and Verification Activities

CSC 2202 Systems Analysis and Design

V - Model
Each phase has corresponding test or validation counterpart
Requirements Analysis Acceptance Test

System Design

Integration Test

Program Design

Unit Test

Implementation
CSC 2202 Systems Analysis and Design

V - Model
Level of Detail  Low
Requirements Elicitation Client’s Understanding Developer’s Understanding Acceptance Testing
Problem with V­Model:  Client’s Perception is the same as the  Developer’s Perception

Analysis Design

System  Testing

Integration Testing

High

Object Design

Unit  Testing

CSC 2202 Systems Analysis and Design

Project Time

Problems with V - Model
The V model does not model iteration

CSC 2202 Systems Analysis and Design

Boehm Spiral Model
• • • •

Four major activities Determination of objectives, alternatives, and constraints Risk analysis and prototyping Waterfall approach to next level product Plan for the next phase cycle:

CSC 2202 Systems Analysis and Design

Boehm Spiral Model

CSC 2202 Systems Analysis and Design

Spiral Model Deals with Iteration
Identify risks Assign priorities to risks Develop a series of prototypes for the identified risks starting with the highest risk. Use a waterfall model for each prototype development (“cycle”) If a risk has successfully been resolved, evaluate the results of the “cycle” and plan the next round If a certain risk cannot be resolved, terminate the project immediately
CSC 2202 Systems Analysis and Design

Limitations of the Waterfall and Spiral Models
Neither of these model deals well with frequent change
The Waterfall model assume that once you are done with a phase, all issues covered in that phase are closed and cannot be reopened  The Spiral model can deal with change between phases, but once inside a phase, no change is allowed

What do you do if change is happening more frequently? (“The only constant is the change”)
CSC 2202 Systems Analysis and Design

Rapid Application Development
RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles. This has a number of distinct advantages over the traditional sequential development model.

CSC 2202 Systems Analysis and Design

CSC 2202 Systems Analysis and Design

Rapid Application Development
Iteration allows for effectiveness and self-correction. Iterations results into many small refinements and improvements. An important, fundamental principle of iterative development is that each iteration delivers a functional version of the final system
CSC 2202 Systems Analysis and Design

Rapid Application Development
Like prototyping, uses iterative development Uses tools to speed up development
GUI  reusable code  code generation  programming, language testing and debugging

CSC 2202 Systems Analysis and Design

Rapid Application Development
RAD projects are typically staffed with small integrated teams comprised of developers, end users, and IT technical resources. Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management.

CSC 2202 Systems Analysis and Design

Rapid Application Development
High Speed High Quality And Lower Cost Quality is a primary concept in the RAD environment. Systems developed using the RAD development path meet the needs of their users effectively and have low maintenance costs.

CSC 2202 Systems Analysis and Design

Prototyping
Preliminary working version of a system (or one of its parts) built quickly and inexpensively using “friendly, powerful” software reviewed by end users suggest changes for system improvements.

CSC 2202 Systems Analysis and Design

Prototyping
Iterative process, say 10 versions Result - evolve to become final system, or ... throw away, but clarified SDLC requirements

CSC 2202 Systems Analysis and Design

Prototyping Process
Identify Basic User Requirements Rapidly Develop Prototype Iterative enhancement Users work with Prototype Throwaway Prototype Obtain User Feedback Modify the Prototype
CSC 2202 Systems Analysis and Design

Evolutionary Prototype

Prototype
Steps followed by a systems analyst using a prototype during the systems analysis phase are shown

CSC 2202 Systems Analysis and Design

Prototype
*

CSC 2202 Systems Analysis and Design

Prototyping
Prototyping can help to obtain complete and reliable system requirements Prototyping process:
 iterative  User

works with latest version of prototype to determine the refined requirements  prototype quickly amended (by the User and systems analyst)
CSC 2202 Systems Analysis and Design

Prototyping tools
Interactive software development tools Allows designer to quickly:
 design

screens, create files, data entry routines,  basic reporting functions

Tools should be flexible and easy to use

CSC 2202 Systems Analysis and Design

Prototyping and the SDLC
Prototyping goal is to enhance the System development process. Prototyping focuses on the Analysis and General Design phase. Outcome –
one extreme is prototype actually becomes the finished system (after many iterations)  other extreme is throw away prototype and build system using conventional methods  BUT now have very high level of confidence with accuracy and completeness of User Requirements

CSC 2202 Systems Analysis and Design

Prototyping
Performing analysis, design, and implementation phases concurrently, and repeatedly Users see system functionality quickly and provide feedback Decision maker learns about problem But can lose gains in repetition
CSC 2202 Systems Analysis and Design

Prototyping
Need Planning Analysis Design Implementation Prototype Prototype Not OK System
CSC 2202 Systems Analysis and Design

Prototype OK

Uses of Prototyping
q Verifying q Verifying q Selecting

user needs that design = specifications the “best” design a conceptual understanding of novel

q Developing

situations

CSC 2202 Systems Analysis and Design

Uses of Prototyping
q Testing

a design under varying environments a new product to upper

q Demonstrating

management
q Implementing

a new system in the user

environment quickly

CSC 2202 Systems Analysis and Design

Prototyping
Proposed Advantages  Improved user communication  Users like it  Low risk  Avoids over-design  Experimentation and innovation  Spreads labor to user department
Disadvantages in practice  Prototypes are used “as is”  Integration often difficult  Design flaws  Poor performance  Difficult to manage process  Creates unrealistic expectations  Documentation is difficult

CSC 2202 Systems Analysis and Design

Advantages of Prototyping
Short development time Short user reaction time Improved user understanding Low cost
CSC 2202 Systems Analysis and Design

Disadvantages of Prototyping
Gains may be lost in Thorough understanding information System’s benefits and costs Detailed description of information needs Easy to maintain IS design Well-tested IS Well-prepared users

CSC 2202 Systems Analysis and Design

Alternative system development methodologies
Alternative methodologies to SDLC are:
 Structured

approaches.

 Structured

System Analysis & Design Methodology  Yourdon  Jackson system development  Merise  Work flow systems
 Prototyping.

CSC 2202 Systems Analysis and Design

Alternative system development methodologies
Alternative methodologies to SDLC are:
 Joint

Application Development  Rapid Application Development  Object oriented analysis and design.  Soft Systems Methodology.

CSC 2202 Systems Analysis and Design

JAD
Joint application development (JAD)
Task force of users, managers, and IS staff  Objectives

Gather information  Discuss business needs  Define the new system requirements

Methods
Team usually meets at specific location  Team has project leader and recorder(s)  Key users participate in intense development effort

JAD can be costly, but highly effective
CSC 2202 Systems Analysis and DesignFigure 3-11 Click to see

Package

RAD
Rapid application development (RAD)
Team method similar to JAD, but goes further  RAD phases resemble a mini-SDLC

Requirements planning, user design, construction, and cutover

RAD involves a continuous design process
Team can react quickly  Final objective is a functioning system

RAD can be faster and less costly, but stresses system mechanics rather than strategic needs

CSC 2202 Systems Analysis and Design

OOAD
Object-oriented (O-O) systems development
Object-based model  Objects and their attributes are abstract entities  Classes and subclasses

CSC 2202 Systems Analysis and Design

Review Questions
1. List and describe the major stages of the systems development life cycle. 2. What is prototyping and what advantages does it offer in the SDLC? 3. Explain why the investigation phase and the initial analysis and design phases are perhaps the most critical stages of the SDLC. 4. Explain the systems life cycle and describe why this concept is important to systems developers.
CSC 2202 Systems Analysis and Design

Sign up to vote on this title
UsefulNot useful