UMLNotes PDF
UMLNotes PDF
com
What is UML?
The Unified Modeling Language (UML) is a standard language for specifying, visualizing,
constructing, and documenting the artifacts of software systems, as well as for business modeling
and other non-software systems. The UML represents a collection of best engineering practices that
have proven successful in the modeling of large and complex systems. The UML is a very important
part of developing object oriented software and the software development process.
The UML uses mostly graphical notations to express the design of software projects. Using the UML
helps project teams communicate, explore potential designs, and validate the architectural design of
the software.
The UML was released in 1997 as a method to diagram software design. It was designed by
a consortium of the best minds in object oriented analysis and design. It is by far the most
exciting thing to happen to the software industry in recent years. Every other engineering
discipline has a standard method of documentation.
diagrams, architects and mechanical engineers have blueprints and mechanical diagrams.
The software industry now has UML.
Goals of UML
The primary goals in the design of the UML were:
1. Provide users with a ready-to-use, expressive visual modeling language so they can develop
and exchange meaningful models.
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
CSE Department,
VNRVJIET
1
www.jntuworld.com
www.jntuworld.com
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of the OO tools market.
6. Support higher-level development concepts such as collaborations, frameworks, patterns and
components.
7. Integrate best practices.
Before we move on next lesson consider some of the benefits of UML:
1 Your software system is professionally designed and documented before it is coded. You will
know exactly what you are getting, in advance.
2 Since system design comes first, reusable code is easily spotted and coded with the highest
efficiency. You will have lower development costs.
3 Logic 'holes' can be spotted in the design drawings. Your software will behave as you expect it to.
There are fewer surprises.
4 The overall system design will dictate the way the software is developed. The right decisions are
made before you are married to poorly written code. Again, your overall costs will be less.
5 UML lets us see the big picture. We can develop more memory and processor efficient systems.
6 When we come back to make modifications to your system, it is much easier to work on a system
that has UML documentation. Much less 'relearning' takes place. Your system maintenance costs
will be lower.
7 If you should find the need to work with another developer, the UML diagrams will allow them to get
up to speed quickly in your custom system. Think of it as a schematic to a radio. How could a tech
fix it without it?
8 If we need to communicate with outside contractors or even your own programmers, it is much
more efficient.
Using the Unified Modeling Language will result in lower overall costs, more
reliable and efficient software, and a better relationship with all parties
involved. Software documented with UML can be
2
www.jntuworld.com
www.jntuworld.com
programmers who build the software that solves the problem, test it and deploy it on computer
hardware. This is necessary because systems today are so complex, knowledge has become so
specialized that one person can't know all the facets of a business, understand the problem, design a
solution, translate it into a program, deploy the program onto hardware, and make sure the hardware
components all work together correctly.
The old way of system modeling, known as the waterfall method, specifies that analysis, design,
coding and deployment follow one another. Only when one is complete can the next one begin. If
an analyst hands off analysis to a designer, who hands off a design to a developer, chances are
that the three team members will rarely work together and share important insights. Usually the
adherents of the waterfall method give coding a big amount of project time; it takes a valuable
time away from analysis and design.
In the new way, contemporary software engineering stress continuing interplay among the stages
of development. Analysts and designers, for example, go back and forth to evolve a solid
foundation for the programmers. Programmers, in turn, interact with analysts and designers to
share their insights, modify designs, and strengthen their code. The advantage is that as
understanding grows, the team incorporates new ideas and builds a stronger system.
CSE Department,
VNRVJIET
3
www.jntuworld.com
www.jntuworld.com
Class:
Classes are composed of three things: a name, attributes, and operations. Below is an example of a class.
Interface:
The symbol of interface is
Use case:
A use case is a set of scenarios that describing an interaction between a user and a system. The following is
the symbol for use case.
Node:
The symbol for the node is as shown below.
Component:
The symbol for the component is as shown below.
CSE Department,
VNRVJIET
4
www.jntuworld.com
www.jntuworld.com
Behavioral Elements
State:
The basic elements are rounded boxes representing the state of the object and arrows indicting the transition
to the next state. The activity section of the state symbol depicts what activities the object will be doing while it
is in that state.
Sequence:
The following diagram is a sequence.
Collaboration:
The following notation is collaboration.
Activity:
The following notation is an activity.
CSE Department,
VNRVJIET
5
www.jntuworld.com
www.jntuworld.com
Relationships
Grouping
Extension
The graphical elements combined into diagrams, because the UML is a language, which has rules for
combining these elements.
The purpose of the diagrams is to present multiple views of a system, and this set of multiple views is called a
model.
UML model describes what a system is supposed to do. It doesn't tell how to implement the
system.
CSE Department,
VNRVJIET
6
www.jntuworld.com
www.jntuworld.com
Start by listing a sequence of steps a user might take in order to complete an action. For example a user
placing an order with a sales company might follow these steps.
1. Browse catalog and select items.
2. Call sales representative.
3. Supply shipping information.
4. Supply payment information.
5. Receive conformation number from salesperson.
This example shows the customer as an actor because the customer is using the ordering system. The
diagram takes the simple steps listed above and shows them as actions the customer might perform. The
salesperson could also be included in this use case diagram because the salesperson is also interacting with
the ordering system.
From this simple diagram the requirements of the ordering system can easily be derived. The system will need
to be able to perform actions for all of the use cases listed. As the project progresses other use cases might
appear. The customer might have a need to add an item to an order that has already been placed. This
diagram can easily be expanded until a complete description of the ordering system is derived capturing all of
the requirements that the system will need to perform.
The actor is the entity that initiates the use case. It can be a person or another system.
CSE Department,
VNRVJIET
7
www.jntuworld.com
www.jntuworld.com
Class Diagram :
Models class structure and contents using design elements such as classes, packages and objects. It also
displays relationships such as containment, inheritance, associations and others. Things naturally fall into
categories (computers, automobiles, trees...). We refer to these categories as classes.
A class is a category or group of things that have similar attributes and common
behaviors.
Class diagrams are widely used to describe the types of objects in a system and their relationships. Class
diagrams model class structure and contents using design elements such as classes, packages and objects.
Class diagrams describe three different perspectives when designing a system, conceptual, specification, and
implementation. These perspectives become evident as the diagram is created and help solidify the design.
This example is only meant as an introduction to the UML and class diagrams.
Classes are composed of three things: a name, attributes, and operations. Below is an example of a class.
Class diagrams also display relationships such as containment, inheritance, associations and others. Below is
an example of an associative relationship:
The association relationship is the most common relationship in a class diagram. The association shows the
relationship between instances of classes. For example, the class Order is associated with the class
Customer. The multiplicity of the association denotes the number of objects that can participate in then
relationship. For example, an Order object can be associated to only one customer, but a customer can be
associated to many orders.
Another common relationship in class diagrams is a generalization. A generalization is used when two classes
are similar, but have some differences. Look at the generalization below:
CSE Department,
VNRVJIET
8
www.jntuworld.com
www.jntuworld.com
In this example the classes Corporate Customer and Personal Customer have some similarities such as name
and address, but each class has some of its own attributes and operations. The class Customer is a general
form of both the Corporate Customer and Personal Customer classes. This allows the designers to just use the
Customer class for modules and do not require in-depth representation of each type of customer.
Object Diagram:
An object is an instance of a class - a specific thing that has specific values of the
attributes and behavior.
Interaction Diagrams:
Sequence Diagram displays the time sequence of the objects participating in the interaction. This
consists of the vertical dimension (time) and horizontal dimension (different objects). Class diagrams
and object diagrams represent static information. In a functioning system, however, objects interact with
one another, and these interactions occur over time. The UML sequence diagram shows the timebased dynamics of the interaction. Sequence diagrams demonstrate the behavior of objects in a use
case by describing the objects and the messages they pass. the diagrams are read left to right and
descending. The example below shows an object of class 1 start the behavior by sending a message
to an object of class 2. Messages pass between the different objects until the object of class 1 receives
the final message.
CSE Department,
VNRVJIET
9
www.jntuworld.com
www.jntuworld.com
Below is a slightly more complex example. The light blue vertical rectangles the objects activation while
the green vertical dashed lines represent the life of the object. The green vertical rectangles represent
when a particular object has control. The represents when the object is destroyed. This diagram
also shows conditions for messages to be sent to other object. The condition is listed between brackets
next to the message. For example, a [condition] has to be met before the object of class 2 can send a
message() to the object of class 3.
The next diagram shows the beginning of a sequence diagram for placing an order. The object an
Order Entry Window is created and sends a message to an Order object to prepare the order. Notice
the names of the objects are followed by a colon. The names of the classes the objects belong to do
not have to be listed. However the colon is required to denote that it is the name of an object following
the objectName:className naming system.
Next the Order object checks to see if the item is in stock and if the [InStock] condition is met it sends a
message to create an new Delivery Item object.
CSE Department,
VNRVJIET
10
www.jntuworld.com
www.jntuworld.com
The next diagrams add another conditional message to the Order object. If the item is [OutOfStock] it
sends a message back to the Order Entry Window object stating that the object is out of stack.
This simple diagram shows the sequence that messages are passed between objects to complete a
use case for ordering an item.
Collaboration Diagram displays an interaction organized around the objects and their links to one
another. Numbers are used to show the sequence of messages. The elements of a system work
together to accomplish the system's objectives, and a modeling language must have a way of
representing this. The UML collaboration diagram is designed for this purpose. Collaboration
diagrams:
Collaboration diagrams are also relatively easy to draw. They show the relationship between objects
and the order of messages passed between them. The objects are listed as icons and arrows indicate
the messages being passed between them. The numbers next to the messages are called sequence
numbers. As the name suggests, they show the sequence of the messages as they are passed
between the objects. There are many acceptable sequence numbering schemes in UML. A simple 1,
2, 3... format can be used, as the example below shows, or for more detailed and complex diagrams a
1, 1.1 ,1.2, 1.2.1... scheme can be used.
CSE Department,
VNRVJIET
11
www.jntuworld.com
www.jntuworld.com
The example below shows a simple collaboration diagram for the placing an order use case. This time
the names of the objects appear after the colon, such as :Order Entry Window following the
objectName:className naming convention. This time the class name is shown to demonstrate that all
of objects of that class will behave the same way.
State Diagram:
This displays the sequences of states that an object of an interaction goes through during its life in response to
received stimuli, together with its responses and actions. At any given time, an object is in particular state. State
diagrams represent these states and their changes during time. Every state diagram starts with symbol that
represents start state, and ends with symbol for the end state. For example every person can be a newborn,
infant, child, adolescent, teenager or adult. State diagrams are used to describe the behavior of a system.
State diagrams describe all of the possible states of an object as events occur. Each diagram usually
represents objects of a single class and track the different states of its objects through the system.
When to Use: State Diagrams
Use state diagrams to demonstrate the behavior of an object through many use cases of the system. Only use
state diagrams for classes where it is necessary to understand the behavior of the object through the entire
system. Not all classes will require a state diagram and state diagrams are not useful for describing the
collaboration of all objects in a use case. State diagrams are other combined with other diagrams such as
interaction diagrams and activity diagrams.
How to Draw: State Diagrams
State diagrams have very few elements. The basic elements are rounded boxes representing the state of the
object and arrows indicting the transition to the next state. The activity section of the state symbol depicts what
activities the object will be doing while it is in that state.
CSE Department,
VNRVJIET
12
www.jntuworld.com
www.jntuworld.com
All state diagrams being with an initial state of the object. This is the state of the object when it is created. After
the initial state the object begins changing states. Conditions based on the activities can determine what the
next state the object transitions to.
Below is an example of a state diagram might look like for an Order object. When the object enters the
Checking state it performs the activity "check items." After the activity is completed the object transitions to the
next state based on the conditions [all items available] or [an item is not available]. If an item is not available
the order is canceled. If all items are available then the order is dispatched. When the object transitions to the
Dispatching state the activity "initiate delivery" is performed. After this activity is complete the object transitions
again to the Delivered state.
CSE Department,
VNRVJIET
13
www.jntuworld.com
www.jntuworld.com
State diagrams can also show a super-state for the object. A super-state is used when many transitions lead to
the a certain state. Instead of showing all of the transitions from each state to the redundant state a super-state
can be used to show that all of the states inside of the super-state can transition to the redundant state. This
helps make the state diagram easier to read.
The diagram below shows a super-state. Both the Checking and Dispatching states can transition into the
Canceled state, so a transition is shown from a super-state named Active to the state Cancel. By contrast, the
state Dispatching can only transition to the Delivered state, so we show an arrow only from the Dispatching
state to the Delivered state.
CSE Department,
VNRVJIET
14
www.jntuworld.com
www.jntuworld.com
Activity Diagram:
This displays a special state diagram where most of the states are action states and most of the transitions are
triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal
processing. The activities that occur within a use case or within an object's behavior typically occur in a
sequence. This sequence is represented with activity diagrams. State diagrams are used to describe the
behavior of a system. State diagrams describe all of the possible states of an object as events occur. Each
diagram usually represents objects of a single class and track the different states of its objects through the
system.
Activity diagrams describe the workflow behavior of a system. Activity diagrams are similar to state diagrams
because activities are the state of doing something. The diagrams describe the state of activities by showing
the sequence of activities performed. Activity diagrams can show activities that are conditional or parallel.
When to Use: Activity Diagrams
Activity diagrams should be used in conjunction with other modeling techniques such as interaction diagrams
and state diagrams. The main reason to use activity diagrams is to model the workflow behind the system
being designed. Activity Diagrams are also useful for: analyzing a use case by describing what actions need to
take place and when they should occur; describing a complicated sequential algorithm; and modeling
applications with parallel processes.
However, activity diagrams should not take the place of interaction diagrams and state diagrams. Activity
diagrams do not give detail about how objects behave or how objects collaborate.
How to Draw: Activity Diagrams
Activity diagrams show the flow of activities through the system. Diagrams are read from top to bottom and
have branches and forks to describe conditions and parallel activities. A fork is used when multiple activities
are occurring at the same time. The diagram below shows a fork after activity1. This indicates that both
activity2 and activity3 are occurring at the same time. After activity2 there is a branch. The branch describes
what activities will take place based on a set of conditions. All branches at some point are followed by a merge
to indicate the end of the conditional behavior started by that branch.
activities must be combined by a join before transitioning into the final activity state.
CSE Department,
VNRVJIET
15
www.jntuworld.com
www.jntuworld.com
Below is a possible activity diagram for processing an order. The diagram shows the flow of actions in the
system's workflow. Once the order is received the activities split into two parallel sets of activities. One side
fills and sends the order while the other handles the billing. On the Fill Order side, the method of delivery is
decided conditionally. Depending on the condition either the Overnight Delivery activity or the Regular Delivery
activity is performed. Finally the parallel activities combine to close the order.
CSE Department,
VNRVJIET
16
www.jntuworld.com
www.jntuworld.com
Physical Diagrams:
There are two types of physical diagrams: deployment diagrams and component diagrams. Deployment
diagrams show the physical relationship between hardware and software in a system. Component diagrams
show the software components of a system and how they are related to each other. These relationships are
called dependencies.
When to Use: Physical Diagrams
Physical diagrams are used when development of the system is complete. Physical diagrams are used to give
descriptions of the physical information about a system.
How to Draw: Physical Diagrams
Many times the deployment and component diagrams are combined into one physical diagram. A combined
deployment and component diagram combines the features of both diagrams into one diagram.
Deployment Diagram displays the configuration of run-time processing elements and the
software components, processes, and objects that live on them. Software component instances
represent run-time manifestations of code units. The UML deployment diagram shows the
physical architecture of a computer-based system. It can depict the computers and devices,
show their connections with one another, and show the software that sits on each machine.
CSE Department,
VNRVJIET
17
www.jntuworld.com
www.jntuworld.com
The deployment diagram contains nodes and connections. A node usually represents a piece of hardware in
the system. A connection depicts the communication path used by the hardware to communicate and usually
indicates a method such as TCP/IP.
The component diagram contains components and dependencies. Components represent the physical
packaging of a module of code. The dependencies between the components show how changes made to one
component may affect the other components in the system. Dependencies in a component diagram are
represented by a dashed line between two or more components. Component diagrams can also show the
interfaces used by the components to communicate to each other.
The combined deployment and component diagram below gives a high level physical description of the
completed system. The diagram shows two nodes which represent two machines communicating through
TCP/IP. Component2 is dependant on component1, so changes to component 2 could affect component1. The
diagram also depicts component3 interfacing with component1. This diagram gives the reader a quick overall
view of the entire system.
CSE Department,
VNRVJIET
18
www.jntuworld.com
www.jntuworld.com
Component Diagram displays the high level packaged structure of the code itself. Dependencies
among components are shown, including source code components, binary code components, and
executable components. Some components exist at compile time, at link time, at run times well as at
more than one time. Today in software engineering we have team-based development efforts, where
everyone has to work on different component. That's important to have a component diagram in
modeling process of the system.
Class Diagrams
During this several days you'll firm up your knowledge of object-orientation as you learn more about
the UML.
Next lessons will deal with class diagrams. How to extract classes, their attributes and methods from
interviewing a client, and then bind the classes with relationships to form the class diagram. You'll
learn more about:
1
Visualising a Class (attributes and operations)
2
Associations
CSE Department,
VNRVJIET
19
www.jntuworld.com
www.jntuworld.com
3
Inheritance & Generalization
4
Agregations
5
Interfaces & Realizations
6
Visibility
The last part of this group of lessons consits of an example, which give you all the necessary steps
for building a class diagram.
Visualising a Class
We mentioned in earlier lessons that things fall into categories - classes. The UML class diagram
consists of several classes conected with relationships. But how UML represents a class?
The rectangle is the icon for the class. The name of the class is, by convention, a word
with an initial uppercase letter. It appears near the top of the rectangle. If your class
name has more than one word name, then join the words together and capitalize the first
letter of the every word.
Class name is written at the top of the rectangle
An attribute is a property of a class. It describes a range of values that the property may hold in
objects of the class. A class may have zero or more attributes.
A one-word attribute name is written in lowercase letter. If the name consists of more
than one word, the words are joined and each word other than the first word begins with
an uppercase letter. The list of attribute names begins below a line separating them from
the class name.
In the class icon, you can specify a type for each attribute's value (string,
floating-point, number, integer, boolean or user defined types). Also you
can indicate a default value for an attribute.
An operation is something that a class can do, or that you (or naother class) can do to a class.
Like an attribute name, an operation's name is written in lowercase letter. If the name consists of
more than one word, the words are joined and each word except the first word begins with an
uppercase letter. The list of operations begins below a line separating operations from the attributes.
CSE Department,
VNRVJIET
20
www.jntuworld.com
www.jntuworld.com
Associations
When classes are connected together conceptually, that connection is called an association.
You visualize the association as a line connecting the two classes, with the name of the
association just above the line.
When one class associates with another, each one
usually plays a role within that association. You can
show those roles on the diagram by writing them near the
line next to the class that plays the role.
Association may be more complex than just one class connected to another. Several classes can
connect to one class.
Sometimes an association between two classes has to follow a rule. You indicate that rule by putting
a constraint near the association line.
Just like a class, an association
can have attributes and
operations. In this case we have an
association class.
You visualize association class the same way you show a regular class, and you use dotted line to
connect it to the association line.
Multiplicity is a special type of association which shows the number of objects from one class that
relate with a number of objects in an associated class.
One class can be relate to another in a
one-to-one
one-to-many
one-to-one or more
one-to-zero or one
one-to-a bounded interval (one-to-two through twenty)
one-to-exactly n
one-to-a set of choices (one-to-five or eight)
The UML uses an asterisk (*) to represent more and to represent many.
Sometimes, a class is in association with itself. This can happen when a class has objects that can
play a variety of roles. These associations are called reflexive associations.
Reflexive association
CSE Department,
VNRVJIET
21
www.jntuworld.com
www.jntuworld.com
modeling. The association is the fundamental conceptual connection between classes. Each
class in an association plays a role, and multiplicity specifies how many objects in one class
relate to one object in the associated class. Many types of associates are possible.
Aggregations
Sometimes a class consists of a number of component classes. This is a special type of relationship
called aggregation. The components and the class they constitute are in a part-whole association.
Aggregation is represented as a hierarchy with the "whole" class at the top, and the
component below. A line joins a whole to a component with an open diamond on the line
near the whole.
Let's take a look at the parts consisting a TV set. Every TV has a TV box, screen, speaker(s),
resistors, capatitors, transistors, ICs... and possibly a remote control. Remote control can have these
parts: resistors, capatitors, transistors, ICs, battery, keyboard and remote lights.
CSE Department,
VNRVJIET
22
www.jntuworld.com
www.jntuworld.com
An aggregation
association in the TV
Set system
Sometimes the set of possible components in an aggregation falls into an OR relationship. To model
this, you would use a constraint - the word OR within braces on a dotted line that connects the two
part-whole lines.
A composite is a strong type of aggregation. Each component in a composite can belong
to just one whole. The symbol for a composite is the same as the symbol for an
aggregation except the diamond is filled.
If you examine the human's outside you'll find out that every person has: head, body, arms and legs.
This is shown on this picture.
23
www.jntuworld.com
www.jntuworld.com
To distinguish interfaces from classes, in stereotype construct we put <<interface>> or I at the
begining of the name of any interface.
The relationship between a class and an interface is called realization. This relationship is
modeled as a dashed line with a large open triangle adjoining and pointing to the interface.
Visibility
Visibility applies to attributes or operations, and specifies the extent to which other classes can use a
given class's attributes or operations.
Three levels of visibility are possible (last symbols are used in UML classes to indicate different levels
of visibility):
public level
+
usability extends to other classes
protected level
#
usability is open only to classes that inherit from original class
private level
only the original class can use the attribute or operation
24
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
25
www.jntuworld.com
www.jntuworld.com
The most straightforward way is to organize group related use cases into a package (a tabbed
folder).
In next lesson Use Case Diagrams - Example we'll look closely to all of these relationships, to help
you understand use cases as a part of use case diagrams.
26
www.jntuworld.com
www.jntuworld.com
The postcondition here is the money in hands of the collector.
Collect money use case diagram is following:
We reached the end of our analysis for the self-service machine. Completed use case diagram (Click
for the entirely use case diagram) shows the functional requirements of the system, and we are able
to make next move - design and development.
CSE Department,
VNRVJIET
27
www.jntuworld.com
www.jntuworld.com
State Diagrams
In next lessons you'll work with elements that you haven't worked before. That would be behavioral
elements, that show how parts of a UML model change over time. As the system interacts with users
and possibly with other systems, the objects that make up the system go through necessary changes
to acommodate the interactions. If you're going to model systems, you must have a mechanism to
model change. That mechanism in UML is State diagrams.
- When you pull a switch, a light changes its state from off to on.
- When you make keystroke or mousemovement in screen saver mode on your computer, your
computer leaves screen saver mode and returns to working - active mode.
The UML State diagram presents the states an object can be in along with the transitions between
the states, and shows the starting point and endpoint of a sequence of state changes.
A state diagram shows the states of a single object.
States in the state diagram are represented with a rounded rectangle, and the symbol for
the transition is a solid arrowhead line. A solid circle stands for starting point of a
sequence of states, and bull's eye represents the endpoint.
The UML symbols in a state diagram. The top area stands for the state's
name, middle area is for state variables, and the bottom is for activities.
Transitions are represented with solid arrowhead lines, and circles are for
starting and ending state.
Also you can add details to a state icon by dividing it to a three areas. The top area holds the name of
the state (this name you must supply whatever the class is divided or not), the middle area hold state
variables (timers, counters, dates...), and the bottom area hold activities (entry-what happenes when
the system enters the state, exit-what happenes when the system leaves the state, do-what
happenes when the system is in the state).
CSE Department,
VNRVJIET
28
www.jntuworld.com
www.jntuworld.com
To add events and actions you write them near the transition line, using a slash to separate
a triggering event from an action.
Sometimes an event causes a transition without an associated action, and sometimes a transition
occurs because a state completes an activity (rather than because of an event). This type of transition
is caled triggerless transition.
Also possible is a guard condition. When it's met, the transition takes place. (For example screen
saving mode is activated when time interval of n idle minutes has passed).
Some of the states may be more complex that is represented with a rounded rectangle. It is possible
to have states inside one state. These states are called substates (sequential and concurrent).
Sequential substates come in sequences of states which occur one after another.
Concurrent substates must consist of two or more sequential substates which occur at
the same time. This is represented with dotted line between the concurent states.
If you have any problems understanding these concepts please refer to the State Diagram - Example
lesson.
The UML supplies a symbol that shows that a composite state remembers its active substate when
the object transitions out of the composite state. The symbol is
connected by a solid line to the
remembered substate, with an arrowhead that points to the substate.
A message that triggers a transition in the receiving object's state diagram is called a signal. In the
object-oriented world, sending a signal is the same as creating a signal object and transmitting it to
the receiving object. The signal object has properties that are represented as attributes. Because a
signal is an object, it's possible to create inheritance hierarchies of signals.
CSE Department,
VNRVJIET
29
www.jntuworld.com
www.jntuworld.com
Transition between working and idle state is not presented in details. To do this substates must be
added.
Sequence Diagrams
In previous lesson we learned state diagrams, which focus on the states of na object. But it's
necessary to have communication between objects. The UML sequence diagram goes the next step
and shows how objects communicate with one another over time. In this expanded field of view, you'll
include an important dimension: time. The key idea here is that interactions among objects take place
in a specified sequence, and the sequence takes time to go from beginning to end.
The sequence diagram consists of objects represented in the usual way - as named
rectangles (with the name underlined), messages represented as solid-line arroes, and
time represented as a vertical progression.
Let's take a close look at this parts of sequence diagrams.
Objects
The objects are laid out near the top of the diagram from left to right. They're arranged in any order
that simplifies the diagram. Extending downforward from each object is a dashed line called the
object's lifeline. Along the lifeline is narrow rectangle called an activation. The activation represents
an execution of an operation the object carries out. The length of the rectangle signifies the
activation's duration. This is shown on next picture.
30
www.jntuworld.com
www.jntuworld.com
Messages
A message that goes from one object to another goes from one object's lifeline to the other object's
lifeline. An object can send a message to itself-that is, from its lifeline back to its own lifeline. This is
called recursion. See recursion example.
Following table lists all of possible messages existing in the UML sequence diagrams, with their
graphical representations:
simple
The essential symbol set of the sequence diagram, with the symbols
working together.
The actor-symbol initiates the sequence, but the stick figure isn't part of the sequence
diagram symbol set.
In a sequence diagram, the objects are laid out from left to right across the top.
Each object' lifeline is a dashed line extending downward from the object. A solid
line with an arrowhead connects one lifeline to another, and represents a message
from one object to another. Time starts at the top an proceeds downward. Although an actor
typically initiates the sequence, the actor symbol isn't part of the sequence diagram's symbol
set.
Activity Diagrams
If you've ever taken an introductory course in programming, you've probably encountered the
flowchart. The flowchart shows a sequence of steps, processes, decision points and branches.
Novice programmers are encouraged to use flowcharts to conceptualize problems and derive
solutions.
The UML activity diagram is much like the flowcharts of old. It shows steps (called, appropriately
enough, activities) as well as decision points and branches. It's useful for showing what happens in a
business process or an operation. You'll wind it an integral part of system analysis.
First and foremost, an activity diagram is designed to be a simplified look at what happens during an
operation or a process. It's an extension of the state diagram. The state diagram shows the states of
an object and represents activities as arrows connecting the states. The activity diagram highlight the
activities.
Each activity is represented by a rounded rectangle - narrower and more oval-shaped
than the state icon. The processing within an activity goes to completion and then an
automatic transmission to the next activity occurs. An arrow represents the transition from
one activity to the next. Also an activity diagram has a strating point represented by filled-in circle,
and endpoint represented by a bull's eye.
CSE Department,
VNRVJIET
31
www.jntuworld.com
www.jntuworld.com
Transition from one activity to another in the Activity Diagram
In next lesson will be explained ways of creating an activity diagram, rules between activities, and at
the end an example for this diagram will be given to you.
The activity diagram is an extension of the state diagram. State diagrams
highlight states and represent activities as arrows between states. Activity
diagrams put the spotlight on the activities. Each activity is represented as a
rounded rectangle, more oval in appearance than the state icon. The activity diagram uses the
same symbols as the state diagram for the startpoint and the endpoint.
CSE Department,
VNRVJIET
32
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
33
www.jntuworld.com
www.jntuworld.com
If you're dealing with computer programming you will conclude that this activity diagram is very similar
with a procedure (function) that computes factoriels.
34
www.jntuworld.com
www.jntuworld.com
3 Execution components, created as result of a running system
Instead of representing a conceptual entity such as a class or a state, a
component diagram represents a real-world item - a software component.
Software components reside in computers, not in the minds of analysts.
A component is accessible trough its interface. The relation between a component and its
interface is called realization. When one component access the services of another, it uses an
import interface. the component that realizes the interface with those services provides an
export interface.
Collaboration Diagrams
Collaboration diagrams like the sequence diagrams, shows how objects interact. It shows the objects
along with the messages that travel from one to another. But, if sequence diagram does that, why
UML need another diagram? Don't they do the same thing?
The sequence diagram and the collaboration diagram are similar. They're semantically
equivalent, that is, the present the same information, and you can turn a sequence to a
collaboration diagram and vice versa. The main distinction between them is that the
sequence diagram is arranged according to time, the collaboration diagram according to space.
A collaboration diagram is an extension of object diagram. In addition to the associations among
objects, collaboration diagram shows the messages the objects send each other.
Messages among objects are represented with arrows that points to receiving object, near
the association line between two objects. A label near the arrow shows what the message
is. The message typically tells the receiving object to execute one of its operations. A pair
of parentheses ends the message. Inside the parentheses, you put the parameters the opearation
works on.
Collaboration diagrams can be turned into sequence diagrams and vice versa. Thus, you have to be
able to represent sequence information in a collaboration diagram. To do this you must know that:
Add a number to the label of a message, with the number corresponding to the message's
order in the sequence. A colon separates the number from the message.
This is the basis of collaboration diagrams. In addition next two lessons will describe the process of
writing collaboration diagrams.
35
www.jntuworld.com
www.jntuworld.com
But when we examined this machine and its work in detail, new scenarios were introduced: incorectamount-of-money and out-of-product scenario. While building the sequence diagrams, conditions
were introduced to display the work of the machine. Here conditions will be used too.
You put the condition inside a pair of square brackets, and the condition precedes the message-label.
The important thing is to coordinate the conditions with the numbering. When you're modeling if
statement there are two possible conditions. Messages for these conditions have a same number,
and you add a decimal point and another number. This is called nesting.
In out-of-product scenario, the machine has to display an out of product message, and prompt the
customer for another product or return the money back. If customer makes another selection this
CSE Department,
VNRVJIET
36
www.jntuworld.com
www.jntuworld.com
process must be repeated. Also a correct-amount-of-money scenario may be introduced.
Collaboration diagram for this case is shown on the picture:
As you can see, from this picture two possible scenarios may happen. Out-of-product and Product-in
are that two possibilities. If we assume that this happened after message 1:add(input,selection), the
number for this messages will be 2, and we add 1 for the Product-in and 2 for the out-of-product
scenarios, after the decimal point.
What happens when the machine doesn't have the correct change? The machine has to display an
out of change message, return the money, and prompt the customer for the correct change. In effect,
the transaction is over. When the machine has the correct change, it returns the change to the
customer and delivers selected product.
Two branches that are produced from nesting process are numbered with 2.1 and 2.2. And three
posibilities in condition-message 3 will be:3.1, 3.2 and 3.3. Collaboration diagram is shown on the
following picture:
Thats all for this example, and for this day. All you have to do now is answering the questions given in
Questions & Answers and Workshop part from this day. Next day will introduce to you the last three
UML diagrams.
Component Diagrams
A component diagram contains components, interfaces and relationships. Also other types of
symbols that you've already learned can also appear in a component diagram.
The component diagram's main icon is a rectangle that has two rectangles overlaid on its
left side. You put the name of the component inside the icon. The name is string. If the
component is a member of a package, you can prefix the component's name with the
name of the package.
37
www.jntuworld.com
www.jntuworld.com
vizualize realization.Other way to represent interface is as a small circle connected to the component
by a solid line, which represents a realization relationship.
Interface can be represented as a rectangle containing
information, connected to the component by a realization
arrow
Interface is a small circle, connected to the component with a
solid line, wich stands for realization
As you can see this UML Music Player needs these controls:
play
stop
eject
pause
fast forward
rewind
power
These controls will be realized by buttons, thus we'll have a button performing these controls. If we
look at buttons as separete components, we can draw out a component UML diagram. This is shown
on the following picture:
CSE Department,
VNRVJIET
38
www.jntuworld.com
www.jntuworld.com
Deployment Diagrams
We reached the end of the UML diagrams. Now it's perfect time to look at the hardware. As you can
see, we moved from items that live in analysis, to components that live in computers, to hardware that
lives in the real world.
Hardware, of course, is a prime topic in a multicomponent system. A solid blueprint for hardware
deployment is essential to system design. The UML provides you with symbols for creating a clear
picture of how the final hardware setup should look.
The main hardware item is a node, a generic name for any kind of computing resource. Two types of
nodes are possible. A processor is a node that can execute a component, and a device that can't
execute a component. A device typically interfaces in some way with the outside world.
In the UML a cube represent a node. Node has its name, and you can use a stereotype to
indicate the type of resource it is. If a node is a part of package, then and the name of
package preceeds the name of the node. A line joining the two cubes represents a
connection between two nodes. You can use a stereotype to provide information about the
connection.
The cube is representation of a node in the UML
Also every node deployes some of software components in the system. To indicate deployed
components, you show them in dependency relationships with a node.
Let's build a deployment diagram for a home computer system. Computer consists of these hardware
elements: CPU, monitor, printer, mouse, keyboard. And installed software components: Windows98,
Office98, InternetExplorer4, FrontPage, DOS, NortonCommander, TurboPascal.
39
www.jntuworld.com
www.jntuworld.com
The thin ethernet is a popular type of network. It is used in local places eg.rooms or buildings, where
connecting cable can be placed. There are some mathematics calculations for the length of the cable
of all the network, and length of cable from computer to computer. These calculation for the
deployment diagram are not important.
Computers connect to a network cable via connection devices called Tconnectors, or sometimes vampire-taps are used. T-connector has three
connecting points. Its form is similar with T-letter and thats why their name
cames from. Network cable goes from one end-point to the other end-point
of the connector, and the third end-point has a cable going to the computer.
Because length of the network is limited, ending points of the cable must have a devices called
terminators, which gave infinite resistance to the end of cable. Also one network segment may join
another via a repeater. The repeater is a device which amplifies the signal to reduce losing of signal.
The thin Ethernet is represented on the following
picture:
When we get familiar with the thin Ethernet network concept let's draw the deployment diagram for it.
This diagram wil look like:
CSE Department,
VNRVJIET
40
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
41
www.jntuworld.com
www.jntuworld.com
Behavioral Elements
Relationships
Grouping
Extension
42
www.jntuworld.com
www.jntuworld.com
In the following text A will stand for Analyst and C for the client.
A Let's start with the work. Tell me what's happening when a customer enters in your library?
C He or she goes to the corridor where data search can be done. After selection of which books or
journals to lend, the customer goes to the place where he or she can take the sample of that book
or journal.
A You said data search. What kind of data?
C There is main data record for every book, author or journal, sorted alphabetically. Every record
consist of different data according to type of the product: (book or journal). These records are
printed on paper cards, and they are putted on different folders. Access to these records can be
done also by computer terminals which can be found in the corridor.
A That means that your library is computerized. Why using a computers and a paper records?
C As we live in hi-technological era, we must to follow time steps. Computers were introduced few
years ago, but paper records are here since the library was built. Also some impatient customers,
can use them if all of the computer terminals are occupied.
A Are the same data put in the paper records and in the computer records?
C Yes. All of old data from paper records is converted to computer records, and new data that we
write in paper cards also is writen in electronic format.
A Where is your database located on?
C Our database is located on a computer server. This server is a heart of our local area network - all
of the terminals located in our library.
A Let's backtrack to the data. You said that same data is stored in the electronic format and in the
paper format. Next in our conversation we can refer to these with same name, let's say index.
C I agree.
A When we talk about index, what kind of information is necessary to perform a search?
C Data for the books and for the journals is very similar. Both have ISBN-the unique number for
every book/journal, title, publishing year, publishing house, but books have author and genre, and
journals have volume and area. For the data search are usefull ISBNs, titles, authors, genres,
volumes and areas. Retreived results specifies the type of the books or journals.
A Just a second. What are the kinds of books and journals?
C Except paper books and journals, electronic books and journals are supperted in our library.
A Electronic books and journals. How do you manage these types of items (books / journals)?
C The server we had is used for storage of these types of items. We produced some of the
electronic items, but also in our database we have Internet addresses from electronic books or
journals from other libraries we used to cooperate.
A You have a lot of ammount of data. Is everyone concerned with data input and data maintenance?
C We have employees to do this.
A You said employees. I think that they are not parts from this conversation for now. We will talk
about them later. The customers are not finished yet. Before going to the process of lending let's
assume what we have at this point of interview, things come clearer to me now. Every customer
can perform a data search for the books or journals. Electronic formats of books retrived from the
search, can be accessed imidiately. Paper formats can be lended if there is a free sample.
Now you may go to the process of lending.
C At the begining, I've stress out that user who is in the library after data search can perform a
lending. Lending can be done if books or journals are in paper format, and it's done in the lending
area in the library. Searched books or journals can be given to the user if free samples of them are
in the library.
A Let's look at the both cases - present and not present sample of the book/journal. What is the flow
of events?
CSE Department,
VNRVJIET
43
www.jntuworld.com
www.jntuworld.com
C When sample is not present, the user can make a reservation for it. After that library must inform
the user for a free sample, when one is set free. User, than should go the the library and make a
lending for that sample. I must say that free sample is kept for the user few weeks after informing
it.
A What if there is a free sample?
C In that case emloyee who is concerned with lending (let's say - lender), must check the users data
to see if user is a library member or not. If the user is a library member, he or she takes the ISBN
of lended books or journals and personal data for the user, and writes them in the lending record.
Also a date is writen in this record, which is stored in the lending database. Every user has a limit
of books/journals to lend, and also there is a limit for time keeping of books/journals.
A Do you allow employees to lend books or journals?
C Yes we do. Every employee in our library has the same record as members. That we have lending
records for employees too.
A You said that lending records are stored in a lending database. Is this a work of "lender" or
someone else do this?
C Our local network doesn't consists only from searh terminals. A "lender" also has a terminal from
which he or she can check for user data and free samples. Also a quick reports can be done to
see which users have books to return.
A Wait a minute. Our conversation gone in other direction. We started to talk about employee's
duties, we didn't finished with the customers. Let's see to made a lending a free sample of the
book or journal can be present in the library, and a lending record is produced after it.
C That's it. I'll stress again that only paper formats can be lended, because they have a samples.
Electonic formats of books and journal doesn't have a samples. In other words they have infinite
number of samples, or they are present in the library everytime.
A Is it possible to have no present samples of books or journals from searched user's list? Can users
ask a lender to recommend them a book or journal?
C Certainly lender can take a brief look at the user's history of lended books and journals, and if he
or she had read a books or journals from the user's interest areas, then he or she can recommend
something to the user. User can accept that or not.
A This will be all for now. I think that user's diagram is done, and we can take a look at it:
CSE Department,
VNRVJIET
44
www.jntuworld.com
www.jntuworld.com
45
www.jntuworld.com
www.jntuworld.com
A
C
A
C
A
C
A
C
A
C
A
C
A
C
A
C
A
C
A
CSE Department,
VNRVJIET
46
www.jntuworld.com
www.jntuworld.com
storage room).
A Do you think that we have finished the employee's analysis?
C Sure. We reached the end. I hope that all my spelling out all the steps in library work, makes
clearer view to you about libraries like ours.
CSE Department,
VNRVJIET
47
www.jntuworld.com
www.jntuworld.com
The Data Entry Clerk's Activity diagram extracted from the interview
Domain Analysis
Before haveing additional interviews, the development team first must work within the context of the
business-process interview. This is the job of an object modeler. The objective is to produce initial
class diagram.
The object modeler looks for nouns, verbs and verb phrases. Some of the nouns will
become classes in the model, some will become attributes. The verb and verb phrases
can become operations or the labels of associations.
Let's put ourselves in the role of the modeler and start developing the class diagram. From the client's
interview we can filtered out these nouns:
Move your mouse over the word list and you'll see what nouns from the list can be eliminated as an attributes, synonyms with other nouns, and
nouns that represent classes out of the domain's scope.
CSE Department,
VNRVJIET
48
www.jntuworld.com
www.jntuworld.com
And these verbs:
go, search, lend, take, sort, print, put, do, has, have, convert, write, manage, access, read,
preview, take a sample, reserve, give, inform, make, set free, check the data, recommend,
post, buy, operate, maintain, conclude, browse, input
Now we'll try to form some meaningful groups of nouns.
One group consists of people: member, author, employee, lender, DatabaseSpecialist, DataEntry
clerk. This group could stand some subdivision because everyone except the member and author are
employees.
Another group consists of library's items like books, journals, samples, reservation, lending.
Third group consists of areas within the library: corridor, lending area, reception place.
In forth group may be these nouns: member's card, data record, paper card, multimedia data, lending
record.
Forming Associations
Now we'll create and label associations between some of the classes. The verbs and verb phrases
can help us with the labeling, but we won't limit ourselves to the ones from the interview.
Labels that are somewhat more descriptive might suggest themselves.
Let's start with the member first. Let's label the associations by generating phrases that characterize
the associations. Here are some phrases that immidiately come to mind:
The member searches the paper cards or data records.
The member goes to the lending place.
The member lends a sample.
The member makes a reservation.
The members takes a sample.
The member browse the multimedia data.
The member goes to the reception area.
The member prints the electronic item.
When we labeled out the associations, we can put multiplicities into associations lines. After this
customer's class will look like this:
CSE Department,
VNRVJIET
49
www.jntuworld.com
www.jntuworld.com
50
www.jntuworld.com
www.jntuworld.com
The lender lends an item to the member.
The DataEntry clerk enters data for the books.
The DataEntry clerk enters data for the journals.
The DataEntry clerk enters data for the authors.
The DataEntry clerk enters data for the members.
The DataEntry clerk enters data for the samples.
After filling out associations names and multiplicities, the lender's and DataEntry clerk's classes will
be:
CSE Department,
VNRVJIET
51
www.jntuworld.com
www.jntuworld.com
List of attributes
name
lastname
address
date of birdth
place of living
PersonalRegistrationNumber
telephone
e-mail
memberID
The member class now will look as:
List of operations
newMember()
search()
lend()
reserve()
List of operations
createAuthor()
bookReference()
52
www.jntuworld.com
www.jntuworld.com
telephone
newSample()
e-mail
sendReport()
memberID
newMultimedia()
employee
The structure of the Employee class with its subclasses is given on the following picture:
53
www.jntuworld.com
www.jntuworld.com
only two attributes (in this moment) - signature and status (lended or free), and one operation
newSample(). The Sample class is present on next picture:
54
www.jntuworld.com
www.jntuworld.com
Analyst
What about multimedia data? It was said that for some of the books, journals or authors
multimedia data is supported.
Modeler
It's a perfect time to introduce a new class in our class diagram - Multimedia. For that
purpose, Multimedia class will have two attributes type (text, audio, video or picture) and
file (physical location of the multimedia file) and one operation - newMultimedia().
Facilitator Analyst are you satisfied?
Analyst
I agree. Now things comes clearer to me. Every part of the puzzle is putted on its place.
Modeler
Here's another possibility. Look carefuly at the Book and the Journal classes. Both are
haveing common attributes like ISBN, title, publishing year, publishing house, number of
samples. They are differing in author and genre data for the book, and volume and area
data for the journal. This is perfect situation for a new inheritance. Common attributes
can be putted in new parent class, let's say Item. Also in this new class some of the
operations can take place like: freeSamples(), makeLending() and makeReservation().
With this we can save memory space in our database.
Facilitator I'm glad that we're making some optimization. Before going to the next steps, san I
suggest you to look at new classes?
(All agree)
Modeler
During reservation process or lending process, current date must be somewhere stored.
In our class diagram I don't see place in the classes where this data is stored. Please tell
me where do you put information about date of lending and date of reservation?
According to many-to-many association between the Sample class and the Member
class, we are supposed to add a new class for that association holding the intersection
data for that association. Right here we can add two new classes, the Reservation and
the Lending. Here date of reservation and date of lending can take place. Also in the
Reservation class an attribute for timeLimit of the reservation can be added. This is
necessary for calculating the time period of holding a reservation to the member. These
new classes are given in the following pictures
CSE Department,
VNRVJIET
55
www.jntuworld.com
www.jntuworld.com
Allright. For this moment I think that we've resolved all the problems about classes. Now,
can we move on to some ideas about what the system should specifically do?
Facilitator Sure. Ideas everyone?
Member
I think that this sytem will be more productive if we, the members, can access to all the
data in the library from home. Sometimes, when I go to the library with tought to lend
some book that I realy need, I hear the Lender's words: "Sory, but we're out of free
samples for that book. Can I recommend you something else?". In that moment I'm
saying into me: "My chef will kill me. I spent so much time and I didn't finished my work. I
hope that there will be a little bit crowd in traffic."
Analyst
Yes. Our system has to somehow keep the members from walking to the library so much.
Obviously they have to go to the library when they made a reservation from their home
and a free sample is holded for them. Also a lending process can be done if a member is
present in the library.
System
I think we're onto something. We can allow members to access to the library's LAN
Engineer directly from their homes or work offices, using the global network - Internet. Then the
information would move around very quickly. Also I heed to tell you that our system will
cooperate with library's LAN, but new software will be implemented everywhere.
Analyst
The system you're talking about would resolve a number of issues. Like data search from
home and makeing a reservation for a book or journal from your home or office. I'll have
a feeling that I'm in the library and using their local area network and I don't care for a
free terminal.
Member
That's beautifull. When I have a lot of work to do, I can turn on my computer, make a
connection with the library and search the data to find out a free sample of books or
journals I need to lend. But from library's network I can't make a reservation for a book of
journal. How can I make a reservation from my home or office?
System
We are going to implement a Web interface that allows you to access data stored in the
Engineer library's database, and allows you to make a reservation from your home or office by
clicking a button that sends a message from your computer with your personal data and
book's data that you want to reserve. This message will open a new reservation record in
our database holding the data until you get your reservation, or time limit is oversteped.
Member
But how can my computer know my personal data?
System
First of all, Web interface can be used only be library's members. In our class diagram we
Engineer have memberID - number printed on your member's card with all the neccesary personal
data. When you search the data you make a selection of books/journals to reserve. This
list is also sent when you click the button. But if you aren't a member in the library, first
that you must do is to make a library's membership.
Librarian Is it possible some of our employees to access the system if they aren't present in the
library too?
System
Of course. Data entry clerks can do their job even if they are not present in their work
Engineer offices. They can access the database data from every place in the world that has a
computer and Internet connection.
Librarian How are you going to make this happen?
System
Let's don't worry about that right now. Very soon you'll find out how this will be realized.
Engineer
Facilitator So we're all set, then? Our system will incorporate the library's local area network and
Internet. Now is time to give a name for our system.
System
How about Digital Library.
CSE Department,
VNRVJIET
56
www.jntuworld.com
www.jntuworld.com
Engineer
Facilitator Can we all agree with Digital Library?
(All agree)
Facilitator Okay. I think our work here is done.
JAD Session
Now that the team has a vision for the system, can the programmers program and the system
engineers engineer? Absolutely not. The team must center the Digital Library system around the
user's needs, not around nifty technology. Altough they have a few insights from the team meeting,
they haven't exposed the Digital Library concept to a group of employees and end users - the
members, to get feedback and ideas from the user's point of view. The next GRAPPLE action does
just that. In a Joint Application Development session, the team will gather and document system
requirements.
The JAD session takes place in conference room. Led by a facilitator, it's called a joint
because it includes members of the development team along with potencial system users
and domain experts. The development team members are analyst, a modeler, two
programmers and a system engineer. The potential users are two members, a lender, two data entry
clerks and a librarian. This meeting will produce a package diagram that shows the major functionality
of the system.
This session starts with a facilitator's speech about the Digital Library concept. The structure of a
Digital Library system is represented on this picture, which is given to all the participants in the
meeting.
CSE Department,
VNRVJIET
57
www.jntuworld.com
www.jntuworld.com
58
www.jntuworld.com
www.jntuworld.com
The sample package use cases:
add new sample
receive a request for free samples
set it free
return number of free samples
edit data for an existing sample
The reservation package use cases:
receive a request for reservation
transmit a reservation result to the member
perform a reservation
delete a reservation
The lending package use cases:
receive a request for new lending
receive a request for returning a lending
perform a lending
return a lending
transmit a lending result to the lender and
transmit a result to the lender
book
delete lending
check for reservations
receive oldest reservation
transmit information for reservations
The author package use cases:
enter new author
receive request for author's data
edit old author's data
transmit data to the book
The lender package use cases:
enter new lending
perform a lending return
receive notification from lending
receive a result from returning a lending
For exercise try adding the use cases in DataEntry clerk package, Multimedia package, and to the
Journal package.
Click here to see how will look our functionality package diagram filled with use cases!
CSE Department,
VNRVJIET
59
www.jntuworld.com
www.jntuworld.com
In a JAD session, the development team meets with potential users and domain
experts to gather the requirements for the system. The result is a package
diagram in wich each package represent a major piece of functionality. Use
cases inside a package elaborate on the functionality.
60
www.jntuworld.com
www.jntuworld.com
Digital Library system start to materialize. At this point in the development effort, the system begins to
take center stage.
To analyze the use cases, we have to run another JAD session. The discussion in this JAD
session is intended to derive analysis for each use case.
The use case JAD session is usually the most difficult one, as it calls for the participants - potential
users of the finished system - to become analysts. In their own niche, each one is a domain expert,
and you have to tap into their expertise. Typically, they're not used to either verbalizing or analyzing
what they know. It's also probably true that they haven't been part of a system design effort before,
and they may be uncomfortable with trying to specify what a system should do to help them do their
work.
The system-related steps in the scenario are extremely important. They'll show how the
system is supposed to work. When the JAD session participants tell us these steps, they're
telling us, in efect, what the system will ultimately look like. After this JAD session, we should
have a good idea about the components of the system.
In Introducing a Use Case Model lesson in DAY 2, we see that each use case is a sequence of
scenarios, and each scenarion is a sequence of steps. For each scenario in each use case, we'll want
to show:
A brief description of the scenario
Assumptions for the scenario
The actor who initiates the use case
Preconditions for the use case
System-related steps in the scenario
Postconditions when the scenario is complete
The actor who benefits from the use case
Use cases that we're going to examine are numerous. That's why when we're performing an use case
analysis number of them will be examined in detail, and the rest of them will be given to you as an
exercise. Now let's dive into process of analysis the use case.
The Member's package of use cases developed in earlier stages of the system analysis
- Enter data for searching
CSE Department,
VNRVJIET
61
www.jntuworld.com
www.jntuworld.com
The good-one sentence description for this use case may be: The member enters a data for
serching into search form.
Here initialing actor will be Member, which is also a benefiting actor.
The assumptions are that a member wants to find out books or journals. Another assumption is that
the Digital Library's interface has a form dedicated for search data entry.
The precondition is that a member has a necessary data to make a search. The postcondition is that
a member enters necessary data into Digital Library.
The steps in the use case are:
From the Library's LAN or from home/office, the member activates the user interface for search
entry.
The search form appears on the screen.
The member enters necessary data patterns into search form.
- Transmit data for searching
The description for this use case may be: Take a data pattern entered in search form, and send it
to the Digital Library's database search engine.
The assumptions are that we have communication via the Internet or library's LAN, and we have a
search form in the member's interface.
We must make repetitions of some of the assumptions, because each use case will
eventually appear on a separate page in the design document, which will serve as a
reference about the system.
The precondition is entered data pattern in search form, the postcondition is that the data pattern has
arrived in the Digital Library database search engine.
The steps in the use case are:
Click on the SUBMIT button on the search form.
Activate the transmiting mechanizam for data in network(s).
The data pattern arrives in Digital Library database search engine.
On the member's screen appears a message that data has been sent, and to wait a moment
during receiveing the data.
Because this use case is related to the previous one, we must make a change to the Member
package. It has to show <<include>> dependency between this one and "Enter data for searching"
use case.
- Take a list of searched items
This one use case is the last part for completion the searching process. Description here is: Receive
a list of book or journals, after entering a data in search form and send it to the Digital Library
database.
The assumptions are that a member uses a search form, and a communication via network(s) is
good.
The precondition is clicked SUBMIT button on search form, and the postcondition is printed list of
items on the member's screen. The actor here again is Member.
The steps of this use case are:
Wait until search is performed (in paralell a Digital Library search engine performs a search).
Digital Library database transmits a list of items to the member's interface via the network(s).
The member receives a list of items satisfying entered search-data pattern.
Inclusion also appears in this use case. <<include>> joins this use case with the previous one.
- Make reservation
CSE Department,
VNRVJIET
62
www.jntuworld.com
www.jntuworld.com
Description for this use case will be: The member wants to make a reservation for the item
gained from searching process or recommendation process.
As you can see this use case depends on two different use cases - search and recommendation.
Thus reservation process may take place only when one of these two processes take turn. Thats
because an inclusion is presented between these three use cases.
The assumptions are a list of items, and a button for reservation.
The precondition is clicked RESERVE button, and a postcondition is transmited reservation record to
the Digital Library.
The steps of this use case are:
The member receives a list of items (from searching or from recommendation)
The member clicks the RESERVE button for the items that he or she wants to reserve
The member fills in the information in the form that appears for the reservation
- Transmit reservation
This use case wouldn't be explained in detail, because it is almost the same with the "transmit the
data for searching" use case. Only we'll say that this use case is related with "make reservation" and
"receive notification" use cases. The connection is <<include>>.
- Receive notification
Description is: After pressing the SUBMIT button in the reservation form, a notification from the
Digital Library must arrive that the reservation has been accepted, and infrom the member
with the status of reservation.
Here status of reservation is for haveing or not a free sample for reserved item. If a free sample is
present how many weeks it'll be holded for the member.
The assumptions are good communication in the network(s) and clicked SUBMIT button.
The precondition is clicked SUBMIT button, and a postcondition is received status of reservation
The steps of this use case are:
Wait until notification is received
Transmit the necessary information via the network to the member's interface
Members receives the status of reservation
- Take a list of recommended items
Description is: The member activates the recommendation part of the system, and gets a list of
recommended items
The assumptions are clicking the RECOMMEND button, and a working recommendation algorithm.
The precondition is clicked RECOMMEND button, and a postcondition is received list of items.
The initiating and benefiting actor is Member.
The steps of this use case are:
Activate the recommendation part from the user's interface.
The Digital Library activates a recommendation algorithm which produces a list of items.
Print this list of items to the member's screen.
CSE Department,
VNRVJIET
63
www.jntuworld.com
www.jntuworld.com
The Book package of use cases developed in earlier stages of the system analysis
- Enter data for a new book
Description: Fill in the data in book's entry form.
Initialing actor is DataEntry clerk.
Assumptions: Activated entry form in the DataEntry clerk's interface, and entered information.
Precondition is new book's data.
Postcondition is entered data into Digital Library database.
The steps are:
From the library's LAN or from internet the DataEntry clerk activates an interface for a book's
entry.
The form appears on the screen.
CSE Department,
VNRVJIET
64
www.jntuworld.com
www.jntuworld.com
The clerk enters necessary information.
- Select an author
Description: Select a book's author from the author list.
Initialing actor is DataEntry clerk.
Assumptions: There are author records in the database, and user makes a selection from that list.
Precondition is book's author data.
Postcondition is selected author's data.
The steps are:
In data entry form for the book, a clerk selects one author from the list of authors.
This information is send to the database.
Searching is performed into the database for that information.
An inclusion may be introduced here. This use case includes steps from "edit data for an existing
book" use case and from "enter data for a new book" use case.
- Retreive author's data
Description: Receive all the necessary information about the selected author in previous use
case.
Assumptions: User has made a selection from the author's list.
Precondition is selected author.
Postcondition is retreived author's information.
The steps are:
After searching, database selects the record for that author and extracts necessary information
about the author.
Sends that information to the book's data entry form.
Prints the information onto the user's screen.
This use case includes the "select an author" use case.
- Enter multimedia data
Description: If the book has a multimedia data, then it is entered into the book's record.
Assumptions: Book has a multimedia data, and a multimedia file(s) is(are) saved somewhere in the
server.
Precondition is book has a multimedia data and a MMEDIA button is clicked.
Postcondition is entered multimedia data.
The steps are:
If book has a multimedia data, a MMEDIA button is clicked, and a entry form appears on the
screen.
User enters type of multimedia data, and a location on the server where that data is saved.
SUBMIT button is clicked and multimedia record is transmited to the database.
An inclusion may be introduced here. This use case includes steps from "edit data for an existing
book" use case and from "enter data for a new book" use case.
- Receive notification from multimedia adding
Description: After filling the multimedia entry form, database sends a message how succesfull
was performed a process of adding new multimedia data.
Assumptions: Filled multimedia data entry form, good communication via network, and existing
multimedia file.
Precondition is transmited multimedia entry form to the database.
CSE Department,
VNRVJIET
65
www.jntuworld.com
www.jntuworld.com
Postcondition is received status of this transaction.
The steps are:
The multimedia data arrives into the database, and a process of creation of new record is
started.
This process may finish with a result, or may end with failure.
The type of ending of the creation process is returned to the book's data entry form.
This use case is inclusion of previous one - "enter multimedia data" use case.
- Edit data for an existing book
Description: If a wrong information is entered for some book, it is possible to change that
information.
Assumptions: Existing book's record for changeing, and clicked EDIT button.
Precondition is false entered information into book's record.
Postcondition is changed book's record.
The steps are:
User clicks the EDIT button and filled form with the old book's information appears on the screen.
False information is selected and changed.
If an author's information or multimedia information has to be changed, the same process like
entering new data is repeated.
- Make a reservation
Description: Member wants to reserve a sample for the book, and after that a lending can be
performed in the library.
Assumptions: Book must be present in the retreived list of books during the search or
recommendation process, books must have samples present in the library.
Precondition is Member wants to make a reservation for a book.
Postcondition is book's necessary data and member's necessary data are transfered to the Digital
Library.
The steps are:
Member clicks the RESERVE button and fills in the necessary information to perform a
reservation.
The Digital Library database receives request for reservation.
The steps of checking the data with database records are made.
Digital Library checks for free samples, and performs a new reservation.
After that a wait period is introduced, while the notification from the reservation is achieved.
- Receive notification from reservation
Description: After clicking the RESERVE button, and filling the form, Digital Library receives a
request for a reservation, and after performing a reservation process, a status message is
received.
Assumptions: RESERVE button, and sent request for reservation.
Precondition is clicked RESERVE button.
Postcondition is reservation status.
The steps are:
The status of performing a new reservation is achieved.
This status is sent trough the network to the user.
Meggase about status of reservation is printed on the screen.
This use case includes "make a reservation" use case.
CSE Department,
VNRVJIET
66
www.jntuworld.com
www.jntuworld.com
- Check for free samples
Description: Count how many samples from that book are available, and return that number to
the reservation process.
Assumptions: request for reservation, sample(s) for the book.
Precondition is new reservation.
Postcondition is number of free samples
The steps are:
Receive a request for a number of free samples.
Count the available samples (those one with status="available").
Sent that number to the Digital Library.
This use case includes "make a reservation" use case.
- Return number of free samples
Description: Gives a number of free samples.
Assumptions: samples of that book, request for number of free samples.
Precondition is request for number of samples.
Postcondition is transmiting the number of free samples
The steps are:
Receive the transmited number of free samples.
Check the result to determine the reservation status.
Transmit the reservation status to the Digital Library.
This use case includes "check for free samples" use case.
- Make a lending
Description: Member wants to lend a book.
Assumptions: user must be present in the library, book must be in paper form, a free sample for the
book must be available.
Initiatin actor is Lender and benefiting actor is Member.
Precondition is request for lending.
Postcondition is transmited lending request to the Digital Library.
The steps are:
Lender activates interface for makeing and returning a lending.
Lender enters data for the sample and the member in the lending data entry form.
After pressing the LEND button a new lending process is activated.
- Receive notification for lending
Description: After pressing the LEND button in the lending form, a new reservation record is
writen to the database, and the result of this transaction is returned to the lender's interface.
Assumptions: communication via network, and LEND button present in the interface.
Precondition is entered data in lending form.
Postcondition is status of performed transaction.
The steps are:
Wait until lending process ends, and receive a lending result status.
Transmit the status via network to the lender's screen.
If there are free samples, member gets one.
This use case includes "make a lending" use case.
Another use cases related to the lending process are:
CSE Department,
VNRVJIET
67
www.jntuworld.com
www.jntuworld.com
Receive number This use case take place when new lending record is created. If a book has a
of reservations pending reservations (free samples with status="reserved" are available), and
no free samples with status="available" are present, then lending process must
fail.
Check for
If a member has a reservation for a book's sample, then if a holded sample is
reservation
available, the member takes that sample, else a lending process will fail.
Find out the
This use case is used in the process of updating reservation records. When a
oldest
member make a request for a reservation and there is no free sample, then
reservation
when only one sample is set free, this use case take place and finds out the
oldest reservation for that book, and sets the sample's status from "available" to
"reserved". Sample can be set free when it is returned from a user who lends it.
Inclusions that appears here are between: "make a lending" and a "check for reservation" use cases;
"make a lending" and a "receive number of reservations" use cases.
CSE Department,
VNRVJIET
68
www.jntuworld.com
www.jntuworld.com
New operations for the Item class can be introduced according to the previous use case analysis.
This operations are findOutTheOldestReservation(), checkForReservation() and
receiveNumberOfReservations(), and they are described in previous lesson.
If we take a look at Member class attributes, Employee class attributes and an Author class atributes,
we'll see that most of them are comon for these three classes. Therefore an inheritance may be
introduced. We will create hew class Person wich will hold name, lastname and date of birdth
attributes.
Description for classes is not longer necessary, because you are going to see all the classes with
their last and final state. They are presented in the following list of classes.
The Multimedia
class
The Reservation
class
CSE Department,
VNRVJIET
69
www.jntuworld.com
www.jntuworld.com
70
www.jntuworld.com
www.jntuworld.com
1 Activate the recommendation part from the member's interface.
2 After clicking the RECOMMEND button on the interface, a signal is sent to the Digital Library, to
activate the recommendation algorithm.
3 The Digital Library activates a recommendation algorithm* which produces a list of
recommended books.
4 The Digital Library sends this list of books to the member's interface.
5 Print this list of items to the member's screen.
* For the purpose of Digital Library a special algorithm for recommendation is developed. If you need some detailed information about this algorithm
please refer to the webmaster of this course.
To activate the reservation process, a RESERVE button must be obtained beyond every item in the
list. Pressing this button another use case sequence is activated. This sequence includes "make
reservation" use case, "transmit reservation" use case, and "receive notification" use case. The steps
for everyone use case are given in following tables:
- Make reservation
1
2
3
4
- Transmit reservation
1
2
3
4
CSE Department,
VNRVJIET
71
www.jntuworld.com
www.jntuworld.com
72
www.jntuworld.com
www.jntuworld.com
3 The lender enters the necessary data.
4 Lending data are transmited to the Digital Library
- Transmit lending data
1 The lender clicks the SUBMIT button on the lending form, and lending data is sent to the Digital
Library
2 The Digital Library receives this data, and a request for new lending is sent to the Lending
database
3 The request is sent to the Lending database, and an acknowledge is waited to receive
When data is transmited to the Lending database, a mechanizam for adding a new record in the
database is activated. This operation incorporates these use cases located in the Lending package:
"receive request for new lending", "perform a lending" and "transmit lending result". When performing
a lending, also results from the Book package use cases are obtained. This process needs results for
pending reservation made by that member for that book, and this will be done only if a result from
"receive number of reservations" use case is not equal to zero. Checking for pending reservations is
necessary, because if a reservation is made for a book ( a sample for that book is holded for the
member), then when a lending is done, that reservation from Reservation database must be deleted.
- Receive request for new lending
1 The Lending database receives a request for performing a process of creating a new record
2 This activates the process of creating and adding a new record to the database
- Perform a lending
1 Database has activated its mechanizams for creating a new record
2 The result of creation a new record is aimed
3 This result is sent to the Digital Library
- Transmit lending result
1 Result from lending is sent to the Digital Library
2 This result is transmited to the lender's interface
Now we can continue with use cases from the Book package:
- Receive notification from lending
1 Lender's interface has received result from lending
2 This result is decoded, and a message is printed on a screen
3 A request for current state in the member's lending record is sent to the Lending database
4 A list of records is retreived form the Lending database
5 This list is printed on the lender's screen
The sequence diagram for these use cases steps is shown on the next picture:
CSE Department,
VNRVJIET
73
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
74
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
75
www.jntuworld.com
www.jntuworld.com
76
www.jntuworld.com
www.jntuworld.com
column to the right of the information or in a row below and to the right of the information. This is
consistent with the natural tendency to read left to right. If one of the buttons is a default button,
highlight it and make it the first button in the set.
The GUI JAD Session
For this session, you recruit potential users of the system. For the Digital Library we'd recruit
members, lenders and data entry clerks. The users' participation in the session is a two-part affair. In
the first part, they derive the user interface screens. In the second, they approve prototypes
generated by the development team.
How the users derive the screens? The facilitator suggests a use case to strat from, and the users
discuss ways to implement that use case via the system. When they're ready to start talking at the
level of a specific screen, the users work with paper mockups. The facilitator provides a large sheet of
easel paper in landscape view to represent the screen. Post-is note stickies represent the GUI
components. The users' task is to work as a group to position the components appropriately.
When they reach agreement on which components should be on a screen and where those
components should be located, development team members create prototype screens. As they work,
they use appropriate GUI principles. Then, they present those screens on computers, and the users
make any necessary modifications.
It's your turn to draw out the users' screens. Let your imagination and GUI principles guide you when
constructing these screen shots. To make your work easier a set of UML diagrams for the member,
lender and data entry clerk screens are given to you. Look at these diagrams and draw out necessary
screen shots. DataEntry clerk's diagrams are too large and complex, and if you want you may draw
out these screen shots or not.
CSE Department,
VNRVJIET
77
www.jntuworld.com
www.jntuworld.com
The UML state diagram for high-level screen flow in the Employee interface
CSE Department,
VNRVJIET
78
www.jntuworld.com
www.jntuworld.com
Document specialists begin creating documentation for the system, and they create training materials
as well. A godd document creation effort should proceed like a good system development effort, with
careful planing, analysis, and testing, and should begin early in the development process.
The main idea of modeling one system is to focus intense efforts on analysis and
design so that implementation confronts as few challenges as possible and the
result of the project is a system that fully meets the client's needs.
A class model is comprised of one or more class diagrams and the supporting specifications that
describe model elements including classes, relationships between classes, and interfaces. There are
guidelines for:
1.
2.
3.
4.
5.
6.
1.
General issues
Classes
Interfaces
Relationships
Inheritance
Aggregation and Composition
General Guidelines
Because class diagrams are used for a variety of purposes from understanding requirements to
describing your detailed design you will need to apply a different style in each circumstance. This
section describes style guidelines pertaining to different types of class diagrams.
CSE Department,
VNRVJIET
79
www.jntuworld.com
www.jntuworld.com
Figure 1. Analysis and design versions of a class.
1.
2.
3.
4.
5.
6.
CSE Department,
VNRVJIET
80
www.jntuworld.com
www.jntuworld.com
2.
A class is effectively a template from which objects are created (instantiated). Although in the real
world Doug, Wayne, John, and Bill are all student objects we would model the class Student instead.
Classes define attributes, information that is pertinent to their instances, and operations, functionality
that the objects support. Classes will also realize interfaces (more on this later). Note that you may
need to soften some of the naming guidelines to reflect your implementation language or software
purchased from a third-party vendor.
Figure 3. The OrderItem class with and without scaffolding code.
81
www.jntuworld.com
www.jntuworld.com
13. Avoid Stereotypes Implied By Language Naming Conventions
14. Indicate Exceptions In An Operations Property String. Exceptions can be indicated with a
UML property string, an example of which is shown in Figure 4.
3.
Interfaces
An interface is a collection of operation signature and/or attribute definitions that ideally defines a
cohesive set of behaviors. Interfaces are implemented, realized in UML parlance, by classes and
components to realize an interface a class or component must implement the operations and
attributes defined by the interface. Any given class or component may implement zero or more
interfaces and one or more classes or components can implement the same interface.
Figure 5. Interfaces on UML class diagrams.
1. Interface Definitions Must Reflect Implementation Language Constraints. In Figure 5 you see
that a standard class box has been used to define the interface PersistentObject (note the use
of the <<interface>> stereotype).
2. Name Interfaces According To Language Naming Conventions
3. Apply Lollipop Notation To Indicate That A Class Realizes an Interface
4. Define Interfaces Separately From Your Classes
5. Do Not Model the Operations and Attributes of an Interface in Your Classes. In Figure 5 youll
notice that the Shipment class does not include the attributes or operations defined by the two
interfaces that it realizes.
6. Consider an Interface to Be a Contract
4.
Relationship Guidelines
For ease of discussion the term relationships shall include all UML concepts such as associations,
aggregation, composition, dependencies, inheritance, and realizations in other words, if its a line on
a UML class diagram well consider it a relationship.
Figure 6. Shipping an order.
CSE Department,
VNRVJIET
82
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
83
www.jntuworld.com
www.jntuworld.com
1.
2.
3.
4.
6.
Inheritance Guidelines
Inheritance models is a and is like relationships, enabling you to easily reuse existing data and
code. When A inherits from B we say that A is the subclass of B and that B is the
superclass of A. Furthermore, we say that we have pure inheritance when A inherits all of the
attributes and methods of B. The UML modeling notation for inheritance is a line with a closed
arrowhead pointing from the subclass to the superclass.
1.
2.
3.
4.
7.
Sometimes an object is made up of other objects. For example, an airplane is made up of a fuselage,
wings, engines, landing gear, flaps, and so on. A delivery shipment contains one or more packages. A
CSE Department,
VNRVJIET
84
www.jntuworld.com
www.jntuworld.com
team consists of two or more employees. These are all examples of the concept of aggregation, which
represents is part of relationships. An engine is part of a plane, a package is part of a shipment, and
an employee is part of a team. Aggregation is a specialization of association, specifying a whole-part
relationship between two objects. Composition is a stronger form of aggregation where the whole and
parts have coincident lifetimes, and it is very common for the whole to manage the lifecycle of its
parts. From a stylistic point of view, because aggregation and composition are both specializations of
association the guidelines for associations apply.
Figure 10. Examples of aggregation and composition.
1.
2.
3.
4.
5.
6.
8. Recommended Resources
Are You Ready For the MDA?
Be Realistic About the UML
Examining The Model Driven Architecture (MDA)
Introduction to the Diagrams of UML 2
Introduction to Object Orientation (OO) and UML
Introduction to UML Class Diagrams
Modeling Style Guidelines
Pavel Hruby's UML 2.0 Stencil for Visio
Roadmap for Agile MDA
Why Extend the UML Beyond Object and Component Technology?
XP and the UML?
CSE Department,
VNRVJIET
85
www.jntuworld.com
www.jntuworld.com
The Elements of UML 2.0 Style describes a collection of standards, conventions, and
guidelines for creating effective UML diagrams. They are based on sound, proven
software engineering principles that lead to diagrams that are easier to understand and work
with. These conventions exist as a collection of simple, concise guidelines that if applied
consistently, represent an important first step in increasing your productivity as a modeler.
This book is oriented towards intermediate to advanced UML modelers, although there are
numerous examples throughout the book it would not be a good way to learn the UML (instead,
consider The Object Primer). The book is a brief 188 pages long and is conveniently
pocket-sized so it's easy to carry around.
The Object Primer 3rd Edition: Agile Model Driven Development with UML 2
is an important reference book for agile modelers, describing how to develop 35 types of
agile models including all 13 UML 2 diagrams. Furthermore, this book describes the
techniques of the Full Lifecycle Object Oriented Testing (FLOOT) methodology to
give you the fundamental testing skills which you require to succeed at agile software
development. The book also shows how to move from your agile models to source code ( Java
examples are provided) as well as how to succeed at implementation techniques such as
refactoring and test-driven development (TDD). The Object Primer also includes a
chapter overviewing the critical database development techniques (database refactoring,
object/relational mapping, legacy analysis, and database access coding) from my
award-winning Agile Database Techniques book.
Agile Modeling: Effective Practices for Extreme Programming and the Unified
Process is the seminal book describing how agile software developers approach modeling
and documentation. It describes principles and practices which you can tailor into your
existing software process, such as XP, the Rational Unified Process (RUP) , or the
Agile Unified Process (AUP), to streamline your modeling and documentation efforts.
Modeling and documentation are important aspects of any software project, including agile
projects, and this book describes in detail how to elicit requirements, architect, and then
design your system in an agile manner.
UML is popular for its diagrammatic notations. We all know that UML is for visualizing, specifying,
constructing and documenting the components of software and non software systems. Here the
Visualization is the most important part which needs to be understood and remembered by heart.
UML notations are the most important elements in modeling. Efficient and appropriate use of
notations is very important for making a complete and meaningful model. The model is useless
unless its purpose is depicted properly.
So learning notations should be emphasized from the very beginning. Different notations are
available for things and relationships. And the UML diagrams are made using the notations of things
and relationships. Extensibility is another important feature which makes UML more powerful and
flexible.
The chapter describes the UML Basic Notations in more details. This is just an extension to the UML
buildling block section I have discussed in previous chapter.
Structural Things:
Graphical notations used in structural things are the most widely used in UML. These are considered
as the nouns of UML models. Following are the list of structural things.
CSE Department,
VNRVJIET
86
www.jntuworld.com
www.jntuworld.com
Classes
Interface
Collaboration
Use case
Active classes
Components
Nodes
Class Notation:
UML class is represented by the diagram shown below. The diagram is divided into four parts.
Classes are used to represent objects. Objects can be anything having properties and responsibility.
Object Notation:
The object is represented in the same way as the class. The only difference is the name which is
underlined as shown below.
CSE Department,
VNRVJIET
87
www.jntuworld.com
www.jntuworld.com
As object is the actual implementation of a class which is known as the instance of a class. So it has
the same usage as the class.
Interface Notation:
Interface is represented by a circle as shown below. It has a name which is generally written below
the circle.
Interface is used to describe functionality without implementation. Interface is the just like a template
where you define different functions not the implementation. When a class implements the interface it
also implements the functionality as per the requirement.
Collaboration Notation:
Collaboration is represented by a dotted eclipse as shown below. It has a name written inside the
eclipse.
CSE Department,
VNRVJIET
88
www.jntuworld.com
www.jntuworld.com
Actor Notation:
An actor can be defined as some internal or external entity that interacts with the system.
Actor is used in a use case diagram to describe the internal or external entities.
The usage of Initial State Notation is to show the starting point of a process.
CSE Department,
VNRVJIET
89
www.jntuworld.com
www.jntuworld.com
The usage of Final State Notation is to show the termination point of a process.
Component Notation:
A component in UML is shown as below with a name inside. Additional elements can be added
wherever required.
Component is used to represent any part of a system for which UML diagrams are made.
Node Notation:
A node in UML is represented by a square box as shown below with a name. A node represents a
physical component of the system.
CSE Department,
VNRVJIET
90
www.jntuworld.com
www.jntuworld.com
Node is used to represent physical part of a system like server, network etc.
Behavioural Things:
Dynamic parts are one of the most important elements in UML. UML has a set of powerful features to
represent the dynamic part of software and non software systems. These features include
interactions and state machines.
Interactions can be of two types:
Interaction Notation:
Interaction is basically message exchange between two UML components. The following diagram
represents different notations used in an interaction.
CSE Department,
VNRVJIET
91
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
92
www.jntuworld.com
www.jntuworld.com
State machine is used to describe different states of a system component. The state can be active,
idle or any other depending upon the situation.
Grouping Things:
Organizing the UML models are one of the most important aspects of the design. In UML there is only
one element available for grouping and that is package.
Package Notation:
Package notation is shown below and this is used to wrap the components of a system.
Annotational Things:
In any diagram explanation of different elements and their functionalities are very important. So UML
has notes notation to support this requirement.
CSE Department,
VNRVJIET
93
www.jntuworld.com
www.jntuworld.com
Note Notation:
This notation is shown below and they are used to provide necessary information of a system.
Relationships
A model is not complete unless the relationships between elements are described properly. The
Relationship gives a proper meaning to an UML model. Following are the different types of
relationships available in UML.
Dependency
Association
Generalization
Extensibility
Dependency Notation:
Dependency is an important aspect in UML elements. It describes the dependent elements and the
direction of dependency.
Dependency is represented by a dotted arrow as shown below. The arrow head represents the
independent element and the other end the dependent element.
Association Notation:
Association describes how the elements in an UML diagram are associated. In simple word it
describes how many elements are taking part in an interaction.
CSE Department,
VNRVJIET
94
www.jntuworld.com
www.jntuworld.com
Association is represented by a dotted line with (without) arrows on both sides. The two ends
represent two associated elements as shown below. The multiplicity is also mentioned at the ends (1,
* etc) to show how many objects are associated.
Generalization Notation:
Generalization describes the inheritance relationship of the object oriented world. It is parent and
child relationship.
Generalization is represented by an arrow with hollow arrow head as shown below. One end
represents the parent element and the other end child element.
Extensibility Notation:
All the languages (programming or modeling) have some mechanism to extend its capabilities like
syntax, semantics etc. UML is also having the following mechanisms to provide extensibility features.
CSE Department,
VNRVJIET
95
www.jntuworld.com
www.jntuworld.com
Extensibility notations are used to enhance the power of the language. It is basically additional
elements used to represent some extra behaviour of the system. These extra behaviours are not
covered by the standard available notations.
UML is a standard language for specifying, visualizing, constructing, and documenting the artifacts of
software systems.
UML was created by Object Management Group (OMG) and UML 1.0 specification draft was
proposed to the OMG in January 1997.
OMG is continuously putting effort to make a truly industry standard.
UML stands for Unified Modeling Language.
UML is different from the other common programming languages like C++, Java, COBOL etc.
UML is a pictorial language used to make software blue prints.
So UML can be described as a general purpose visual modeling language to visualize, specify,
construct and document software system. Although UML is generally used to model software systems
but it is not limited within this boundary. It is also used to model non software systems as well like
process flow in a manufacturing unit etc.
UML is not a programming language but tools can be used to generate code in various languages
using UML diagrams. UML has a direct relation with object oriented analysis and design. After some
standardization UML is become an OMG (Object Management Group) standard.
Goals of UML:
A picture is worth a thousand words, this absolutely fits while discussing about UML. Object oriented
concepts were introduced much earlier than UML. So at that time there were no standard
methodologies to organize and consolidate the object oriented development. At that point of time
UML came into picture.
There are a number of goals for developing UML but the most important is to define some general
purpose modeling language which all modelers can use and also it needs to be made simple to
understand and use.
CSE Department,
VNRVJIET
96
www.jntuworld.com
www.jntuworld.com
UML diagrams are not only made for developers but also for business users, common people and
anybody interested to understand the system. The system can be a software or non software. So it
must be clear that UML is not a development method rather it accompanies with processes to make a
successful system.
At the conclusion the goal of UML can be defined as a simple modeling mechanism to model all
possible practical systems in today.s complex environment.
97
www.jntuworld.com
www.jntuworld.com
98
www.jntuworld.com
www.jntuworld.com
As UML describes the real time systems it is very important to make a conceptual model and then
proceed gradually. Conceptual model of UML can be mastered by learning the following three major
elements:
Things
Relationships
Diagrams
(1) Things:
Things are the most important building blocks of UML. Things can be:
Structural
Behavioral
Grouping
Annotational
Structural things:
The Structural things define the static part of the model. They represent physical and conceptual
elements. Following are the brief descriptions of the structural things.
Class:
Class represents set of objects having similar responsibilities.
Interface:
Interface defines a set of operations which specify the responsibility of a class.
Collaboration:
Collaboration defines interaction between elements.
CSE Department,
VNRVJIET
99
www.jntuworld.com
www.jntuworld.com
Use case:
Use case represents a set of actions performed by a system for a specific goal.
Component:
Component describes physical part of a system.
Node:
A node can be defined as a physical element that exists at run time.
Behavioral things:
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral
things:
Interaction:
Interaction is defined as a behavior that consists of a group of messages exchanged among elements
to accomplish a specific task.
State machine:
State machine is useful when the state of an object in its life cycle is important. It defines the
sequence of states an object goes through in response to events. Events are external factors
responsible for state change.
CSE Department,
VNRVJIET
100
www.jntuworld.com
www.jntuworld.com
Grouping things:
Grouping things can be defined as a mechanism to group elements of a UML model together. There
is only one grouping thing available:
Package:
Package is the only one grouping thing available for gathering structural and behavioral things.
Annotational things:
Annotational things can be defined as a mechanism to capture remarks, descriptions, and
comments of UML model elements. Note is the only one Annotational thing available.
Note:
A note is used to render comments, constraints etc of an UML element.
(2) Relationship :
Relationship is another most important building block of UML. It shows how elements are associated
with each other and this association describes the functionality of an application.
There are four kinds of relationships available.
Dependency:
Dependency is a relationship between two things in which change in one element also affects the
other one.
CSE Department,
VNRVJIET
101
www.jntuworld.com
www.jntuworld.com
Association:
Association is basically a set of links that connects elements of an UML model. It also describes how
many objects are taking part in that relationship.
Generalization:
Generalization can be defined as a relationship which connects a specialized element with a
generalized element. It basically describes inheritance relationship in the world of objects.
Realization:
Realization can be defined as a relationship in which two elements are connected. One element
describes some responsibility which is not implemented and the other one implements them. This
relationship exists in case of interfaces.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Class diagram
Object diagram
Use case diagram
Sequence diagram
Collaboration diagram
Activity diagram
Statechart diagram
Deployment diagram
Component diagram
Any real world system is used by different users. The users can be developers, testers, business people,
analysts and many more. So before designing a system the architecture is made with different
CSE Department,
VNRVJIET
102
www.jntuworld.com
www.jntuworld.com
perspectives in mind. The most important part is to visualize the system from different viewer.s
perspective. The better we understand the better we make the system.
UML plays an important role in defining different perspectives of a system. These perspectives are:
Design
Implementation
Process
Deployment
And the centre is the Use Case view which connects all these four. A Use case represents the
functionality of the system. So the other perspectives are connected with use case.
Design of a system consists of classes, interfaces and collaboration. UML provides class
diagram, object diagram to support this.
Implementation defines the components assembled together to make a complete physical
system. UML component diagram is used to support implementation perspective.
Process defines the flow of the system. So the same elements as used in Design are also used
to support this perspective.
Deployment represents the physical nodes of the system that forms the hardware. UML
deployment diagram is used to support this perspective.
It is very important to distinguish between the UML model. Different diagrams are used for different
type of UML modeling. There are three important type of UML modelings:
Structural modeling:
Structural modeling captures the static features of a system. They consist of the followings:
Classes diagrams
Objects diagrams
Deployment diagrams
Package diagrams
Composite structure diagram
Component diagram
Structural model represents the framework for the system and this framework is the place where all
other components exist. So the class diagram, component diagram and deployment diagrams are the
part of structural modeling. They all represent the elements and the mechanism to assemble them.
But the structural model never describes the dynamic behavior of the system. Class diagram is the
most widely used structural diagram.
Behavioral Modeling:
Behavioral model describes the interaction in the system. It represents the interaction among the
structural diagrams. Behavioral modeling shows the dynamic nature of the system. They consist of
the following:
CSE Department,
VNRVJIET
103
www.jntuworld.com
www.jntuworld.com
Activity diagrams
Interaction diagrams
Use case diagrams
All the above show the dynamic sequence of flow in a system.
Architectural Modeling:
Architectural model represents the overall framework of the system. It contains both structural and
behavioral elements of the system. Architectural model can be defined as the blue print of the entire
system. Package diagram comes under architectural modeling.
UML is popular for its diagrammatic notations. We all know that UML is for visualizing, specifying,
constructing and documenting the components of software and non software systems. Here the
Visualization is the most important part which needs to be understood and remembered by heart.
UML notations are the most important elements in modeling. Efficient and appropriate use of
notations is very important for making a complete and meaningful model. The model is useless
unless its purpose is depicted properly.
So learning notations should be emphasized from the very beginning. Different notations are
available for things and relationships. And the UML diagrams are made using the notations of things
and relationships. Extensibility is another important feature which makes UML more powerful and
flexible.
The chapter describes the UML Basic Notations in more details. This is just an extension to the UML
buildling block section I have discussed in previous chapter.
Structural Things:
Graphical notations used in structural things are the most widely used in UML. These are considered
as the nouns of UML models. Following are the list of structural things.
Classes
Interface
Collaboration
Use case
Active classes
Components
Nodes
Class Notation:
UML class is represented by the diagram shown below. The diagram is divided into four parts.
104
www.jntuworld.com
www.jntuworld.com
Classes are used to represent objects. Objects can be anything having properties and responsibility.
Object Notation:
The object is represented in the same way as the class. The only difference is the name which is
underlined as shown below.
As object is the actual implementation of a class which is known as the instance of a class. So it has
the same usage as the class.
Interface Notation:
Interface is represented by a circle as shown below. It has a name which is generally written below
the circle.
CSE Department,
VNRVJIET
105
www.jntuworld.com
www.jntuworld.com
Interface is used to describe functionality without implementation. Interface is the just like a template
where you define different functions not the implementation. When a class implements the interface it
also implements the functionality as per the requirement.
Collaboration Notation:
Collaboration is represented by a dotted eclipse as shown below. It has a name written inside the
eclipse.
Actor Notation:
An actor can be defined as some internal or external entity that interacts with the system.
CSE Department,
VNRVJIET
106
www.jntuworld.com
www.jntuworld.com
Actor is used in a use case diagram to describe the internal or external entities.
The usage of Initial State Notation is to show the starting point of a process.
The usage of Final State Notation is to show the termination point of a process.
CSE Department,
VNRVJIET
107
www.jntuworld.com
www.jntuworld.com
Active class is used to represent concurrency in a system.
Component Notation:
A component in UML is shown as below with a name inside. Additional elements can be added
wherever required.
Component is used to represent any part of a system for which UML diagrams are made.
Node Notation:
A node in UML is represented by a square box as shown below with a name. A node represents a
physical component of the system.
Node is used to represent physical part of a system like server, network etc.
Behavioural Things:
Dynamic parts are one of the most important elements in UML. UML has a set of powerful features to
represent the dynamic part of software and non software systems. These features include
interactions and state machines.
Interactions can be of two types:
Interaction Notation:
CSE Department,
VNRVJIET
108
www.jntuworld.com
www.jntuworld.com
Interaction is basically message exchange between two UML components. The following diagram
represents different notations used in an interaction.
CSE Department,
VNRVJIET
109
www.jntuworld.com
www.jntuworld.com
State machine is used to describe different states of a system component. The state can be active,
idle or any other depending upon the situation.
Grouping Things:
Organizing the UML models are one of the most important aspects of the design. In UML there is only
one element available for grouping and that is package.
Package Notation:
Package notation is shown below and this is used to wrap the components of a system.
Annotational Things:
In any diagram explanation of different elements and their functionalities are very important. So UML
has notes notation to support this requirement.
CSE Department,
VNRVJIET
110
www.jntuworld.com
www.jntuworld.com
Note Notation:
This notation is shown below and they are used to provide necessary information of a system.
Relationships
A model is not complete unless the relationships between elements are described properly. The
Relationship gives a proper meaning to an UML model. Following are the different types of
relationships available in UML.
Dependency
Association
Generalization
Extensibility
Dependency Notation:
Dependency is an important aspect in UML elements. It describes the dependent elements and the
direction of dependency.
Dependency is represented by a dotted arrow as shown below. The arrow head represents the
independent element and the other end the dependent element.
Association Notation:
Association describes how the elements in an UML diagram are associated. In simple word it
describes how many elements are taking part in an interaction.
CSE Department,
VNRVJIET
111
www.jntuworld.com
www.jntuworld.com
Association is represented by a dotted line with (without) arrows on both sides. The two ends
represent two associated elements as shown below. The multiplicity is also mentioned at the ends (1,
* etc) to show how many objects are associated.
Generalization Notation:
Generalization describes the inheritance relationship of the object oriented world. It is parent and
child relationship.
Generalization is represented by an arrow with hollow arrow head as shown below. One end
represents the parent element and the other end child element.
Extensibility Notation:
All the languages (programming or modeling) have some mechanism to extend its capabilities like
syntax, semantics etc. UML is also having the following mechanisms to provide extensibility features.
CSE Department,
VNRVJIET
112
www.jntuworld.com
www.jntuworld.com
Extensibility notations are used to enhance the power of the language. It is basically additional
elements used to represent some extra behaviour of the system. These extra behaviours are not
covered by the standard available notations.
In the previous chapters we have discussed about the building blocks and other necessary elements
of UML. Now we need to understand where to use those elements.
The elements are like components which can be associated in different ways to make a complete
UML pictures which is known as diagram. So it is very important to understand the different diagrams
to implement the knowledge in real life systems.
Any complex system is best understood by making some kind of diagrams or pictures. These
diagrams have a better impact on our understanding. So if we look around then we will realize that
the diagrams are not a new concept but it is used widely in different form in different industries.
We prepare UML diagrams to understand a system in better and simple way. A single diagram is not
enough to cover all aspects of the system. So UML defines various kinds of diagrams to cover most
of the aspects of a system.
You can also create your own set of diagrams to meet your requirements. Diagrams are generally
made in an incremental and iterative way.
There are two broad caetgories of diagrams and then are again divided into sub-categories:
Structural Diagrams
Behavioral Diagrams
Structural Diagrams:
The structural diagrams represent the static aspect of the system. These static aspects represent
those parts of a diagram which forms the main structure and therefore stable.
These static parts are represents by classes, interfaces, objects, components and nodes. The four
structural diagrams are:
Class diagram
Object diagram
CSE Department,
VNRVJIET
113
www.jntuworld.com
www.jntuworld.com
Component diagram
Deployment diagram
Class Diagram:
Class diagrams are the most common diagrams used in UML. Class diagram consists of classes,
interfaces, associations and collaboration.
Class diagrams basically represent the object oriented view of a system which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. So it is generally used for development
purpose. This is the most widely used diagram at the time of system construction.
Object Diagram:
Object diagrams can be described as an instance of class diagram. So these diagrams are more
close to real life scenarios where we implement a system.
Object diagrams are a set of objects and their relationships just like class diagrams and also
represent the static view of the system.
The usage of object diagrams is similar to class diagrams but they are used to build prototype of a
system from practical perspective.
Component Diagram:
Component diagrams represent a set of components and their relationships. These components
consist of classes, interfaces or collaborations.
So Component diagrams represent the implementation view of a system.
During design phase software artifacts (classes, interfaces etc) of a system are arranged in different
groups depending upon their relationship. Now these groups are known as components.
Finally, component diagrams are used to visualize the implementation.
Deployment Diagram:
Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities
where the components are deployed.
Deployment diagrams are used for visualizing deployment view of a system. This is generally used by
the deployment team.
Note: If the above descriptions and usages are observed carefully then it is very clear that all the
diagrams are having some relationship with one another. Component diagrams are dependent upon
the classes, interfaces etc which are part of class/object diagram. Again the deployment diagram is
dependent upon the components which are used to make a component diagrams.
CSE Department,
VNRVJIET
114
www.jntuworld.com
www.jntuworld.com
Behavioral Diagrams:
Any system can have two aspects, static and dynamic. So a model is considered as complete when
both the aspects are covered fully.
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be
further described as the changing/moving parts of a system.
UML has the following five types of behavioral diagrams:
Sequence Diagram:
A sequence diagram is an interaction diagram. From the name it is clear that the diagram deals with
some sequences, which are the sequence of messages flowing from one object to another.
Interaction among the components of a system is very important from implementation and execution
perspective.
So Sequence diagram is used to visualize the sequence of calls in a system to perform a specific
functionality.
Collaboration Diagram:
Collaboration diagram is another form of interaction diagram. It represents the structural organization
of a system and the messages sent/received. Structural organization consists of objects and links.
The purpose of collaboration diagram is similar to sequence diagram. But the specific purpose of
collaboration diagram is to visualize the organization of objects and their interaction.
Statechart Diagram:
Any real time system is expected to be reacted by some kind of internal/external events. These
events are responsible for state change of the system.
CSE Department,
VNRVJIET
115
www.jntuworld.com
www.jntuworld.com
Statechart diagram is used to represent the event driven state change of a system. It basically
describes the state change of a class, interface etc.
State chart diagram is used to visualize the reaction of a system by internal/external factors.
Activity Diagram:
Activity diagram describes the flow of control in a system. So it consists of activities and links. The
flow can be sequential, concurrent or branched.
Activities are nothing but the functions of a system. Numbers of activity diagrams are prepared to
capture the entire flow in a system.
Activity diagrams are used to visualize the flow of controls in a system. This is prepared to have an
idea of how the system will work when executed.
Note: Dynamic nature of a system is very difficult to capture. So UML has provided features to
capture the dynamics of a system from different angles. Sequence diagrams and collaboration
diagrams are isomorphic so they can be converted from one another without losing any information.
This is also true for statechart and activity diagram.
Overview:
The class diagram is a static diagram. It represents the static view of an application. Class diagram is
not only used for visualizing, describing and documenting different aspects of a system but also for
constructing executable code of the software application.
The class diagram describes the attributes and operations of a class and also the constraints
imposed on the system. The class diagrams are widely used in the modelling of object oriented
systems because they are the only UML diagrams which can be mapped directly with object oriented
languages.
The class diagram shows a collection of classes, interfaces, associations, collaborations and
constraints. It is also known as a structural diagram.
Purpose:
The purpose of the class diagram is to model the static view of an application. The class diagrams
are the only diagrams which can be directly mapped with object oriented languages and thus widely
used at the time of construction.
The UML diagrams like activity diagram, sequence diagram can only give the sequence flow of the
application but class diagram is a bit different. So it is the most popular UML diagram in the coder
community.
So the purpose of the class diagram can be summarized as:
Analysis and design of the static view of an application.
Describe responsibilities of a system.
Base for component and deployment diagrams.
Forward and reverse engineering.
CSE Department,
VNRVJIET
116
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
117
www.jntuworld.com
www.jntuworld.com
Overview:
Object diagrams are derived from class diagrams so object diagrams are dependent upon class
diagrams.
CSE Department,
VNRVJIET
118
www.jntuworld.com
www.jntuworld.com
Object diagrams represent an instance of a class diagram. The basic concepts are similar for class
diagrams and object diagrams. Object diagrams also represent the static view of a system but this
static view is a snapshot of the system at a particular moment.
Object diagrams are used to render a set of objects and their relationships as an instance.
Purpose:
The purpose of a diagram should be understood clearly to implement it practically. The purposes of
object diagrams are similar to class diagrams.
The difference is that a class diagram represents an abstract model consists of classes and their
relationships. But an object diagram represents an instance at a particular moment which is concrete
in nature.
It means the object diagram is more close to the actual system behaviour. The purpose is to capture
the static view of a system at a particular moment.
So the purpose of the object diagram can be summarized as:
Forward and reverse engineering.
Object relationships of a system
Static view of an interaction.
Understand object behaviour and their relationship from practical perspective
119
www.jntuworld.com
www.jntuworld.com
Objects and links are the two elements used to construct an object diagram.
Now after this the following things are to be decided before starting the construction of the diagram:
The object diagram should have a meaningful name to indicate its purpose.
The most important elements are to be identified.
The association among objects should be clarified.
Values of different elements need to be captured to include in the object diagram.
Add proper notes at points where more clarity is required.
The following diagram is an example of an object diagram. It represents the Order management
system which we have discussed in Class Diagram. The following diagram is an instance of the
system at a particular time of purchase. It has the following objects
Customer
Order
SpecialOrder
NormalOrder
Now the customer object (C) is associated with three order objects (O1, O2 and O3). These order
objects are associated with special order and normal order objects (S1, S2 and N1). The customer is
having the following three orders with different numbers (12, 32 and 40) for the particular time
considered.
Now the customer can increase number of orders in future and in that scenario the object diagram will
reflect that. If order, special order and normal order objects are observed then we you will find that
they are having some values.
For orders the values are 12, 32, and 40 which implies that the objects are having these values for
the particular moment (here the particular time when the purchase is made is considered as the
moment) when the instance is captured.
The same is for special order and normal order objects which are having number of orders as 20, 30
and 60. If a different time of purchase is considered then these values will change accordingly.
So the following object diagram has been drawn considering all the points mentioned above:
CSE Department,
VNRVJIET
120
www.jntuworld.com
www.jntuworld.com
Overview:
Component diagrams are different in terms of nature and behaviour. Component diagrams are used
to model physical aspects of a system.
Now the question is what are these physical aspects? Physical aspects are the elements like
executables, libraries, files, documents etc which resides in a node.
So component diagrams are used to visualize the organization and relationships among components
in a system. These diagrams are also used to make executable systems.
Purpose:
Component diagram is a special kind of diagram in UML. The purpose is also different from all other
diagrams discussed so far. It does not describe the functionality of the system but it describes the
components used to make those functionalities.
So from that point component diagrams are used to visualize the physical components in a system.
These components are libraries, packages, files etc.
Component diagrams can also be described as a static implementation view of a system. Static
implementation represents the organization of the components at a particular moment.
A single component diagram cannot represent the entire system but a collection of diagrams are used
to represent the whole.
So the purpose of the component diagram can be summarized as:
Visualize the components of a system.
Construct executables by using forward and reverse engineering.
Describe the organization and relationships of the components.
CSE Department,
VNRVJIET
121
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
122
www.jntuworld.com
www.jntuworld.com
Overview:
CSE Department,
VNRVJIET
123
www.jntuworld.com
www.jntuworld.com
Deployment diagrams are used to visualize the topology of the physical components of a system
where the software components are deployed.
So deployment diagrams are used to describe the static deployment view of a system. Deployment
diagrams consist of nodes and their relationships.
Purpose:
The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used
for describing the hardware components where software components are deployed. Component
diagrams and deployment diagrams are closely related.
Component diagrams are used to describe the components and deployment diagrams shows how
they are deployed in hardware.
UML is mainly designed to focus on software artifacts of a system. But these two diagrams are
special diagrams used to focus on software components and hardware components.
So most of the UML diagrams are used to handle logical components but deployment diagrams are
made to focus on hardware topology of a system. Deployment diagrams are used by the system
engineers.
The purpose of deployment diagrams can be described as:
Visualize hardware topology of a system.
Describe the hardware components used to deploy software components.
Describe runtime processing nodes.
124
www.jntuworld.com
www.jntuworld.com
Modem
Caching server
Server
The application is assumed to be a web based application which is deployed in a clustered
environment using server 1, server 2 and server 3. The user is connecting to the application using
internet. The control is flowing from the caching server to the clustered environment.
So the following deployment diagram has been drawn considering all the points mentioned above:
CSE Department,
VNRVJIET
125
www.jntuworld.com
www.jntuworld.com
Now a day's software applications are very complex in nature. Software applications can be stand
alone, web based, distributed, mainframe based and many more. So it is very important to design the
hardware components efficiently.
So the usage of deployment diagrams can be described as follows:
To model the hardware topology of a system.
To model embedded system.
To model hardware details for a client/server system.
To model hardware details of a distributed application.
Forward and reverse engineering.
Overview:
To model a system the most important aspect is to capture the dynamic behaviour. To clarify a bit in
details, dynamic behaviour means the behaviour of the system when it is running /operating.
So only static behaviour is not sufficient to model a system rather dynamic behaviour is more
important than static behaviour. In UML there are five diagrams available to model dynamic nature
and use case diagram is one of them. Now as we have to discuss that the use case diagram is
dynamic in nature there should be some internal or external factors for making the interaction.
These internal and external agents are known as actors. So use case diagrams are consists of
actors, use cases and their relationships. The diagram is used to model the system/subsystem of an
application. A single use case diagram captures a particular functionality of a system.
So to model the entire system numbers of use case diagrams are used.
Purpose:
The purpose of use case diagram is to capture the dynamic aspect of a system. But this definition is
too generic to describe the purpose.
Because other four diagrams (activity, sequence, collaboration and Statechart) are also having the
same purpose. So we will look into some specific purpose which will distinguish it from other four
diagrams.
Use case diagrams are used to gather the requirements of a system including internal and external
influences. These requirements are mostly design requirements. So when a system is analyzed to
gather its functionalities use cases are prepared and actors are identified.
Now when the initial task is complete use case diagrams are modelled to present the outside view.
So in brief, the purposes of use case diagrams can be as follows:
Used to gather requirements of a system.
Used to get an outside view of a system.
Identify external and internal factors influencing the system.
Show the interacting among the requirements are actors.
CSE Department,
VNRVJIET
126
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
127
www.jntuworld.com
www.jntuworld.com
128
www.jntuworld.com
www.jntuworld.com
Overview:
From the name Interaction it is clear that the diagram is used to describe some type of interactions
among the different elements in the model. So this interaction is a part of dynamic behaviour of the
system.
This interactive behaviour is represented in UML by two diagrams known as Sequence diagram and
Collaboration diagram. The basic purposes of both the diagrams are similar.
Sequence diagram emphasizes on time sequence of messages and collaboration diagram
emphasizes on the structural organization of the objects that send and receive messages.
Purpose:
The purposes of interaction diagrams are to visualize the interactive behaviour of the system. Now
visualizing interaction is a difficult task. So the solution is to use different types of models to capture
the different aspects of the interaction.
That is why sequence and collaboration diagrams are used to capture dynamic nature but from a
different angle.
So the purposes of interaction diagram can be describes as:
To capture dynamic behaviour of a system.
To describe the message flow in the system.
To describe structural organization of the objects.
To describe interaction among objects.
CSE Department,
VNRVJIET
129
www.jntuworld.com
www.jntuworld.com
CSE Department,
VNRVJIET
130
www.jntuworld.com
www.jntuworld.com
Overview:
The name of the diagram itself clarifies the purpose of the diagram and other details. It describes
different states of a component in a system. The states are specific to a component/object of a
system.
CSE Department,
VNRVJIET
131
www.jntuworld.com
www.jntuworld.com
A Statechart diagram describes a state machine. Now to clarify it state machine can be defined as a
machine which defines different states of an object and these states are controlled by external or
internal events.
Activity diagram explained in next chapter, is a special kind of a Statechart diagram. As Statechart
diagram defines states it is used to model lifetime of an object.
Purpose:
Statechart diagram is one of the five UML diagrams used to model dynamic nature of a system. They
define different states of an object during its lifetime. And these states are changed by events. So
Statechart diagrams are useful to model reactive systems. Reactive systems can be defined as a
system that responds to external or internal events.
Statechart diagram describes the flow of control from one state to another state. States are defined
as a condition in which an object exists and it changes when some event is triggered. So the most
important purpose of Statechart diagram is to model life time of an object from creation to termination.
Statechart diagrams are also used for forward and reverse engineering of a system. But the main
purpose is to model reactive system.
Following are the main purposes of using Statechart diagrams:
To model dynamic aspect of a system.
To model life time of a reactive system.
To describe different states of an object during its life time.
Define a state machine to model states of an object.
132
www.jntuworld.com
www.jntuworld.com
system. When the entire life cycle is complete it is considered as the complete transaction as
mentioned below.
The initial and final state of an object is also shown below.
133
www.jntuworld.com
www.jntuworld.com
Overview:
Activity diagram is another important diagram in UML to describe dynamic aspects of the system.
Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The
activity can be described as an operation of the system.
So the control flow is drawn from one operation to another. This flow can be sequential, branched or
concurrent. Activity diagrams deals with all type of flow control by using different elements like fork,
join etc.
Purpose:
The basic purposes of activity diagrams are similar to other four diagrams. It captures the dynamic
behaviour of the system. Other four diagrams are used to show the message flow from one object to
another but activity diagram is used to show message flow from one activity to another.
Activity is a particular operation of the system. Activity diagrams are not only used for visualizing
dynamic nature of a system but they are also used to construct the executable system by using
forward and reverse engineering techniques. The only missing thing in activity diagram is the
message part.
It does not show any message flow from one activity to another. Activity diagram is some time
considered as the flow chart. Although the diagrams looks like a flow chart but it is not. It shows
different flow like parallel, branched, concurrent and single.
So the purposes can be described as:
Draw the activity flow of a system.
Describe the sequence from one activity to another.
Describe the parallel, branched and concurrent flow of the system.
CSE Department,
VNRVJIET
134
www.jntuworld.com
www.jntuworld.com
Once the above mentioned parameters are identified we need to make a mental layout of the entire
flow. This mental layout is then transformed into an activity diagram.
The following is an example of an activity diagram for order management system. In the diagram four
activities are identified which are associated with conditions. One important point should be clearly
understood that an activity diagram cannot be exactly matched with the code. The activity diagram is
made to understand the flow of activities and mainly used by the business users.
The following diagram is drawn with the four main activities:
Send order by the customer
Receipt of the order
Confirm order
Dispatch order
After receiving the order request condition checks are performed to check if it is normal or special
order. After the type of order is identified dispatch activity is performed and that is marked as the
termination of the process.
CSE Department,
VNRVJIET
135
www.jntuworld.com
www.jntuworld.com
Now we will look into the practical applications of the activity diagram. From the above discussion it is
clear that an activity diagram is drawn from a very high level. So it gives high level view of a system.
This high level view is mainly for business users or any other person who is not a technical person.
This diagram is used to model the activities which are nothing but business requirements. So the
diagram has more impact on business understanding rather implementation details.
Following are the main usages of activity diagram:
Modeling work flow by using activities.
Modeling business requirements.
High level understanding of the system's functionalities.
Investigate business requirements at a later stage.
CSE Department,
VNRVJIET
136
www.jntuworld.com