In software
engineering, a class diagram in the Unified Modeling Language (UML) is a type
of static structure diagram that describes the structure of a system by showing
the system's classes, their attributes, operations (or methods), and the relationships
among objects. The class diagram is the main building block of object oriented
modelling. It is used both for general conceptual modelling of the systematics
of the application, and for detailed modelling translating the models into
programming code. Class diagrams can also be used for data modeling.The classes
in a class diagram represent both the main objects, interactions in the
application and the classes to be programmed.
In the
diagram, classes are represented with boxes which contain three parts:
·
The top part contains the name of the class
·
The middle part contains the attributes of the
class
·
The bottom part gives the methods or operations
the class can take or undertake
In the design
of a system, a number of classes are identified and grouped together in a class
diagram which helps to determine the static relations between those objects.
With detailed modelling, the classes of the conceptual design are often split
into a number of subclasses.
In order to
further describe the behaviour of systems, these class diagrams can be
complemented by state diagram or UML state machine. UML provides mechanisms to
represent class members, such as attributes and methods, and additional
information about them.
The UML
specifies two types of scope for members: instance and classifier.
Classifier members are commonly
recognized as “static” in many programming languages. The scope is the class
itself.
·
Attribute values are equal for all instances
·
Method invocation does not affect the instance’s
state
Instance members are scoped to a
specific instance.
·
Attribute values may vary between instances
·
Method invocation may affect the instance’s
state (i.e., change instance’s attributes)
To indicate a
classifier scope for a member, its name must be underlined. Otherwise, instance
scope is assumed by default.
Relationship
A
relationship is a general term covering the specific types of logical
connections found on class and object diagrams. UML shows the following
relationships:
Instance Level Relationships
·
Links
A Link
is the basic relationship among objects.
·
Association
An association represents a family of links. Binary associations (with
two ends) are normally represented as a line. An association can be named, and
the ends of an association can be adorned with role names, ownership
indicators, multiplicity, visibility, and other properties.
·
Aggregation
Aggregation is a variant of the "has a" association
relationship; aggregation is more specific than association. It is an
association that represents a part-whole or part-of relationship. As a type of
association, an aggregation can be named and have the same adornments that an
association can. However, an aggregation may not involve more than two classes.
·
Composition
Composition is a stronger variant of the "owns a" association
relationship; composition is more specific than aggregation.
Composition usually has a strong life cycle dependency between instances
of the container class and instances of the contained class(es): If the
container is destroyed, normally every instance that it contains is destroyed
as well.
Class Level Relationships
·
Generalization
The Generalization relationship is a indicates that one of the two
related classes (the subclass) is considered to be a specialized form of the
other (the super type) and superclass is considered as Generalization of
subclass. In practice, this means that any instance of the subtype is also an
instance of the superclass. An exemplary tree of generalizations of this form
is found in binomial nomenclature: human beings are a subclass of simian, which
are a subclass of mammal, and so on.
·
Realization
In UML modelling, a realization relationship is a relationship between
two model elements, in which one model element (the client) realizes
(implements or executes) the behavior that the other model element (the
supplier) specifies.
The UML graphical representation of a Realization is a hollow triangle
shape on the interface end of the dashed line (or tree of lines) that connects
it to one or more implementers. A plain arrow head is used on the interface end
of the dashed line that connects it to its users. In component diagrams, the
ball-and-socket graphic convention is used (implementors expose a ball or
lollipop, while users show a socket).
General
Relationship
·
Depedency
Dependency is a weaker form of relationship which indicates that one
class depends on another because it uses it at some point in time. One class
depends on another if the independent class is a parameter variable or local
variable of a method of the dependent class. This is different from an
association, where an attribute of the dependent class is an instance of the
independent class.
·
Multiplicy
The association relationship indicates that (at least) one of the two
related classes makes reference to the other. In contrast with the
generalization relationship, this is most easily understood through the phrase
'A has a B'. The UML representation of an association is a line with an
optional arrowhead indicating the role of the object in the relationship, and an
optional notation at each end indicating the multiplicity of instances of that
entity (the number of objects that participate in the association).
In
this Class Diagram,
I was illustrates my Class Diagram Blog
by usecase diagram
I have posted previously on the Own Blog Admin. Here I
made a Class Diagram
consisting primarily of a public that is menus, manage
profile, manage comments,
manage posts, and
logon. Then manage
have a public profile edit profile, manage own
public comment add
comment and delete comments, manage posts
have a public add posts, edit posts,
and delete posts.
Manage profiles generalizable
to Tb profile
that has multiple public and private,
public and is used here for its private method
used to define
the variable name used. So also in managing the
comment generalizable to Comment Tb and Tb manage post generalizable to
post. In the
process of managing a blog must first logon using the
username and password as well as a database
role is to match the username and password of the
user.