86% found this document useful (7 votes)
8K views312 pages

CS8592 - Object Oriented Analysis and Design.

OOAD local author book for Anna university R2017. BASED ON ANNA UNIVERSITY SYLLABUS

Uploaded by

Jusu tisu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
86% found this document useful (7 votes)
8K views312 pages

CS8592 - Object Oriented Analysis and Design.

OOAD local author book for Anna university R2017. BASED ON ANNA UNIVERSITY SYLLABUS

Uploaded by

Jusu tisu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 312

SUBJECT CODE : CS8592

Strictly as per Revised Syllabus of


Anna University
Choice Based Credit System (CBCS)
Semester - V (CSE)
Semester - VI (IT)

Object Oriented
Analysis & Design
Mrs. Anuradha A. Puntambekar
M.E. (Computer)
Formerly Assistant Professor in
P.E.S. Modern College of Engineering,
Pune

® ®
TECHNICAL
PUBLICATIONS
SINCE 1993 An Up-Thrust for Knowledge

(i)
Object Oriented Analysis & Design
Subject Code : CS8592

Semester - V (Computer Science & Engineering)


Semester - VI (Information Technology)

First Edition : January 2020


Second Revised Edition : June 2020

ã Copyright with Author


All publishing rights (printed and ebook version) reserved with Technical Publications. No part of this book
should be reproduced in any form, Electronic, Mechanical, Photocopy or any information storage and
retrieval system without prior permission in writing, from Technical Publications, Pune.

Published by :
® ®
TECHNICAL Amit Residency, Office No.1, 412, Shaniwar Peth,
Pune - 411030, M.S. INDIA, Ph.: +91-020-24495496/97
PUBLICATIONS
SINCE 1993 An Up-Thrust for Knowledge Email : [email protected] Website : www.technicalpublications.org

Printer :
Yogiraj Printers & Binders
Sr.No. 10\1A,
Ghule Industrial Estate, Nanded Village Road,
Tal-Haveli, Dist-Pune - 411041.

ISBN 978-93-89420-90-6

9 789389 420906 AU 17

9789389420906 [2] (ii)


Mind Map : Chapter 1 : Unified Process and Use Case Diagrams

Inception

Elaboration

Construction Phases

Transition
Actors
Production Unified Process
Scenarios
Business Modeling
Use Cases
Requirements Analysis and Gathering
Discipline Use Case Diagram Use Case Models
Design
Include
Implementation
Relationships Extend

Generalization
Unified Process and
Use Case Diagrams

Class Diagram

Object Diagram
Basic Concept of OOAD Component Diagram

Use Case Diagram

UML Diagram Sequence Diagram

State Diagram

Activity Diagram

Deployment Diagram

Package Diagram
Mind Map : Chapter 2 : Static UML Diagrams

Time Boxed Iteration Classifier

Design of Corepart in Stepwise Manner Attributes and Association Lines

Realistic Testing Key Ideas and Practices Notes, Constraints and Methods
Elaboration
Detailed Design of Use Cases Stereotypes, Profiles, and Tags

Feedback from Users and Developers Property and Property Strings

Generalization and Abstract Classes

Dependency
Symbol Class Diagram
Interface
Intension Conceptual Classes Constraints
Extension Static UML Diagrams Association Classes

Qualified Association

Template Classes and Interfaces


Finding Conceptual and Description Classes
Active Class
Finding Attributes
Design Examples
Associations
Domain Modeling
Domain Model Refinement

Finding the Class Hierarchy

Finding Aggregation and Association


Mind Map : Chapter 3 : Dynamic and Implementation UML Diagram

Sequence Diagram
Interaction Diagram
Collaboration Diagram

State Machine Diagram and Modeling


Dynamic Modeling
Time Line Activity Diagram

Messages Package Diagram

Component and Deployment Diagram Component


Box
Subsystem
Activation Box
Component Diagram
Stereotype
Conditional Logic Sequence Diagram
Examples
Cross at the Bottom
Component and
Device Node
Relationship between Deployment Diagram
Use Case and Execution Environment Node
Sequence Diagram
Deployement Diagram Communication Path
Examples
Artifact

Examples
Dynamic and
Objects and Links
Implementation Domain Layer
Messages and Stimulus UML Diagram
Collaboration Diagram Logical Architecture with Layers Application Logic Layer
Active Objects
Package Diagram Domain Object
Examples
Model View Separation

Examples
States and Transitions

Events State Machine Diagram and Activity and Actions

Complex Notations Modeling Initial and Final Activity

Examples Activity Edge

Activity Diagram Decision and Merge Points

Fork and Join

Swimlane

Examples
Mind Map : Chapter 4 : Design Patterns

Basic Concept

Object Design with Responsibilities

Creator
Collection Classes in Code
Information Exprert GRASP
Mapping Design Exception and Error Handling
Low Coupling GRASP Patterns
to Code Order of Implementation
High Cohesion
Test Driven Development
Controller

Design Patterns
Adapter Pattern
Pattern Name
Singleton Pattern
Problem Applying GOF Pattern
Factory Pattern
How to Write Pattern
Solution
Observer Pattern
Consequences

Creational Design Pattern Factory Method

Bridge
Structural Design Pattern
Types of Design Pattern Adapter

Strategy
Behavioural Design Pattern
Observer
Mind Map : Chapter 5 : Testing

Units for Object Oriented Testing

Implication of Composition and


Encapsulation

Implication of Inheritance

Testing Issues Implication of Polymorphism

Method Testing
Rambaugh's OMT Model
Class Testing
Object Oriented Levels of Object Oriented Testing
Booch's Methodology
Methodologies Integration Testing
Object Oriented Business Engineering
System Testing

Testing

Developing Test Case Test Cases


Definition and Test Plan Test Plan
Software Quality
Goal
Assurance
SQA Acitvities
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


Functional Object Object Implementation
requirements Oriented Oriented specification
Analysis Design
Model Model

Visualization Representation of
of domain domain concept in
concept object oriented language

Customer public class Customer


Domain {
concept private int Account_No;
Account_No
Name private string Name;
Address private string Address;
Phone private int Phone;

public getCustomerInfo()
Customer {  }
getCustomerInfo()
}
Inception Elaboration

Planning

Communication Modeling

Construction Construction

Deployment

Transition
Release
Software increment Production
Development cycle

Inception Elaboration Construction Transition

Iterations

Milestone Release Final production


release
Business
modeling
Requirements
Design

Implementation

Testing
Amount of
Deployment work done
in deployment
Change management phase
Project management

Environment

Iteration
Online Cake Store

Add Cake to
Cart

Change Quantity
of added cakes

Customer
Cancel Order

Checkout
Conceptual
Bank Customer perspective
(domain value)
1 has 2
Account_No

Bank Specification
Customer or
Customer 1 implementation
1 2 perspective
Customer 2 Account_No: int

getAcctNo: int
Show_database()
Concerns: Concern : system
Functionality, Configuration and assembly
vocabulary Users : Programmer
Users : End user, tester

Logical view Implementation

Class, object Diagram,


Component
Composite structure,
Diagram
Package, State Machine

Use Case View

Use Case Diagram


Interaction Diagram

Process view Deployment View

Class, Diagram,
Deployment
Composite structure,
Diagram
Object Diagram

Concern : Scalability, Concern : System delivery


throughput, performance and installation
Users : Analyst, Integrator Users : System engineer
Actor Action
ATM
transaction

Submits
<<include>>
form

User
Validate
customer

System
Invalid login
<<extend>>

logs in

<<include>> <<include>>
Include relationship
Actor Enters Enters
username password

Issue book
Borrower Issue Magazine
Generalization

Librarian
Issue item

<<include>>

Student Staff
Check availability

return Book

<<extend>>

pays fine
Extended relationship
System
Session

<<include>> Invalid PIN


<<extend>>
Transaction

Deposit Balance enquiry


Bank
Withdrawal

Customer
Insufficient
<<include>> balance
<<include>>
<<extend>>
Dispense money Check account balance

Deepthi super market

Place Order
<<include>>
<<include>>
<<include>>
Enter
Enter items and
Enter
Account Quantities
name and
number
password

Invalid Input
<<extend>>
Validate Input

User
Update
Database

Admin
General
Receipt
<<include>>
total
<<include>> <<include>> cost

expected
Order no. ship date

Display Receipt
<<Include>>
Pay For Product

<<include>>
<<include>>
<<include>>
Cash Payment Cheque Payment
Customer

Credit Payment

Browse
–––––––––
Name
Product ID

<<extend>> <<extend>>
(Name) (Product ID)

Customer
Browse by Browse by
Name Product ID

<<extend>>
Place an
order

