Title: UML Class Diagrams advanced concepts
1UML Class Diagrams advanced concepts
2UML Class Diagrams
- The class diagram provides a static structure of
all the classes that exist within the system.
Classes are arranged in hierarchies sharing
common structure and behaviour and are associated
with other classes.
- Class diagrams are used in
- Analysis To build a conceptual domain model with
semantic associations between concepts - Design Structural model of a design in terms of
class interfaces - Implementation Source code documentation,
exposing the implementation
3Objects
- An object is a thing that can be tangible or
intangible. - Examples
- tangible bike, car, house
- intangible order, account
- An object has properties.
- Example
- a Customer has a
- name and address
Customer Name Address
4(Multiple) Objects
Property of object attribute value
Adacs Customer Name Adacs Address Enschede
Primo Customer Name Primo Address Grave
Multiple objects ? unique identity
1247 Customer Custno 1247 Name
Adacs Address Enschede
9378 Customer Custno 9378 Name
Primo Address Grave
5Connection between Objects
Link connection between objects
1247 Customer Custno 1247 Name
Adacs Address Enschede
345T7 Order Orderno 345T7 dateReceived
10/10/05 Price 1987
902U2 Order Orderno 902U2 dateReceived
07/04/05 Price 3789
6Class
- Class
- class is abstract concept
- each object is instance of a class
- classes classify objects
- attribute has no values
Customer Custno Name Address
Order Orderno dateReceived Price
Object analysis ? than values to attributes
7Class Diagram
- Attribute has no values
- Association is relation between classes
Customer Custno Name Address
Order Orderno dateReceived Price
1
Link is instance of association
8Class diagram
- A class diagram describes the type of objects in
a system and the static relationships between
them. - Static relations
- Associations
- Subtypes
- Static structure
- Attributes
- Operations
9Class operations
- An operation is the implementation of a service
that can be requested from any object of the
class in order to affect behaviour. - Operations are used to manipulate the attributes
or to perform other actions. Operations are
normally called functions, but they are inside a
class and can be applied only to objects of that
class. - An operation is described with a return-type, a
name and zero or more parameters. Together, the
return-type, name, and parameters are called the
signature of the operation. - The signature describes everything needed to use
the operation.
10(No Transcript)
11Class - associations
- Associations are structural relationships where
instances (objects) of one class are connected to
instances (objects) of another class. - an employee works for a company
- a company has a number of offices
- An association is normally bidirectional, which
means that if an object is associated with
another object, both objects are aware of each
other (navigation is bidirectional by default). - Binary association connects exactly two classes.
N-ary connects many classes. - The most common association is just a connection
between classes.
12Association adornments name, role
- The association has a name - the descriptive
term, often a verb, for the association. - Each association has two association ends each
end is attached to one of the classes in the
association. An end can be explicitly named with
a label. This label is called a role name
(association ends are often called roles).
13Associations multiplicity
- Multiplicity defines the number of objects
associated with an instance of the association. - Default of 1 (1 1)
- 0 or 1 0..1
- Zero or more (0..infinite)
- 1 or more (1..infinite) 1..
- n..m range from n to m inclusive
14(No Transcript)
15Generalization
- A specialization / generalization relationship,
in which objects of the specialized element
(child) are substitutable for objects of the
generalized element (parent). - Superclass the generalization of another class,
the child. - Subclass the specialization of another class,
the parent.
Customer
Corporate Customer
Personal Customer
16Generalization - characteristics
- Identify common features concerning behaviour and
knowledge. Define these common features on a
higher level in the inheritance hierarchy. - The aim is at behaviour more than knowledge when
combining classes. - Generalization is a bottom-up process.
- A superclass includes all common properties of
its subclasses.
17Specialization - characteristics
- Define a new class which is a special appearance
of an existing class. - Specialization is a top-down process.
- A subclass can have attributes and operations
that are specific for that sub-class. - A subclass may redefine operations of its
super-class
18(No Transcript)
19Constraints
- The basic constructs of association, attribute,
and generalization do much to specify important
constraints. - They cannot indicate every constraint. These
constraints still need to be captured the class
diagram is a good place to do that. - The UML allows you to use anything to describe
constraints. The only rule is that you put them
inside braces .
20(No Transcript)
21Attribute analysis
- It is not always clear which attributes belongs
to which classes by finding out the class
attributes. An attribute is assigned to that
class where it is certainly a feature. - For example a project leader has the attributes
name, department and age. - But what to do with the attributes project
number, project duration, starting time, and
budget? These attributes clarifies something
about the relation between project leader and
type of project. - This often happens if a nm relation refers to an
association between two classes. In that case, we
can define a new class, for instance project
management.
22Aggregation and Composition
- Aggregation is a special form of association that
specifies a whole-part relationship between the
aggregate (the whole) and a component (the part). - Composition is a form of aggregation with strong
ownership and coincident lifetime of the parts by
the whole parts with nonfixed multiplicity may
be created after the composite itself, but once
created they live and die with it such parts can
also be explicitly removed before the death of
the composite.
23Aggregation and Composition example
24Object diagram
- An object diagram is a diagram that shows a set
of objects and their relationships at a point in
time object diagrams address the static design
view or static process view of a system. - An object diagram is shown as a class, and the
name is underscored, although an objects name
can be shown optionally preceding the class name
as objectname classname. The object does not
have to be named, in which case only the
classname is shown underscored.
25Object diagram example
26Association Navigation
- Navigation across an association is, unless
otherwise specified, bidirectional. - Sometimes, you will want to limit navigation to
just one direction.
27Dependency Relationship
- A dependency exits between two elements if
changes to the definition of one element (the
supplier) may causes changes to the other (the
client). - With classes one class sends a message to
another one class has another as part of its
data one class mentions another as a parameter
to an operation.
28Advanced Class Features
29Advanced Class Concepts Visibility
- Visibility class members (attributes,
operations) may be specified as - we have feature f, an attribute or operation
that is defined on an object O of class C - public
- f is public ? f is visible to any object and f
is inherited by the subclasses of C. - protected
- (f is protected ? f is visible only to objects of
class C and to objects of Cs subclasses and f is
inherited by the subclasses of C. - - private
- f is private ? f is visible only to O and f is
not inherited by the subclasses of C. - Restricting visibility is the same as restricting
accessibility.
30Advanced Class Concepts Scope
- Individual member data ( attributes) may have
- Class scope a single copy of an attribute is
shared by all instances of a class. - Instance scope each instance of a class would
have its own copy of the attribute.
31Class object
- Objects are abstractions of real-world entities.
- Objects encapsulate state and represent
information. - Objects state is protected.
- Objects have responsibility.
- Objects interact by interfaces.
32Advanced Class Concepts Abstract
- An operation is abstract if it has no
implementation. - A abstract class cannot have any direct
instances. - Abstract classes only occur in the context of an
inheritance hierarchy. - Abstract operations and classes are specified by
writing its name in italics.
33Advanced Class Concepts Abstract cont.
34Interfaces and Abstract Classes
- One can vary the interfaces of classes
independent of the implementation. - A pure interface is a class with no
implementation and, therefore has operation
declarations but no method bodies an fields. - Interfaces are often declared through abstract
classes.
35Window as Abstract Class
36Interfaces and Abstract Class
- Sub classing is not only the way to do this.
- For instance Java provides an interface
construct, and the compiler checks that the
implementing class provides implementations of
all the interfaces operations.
37Lollipop notation for Interfaces
38Aggregation and Composition once more
- Aggregation is a special form of association that
specifies a whole-part relationship between the
aggregate (the whole) and a component (the part)
aggregation is the part-of relationship. it is a
special form of association in which a collection
of objects, each having an independent existence,
is associated with an single object unfilled
diamond - Composition is a form of aggregation with strong
ownership and coincident lifetime of the parts by
the whole the part object may belong to only one
whole the parts are usually expected to live
and die with the whole. - usually, any deletion of the whole is
considered to cascade to the partsfilled
diamond
39Aggregation and Composition once more, cont.
40Aggregation and Composition Example
41Alternative notation for Composition
42Derived Associations and Attributes
- Derived associations and attributes can be
calculated fro other associations and attributes,
respectively, on a class diagram. - For example, an age attribute of a Person can be
derived if you know that Persons date of birth.
43Derived Associations and Attributes example
44Qualified Associations
- The qualifier specifies how a specific object at
the many end of the association is identified,
and may be seen as a kind of key separating all
the objects in the association.
45Relations and Constraints
46Reflexive Associations
- A class has an association to itself.
- Example A directory may contain other
directories.
47Exclusive-Or Associations
- Using an eclusive-or (xor) association constraint
one can enforce that certain facts exclude each
other.
48Constraints
Constraint Applies to symbol Meaning
complete generalization Specifies that all children in the generalization have been specified and that no additional children are permitted
disjoint generalization Specifies that objects of the given parent may have no more than of the given children as a type
incomplete generalization Specifies that not all children in the generalization have been specified and that additional children are permitted
overlapping generalization Specifies that objects of the given parent may have more than one of the given children as a type
xor association Specifies that, over a set of associations, exactly one is manifest for each associated object.
49References
- Sommerville, Ian (2001)
- Software Engineering, 6th edition
- http//www.software-engin.com
- Grady Booch, James Rumbaugh, Ivar Jacobson (2005)
- The Unified Modeling Language User Guide, 2nd
edition - Martin Fowler (2000, 2004)
- Object-Oriented Software Engineering, 2nd
edition 3rd edition
50Question ?
- Consider the class Patient and the subtyping of
this class into the classes MalePatient and
FemalePatient. - - how looks the according class diagram, and
- - which constraint(s) could be mentioned?