HVPM COET SUB: SOFTWARE ENGINEERING LAB
PRACTICAL NO.01
Aim: Prepare Usecase Diagram for assigned system.
Software Required: Star UML
Overview:
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.
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.
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.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Object oriented concepts:
UML can be described as the successor of object oriented analysis and design.
An object contains both data and methods that control the data. The data represents the state of the object. A
class describes an object and they also form hierarchy to model real world system. The hierarchy is represented
as inheritance and the classes can also be associated in different manners as per the requirement.
The objects are the real world entities that exist around us and the basic concepts like abstraction, encapsulation,
inheritance, polymorphism all can be represented using UML. So UML is powerful enough to represent all the
concepts exists in object oriented analysis and design. UML diagrams are representation of object oriented
concepts only. So before learning UML, it becomes important to understand OO concepts in details.
Following are some fundamental concepts of object oriented world:
Objects: Objects represent an entity and the basic building block.
Class: Class is the blue print of an object.
Abstraction: Abstraction represents the behavior of an real world entity.
Encapsulation: Encapsulation is the mechanism of binding the data together and hiding them from
outside world.
Inheritance: Inheritance is the mechanism of making new classes from existing one.
Polymorphism: It defines the mechanism to exists in different forms.
OO Analysis and Design
Object Oriented analysis can be defined as investigation and to be more specific it is the investigation of
objects. Design means collaboration of identified objects.
So it is important to understand the OO analysis and design concepts. Now the most important purpose of OO
analysis is to identify objects of a system to be designed. This analysis is also done for an existing system. Now
an efficient analysis is only possible when we are able to start thinking in a way where objects can be identified.
After identifying the objects their relationships are identified and finally the design is produced.
So the purpose of OO analysis and design can described as:
Identifying the objects of a system.
Identify their relationships.
Make a design which can be converted to executables using OO languages.
Rational rose
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Rational Rose XDE, an "eXtended Development Environment" for software developers, integrates
with Microsoft Visual Studio .NET and Rational Application Developer. The Rational Software division
of IBM, which previously produced Rational Rose, wrote this software.With the Rational June 2006 P roduct
Release, IBM withdrew the “XDE” family of products and introduced the Rational Rose family of products as
replacements.
The Rational Rose family of products is a set of UML modeling tools for software design. The Unified
Modeling Language (UML) is the industry-standard language for specifying, visualizing, constructing, and
documenting the artifacts of software systems. It simplifies the complex process of software design, creating a
"blueprint" for construction of software systems. Rational Rose could also do source-based reverse engineering;
the combination of this capability with source generation from diagrams was dubbed roundtrip engineering.[1] A
2007 book noted that other UML tools are also capable of this, the list including Borland Together, ESS-
Model, BlueJ, and Fujaba. The Rational Rose family allows integration with legacy integrated development
environments or languages. For more modern architectures Rational Software Architect andRational Software
Modeler were developed. These products were created matching and surpassing Rose XDE capabilities to
include support for UML 2.x, pattern customization support, the latest programming languages and approaches
to software development such as SOA and more powerful data modeling that supports entity-relationship (ER)
modeling.
Result: Thus, I have studied Usecase Diagram for assigned system in detail.
PRACTICAL NO. 02
Aim: Prepare Usecase Diagram for assigned system
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Software Required: Star UML
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 of Uasecase diagram :
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 modeled 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.
Way to draw Use Case Diagram:
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Use case diagrams are considered for high level requirement analysis of a system. So when the requirements of
a system are analyzed the functionalities are captured in use cases.
So we can say that uses cases are nothing but the system functionalities written in an organized manner. Now
the second things which are relevant to the use cases are the actors. Actors can be defined as something that
interacts with the system.
The actors can be human user, some internal applications or may be some external applications. So in a brief
when we are planning to draw an use case diagram we should have the following items identified.
Functionalities to be represented as an use case
Actors
Relationships among the use cases and actors.
Use case diagrams are drawn to capture the functional requirements of a system. So after identifying the above
items we have to follow the following guidelines to draw an efficient use case diagram.
The name of a use case is very important. So the name should be chosen in such a way so that it can
identify the functionalities performed.
Give a suitable name for actors.
Show relationships and dependencies clearly in the diagram.
Do not try to include all types of relationships. Because the main purpose of the diagram is to identify
requirements.
Use note when ever required to clarify some important points.
The following is a sample use case diagram representing the order management system. So if we look into the
diagram then we will find three use cases (Order, SpecialOrder and NormalOrder) and one actor which is
customer.
The SpecialOrder and NormalOrder use cases are extended from Order use case. So they have extends
relationship. Another important point is to identify the system boundary which is shown in the picture. The
actor Customer lies outside the system as it is an external user of the system.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Result: Thus, I have studied and developed Usecase Diagram of an order Management system.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
PRACTICAL NO.03
Aim: Prepare Class Diagram for assigned system.
Software Required: Star UML
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 of Class diagram:
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.
Way to draw Class Diagram:
Class diagrams are the most popular UML diagrams used for construction of software applications. So it is very
important to learn the drawing procedure of class diagram.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Class diagrams have lot of properties to consider while drawing but here the diagram will be considered from a
top level view.
Class diagram is basically a graphical representation of the static view of the system and represents different
aspects of the application. So a collection of class diagrams represent the whole system.
The following points should be remembered while drawing a class diagram:
The name of the class diagram should be meaningful to describe the aspect of the system.
Each element and their relationships should be identified in advance.
Responsibility (attributes and methods) of each class should be clearly identified.
For each class minimum number of properties should be specified. Because unnecessary properties will
make the diagram complicated.
Use notes when ever required to describe some aspect of the diagram. Because at the end of the
drawing it should be understandable to the developer/coder.
Finally, before making the final version, the diagram should be drawn on plain paper and rework as
many times as possible to make it correct.
Now the following diagram is an example of an Order System of an application. So it describes a
particular aspect of the entire application.
First of all Order and Customer are identified as the two elements of the system and they have a one to
many relationship because a customer can have multiple orders.
We would keep Order class is an abstract class and it has two concrete classes (inheritance
relationship) SpecialOrder and NormalOrder.
The two inherited classes have all the properties as the Order class. In addition they have additional
functions like dispatch
() an d receive ().
So the following class
diagram has been drawn
considering all the
points mentioned above
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Result: Thus, I have studied and developed Class Diagram of an order Management system.
PRACTICAL NO.04
Aim: Prepare Statechart Diagram for assigned system.
Software Required: Star UML
Overview:
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
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.
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 of state diagram:
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.
Way to draw Statechart Diagram:
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.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Before drawing a Statechart diagram we must have clarified the following points:
Identify important objects to be analyzed.
Identify the states.
Identify the events.
The following is an example of a Statechart diagram where the state of Order object is analyzed.
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.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Result: Thus, I have studied and developed Statechart Diagram of an order Management system.
PRACTICAL NO.05
Aim: Prepare Sequence Diagram for assigned system.
Software Required: Star UML
Overview:
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
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 of sequence diagram:
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 behavior of a system.
To describe the message flow in the system.
To describe structural organization of the objects.
To describe interaction among objects.
Way to draw Interaction Diagram:
As we have already discussed that the purpose of interaction diagrams are to capture the dynamic aspect of a
system. So to capture the dynamic aspect we need to understand what a dynamic aspect is and how it is
visualized. Dynamic aspect can be defined as the snap shot of the running system at a particular moment.
We have two types of interaction diagrams in UML. One is sequence diagram and the other is a collaboration
diagram. The sequence diagram captures the time sequence of message flow from one object to another and the
collaboration diagram describes the organization of objects in a system taking part in the message flow.
So the following things are to identified clearly before drawing the interaction diagram:
Objects taking part in the interaction.
Message flows among the objects.
The sequence in which the messages are flowing.
Object organization.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Following are two interaction diagrams modeling order management system. The first diagram is a sequence
diagram and the second is a collaboration diagram.
The Sequence Diagram:
The sequence diagram is having four objects (Customer, Order, SpecialOrder and NormalOrder).
The following diagram has shown the message sequence for SpecialOrder object and the same can be used in
case of NormalOrder object. Now it is important to understand the time sequence of message flows. The
message flow is nothing but a method call of an object.
The first call is sendOrder () which is a method of Order object. The next call is confirm ()which is a method
of SpecialOrder object and the last call is Dispatch () which is a method of SpecialOrder object. So here the
diagram is mainly describing the method calls from one object to another and this is also the actual scenario
when the system is running.
Result: Thus, I have studied and developed Sequence Diagram of an order Management system.
PRACTICAL NO.06
Aim: Prepare Collaboration Diagram for assigned system.
Software Required: Star UML
The Collaboration Diagram:
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
The second interaction diagram is collaboration diagram. It shows the object organization as shown below. Here
in collaboration diagram the method call sequence is indicated by some numbering technique as shown below.
The number indicates how the methods are called one after another. We have taken the same order management
system to describe the collaboration diagram.
The method calls are similar to that of a sequence diagram. But the difference is that the sequence diagram does
not describe the object organization where as the collaboration diagram shows the object organization.
Now to choose between these two diagrams the main emphasis is given on the type of requirement. If the time
sequence is important then sequence diagram is used and if organization is required then collaboration diagram
is used.
Result: Thus, I have
studied and developed Collaboration Diagram of an order Management system.
PRACTICAL NO.07
Aim: Prepare Activity Diagram for assigned system.
Software Required: Star UML
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
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 of activity diagram:
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.
Way to draw Activity Diagram:
Activity diagrams are mainly used as a flow chart consists of activities performed by the system. But activity
diagram are not exactly a flow chart as they have some additional capabilities. These additional capabilities
include branching, parallel flow, swim lane etc.
Before drawing an activity diagram we must have a clear understanding about the elements used in activity
diagram. The main element of an activity diagram is the activity itself. An activity is a function performed by
the system. After identifying the activities we need to understand how they are associated with constraints and
conditions.
So before drawing an activity diagram we should identify the following elements:
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Activities
Association
Conditions
Constraints
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.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Result: Thus, I have studied and developed Activity Diagram of an order Management system.
PRACTICAL NO.08
Aim: Prepare Component Diagram for assigned system.
Software Required: Star UML
Overview:
Component diagrams are different in terms of nature and behavior. 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.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
Purpose of Component diagram:
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.
Way to draw Component Diagram:
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.
This diagram is very important because without it the application cannot be implemented efficiently. A well
prepared component diagram is also important for other aspects like application performance, maintenance etc.
So before drawing a component diagram the following artifacts are to be identified clearly:
Files used in the system.
Libraries and other artifacts relevant to the application.
Relationships among the artifacts.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46
HVPM COET SUB: SOFTWARE ENGINEERING LAB
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.
Prepare a mental layout before producing using tools.
Use notes for clarifying important points.
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:
Result: Thus, I have studied and developed Component Diagram of an order Management system.
SUBMITTED BY: SUNAD GAWANDE ROLL NO.: 46