Place Place
Customer order by order by
telephone internet
Schedule
Make appointment
Registration extension point
<<extend>>
Doctors Availability
<<include>>

Make Patient
Admission

OPD Admission IPD Admission

<<include>>

Ward Allotment

Food Ordering System

View Menu
+place order

Customer Order Food +confirm Order

+makes payment
Serve Food

Cook Food
Chef
Eat Food
+receive order

Pay for Food +accept payment

Waiter Leaves the Cashier


Restaurant
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


Bank

Name
Branch
City

1
has
0 
Customer Account
1 has 1
Name Status
Address
Account_No

Savings Current

University Registration System


Student Courses
+ Date
StudentName + CourseID
Address + CourseName
Eligibility + Interacts with + getCourseDetails() +Credit
+setCourseDetails(CourseID) CourseID
+processData() +Duration
+accessDatabase()
+updatabase()
Book

Title
ISBN Symbol
Issue_Date
Return_Date

A book is used for issuing


and returning it Intension

Book_1

Book_3 Extention
Book_2

Book_4
Patient
+Name This is worst way
+Name of Test of representing the
+Date class
+Name of Doctor
+Description of test
+Results

Test
+Name Patient This is better way
+Name of Test Conducted for of representing the
+Date +Name classes
+Name of Doctor * *
+Description of Test
+Results
Account
Customer
has +Type This is worst way
+Name +BranchName of representing the
1  class
+AccNumber

Account
This is better way
+Type of representing the
+BranchName class

Described by

1
Customer AccountDescription
has
+Name 1  +AccNumber
Customer ATM Console

ATM Card Session Transaction

Cash Dispenser Withdrawal


Hospital
OperationalStaff Department

Patient

AdministrativeStaff
Receptionist
Test

Doctor

Nurse
Attributes
Flight

+Name: FlightName
–/DateTime: Date

Derived Attributes

Flight

+Name: FlightName[0..1]
–/DateTime: Date
– denotes private visibility Multiplicity can be
+ denotes public visibility denoted (optional)

Customer
It should not be
+Name attribute
Worse
+AccNumber

Customer Account
Has
Better +Name +AccNumber
1 1
Patient

+Name
Worse
+TestName

Patient Test
Undergoes through
Better +Name +TestName
1 

Item Weight
Has
+Quantity: Number +
 1
Association Relationship
between two classes

Account
Customer
Has +Type
+Name  +BranchName
1
+AccNumber
Librarian Issues Library Card
1 
Teacher Subjects
Class Teaches
diagram 1 1

Rina : Teacher Computer : Subjects


Teaches

Smita : Teacher Electrical : Subjects


Object Teaches
diagram

Sanjay : Teacher Mechanical : Subjects


Teaches
Tests
+name
+date
+time
+class
+marks
+status()

Monthly Test Annual Test


Car DVD Player

Car Steering

Vehicle Driver Vehicle Engine


Transaction

– session
Protected – card no
– pin
+ time

Public + create transaction()


+ perform transaction()
Protected # getmessages()
Package ~ reconfigure()
Console

1
Contains
1
ATM
Customer Cash Dispenser Cash
Operates +ATMID Contains Dispenses
+Name +BankName
 1 1 1 +DateTime 1  +Amount
+AccNumber +BranchName
+Address

1
Inserts 1
Creates
1 
ATM Card Session Transaction
Establishes +SessionID Has
+CardID +Type
  +Type 1  +DateTime
+Amount

+Is of type
Is of type
+Is of type
Withdrawal Deposit

Balance Enquiry
ATM

Session

Transaction

Withdrawal Balance Enquiry Deposit


Domain Model(Conceptual Perspective)

Card Card
–number Establishes –ATMID
1 1 –PIN
–SessionState

Design Model(Software Perspective)

Card Card
–number currentSession –ATMID
1 –PIN
+Card(int number) –SessionState
+getCardNo()
+Session()
+PerfromSession()
+setPIN()
Patient Test
+Name +TestName Attribute text

Patient Test
TestName
+Name Association Line
1 

Patient Test
Test Conducted
+Name +TestName Both
1 
Association line Class name

Card currentSession Session


–Number –ATMID:int Attributes
–PIN:int
+Card(int number) 1
Multiplicity –SessionState:int
+getCardNo() {ordered}
+Session()
Public ...gets ejected +PerfromSession()
visibility on completion Property string +setPIN()
...Beeps on
Responsibilities completion

This is a simple Note


Declaring
Stereotype

<<computer>>
vendor = "DELL"
processor = "intel" Tagged values
memory = "4GB"
INSPIRON
Account

 Generalization

Current Account Savings Accounts


 
 
Person
–ID: int Abstract Class is
–Name: String shown in italics
+Address: String
+issue book()

Student Teacher
–Class: String –Salary
–Marks
+Registers() +Registers()

Shopping cart Item

Client Supplier
Order Item
<<use>>

Database Connection
<<create>>

Search Engine Search Web Page

Socket Line Notation

<<interface>>
Search Engine
Search Web Page

Dependency Notation
Search Engine
Search Web Page
... Display

getpg ()

Socket Line Notation


Search Engine Search Web Page

... Display

getpg ()

Lollipop Notation
Car DVD Player

ATM System

Cash Dispenser Console CardReader


Postcondition

Queue {postcondition:rear = rear+1}


-size: int{rear< = MAXSIZE}

+insert(item)
+delete(): int {
postcondition:front = front–1
}

Course Student
StudentID : int
1 1
Course
Student
–CourseName
–Name –CourseID
–StudID +Enrolls for
–Fee
–Address  
+Allocate_Student()
+Check_Eligibility()
+Cancel_Allocation()
+SelectCourse()
+Update_Course

Enrollment
–Marks
+Calculate_Avg_Marks()

ServiceResourse 1

Underlined object
+instance : ServiceResourse
indicates that it is
a static member
–getInstance(): ServiceResource
T
<<interface>>
List

Parameterized template class.


The T can be of any data type
DisplayList(item:T):void

List<T–>Student>

T
<<interface>>
List

DisplayList(item:T):void

<<bind>>T–>Student

StudentList
StudentList
–name:String
–ID:int

+Getdetails()
+DisplayList()
Exception Thrown
IOException

Responsibilities
Serialize and
deserialize the objects

Class 1

CommandProcessor
<<interface>>

run()
run()
File System

1
Disc * File
*
+capacity *
+create()
+compress()
1 * * +delete()
* +rename()
0..1 * +copy()
Drive tracks
+driveletter

Data File Directory File


1
+name
* +execute() +listnames()
Sectors

ASCII File Binary File


+type
+dateofcreation
+print() +size
Hotel
HotelChains +HotelID
+Name
+Code +Address
+name +webaddress
+Phone
Room
*
+roomNumber
Manager +isoccupied
+id *
+name *
+phone
* Booking
+generatereport()
Customer +takesstock() +bookingdate
+noofDays
+ID +keepstatus() Executive
+name
+address Normal +ACorNonAC
+city generates +extrafacilities
+phone +ACorNonAC
+stayperiod
+roomNumber Bill
+Billamount
+BillNo
+check_in() +CustomerID
+check_out() Phone +books Receptionist
+paysBill() Internet
+orderfoodItems() +Id
+name
+phone
Program

name
purpose
author

compile
link
execute
debug

1
*
Statement

Expression Function
String 1 1

evaluate 1 1
ArgumentList ReturnType

noofArguments DataType

Variable Constant Operator

RelationalOperator ArithmeticOperator
Car 1 Car Dealer
Owns
*
* Model year Sells
1 1
Lien
Owner
name 1 Borrows *
address
* Car Loan
AccountNo.
RateofInterest
Balance

*
Person Company Bank
Provides
email Phone Branch
** 1

Drawing Object *
2..

0..1
Text Geometric Object Group

Point Polygon

Ordered Set of Points


Person Document
Owns
1 *
Copy

*
Paragraph

Copy

*
Character

Copy
Project Student
1 3...5

1...3

1 Guide

Student Student Student


name = " KK" name = " QQ" Student Student
name = " TT"
name = "LL" name = "VV"

Student
Project Student
Project
name = "RR"
Title = "AAA" name = "M"
Title = "BBB"

Guide
name = "ABC"
University

+has +has
* *
Room Department
+ID +name

+has 1

1..*
Classroom Office Person
+no_of_seats +ID
+name +is enrolled
1

+works in

1..* *
Employee Professor

Associate professor Assistant professor

Country Citizen
+has
1 1..*

Country Citizen
1 +has
Adhar ID
1
Qualifier Multiplicity
reduced to 1
Customer + orders ElectronicGadget

Television Washing Machine


