chapter 15, software life cycle

69
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 15, Software Life Cycle

Upload: loe

Post on 15-Jan-2016

49 views

Category:

Documents


1 download

DESCRIPTION

Chapter 15, Software Life Cycle. Outline of Today’s Lecture. Modeling the software life cycle Sequential models Pure waterfall model V-model Sawtooth model Iterative models Boehm’s spiral model Unified Process Entity-oriented models Issue-based model. Definitions. Software life cycle: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 15, Software Life Cycle

Usi

ng

UM

L, P

atte

rns,

an

d J

ava

Ob

ject

-Ori

ente

d S

oftw

are

En

gin

eeri

ng

Chapter 15,Software Life Cycle

Page 2: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Outline of Today’s Lecture

• Modeling the software life cycle• Sequential models

• Pure waterfall model• V-model• Sawtooth model

• Iterative models• Boehm’s spiral model• Unified Process

• Entity-oriented models• Issue-based model

Page 3: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

Definitions

• Software life cycle:• Set of activities and their relationships to each other to

support the development of a software system

• Software development methodology: • A collection of techniques for building models applied

across a software life cycle.

Page 4: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Typical Software Life Cycle Questions• Which activities should we select for the software project?• What are the dependencies between activities? • How should we schedule the activities?• To find these activities and dependencies we can use the

same modeling techniques we use for software development:• Functional Modeling of a Software Lifecycle

• Scenarios• Use case model

• Structural modeling of a Software Lifecycle• Object identification• Class diagrams

• Dynamic Modeling of a Software Lifecycle• Sequence diagrams, statechart and activity diagrams

Page 5: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

DeveloperClient Project manager

System developmentProblem definition

<<include>><<include>>

<<include>>

Software development

System operation

End userAdministrator

Functional Model of a simple life cycle model

Page 6: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Systemoperationactivity

Systemdevelopmentactivity

Problemdefinitionactivity

Software development goes through a linear progression of statescalled software development activities

Activity Diagram for the same Life Cycle Model

Page 7: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Another simple Life Cycle Model

System Development and Market creation can be done in parallel.They must be done before the system upgrade activity

Systemupgradeactivity

Marketcreationactivity

Systemdevelopmentactivity

Page 8: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Two Major Views of the Software Life Cycle

• Activity-oriented view of a software life cycle• Software development consists of a set of development

activities • All the examples so far

• Entity-oriented view of a software life cycle• Software development consists of the creation of a set of

deliverables.

Page 9: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Entity-centered view of Software Development

Lessons learneddocument

System specificationdocument Executable system

Market surveydocument

Software Development

Software development consists of the creation of a set of deliverables

Page 10: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Specification

Executable system

Lessons learned

Market survey

Problem definition

System development

System operation

Activity Work product

consumes

produces

consumes

produces

consumes

produces

activity

activity

activity

document

document

document

Combining Activities and Entities in One View

Page 11: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

IEEE Std 1074: Standard for Software Life Cycle Activities

IEEE Std 1074IEEE Std 1074

Project Management

Project Management

Pre-Development

Pre-Development

Develop-ment

Develop-ment

Post-Development

Post-Development

Cross-Development

(Integral Processes)

Cross-Development

(Integral Processes)

> Project Initiation>Project Monitoring &Control> Software Quality Management

> Concept Exploration> System Allocation

> Requirements> Design> Implemen- tation

> Installation> Operation & Support> Maintenance> Retirement

> V & V> Configuration Management> Documen- tation> Training

Process Group

Process

Page 12: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Object Model of the IEEE 1074 Standard

Process Group

Activity Work Product

Resource

Task

Process

Money

Time

Participant

consumed by

produces

Work Unit

*

*

*

*

Software Life Cycle

*

*

Page 13: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Life Cycle Modeling

• Many models have been proposed to deal with the problems of defining activities and associating them with each other

• The first model proposed was the waterfall model [Royce]

• Spiral model [Boehm]• Objectory process [Jacobsen]• Rational process [Kruchten]• Unified process [Jacobsen, Booch, Rumbaugh]

Page 14: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

RequirementsProcess

SystemAllocationProcess

ConceptExplorationProcess

DesignProcess

ImplementationProcess

InstallationProcess

Operation &Support Process

Verification& Validation

Process

The Waterfall Model of the Software Life Cycle

adapted from [Royce 1970]

Page 15: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

From the Waterfall Model to the V Model

System Design

Requirements

Analysis

Requirements

Engineering

Object Design

Integration Testing

System Testing

Unit Testing

Implemen-tation

