Unified Modeling Language
Unified Modeling Language
(UML)
Introduction
• UML or Unified Modeling Language comes from Rumbaugh, Booch, and
Jacobson (the three amigos) who combined efforts to standardize on one
modeling language.
• When you make a model you are making a mapping from the problem
domain to a representation of the system you are modeling.
Principles of Modeling
• Principle 1: “ The choice of what models to create has a profound influence
on how the problem is attacked and the solution is shaped. ”
– Visualizing
– Specifying
– Constructing
– Documenting
UML is a Language
• A language provides a vocabulary and some rules for combining words in the
vocabulary.
• The vocabulary and rules of modeling language focuses on the conceptual and
• For modeling language the notations are vocabulary and there are some
predefined rules for using them.
UML is a Language for Visualizing
• Most of us when given a programming problem, we just think it and we code it.
• Still we are doing some modeling
– but mentally
• However there are several problems with this
– Communication is harder.
– Hard to reconstruct.
– Some important property of the s/w can sometimes be skipped.
• Modeling can be
– Textual
– Graphical
Since UML has some well defined notations and semantics so any designer can visualize the
system.
UML is a language for Specifying
• Specifying means building a model that is:
– Precise
– Unambiguous
– Complete
– Analysis
– Design
– Implementation
UML is a Language for Constructing
• UML is not a programming language.
– Diagrams
• Things are the abstractions that are the first class citizens in a model.
– Structural things
– Behavioral things
– Grouping Things
– Annotational Things
Structural Things
• These are the nouns in UML.
• Mostly there are seven kind of structural thing
• Class − Class represents a set of objects having similar responsibilities.
Annotational
Things
• The explanatory part of the UML model; adds information/meaning to the model
elements.
• mechanism to capture remarks, descriptions, and comments of UML model
elements.
Relationship
shows how the elements are associated with each other and this association
describes the functionality of an application.
• Dependency
a change in one thing (the independent thing) causes a change in the semantics
of the other thing (the dependent thing).
• Association
describes the connection between two things.
Relationship
• Generalization
• a relationship between a general thing (called “parent” or “superclass”) and a
more specific kind of that thing (called the “child” or “subclass”), such that
the latter can substitute the former
(arrow-head points to the superclass)
• Representing Inheritance
• Realization
• a semantic relationship between two things wherein one specifies the
behavior to be carried out, and the other carries out the behavior.
(arrow-head points to the thing being realized)