0% found this document useful (0 votes)
59 views

Class Diagrams

A UML class diagram describes types of objects and relationships between them. It shows classes, attributes, operations, and relationships like associations, generalization, aggregation, and dependency. A class represents a set of objects with common characteristics. Attributes describe the properties of objects, while operations define the behaviors. Relationships specify how classes interact or relate to each other. A UML class diagram provides an overview of the structure and design of a system.

Uploaded by

Abhishek Garg
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Class Diagrams

A UML class diagram describes types of objects and relationships between them. It shows classes, attributes, operations, and relationships like associations, generalization, aggregation, and dependency. A class represents a set of objects with common characteristics. Attributes describe the properties of objects, while operations define the behaviors. Relationships specify how classes interact or relate to each other. A UML class diagram provides an overview of the structure and design of a system.

Uploaded by

Abhishek Garg
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 44

UML Class Diagrams

Agenda
What is a Class Diagram? Essential Elements of a UML Class Diagram Packages and Class Diagrams Analysis Classes Approach Tips

UML Class Diagrams

What is a Class Diagram?


A class diagram describes the types of objects in the system and the various kinds of static relationships that exist among them.
A graphical representation of a static view on declarative static elements.

A central modeling technique that runs through nearly all object-oriented methods. The richest notation in UML.
UML Class Diagrams 3

Essential Elements of a UML Class Diagram


Class Attributes Operations Relationships
Associations Generalization Dependency Realization

Constraint Rules and Notes


UML Class Diagrams 4

Classes
A class is the description of a set of objects having similar attributes, operations, relationships and behavior.
Class Name

Window
size: Size visibility: boolean display() hide()

Attributes
Operations

UML Class Diagrams

UML Class Diagrams

Names
A class name must be unique within its enclosingpackage, as discussed in Chapter 12. Every class must have a name that distinguishes it from other classes. A name is a textual string. That name alone is known as a simple name; a path name is the class name prefixed by the name of the package in which that class lives. A class may be drawn showing only its name.

UML Class Diagrams

Names

UML Class Diagrams

Names
A class name may be text consisting of any number of letters, numbers, and certain punctuation marks (except for marks such as the colon, which is used to separate a class name and the name of its enclosing package) and may continue over several lines. Class names are short nouns or noun phrases drawn from the vocabulary of the system you are modeling. Capitalize the first letter of every word in a class name, as in Customer or TemperatureSensor.
UML Class Diagrams 9

Attributes
Attributes arerelated to the semantics ofaggregation. An attribute is a named property of a class that describes a range of values that instances of the property may hold. A class may have any number of attributes or no attributes at all. An attribute represents some property of the thing you are modeling that is shared by all objects of that class. For example, every wall has a height, width, and thickness; you might model your customers in such a way that each has a name, address, phone number, and date of birth. An attribute is therefore an abstraction of the kind of data or state an object of the class might encompass. At a given moment, an object of a class will have specific values for every one of its class's attributes. Graphically, attributes are listed in a compartment just below the class name.
10

UML Class Diagrams

UML Class Diagrams

11

An attribute name may be text, just like a class name. In practice, an attribute name is a short noun or noun phrase that represents some property of its enclosing class. Typically, you capitalize the first letter of every word in an attribute name except the first letter, as in name or loadBearing.
UML Class Diagrams 12

You can specify other features of anattribute, such as marking it read-only or shared by all objects of the class You can further specify an attribute by stating its class and possibly a default initial value, as shown

UML Class Diagrams

13

Operations
An operation is the implementation of a service that can be requested from any object of the class to affect behavior. An operation is an abstraction of something you can do to an object and that is shared by all objects of that class. A class may have any number of operations or no operations at all. Graphically, operations are listed in a compartment just below the class attributes. Operations may be drawn showing only their names,
UML Class Diagrams 14

An operation name may be text, just like a class name. In practice, an operation name is a short verb or verb phrase that represents some behavior of its enclosing class. Typically, you capitalize the first letter of every word in an operation name except the first letter, as in move or isEmpty.

UML Class Diagrams

15

UML Class Diagrams

16

When drawing a class, you don't have to show every attribute and every operation at once. In fact, in most cases, you can't (there are too many of them to put in one figure) and you probably shouldn't (only a subset of these attributes and operations are likely to be relevant to a specific view). For these reasons, you can elide a class, meaning that you can choose to show only some or none of a class's attributes and operations. An empty compartment doesn't necessarily mean there are no attributes or operations, just that you didn't choose to show them. You can explicitly specify that there are more attributes or properties than shown by ending each list with an ellipsis ("...").
UML Class Diagrams 17

UML Class Diagrams

18

Responsibilities

UML Class Diagrams

19

Associations
A structural relationship, specifying that objects of one class are connected to objects of a second (possibly the same) class. Example: An Employee works for a Company

Employee

Department

Company
20

UML Class Diagrams

Associations (cont.)
An association between two classes indicates that objects at one end of an association recognize objects at the other end and may send messages to them.
.

UML Class Diagrams

21

Associations (cont.)
Role name
instructor Association name

StaffMember

1..*

instructs
Navigable (uni-directional) association

Student
Role * pre requisites 0..3

Multiplicity

Courses
Reflexive association
UML Class Diagrams

22

Associations (cont.)
To clarify its meaning, an association may be named.
The name is represented as a label placed midway along the association line. Usually a verb or a verb phrase.

A role is an end of an association where it connects to a class.


May be named to indicate the role played by the class attached to the end of the association path.
Usually a noun or noun phrase Mandatory for reflexive associations
UML Class Diagrams 23

