Unified Modeling Language UML Parag Shah Twitter: @coding_insights
Modeling Most manufacturing and building processes require the creation of a model before the actual product is created.
Models in architecture
Automobile models
Why is modeling important ? For better communication among stake holders
Why is modeling important ? For documenting high level design decisions
Why is modeling important ? For risk reduction
Why is modeling important ? For what-if analysis
Why is modeling important ? Allows re-use of design components and patterns across projects
Why is modeling important ? If you don't do modeling, you may have to ...
Different views of a system Every system can be viewed from multiple perspectives or views
Different views of a system
Different views of a system
Views in a software system Modules
Classes and their relations
Real time interactions
Data flow
Deployment
User Interface
… etc
Many modeling languages Between 1970 and late 1980's many people experimented with modeling techniques and notations
Some popular notations Booch
OMT
OOSE (object oriented software engineering methodology – Ivar Jacobsen) Clearly unification was required
Unification In 1994 Grady Booch and James Rumbaugh started unifying Booch and OMT at Rational Corporation
In 1995 Ivar Jacobsen joined them and started merging OOSE
The unification resulted in UML 0.9 in 1996
UML Managed by the OMG
Set of rules and notations for specifying a software system
The notation is graphical and extensible
UML Diagrams Structural diagrams
Behavioral diagrams
Interaction diagrams
UML Structural Diagrams Class diagram
Object diagram
Component diagram
Composite structure diagram
Package diagram
Deployment diagram
UML Behavioral Diagrams Use case diagram
Activity diagram
State machine diagram
UML Interactions Diagrams Sequence diagrams
Communication diagrams
Interaction overview diagrams
UML Structural Diagrams Structural diagrams depict structural aspects (static relationships) of a system
Class Diagrams Class diagrams represent the static structure of the classes in the software system, and illustrate attributes, operations, and relationships between the classes.
Class Diagrams – A class Person - name: String - age: int + toString: String Name Attributes Operations
Class Diagrams Class diagrams are also used to denote dependencies Weak dependency … USES-A
Association … HAS-A
Aggregation … OWNS-A
Composition … Stronger OWNS-A
Generalization / inheritance … IS-A, IS-LIKE-A
Class Diagrams Associations
Class Diagrams Composition is a stronger association
Class Diagrams Inheritance
Object Diagrams Object diagrams provide information about the relationships between instances of classes at a particular point in time.

Uml