SDLC Intro

download report

Transcript SDLC Intro

INTRODUCTION TO SYSTEM
DEVELOPMENT LIFE CYCLES
WHAT IS AN INFORMATION SYSTEM
(IS)?
Hardware, software, data,
people, and procedures that
work together to produce
quality information
System—Set of components
that interact to achieve
common goal
Businesses use many types of
systems
WHAT ARE THE PHASES OF THE SYSTEM
DEVELOPMENT CYCLE?
Phase 2. Analysis

Phase 1. Planning




Review project requests
Prioritize project
requests
Allocate resources
Identify project
development team

Conduct preliminary investigation
Perform detailed analysis activities:
Study current system
Determine user requirements
Recommend solution
Phase 5. Support



Conduct post-implementation
system review
Identify errors and enhancements
Monitor system performance
Phase 3. Design


Phase 4. Implementation




Develop programs, if necessary
Install and test new system
Train users
Convert to new system
Acquire hardware
and software, if
necessary
Develop details of
system
WHO PARTICIPATES IN THE SDLC?
WHAT IS A SYSTEMS ANALYST?
Responsible for designing
and developing
information system
Liaison between users
and IT professionals
WHAT IS THE PROJECT TEAM?
Formed to work on project from beginning to end
Consists of users, systems analyst, and other IT professionals
Project leader—one member of the team who
manages and controls project budget and schedule
WHAT IS FEASIBILITY?
Operational
feasibility
Measure of
how suitable
system
development
will be to the
company
Four feasibility
tests:
Schedule
feasibility
Economic
feasibility
(also called
cost/benefit
feasibility)
Technical
feasibility
WHAT IS DOCUMENTATION?
Collection and summarization
of data and information
Includes reports, diagrams,
programs, and other deliverables
WHY CREATE (OR MODIFY) AN
INFORMATION SYSTEM?
To correct problem
in existing system
To improve
existing system
Outside group may
mandate change
Competition can
lead to change
WHAT IS A REQUEST FOR
SYSTEM SERVICES?

Formal request for
new or modified
information system

Also called
project request
PLANNING PHASE
Begins when steering committee receives project request
Steering
committee—
decision-making
body for the
company
Function of committee:
Review and
approve project
requests
Prioritize
project requests
Allocate
resources
Form project
development
team for each
approved
project
ANALYSIS PHASE
Conduct preliminary
investigation, also
called feasibility
study
Perform detailed
analysis
PRELIMINARY INVESTIGATION

Determine exact nature of problem or improvement
and whether it is worth pursuing

Findings are presented in feasibility report, also known as a feasibility study
DETAILED ANALYSIS
1. Study how current system
works
2. Determine user’s wants, needs,
and requirements
3. Recommend solution
Sometimes called logical design
SYSTEM PROPOSAL
Assesses
feasibility
of each
alternative
solution
Recommends
the most
feasible
solution for
the project
Presented to
steering
committee,
which decides
how system will
be developed
IDENTIFY POSSIBLE SOLUTIONS
Buy packaged software—prewritten
software available for purchase
Write own custom software—software
developed at user’s request
Outsource—have outside source
develop software
Horizontal market
software—meets
needs of many
companies
Vertical market
software—designed
for particular industry
DESIGN PHASE
Acquire hardware and software
Develop all details of new or
modified information system
ACQUISITION
What is needed to acquire new hardware and software?

Identify all hardware and software requirements of new
or modified system
Talk with other
systems analysts
Surf Web
Visit vendors’ stores
Read print and online
trade journals,
newspapers, and
magazines
HOW TO TEST SOFTWARE PRODUCTS?





References from vendor
Talk to current users of product
Product demonstrations
Trial version of software
Benchmark test measures performance
DETAILED DESIGN
Detailed design specifications for components in proposed solution
Includes several activities
Database
design
Input and
output design
Program
design
PROTOTYPING TOOLS/METHODS:
MOCKUP