+screen_size : double +Capacity : int
+Color : String +Color : String
+Mounting : String +type_of_loading : String

LCD TV LED TV

Book

TableOfContents Preface Chapters Index

Sections
User
ID
Name
Email
Chairperson Attendee
attendance_type Meeting_Entry
Meeting_date attendance_status
Meeting_Time
Meeting_Location
Attendance_List

meeting
Room
Meeting_ID
Agenda Room_No
Scheduler
Data
Date Time
Time Duration
Location

Shape

OpenShape ClosedShape

Line Circle Ellipse


Composition

Library Card
Card Reader +CardNo
+ Model +ExpiryDate

+ ReadCard() +BorrowBook()

+has

Library Librarian
Student +Name
+visits +CollegeName
+Student D +Phone
+Name +Qualifiction
+Class +ManageTransaction()
+Address +AccessDatabase()
+issue_ Book() Association +Update Database()
+Return_Book()

Book Magazine
+Title +Name Aggregation
New Member Existing Member +ISBN +Year
+Author +Status()
+Publisher
+Edition
+Status()
+headoffice
Bank
* +name
+1 +code
Branch
+Branch_ID +addBranch()
+Branch_name * 1
+getBranch()
+Address +getAllBranches()
+addAccount()
+removeAccount()
+getAccountInfo()

Account
Customer +Acc_no
+balance
+cust_ID
+Name +deposit()
+Address 1 1 +withdraw()
+Phone +getBalance()

Savings_Account Current_Account
Customer

id : int ShoppingCart
address : string 1 1 1 1
phone : int Account created : Date
email : string
id : int
scrolls() address : string 1
placesorder() open : Date
makespayment() 1
1
transaction()
Order
*
1 number : string
ordered : Date
shipped : Date
0 destination : Address
total : int
Payment
1

Responsibility- 1
-Payment details

CreditCard CashOnDelivery
Company Department

name name
addr Has
phone 1 addemp()
email 1 removeemp()
displayallemp()
addDept()
removeDept()
displayallDept() 1

Has

1

Project Employee
Assigned
with
name
details 1 1

schedule()
status()

PermanentEmp HourlyEmp

name name
id no_of_work_hours
dateofJoin
salary

<<Include>>
<<extend>>
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


3 : Enters PIN ()

Object1
Object1 : ClassName1 Object2 : ClassName2 Object3 : ClassName3

1 : message1()

2 : message2()

3 : LoopMessage()

4 : message3()

5 : message4()

X
System
Session
<<include>>
Invalid PIN
<<extend>>
Transaction

Deposit Balance Enquiry


Bank
Withdrawal

Customer Insufficient
<<include>> balance

<<include>>
<<extend>>
Dispense money Check Account Balance
:Customer :ATM System :Bank

1 : Inserts Card()

[Validate PIN] Loop


2 : Request for PIN()

3 : Enters PIN()
4 : Submits PIN()
5 : ?Validates PIN()

6 : Valid PIN()

7 : Selects Withdrawal()

8 : Display Menu()

9 : Enters Amount()
10 : Check Account Balance()
11 : ?Balance>Amount()

12 : Valid Amount()

13 : Dispenses Cash()

14 : Collect Money From Slot()

15 : Display Account Balance()

16 : Ejects Card()
ATM System

Make Deposit

<<include>> <<include>>

Customer Cash Deposit Bank


Check Deposit
Customer Account Bank

1 : deposit

2 : process_deposit

3 : Acknowledge
1 1/4 * 1 1/4 3
Student Course
<<association>>
Course
<<paramenter>>
<<local>>

ExaminationSection Department Admission


<<global>>
1 1/4 1
<<self>>

sequence number role

2 : withdraw(Amount) 3 : notify()
c : Customer : Transaction : Bank
2.2 return(Amount)

connector
nested flow
2.1 checkBalance()

(a)

message

1 : submitForm() 2 : books()
p : Passenger : Reservation : Ticket

flat flow of control


(b)
Backward nested message

Forward nested message

Backward Flat message

Forward Flat message

backward asynchronous message

forward asynchronous message


Invoice : DisplayInvoice
Account
user:Person GUI:Login
Manager

1:enterUserName()

2:enterPassword()

3:pressSubmitButton()

4:send(userName,password)

5:validation()

6:status()

7:displayValidationMessage()

user : Person

1 : enterUserName()
2 : enterPassword()
3 : pressSubmitButton()
5 : validate()

7 : displayValidationMessage()
4 : send(userName,password)
Account
GUI : Login
Manager
6 : status()
a : Caller : Switch b : Callee

PickUpReceiver

activateDialTone()

dialNumber(n)

<<create>>
c.Communication
ring()

PickUpReceiver
Connect(b, a)
Connect(a)
Connect(b)

Caller and Callee


both start talking
to each other
after getting
connected

6 : Check Student eligibility

Reservation System

5 : Send for Reservation()


: Registrar 2 : Display()

7 : Eligibility Confirm()

4 : Submits Form()

10 : Registers for the Course ()

9 : Payment Confirmation() 3 : Select Course()

1 : View Courses()
: Student
8 : Pays Fees()

: Accountant
User ATM System

1 : Insert card

2 : Validate card

3 : Valid

4 : Insert PIN

5 : Validate PIN

6 : Valid

7 : Transaction

8 : Response
Librarian MemberRecord Book Book Database

1 : Validate member

2 : Valid member

3 : Check book availability

4 : Book available

5 : Check number of books issued

6 : Can issue new book

7 : Change book status as issued

8 : Update record

9 : Issue book

Member Librarian BookDatabase

1 : Request for book renew

2 : Find for book

3 : Book issued status

4 : Update member borrowing

5 : Confirm

6 : Renewal of book
Reservation system

: Student : Registrar : Accountant


1 : View courses()

2 : Display()
3 : Select course()

4 : Submits form() 5 : Send for reservation()

6 : Check student eligibility()

7 : Eligibility confirm()

8 : Pays fees()

9 : Payment confirmation()

10 : Registers for the course()

6 : Check student eligibility()

Reservation system
5 : Send for reservation()

: Registrar 2 : Display()
7 : Eligibility confirm()

10 : Registers for the course() 4 : Submits form()

9 : Payment confirmation()
3 : Select course()

1 : View courses()

8 : Pays fees() : Student

: Accountant
Customer Online shopping System Credit Card Processing Bank

1 : Purchase Items()

2 : Calculate Bill()

3 : Gives Bill()

4 : Swaps Card()

5 : Verify Card()

6 : Acknowledge()

7 : Process Card()

8 : Makes Transactions()

9 : Acknowledge()

10 : Submit Receipt()

11 : Makes Signature and Return()


/Stock Maintenance
/Order /inventory Manager /Stock Database
System

1 : Logs in()

4 : Demands items to fulfill


the order 2 : validate()

3 : Send validity()

5 : Check availability
status()

6 : Checking Availability()

7 : Checking availablity()

8 : Send availbility status()

9 : Progress order()

10 : Update()

11 : Update database()

12 : Generate Bill()

/Accountant

13 : Send Billing()

14 : Logs out()
User System

1 : Enters User ID

2 : Enter User Password

3 : validates

4 : Login Successful
/Order /Inventory Manager /Stock Maintenance /Stock Database
System

1 : Logs in()

2 : validate()

3 : Send validity()
4 : Demands items to fulfill the order()
5 : Check availability status()

6 : Checking Availability()

7 : Checking availability()

8 : Send availability status()

9 : Process order()

10 :Update()

11 : Update database()

12 : Generate Bill()
/Accountant

13 : Send Billing()

14 : Logs out()
Employee Admin Database

1: Enters EmpID and Password

2 : Verify employee details

3 : acknowledge

4: Submits number of hours worked

5: Submit details of the Sales made

6: Request for payment

7: Calculate Salary

8: Access database to notify changes

9: Pays Salary on last day of month


State
Event

Perform startup
Idle Active

Initial state

Transition
Transition action

Complete/Glow indicator
Reading card Requesting PIN
[Valid Card]

Guard condition

Active

Perform Display Performing transaction


startup

Validating Insert card

Idle
Reading card Complete

Perform
shutdown Complete

PIN
Requesting PIN Validating PIN
Validating
Inserts card Complete/Glow indicator
Request for Insert card Reading Card

Invalid Card Request for PIN


Validating

Finishing Transaction Complete


Transaction chosen
Ejecting Card Perform Transaction Chosing Transaction

Wants another Transaction

Select cancel

Answering Machine Caller hangs up

Playing announcement
Call detected/answer Call
Hung up and Shut off do/play announcement

Announcement
completes
Caller hangs up
Recording
do/record message


