Upload
piyush1053
View
89
Download
1
Embed Size (px)
Citation preview
The Systems Development Life Cycle
AMIT K. BHARDWAJ
Life Cycle(SDLC)
The System Development Life
CycleIt 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
AMIT K. BHARDWAJ
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.
Business need - changing business conditions prompt request for new/improved computer system
System Development Life
Cycle
AMIT K. BHARDWAJ
new/improved computer system
System development - analyse, design and implement a system to meet the business need
System installation - move new system into production
System operation - period of active use
System obsolescence - system no
System Development Life
Cycle
AMIT K. BHARDWAJ
System obsolescence - system no longer reflects changed business needs
Need
Develop
Obsolete
System Life Cycle - illustration
AMIT K. BHARDWAJ
Develop
Install
Operate
Critical Success Factors for Systems Development:
� effectively meet the stated business needs
System Development
Challenges
AMIT K. BHARDWAJ
� effectively meet the stated business needs
� build a flexible and maintainable system
� build a reliable system
� produce a system on time and within
budget
The phases of the SDLC are described
Differently depending on the author:
Kendall & Kendall terminology
Terminologies for the SDLC phases
AMIT K. BHARDWAJ
Kendall & Kendall terminology
Shelly terminology
Powers et al terminology
Etc.
Investigation
� Identify problems and opportunities
Determine requirements
System Development Life Cycle
(Kendall & Kendall terminology)
AMIT K. BHARDWAJ
Analysis
Design
Develop software
System Test
Implement and evaluate
System Development Life Cycle
(Kendall & Kendall terminology)
AMIT K. BHARDWAJ
� Systems planning
�Preliminary investigation report
� Systems analysis
�System requirements document
Systems Development Life Cycle
(Shelly terminology)
AMIT K. BHARDWAJ
�System requirements document
� Systems design
�System design specification
� Systems implementation
�Complete functioning information system
� Systems operation and support
�Operational information system
SDLC – (Shelly terminology)
.
AMIT K. BHARDWAJ
� Systems planning
� Purpose – identify problem’s nature/scope
� Systems request – begins the process &
describes desired changes/improvements
Systems Development Life Cycle
AMIT K. BHARDWAJ
describes desired changes/improvements
� Systems planning – includes preliminary
investigation or feasibility study
� End product – preliminary investigation report
� Systems analysis
� Purpose is to learn exactly how the current
system operates
� Fact-finding or requirements
Systems Development Life Cycle
AMIT K. BHARDWAJ
determination is used to define all
functions of the current system
�Options
�Develop a system in-house
�Purchase a commercial package
�Modify an existing system
Systems Development Life Cycle
AMIT K. BHARDWAJ
�Stop development
�The end product for this phase is the systems
requirements document
� Systems design
�Purpose is to satisfy all documented
requirements
�Identify all outputs, inputs, files, manual
Systems Development Life Cycle
AMIT K. BHARDWAJ
�Identify all outputs, inputs, files, manual
procedures, & application programs
�Avoid misunderstanding through manager and
user involvement
�End product is system design specification
� Systems implementation
�Construct/deliver information system
�Prepares functioning, documented system
�Write, test, document application programs
Systems Development Life Cycle
AMIT K. BHARDWAJ
�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
� Systems operation and support
�New system supports business operations
�Maintenance changes correct errors or meet
requirements
�Enhancements increase system capability
Systems Development Life Cycle
AMIT K. BHARDWAJ
�Enhancements increase system capability
�After several years of operation, systems
experience need for extensive changes
�Systems development life cycle ends with
system replacement
2. Determine requirements
3. Analysis
1. Investigation -Identify problems,opportunities
System Development Life Cycle illustration
AMIT K. BHARDWAJ
3. Analysis
4. Design
5. Develop software
6. System Test
7. Implement and evaluate
Many organisations and many authors use different terminology for the phases of the SDLC
Other Terminology for SDLC phases
AMIT K. BHARDWAJ
of the SDLC
However essentially the same activities are performed
Refer to examples of other terminology
Investigation phase
Analysis and General Design phase
Detailed Design and Implementation
System Development Life Cycle(Powers et al terminology)
AMIT K. BHARDWAJ
Detailed Design and Implementation phase
Installation phase
Review phase
Initial investigation
Feasibility study
� Financial feasibility
Investigation phase
AMIT K. BHARDWAJ
� Financial feasibility
� Technical feasibility
� Operational feasibility
� Legal /ethical feasibility
Existing system review� build model of existing system
New system requirements� from User’s point of view
Analysis and General Design phase
AMIT K. BHARDWAJ
� from User’s point of view
New system design� sufficient information for management to decide
whether to proceed
Implementation and Installation planning� plan to cover next phases
Technical design� for programs (pseudo-code), files, records,
reports, screens
Test specifications and Testingprepare test plans
Detailed Design and Implementation phase
AMIT K. BHARDWAJ
prepare test plans
Programming and Testing� write and test program code
User Training
System and Acceptance test� by Users, simulating production conditions
File conversion� run programs to convert files into new format
System installation� critical system transition to production
Installation phase
AMIT K. BHARDWAJ
� critical system transition to production
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
Development recap
� team review of project, for benefit of
future projects
Post implementation review
Review phase
AMIT K. BHARDWAJ
Post implementation review
� evaluate how well the system is working
� to what extent are project benefits being
achieved?
Business Survey
Feasibility
Systems Analysis
Systems Design
S D L C Phases (general)
AMIT K. BHARDWAJ
Systems Design
Programming
Testing
Implementation
Post Implementation Review
Maintenance
AMIT K. BHARDWAJ
Management needs to know:
� project is on time
� project is within budget
Why have a System Development Life Cycle?
AMIT K. BHARDWAJ
� project is within budget
These project control stages (checkpoints) are the end of each phase of the System Development Life Cycle
Initial broad term report
Estimate:
� project cost
1. Business Survey
AMIT K. BHARDWAJ
� project cost
� project resources (people)
� project time
Recommend whether go on to Feasibility
Assess feasibility of the project:� operational feasibility
� technical feasibility
2. Feasibility
AMIT K. BHARDWAJ
� financial feasibility
Identify possible solutions and options
Recommend most appropriate to management
Outline of development plan
Information Gathering
User Requirements refined to specify the new system
Goal - User Requirements Document
3. Systems Analysis
AMIT K. BHARDWAJ
Goal - User Requirements Document� design for the new system
� just enough technical detail for the customer
Report contents geared towards customer
Convert User Requirements into computer terms
Specify
4. Systems Design
AMIT K. BHARDWAJ
Specify
� how system will operate
� what programs are needed
� what the programs will do
Convert specifications into program code
Prepare test plans� for unit testing (individual programs)
5. Programming and Design Aim
AMIT K. BHARDWAJ
� for unit testing (individual programs)
Design aim must ensure that the system is:� Accurate • Implementable
� Maintainable • Acceptable
5. Programming and Design Aim
AMIT K. BHARDWAJ
� Maintainable • Acceptable
� Timely • Flexible
� Robust • Economic
� Efficient • Secure
� Compatible • Portable
System Testing & Acceptance Testing
System Testing
� test program as part of the whole
6. Testing - make system “bullet
proof”
AMIT K. BHARDWAJ
� test program as part of the whole
system e.g. new program in whole
payroll system
Acceptance Testing
� Customers / Users now involved
� usually have their own test plans
� sometimes also use programmer
6. Testing - make system “bullet
proof”
AMIT K. BHARDWAJ
� sometimes also use programmer
tests
Sign-Off document - signed by Customer Coordinator
Implementation Plan or Update Log
Provides project leader with a list of all:
� files - new / amended
7. Implementation
AMIT K. BHARDWAJ
� files - new / amended
� screen messages - new / amended
� programs (sources) - new / amended
Timing for lodgment in production environment decided with customer
BUILDING of the system is now complete
Development recap
� team review - what can be learned from the
project
8. Post Implementation
Review
AMIT K. BHARDWAJ
project
Post Implementation Review (after 3 or 4
months)
� degree to which system meets objectives
� often results in recommended improvements
Ensure customer changes to the system:� retain quality
� adhere to standards and procedures
Now back at the beginning of the SDLC
9. Maintenance
AMIT K. BHARDWAJ
Now back at the beginning of the SDLCSize of maintenance change will determine whether all (or subset of) phases of the system Development Life Cycle are required
Life-Cycle Models
1. The waterfall model
2. The spiral model
3. Rapid application development
AMIT K. BHARDWAJ
3. Rapid application development
4. Joint application development
5. The V model
Each Phase of SDLC has an
“Output”
PhaseRequirements analysis
OutputSoftware Requirements Specification (SRS),
Design Document,
AMIT K. BHARDWAJ
Design
Implementation
Test
Design Document,Design Classes
Code
Test Report, Change Requests
“Life-Cycle” Models
Single-Version Models
Incremental Models
Single-Version with Prototyping
AMIT K. BHARDWAJ
� Single-Version with Prototyping
Iterative Models
“Life-Cycle” Models (1)
Single-Version Models
� Waterfall Model
� Waterfall Model with “back flow”
AMIT K. BHARDWAJ
� “V” model: Integrating testing
Incremental vs. Iterative
These sound similar, and sometimes are
equated.
Subtle difference:
AMIT K. BHARDWAJ
� 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
The waterfall model
� First described by Royce in 1970
There seem to be at least as many
The Waterfall model
AMIT K. BHARDWAJ
There seem to be at least as many versions as there are authorities -perhaps more
Waterfall Model
Requirements
Design
AMIT K. BHARDWAJ
Design
Implementation
Test
Each phase “pours over” into
the next phase.
Waterfall Model
Managers love waterfall models:
� Nice milestones
� No need to look back (linear system), one
activity at a time
AMIT K. BHARDWAJ
activity at a time
� Easy to check progress : 90% coded, 20%
tested
Waterfall Model
� Traditional life cycle
� Analysis, design, code, test & maintenance
� Top down rigidity
� No iteration between phases
AMIT K. BHARDWAJ
� No iteration between phases
� Difficult accommodating uncertainty & risk
� Black box approach
Why Not Waterfall?
2. Requirements are not stable/unchanging.
The market changes—constantly.
The technology changes.
AMIT K. BHARDWAJ
The technology changes.
The goals of the stakeholders change.
Why Not Waterfall?
3. The design may need to change during
implementation.
Requirements are incomplete and changing.
AMIT K. BHARDWAJ
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.
V - Model
The V Model Distinguishes
between Development and
Verification Activities
AMIT K. BHARDWAJ
Verification Activities
V - ModelEach phase has corresponding test or validation counterpart
Requirements Analysis
System Design Integration
Acceptance Test
AMIT K. BHARDWAJ
System Design
Program Design
Implementation
Unit Test
Integration Test
V - ModelLevel of Detail
LowAcceptance
TestingProblem with V-Model:
Client’s Perception is the same as the
Developer’s Perception
Client’s Understanding
Developer’s Understanding
RequirementsElicitation
AnalysisSystem
Testing
AMIT K. BHARDWAJ
Project Time
High
Analysis
Design
Testing
Object Design Unit Testing
Integration Testing
Problems with V - Model
The V model does not model iteration
AMIT K. BHARDWAJ
Boehm Spiral Model
Four major activities
1. Determination of objectives, alternatives, and constraints
2. Risk analysis and prototyping
AMIT K. BHARDWAJ
2. Risk analysis and prototyping
3. Waterfall approach to next level product
4. Plan for the next phase cycle:
Boehm Spiral Model
AMIT K. BHARDWAJ
Identify risks
Assign priorities to risks
Develop a series of prototypes for the identified risks
starting with the highest risk.
Spiral Model Deals with Iteration
AMIT K. BHARDWAJ
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
Limitations of the Waterfall
and Spiral ModelsNeither 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
AMIT K. BHARDWAJ
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”)
Rapid Application
DevelopmentRAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles.
AMIT K. BHARDWAJ
development cycles.
This has a number of distinct advantages over the traditional
sequential development model.
AMIT K. BHARDWAJ
Rapid Application Development
Iteration allows for effectiveness and self-correction.
Iterations results into many small refinements and improvements.
AMIT K. BHARDWAJ
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
Rapid Application Development
Like prototyping, uses iterative
development
Uses tools to speed up developmentGUI
AMIT K. BHARDWAJ
� GUI
� reusable code
� code generation
� programming, language testing and debugging
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
AMIT K. BHARDWAJ
Small teams, combined with short, iterative development cycles optimizes speed, unity of vision and purpose, effective informal communication and simple project management.
Rapid Application Development
High Speed
High Quality
And Lower Cost
Quality is a primary concept in the RAD
AMIT K. BHARDWAJ
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.
Preliminary working version of a system (or one of its parts)
built quickly and inexpensively
using “friendly, powerful” software
reviewed by end users
Prototyping
AMIT K. BHARDWAJ
reviewed by end users
suggest changes for system improvements.
Iterative process, say 10 versions
Result - evolve to become final system, or
... throw away, but clarified SDLC
Prototyping
AMIT K. BHARDWAJ
... throw away, but clarified SDLC requirements
Identify Basic User RequirementsIdentify Basic User Requirements
Rapidly Develop PrototypeRapidly Develop Prototype
Prototyping Process
AMIT K. BHARDWAJ
Users work with PrototypeUsers work with Prototype
Obtain User FeedbackObtain User Feedback
Modify the PrototypeModify the Prototype
IterativeIterativeenhancementenhancement
ThrowawayThrowawayPrototypePrototype
EvolutionaryEvolutionaryPrototypePrototype
Prototype
Steps followed by a systems analyst using a prototype during the systems analysis phase are
AMIT K. BHARDWAJ
the systems analysis phase are shown
Prototype
*
AMIT K. BHARDWAJ
Prototyping can help to obtain complete and reliable system requirements
Prototyping process:
Prototyping
AMIT K. BHARDWAJ
Prototyping process:
� iterative
� User works with latest version of prototype
to determine the refined requirements
� prototype quickly amended (by the User
and systems analyst)
Interactive software development tools
Allows designer to quickly:
� design screens, create files, data entry
Prototyping tools
AMIT K. BHARDWAJ
design screens, create files, data entry
routines,
� basic reporting functions
Tools should be flexible and easy to use
Prototyping goal is to enhance the System development process. Prototyping focuses on the Analysis and General Design phase.
Prototyping and the SDLC
AMIT K. BHARDWAJ
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
Prototyping
Performing analysis, design, and implementation phases concurrently, and repeatedly
Users see system functionality quickly
AMIT K. BHARDWAJ
Users see system functionality quickly and provide feedback
Decision maker learns about problem
But can lose gains in repetition
Prototyping
Design
Analysis
Need
Planning
AMIT K. BHARDWAJ
Design
Implementation
Prototype
System
Prototype Not OKPrototype OK
Uses of Prototyping� Verifying user needs
� Verifying that design = specifications
� Selecting the “best” design
AMIT K. BHARDWAJ
� Selecting the “best” design
� Developing a conceptual understanding of novel
situations
Uses of Prototyping� Testing a design under varying environments
� Demonstrating a new product to upper
management
AMIT K. BHARDWAJ
� Implementing a new system in the user
environment quickly
Prototyping
Proposed Advantages
� Improved user communication
� Users like it
� Low risk
Disadvantages in practice
� Prototypes are used “as is”
� Integration often difficult
� Design flaws
Poor performance
AMIT K. BHARDWAJ
� Low risk
� Avoids over-design
� Experimentation and innovation
� Spreads labor to user department
� Poor performance
� Difficult to manage process
� Creates unrealistic expectations
� Documentation is difficult
Advantages of Prototyping
Short development time
Short user reaction time
AMIT K. BHARDWAJ
Short user reaction time
Improved user understanding
Low cost
Disadvantages of Prototyping
Gains may be lost in
Thorough understanding information
System’s benefits and costs
Detailed description of information needs
AMIT K. BHARDWAJ
Easy to maintain IS design
Well-tested IS
Well-prepared users
Alternative methodologies to SDLC are: � Structured approaches.
� Structured System Analysis & Design Methodology
Alternative system development
methodologies
AMIT K. BHARDWAJ
Methodology
� Yourdon
� Jackson system development
� Merise
� Work flow systems
� Prototyping.
Alternative methodologies to SDLC are:
� Joint Application Development
� Rapid Application Development
Alternative system development
methodologies
AMIT K. BHARDWAJ
� Rapid Application Development
� Object oriented analysis and design.
� Soft Systems Methodology.
JAD
Joint application development (JAD)� Task force of users, managers, and IS staff
� Objectives� Gather information
AMIT K. BHARDWAJ
� 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
Package
Click to see Figure 3-11
RADRapid application development (RAD)
� Team method similar to JAD, but goes further
� RAD phases resemble a mini-SDLC
� Requirements planning, user design, construction, and cutover
AMIT K. BHARDWAJ
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
OOAD
Object-oriented (O-O) systems development� Object-based model
� Objects and their attributes are abstract entities
� Classes and subclasses
AMIT K. BHARDWAJ
� Classes and subclasses
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?
AMIT K. BHARDWAJ
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.