UML Class Diagrams advanced concepts - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

UML Class Diagrams advanced concepts

Description:

... James Rumbaugh, Ivar Jacobson (2005) The Unified Modeling Language User Guide, ... Class diagrams also show the attributes and ... PowerPoint Presentation – PowerPoint PPT presentation

Number of Views:416
Avg rating:3.0/5.0
Slides: 51
Provided by: dsArchTue1
Category:

less

Transcript and Presenter's Notes

Title: UML Class Diagrams advanced concepts


1
UML Class Diagrams advanced concepts
  • 14 October 2010

2
UML 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

3
Objects
  • 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
5
Connection 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
6
Class
  • 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
7
Class Diagram
  • Attribute has no values
  • Association is relation between classes

Customer Custno Name Address
Order Orderno dateReceived Price
1

Link is instance of association
8
Class 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

9
Class 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)
11
Class - 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.

12
Association 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).

13
Associations 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)
15
Generalization
  • 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
16
Generalization - 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.

17
Specialization - 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)
19
Constraints
  • 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)
21
Attribute 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.

22
Aggregation 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.

23
Aggregation and Composition example
24
Object 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.

25
Object diagram example
26
Association Navigation
  • Navigation across an association is, unless
    otherwise specified, bidirectional.
  • Sometimes, you will want to limit navigation to
    just one direction.

27
Dependency 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.

28
Advanced Class Features
29
Advanced 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.

30
Advanced 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.

31
Class 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.

32
Advanced 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.

33
Advanced Class Concepts Abstract cont.
34
Interfaces 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.

35
Window as Abstract Class
36
Interfaces 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.

37
Lollipop notation for Interfaces
38
Aggregation 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

39
Aggregation and Composition once more, cont.
40
Aggregation and Composition Example
41
Alternative notation for Composition
42
Derived 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.

43
Derived Associations and Attributes example
44
Qualified 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.

45
Relations and Constraints
46
Reflexive Associations
  • A class has an association to itself.
  • Example A directory may contain other
    directories.

47
Exclusive-Or Associations
  • Using an eclusive-or (xor) association constraint
    one can enforce that certain facts exclude each
    other.

48
Constraints
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.
49
References
  • 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

50
Question ?
  • 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?
Write a Comment
User Comments (0)
About PowerShow.com