Title: UML 2'0, The RUP and CBD96
1UML 2.0, The RUP and CBD96
2Topics
- UML 2.0 for CBD
- The J2EE Development Roadmap of the Rational
Unified Process (RUP) - Summary
3UML 2.0 and CBD
- UML 2.0 is a significant upgrade to UML
- Adds new diagrams
- New syntax within existing diagrams
- More detailed and rigorous specification
(meta-model) - Here we focus only on specific enhancements
relative to CBD
4Offered and Required Interfaces
- UML 1.x offered little beyond a visual equivalent
of the programmatic interface (API) - Uses the stereotyped class icon for offered
interfaces (with the lollipop as shorthand) - No support for required interfaces
- UML 2.0 includes
- ltltprovided interfacegtgt
- the offered interface and traditional icon
- ltltrequired interfacegtgt
- New socket icon
5Visualizing Interfaces (1)
6Visualizing Interfaces (2)
ltltrequiredgtgt interfaces are used
ltltprovidedgtgt interfaces are realized
7Internal Context
- CBD96 uses user-defined stereotypes in UML 1.x
because of the lack of support for components - The UML 1.x Component Diagram regards any
physical software element as a component - UML 2.0 allows the modelling of the inside of a
component - An internal context diagram
- Also provides the notion of a port as a point of
interaction between the inside and outside of a
diagram
8Internal Context
Port
Shows that PersistentStore delegates the handling
of a request on DBQuery to the internal class
Query
9The RUP
- The Rational Unified Process (RUP) is a software
development process framework - Claims to provide a disciplined approach to
assigning tasks and responsibilities within a
development organization - Its goal is the production of high quality
software that meets user needs within a
predictable time schedule and budget
10RUP and Best Practices
- The RUP was designed to support six best
practices in software development - Develop iteratively
- Manage requirements
- Use component architectures
- Model visually using UML
- Continuously verify quality
- Manage change
11RUP and Process Customization
- The RUP comprehensively describes software
development projects in terms of - Who?
- Roles in the project played by human beings
- What?
- Artefacts produced
- How?
- Activities performed
- When
- Phases, iterations, disciplines and workflow
details - But it does not describe a one-size fits all
approach - It provides detailed guidelines on how to
customize the RUP itself to fit a particular
development context - The RUP J2EE Development Roadmap is a
customisation for CBD using the Java technologies
12The J2EE Development Roadmap
- An RUP roadmap provides a tour of the RUP itself
with a particular viewpoint in mind - For a specific role, perhaps (e.g., software
developer) - Or a specific development context (e.g., J2EE)
13Types of Models in OO/CBD Processes
14J2EE Roadmap System Models
defined in
refined into
realized by
Implementation Model
Deployment Model
Use Case Model
Design Model
refined into
realized by
refined into
refined into
The Use Case, Design, User-Experience and Data
Models are PIMs (logical) The Implementation and
Deployment Models are PSMs (physical)
Data Model
User-Experience Model
15Requirements
- Requirements Discipline
- Define the System
- Find Actors
- Find Use Cases
- Collect Supplementary Requirements
- Find How Actors and Use Cases Interact
- Package Use Cases and Actors
- Prioritize the Use Cases
- Update the Software Architecture Document
- Conduct the Review
- Refine the System Definition
- Detail Flow of Events in Use Cases
- Describe Special Requirements of the Use Case
- Describe Preconditions of the Use Case
- Describe Postconditions of the Use Case
- Structure the Use Cases
- Structure the Actors
16The J2EE Requirements Discipline Overview
Glossary
Supplementary Specification
Find actors and Use Cases
Capture common vocabulary
Systems Analyst
Use Case Model
Risk List
Vision
Software Architecture Document
Prioritize Use Cases
Software Architect
Use Case Priority List
17Analysis
- Analysis Discipline
- Define an Initial Architecture
- Develop Architecture Overview
- Survey Available Assets (e.g., existing
components) - Define the Initial Deployment Model (CEE)
- Structure the Design Model
- Identify Key Abstractions (Business Concept
Model) - Identify Analysis Mechanisms
- Analyze Behaviour
- Identify Participating Screens
- Model the Screen Flows
- Define the Screen Navigation Paths
- Reconcile the Use Case Storyboards
- Document Usability requirements
18Define an Initial Architecture
Vision
Glossary
Reference Architecture
Supplementary Specification
Use Case Model
Architecture Reviewer
Software Architect
Software Architecture Document
Architectural Analysis
Review the Initial Architecture
Deployment Model
Review Record
Design Model
19Design
- Design Discipline
- Refine the Architecture
- Inventory Design and Implementation Mechanisms
- Select Design and Implementation Mechanisms
- Document Design and Implementation Mechanisms
- Detail the Design
- Use-Case Design (Design Model- Use Case
Realization) - Subsystem Design
- Component Design
- Class Design
20Implementation
- Implementation Discipline
- Structure the Implementation Model
- Establish the Implementation Model Structure
- Update the Software Architecture Document
- Review the Implementation
- Conduct the Review
21Comparison with CBD96
- Scope
- J2EE Roadmap and CBD96 both describe CBD
end-to-end (from requirements to deployment) - CBD96 is general Roadmap is specific to J2EE
- Intent
- CBD96 is a dedicated CBD process standard
- J2EE Roadmap is a flavour of the more general RUP
- Mechanisms
- Both are Use-Case driven
- Both use UML class diagrams to establish
vocabulary - Business Concept Model vs Key Abstractions
- Roadmap relies on Use Case realizations in design
- Whereas CBD96 separates out System Components in
order to create more generic Business Components - Seems likely that CBD96s Business Components
will be more reusable, architectures less brittle - Conclusions
- CBD96 is more clearly aimed at developing CBD
systems in general - Roadmaps concern is how to utilize a specific
component technology to build a particular system
22Summary
- As CBD has matured the need has been recognised
for - Better modelling techniques
- More detailed development processes
- UML 2.0 supports CBD by
- Including ltltrequiredgtgt interfaces
- Permitting the modelling of internal structure
- UML can now be said to be properly supporting CBD
- The J2EE Roadmap enhances the RUPs ability to
support component modelling - But it is an open question how reusable its
components are