SystemTesting

Unit Testing

Integration Testing

Acceptance

Page 16: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Activity Diagram of the V ModelSystem

RequirementsAnalysis

Implementation

PreliminaryDesign

DetailedDesign

SoftwareRequirementsElicitation

Operation

ClientAcceptance

RequirementsAnalysis

UnitTest

SystemIntegration

& Test

ComponentIntegration

& Test

Problem with the V-Model: Developers Perception =

User Perception

precedesIs validated by

Page 17: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Properties of Waterfall-based Models

• Managers love waterfall models• Nice milestones• No need to look back (linear system)• Always one activity at a time• Easy to check progress during development: “The

system is 90% coded”, “We have done 20% of our tests”

• However, software development is non-linear• While a design is being developed, problems with

requirements are identified• While a program is being implemented, design and

requirement problems are found• While a program is tested, coding errors, design errors

and requirement errors are found.

Page 18: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

• The spiral model focuses on addressing risks incrementally, in order of priority.

• It consists of the following set of activities • Determine objectives and constraints• Evaluate alternatives • Identify risks• Resolve risks by assigning priorities to risks• Develop a series of prototypes for the identified risks starting

with the highest risk• Use a waterfall model for each prototype development • If a risk has successfully been resolved, evaluate the results of

the round and plan the next round• If a certain risk cannot be resolved, terminate the project

immediately

1. This set of activities is applied to a couple of so-called rounds.

Spiral Model

Page 19: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Rounds in Boehm’s Spiral Model

• Concept of Operations• Software

Requirements• Software Product

Design• Detailed Design• Code• Unit Test• Integration and Test• Acceptance Test• Implementation

• For each round go through these activities:

• Define objectives, alternatives, constraints

• Evaluate alternatives, identify and resolve risks

• Develop and verify a prototype

• Plan the next round.

Disccourse on Prototyping

Page 20: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Diagram of Boehm’s Spiral Model

Page 21: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

Round 1, Concept of Operations:Determine objectives,alternatives & constraints

ProjectStart

ProjectStart

Page 22: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Round 1, Concept of Operations: Evaluate alternatives, identify & resolve risks

Risk AnalysisRisk Analysis

Page 23: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

Round 1, Concept of Operations: Develop and validate

Round: Concept of Operation Activity: Develop and Validate

Round: Concept of Operation Activity: Develop and Validate

Page 24: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Round 1, Concept of Operations: Prepare for Next Activity

Requirements andLife cycle Planning

Requirements andLife cycle Planning

Page 25: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Round 2, Software Requirements: Determine Objectives,Alternatives & Constraints

Start of Round 2

Page 26: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Comparison of ProjectsDetermine objectives,alternatives, & constraints

Evaluate alternatives,identify & resolve risks

Develop & ver ifynext level productPlan next phase

Requirements

Development

Integration

plan

plan

plan

Requirements

Design

validation

validation

SoftwareSystem

Product

Riskanalysis

Riskanalysis

Prototype1Prototype2

Prototype3

Riskanalysis

Concept ofoperation

RequirementsDesign

Code

Unit Test

Integration & TestAcceptance

DetailedDesign

P1

P2

Test

Project P1

Project P2

Page 27: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Outline of Today’s Lecture

Modeling the software life cycleSequential models

Pure waterfall modelV-modelSawtooth model

Iterative modelsBoehm’s spiral model• Unified Process

• Entity-oriented models• Issue-based model

Page 28: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Unified Process

• The Unified Process is another iterative process model

• There are 4 states of a software system developed with the Unified Process

• Inception, Elaboration, Construction, Transition

• Several Artifacts Sets• Management Set, Engineering Set

• Several Workflows (7)• Management, Environment, Requirements, Design,

Implementation, Assessment, Deployment

• Each iteration is managed as a software project• Project participants are called stakeholders.

Page 29: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

The Unified Process

• The Unified Process supports the following• Evolution of project plans, requirements and software

architecture with well-defined synchronization points• Risk management• Evolution of system capabilities through demonstrations

of increasing functionality

• Big emphasis on the difference between engineering and production

• This difference is modeled by introducing two major stages:

• Engineering stage• Production stage.

Page 30: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Difference: Engineering vs. Production• Engineering Stage:

• Focuses on analysis and design activities, driven by risks, unpredictable issues, smaller teams

• Production Stage:• Focuses on construction, test and deployment, driven by more

predictable issues, artifacts and quality assessment, larger teams

Focus FactorRisk

Activities

Artifacts

Quality Assessment