Sample of input or output that contains actual data
PROTOTYPING TOOLS/METHODS:
PROTOTYPE
Working model of
proposed system
Beginning a prototype
too early may lead to
problems
PROTOTYPING TOOLS/METHODS:
CASE

CASE (Computer-Aided Software Engineering) tools
support activities of the SDLC
IMPLEMENTATION PHASE

Purpose is to construct, or build, new or modified
system and then deliver it to users
Convert to new system
Train users
Install and test new system
Develop programs
TESTING
Three kinds of tests performed by system developers:
Unit Test
Systems test
Verifies each
individual program
works by itself
Verifies all programs
in application work
together
Integration Test
Verifies application
works with other
applications
TRAINING

Showing users exactly how they will use new
hardware and software in system
SUPPORT PHASE

Providing ongoing assistance after the system is
implemented
Conduct post-implementation system review—meeting to find out if
information system is performing according to expectations
Identify errors
Identify enhancements
Monitor system performance
FEASIBILITY
Every organization which performs system
development, or has it done for them, needs a
way to choose which projects are worth
the effort
 Feasibility study is a common approach to make
such decisions thoughtfully
 Basis for feasibility study is generally the
problems and opportunities analysis

PROBLEMS & OPPORTUNITIES

We can look for problems and opportunities in
many parts of our organization, and the existing
systems which are supported
Track maintenance costs for existing systems
 Measure existing processes to determine their cost,
and compare to industry standards
 Monitor availability of support for existing
system components
 Look for signs of unhappy employees

PROBLEMS & OPPORTUNITIES
Check quality of work products (outputs)
 Listen to customers, vendors, and suppliers


Both complaints and suggestions
Measure customer satisfaction
 Monitor competitor’s offerings and plans
 Monitor changes in technology which could help
 Don’t forget obvious measures of success, like sales,
profit, or number of contracts awarded

PROJECT SELECTION
Selection of projects is based on many factors –
cost, urgency, the systems
affected, etc.
 From the organization’s perspective, choosing
projects is kind of like shopping


There’s generally a limited amount of funds
and people available to work on the possible projects,
and management needs to choose which projects to
support
PROJECT SELECTION

There are five typical requirements for a project
to be supported





Management support for the project
Appropriate timing of commitment to the project
Relevance to helping meet organizational goals
Project must be practical and feasible
Project must be worthwhile compared to other
possible expenditures

Are we getting enough ‘bang for our buck?’
PROJECT OBJECTIVES

Based on the problems and opportunities
identified for a project, we can set objectives for
the project


These not only help the feasibility study which
follows, but set goals against which we can later test
the system
Objectives should not only address the type of
improvement sought, but set a desired level of
improvement
PROJECT OBJECTIVES

Examples of objectives might include






Improve customer satisfaction 10% within 1 year
Reduce the response time for customer complaints by
15%
Get a new feature to market before competitors
Reduce error rate for data entry from 2% to 0.5%
Improve sales to new customers by 5%
Reduce voluntary employee turnover by 10%
FEASIBILITY ANALYSIS

Feasibility consists of several types we want to
assess for each candidate project

Technical feasibility
Can the project be done with existing technology?
 Are people available to use the technologies needed?


Economic feasibility
How much does the system cost to develop? Maintain? How
long will it be usable?
 Some add schedule feasibility – how long will it take
to create the system?

FEASIBILITY ANALYSIS

Operational feasibility
What impact will the new system have on how we do
business? Will there be changes to where or how processes
are performed?
 Will there be changes to employee skills needed? Changes
to employee training?
 Are existing users amenable to a new system?


These types of feasibility can be measured for
each project, and compared to determine which is
most feasible
FEASIBILITY ANALYSIS
Like voting or buying a car, feasibility analysis is
rarely completely logical or quantifiable
 Many other issues can also affect it

Political climate
 State of the US and/or global economy
 Preferences of the decision makers – favored vendors,
technologies, types of projects, etc.

PLANNING ACTIVITIES
To help structure development activities, we use
a life cycle model to identify the major sets of
activities, called life cycle phases
 There are many kinds of life cycle models

