252211se Exp4 C37
252211se Exp4 C37
252211se Exp4 C37
TUS3F202128 C37
PART A
Experiment No.04
A.1 Aim:
Identify scenarios & develop UML Use case for the selected mini project
A.2 Prerequisite:
1. Preliminary requirements
A.3 Outcome:
After successful completion of this experiment students will be able to
Refine requirements from a set of preliminary requirements and able to identify actors and
possible use cases.
Able to model requirements using UML
A.4 Theory:
Use case diagrams
Use case diagrams belong to the category of behavioural diagram of UML diagrams. Use case
diagrams aim to present a graphical overview of the functionality provided by the system. It
consists of a set of actions (referred to as use cases) that the concerned system can perform,
one or more actors, and dependencies among them.
Actor
An actor can be defined asan object or set of objects, external to the system, which interacts
with the system to get some meaningful work done. Actors could be human, devices, or even
other systems.
For example, consider the case where a customer withdraws cash from an ATM. Here,
customer is a human actor.
Primary actor: They are principal users of the system, who fulfill their goal by availing some
service from the system. For example, a customer uses an ATM to withdraw cash when he
needs it. A customer is the primary actor here.
Supporting actor: They render some kind of service to the system. "Bank representatives",
who replenishes the stock of cash, is such an example. It may be noted that replenishing
stock of cash in an ATM is not the prime functionality of an ATM.
In a use case diagram primary actors are usually drawn on the top left side of the diagram.
Use Case
Continuing with the example of the ATM, withdraw cash is a functionality that the ATM
provides. Therefore, this is a use case. Other possible use cases includes, check balance, change
PIN, and so on.
Use cases include both successful and unsuccessful scenarios of user interactions with the
system. For example, authentication of a customer by the ATM would fail if he enters wrong
PIN. In such case, an error message is displayed on the screen of the ATM.
Subject
Subject is simply the system under consideration. Use cases apply to a subject. For example, an
ATM is a subject, having multiple use cases, and multiple actors interact with it. However, one
should be careful of external systems interacting with the subject as actors.
Graphical Representation
An actor is represented by a stick figure and name of the actor is written below it. A use case is
depicted by an ellipse and name of the use case is written inside it. The subject is shown by
drawing a rectangle. Label for the system could be put inside it. Use cases are drawn inside the
rectangle, and actors are drawn outside the rectangle, as shown in fig.
A use case is triggered by an actor. Actors and use cases are connected through binary
associations indicating that the two communicates through message passing.
An actor must be associated with at least one use case. Similarly, a given use case must be
associated with at least one actor. Association among the actors are usually not shown.
However, one can depict the class hierarchy among actors.
Include relationship
Extend relationship
Include Relationship
Include relationships are used to depict common behaviour that are shared by multiple use
cases. This could be considered analogous to writing functions in a program in order to avoid
repetition of writing the same code. Such a function would be called from different points
within the program.
Example
For example, consider an email application. A user can send a new mail, reply to an email he
has received, or forward an email. However, in each of these three cases, the user must be
logged in to perform those actions. Thus, we could have a login use case, which is included
by compose mail, reply, and forward email use cases. The relationship is shown in figure - 02.
Notation
Include relationship is depicted by a dashed arrow with a «include» stereotype from the
including use case to the included use case.
Extend Relationship
Prathmesh Gaikwad
TUS3F202128 C37
Use case extensions are used used to depict any variation to an existing use case. They are used
to the specify the changes required when any assumption made by the existing use case
becomes false.
Example
Let's consider an online bookstore. The system allows an authenticated user to buy selected
book(s). While the order is being placed, the system also allows to specify any special shipping
instructions, for example, call the customer before delivery. This Shipping Instructions step is
optional, and not a part of the main Place Order use case. Figure - 03 depicts such relationship.
Notation
Extend relationship is depicted by a dashed arrow with a «extend» stereotype from the
extending use case to the extended use case.
Generalization Relationship
Generalization relationship are used to represent the inheritance between use cases. A derived
use case specializes some functionality it has already inherited from the base use case.
Example
To illustrate this, consider a graphical application that allows users to draw polygons. We could
have a use case draw polygon. Now, rectangle is a particular instance of polygon having four
sides at right angles to each other. So, the use case draw rectangle inherits the properties of
the use case draw polygon and overrides it's drawing method. This is an example of
generalization relationship. Similarly, a generalization relationship exists between draw
rectangle and draw square use cases. The relationship has been illustrated in figure - 04.
Prathmesh Gaikwad
TUS3F202128 C37
Notation
Generalization relationship is depicted by a solid arrow from the specialized (derived) use case
to the more generalized (base) use case.
Identifying Actors
Given a problem statement, the actors could be identified by asking the following questions:
Who gets most of the benefits from the system? (The answer would lead to the
identification of the primary actor)
Who keeps the system working? (This will help to identify a list of potential users)
Any interface (interaction) between the concerned system and any other system?
Once the primary and secondary actors have been identified, we have to find out their goals
i.e. what are the functionality they can obtain from the system. Any use case name should start
with a verb like, "Check balance".
Following general guidelines could be kept in mind while trying to draw a use case diagram:
Use cases identified should let some meaningful work done by the actors
Prathmesh Gaikwad
TUS3F202128 C37
Associate the actors and use cases -- there shouldn't be any actor or use case floating
without any connection
Use include relationship to encapsulate common behaviour among use cases , if any
PART B
(PART B: TO BE COMPLETED BY STUDENTS)
Grade:
B.2 Conclusion:
Hence, we successfully learned & implement Use Case Diagram for our selected Mini-
Project of Vehicle Rental System.
Q1: What do you mean by functional requirements? How to model functional requirements?
Ans: A Functional Requirement (FR) is a description of the service that the software must offer.
It describes a software system or its component. A function is nothing but inputs to the
software system, its behavior, and outputs. It can be a calculation, data manipulation, business
process, user interaction, or any other specific functionality which defines what function a
system is likely to perform. Functional Requirements in Software Engineering are also
called Functional Specification.
Q2: List of various elements of use case diagram and specify there graphical notation.
Ans: Use case diagram components:
Common components include:
1. Actors: The users that interact with a system. An actor can be a person, an organization, or
an outside system that interacts with your application or system. They must be external objects
that produce or consume data.
2. System: A specific sequence of actions and interactions between actors and the system. A
system may also be referred to as a scenario.
3. Goals: The end result of most use cases. A successful diagram should describe the activities
and variants used to reach the goal.
Prathmesh Gaikwad
TUS3F202128 C37
Q3: What are various types of relationships use in UML use case diagram? Explain.
Ans:
There can be 5 relationship types in a use case diagram.
Check out the use case diagram guidelines for other things to consider when adding an actor.
Generalization of an Actor: Generalization of an actor means that one actor can inherit the
role of the other actor. The descendant inherits all the use cases of the ancestor. The
descendant has one or more use cases that are specific to that role. Let’s expand the previous
use case diagram to show the generalization of an actor.
Prathmesh Gaikwad
TUS3F202128 C37
The extending use case is dependent on the extended (base) use case. In the below
diagram the “Calculate Bonus” use case doesn’t make much sense without the “Deposit
Funds” use case.
The extending use case is usually optional and can be triggered conditionally. In the
diagram, you can see that the extending use case is triggered only for deposits over
10,000 or when the age is over 55.
The extended (base) use case must be meaningful on its own. This means it should be
independent and must not rely on the behavior of the extending use case.
Lets expand our current example to show the <<extend>> relationship.
Prathmesh Gaikwad
TUS3F202128 C37
Although extending use case is optional most of the time it is not a must. An extending use
case can have non-optional behavior as well. This mostly happens when your modeling
complex behaviors.
For example, in an accounting system, one use case might be “Add Account Ledger Entry”. This
might have extending use cases “Add Tax Ledger Entry” and “Add Payment Ledger Entry”.
These are not optional but depend on the account ledger entry. Also, they have their own
specific behavior to be modeled as a separate use case.
The base use case is incomplete without the included use case.
The included use case is mandatory and not optional.
Lest expand our banking system use case diagram to show include relationships as well.
Prathmesh Gaikwad
TUS3F202128 C37
************************