Engineering StageSchedule, technical feasibility

Planning, Analysis, Design

Requirement Analysis and System Design DocumentsDemonstration, Inspection

Production StageCost

Implementation, Integration

Baselines, Releases

Testing

Page 31: Chapter 15, Software Life Cycle

Phases in the Unified Process

The 2 major stages are decomposed into 4 phases

Engineering stage1. Inception phase

2. Elaboration phase

ElaborationInception

ConstructionTransition

Transition from engineering to production stage

Production phase3. Construction phase4. Transition phase

The phases describe states of the software system to be developed.

Page 32: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Inception Phase: Objectives

• Establish the project’s scope • Define acceptance criteria • Identify the critical use cases and scenarios • Demonstrate at least one candidate software

architecture• Estimate the cost and schedule for the project • Define and estimate potential risks

Page 33: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Elaboration Phase: Objectives

At the end of this phase, the “engineering” of the system is complete

A decision must be made:• Commit to production phase?• Move to an operation with higher cost risk and inertia

(i.e. bureaucracy)

Main questions:• Are the system models and project plans stable

enough?• Have the risks been dealt with?• Can we predict cost and schedule for the completion of

the development for an acceptable range?

Page 34: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Construction Phase: Objectives

• Minimize development costs by optimizing resources

• Avoid unnecessary restarts (modeling, coding)

• Achieve adequate quality as fast as possible• Achieve useful version

• Alpha, beta, and other test releases

Page 35: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Transition Phase

• The transition phase is entered • when a baseline is mature enough that it can be

deployed to the user community

• For some projects the transition phase is• the starting point for the next version

• For other projects the transition phase is • a complete delivery to a third party responsible for

operation, maintenance and enhancement of the software system.

Page 36: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

Transition Phase: Objectives

• Achieve independence of users• Produce a deployment version is complete and

consistent• Build a release as rapidly and cost-effectively as

possible.

Page 37: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

Iteration in the Unified Process

• Each of the four phases introduced so far (inception, elaboration, construction, transition) consists of one or more iterations

• An iteration represents a set of activities for which

• milestones are defined (“a well-defined intermediate event”)

• the scope and results are captured with work-products called artifacts.

Page 38: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

Artifact Sets

• Artifact set • A set of work products that are persistent and in a

uniform representation format (natural language, Java, UML,…)

• Every element in the set is developed and reviewed as a single entity

• The Unified Process distinguishes five artifact sets:• Management set • Requirements set• Design set• Implementation set• Deployment set Also called Engineering set.

Page 39: Chapter 15, Software Life Cycle

Artifact Sets in the Unified Process

Requirements Set

1. Vision document (“problem statement”)

2. Requirements model(s)

Design Set

1. Design model(s)2. Test model

3. Software architecture

Implementation Set

1. Source code baselines2. Compile-time files3. Component executables

Deployment Set

1. Integrated pro- duct executable2. Run-time files

3. User documentation

Management Set

Planning Artifacts1. Work breakdown structure2. Business Case3. Release specifications4. Software Project Management Plan

Operational Artifacts1. Release descriptions2. Status assessments3. Software change order database4. Deployment documents5. Environment

Page 40: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

Focus on Artifact Sets during Development

• Each artifact set is the predominant focus in one stage of the unified process

Inception Elaboration Construction Transition

Management Set

Requirements Set

Design Set

Implementation Set

Deployment Set

Page 41: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

Management of Artifact Sets

• Some artifacts are changed only after a phase• Other artifacts are updated after each minor

milestone, i.e. after an iteration • The project manager is responsible

• to manage and visualize the sequence of artifacts across the software lifecycle activities

• This visualization is often called artifact roadmap.

Page 42: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

Artifact Set Roadmap: Focus on Models

Inception Elaboration Construction TransitionManagement Set

Requirements Set

Design Set

Deployment Set

1. Vision2. WBS3. Schedule4. Conf. Management5. Project Agreement6. Test cases

1. Analysis Model

1. System Design2. Interface Specification

Implementation Set

1. Source code2. Test cases

1. Alpha-Test2. Beta-Test

Informal

Baseline

Page 43: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43

Artifact Set Roadmap: Focus on Documents

Inception Elaboration Construction TransitionManagement Set

Requirements Set

Design Set

Deployment Set

1. Problem Statement2. WBS3. SPMP4. SCMP5. Project Agreement6. Test plan

1. RAD

1. SDD2. ODD

Implementation Set

1. Source code2. Test cases

1. User Manual2. Administrator Manual

Informal

Baseline

Page 44: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44

