Top Banner
Class Diagrams Lecture # 6 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and on the book Applying UML and Patterns (3 rd ed.) by C. Larman (2005). Modelling and Simulation, 2012
60

Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Jul 17, 2019

Download

Documents

vandiep
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class DiagramsLecture # 6

Department of Computer Science and TechnologyUniversity of Bedfordshire

Written by David Goodwin,based on the lectures of Marc Conrad and

on the book Applying UML and Patterns (3rd ed.)by C. Larman (2005).

Modelling and Simulation, 2012

Page 2: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Outline

Class Diagram

Elements of a class diagram

Making class diagramsExample # 1

Relationships between classesVisibilityAggregation and CompositionAbstract classes

Page 3: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Class Diagram

Page 4: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Static Models and Dynamic Models

I Class diagrams model the static behaviour of objects,i.e.

I Attributes of objectsI Operation of objectsI Relationships between objects.

Page 5: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Class Diagram: Example

Page 6: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Rational Rose - Example of a classdiagram

Page 7: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a classdiagram

Page 8: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram - Classes

Page 9: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Structure of a class

Page 10: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Structure of a class

Page 11: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Structure of a class

Page 12: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Structure of a class

Page 13: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram - rolesand attributes

Page 14: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Operations

Page 15: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Operations & Attributes

Page 16: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -private/public

Page 17: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Relationships

Page 18: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Associations

Page 19: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram - Arrowson Associations

Page 20: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Multiplicities

Page 21: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Multiplicities

Page 22: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Multiplicities

Page 23: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Generalisation

Page 24: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Constraints

Page 25: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Constraints

Page 26: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Elements of a class diagram -Constraints and Notes

Page 27: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Element of a class diagram - Notesand Constraints

Page 28: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Making class diagrams

Page 29: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

How to make a class diagram.

1. Identify all the classes participating in the softwaresolution (from the sequence diagrams).

2. Draw them in a class diagram.

3. Identify the attributes.

4. Identify the methods (from the sequence diagram).

5. Add associations, generalisations, aggregations anddependencies.

6. Add other stuff (roles, constraints, . . . )

Page 30: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Class diagrams and Interactiondiagrams

I In practice class diagrams and interaction diagrams areusually created in parallel.

I Many classes, methods, etc. may be sketched out in aclass diagram prior to drawing a sequence diagram.

I A “light” version of a class diagram containing onlyattributes but no messages is also known as aconceptual model.

I Sometimes a conceptual model is used instead of ananalysis model in the system engineering process.

Page 31: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

1. Identify classes

I We investigate the “return item” Use Case of theRecycling machine.

I From the sequence diagram we find the followingclasses:

I Customer PanelI Deposit item receiverI Receipt basisI Deposit itemI Receipt printerI Can, Bottle, Crate

Page 32: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

1. Use Case of Recycle Machine

Page 33: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

2. Draw them in a class diagram

Page 34: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

3. Identify attributes

I Classes which contain data are in the Deposit itemhierarchy.

I For checking & classifying an item we need the weightand size of a Can, Bottle, and Crate.

I For collecting the data at the Receipt basis eachDeposit Item gets a number and a value.

Page 35: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

4. Identify methods

I The return item use case suggests the following twomethods for the Customer Panel:

I itemReceived(slot : Integer)I printReceipt()

I Following the sequence of events in the sequencediagram we obtain then:

I Deposit item receiver: classifyItem(),createReceiptBasis(), printReceipt()

I Receipt basis: addItem(), computeSum(),I Receipt printer: print().

I We don’t show accessor and modifier methods in orderto keep the diagram simple.

Page 36: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

5. Add associations

I Associations show navigability between classes

Page 37: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Relationships betweenclasses

Page 38: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Relationships between classes

I There are four possible relationships between classes.I AssociationI DependencyI GeneralisationI Aggregation

Page 39: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Relationships between classes

I There are four possible relationships between classes.I AssociationI DependencyI GeneralisationI Aggregation

Page 40: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Relationships between classes

