Assignment of Oosd: Submitted To: Submitted by
Assignment of Oosd: Submitted To: Submitted by
OF OOSD
The swim lane flowchart differs from other flowcharts in that processes and decisions
are grouped visually by placing them in lanes. Parallel lines divide the chart into lanes,
with one lane for each person, group or subprocess. Lanes are labelled to show how
the chart is organized.
In the accompanying example, the vertical direction represents the sequence of events
in the overall process, while the horizontal divisions depict what subprocess is
performing that step. Arrows between the lanes represent how information or material is
passed between the subprocesses.
Optionally, the flow can be rotated so that the sequence reads horizontally from left to
right, with the roles involved being shown at the left edge. This can be easier to read
and design, Microsoft Visio typically operates from left to right, as normally screen sizes
are wider than they are deep which gives an improved view of the flow.
Use of standard symbols enables clear linkage to be shown between related flow charts
when charting flows with complex relationships: use of hyperlinking capability makes
movement between activities on different sheets easy and reliable.
When used to diagram a business process that involves more than one department, it
can clarify not only the steps and who is responsible for each one, but how delays,
mistakes or cheating are most likely to occur.
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.
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.
Statechart diagram is used to describe the states of different objects in its life cycle. So
the emphasis is given on the state changes upon some internal or external events.
These states of objects are important to analyze and implement them accurately.
Statechart diagrams are very important for describing the states. States can be
identified as the condition of objects when a particular event occurs.
Before drawing a Statechart diagram we must have clarified the following points:
The first state is an idle state from where the process starts. The next states are arrived
for events like send request, confirm request, and dispatch order. These events are
responsible for state changes of order object.
During the life cycle of an object (here order object) it goes through the following states
and there may be some abnormal exists also. This abnormal exit may occur due to
some problem in the 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
From the above discussion we can define the practical applications of a Statechart
diagram. Statechart diagrams are used to model dynamic aspect of a system like other
four diagrams disused in this tutorial. But it has some distinguishing characteristics for
modeling dynamic nature.
Statechart diagram defines the states of a component and these state changes are
dynamic in nature. So its specific purpose is to define state changes triggered by
events. Events are internal or external factors influencing the system.
Statechart diagrams are used to model states and also events operating on the system.
When implementing a system it is very important to clarify different states of an object
during its life time and statechart diagrams are used for this purpose. When these states
and events are identified they are used to model it and these models are used during
implementation of the system.
If we look into the practical implementation of Statechart diagram then it is mainly used
to analyze the object states influenced by events. This analysis is helpful to understand
the system behaviour during its execution.
Component Diagram
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.
A single component diagram cannot represent the entire system but a collection of
diagrams are used to represent the whole.
Component diagrams are used to describe the physical artifacts of a system. This
artifact includes files, executables, libraries etc.
So the purpose of this diagram is different, Component diagrams are used during the
implementation phase of an application. But it is prepared well in advance to visualize
the implementation details.
Initially the system is designed using different UML diagrams and then when the
artifacts are ready component diagrams are used to get an idea of the implementation.
Now after identifying the artifacts the following points needs to be followed:
Use a meaningful name to identify the component for which the diagram is to be
drawn.
The following is a component diagram for order management system. Here the artifacts
are files. So the diagram shows the files in the application and their relationships. In
actual the component diagram also contains dlls, libraries, folders etc.
In the following diagram four files are identified and their relationships are produced.
Component diagram cannot be matched directly with other UML diagrams discussed so
far. Because it is drawn for completely different purpose.
So the following component diagram has been drawn considering all the points
mentioned above:
Where to use Component Diagrams?
We have already described that component diagrams are used to visualize the static
implementation view of a system. Component diagrams are special type of UML
diagrams used for different purposes.
These diagrams show the physical components of a system. To clarify it, we can say
that component diagrams describe the organization of the components in a system.
As we have already discussed those components are libraries, files, executables etc.
Now before implementing the application these components are to be organized. This
component organization is also designed separately as a part of project execution.
Deployment Model
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:
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.
Deployment diagrams are useful for system engineers. An efficient deployment diagram
is very important because it controls the following parameters
Performance
Scalability
Maintainability
Portability
Nodes
The following deployment diagram is a sample to give an idea of the deployment view of
order management system. Here we have shown nodes as:
Monitor
Modem
Caching server
Server
So the following deployment diagram has been drawn considering all the points
mentioned above:
Where to use Deployment Diagrams?
Deployment diagrams are mainly used by system engineers. These diagrams are used
to describe the physical components (hardwares), their distribution and association.
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.
Package (UML)
Pretty much all UML elements can be grouped into packages. Thus, classes,
objects, use cases, components, nodes, node instances etc. can all be organized as
packages, thus enabling a manageable organization of the myriad elements that a real-
world UML model entails.
Usage
When organizing functional models (use case models, workflow models etc.), use
packages to model the real-world modular structure of the system being modeled.
When organizing source code, use packages to represent the different layers of the
source code. For instance:
presentation layer
controller layer
data access layer
integration layer
business services layer
When organizing component models, use packages to group the components according
to ownership and/or reuse possibilities. For instance:
commercial-off-the-shelf products
open-source framework components
custom-built framework components
custom-built application components
When organizing deployment models, use packages to represent the different types of
deployment environments that you will be modeling. For instance:
production environment
pre-production environment
integration test environment
system test environment
development environment