Models vs. Documents

• Documentation-driven approach • The production of the documents drives the milestones

and deadlines

• Model-driven approach• The production of the models drive the milestones

deadlines

• Focus of a modern software development project is model-driven

• Creation of models and construction of the software system

• The purpose of documentation is to support this goal.

Page 45: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45

Reasons for Documentation-Driven Approach

• No rigorous engineering methods and languages available for analysis and design models

• Language for implementation and deployment is too cryptic

• Software project progress needs to be assessed• Documents represent a mechanism for demonstrating

progress

• People want to review information• but do not understand the language of the artifact

• People wanted to review information, • but do not have access to the tools to view the

information.

Page 46: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46

Model-Driven Approach

• Provide document templates at project start• Project specific customization

• Instantiate documents automatically from these templates

• Enriches them with modeling information generated during the project

• Automatically generates documents from the models. Examples:

• Schedule generator • Automatic requirements document generator• Automatic interface specification generator • Automatic analysis and design documents generator• Automatic test case generator• Regression tester.

Page 47: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47

Workflows in the Unified Process (1)

• Management workflow• Planning of the project (Creation of problem statement,

SPMP, SCMP, test plan)

• Environment workflow• Automation of process and maintenance environment.

Setup of infrastructure (communication infrastructure, configuration management, build environment).

• Requirements workflow• Analysis of application domain and creation of

requirements artifacts (analysis model).

• Design workflow• Creation of solution and design artifacts (system design

model, object design model).

Page 48: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48

Workflows in the Unified Process (2)

• Implementation workflow• Implementation of solution, source code testing,

maintenance of implementation and deployment artifacts (source code).

• Assessment workflow• Assess process and products (reviews, walkthroughs,

inspections, unit testing, integration testing, system testing, regression testing)

• Deployment workflow• Transition the software system to the end user.

Page 49: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50

Workflows vs Phases

• A Phase describes the status of a software system

• Inception, elaboration, construction, transition

• Workflows can consist of one or more iterations per phase

• “We are in the 3rd iteration in the design workflow”, “We are in the 3rd iteration during design”

• Workflows create artifacts (models, documents) for the artifact sets

• Management set, engineering set.

Page 50: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51

Managing Projects in the Unified Process

• How should we manage the construction of software systems with the Unified Process?

• Treat the development of a software system with the Unified Process as a set of several iterations

• Some of these can be scheduled in parallel, others have to occur in sequence

• Define a single project for each iteration• Establish work break down structures for each of the 7

workflows.

Page 51: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52

The term “Process“ is overloaded in the Unified Process

• Meta Process (Also called “Business process”) • The policies, procedures and practices in an organization

pursuing a software-intensive line of business. • Focus: Organizational improvement, long-term strategies,

and return on investment (ROI)

• Macro Process (“Lifecycle Model”)• The set of processes in a software lifecycle and dependencies

among them• Focus: Producing a software system within cost, schedule and

quality constraints

• Micro Process• Techniques for achieving an artifact of the software process. • Focus: Intermediate baselines with adequate quality and

functionality, as economically and rapidly as practical.

Page 52: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53

Phase vs. Iteration

• A phase creates formal, stake-holder approved versions of artifacts (“major milestones”)

• A phase to phase transition is triggered by a business decisions

• An iteration creates informal, internally controlled versions of artifacts (“minor milestones”)

• Iteration to iteration transition is triggered by a specific software development activity.

Page 53: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54

Limitations of Waterfall and Iterative Models

• Neither of these models deal well with frequent change

• The Waterfall model assumes that once you are done with a phase, all issues covered in that phase are closed and cannot be reopened

• The Spiral model can deal with change between rounds, but do not allow change within a round

• The Unified Process model can deal with change in an iteration, but it has problems to deal with change within a iteration

• What do we do if change is happening more frequently?

• “The only constant is the change” (Hammer & Champy, Reengineering)

Page 54: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 55

Frequency of Change and Choice of Software Lifecycle Model

PT = Project Time, MTBC = Mean Time Between Change

• Change rarely occurs (MTBC » PT)

• Waterfall Model

• Open issues are closed before moving to next phase

• Change occurs sometimes (MTBC ≈ PT)

• Boehm’s Spiral Model, Unified Process

• Change occurring during phase may lead to iteration of a previous phase or cancellation of the project

• Change is frequent (MTBC « PT)

• Issue-based Development (Concurrent Development)

• Phases are never finished, they all run in parallel.

Page 55: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 56

An Alternative: Issue-Based Development• A system is described as a collection of issues