Microwave Oven Machine


time event

after (3 seconds)/send c.cook


Self transition Send Signal
event trigger
with parameter

SetTime(t)/[IsButtonPress] door closed event trigger


Ready To Cook Cooking
buttonPressed/turnONLight()

action
door opened door closed Interrupted

door open
alarm
Door Open

timed out

Completion
CookingComplete transition
request
Idle

Active appropriateFloor / checkFloor

Moving

appropriateFloor / stop

Stepping

stopped / opendoor

Door open

Door opened

Arrived At
Floor

Check Next Request


norequest request
Initializing
system

after (20 seconds)/selfTest

Idle
Clear
attention
Clear
Fire detection Alarm Command intruder detection Alarm
is submitted

Active Active

Checking attention Checking


attention

Calling Calling
waiting entry / waiting entry /
fireBrigade policeStation(s)

entry / setAlarm entry / setAlarm


exit / clearAlarm exit / clearAlarm

On

Push on button Print


Off Idle
documents

Working
Finished Load and
printing print
papers

Empty Load papers


tray

Full tray

Load Low
papers message

Low
Push off button
Tray tray
empty
Display time
do/display hrs & min

Set Hours
B/advance hour
do/display hours

Set Minutes
do/display hours B/advance hour
A

Inserting coin

Power up right amount entered


idle Inserting coin

Insufficient amount

Select for dispensing coffee

Press push button

Make coffee
Cup of coffee
Simple action
Pay Bill

x : = eval(a + b) expression
Purchase item() Generate code()

Initialization

Selects transaction

Flow

Enters Amount

Completion

Activity edge

Bill Customer Ship Item


Generate Make
Bill Payment
Bill

Object
Flow

Action1 [choice 1]

[choice 2] [choice 3]
Action2 Action4

Action3 [choice 3]

[Order Accepted] Action2

[Order]
Action1

[Order Rejected] Action3

Action1 [choice 1]

[choice 2] [choice 3]
Action2 Action4

Action3 [choice 3]
[condition is true] Action on
True

Decision Node Merge Node

Action of
[condition is false] False

Receive Order

[ Order Accepted ]

Process order [ Order Rejected ]

fork

Send Invoice Invoke Shipping Service


Synchronization
bar

Accept Payment

join

Dispatch Order

Close Order
swimlane

Finance Customer Service Order Fulfilment

Receive Order

[ Order Rejected ]
[ Order
Accepted ]

Submit order

Send Invoice

Invoke Shipping Service

Accept Payment

Dispatch Order

Close Order
Finance Customer Service Order Fulfillment

Receive Order

o : Order
[in progress]

[ Order Rejected ]

[ Order Accepted ]
object
Submit order flow

o : Order
[rejected]
i : Invoice
[ unpaid ]

Send Invoice
object
flow Invoke Shipping Service
Accept Payment

i : Invoice
[ paid ]

state
o : Order
[fullfilled]

Dispach Order

Close Order
Logs in

Search for desired


book

[not available]

[available]

Borrow book

Object with
[Book] the current
state
[issued]

Collect issued book


Student Examination registration system

Registers for the examination Displays GUI

Logs in by entering user name


Validate
and password

[Valid] [Invalid]
Select the test

Check for eligibility

[Eligible] [Not eligible]


Slove the test

Get the score

Logs out
Inventory manager Stock maintenance system Stock database

Logs in

Check availability for items

Checking availability
[Not available]
Purchase items

(Available)

Stock available

Process order Update database

Logs out
Customer Credit card processing system Bank

Swaps card Reads card

Get validation Validate card

Valid card Invalid card Acknowledge

Process card

Make transaction Update

Make
Print receipt
signature

Eject card
Customer Sales Department Customer Support Engineering Mail Department Accounting

Purchase DVD Player

Calling for help

Refer to Customer Support

Calling for help

Discuss with Engineers

Suggest Options

Discuss Options

Choose DVD

Ship DVD

Receives DVD

Installs DVD satisfactorily

Makes Payment

Receives Payment
Read Attendance
Record

attended 80 % classes attended more than 80 % classes

Award Award
minimum minimum
5 marks 10 marks

Read Assignment
Completion Record

completed more than 50 % assignments completed 50 % assignments

other

Award Award Award


10 marks 0 marks 5 marks

Calculate Total Marks


Applicant Passport System Police Station

logs in

submits document

Fills up the form

Document
Submits form Verification and Form
validation

Reapply and Get Validity Status


get new
appointment
Incorrect documents
or
insufficient data valid documents

Schedule Form and


for police documents
verification verified

Verify applicant

Acknowledge Status

successful verification

Issue Passport
Customer Agent Insurance Comparies

Fills up the form Invalid


with vehicle and
owner details
Valid

Submit the Form

Validate Form

Send form to insurance


Analyse Proposals
companies

Satisfied Need more


with quotation improvement

not satisfied Prepare Quotations


Quotation
[After analysis]

Quotation
Send Quotations
Analyse [before
to agent
analysis]
Accept Policy
Select and Submit
Best Policy
UI

Web Page Applet Swing

The error that occur


while displaying the
contents on the web Domain
page can be stored
in a log file at the
back end

Purchase Taxes Bill

Technical Services

Error Logging Access to Database


UI::Applet UI::Swing

Domain::Purchase
User Interface

ATMMAIN

ATMAPPlet

Domain

Session Dispenser

Transaction

Banking
It consists of GUI windows,
report, speech interfaces,
UI Web pages.

It consists of Presentation layer request,


workflow, session states, page transition,
Application data for presentation

This layer handles the application layer


requests and implements domain rules
Domain and domain services.

This layer is useful for low


Business Infrastructure level business services.

This level supports high


level technical services.
The persistence and security
Technical Services services are implemented by
this layer

Low level technical services,


Foundation utilities and frameworks are
implemented by this layer

Range of Applicability
Presentation

Swing Text
ProcessSale
ProcessSale
console

Domain

Sales Pricing

Register Sale PricingStrategy <<interface>>

ServiceAccess Payment

Service Credit payment


factory

Inventory POSRuleEngine Taxes

Adapter POSRuleEngineFacade <<interface>>


ITAXCalculator

Technical Services

Persistence

DBFacade Log4J SOAP


Domain Domain Domain Domain
Object Object Object Object
AL AL AL AL
ATM Card Transaction
+ID +used for +Date Domain Model
+DisplayDetails() 1  +Time
+type
+getBalance()

Objects and names in object


layer are created using the
domain model. This is called
inspiration for objects.

ATM Card Transaction


+ID: String used for +Date: date
+DisplayDetails(): void 1  +Time: time Domain Layer
+type: String
+getBalance(): Money
Domain

Vertical Layers
Purchase Taxes Bill

Technical Services

Vertical Layers
Error Logging Access to Database

Horizontal Horizontal
partitions partitions
:Customer :ATM System

1 : Inserts Card()

2 : Request for PIN()

3 : Enters PIN()

7 : Selects Withdrawal()
These system operations are handled by
the layers by sending messages from UI
8 : Display Menu() layer domain layer

9 : Enters Amount()

13 : Dispenses Cash()

14 : Collect Money From Slot()


UI

InsertCard()
Swing EnterPin()
SelectWithdrawal()
EnterAmount()

ProcessRequestFrame
Customer

InsertCard()
EnterPin()
SelectWithdrawal()
Domain EnterAmount()

Transaction

+InsertCard()
+EnterPin()
+SelectWithdrawal()
+EnterAmoun()

GUI
User :
Interface
layer Password :

SUBMIT

Application
Authorise user Process request
logic

Storage Database
CardReader

Communication Path Printer

<<client Workstation>>
:ATM Node HTTP <<server>>
:ATM Server

<<artifact>>
ATMGUIClient.exe Device Node
<<server>> SQL
:Bank Server
<<artifact>>
<<OS>>
ATMGUIClient.exe
:Windows 7

Execution Environment Node <<database>>


:MySQL

Artifact can also


be represented in this manner
Bank System Uses ATM System

<< Component >> << Component >>

BankDB BankDB BankDB


SQL << Component >> Icustomer << Component >>

BankDB UserInterface

SQL <<Component>>
BankDB
Representing
interface

<<System>> User interface.java


ATM
Patient makes
Idle enquiry

query

Receptionists checks
room availability

[room available]

personal information Patient


Patient deposits amount submits his
information

Room is alloted
to patient

Get Date and Time Patient Takes sees doctor Scrolls through history
Doctor views Doctors examine
doctor's
Patient History patient
appointment

Checks patient

gets test report/medicine Patient undergo gets appointment for test


Patient Makes Doctors prescribe
through
Payment medicines/tests
tests/operations

