Objectives
Today's systems are ever more complex. Through different
diagrams, UML modeling is used, at different levels
of abstraction, to better master their development
and to dialog with the different project participants.
It is, therefore, important to master the modeling
language, as well as its use within the software
development process. It is even more important to
take advantage of the experience of seasoned consultants,
so as to really make the most of modeling. |
The basis of the object model
•
Object, abstraction, encapsulation, class, instance
•
Generalization, polymorphism, instantiation, messages
•
The OMG's UML standard
•
The roots and history of UML
•
The advantages of UML
•
Additions to UML: UML profiles
•
The nine models
Static models
•
Class diagrams
•
Fundamental notions: classes, attributes, operations,
associations, aggregations, generalizations, ...
•
Detailed notions: invariants, pre and post-conditions,
the OCL language, notes, ...
•
Extensions: tagged values and stereotypes
•
Package diagrams
Dynamic models
•
Sequence diagrams: objects, messages, control structures
•
Collaboration diagrams versus sequences
•
State diagrams: states, events, transitions, actions,
activities
•
Activity diagrams: activities, data flows, partitions
UML metamodel, XMI
How is the UML method used?
•
Different forms of use
•
Equivalence between model elements
•
Directions for the use of classes: normal forms
•
Directions for the use of associations, generalizations
and packages
•
Metrics
Methodology
•
Development process and life cycles: defining steps
and sequencing
|
Expression of needs
• Objectives
• Defining the dictionary
• Defining fundamental objects and system decomposition •Using use cases to
identify actors and services
•
Use case models: use cases, actors
•
Complements to and fine-tuning of use cases
Analysis
•
Objectives
•
Defining the system's interface classes
•
Techniques for identifying classes
•
Using scenarios
•
Structuring the system's interface
•
Decomposition into packages
•
Detailed specification of classes
•
Pre and post-conditions on operations
•
Using state diagrams
•
Traceability
Architecure
•
Objectives
•
Deployment and component diagrams
Design
•
Objectives
•
Design and structure rules
•
Model transformation techniques
•
Using design patterns (observer, state...)
Realization
•
Philosophy behind the use of object languages
•
Rules for mapping the model to an object language
•
Mapping attributes, associations and invariants
•
Programming: Java example
Modular tests
•
Philosophy behind tests
•
Implementation techniques
Integration and validation
•
From the model to the test plan
Case study |