• Issues are either closed or open• Closed issues have a resolution• Closed issues can be reopened (Iteration!)

• The set of closed issues is the basis of the system model

I1:Open

I2:Closed I3:Closed

A.I1:Open

A.I2:Open

SD.I1:Closed

SD.I2:Closed

SD.I3:Closed

Planning Requirements Analysis System Design

Page 56: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 57

Waterfall Model: Analysis Phase

I1:Open

I2:Open I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:OpenAnalysisAnalysisAnalysis

Page 57: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 58

Waterfall Model: Design Phase

I1:Closed

I2:Closed I3:Open

A.I1:Open

A.I2:Open

SD.I1:Open

SD.I2:Open

SD.I3:OpenAnalysis

DesignDesign

AnalysisAnalysis

Page 58: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 59

Waterfall Model: Implementation Phase

I1:Closed

I2:Closed I3:Closed

A.I1:Closed

A.I2:Closed

SD.I1:Open

SD.I2:Open

SD.I3:Open

ImplementationImplementation

DesignDesign

AnalysisAnalysis

Page 59: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 60

Waterfall Model: Project is Done

I1:Closed

I2:Closed I3:Closed

A.I1:Closed

A.I2:Closed

SD.I1:Open

SD.I2:Open

SD.I3:Open

ImplementationImplementation

DesignDesign

AnalysisAnalysis

Page 60: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 61

Issue-Based Model: Analysis Phase

I1:Open

I2:Open I3:Open

D.I1:Open

Imp.I1:Open

Analysis:80%Analysis:80%

Design: 10%Design: 10%

Implemen-tation: 10%Implemen-tation: 10%

Page 61: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 62

Issue-Based Model: Design Phase

I1:Closed

I2:Closed I3:Open

SD.I1:Open

SD.I2:Open

Imp.I1:Open

Imp.I2:Open

Imp.I3:OpenAnalysis:40%Analysis:40%

Design: 60%Design: 60%

Implemen-tation: 0%Implemen-tation: 0%

Page 62: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 63

Issue-Based Model: Implementation Phase

I1:Open

I2:Closed I3:Closed

A.I1:Open

A.I2:Closed

SD.I1:Open

SD.I2:Closed

SD.I3:OpenAnalysis:10%Analysis:10%

Design: 10%Design: 10%

Implemen-tation: 60%Implemen-tation: 60%

Page 63: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 64

Issue-Based Model: Prototype is Done

I1:Closed

I2:Closed I3: Pending

A.I1:Closed

A.I2:Closed

SD.I1:Open

SD.I2: Unresolved

SD.I3:Closed

Page 64: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 65

Summary Unified Process

• Unified Process: Iterative software lifecycle model • Emphasis on early construction of a software architecture• Emphasis on early demonstrations of the system

• Definitions• 4 phases: Inception, Elaboration, Construction, Transition• 7 workflows: Management, environment, requirements,

design, implementation, assessment, deployment. • 5 artifact sets: Management set, requirements set, design

set, implementation set, deployment set

• Iteration: Repetition within a workflow.• A unified process iteration should be treated as a

software project.

Page 65: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 66

• Software life cycle models• Sequential models

• Pure waterfall model and V-model• Iterative model

• Boehm’s spiral model• Unified process

• Entity-oriented models• Issue-based model• Sequential models can be modeled as special cases

of the issue-based model

• Prototyping• A specific type of system model

• Illustrative, functional and exploratory prototypes• Revolutionary and evolutionary prototyping• Time-boxed prototyping is a better term than rapid

prototyping.

Summary

Page 66: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 67

Additional References

• Walker Royce • Software Project Management, Addison-Wesley, 1998.

• Ivar Jacobsen, Grady Booch & James Rumbaugh• The Unified Software Development Process, Addison

Wesley, 1999.

• Jim Arlow and Ila Neustadt• UML and the Unified Process: Practical Object-Oriented

Analysis and Design, Addison Wesley, 2002.

• Philippe Kruchten• Rational Unified Process, Addison-Wesley, 2000.

Page 67: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 68

Additional and Backup Slides

Page 68: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 69

OOSE-Book: Development activities and their products

Requirementselicitation

Analysis

System design

problem statement

functionalmodel

nonfunctionalrequirements

object model

dynamic model

class diagram

use case diagram

statechart diagram

sequence diagram

Page 69: Chapter 15, Software Life Cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 70

OOSE- Development activities (cont’d)

System design

Object design

Implemen-tation

object design model

design goals

subsystem decomposition

source code

Testing deliverable system

class diagram