<<system>> SQL
<<system>> Hospital Management <<Component>>
Doctor PC System Words DB

<<Component>>
Patient case
SQL History DB
<<ClientWorkstation>>
Hospital Management <<DatabaseServer>>
System Patient History
Database
Registration
.JSP

<<PC>>
Doctor
<<artifact>>
search.dll
Registered User

Unified library system


Login Search

<<include>> <<include>>
Browse

Enters user Enters Manage Borrowers


name password

Manage
Borrower Books / Magazines Librarian
Makes Reservation
<<include>> <<include>>

<<include>>
Cancels Reservation Insert Item
Delete Item
Update Item

Checkout Items

Manage Titles
Returns Items

Validate Borrower

<<extend>>

Invalid Borrower
Borrower Librarian ReservationSystem

Logs in Validates

[valid]

[not valid]
Search for Item

[not available]
Reserves the Items

[available]
Issues the Item

Checks out Item Manage Items

Reservation
makes
Borrower
0 +currentDate: Date
1 +canborrow() 0

Manages checks out references

1
<<entity>> <<entity>> <<interface>>
Item 0 1 Title publisher
+id: integer +name: String
+getlendingTime()
0
1
Librarian
1 <<entity>> <<entity>>
+manageBorrowers() manages BookTitle MagazineTitle
+manageItems()
+manageTitles() +leadingTime(): 20 days +leadingTime(): 10 days
Controller
entity
class
class
Boundry
class
b : Borrower : CheckOutItemForm : CheckOutItemController Title

1 : enter Criteria()

2 : search()

3 : search(criteria)

4 : searching(criteria)

5 : getmaching(item)
6 : status()

7 : select Item()

8 : checkout(item)

Title reservation /
no_of_reserv++

Book reserved

not available
book request
Idle Checking
Title availability

book available

Title issued
Presentation

Control

Business DAO

VO
reservationhowto.hlp

ReservationSystem.exe
{Version=3.02}

TitleMgr.java TitleDao.java

Search.dll

Title.tbl

Client PC
<<artifact>>
GUI.JSP

Application Server Database


server
<<artifact>>
reservation.war Library DB
<<Server>>

Name_of_Node


TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


: Customer : ATM System : Bank

Enters Amount()

Check Account Balance()


?Balance>Amount()


By Creator

Catalog +Create(Book) Book








: Customer : ATM System : Bank

Get BalanceInfo()

CheckAccountBalance()
?GetBalanceInfo()

Customer ATMSystem Bank

–AccountNo –Branch
–CustomerName +CheckBalance() –Address
–Address +GetAccountNo()
+GetBalanceInfo()
+GetBalanceInfo()
New Method

Customer
Name

Bank
1 : GetBalanceInfo Branch
: Customer : Bank
GetBalanceInfo()
1:1 a=GetAccountNo

: Account Account
Type
Branch
AccountNo
Name
GetAccountNo


Customer ATMSystem Transaction

1: Enter PIN
: Customer : ATMSystem

2: Withdraw money
: Transaction

(a) Customer creates transaction

1: Enter PIN : ATMSystem


: Customer

2 : Withdraw money

: Transaction

(b) ATMSystem creates transaction










Design I

: ATMSystem
The responsibility
of "ATMSystem"
include "Withdrawal",
makeTransaction() "deposition", "enquiry".
Withdraw Money() These are
Customer unrelated responsibilities
that result in
Deposit Fund() low cohesion

Balance Enquiry()

Design II
: Balance
: ATMSystem : Withdrawal : Deposit
Enquiry

makeTransaction() Withdraw Money


Balance Enquiry

Balance Enquiry
The responsibilities
are delegated
to other classes
Card Reader
–ATMID
+CardReader()
+ReadCard()
+EjectCard()
+RetainCard()

Inserts Card ATM System

Customer

: MainInterfaceJFrame
UI Layer

System Operation

enterPIN(PIN)?

Domain Layer : Card Reader


Client Class

Subsystem Class

Client Class

Facade

Subsystem Class
Pattern name

Problem
Design pattern
Solution

Consequence
Design pattern

Creational design Structural design Behavioral design


pattern pattern pattern
Factory
<<interface
Product

factoryMethod : Product
MyFunction() : void

ConcreteFactory
ConcreteProduct

factoryMethod(): Product
<<interface>> <<Interface>>
Abstraction Implementor

opr :

function( ) operation( )

Refined Abstraction ConcreteImplementor

redefinedFunction( ) operation( )
<<Interface>>
Client Target
target

Request( )

Adapter Adaptee

adaptee

Request( ) SpecificRequest()
<<interface>>
Client IStrategy

strategy : IStrategy

algorithm( )

Implementation 1 Implementation 2

algorithm( ) algorithm( )
Observable Observer

notify( ) : void update( )

ConcreteObservable ConcreteObserver 1 ConcreteObserver 2

update( ) update( )
Call for Fun()
Client Target
Adaptee
+Request()
+Fun()

adapter.Fun1() Adapter
+Fun1()

adaptee.Fun()

Target Adaptee 1 Adaptee n


Call
Client
+Request() +FunA() +FunZ()

Adapter
+Fun1()

adapter.FunA()
adapter.FunB()

adapter.FunZ()
1
ServiceFactory

+ instance
It returns
Static unique
attribute – ServiceFactory() instance
+ getInstance()

Static
method
Bank Manager
submits the command
for account details
Client

Asks for Accounts


asks for new object Details

uses

Account Class
<<interface>>
Product

public Account getAccount(String name,


String type, double accNo)
{
if (type.equals("S"))
return new Savings(accNo,name);
else if(type.equals("C"))
Factory return new Current(accNo,name);
Concrete Product Creates else
return null;
+getAccount() }

Displays either
current account details
or
the savings account details
by using Current or Savings class
SchoolNotificationSystem

Student

+update()

RainNotification SMSSubscriber EmailSubscriber

+update() +update()

void update()
{
system.out.printIn()
schoolNotificationSystem.getNotice()
}
ATMSystem
–ATMID: int
–BankName: String
–cardReader: CardReader
–cashDispenser: CashDispenser
–console: Console
–messageLog: MessageLog
–SystemState: int
–networkToBank: NetworkToBank
+ATM(BankName, inetAddress)
+SwitchOn()
+SwitchOff()
+Startup()
+Shutdown()
+getID()
+getCardReader()
+getCashDispenser()
+getConsole()
+getMessageLog()

Card Card Reader


–number –ATMID
+Card(int number) Reads +CardReader()
+getCardNo() * 1 +ReadCard()
+EjectCard()
+RetainCard()
;Customer ;ATM System ;Bank

1 : Insert Card()

[Validate PIN] Loop


2 : Request For PIN()

3 : Enters PIN()
4 : Submits PIN()
5 : ?Validates PIN()

Transaction 6 : Valid PIN()

7: Selects Withdrawal()

CreateTransaction(...) 8 : Display Menu()

9 : Enters Amount()

Withdrawal() 10 : Check Account Balance()


{
msg=CardNo.get MessageFromCustomer()
11 : ?Balance>Amount()
12 : Valid Amount()
}
13 : Dispenses Cash()

14 : Collect Money From Slot()

15 : Display Account Balance()

