Systems development life cycle

advertisement

The Rise of Computer Science
◦ Machine Language (1st Gen)
◦ Assembly Language (2nd Gen)
◦ Third Generation Languages (FORTRAN, BASIC, Java,
C++, etc.)
◦ CASE (4th Gen)?

IT System Complexity




Produced by the Standish Group via surveys, focus groups,
and case studies
http://www.standishgroup.com/sample_research/chaos_199
4_1.php
Project Resolution Types
◦ Success = On-Time, On-Budget, Fully Featured
◦ Challenged = Over-Time, Over-Budget, Fewer Features
◦ Impaired = Cancelled
A lot of interesting findings about Software Development
track record
“The three major reasons
that a project will
succeed are user
involvement, executive
management support,
and a clear statement of
requirements. There are
other success criteria,
but with these three
elements in place, the
chances of success are
much greater. Without
them, chance of failure
increases dramatically.”
– The Chaos Report
(1994), Standish Group
Project Success Factors
% of
Response
s
1. User Involvement
15.9%
2. Executive Management Support
3. Clear Statement of
Requirements
4. Proper Planning
13.9%
5. Realistic Expectations
8.2%
6. Smaller Project Milestones
7.7%
7. Competent Staff
7.2%
8. Ownership
5.3%
9. Clear Vision & Objectives
2.9%
10. Hard-Working, Focused Staff
2.4%
Other
13.9%
13.0%
9.6%

p.3: "Systems analysis and design emerged
from the need to perform certain activities
around, and particularly prior to, the steps
involved in developing a computer system
using software engineering tools and
techniques."
Cost of Defects
Specification
Planning
Programming
Operation


A process: a series of steps involving activities,
constrains, and resources that produce an
intended ouput of some kind
A process involves a set of tools and
techniques

Phase I Requirements
◦ All balls must remain in motion
◦ Only one person at a time can touch
a ball (ball must be passed in the air)
◦ Each person may only touch one ball
at a time
◦ Juggle for 15 seconds without
dropping the ball

Phase II Requirements
◦ All phase I requirements apply
◦ The ball cannot be passed to the
person by your side



Impose consistency and structure on a set of
activities
Guide us to understand, control, examine, and
improve the activities
Enable us to capture our experiences and pass
them along
Carnegie Mellon University








Waterfall model
V model
Prototyping model
Operational specification
Transformational model
Spiral model
Phased development: increments and iterations
Agile methods




One of the first process development models
proposed
Works for well understood problems with
minimal or no changes in the requirements
Simple and easy to explain to customers
It presents
 a very high-level view of the development process
 sequence of process activities

Each major phase is marked by milestones
and deliverables (artifacts)
This version differs from the book but the idea is the same:


There is no iteration in waterfall model
Most software developers apply a great many
iterations





Provides no guidance on how to handle changes
to requirements/design during development
(assumes requirements/design can be frozen)
Views software development as manufacturing
process rather than as creative process
There is no iterative activities that lead to
creating a final product
Long wait before a final product
Lacks Business Process Redesign!


Shorter cycle time
System delivered in pieces
◦ enables customers to have some functionality while
the rest is being developed

Allows two systems functioning in parallel
◦ the production system (release n): currently being
used
◦ the development system (release n+1): the next
version


Incremental development: starts with small functional
subsystem and adds functionality with each new release
Iterative development: starts with full system, then
changes functionality of each subsystem with each new
release

Phased development is desirable for several
reasons
◦ Training can begin early, even though some functions
are missing
◦ Markets can be created early for functionality that has
never before been offered
◦ Frequent releases allow developers to fix
unanticipated problems globaly and quickly
◦ The development team can focus on different areas of
expertise with different releases


Emphasis on flexibility in producing software
quickly and capably
Agile manifesto
http://www.agilemanifesto.org/
 Value individuals and interactions over process and
tools
 Prefer to invest time in producing working software
rather than in producing comprehensive
documentation
 Focus on customer collaboration rather than contract
negotiation
 Concentrate on responding to change rather than on
creating a plan and then following it



Extreme programming (XP)
Crystal: a collection of approaches based on
the notion that every project needs a unique
set of policies and conventions
Scrum: 30-day iterations; multiple selforganizing teams; daily “scrum” coordination

What about process redesign?
◦ What does it profit the business if all we do is
automate the process as is?
◦ What about COTS?
◦ What is the answer?
Download