Title: UML (Unified Modeling Language)
1UML (Unified Modeling Language)
Sources1. UML Toolkit. Eriksson, Hans-Erik
Penker, Magnus. John Wiley Sons, INC.
1998.2. Program Development in Java. Liskov,
Barbara Guttag, John. Addison-Wesley. 2001.
2UML Tools
- http//www.objectsbydesign.com/tools/umltools_byCo
mpany.html is a good source of tools available - TJHSST has Dia, which will be utilized.
3Software Life Cycle
- Requirements
- Architecture Design
- Detailed Design
- Implementation (Coding)
- Testing
- Deployment
- Maintenance
UML is concerned with these two phases.
4The Class Diagram
- Drawn with a rectangle, divided into 3
compartments - Name compartment
- Attribute compartment (Instance variables)
- Operations compartment (Methods)
5Class Diagram Example
- Consider a Polynomial class (Poly)
- Form a1x0a2x12 . Anxn-1n
- Key attributes terms and degree
- Instance Variables - means private variable
means public variable - Underlined instance variables static.
6Poly using Dia
7Poly methods
- Common things done to polynomials
- return degree
- return coefficient of corresponding exponent
- Subtract two polynomials
- Add two polynomials
- Multiply two polynomials
- Take the negative of a polynomial
8Poly Class Diagram
Basic syntax visibility name (parameter-list)
return-type-expression property string
degree() int coeff (d int) int sub
(thePoly Poly) Poly minus () Poly add
(thePoly Poly) Poly mul (thePoly Poly) Poly
9Poly Implementation
- public class Poly
- private int trms
- private int deg
- public Poly ()
- // constructor goes here
-
- public int degree
- public int coeff (int d)
- public Poly sub (Poly thePoly)
- public Poly minus (Poly thePoly)
- public Poly add (Poly thePoly)
- public Poly mul (Poly thePoly)
10Class Diagram Relationships
- Association
- Generalization
- Dependency
- Refinement
11Class Diagram Relationships
- Association
- Generalization
- Dependency
- Refinement
12Associations
- A connection between classes.
- Usually classes know about each other
(bidirectional.) - Name of association necessary (Uses in below
case.)
Specifically, an author uses a computer hence,
Author has an association with Computer.
13More Normal Associations
- A person owns 0-many cars. A car is owned by 1
to many people. - If relationships are not specified, then it
assumed to be 1-1. - Relationships can begin and end with any number
. i.e. can have 5..11 or 19..25. - Relationships can be a multiple list
(1,4,6,8..12)
14Another Normal Association Example
Insurance Policy
0..1
Expresses an
Is expressed in an
1
1
has
0..
Insurance Contract
Insurance Company
Refers to
0..
Refers to
has
1..
Customer
15Object Diagram
- A class diagram, but with a specific
instantiation
Use
0..
1..
Bob Author
Bobs PC Computer
Object Diagram
name Bob J age 32
name Dell 466 mem 64
16Recursive Association
- Class that calls itself.
- Example Network Nodes (Class Diagram)
Node
Connects
17Node Object Diagram
Node2
Node3
Node1
Node4
Node5
Node7
Node8
Node6
18Roles in Association
- An association can have roles connected to each
class involved in the association.
drives
Car
Person
Company car
driver
19Qualified Association
- Used with one-to-many or many-to-many
associations. - Qualifier distinguishes among the set of objects
at the many end of an association.
Describes a unique identification for each figure
(figure id)
20Or Association
- Occurs when all combinations in a model are not
valid. - Example
- A person can have an insurance contract with an
insurance company - A company can have an insurance contract with an
insurance company - A person and a company CANNOT have the same
insurance contract with an insurance company.
21Or Association Diagram
1
0..
Insurance Contract
Insurance Company
0..
0..
or
1..
1..
Person
Company
22Ordered Association
- Links may have an implicit order.
- Associations are unordered by default.
Standardized Insurance Contract
0..
ordered
1..
Customer
23Association Class
- A class is attached to an association.
- Not connected at any of the ends of the
associations. - Has attributes and operations also.
24Association Class
Queue
Queue
4
Elevator Control
Elevator
Elevator Control
Button
Button
25Ternary Association
- More than 2 classes can are associated with each
other. - Shown with a large diamond.
1
0..
Insurance Contract
Insurance Company
insurer
0..
0.. 1
Insurance Policy
policyholder
1..
Person
26Aggregation
- Special case of association
- Relationship between classes is some sort of
whole-part. - Example A CAR consists of 4 wheels, engine,
chassis, gear box, etc. - Shown as a line with a hollow diamond on the end
of it.
27Aggregation Example
Warship
Navy
Contains
Excerpt from UML Toolkit The navy contains
warships. Warships can be added or removed, but
you still have a Navy. The hollow diamond shows
aggregation.
28Shared Aggregation
- The parts may be parts in any wholes
Person
Team
Members
A team has members. A person may be a member of
many teams.
ordered
Sound Clips
Remix
Contains
A remix has many sound clips the same soundtrack
could be a part of many remixes.
29Composition Aggregation
- An aggregation that owns it parts.
- I.E. Strong ownership.
The window contains (is aggregated of) many
menus, button, listboxes, and texts.
Text
Window
Listbox
Button
Menu
30Composite Aggregation
Text
Listbox
Contains
Window
Button
Menu
A different view of the same diagram on the
previous slide.
31Composition Aggregation (Yet Another View)
Window
Text
Listbox
Button
Menu
32Class Diagram Relationships
- Association
- Generalization
- Dependency
- Refinement
33Generalization
- Definition in UML A taxonomic (taxonomy is the
science of classification) relationship between a
more general element and a more specific element. - More specific element is fully consistent with
more general element - More specific element contains more information.
- Also known as Inheritance.
- Is-a relationship.
34Normal Generalization
- Subclass inherits everything from superclass.
- Attributes, operations, and all associations are
inherited. - Private members will be inherited, but not
visible to the subclass. - Protected members accessible only by subclass.
35Class Hierarchy Diagram
Vehicle
Car
Truck
Boat
36Another Class Hierarchy Diagram
Vehicle
Car
Truck
Boat
37Abstract Classes
- Not allowed to have objects.
- Used only for inheritance
- Described common attributes and behavior for
other classes.
38Abstract Class Hierarchy Diagram
Vehicle abstract
drives
Person
color
drive () abstract
Car
Boat
drive ()
drive ()
39Another Abstract Class Hierarchy Diagram
Figure abstract
Figures
position Pos
draw () abstract
Group
Polygon
draw ()
draw ()
40Java Implementation
- Abstract public class Figure
- abstract public void draw()
- protected Pos position
-
- public class Group extends Figure
- public void draw ()
- for (int i 0 i lt
consist_of.size() i) - consist_ofi.draw()
-
- private FigureVector figures /
FigureVector is a specialized class of the
standard Vector class that implements a dynamic
array. FigureVector adds hard type checking / -
41Java Implementation (cont)
- public class Polygon extends Figure
- public void draw ()
- // draw polygon code
-
42Overlapping and Disjoint Generalizations
- Overlapping Further subclasses inheriting from
the subclasses in the inheritance relationship
can inherit more than one of the subclasses (This
is not supported in Java basically multiple
inheritance.) - Disjoint Subclass are not allowed to be
specialized into a common subclass. - Is the default
43Complete and Incomplete Generalization
- Complete All subclasses have been specified
(i.e. Final in Java) - Incomplete Subclasses may be added later on.
- Generally the norm
- The default
44Example Complete Generalization
Person
complete
Man
Women
45Class Diagram Relationships
- Association
- Generalization
- Dependency
- Refinement
46Dependency Relationship
- Semantic connection between 2 model elements
one independent and one dependent - Changes in the independent element will affect
the dependent. - Examples
- One class takes an object of another class
(Composition) - One class accesses a global object of another
class - One class calls a class-scope operation in
another class.
47Example Dependency Diagram
ltlt friend gtgt
Class A
Class B
- The dependency is shown as a dashed line with an
arrow - The type of dependency is called a stereotype
in this case, it is a friend dependency
48Refinement
- Relationship between two descriptions of the same
thing, but at different levels of abstraction. - Can be between a type and class that realizes it
- Called a realization
Analysis class
Design class
Shown with a dashed line and a hollow triangle
49Interfaces
- Described as abstract operations.
- In Java the way to sneak around the inability
for multiple inheritance. - Shown as a small circle with a name.
- Connected to its model element via a solid line.
- A class that uses the interface as implemented in
a specific class is connected via a dependency
relationship to the interface circle.
50Interface Diagram Example
Storable
Class A
Class B
Runnable
ltltinterfacegtgt Runnable abstract
ltltinterfacegtgt Storable abstract
Class C
Runnable
run() abstract
load() abstract save() abstract
Class A implements the interfaces Runnable and
Storable. Class C implements the interface
Runnable. Class B uses the interface Runnable
and Storable from A, and Runnable from C. The
interfaces are specified as classes with the
stereotype ltltinterfacegtgt and contain the abstract
operations that the implementing classes must
implement.