Sie sind auf Seite 1von 44

Miscellaneous Stuff

 anyone new to the class?


 Assignment 1

 project website and proposal due next class


(Thursday)
Project Stuff

 Team issues
 Proposal issues
– Project title
– Team members (skills, anticipated role within and
contributions to the project)
– Project website URL
– Objectives of project
– Description of project (why do you want to do it, what
features do you anticipate it will have, anticipated life-
cycle model, anticipate language(s), special needs)
 Website issues
– Title, names (contact info), meeting summaries, docs
CHAPTER 3

SOFTWARE
LIFE-CYCLE
MODELS
Software Life-Cycle Models

 Life-cycle model
 The steps through which the product
progresses
– Requirements phase
– Specification phase
– Design phase
– Implementation phase
– Integration phase
– Maintenance phase
– Retirement
Overview

 Build-and-fix model
 Waterfall model
 Rapid prototyping model
 Incremental model
 Extreme programming
 Synchronize-and-stabilize model
 Spiral model
 Object-oriented life-cycle models
 Comparison of life-cycle models
Build and Fix Model
Build and Fix Model

 Problems
– No specifications
– No design
 Totally
unsatisfactory
 Need life-cycle
model
– “Game plan”
– Phases
– Milestones
Waterfall Model (contd)
Waterfall Model (contd)

 Characterized by
– Feedback loops
– Documentation-driven
 Advantages
– Documentation
– Maintenance easier
 Disadvantages
– Specifications
Rapid Prototyping Model

 Linear model
 “Rapid”
Three Key Points

 Do not turn into product


 Rapid prototyping may replace specification
phase—never the design phase
 Comparison:
– Waterfall model—try to get it right first time
– Rapid prototyping—frequent change, then discard
Waterfall and Rapid Prototyping Models

 Waterfall model
– Many successes
– Client needs
 Rapid prototyping model
– Not proved
– Has own problems
 Solution
– Rapid prototyping for requirements
phase
– Waterfall for rest of life cycle
Incremental Model

 Divide project
into builds
Incremental Model (contd)

 Waterfall, rapid prototyping models


– Operational quality complete product at end
 Incremental model
– Operational quality portion of product within weeks
 Less traumatic
 Smaller capital outlay, rapid return on investment
 Need open architecture—maintenance
implications
 Variations used in object-oriented life cycle
Incremental Model (contd)
Incremental Model (contd)

 More risky version—pieces may not fit


Extreme Programming

 Somewhat controversial new approach


 Stories (features client wants)
 Estimate duration and cost of each story
 Select stories for next build
 Each build is divided into tasks
 Test cases for task are drawn up first
 Pair programming
 Continuous integration of tasks
Unusual Features of XP

 Computers are put in center of large room


lined with cubicles
 Client representative is always present
 Cannot work overtime for 2 successive
weeks
 No specialization
 Refactoring
XP Project
XP Iteration
XP Development
XP Coding
Evaluating XP

 XP has had some successes


 Good when requirements are vague or
changing
 Too soon to evaluate XP
Synchronize-and Stabilize Model

 Microsoft’s life-cycle model


 Requirements analysis—interview potential
customers
 Draw up specifications
 Divide project into 3 or 4 builds
 Each build is carried out by small teams
working in parallel
Synchronize-and Stabilize Model (contd)

 At the end of the day—synchronize (test and


debug)
 At the end of the build—stabilize (freeze build)
 Components always work together
– Get early insights into operation of product
Spiral Model

 Simplified form
– Waterfall model
plus risk analysis
 Precede each
phase by
– Alternatives
– Risk analysis
 Follow each
phase by
– Evaluation
– Planning of next
phase
Simplified Spiral Model

 If risks
cannot be
resolved,
project is
immediately
terminated
Full Spiral Model (contd)
Analysis of Spiral Model

 Strengths
– Easy to judge how much to test
– No distinction between development,
maintenance

 Weaknesses
– For large-scale software only
– For internal (in-house) software only
Conclusions

 Different life-cycle models


 Each with own strengths
 Each with own weaknesses
 Criteria for deciding on a model include
– The organization
– Its management
– Skills of the employees
– The nature of the product
 Best suggestion
– “Mix-and-match” life-cycle model
Object-Oriented Life-Cycle Models

 Need for iteration within and between phases


– Fountain model
– Recursive/parallel life cycle
– Round-trip gestalt
– Rational Unified Process (RUP)
 All incorporate some form of
– Iteration
– Parallelism
– Incremental development
Rational Unified Process

 Commercial product from IBM


 http://www.rational.com/rup/
RUP

 Four cycles
– inception
– elaboration
– construction
– transition
– each followed by a major milestone
RUP: Inception Phase

 Purpose
– establish the business case and define the project
scope
 Selected deliverables
– A vision document
– An initial use-case model
– An initial project glossary
– An initial business case
– An initial risk assessment
– A project plan
– One or more prototypes
RUP: Lifecycle Objectives Milestone

 Stakeholder buy-in
 Requirements understanding
 Credibility of estimates
 Prototype evaluation
RUP: Elaboration Phase

 Purpose
– analyze problem, establish a sound architecture,
develop a project plan, and eliminate high risk elements
 Hardest phase
 Selected deliverables
– A use-case model
– An architecture description
– A development plan
RUP: Lifecycle Architecture Milestone

 Is the vision stable?


 Is the architecture stable?
 Is the plan detailed enough?
 Does everyone agree the the plan can achieve the
vision?
 Re-evaluate estimates
RUP: Construction Phase

 Purpose
– develop remaining components and into them into the
product
 Should be incremental
 Deliverables
– the software product
– the user manuals
– a description of the current release
RUP: Initial Operational Capability Milestone

 Is the product stable and mature enough for


users?
 All are stakeholders ready for release to users?
RUP: Transition Phase

 Purpose
– to transition the product to the user community
 Selected objectives
– beta testing
– training
– roll-out to marketing, distribution, and sales
– achieving final product baseline as rapidly and cost
effectively as practical
RUP: Product Release Milestone

 Is the user satisfied?


RUP: Iteration

 Product release may coincide with the inception


phase for the next cycle
Book Assignment

 Read chapter 3
– Problems 3.5, 3.6, 3.7, 3.8
– Follow (AND READ) the guided tour at
http://www.extremeprogramming.org
» DEMO
– Describe what you would like and not like if you worked
in an organization that used extreme programming.
– Due: February 3rd
Project Assignment

 Website
 Proposal

Das könnte Ihnen auch gefallen