UML & Design Patterns Lab
Week 1:
Familiarization with Rational Rose or Umbrello or Visual Paradigm
UML BASICS
Unified Modeling Language
UML is a standard language for specifying, visualizing, constructing, and documenting the
artifacts of software systems
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
Object
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.
The top section is used to name the class.
The second one is used to show the attributes of the class.
The third section is used to describe the operations performed by the class.
The fourth section is optional to show any additional components.
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.
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.
Use case Notation:
Use case is represented as an eclipse with a name inside it. It may contain additional
responsibilities.
Use case is used to capture high level functionalities of a system.
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.
Initial State Notation:
Initial state is defined to show the start of a process. This notation is used in almost all
diagrams.
Initial state
The usage of Initial State Notation is to show the starting point of a process.
Final State Notation:
Final state is used to show the end of a process. This notation is also used in almost all
diagrams to describe the end.
Final state
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.
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:
Sequential (Represented by sequence diagram)
Collaborative (Represented by collaboration diagram)
Activity Notation:
State machine Notation:
State machine describes the different states of a component in its life cycle. The notation
is described in the following diagram.
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.
Package
Annotational Things:
In any diagram explanation of different elements and their functionalities are very
important. So UML has notes notation to support this requirement.
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
DependencyNotation:
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. Dependency is used to
represent dependency between two elements of a system.
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.
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.
Association is used to represent the relationship between two elements of a system.
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. Generalization is used to
describe parent-child relationship of two elements of a system.
Extensibility Notation: All the languages programmingormodeling have some mechanism to
extend its capabilities like syntax, semantics etc. UML is also having the following mechanisms
to provide extensibility features.
Stereotypes( Representsnewelements)
Tagged values (Representsnewattributes)
Constraints (Representstheboundaries)
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
Installing Visual Paradigm on Windows
Having downloaded the installer of Visual Paradigm, execute it, run through the installation to
install Visual Paradigm. If you are using the InstallFree version, you just need to unzip it and
run Visual Paradigm directly.
Using installer (.exe)
1. Execute the downloaded Visual Paradigm installer file. The setup wizard appears as below.
Visual Paradigm welcome screen
2. Click Next to proceed to the License Agreement page.
3. Read through the license agreement carefully. Make sure you accept the terms before continuing
with the installation. If you accept the agreement, select I accept the agreement and
click Next to proceed to the Select Destination Directory page.
4.
The License Agreement
Specify the directory for installing Visual Paradigm. Click Next to proceed to the next page.
5. Specify the name of the Start Menu folder that will be used to store the shortcuts. Keep Create
shortcuts for all users checked if you want the shortcut to be available in all the user accounts in
the machine. Click Next to proceed.
6. In the File Association page, keep Visual Paradigm Project (*.vpp) checked if you want your
system able to open the project file upon direct execution (i.e. double click). Click Next to start the
file copying process.
7. Upon finishing, you can select whether to start Visual Paradigm or not. Keep Visual
Paradigm selected and click Finish will run Visual Paradigm right away.
Week 2:
Customer Support System
Take an Example of Online Shopping
a) Identify and analyze events
View Items
-Search Items
-Browse Items
-View Recommended Items
-Add Shopping cart
-Add Wish List
Check Out
-Customer Authentication
-View/Update Shopping cart
-Calculate Taxes and shipping
-Payment
Customer Authentication
-Usersign-In
-Remember Me
b) Identify Use cases
View Items
Check Out
Make Purchase
Client Register
Login
Logout
View order status
Request order
Finish Order
Payment
Order cancellation
Change account information
Search Products
c) Develop event table
Customer Order Product Database
Customer registered +
Unsubscribed +
Customer
Product Add to cart * * *
Product Remove * * *
fromcart
Place Order * + * *
Finish Order *
Product registration + *
Order Processing * * *
Product Shipment + *
Product Delivery *
* Event can occur zero to many times
+ Event can occur zero to one time
d) Identify & analyze domain classes
e) Represent use cases and a domain class diagram using Rational Rose
f) Develop CRUD matrix to represent relationships between use cases and problem
domain classes
Data Entity CRUD Resulting Usecase
Create Add new Customer
Read/Report Find Customer
Customer Generate Customer List
Update Update Customer information
Delete Delete inactive customer
Create Create New Order
Read/Report View Order
Order View Order history
Update Update order
Delete Cancel order
Create Add new inventory item
Read/Report View inventory item
Find inventory item
Inventory Item
Generate inventory item List
Update Update inventory item
Delete Delete inventory item
Create Create New Shipmnent Request
Read/Report View Shipment Details
Generate Shipment Report
Shipment
Update update shipment request
Delete cancel shipment request
Week 3:
Point-Of-Sale Terminal
a) Identify and analyze events
cashier
login
cash out
receipt generation
scan item
Customer
Purchase Item
Select Item
Payment by cash
Refund item
Manager
List of all items purchased
Stock of available Items
Add new Items
Delete Items
Manage sales-view sales details
Check out
Scan item
Calculate tax
Payment
Product Cat log
Show product
Add new Product
b) Identify Use cases
Enter Item
By item
Get balance
Manage stock
Update stock
Delete item
View sales details
View product description
Make payment
Quantity
c) Develop event table
Customer Sales Product Database
Item * *
Payment *
Buy item * * * *
Status of Stock * * *
Product check out *
Customer register + * *
Customer login +
d) Identify & analyze domain classes
e) Represent use cases and a domain class diagram using Rational Rose
Usecase Diagram:
Class Diagram:
f) Develop CRUD matrix to represent relationships between use cases and problem
domain classes
Data entity CRUD Resulting user case
Add new customer
Create Find customer
Customer Read/Report Generate customer
Purchase list
Update customer information
Update Delete inactive customer
Delete
Create Add new inventory item
Read/Report View item
Inventory item Generate item list
Update Update Item list
Delete Delete Item list
Create Add new Sales item
Read/Report View sales
Sales View sales item
Update Update sales Item
Delete Delete sales item
Week 4:
Library Management System
a) Identify and analyze events
Books:
Search Books
View Books
Add books
Remove Books
Transaction:
Return Book
Search Book
Search Student
Borrow Book
Register:
Register-Student
Register-Staff
Report:
Borrower List
List of Available Books
Administrator:
Add Books
Manage User Accounts
Update Books
Remove Book
View/Edit:
View Student
View Staff
Edit Student
Edit Staff
View Books
Edit Books
Reader services:
References
generals
b) Identify Use cases
Scan id
Register
View Books
View Members
Search Books
Issue Books
Return Books
Add/Remove Books
Add/Remove Members
Check issued book is Issued Book / Reference Book
Check the Member Registered Member or not
c) Develop event table
Student Librarian Admin Data base
Register + + +
View Books * * * *
Search Books * * * *
Add Books * *
Issue Books * *
d) Identify & analyze domain classes
e) Represent use cases and a domain class diagram using Rational Rose
Class Diagram:
f) Develop CRUD matrix to represent relationships between use cases and problem
domain classes
Data Entity CRUD Resulting Use case
Create Add new Student
Read/Report Find new Student
Student Generate Student Reserve list
Update Update Student Information
Delete Delete Passed out student
Create Add new Book
Read/Report View Books
Book Search Books
Update Update Book list
Delete Delete Books list
Create Add new Books
Read/report View Books
Librarian Search Books
Update Update Student/Book list
Delete Delete Student/Book list