The Waterfall model is the oldest, and uses phases
like Requirements Analysis, High Level Design, Low
Level Design, Coding, and Testing
 The Rational Unified Process has Inception,
Elaboration, Construction, and Transition phases

PLANNING VIA THE SDLC
Each life cycle phase is broken down into more
and more specific activities, until
the time needed for each activity can be reliably
estimated
 Then the tasks are put into a Gantt chart or Pert
chart to show when they occur relative
to each other


Tasks might occur sequentially, have to start
or end together, or wait for some other tasks
to be completed
PLANNING VIA THE SDLC

Tasks for a project often include the acts of creating
specific documents or work products, approving
things or making decisions; such as
‘Prepare system test plan’
 ‘Approve system release’
 ‘Conduct user satisfaction survey’
 ‘Approve system requirements specification’


So the life cycle model provides guidance on the
types of activities needed, but the tasks provide
authority for people to do them
WATERFALL MODEL
FEATURES OF A WATERFALL MODEL
A waterfall model is easy to follow.
 It can be implemented for any size project.
 Every stage has to be done separately at the right time
so you cannot jump stages.
 Documentation is produced at every stage of a
waterfall model allowing people to understand what
has been done.
 Testing is done at every stage.

ADVANTAGES OF A WATERFALL MODEL
Easy to understand, easy to use
 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff, track)
 Works well when quality is more important than cost
or schedule

DISADVANTAGES OF A WATERFALL MODEL
All requirements must be known up front
 Deliverables created for each phase are considered
frozen – inhibits flexibility
 Can give a false impression of progress
 Does not reflect problem-solving nature of software
development – iterations of phases
 Integration is one big bang at the end
 Little opportunity for customer to preview the system
(until it may be too late)

WHEN TO USE THE WATERFALL MODEL
Requirements are very well known
 Product definition is stable
 Technology is understood
 New version of an existing product
 Porting an existing product to a new platform.

AGILE SDLCS
Speed up or bypass one or more life cycle phases
 Usually less formal and reduced scope
 Used for time-critical applications
 Used in organizations that employ disciplined
methods

AGILE MANIFESTO
SOME AGILE METHODS
 Adaptive
Software Development (ASD)
 Feature Driven Development (FDD)
 Crystal Clear
 Dynamic Software Development Method
(DSDM)
 Rapid Application Development (RAD)
 Scrum
 Extreme Programming (XP)
 Rational Unify Process (RUP)
EXTREME PROGRAMMING - XP
For small-to-medium-sized teams developing
software with vague or rapidly changing
requirements
Coding is the key activity throughout a software
project
 Communication among teammates is done with
code
 Life cycle and behavior of complex objects defined
in test cases – again in code
XP PRACTICES (1-6)
1.
2.
3.
4.
5.
6.
Planning game – determine scope of the next release
by combining business priorities and technical
estimates
Small releases – put a simple system into
production, then release new versions in very short
cycle
Metaphor – all development is guided by a simple
shared story of how the whole system works
Simple design – system is designed as simply as
possible (extra complexity removed as soon as found)
Testing – programmers continuously write unit
tests; customers write tests for features
Refactoring – programmers continuously restructure
the system without changing its behavior to remove
duplication and simplify
XP Practices (7 – 12)
7.
8.
9.
10.
11.
12.
Pair-programming -- all production code is written
with two programmers at one machine
Collective ownership – anyone can change any code
anywhere in the system at any time.
Continuous integration – integrate and build the
system many times a day – every time a task is
completed.
40-hour week – work no more than 40 hours a week
as a rule
On-site customer – a user is on the team and
available full-time to answer questions
Coding standards – programmers write all code in
accordance with rules emphasizing communication
through the code
XP is “extreme” because
Commonsense practices taken to extreme levels







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)
SUMMARY
This has been a (very) quick tour through the life
cycle of a system.
 You will have to do—to some extent—all of these
activities for your project.
