05a. Life Cycle Model

Download Report

Transcript 05a. Life Cycle Model

Software Life-Cycle Models
Hans Van Vliet, Software Engineering: Principles and Practices, 3rd
edition, Wiley 2008. (Chapter 3)
Eric J. Braude, Software Engineering, An Object-Oriented
Perspective, Wiley, 2001. (Section 2.4. Identifying and retiring risks)
Roger S. Pressman, Software Engineering, A Practitioner’s
Approach, 6th edition, McGraw Hill, 2005. (Chapter 25. Risk
Management)
Software Life-Cycle Models
• Life-cycle model (formerly, process model)
• The steps through which the product
progresses
–
–
–
–
–
–
–
Requirements phase
Specification phase
Design phase
Implementation phase
Integration phase
Maintenance phase
Retirement
• Q: In what order to perform these steps?
2
Many Life-Cycle Models
• Several dimensions
–
–
–
–
–
Sequential vs. iterative
Whole vs. incremental
Elaborative vs. transformational
Use of prototype
…
• Examples
– Waterfall, Rapid prototyping, Incremental, Spiral,
Model-driven, Feature-driven, Unified Process
(UP), Extreme Programming (XP), …
3
Build and Fix Model
• Problems
– No specifications
– No design
• Totally unsatisfactory
• Need life-cycle model
– “Game plan”
– Phases
– Milestones
4
Waterfall Model
• Characterized by
– Feedback loops
– Documentation-driven
– Operational product at end
• Advantages
– Documentation
– Maintenance may be easier
• Disadvantages
– Customer may not be aware of
what getting
– Costly when discrepancy found
in later stages
– Sometimes freezes part of
development
– May lead to badly structured
systems
5
Rapid Prototyping Model
(Throwaway)
• Determine needs of
customer
• Refine with interaction of
customers
• Experiment with parts not
understood
• Prototype system poorly
structured
• Operational product at end
6
Evolutionary Prototyping
• Process not visible (need
deliverables)
• Need highly skilled team
• Appropriate
– Small teams
– Part of system not well
understood
– Short lifecycle system
Problem description
(outline)
• Specification
• Development
• Validation
Concurrent
activities
• Initial version
• Intermediate version
• Final version
7
Incremental Model
• Divide project into builds
• Operational quality portion
of product within weeks
• Smaller capital outlay,
rapid return on investment
• Need open architecture—
maintenance implications
• Requires skilled
developers
8
Incremental Model (Variation)
• More risky version—pieces may not fit
9
Transformation Model
• Viewed as a sequence of steps that transforms a specification
into an implementation
• Use of formal specifications/models and transformation rules
• Correctness by construction <-> program correctness proof
• E.g., Model-driven development (MDD)
Decisions, rationale
and trans. rules
Requirements
Formal specifications
(lower level)
Requirements
analysis and
specification
Formal
specifications
Reusable
components
Transformation
/optimization
Development
history
10
Spiral Model
• Keys: risk analysis and evaluation
• Simplified form: Waterfall model
plus risk analysis
• Precede each phase by
– Alternatives
– Risk analysis
• Follow each phase by
– Evaluation
– Planning of next phase
11
Simplified Spiral Model
• Focus on eliminating errors early
• Examines level of effort
• Accommodates growth and
change (evolution)
• Restrictions
– In-house development (not
contracted)
– Good for large-scale systems
– Requires training in risk
analysis and resolution
12
Full Spiral Model (contd)
13
Risk
• A risk is something that may occur in the course of a
project, and which, under the worst outcome, would affect
it negatively and significantly [Braude 2001, Section 2.4].
• Two types:
– Those that can be avoided or worked around
– Those cannot be avoided
• Problems are those risks that have not been identified.
Risks must be managed!
• Risk retirement is process whereby risks are reduced or
eliminated.
14
Risk Management Activities




Identification
– Mindset: try to continually identify risks
– Write down concerns and press all team members to think of
more
Retirement planning
– Outline the steps that can be taken to retire the risk.
Prioritization
– Options: likelihood (10 most likely), impact (10 most impact),
retirement cost (10 highest cost)
– Formula: (11 - l)  (11 - i)  rc
– Lowest is first to address
Retirement or mitigation
15
Types of Risks (Pressman 2005, Chapter 25)
• Generic (every project)
–
–
–
–
–
–
–
Product size
Business impact (constraints imposed by mgm’t)
Customer characteristics
Process definition
Development environment
Technology to be built
Staff size and experience
• Product-specific (characteristics of product)
– Examples?
16
Example Risks








Underestimation of size
Time lag in learning new tools
Lack of top management commitment
Personnel resign
Changing scope and/or objectives
Technical breakthroughs—change in product
Unrealistic schedule
Personnel lack required knowledge or skills
17
Feature Driven Development (FDD)
1) Selection of domain
experts and development
teams
2) Completion of
requirements definition by
guidance team
Completion of the
develop an overall
model process
Entry Criteria
Completion of the
build a feature list
process
Entry Criteria
Completion of the
plan by feature
process
Completion of the
design by feature for
each of the selected
features
Entry Criteria
Entry Criteria
Entry Criteria
Develop an
Overall
Model
Build a
Feature List
Exit Criteria
Exit Criteria
Plan by
Feature
Exit Criteria
Design by
Feature
Exit Criteria
Build by
Feature
Exit Criteria
Completion of:
Completion of:
Completion of:
Completion of:
Completion of:
a) the object model
(class, sequence
diagrams and
explanatory notes)
b) Interview Report
c) Feasibility Report
d) Use case scenarios
a) feature list, including a
list of major feature sets
and a list of features
within each feature set
b) GUI
c) Models
d) Requirements
a) development plan,
consisting feature sets
with completion dates
a) design package,
comprising a design
document, referenced
requirements in the form of
documents, memos,
supporting documentation,
design alternatives, latest
object model, class and
method prologues, to do
task list on affected classes
for each team members
a) development of
one or more
features (clientvalued functions)
18
Exam Questions
• What is Extreme Programming?
• What are the advantages and disadvantages
of using Extreme Programming as
development model?
19