| |
| |
Acknowledgments | |
| |
| |
Preface | |
| |
| |
| |
Introducing UML and UP | |
| |
| |
| |
What is UML? | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What is UML? | |
| |
| |
| |
The birth of UML | |
| |
| |
| |
MDA - the future of UML | |
| |
| |
| |
Why "unified"? | |
| |
| |
| |
Objects and UML | |
| |
| |
| |
UML structure | |
| |
| |
| |
UML building blocks | |
| |
| |
| |
UML common mechanisms | |
| |
| |
| |
Architecture | |
| |
| |
| |
What we have learned | |
| |
| |
| |
What is the Unified Process? | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What is UP? | |
| |
| |
| |
The birth of UP | |
| |
| |
| |
UP and the Rational Unified Process | |
| |
| |
| |
Instantiating UP for your project | |
| |
| |
| |
UP axioms | |
| |
| |
| |
UP is an iterative and incremental process | |
| |
| |
| |
UP structure | |
| |
| |
| |
UP phases | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Requirements | |
| |
| |
| |
The requirements workflow | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
The requirements workflow | |
| |
| |
| |
Software requirements - metamodel | |
| |
| |
| |
Requirements workflow detail | |
| |
| |
| |
The importance of requirements | |
| |
| |
| |
Defining requirements | |
| |
| |
| |
Finding requirements | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Use case modeling | |
| |
| |
| |
Chapter readmap | |
| |
| |
| |
Use case modeling | |
| |
| |
| |
UP activity: Find actors and use cases | |
| |
| |
| |
UP activity: Detail a use case | |
| |
| |
| |
Use case specification | |
| |
| |
| |
Requirements tracing | |
| |
| |
| |
When to apply use case modeling | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Advanced use case modeling | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Actor generalization | |
| |
| |
| |
Use case generalization | |
| |
| |
| |
[double left angle bracket]include[double right angle bracket] | |
| |
| |
| |
[double left angle bracket]extend[double right angle bracket] | |
| |
| |
| |
When to use advanced features | |
| |
| |
| |
Hints and tips for writing use cases | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Analysis | |
| |
| |
| |
The analysis workflow | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
The analysis workflow | |
| |
| |
| |
Analysis artifacts - metamodel | |
| |
| |
| |
Analysis workflow detail | |
| |
| |
| |
Analysis model - rules of thumb | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Objects and classes | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What are objects? | |
| |
| |
| |
UML object notation | |
| |
| |
| |
What are classes? | |
| |
| |
| |
UML class notation | |
| |
| |
| |
Scope | |
| |
| |
| |
Object construction and destruction | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Finding analysis classes | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Analyze a use case | |
| |
| |
| |
What are analysis classes? | |
| |
| |
| |
Finding classes | |
| |
| |
| |
Creating a first-cut analysis model | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Relationships | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What is a relationship? | |
| |
| |
| |
What is a link? | |
| |
| |
| |
What is an association? | |
| |
| |
| |
What is a dependency? | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Inheritance and polymorphism | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Generalization | |
| |
| |
| |
Class inheritance | |
| |
| |
| |
Polymorphism | |
| |
| |
| |
Advanced generalization | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Analysis packages | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What is a package? | |
| |
| |
| |
Packages and namespaces | |
| |
| |
| |
Nested packages | |
| |
| |
| |
Package dependencies | |
| |
| |
| |
Package generalization | |
| |
| |
| |
Architectural analysis | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Use case realization | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Analyze a use case | |
| |
| |
| |
What are use case realizations? | |
| |
| |
| |
Use case realization - elements | |
| |
| |
| |
Interactions | |
| |
| |
| |
Lifelines | |
| |
| |
| |
Messages | |
| |
| |
| |
Interaction diagrams | |
| |
| |
| |
Sequence diagrams | |
| |
| |
| |
Combined fragments and operators | |
| |
| |
| |
Communication diagrams | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Advanced use case realization | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Interaction occurrences | |
| |
| |
| |
Continuations | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Activity diagrams | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What are activity diagrams? | |
| |
| |
| |
Activity diagrams and the UP | |
| |
| |
| |
Activities | |
| |
| |
| |
Activity semantics | |
| |
| |
| |
Activity partitions | |
| |
| |
| |
Action nodes | |
| |
| |
| |
Control nodes | |
| |
| |
| |
Object nodes | |
| |
| |
| |
Pins | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Advanced activity diagrams | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Connectors | |
| |
| |
| |
Interruptible activity regions | |
| |
| |
| |
Exception handling | |
| |
| |
| |
Expansion nodes | |
| |
| |
| |
Sending signals and accepting events | |
| |
| |
| |
Streaming | |
| |
| |
| |
Advanced object flow features | |
| |
| |
| |
Multicast and multireceive | |
| |
| |
| |
Parameter sets | |
| |
| |
| |
[double left angle bracket]centralBuffer[double right angle bracket] node | |
| |
| |
| |
Interaction overview diagrams | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Design | |
| |
| |
| |
The design workflow | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
The design workflow | |
| |
| |
| |
Design artifacts - metamodel | |
| |
| |
| |
Design workflow detail | |
| |
| |
| |
UP activity: Architectural design | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Design classes | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Design a class | |
| |
| |
| |
What are design classes? | |
| |
| |
| |
Anatomy of a design class | |
| |
| |
| |
Well-formed design classes | |
| |
| |
| |
Inheritance | |
| |
| |
| |
Templates | |
| |
| |
| |
Nested classes | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Refining analysis relationships | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Design relationships | |
| |
| |
| |
Aggregation and composition | |
| |
| |
| |
Aggregation semantics | |
| |
| |
| |
Composition semantics | |
| |
| |
| |
How to refine analysis relationships | |
| |
| |
| |
One-to-one associations | |
| |
| |
| |
Many-to-one associations | |
| |
| |
| |
One-to-many associations | |
| |
| |
| |
Collections | |
| |
| |
| |
Reified relationships | |
| |
| |
| |
Exploring composition with structured classes | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Interfaces and components | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Design a subsystem | |
| |
| |
| |
What is an interface? | |
| |
| |
| |
Provided and required interfaces | |
| |
| |
| |
Interface realization vs. inheritance | |
| |
| |
| |
Ports | |
| |
| |
| |
Interfaces and component-based development | |
| |
| |
| |
What is a component? | |
| |
| |
| |
Component stereotypes | |
| |
| |
| |
Subsystems | |
| |
| |
| |
Finding interfaces | |
| |
| |
| |
Designing with interfaces | |
| |
| |
| |
Advantages and disadvantages of interfaces | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Use case realization-design | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Design a use case | |
| |
| |
| |
Use case realization-design | |
| |
| |
| |
Interaction diagrams in design | |
| |
| |
| |
Modeling concurrency | |
| |
| |
| |
Subsystem interactions | |
| |
| |
| |
Timing diagrams | |
| |
| |
| |
Example of use case realization-design | |
| |
| |
| |
What we have learned | |
| |
| |
| |
State machines | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
State machines | |
| |
| |
| |
State machines and the UP | |
| |
| |
| |
State machine diagrams | |
| |
| |
| |
States | |
| |
| |
| |
Transitions | |
| |
| |
| |
Events | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Advanced state machines | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
Composite states | |
| |
| |
| |
Submachine states | |
| |
| |
| |
Submachine communication | |
| |
| |
| |
History | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Implementation | |
| |
| |
| |
The implementation workflow | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
The implementation workflow | |
| |
| |
| |
Implementation artifacts - metamodel | |
| |
| |
| |
Implementation workflow detail | |
| |
| |
| |
Artifacts | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Deployment | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
UP activity: Architectural implementation | |
| |
| |
| |
The deployment diagram | |
| |
| |
| |
Nodes | |
| |
| |
| |
Artifacts | |
| |
| |
| |
Deployment | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Supplementary material | |
| |
| |
| |
Introduction to OCL | |
| |
| |
| |
Chapter roadmap | |
| |
| |
| |
What is the Object Constraint Language (OCL)? | |
| |
| |
| |
Why use OCL? | |
| |
| |
| |
OCL expression syntax | |
| |
| |
| |
Package context and pathnames | |
| |
| |
| |
The expression context | |
| |
| |
| |
Types of OCL expressions | |
| |
| |
| |
The expression body | |
| |
| |
| |
OCL navigation | |
| |
| |
| |
Types of OCL expression in detail | |
| |
| |
| |
OCL in other types of diagrams | |
| |
| |
| |
Advanced topics | |
| |
| |
| |
What we have learned | |
| |
| |
| |
Example use case model | |
| |
| |
| |
XML and use cases | |
| |
| |
Bibliography | |
| |
| |
Index | |