0% found this document useful (0 votes)
9 views9 pages

Class Diagram

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views9 pages

Class Diagram

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

CLASS DIAGRAM

In object-oriented programming (OOP), a class is a blueprint or template for

creating objects. Objects are instances of classes, and each class defines a set of

attributes (data members) and methods (functions or procedures) that the objects

created from that class will possess. The attributes represent the characteristics

or properties of the object, while the methods define the behaviors or actions

that the object can perform.

UML Class Notation

class notation is a graphical representation used to depict classes and their

relationships in object-oriented modeling.

1. Class Name:

 The name of the class is typically written in the top compartment of the

class box and is centered and bold.


2. Attributes:

 Attributes, also known as properties or fields, represent the data members

of the class. They are listed in the second compartment of the class box

and often include the visibility (e.g., public, private) and the data type of

each attribute.

3. Methods:

 Methods, also known as functions or operations, represent the behavior

or functionality of the class. They are listed in the third compartment of

the class box and include the visibility (e.g., public, private), return type,

and parameters of each method.

4. Visibility Notation:

 Visibility notations indicate the access level of attributes and methods.

Common visibility notations include:

o + for public (visible to all classes)

o - for private (visible only within the class)

o # for protected (visible to subclasses)

o ~ for package or default visibility (visible to classes in the same

package)

Relationships between classes

UML is not just about pretty pictures. If used correctly, UML precisely conveys

how code should be implemented from diagrams. If precisely interpreted, the

implemented code will correctly reflect the intent of the designer. Can you
describe what each of the relationships mean relative to your target

programming language shown in the Figure below?

If you can't yet recognize them, no problem this section is meant to help you to

understand UML class relationships. A class may be involved in one or more

relationships with other classes. A relationship can be one of the following

types:

Inheritance (or Generalization):

A generalization is a taxonomic relationship between a more general classifier

and a more specific classifier. Each instance of the specific classifier is also an

indirect instance of the general classifier. Thus, the specific classifier inherits

the features of the more general classifier.

Represents an "is-a" relationship.

An abstract class name is shown in italics.


SubClass1 and SubClass2 are specializations of SuperClass.

The figure below shows an example of inheritance hierarchy. SubClass1 and

SubClass2 are derived from SuperClass. The relationship is displayed as a solid

line with a hollow arrowhead that points from the child element to the parent

element.

Inheritance Example - Shapes

The figure below shows an inheritance example with two styles. Although the

connectors are drawn differently, they are semantically equivalent.

Association
Associations are relationships between classes in a UML Class Diagram. They

are represented by a solid line between classes. Associations are typically named

using a verb or verb phrase which reflects the real world problem domain.

Simple Association

A structural link between two peer classes.

There is an association between Class1 and Class2

The figure below shows an example of simple association. There is an

association that connects the <<control>> class Class1 and <<boundary>> class

Class2. The relationship is displayed as a solid line connecting the two classes.

Cardinality

Cardinality is expressed in terms of:

one to one

one to many

many to many
Aggregation

A special type of association.

It represents a "part of" relationship.

Class2 is part of Class1.

Many instances (denoted by the *) of Class2 can be associated with Class1.

Objects of Class1 and Class2 have separate lifetimes.

The figure below shows an example of aggregation. The relationship is

displayed as a solid line with a unfilled diamond at the association end, which

is connected to the class that represents the aggregate.

Composition

A special type of aggregation where parts are destroyed when the whole is

destroyed.
Objects of Class2 live and die with Class1.

Class2 cannot stand by itself.

The figure below shows an example of composition. The relationship is

displayed as a solid line with a filled diamond at the association end, which is

connected to the class that represents the whole or composite.

Dependency

An object of one class might use an object of another class in the code of a

method. If the object is not stored in any field, then this is modeled as a

dependency relationship.

A special type of association.

Exists between two classes if changes to the definition of one may cause changes

to the other (but not the other way around).

Class1 depends on Class2

The figure below shows an example of dependency. The relationship is

displayed as a dashed line with an open arrow.


The figure below shows another example of dependency. The Person class

might have a hasRead method with a Book parameter that returns true if the

person has read the book (perhaps by checking some database).

Realization

Realization is a relationship between the blueprint class and the object

containing its respective implementation level details. This object is said to

realize the blueprint class. In other words, you can understand this as the

relationship between the interface and the implementing class.

For example, the Owner interface might specify methods for acquiring property

and disposing of property. The Person and Corporation classes need to

implement these methods, possibly in very different ways.

Class Diagram Example: Order System

You might also like