I There are four possible relationships between classes.I AssociationI DependencyI GeneralisationI Aggregation

Page 41: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Visibility

I Why do we consider visibility?

I Object Oriented design is about sending messagesbetween objects.

I For an object A to send a message to an object B, Bmust be visible to A.

I Example: The Deposit Item Receiver cannot send amessage to the Printer, if it is not visible for theDeposit Item Receiver

Page 42: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Visibility

I There are four types of visibility:I Attribute visibility - B is a (reference) attribute to A.I Parameter visibility - B is a parameter of a method of A.I Locally declared visibility - B is declared as a local

object in a method of A.I Global visibility - B is in some way globally visible.

Page 43: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Attribute Visibility

I Attribute visibility from A to B exists when B is a(reference) attribute of A.

I It persists as long as A and B exist.

I It is a very common form of visibility in object-orientedsystems.

I In the implementation usually A has a reference (Java)or a pointer (C++) variable of B.

Page 44: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Attribute Visibility - Example # 1

Page 45: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Attribute Visibility - Example # 2

Page 46: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Parameter visibility

I Parameter visibility exists when B is passed as aparameter to a method of A.

I It is a relatively temporary visibility because it persistsonly in the scope of the method.

I It is common to transform parameter visibility intoattribute visibility (see example).

Page 47: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Parameter visibility - example

Page 48: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Locally Declared Visibility

I Locally declared visibility from A to B exists wehn B isdeclared as a local object within a method of A.

I Two common means:I Create a new local instance and assign it to a local

variable.I Assign the return object from a method invocation to a

local variable.

Page 49: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Locally Declared Visibility - Example

Page 50: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Global Visibility

I Global visibility from A to B exists when B is global toA. In object oriented systems it is the least commonform of visibility.

I Global visibility can be implemented viaI the return value of a class (static) method.I the return value of a non-member function (C++).I as a public static attribute in Java.

Page 51: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Global Visibility - Example

Page 52: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Visibility, Association & Dependency

I Attribute visibility between classes is always consideredas an association. UML uses a solid arrow to denoteassociations:

I Parameter, local, and global visibility is considered as adependency. UML uses as dashed arrow fordependencies:

Page 53: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Revised example:

Page 54: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Generalisation

Page 55: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Aggregation and Composition

I Aggregation is a kind of association used to modelwhole-part relationships between things - A “has a”relationship. The whole is generally called thecomposite (the parts have no standard name)

I Aggregation is shown with a hollow or filled diamond:I Composite Aggregation:

I Shared Aggregation:

I Aggregation is a property of an association role (asmultiplicity, name, multiplicity)

Page 56: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Composite Aggregation vs. SharedAggregation

I Composite aggregation (also known as composition)means that the composite solely owns the part.

I Shared aggregation means that the part may be inmany composite instances.

Page 57: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

When to show aggregation?

I Show aggregation when:I The lifetime of the part is bound within the lifetime of

the composite.I There is an obvious whole-part physical or logical

assembly.I Some properties of the composite propagate to the

parts.I Operations applied to the composite propagate to the

parts.

I Rule of thumb: If in doubt, leave it out.

Page 58: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Aggregation (Example)

Page 59: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Abstract classes & Interfaces.

I If every member of a type T must also be a member ofa subtype, then type T is called an abstract type, andthe type name is italicised in the class diagram

I If an abstract type is implemented in software as a classduring the design phase, it will usually be representedby an abstract class, meaning that no instances may becreated for the class.

I An abstract method is one that is declared in anabstract class, but not implemented; in the UML it isalso notated with italics.

I Classes containing only abstract methods are known asinterfaces (denoted by a dotted generalisation arrow).

Page 60: Class Diagrams - Lecture # 6 - University of Warwick · class diagram prior to drawing a sequence diagram. I A \light" version of a class diagram containing only attributes but no

Class Diagrams

Class Diagram

Elements of aclass diagram

Making classdiagrams

Example # 1

Relationshipsbetween classes

Visibility

Aggregation andComposition

Abstract classes

Abstract classes