Beruflich Dokumente
Kultur Dokumente
ObjectOrientedSoftwareEngineering
Artifacts Sets:
Management Set, Engineering Set
Workflows:
Management, Environment, Requirements, Design,
Implementation, Assessment, Deployment
Iterations
Managing iterations as software projects
Mistakes in managing iterations
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Review of Definitions
Software life cycle:
Set of activities and their relationships to each other to
support the development of a software system
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Waterfall model
V-model
Spiral model
Issue-based model
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Meta process
Focus: Organizational improvement, long-term strategies, and
return on investment (ROI)
Also called: Business process.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Production Stage
Driven by more predictable but larger teams, focusing on
construction, test and deployment activities
Focus
EngineeringStageEmphasis
ProductionStageEmphasis
Artifacts
Baselines,Releases
Activities
Planning,Requirements,
SystemDesignDocuments
Planning,Analysis,Design
QualityAssessment
Demonstration,Inspection
Testing
Risk
BerndBruegge&AllenH.Dutoit
Technicalfeasibility,Schedule Cost
Implementation,Integration
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
Production phase
Construction phase
Transition phase.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
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?
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
10
Elaboration
Transition from
engineering stage to
production stage.
Construction
Transition
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
11
Inception
Elaboration
Transition
Construction
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
12
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
13
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
14
Inception
Elaboration
Transition
Construction
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
15
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
16
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
17
Inception
Elaboration
Transition
Construction
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
18
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
19
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
20
Transition Phase
Inception
Elaboration
Transition
Construction
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
21
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
22
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
23
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
24
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
25
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
26
Management set
Requirements set
Design set
Implementation set
Deployment set
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
27
Engineering Set
Design Set
Implementation
Deployment
Set
Set
1. Design
1. Source code
1. Integrated promodel(s)
baselines
duct executable
2. Test model
2. Compile-time
2. Run-time files
files
3. Software
3. Component
3. User
architecture
executables
documentation
Management Set
Planning Artifacts
Operational Artifacts
1 Software Project
Management Plan (SPMP)
2. Software Configuration
Management Plan (SCMP)
3. Work breakdown structure
4. Business Case
5. Release specifications
BerndBruegge&AllenH.Dutoit
1. Release descriptions
2. Status assessments
3. Change Management
database
4. Deployment documents
5. Environment.
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
28
Requirements set
Goal: Capture problem in language of problem domain
Notation: Structured text, UML models
Design set
Goal: Capture the engineering blueprints
Notation: Structured text, UML models.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
29
Deployment set
Goal: Capture the solution in machine-readable format
Notation: Machine language.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
30
Elaboration
Construction
Transition
Management
Set
Requirements
Set
Design Set
Implementation
Set
Deployment
Set
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
31
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
32
Management Set
1. Vision
2. WBS
3. Schedule
4. Conf. Management
5. Project Agreement
6. Test cases
Requirements Set
1. Analysis Model
Design Set
1. System Design
2. Interface Specification
Implementation Set
1. Source code
2. Test cases
Deployment Set
1. Alpha-Test
2. Beta-Test
Informal
Baseline
Transition
Management Set
1. Problem Statement
2. WBS
3. SPMP
4. SCMP
5. Project Agreement
6. Test plan
Requirements Set
1. RAD
Design Set
1. SDD
2. ODD
Implementation Set
1. Source code
2. Test cases
Deployment Set
1. User Manual
2. Administrator Manual
Elaboration
Construction
Informal
Baseline
Transition
Model-driven approach
The production of the models drive the milestones
deadlines
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
35
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
36
Artifact-Driven Approach
Provide templates for documents at the start of
the project
Instantiate documents automatically from these
templates
Enrich them with modeling and artifact information
generated during the project
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
37
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
38
Management workflow
Environment workflow
Requirements workflow
Design workflow
Implementation workflow
Assessment workflow
Deployment workflow.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
39
Environment workflow
Automation of process and maintenance environment.
Setup of infrastructure (Communication, configuration
management, ...)
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).
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
40
Assessment workflow
Assess process and products (reviews, walkthroughs,
inspections, testing)
Deployment workflow
Transition the software system to the end user.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
41
Management
Workflow
Environment
Workflow
Requirements
Workflow
Design Workflow
Implementation
Workflow
Assessment
Workflow
Deployment
Workflow
42
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
43
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
44
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Teams assembled
Infrastructure done
New Requirement
New Technology
Steady State
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
BerndBruegge&AllenH.Dutoit
Start
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
45
GoAhead
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
Start
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Teams assembled
Infrastructure done
New Requirement
New Technology
Steady State
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
46
X X
X
X
X
ScopeDefined
GoAhead
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
Start
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Teams assembled
Infrastructure done
New Requirement
New Technology
Steady State
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
47
ScopeDefined
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
GoAhead
Start
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
Teams assembled
Infrastructure done
New Requirement
New Technology
Steady State
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
48
X
X
ScopeDefined
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
GoAhead
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
New Requirement
New Technology
Start
Teams assembled
Infrastructure done
Steady State
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
49
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
50
Conception
do/FormulateIdea
do/Cost-BenefitAnalysis
do/FeasibilityStudy
do/Review
GoAhead
Start
do/Infrastructure Setup
do/Skill Identification
do/Team Formation
do/Project Kickof
Definition
do/Problem Statement
do/Software Architecture
do/Software Plan
Teams assembled
Infrastructure done
New Requirement
New Technology
Steady State
Termination
do/Client Acceptance
do/Delivery
do/Post Mortem
System Done
do/Develop System
do/Controlling
do/Risk Management
do/Replanning
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
51
Summary
Unified Process: Iterative software lifecycle model
Emphasis on early construction of a software architecture
Emphasis on early demonstrations of the system
Definitions
Phase: Status of the software system.
4 phases: Inception, Elaboration, Construction, Transition
Workflow: Mostly sequential activity that produces artifacts
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.
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
52
Additional References
Walker Royce
Software Project Management, Addison-Wesley, 1998.
Philippe Kruchten
Rational Unified Process, Addison-Wesley, 2000.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
53
Additional Slides
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
54
Build
Custom development, build everything from scratch,
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
55
BerndBruegge&AllenH.Dutoit
Frequent upgrades
Up-front license fees
Recurring maintenance fees
Dependency on vendor
Run-time efficiency sacrifices
Functionality constraints
Integration not always trivial
No control over upgrades and
maintenance
Unnecessary features that
consume extra resources
Often inadequate reliability and
stability
Multiple-vendor
incompatibilities.
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
56
BerndBruegge&AllenH.Dutoit
Expensive, unpredictable
development
Unpredictable availability
date
Undefined maintenance
model
Often immature and fragile
Single-platform
dependency
Drain on expert resources.
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
57
Problem Statement
Functional Requirements:
Top level use case: Develop software system that
implements the problem statement.
Outputs:
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
58
Subsystems:
The workflows Management, Environment, Requirements,
Design, Implementation, Assessment, Deployment
Hardware/Software mapping:
Each subsystem is running on its own node.
Concurrency:
The threads can run concurrently.
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
59
Access control:
Stakeholders (End users, managers, customers,
developers, ) have access to the persistent data with
access rights defined dynamically by environment
workflow.
Boundary Conditions
Startup of workflows: All workflows start simultaneously
Steady state of workflows: Workflows wake up on an event,
process the event, and go to sleep afterwards.
Terminal conditions of workflows: A risk has occurred that
cannot be dealt with
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
60
Lifecycle Improvement
There are 3 possibilities to improve a multi-step
process
Quality improvement: We take an n-step process and
improve the efficiency of each step
Example: TQM (Total Quality Management)
Overhead reduction: We take an n-step process and
eliminate some of the steps
Example: Extreme Programming
Concurrency: We take an n-step process and parallelize
some of the seps or use more concurrency in the
resources being used
Example: Unified Process.
BerndBruegge&AllenH.Dutoit
ObjectOrientedSoftwareEngineering:UsingUML,Patterns,andJava
61