Title: 2. UP Unified Process and UML Unified Modeling Language
12. UP (Unified Process) and UML
(Unified Modeling Language)
- Partly based on lecture slides by Ian Summerville
2Overview
- 1. The Unified Process UP
- Software engineering processes
- Iterative and Incremental Development and
- the Unified Process
- The Unified Modeling Language UML
- visual language for specifying, constructing and
documenting system artifacts - independent of any process
- can be used for modeling anything
- e.g. meaning of class
3Een oefening
- bouw software voor de ondersteuning van een
logistiek bedrijf (e.g. transporteur)
4Software Ontwikkelingsproces
- Een software ontwikkelingsproces is
- een set van partieel geordende stappen
- om software te bouwen, deployen en onderhouden
- activiteiten
- Requirements elicitation
- Design
- Implementation
- Integration
- Maintenance phase
5Software Ontwikkelingsproces
- Voorbeelden
- Waterfall
- Spiral
- Agile process(eXtreme Programming)
- UP (Unified Process)
- RUP (Rational Unified Process)
6Waterfall Model
- Characterized by
- Sequential steps (phases)
- Feedback loops (between two phases in
development) - Documentation-driven
- Advantages
- Documentation
- Maintenance easier
- Disadvantages
- Complete and frozen specification document
up-front often not feasible in practice - Customer involvement in the first phase only
- Sequential and complete execution of phases often
not desirable - Process difficult to control
- The product becomes available very late in the
process
7Spiral model
- Waterfall model plus risk analysis preceding
each phase - and evaluation following each phase
- Prototyping for high-risk specifications
- Appropriate only for big projects (high
management overhead)
8Lightweight vs. Heavyweight Processes
Heavyweight e.g., V-Process
Customizable Framework e.g., Rational Unified Proc
ess (RUP)
Agile (Lightweight) e.g., eXtreme Programming (XP)
Document driven Elaborate workflow
definitions Many different roles Many
checkpoints High management overhead Highly
bureaucratic
Focus on working code rather than
documentation Focus on direct communication (betwe
en developers and between developers and the
customer) Low management overhead
9Incremental Models
Release 1
Release 2
Requirements
Release 3
- Each release adds more functionality, i.e., a new
increment - (Some call it iterative)
- Non-incremental, e.g. Waterfall, rapid
prototyping models - Operational quality complete product at end
- Incremental model
- Operational quality portion of product within
weeks
10Evolutionary Models
Version 1
Version 1
Feedback
Version 1
New versions implement new and evolving
requirements (Some call it iterative)
- Advantages
- Constant customer involvement and validation
- Allows for good risk management
- Disadvantages
- Build-and-fix danger
- Contradiction in terms
11XP Overview
- Characteristics
- Evolutionary development
- Collection of 12 Best Practices
- Focus on working code that implements customer
needs (rather than documents) - Testing is a crucial element of the process
- Focus on flexibility and efficiency of the
process - Designed for small teams (lt10)
Every 2-3 weeks
Planning
Write tests
Pair Programming Refactoring
Release
Test
Min. daily
Integration
12Iterative and IncrementalDevelopment and the
Unified Process
13UP Iterative and Incremental dev.t
- iterative and incremental development
- embracing change
- development is organized into a series of
iterations - short fixed-length mini-projects (2 to 6 weeks)
- timeboxed (i.e. fixed length iterations)
- shift tasks to future iterations if necessary
... - an iteration represents a complete development
cycle - incl. requirements, analysis, design,
implementation and testing activities - the outcome of each iteration a tested,
integrated and executable system
14Use-Case-Driven
- Use cases are concise, simple, and understandable
by a wide range of stakeholders - End users, developers and acquirers understand
functional requirements of the system - Use cases drive numerous activities in the
process - Creation and validation of the design model
- Definition of test cases and procedures of the
test model - Planning of iterations
- Creation of user documentation
- System deployment
- Use cases help synchronize the content of
different models
15UP belangrijkste fasen
- Inception
- Approximate vision
- Business case
- Scope
- Vague estimates
- Continue or stop?
- Elaboration
- Identification of most requirements
- Iterative implementation of the core architecture
- resolution of high risks
- Construction
- Iterative implementation of lower risk elements
- Preparation for deployment
- Transition
- Beta tests
- Deployment
16Iterations and Milestones
Inception
Elaboration
Construction
Transition
Preliminary Iteration
Iter. 1
Iter. 2
Release
Milestone
Final production release
- each phase concludes with a well-defined
milestone. - the end of each iteration is a minor release, a
stable executable subset of the final product - relative effort and emphasis change over time
- Note that activities and artifacts are optional
(except code!) - Developers select those artifacts that address
their particular needs
17The UP Disciplines
Phases
Process Disciplines
Elaboration
Transition
Inception
Construction
Business Modeling
Requirements
Design
Implementation
Test
Deployment
Supporting Disciplines
Configuration Mgmt
Management
Environment
Preliminary Iteration(s)
Iter.1
Iter.2
Iter.n
Iter.n1
Iter.n2
Iter.m
Iter.m1
Iterations
18The UP Disciplines
Focus of this course.
Phases
Process Disciplines
Elaboration
Transition
Inception
Construction
Business Modeling
Requirements
Design
Implementation
Test
Deployment
Supporting Disciplines
Configuration Mgmt
Management
Environment
Preliminary Iteration(s)
Iter.1
Iter.2
Iter.n
Iter.n1
Iter.n2
Iter.m
Iter.m1
Iterations
19UML
20UML
- The Unified Modeling Language (UML)
- a language
- for specifying, visualizing, constructing and
documenting - the artifacts of software systems,
- as well as for
- business modeling and
- other non-software systems.
- UML is een taal, te gebruiken in een
ontwikkelingsproces
21Evolutie UML
- Vanwaar unified ?
- begin jaren 90 veel verschillende methodes
- Positief, want dus veel vitaliteit aan OO
- Negatief, want veel onduidelijkheid t.o.v. wat
een object nu eigenlijk is - ? consensus mogelijk
- klasse, associatie, subsystemen, interactie
tussen users en het systeem - 2 methodes
- Booch (Grady Booch)
- OMT (Object Modelling Technique Jim Rumbaugh)
- groeien naar elkaar toe
- eind 1994 Unified Method
- een jaar later doet ook Ivar Jacobson (use cases)
mee - In 1996 wordt UM omgedoopt tot UML
- gestandaardiseerd door OMG
22Verschillende diagrammas in UML
- Class diagram
- Sequence diagram
- Collaboration diagram
- Object diagram
- Statechart diagram
- Use case diagram
- Component diagram
- Deployment diagram
- ...