Class withdrawal VI
16 : Ejects Card()
EnterAmount ()
{
if(!insufficientBalance())
system.out.printIn("Enter amount);
} Boolean insufficient Balance()
{
if(Balance>Amount)
return false ;
else
return true ;
}
ATM System
–ATMID:int
–BankName:String
–cardReader:CardReader X
–cashDispenser:CashDispenser
–cansole:Cansole 1 Has
–messageLog:MessageLog
–SystemState:int
–NetworkToBank:NetworkTOBank
+ATM(BankName, InetAddress)
+SwitchOn()
+SwitchOff()
+Startup()
+Shutdown()
+getID()
+getCardReader()
+getCashDispenser()
+getConsole()
III +get messsageLog

Customer Card Card Reader Transaction
–Name –number –ATMID
Authorised –ATMID VII
–AccountNo By +Card(int number) Reads +CardReader() –Session
–Address +getCardNo() –CardNo
1  +ReadCard()
–AccountType  1 +EjectCard() –PIN
–Branch 1 –message
V +RetainCard()
+CardNo Establishes –TransactionState
+Balance Amount 1
+time: DateTime
Session IV
+Customer() +Transaction()
+getCardNo() –ATMID
+CreateTransaction(ATMID, session, CardNo, PIN)
+setCardNo(int num) –PIN 
1 +Perform Transaction()
+getBalanceAmount() –SessionState
+getMessageFromCustomer()
+setBalanceAmount(int amt) +time: DateTime
+Completes Transaction()
+Session() VI
1
Has +PerformSession()
 +setPIN()
Account
–AccountNo
–PIN <<interface>> Withdrawal Deposit Balance Enquiry
IX –BalanceAmount Cash Dispenser
–Amount –Amount –CardNo
+Account –log Connects to –PIN
+Withdrawal() +Deposit()
+getAcountNo() –CashAmount
1 1 +getMessageFromCustomer() +getMessageFromCustomer() +BalanceEnquiry()
+setAccountNo(int amt) +CompleteTransaction() +CompletesTransaction()
+getPIN() +CashDispenser() +getMessageFromCustomer()
+verifyPIN(int PIN) +setInitialAmount(int amt) +CompleteTransaction
+getBalanceAmount() +CheckCashAmount(int amt) VIII
+setBalanceAmount(int amt) +DispenseCash(int amt)
<<interface>> Message Log
WithdrawalUI
+Displays
+MessageLog()
<<interface>> +EnterAmount() +DisplayLog()
Console +InsufficientBalance() +LogResponse()

+Console()
+DisplayMessage() User Interface
+ReadPIN(int PIN)
II +ReadChoiceMenu(String choice) Displayed on
+DisplayMessage()
+ReadAmount(int amt)

EnglishUI HindiUI

I
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


Analysis System design Object design Implemetation
  



 
1  7
2
1  7
2


 

d  b2  4ac

x2

 
3
b2
3


Integration testing

Thread based Use - based


testing testing

Independent Dependent
class testing class testing
TM

TECHNICAL PUBLICATIONS - An up thrust for knowledge


Passport Automation System

Select passport option New Passport

Name
SurName FirstName MiddleName

Permanent Address

Email

temporary Address

Country

type of Passport

Date of Birth

Documents submitted 1.
2.
3.
4.

SUBMIT CLEAR
December 2011 January 2012
# Task name Start Duration Dec. 4 Dec. 11 Dec. 18 Dec. 25 Jan. 1 Jan. 8 Jan. 15 Jan. 22 Jan. 29
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6

1 Feasibility study 11/17/2011 8 days

Requirement
2 gathering 11/24/2011 21 days
and analysis

3 Software design 12/15/2011 19 days

4 Implementation 12/23/2011 36 days

5 Testing 1/25/2012 17 days


System

Logs in

Fills up form

Passport
Submits form issuing
system

Renewal of
Issue passport
passport
Applicant

New
passport
Validate applicant

<<extend>>
Invalidity
Passport
validation
system
Logs in

Submits documents

Gives information

Submits form

Form gets validated

[Incomplete]
Sent for completion

[valid]

Verifying the applicant

[Invalid]
Pays penalty

[valid]

Issue passport
Applicant Database

+ApplicationID +Name
+Name
+DateofBirth +Store()
+Temporary Address +Update()
+Permanent Address
+Phone
+EmailID Passport Automation System
+PAN Number
+Documents +date: Date
+Username
+display_information()
+logs_in() +validate_form()
+give_information() +update_database()
+submit_documents()
+submit_form()

Police Passport Verification System Passport Issuing System

+police_station_address +date: Date +date: Date

+get_information() +Read_information() +get_validated_Applications()


+validate() +verify() +Issue_passport()
+update_database() +generate_report()
/Applicant /Passport /Passport /Passport /Police /Database
Automation Issuing Verification
System System System

1 : Logs in()

2 : Validate()

3
4 : Give information()

5 : Submits_form()

6 : Sent for verification()

7 : Verify()

8 : Get validation()

9 : Status()

10 : Status()

12 : Update()
11 : Issue passport()

1 : Logs in() 4 : Give information() 5 : Submits_form() 2 : Validate()


/Applicant /Passport Automation System
3

6 : Sent for verification()

8 : Get validation()

11 : Issue passport() /Police /Passport Verification System


9 : Status() 7 : Verify()

10 : Status()
Passport Issuing System /Database
12 : Update()
Enters username and password
Gives documents
Logs in Submits documents

Enter data

Fills up form

Clicks submit button

Submit form

Checking the submitted form


Valid form
Documents get verified Get validated

Eligible applicant

Issue passport

UI

JSP

User Interface

Domain

Applicants Details

Personal Info eligibility

Renewal

Renewal Details

Technical services

Error Access to
logging Database

Web service Report

Form Processing Report Generation


<<System>> SQL
Form.JSP <<Component>>
Passport Automation
System Database

validation.dll Info.dll Policies.dll

PoliceVerification
.dll Passport.tbl

<<ClientWorkstation>> <<DatabaseServer>>
Passport Automation SQL
System <<database>>
Oracle
Printer
Form.JSP
System

Registration form
incomplete
<<extend>>
Make registration
Invalid login
Logs in <<extend>>

Book
Search for book unavailability
<<extend>>
Existing student New student
Borrows book

Issue book

Return book Book bank


Student handler
<<extend>>

Pays fine
Update database

Order books

Remove books
from database

Student Book Bank Books Database

+username +date : Date accesses +nameofBook


+rollNo uses +issuedto
+address +display_GUI() 1 1 +returningDate
+class 1 1 +read_information() +availabilityStatus
+email_ID +update_database()
+dateof_Issue +store()
+dateof_Return +delete()
+fine_amount +update()

+logs_in()
+search_books()
+borrow_books()
+return_books()
+pays_fine()
Book

+title
+author_name
+publication
New Student Existing Student +edition
+numberofCopies
+make_registration() +Status()
Logs in

Search for desired


book

[not available]

[available]

Borrow book

Object with
[Book] the current
state
[issued]

Collect issued book

/Student /BookBank /BookBank Handler /BooksDatabase

1 : Logs in()

2 : Validate()

3
4 : Search for book()

5 : Reads book details()


6 : Search()

7 : Searching()

8 : Availability status()

9 : Borrow book()

10 : Update()

11 : Issue book()
1 : Logs in() 3 4 : Search for book() 9 : Borrow book() 2 : Validate()
/Student /BookBank

10 : Issue book()

8 : Availability status()
5 : Reads book details()

7 : Searching()
6 : Search() 11: Update()
/BookBank Handler /BooksDatabase

Enters username and password


Idle Logs in

Search for book

Borrow available book

Collect book

<<System>>
GUI.ASPX Book Bank System

bookdetails.dll issued.dll SQL


<<Component>>
Books Database
<<ClientWorkstation>>
Book Bank System

GUI.ASPX
Search.dll
SQL

<<DatabaseServer>>
Books Database

<<database>>
MYSQL

System

Registration

<<include>> <<include>>

Enters Enters username


personal and password
information

Logs in
New student Existing student
<<include>>

Validate
Admin

Select the test


Student

Solves the test

Gets result
Examination
Student Registration System Examination Database

+name +date : Date accesses +nameofExam


+class interacts with +dateofConduct
+address +display_GUI() 1 1
+username 1 1 +update_Database()
+search() +store()
+password
+generate_Result() +update()
+examID
+delete()
+score
1
+logs_in() access
+select_test() 1
+solve_test()
Registration Database Tests

+date : Date +name


+totalStudents +date
+studentName +time
+registeredTest +class
+marks
+validate()
+store() +status()
New Student Existing Student +delete()
+update()
+make_registration() +display()

Monthly Test Annual Test

Student Examination Registration System

Registers for the examination Displays GUI

Logs in by entering user name


and password Validate

[valid] [Invalid]
Select the test

Check for eligibility

[Eligible] [Not eligible]


Solve the test

Get the score

Logs out
/Student /Examination /Registration /Examination
Registration Database Database
System

1 : Fills up registration Form()

2 : Validate()

3 : return()

4 : logs in()

5 : Select the Test()


6 : update()

7 : update

8 : solve test()

9 : send score()

10 : display result()

11 : logout()
8 : Solve test()
/Examination Database /Student

10 : display result() 1 : Fills up registration Form()


9 : Send score()
4 : logs in()

5 : Select the test()


11 : logout()
6 : update() 3 : return()

/Examination Registration System


2 : validate()
7 : update()

/Registration Database

Active

Registers for the examination


Logs in
Idle entry/Gives personal information
entry/enters username and password
entry/Set username and password
exit/Successful login
exit/Successful registration

Checking Eligibility Select the Test

entry/Marks checked against eligibility entry/Click on the desired subject


exit/Status whether eligibility or not exit/Sent for eligibility checking

Solves test

Logs out Get Score entry/Questions appearing


exit/answers or does not answer
exit/Time expires
Scoregenerator.exe

<<system>>
Exam Registration GUI.JSP
System

dll
log. eligibilityRules.dll registrations.dll

<<component>>
Examination
Database

<<ClientWorkstation>>
Exam Registration System <<DatabaseServer>>
Registrations
SQL
Database
GUI.JSP SQL

<<DatabaseServer>>
Examinations
Student Database
Account

<<artifact>>
Test.PhP
System
Logging

Update inventory Logs in

Item unavailability

<<extend>> Demands item


from stock
Check inventory
status Order processing clerk
Inventory manager
Process order

Produce stock
summary report

Purchase for stock

Remove expired items

Billing

Accountant

Makes payments
for inventory
purchase

Deposit money
Inventory

+item_name
+in_Stock_quantity
+total_sale
+price Order
+listof_vendors
+vendor_address +orderNo
+vendor_Phone demands for Item +deliveryDate
+purchase_pending_items +orderedBy
+totalamount
+update_inventory()
+check_status() +process_order()
+purchase_items()
+make_Bills()
+remove_items()
+generate_Stocksummary_report()

+sends bills 1

Item

Accountant +name
+brand
+name 0 +quantity
Payment +password
verifies +price
+amount
+make_Bills() +check_availability()
+makes_payment()
+deposit_money()

Cash Payment Credit Card


Payment

Inventory Manager Stock Maintenance System Stock Database

Logs in

Check availability of items

Checking availability
[not available]
Purchase items

[available]

Stock available

Process order Update database

Logs out
/Order /Inventory Manager /Stock Maintenance /Stock Database
System

1 : Logs in()

2 : validate()

3 : Send validity()
4 : Demands items to fulfill the order()
5 : Check availability status()

6 : Checking Availability()

7 : Checking availability()

8 : Send availability status()

9 : Process order()

10 :Update()

11 : Update database()

12 : Generate Bill()
/Accountant

13 : Send Billing()

14 : Logs out()

2 : validate()

/Stock Maintenance System 12 : Generate Bill()

9 : Process order() 3 : Send validity()


8 : Send availability status()
5 : Check availability status()

6 : Checking availability() 10 :update()

1 : Logs in()
14 : Logs out() 7 : Checking availability()
/Stock Database
/Inventory Manager
11 : Update database()
13 : Send Billing()

/Accountant

4 : Demands items to fulfill the order()

/Order
Active
Loging Search for Item

entry/enters username and password entry/enters item names


exit/logs in do/look up for item
exit/invalid Username or Password exit/get status

Process Bill Purchase Items

do/send bill entry/items list


exit/bill gets paid do/enter item details
do/calculate total amount
exit/receive items and bill

Update Stock
Log out
entry/insert purchased item details
exit/database updated

<<System>>
<<System>> Stock Maintenance
Accounts System

<<System>>
Order Processing
System
report.dll

<<component>> SQL
search.dll
<<component>>
Stock Database
<<System>>
<<ClientWorkstation>>
Order Processing
Stock Maintenance
System
System

Search.dll

<<System>>
Accounts
Department

<<Database>>
Stock Database
Online course reservation system

Please select the desired course


Computer engineering

Mechanical engineering

Electronics and telecommunication engineering

Civil engineering
System

View courses
Unavailability of course

<<extend>>
Select the course

Student Registrar

Submits the form

Pays fees

Accountant

Cashpayment Creditcardpayment

Cancel registration
Student Registration system Course database

Accountant Registrar

Student Registration System Course Database


-StudentName +Date -CourseID
-Address -CourseName
-Qualification Interacts with +getCourseDetails() -Credit
-StudentID +SetCourseDetails(CourseID) +CourseID -Duration
+DisplayEligibility()
+SelectCourse() +ProcessData() +Display()
+SubmitForm() +CheckDB()
+ReserveSeat() +UpdateDB()
+CancelSeat()

Accountant Registrar
Confirms Payment
-Fees -EligibilityCriteria
+CalculateFees() +ConfirmEligibility()
+MakeReservation()
+CancelReservation()
CreditPayment CashPayment
Student Registration system

View courses Display course

Selects available courses Display form

Fills up form

Submits form Send for registration

Retrieve confirmation

Eligibility confirm

Pays fees

Registers for the course


Reservation system

: Student : Registrar : Accountant


1 : View courses()

2 : Display()
3 : Select course()

4 : Submits form() 5 : Send for reservation()

6 : Check student eligibility()

7 : Eligibility confirm()

8 : Pays fees()

9 : Payment confirmation()

10 : Registers for the course()

6 : Check student eligibility()

Reservation system
5 : Send for reservation()

: Registrar 2 : Display()
7 : Eligibility confirm()

10 : Registers for the course() 4 : Submits form()

9 : Payment confirmation()
3 : Select course()

1 : View courses()

8 : Pays fees() : Student

: Accountant
Scrolling the courses Entering data
View course Select course

Fill up form

Clicking submit button

Sending form to registrar


Pays fees Gets confirmation Submits form
[ Eligible ]
Gets receipt

Reserves seat

UI

JSP

User interface Course details

Domain

Selecting course Paying fees

Course Payment
details

Eligibility Cancel registration

Course details

Technical services

Error Access to
logging database

Web service

Form processing
SQL <<component>>
course DB

<<System
ReservationSystem>> ReservationForm.JSP

<<clientworkstation>>
ReservationSystem <<DatabaseServer>>
ReservationDatabse

ReservationForm.JSP SQL
<<databse>>
MySQL

Account

<<artifact>>
FeeCalculator.exe
System
Make registration

Seat unavailable
Logs in
Registered New <<extend>>
passenger passenger
Booking clerk
<<include>>
Makes reservation
Books ticket
<<include>>
<<include>>
Search for seat <<include>>
availability Submit form
Passenger Fills up form

Update database

Makes payment

<<include>>

Validate E-payment
Banking system

Send E-ticket
<<include>>
<<include>>
Compose Email
Generate
E-ticket

Logs out

Passenger Reservation System

+name +UserName <<interface>>


+address Interacts with Interacts for payment validation Banking System
+login()
+phone
New Passenger 1 1 +displayInfo()
+email_ID +Makespaymentvalidation()
+validateForm()
+travelingDetails
+paymentValidation()
+makes_registration() +IDProof
+sendEticket()
+logs in() 1
+fillsUpForm()
+submitForm()
Registered passenger
+booksTicket()
+cancelsTicket()
+makesPayment() Use
+printTicket()

1 1
Books Cancels
1 1
1
Ticket
Booking Clerk
+date 1 Cancels 1
+passengerName +name
+passengerAge 1 1 +id
Books
+train +checkAvailability()
+source +makesReservation()
+destination +cancelsReservation()
+fareAmount

+newTicket()
+deleteTicket()
Passenger E-Ticketing System DataBase

Makes registration

Logs in Validate the user Validating

Get validity status

[Invalid user, retry]

[valid]
Fills up Form

Send data for checking


Submit Form
availability

Checking availability

Get seat availability


status

[available]
Makes reservation

[unavailable]

Makes payment Send updates Updating

Print ticket Generate and send E-ticket

Logs out
Reservation
Passenger Clerk Database Bank
Systems

1 : login()
2 : verify()

3 : verifying()
4 : valid=validation()
5 : displayInfo()

6 : fillUpForm()

7 : submitForm()

8 : validateForm()
9 : sendForm()
10 : checkSeatAvailability()

11 : getsStatus()

12 : getsConfirmation()

13 : makesPayment()

14 : validatePayment()

15 : gets status()

16 : newTicket()

17 : sendReservationInfo()
Active

User makes Registration


Idle entry/Fills up registration form
exit/get registered

Logs in Submit form


entry/Enter username and password entry/Fills Up Reservation form
exit/logged in exit/submit form

makes reservation Gets the seat availability status


entry/get seat availability status do/checking seat availability
exit/confirm reservation exit/get status

Pays for Tickets Gets Ticket


entry/enters credit card details entry/gets E-ticket
do/makes card payment exit/print Ticket
exit/gets payment validity message

logs out

<<System>> <<System>>
E-Ticketing <<System>>
Passenger
system Bank
PC

reservationform.html
SQL
<<Component>>
Search.dll
<<Component>>
Reservation
Database
<<System>> <<System>>
E-ticketing system Bank

<<Database server>>
<<System>> Reservation
Printer
Passenger PC Database

System
Add new Employee

Remove Employee
HR Manager
<<include>> <<include>>

Employee Employee
Data Entry Clerk Retiredment Leaves job

Update
Employee record

Update by Update by
name designation
Update by Employee
salary gets Transfer

Utilities
<<include>> <<include>>

Search Record Report


Generation for
Employee employee
information
Person
+empID
+name
+address
+phone Personnel Management System <<interface>>
+EmailID interact Personnel Database
+designation 1.. +Date
+dateofjoin +update()
1 +validate_user()
+salary +return_user_validation_status()
+display_GUI()
+retiredmentDate
+update_database()
+branchName

Employee Data Entry Clerk HR Manager

+Search_record() +add_employee() +direct_for_operation()


+update_employee()
+detele_employee()
+search_record()
+generate_report()

generates

Report

+date
+display_employee_details() Printer

Data Entry Clerk Personnel Management System Employee Database

Click button to add


Display GUI
new employee

Enter employee details

Insert new
Submit the information Send for updation
employee record

Gets
acknowledgement
/Data Entry Clerk /System /Database

1 : logs in()

2 : validate user()

3 : validating()

4 : send validity status()

5 : display GUI()

6 : select for adding new employee()

7 : display form()

8 : enter information

9 : submit information()

10 : send for insertion of new record()

11 : record inserted()

12 : gets acknowledgement()

13 : logs out()
3 : validating()

2 : validate user() 11 : record inserted()


/Database /System
10 : send for insertion of new record()

6 : select for adding new employee() 5 : display GUI()

7 : display form()
13 : logs out()

4 : send validity status() 12 : gets acknowledgement()

1 : logs in() 9 : submit information()

8 : enter information

/Data Entry Clerk

Clicking for new


Logging in Filling up form
employee addition

Updating database Submitting Form

<<System>> <<Component>>
Personnel Management Employee
System Database

GUI.dll

<<Component>>
Search.dll
<<ClientWorkstation>>
Personnel Management
System

Search.dll

<<Database>>
Employee
Database

System

Select items

Submit bill
Invalid Card
Customer
Swap Card <<extend>>

Card authentication
Merchant’s
bank

<<include>> <<include>>

Capture Validate
and return
Credit card
processing
machine
Deduct bill

Submit receipt

Customer’s
bank
Makes
signature and
return
Credit Card
Credit Card
Processing
+CardNum System
+CardType reads issues
+CardNum Receipt
+ExpiryData
+CreditLimit +Read( ) +ReceiptNo
+getValidated( ) +validate( ) +Data
+PrintRecep( ) +CardNum
+CustAccNo

has
Bank

Customer +Name
+Branch
+CustID
+Name +VerifyCard()
+EmaiAddr
+CardID
+CreditPoint
+login()
+swapcard() Merchant's Bank Customer's Bank
+Signature()
+MerchantAccNo +CustAccNo

+CreditAmount() +DebitAmount()
+UpdateCreditScore()

Customer Shopping System Credit Card Processing System Bank

1 : Purchase Items()

2 : Calculate Bill()

3 : Gives Bill()

4 : Swaps Card()

5 : Verify Card()

6 : Acknowledge()

7 : Process Card()

8 : Makes Transactions()

9 : Acknowledge()

10 : Submit Receipt()

11 : Makes Signature and Return()


Customer Credit Card Processing System Bank

Swaps card Reads card

Get validation Validate card

Valid card Invalid card


Acknowledge

Process card

Make transaction Update

Make
Print receipt
signature

Eject card

Swap Get validity status Card getting processed Receive receipt


card
User Interface

JSP

Card reader
interface

Domain layer

Transaction
Applicant's details
Make transaction
Personal info

Processing

Card processing

Technical services

Validation

Validate card Access to database

Print

Generate receipt
System

Make registration

Invalid <<extend>>
Logs in
login
New Existing
visitor visitor
Search for book

Preview the book


Admin
Purchase book
Visitor
Update
database Download book

Order Logout
book

Remove
books from
database

Visitor E-Book Management System Book Database

+username uses +date has access +title


+password +availabilityStatus
+emailID +displayGUI()
+read_information() +store()
+logs_in() +update_database() +delete()
+search_book() +provideEBook() +update()
+preview_book()
+purchase()

Book
Existing visitor New visitor
+title
+makes_registration() +author
+publication
+edition
+numberofCopies
Visitor Ebook Management System BookDatabase

1 : logs_in()

2 : validate()

3
4 : search for book()

5 : search()

6 : searching()

7 : availability status()
8 : availability status()
9 : request for preview()
10 : get preview()

11

12
13 : purchase()

14 : update()

15 : provide E-copy()
logs in

logs in

Search for book

Search for book Preview book Purchase book

not available

available
Log out Download E-book Get E-book
Preview book

Purchase book

Download E-book

logout
User interface

Login Search book

Preview

Domain

Purchase book Download

Technical service

Access database Payment


System

Registers

logging

Submit resume Database

Reads exam
time table

User
Attends test

Recruiter
Gets result

Log out

User
Recruitment system Database
-username
-password interacts with +date accesses
-EmailID +store()
+displayGUI() +update()
-Phoneno +validate_user() +remove()
+update_database()
+register()
+logs_in()
+ submit_personalInfo()
+get_result()

Recruiter
+name
+read_information()
+schedule_exam()
+shortlist()
+generate_result()
User Recruitment system Database Recruiter

1 : Registers()

2 : logging()

3 : validated()

4 : submit resume()

5 : update()

6 : send resume()

7 : process resume()

8 : inform exam details()


9 : attend exam()

10 : shortlisting()

11 : convey result()

12 : get result()
13 : update()
User Recruitment system

User registers Update database

logging Validate user

Valid user Invalid user


Submits resume

Attends examination Update database

Get result

Accept job Update database


Storing details checking details Valid Resume
Registration Logging Verification
submission

not valid Storing details

Acceptance Reading
Viewing of Appearing
of job exam
if shortlisted result for exam time, venue, date details
User interface

JSP

Registration Logging Exam


time table

Domain layer

User's details Scrutiny

Personal info Sorting resume

Validation
Checking
details

Technical service

Messaging Update

Getting exam Access to


details user's databse

Company database

Contact and
requirement details
Registered User
Unified library system
Login Search
<<include>> <<include>>
Browse
Enters user Enters Manage Borrowers
name password

Manage
Borrower Books / Magazines Librarian
Makes Reservation
<<include>> <<include>>

<<include>>
Cancels Reservation Insert Item Delete Item
Update Item

Checkout Items

Manage Titles
Returns Items

Validate Borrower

<<extend>>

Invalid Borrower
Reservation
makes
Borrower
0 +currentDate: Date
1 +canborrow() 0

Manages checks out references

1
<<entity>> <<entity>> <<interface>>
Item 0 1 Title publisher
+id: integer +name: String
+getlendingTime()
0
1
Librarian
1 <<entity>> <<entity>>
+manageBorrowers() Manages BookTitle MagazineTitle
+manageItems()
+manageTitles() +leadingTime(): 20 days +leadingTime(): 10 days

Borrower GUI Book Database BookTitle

1 : enter Criteria()

2 : search()

3 : search(criteria)

4 : searching(criteria)

5 : getmaching(item)
6 : status()

7 : select Item()

8 : checkout(item)
Borrower Librarian ReservationSystem

Logs in Validates

[valid]

[not valid]
Search for Item

[not available]
Reserves the Items

[available]
Issues the Item

Checks out Item Manage Items


Title reservation /
no_of_reserv++

Book reserved

not available
book request
Idle Checking
Title availability

book available

Title issued
System
Add new
student

Data entry clerk


Remove
student School
<<include>> <<include>> authority

Student Student
passed cancels
out admission

Update
student
record
Update Update
name marks

Update Update
address Update division
class

Utilities
Student <<include>> <<include>>

Search record Report generation


Person Information Management System Student Database

–phone interacts +date


–designation +update()
1..* 1 +return_user_validation_status()
–emailID +validate_user()
–date +display_GUI()
+update_database

School authority
Student
Data Entry Clerk +direct_for_operation()
–StudentRegNo
–StudentRollNo
–Address +add_student() Printer
–Class +update_student()
–division +delete_student()
–marks search_record()
+generation_report
+search_record()
1
generates
1..*
Report

+date

+display_employe_details()
/Data Entry Clerk /System /Database

1 : logs in()

2 : validate user()

3 : validating()

4 : send validity status()

5 : display GUI()

6 : select for adding new student()

7 : display form()

8 : enter information

9 : submit information()

10 : send for insertion of new record()

11 : record inserted()

12 : gets acknowledgement()

13 : logs out()
Data Entry Clerk Student Information System Student Database

Click button to add


Display GUI
new student

Enter student details

Insert new
Submit the information Send for updation
student record

Gets
acknowledgement
Semester - VI (IT), Semester - V (CSE)
(20368) Regulation 2013



Semester - VI (IT), Semester - V (CSE)
(52867) Regulation 2013



Semester - V (CSE)
(90161) Regulation 2017


You might also like