Associations (cont.)
Multiplicity
The number of instances of the class, next to which the multiplicity expression appears, that are referenced by a single instance of the class that is at the other end of the association path. Indicates whether or not an association is mandatory. Provides a lower and upper bound on the number of instances.
UML Class Diagrams 24

Associations (cont.)
Multiplicity Indicators
Exactly one 1

Zero or more (unlimited)


One or more Zero or one (optional association) Specified range

* (0..*)
1..* 0..1 2..4

Multiple, disjoint ranges


UML Class Diagrams

2, 4..6, 8
25

Aggregation
A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts.
Models a is a part-part of relationship.
Car 2..*

Door

1..*

House

Whole

Part

UML Class Diagrams

26

Aggregation (cont.)
Aggregation tests:
Is the phrase part of used to describe the relationship?
A door is part of a car

Are some operations on the whole automatically applied to its parts?


Move the car, move the door.

Are some attribute values propagated from the whole to all or some of its parts?
The car is blue, therefore the door is blue.

Is there an intrinsic asymmetry to the relationship where one class is subordinate to the other?
A door is part of a car. A car is not part of a door.
UML Class Diagrams 27

Composition
A strong form of aggregation
The whole is the sole owner of its part.
The part object may belong to only one whole

Multiplicity on the whole side must be zero or one. The life time of the part is dependent upon the whole.
The composite must manage the creation and destruction of its parts.

Circle Polygon

Point
3..*

Circle

Point
28

UML Class Diagrams

Indicates that objects of the specialized class (subclass) are substitutable for objects of the generalized class (super-class).
is kind of relationship.
{abstract} is a

Generalization

tagged value that indicates that the class is abstract. The name of an abstract class should be italicized

An abstract class Generalization relationship

Shape
{abstract}

Super Class

Circle

Sub Class
29

UML Class Diagrams

Generalization
A sub-class inherits from its super-class
Attributes Operations Relationships

A sub-class may
Add attributes and operations Add relationships Refine (override) inherited operations

A generalization relationship may not be used to model interface implementation.


UML Class Diagrams 30

Dependency
A dependency indicates a semantic relation between two or more classes in which a change in one may force changes in the other although there is no explicit association between them. A stereotype may be used to denote the type of the dependency.
Iterator
<<friend>>

Vector
31

UML Class Diagrams

Realization
A realization relationship indicates that one class implements a behavior specified by another class (an interface or protocol). An interface can be realized by many classes. A class may realize many interfaces.
LinkedList
<<interface>>

List
UML Class Diagrams

LinkedList

List
32

Constraint Rules and Notes


Constraints and notes annotate among other things associations, attributes, operations and classes. Constraints are semantic restrictions noted as Boolean expressions.
UML offers many pre-defined constraints.
Customer
id: long { value > 0 } 1 { total < $50 } * may be canceled

Order

Constraint
UML Class Diagrams

Note
33

Example
TrafficPoliceman 1 issues * TrafficReport id : long description : String occuredAt : Date reports of 1..* Policeman id : long name : String rank : int <<abstract>> 1..* 1 Offender name : String id : long

Violation
id : long description : String

UML Class Diagrams

34

UML Packages
A package is a general purpose grouping mechanism.
Can be used to group any UML element (e.g. use case, actors, classes, components and other packages.

Commonly used for specifying the logical distribution of classes. A package does not necessarily translate into a physical sub-system. Name

UML Class Diagrams

35

Logical Distribution of Classes


Emphasize the logical structure of the system (High level view)
Higher level of abstraction over classes. Aids in administration and coordination of the development process. Contributes to the scalability of the system.

Logical distribution of classes is inferred from the logical architecture of the system.
UML Class Diagrams 36

Packages and Class Diagrams (cont.)


Add package information to class diagrams
A F E G C D B

UML Class Diagrams

37

Packages and Class Diagrams (cont.)


Add package information to class diagrams
b
b.a
b.a.F

a
a.A

b.b
b.b.E b.b.D a.B

b.a.G a.C

UML Class Diagrams

38

Analysis Classes
A technique for finding analysis classes which uses three different perspectives of the system:
The boundary between the system and its actors The information the system uses The control logic of the system

UML Class Diagrams

39

Boundary Classes
Models the interaction between the systems surroundings and its inner workings
User interface classes
Concentrate on what information is presented to the user Dont concentrate on user interface details Example:
ReportDetailsForm ConfirmationDialog

System / Device interface classes


Concentrate on what protocols must be defined. Dont concentrate on how the protocols are implemented UML Class Diagrams

40

Entity Classes
Models the key concepts of the system Usually models information that is persistent Contains the logic that solves the system problem Can be used in multiple behaviors Example: Violation, Report, Offender.
UML Class Diagrams 41

Controls and coordinates the behavior of the system Delegates the work to other classes
A control class should tell other classes to do something and should never do anything except for directing

Control Classes

Control classes decouple boundary and entity classes Example:


EditReportController AddViolationController
UML Class Diagrams 42

TVRS Example
ReportDetailsForm <<boundary >> 1 1 Of f endersDBProxy <<boundary >> Of f endersDB EditReportController <<control>> Clerk Conf irmationDialog <<boundary >> 1 1 Traf f icReport 1 PolicemanDBProxy <<boundary >> PolicemenDB

Violation

Of f ender

Traf f icPoliceman

UML Class Diagrams

43

Tips
Dont try to use all the various notations. Dont draw models for everything, concentrate on the key areas. Draw implementation models only when illustrating a particular implementation technique.

UML Class Diagrams

44

You might also like