SlideShare uma empresa Scribd logo
1 de 41
1
Object-Oriented Static Modeling of
the Banking System - III
Lecture # 33
2
Problem Description
• A bank has several automated teller machines (ATMs), which are
geographically distributed and connected via a wide area network to a
central server. Each ATM machine has a card reader, a cash dispenser,
a keyboard/display, and a receipt printer. By using the ATM machine, a
customer can withdraw cash from either checking or savings account,
query the balance of an account, or transfer funds from one account to
another. A transaction is initiated when a customer inserts an ATM card
into the card reader. Encoded on the magnetic strip on the back of the
ATM card are the card number, the start date, and the expiration date.
Assuming the card is recognized, the system validates the ATM card to
determine that the expiration date has not passed, that the user-entered
PIN (personal identification number) matches the PIN maintained by
the system, and that the card is not lost or stolen. The customer is
allowed three attempts to enter the correct PIN; the card is confiscated
if the third attempt fails. Cards that have been reported lost or stolen
are also confiscated.
3
Problem Description
• If the PIN is validated satisfactorily, the customer is prompted for a
withdrawal, query, or transfer transaction. Before withdrawal
transaction can be approved, the system determines that sufficient
funds exist in the requested account, that the maximum daily limit will
not be exceeded, and that there are sufficient funds available at the
local cash dispenser. If the transaction is approved, the requested
amount of cash is dispensed, a receipt is printed containing information
about the transaction, and the card is ejected. Before a transfer
transaction can be approved, the system determines that the customer
has at least two accounts and that there are sufficient funds in the
account to be debited. For approved query and transfer requests, a
receipt is printed and card ejected. A customer may cancel a
transaction at any time; the transaction is terminated and the card is
ejected. Customer records, account records, and debit card records are
all maintained at the server.
4
Problem Description
• An ATM operator may start up and close down the ATM to replenish
the ATM cash dispenser and for routine maintenance. It is assumed that
functionality to open and close accounts and to create, update, and
delete customer and debit card records is provided by an existing
system and is not part of this problem.
• ‘Designing Concurrent, Distributed, and Real-Time Applications with
UML’ by H. Gomaa, Addison-Wesley, 2000
5
Putting the Classes Together
6
Conceptual Static Model for
Problem Domain: Physical Classes
ATM
ATMCustomer
1
CardReader CashDispenser ReceiptPrinter
Operator
Maintains
1 1
1 1 1
ATMCard
1
1
Reads
ATMCash
1
Dispenses
1
Receipt
1
Prints
1
7
Conceptual Static Model for Problem
Domain: Physical Classes
• A bank has several ATMs.
• Each ATM is a composite class
consisting of a Card Reader, a Cash
Dispenser, a Receipt Printer, and a
user, the ATM Customer, who interacts
with the system by using a
keyboard/display
8
Conceptual Static Model for Problem
Domain: Physical Classes
• The Card Reader reads an ATM Card,
which is a plastic card and hence a
physical entity
• The Cash Dispenser dispenses ATM
Cash, which is also a physical entity in
terms of paper money of given
denominations
9
Conceptual Static Model for Problem
Domain: Physical Classes
• The Receipt Printer prints a Receipt, which
is a paper physical entity
• The physical entities represent classes in the
problem domain and are usually modeled
by software entity classes
• In addition, the Operator is also a an
external user, whose job is to maintain the
ATM – who interacts with the system via a
keyboard/displaytemuuteat
10
Conceptual Static Model for
Problem Domain: Entity Classes
Bank ATMInfo
Maintains
1 1
ATMTransaction
Account
Customer
DebitCard
CardAccount
Has
Owns
Modifies
1,2 *
*
1
Identifies
1
1
1..*
1..*
1..*
1..*
1..*
Manages
0..1
Owns
Provides
access to
11
Conceptual Static Model for
Problem Domain: Entity Classes
• The Bank entity class has a one-to-many
relationship with the Customer class and the
Debit Card class
• The Bank class has only one instance
• The Customer has many to many
relationship with Account class, which has
its subclasses (Checking Account, Savings
Account)
12
Conceptual Static Model for
Problem Domain: Entity Classes
• An Account is modified by an ATM
Transaction, which is also specialized
to depict different types of transactions
(Withdrawal Transaction, Query
Transaction, Transfer Transaction, or
PIN Validation Transaction)
13
Conceptual Static Model for
Problem Domain: Entity Classes
• There is also a Card Account association
class. Association classes are needed in
cases where the attributes are of the
association, rather than of the classes
connected by the association. Thus, in
many-to-many association between Debit
Card and Account, the individual accounts
that can be accessed by a given debit card
are attributes of the Card Account class and
not of either Debit Card or Account
14
Conceptual Static Model for
Problem Domain: Entity Classes
• Entity classes are also required to
model the physical classes in the
problem domain
• These include ATM Card, representing
the information read off the magnetic
strip on the plastic card
15
Conceptual Static Model for
Problem Domain: Entity Classes
• ATM Cash holds the amount of cash
maintained at an ATM, in five-hundred and
one-thousand rupee notes
• The Receipt holds information about a
transaction, and because is holds similar
information to the Transaction class
described earlier, a separate entity class is
unnecessary
16
Banking System Context Class
Diagram
ATMCustomer
CardReader
CashDispenser
ReceiptPrinter
Banking
System
Operator
Operator
ATM
Customer
1
1
1
1
1
1..*
1..*
1..*
1..*
1
1
1
1
1 1..*
1
1
Interacts
with
17
Banking System Context Class
Diagram
• The system context diagram is
developed to show the external classes
to which the Banking system has to
interface
• We develop the context class diagram
by considering the physical classes
18
Banking System Context Class
Diagram
• The external classes correspond to the users
and I/O devices depicted to the classes in
the application domain
• They are the Card Reader, the Cash
Dispenser, the Receipt Printer, the ATM
Customer who interacts with the system via
a keyboard/display, and the Operator who
also interacts with the system via a
keyboard/display
19
Banking System Context Class
Diagram
• There is one instance of each of these
external classes for each ATM
• The system context class diagram for
the Banking system depicts the system
as one aggregate class that receives
input from and provides output to the
external classes
20
Client/Server Subsystem Structuring
• The Banking system is a client/server
application, some of the objects reside
at the ATM client and some reside at
the bank server
• The ATM Client Subsystem
• The Bank Server Subsystem
21
Banking System: Major Subsystems
CashDispenser
CardReader
ReceiptPrinter Operator
ATMCustomer
ATMClient
Subsystem
BankServer
Subsystem
Banking
System
1..* 1
1
1
1
1
1
1
1
1
1
1
22
Banking System: Major Subsystems
• The ATM Client Subsystem is a
composite class, and one instance of
this class is located at each ATM
machine
• All the external classes interface to this
aggregate class
23
Banking System: Major Subsystems
• The Bank Server Subsystem has one
instance
• This aggregate class has a one-to-many
association with the ATM Client
Subsystem
• This is an example of geographically
distributed system
24
ATM Client Object Structuring
• Consider the interface classes for the
ATM Client Subsystem. These classes
are determined from the system
context diagram
• We design one interface class for each
external class, which can be a device
interface class or user interface class
25
Banking System External Classes
and Interfaces Classes
ATMCustomer
CardReader
CashDispenser
ReceiptPrinter
Banking
System
Operator
Operator
ATM
Customer
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1
1
1
CardReader
Interface
ATMCustomer
Interface
CashDispenser
Interface
Operator
Interface
Receipt
Printer
Interface
26
Banking System External Classes
and Interfaces Classes
• The device interface classes are the
Card Reader Interface, through which
ATM cards are read, the Cash
Dispenser Interface, which dispenses
cash, and the Receipt Printer Interface,
which prints receipts
27
Banking System External Classes
and Interfaces Classes
• There is also the Customer Interface, which is the
user interface class that interacts with the customer
via the keyboard/display, displaying textual
messages, prompting the customer, and receiving
the customer’s inputs
• The Operator Interface class provides the user
interface to the ATM operator, who replenishes the
ATM machine with cash
• There is one instance of each of these interface
classes for each ATM
28
ATM Client Subsystem Classes
ReceiptPrinter
CardReader
Interface
CashDispenser
Interface
ATMControl
ATMTransaction
ATMCard
ATMCash
Customer
Interface
ATMClientSubsystem
Operator
Interface
29
The ATM Control Class
• To control the sequence in which
actions take place, we identify the need
for a control object/class
• This is a state-dependent object
30
ATM Client Structuring: Objects
in Use Cases
31
Validate PIN Abstract Use Case
• Card Reader Interface
• ATM Card
• Customer Interface
• ATM Transaction (PIN Validation
Transaction)
• ATM Control controls the sequence
32
Withdraw Funds Concrete Use Case
• ATM Transaction (Withdrawal
Transaction)
• Cash Dispenser Interface
• ATM Cash
• Receipt Printer Interface
• ATM Control controls the sequence
33
Use Cases and Classes
• Query Account and Transfer Funds use
cases are associated with the same set
of classes/objects
34
Operator-Specific Use Cases
• Operator Interface
• ATM Control
35
Object Structuring in Bank Server
Subsystem
• Several entity objects are bank-wide
and need to be stored to be accessible
from any ATM. Therefore, these
objects must be stored at the server
• These objects include: Account objects
and Debit Card objects
36
Object Structuring in Bank Server
Subsystem
• In the Bank Server Subsystem, the
entity classes are Customer, the
Account super-class, Checking
Account and Savings Account
subclasses, and Debit Card
37
Object Structuring in Bank Server
Subsystem
• There is also the ATM Transaction object,
which migrates from the client to the server.
The client sends the transaction request to
the server, which sends a response to the
client. The transaction is also stored at the
server as an entity in the form of a
Transaction Log, so that a transaction
history is maintained
38
Object Structuring in Bank Server
Subsystem
• The transient data sent as part of the
ATM Transaction message might differ
from the persistent transaction data; for
example transaction status is known at
the end of the transaction but not
during it
39
Object Structuring in Bank Server
Subsystem
• Business logic objects are also needed
at the server to define the business-
specific application logic for
processing client requests. Each ATM
transaction type needs a transaction
manager to specify the business rules
for handling the transaction
40
Summary
• Continued the discussion of Banking
System Case Study.
• Performed the static modeling of
different classes and objects which
exists in the case study domain
41
References
• ‘The Unified Modeling Language User Guide’ by
G. Booch, J. Rambaugh, & I. Jacobson, Addison-
Wesley, 1998
• ‘The Unified Modeling Language Reference
Guide’ by J. Rambaugh, I. Jacobson, & G. Booch,
Addison-Wesley, 1998
• ‘Designing Concurrent, Distributed, and Real-
Time Applications with UML’ by H. Gomaa,
Addison-Wesley, 2000

Mais conteúdo relacionado

Semelhante a vu-re-lecture-33 requirement engineering.ppt

Presentation1
Presentation1Presentation1
Presentation1
asnetaa
 
ATM BLock Diagram and its design uses development.pptx
ATM BLock Diagram and its design uses development.pptxATM BLock Diagram and its design uses development.pptx
ATM BLock Diagram and its design uses development.pptx
keerthi975
 
Out sources of atm
Out sources of atmOut sources of atm
Out sources of atm
Dharmik
 
Presentation1 130512130536-phpapp01
Presentation1 130512130536-phpapp01Presentation1 130512130536-phpapp01
Presentation1 130512130536-phpapp01
paaaneta
 

Semelhante a vu-re-lecture-33 requirement engineering.ppt (20)

ATM Banking
ATM BankingATM Banking
ATM Banking
 
Presentation1
Presentation1Presentation1
Presentation1
 
ATM BLock Diagram and its design uses development.pptx
ATM BLock Diagram and its design uses development.pptxATM BLock Diagram and its design uses development.pptx
ATM BLock Diagram and its design uses development.pptx
 
Out sources of atm
Out sources of atmOut sources of atm
Out sources of atm
 
Presentation On ATM Technology
Presentation On ATM TechnologyPresentation On ATM Technology
Presentation On ATM Technology
 
Assignment
AssignmentAssignment
Assignment
 
Document Atm machine using c language mini project.pdf
Document  Atm machine using c language mini project.pdfDocument  Atm machine using c language mini project.pdf
Document Atm machine using c language mini project.pdf
 
SRSTemplate (1).docx thi si for the studenst appearing for software engineering
SRSTemplate (1).docx thi si for the studenst appearing for software engineeringSRSTemplate (1).docx thi si for the studenst appearing for software engineering
SRSTemplate (1).docx thi si for the studenst appearing for software engineering
 
ATM System Description and functional and non- functional Requirements
ATM System Description and functional and non- functional RequirementsATM System Description and functional and non- functional Requirements
ATM System Description and functional and non- functional Requirements
 
Proposal
ProposalProposal
Proposal
 
ATM TRASACTION SYSTEM.pptx
ATM TRASACTION SYSTEM.pptxATM TRASACTION SYSTEM.pptx
ATM TRASACTION SYSTEM.pptx
 
What is ATM
What is ATMWhat is ATM
What is ATM
 
Atm
AtmAtm
Atm
 
Task 2
Task 2Task 2
Task 2
 
Task 2
Task 2Task 2
Task 2
 
Atm
AtmAtm
Atm
 
Atm project
Atm projectAtm project
Atm project
 
python pre-submission report.pdf
python pre-submission report.pdfpython pre-submission report.pdf
python pre-submission report.pdf
 
Presentation1 130512130536-phpapp01
Presentation1 130512130536-phpapp01Presentation1 130512130536-phpapp01
Presentation1 130512130536-phpapp01
 
E-commerce System Technologies, Repository and Networking Technology
E-commerce System Technologies, Repository and Networking TechnologyE-commerce System Technologies, Repository and Networking Technology
E-commerce System Technologies, Repository and Networking Technology
 

Mais de ubaidullah75790

vu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.pptvu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.ppt
ubaidullah75790
 
Requirement management traceability.ppt
Requirement management  traceability.pptRequirement management  traceability.ppt
Requirement management traceability.ppt
ubaidullah75790
 
Agile Method requirement engineering.ppt
Agile Method requirement engineering.pptAgile Method requirement engineering.ppt
Agile Method requirement engineering.ppt
ubaidullah75790
 
traceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppttraceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppt
ubaidullah75790
 
vu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.pptvu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.ppt
ubaidullah75790
 
SRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.pptSRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.ppt
ubaidullah75790
 
Requirments management traceability.ppt
Requirments  management traceability.pptRequirments  management traceability.ppt
Requirments management traceability.ppt
ubaidullah75790
 
SRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.pptSRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.ppt
ubaidullah75790
 
vu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.pptvu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.pptvu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.ppt
ubaidullah75790
 
vu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.pptvu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.ppt
ubaidullah75790
 
vu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.pptvu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-01 requirements engineering.ppt
vu-re-lecture-01 requirements engineering.pptvu-re-lecture-01 requirements engineering.ppt
vu-re-lecture-01 requirements engineering.ppt
ubaidullah75790
 
vu-re-lecture-08 requirements engineering.ppt
vu-re-lecture-08 requirements engineering.pptvu-re-lecture-08 requirements engineering.ppt
vu-re-lecture-08 requirements engineering.ppt
ubaidullah75790
 

Mais de ubaidullah75790 (20)

vu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.pptvu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.ppt
 
Requirement management traceability.ppt
Requirement management  traceability.pptRequirement management  traceability.ppt
Requirement management traceability.ppt
 
Agile Method requirement engineering.ppt
Agile Method requirement engineering.pptAgile Method requirement engineering.ppt
Agile Method requirement engineering.ppt
 
traceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppttraceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppt
 
vu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.pptvu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.ppt
 
SRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.pptSRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.ppt
 
Requirments management traceability.ppt
Requirments  management traceability.pptRequirments  management traceability.ppt
Requirments management traceability.ppt
 
SRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.pptSRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.ppt
 
vu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.pptvu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.ppt
 
vu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.pptvu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.ppt
 
vu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.pptvu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.ppt
 
vu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.pptvu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.ppt
 
vu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.pptvu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.ppt
 
vu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.pptvu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.ppt
 
vu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.pptvu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.ppt
 
vu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.pptvu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.ppt
 
vu-re-lecture-01 software engineering.ppt
vu-re-lecture-01 software engineering.pptvu-re-lecture-01 software engineering.ppt
vu-re-lecture-01 software engineering.ppt
 
vu-re-lecture software requirement-25.ppt
vu-re-lecture software requirement-25.pptvu-re-lecture software requirement-25.ppt
vu-re-lecture software requirement-25.ppt
 
vu-re-lecture-01 requirements engineering.ppt
vu-re-lecture-01 requirements engineering.pptvu-re-lecture-01 requirements engineering.ppt
vu-re-lecture-01 requirements engineering.ppt
 
vu-re-lecture-08 requirements engineering.ppt
vu-re-lecture-08 requirements engineering.pptvu-re-lecture-08 requirements engineering.ppt
vu-re-lecture-08 requirements engineering.ppt
 

Último

Lecture_8-Digital implementation of analog controller design.pdf
Lecture_8-Digital implementation of analog controller design.pdfLecture_8-Digital implementation of analog controller design.pdf
Lecture_8-Digital implementation of analog controller design.pdf
mohamedsamy9878
 
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
tuuww
 
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdfDR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DrGurudutt
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
Kamal Acharya
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 

Último (20)

Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdfRESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
 
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data StreamKIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
KIT-601 Lecture Notes-UNIT-3.pdf Mining Data Stream
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
 
Roushan Kumar Java oracle certificate
Roushan Kumar Java oracle certificate Roushan Kumar Java oracle certificate
Roushan Kumar Java oracle certificate
 
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2
 
Lecture_8-Digital implementation of analog controller design.pdf
Lecture_8-Digital implementation of analog controller design.pdfLecture_8-Digital implementation of analog controller design.pdf
Lecture_8-Digital implementation of analog controller design.pdf
 
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
 
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdfDR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
 
Lect_Z_Transform_Main_digital_image_processing.pptx
Lect_Z_Transform_Main_digital_image_processing.pptxLect_Z_Transform_Main_digital_image_processing.pptx
Lect_Z_Transform_Main_digital_image_processing.pptx
 
E-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce siteE-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce site
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..pdf
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
 
Dairy management system project report..pdf
Dairy management system project report..pdfDairy management system project report..pdf
Dairy management system project report..pdf
 
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
RM&IPR M5 notes.pdfResearch Methodolgy & Intellectual Property Rights Series 5
 
internship exam ppt.pptx on embedded system and IOT
internship exam ppt.pptx on embedded system and IOTinternship exam ppt.pptx on embedded system and IOT
internship exam ppt.pptx on embedded system and IOT
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge
 

vu-re-lecture-33 requirement engineering.ppt

  • 1. 1 Object-Oriented Static Modeling of the Banking System - III Lecture # 33
  • 2. 2 Problem Description • A bank has several automated teller machines (ATMs), which are geographically distributed and connected via a wide area network to a central server. Each ATM machine has a card reader, a cash dispenser, a keyboard/display, and a receipt printer. By using the ATM machine, a customer can withdraw cash from either checking or savings account, query the balance of an account, or transfer funds from one account to another. A transaction is initiated when a customer inserts an ATM card into the card reader. Encoded on the magnetic strip on the back of the ATM card are the card number, the start date, and the expiration date. Assuming the card is recognized, the system validates the ATM card to determine that the expiration date has not passed, that the user-entered PIN (personal identification number) matches the PIN maintained by the system, and that the card is not lost or stolen. The customer is allowed three attempts to enter the correct PIN; the card is confiscated if the third attempt fails. Cards that have been reported lost or stolen are also confiscated.
  • 3. 3 Problem Description • If the PIN is validated satisfactorily, the customer is prompted for a withdrawal, query, or transfer transaction. Before withdrawal transaction can be approved, the system determines that sufficient funds exist in the requested account, that the maximum daily limit will not be exceeded, and that there are sufficient funds available at the local cash dispenser. If the transaction is approved, the requested amount of cash is dispensed, a receipt is printed containing information about the transaction, and the card is ejected. Before a transfer transaction can be approved, the system determines that the customer has at least two accounts and that there are sufficient funds in the account to be debited. For approved query and transfer requests, a receipt is printed and card ejected. A customer may cancel a transaction at any time; the transaction is terminated and the card is ejected. Customer records, account records, and debit card records are all maintained at the server.
  • 4. 4 Problem Description • An ATM operator may start up and close down the ATM to replenish the ATM cash dispenser and for routine maintenance. It is assumed that functionality to open and close accounts and to create, update, and delete customer and debit card records is provided by an existing system and is not part of this problem. • ‘Designing Concurrent, Distributed, and Real-Time Applications with UML’ by H. Gomaa, Addison-Wesley, 2000
  • 6. 6 Conceptual Static Model for Problem Domain: Physical Classes ATM ATMCustomer 1 CardReader CashDispenser ReceiptPrinter Operator Maintains 1 1 1 1 1 ATMCard 1 1 Reads ATMCash 1 Dispenses 1 Receipt 1 Prints 1
  • 7. 7 Conceptual Static Model for Problem Domain: Physical Classes • A bank has several ATMs. • Each ATM is a composite class consisting of a Card Reader, a Cash Dispenser, a Receipt Printer, and a user, the ATM Customer, who interacts with the system by using a keyboard/display
  • 8. 8 Conceptual Static Model for Problem Domain: Physical Classes • The Card Reader reads an ATM Card, which is a plastic card and hence a physical entity • The Cash Dispenser dispenses ATM Cash, which is also a physical entity in terms of paper money of given denominations
  • 9. 9 Conceptual Static Model for Problem Domain: Physical Classes • The Receipt Printer prints a Receipt, which is a paper physical entity • The physical entities represent classes in the problem domain and are usually modeled by software entity classes • In addition, the Operator is also a an external user, whose job is to maintain the ATM – who interacts with the system via a keyboard/displaytemuuteat
  • 10. 10 Conceptual Static Model for Problem Domain: Entity Classes Bank ATMInfo Maintains 1 1 ATMTransaction Account Customer DebitCard CardAccount Has Owns Modifies 1,2 * * 1 Identifies 1 1 1..* 1..* 1..* 1..* 1..* Manages 0..1 Owns Provides access to
  • 11. 11 Conceptual Static Model for Problem Domain: Entity Classes • The Bank entity class has a one-to-many relationship with the Customer class and the Debit Card class • The Bank class has only one instance • The Customer has many to many relationship with Account class, which has its subclasses (Checking Account, Savings Account)
  • 12. 12 Conceptual Static Model for Problem Domain: Entity Classes • An Account is modified by an ATM Transaction, which is also specialized to depict different types of transactions (Withdrawal Transaction, Query Transaction, Transfer Transaction, or PIN Validation Transaction)
  • 13. 13 Conceptual Static Model for Problem Domain: Entity Classes • There is also a Card Account association class. Association classes are needed in cases where the attributes are of the association, rather than of the classes connected by the association. Thus, in many-to-many association between Debit Card and Account, the individual accounts that can be accessed by a given debit card are attributes of the Card Account class and not of either Debit Card or Account
  • 14. 14 Conceptual Static Model for Problem Domain: Entity Classes • Entity classes are also required to model the physical classes in the problem domain • These include ATM Card, representing the information read off the magnetic strip on the plastic card
  • 15. 15 Conceptual Static Model for Problem Domain: Entity Classes • ATM Cash holds the amount of cash maintained at an ATM, in five-hundred and one-thousand rupee notes • The Receipt holds information about a transaction, and because is holds similar information to the Transaction class described earlier, a separate entity class is unnecessary
  • 16. 16 Banking System Context Class Diagram ATMCustomer CardReader CashDispenser ReceiptPrinter Banking System Operator Operator ATM Customer 1 1 1 1 1 1..* 1..* 1..* 1..* 1 1 1 1 1 1..* 1 1 Interacts with
  • 17. 17 Banking System Context Class Diagram • The system context diagram is developed to show the external classes to which the Banking system has to interface • We develop the context class diagram by considering the physical classes
  • 18. 18 Banking System Context Class Diagram • The external classes correspond to the users and I/O devices depicted to the classes in the application domain • They are the Card Reader, the Cash Dispenser, the Receipt Printer, the ATM Customer who interacts with the system via a keyboard/display, and the Operator who also interacts with the system via a keyboard/display
  • 19. 19 Banking System Context Class Diagram • There is one instance of each of these external classes for each ATM • The system context class diagram for the Banking system depicts the system as one aggregate class that receives input from and provides output to the external classes
  • 20. 20 Client/Server Subsystem Structuring • The Banking system is a client/server application, some of the objects reside at the ATM client and some reside at the bank server • The ATM Client Subsystem • The Bank Server Subsystem
  • 21. 21 Banking System: Major Subsystems CashDispenser CardReader ReceiptPrinter Operator ATMCustomer ATMClient Subsystem BankServer Subsystem Banking System 1..* 1 1 1 1 1 1 1 1 1 1 1
  • 22. 22 Banking System: Major Subsystems • The ATM Client Subsystem is a composite class, and one instance of this class is located at each ATM machine • All the external classes interface to this aggregate class
  • 23. 23 Banking System: Major Subsystems • The Bank Server Subsystem has one instance • This aggregate class has a one-to-many association with the ATM Client Subsystem • This is an example of geographically distributed system
  • 24. 24 ATM Client Object Structuring • Consider the interface classes for the ATM Client Subsystem. These classes are determined from the system context diagram • We design one interface class for each external class, which can be a device interface class or user interface class
  • 25. 25 Banking System External Classes and Interfaces Classes ATMCustomer CardReader CashDispenser ReceiptPrinter Banking System Operator Operator ATM Customer 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 CardReader Interface ATMCustomer Interface CashDispenser Interface Operator Interface Receipt Printer Interface
  • 26. 26 Banking System External Classes and Interfaces Classes • The device interface classes are the Card Reader Interface, through which ATM cards are read, the Cash Dispenser Interface, which dispenses cash, and the Receipt Printer Interface, which prints receipts
  • 27. 27 Banking System External Classes and Interfaces Classes • There is also the Customer Interface, which is the user interface class that interacts with the customer via the keyboard/display, displaying textual messages, prompting the customer, and receiving the customer’s inputs • The Operator Interface class provides the user interface to the ATM operator, who replenishes the ATM machine with cash • There is one instance of each of these interface classes for each ATM
  • 28. 28 ATM Client Subsystem Classes ReceiptPrinter CardReader Interface CashDispenser Interface ATMControl ATMTransaction ATMCard ATMCash Customer Interface ATMClientSubsystem Operator Interface
  • 29. 29 The ATM Control Class • To control the sequence in which actions take place, we identify the need for a control object/class • This is a state-dependent object
  • 30. 30 ATM Client Structuring: Objects in Use Cases
  • 31. 31 Validate PIN Abstract Use Case • Card Reader Interface • ATM Card • Customer Interface • ATM Transaction (PIN Validation Transaction) • ATM Control controls the sequence
  • 32. 32 Withdraw Funds Concrete Use Case • ATM Transaction (Withdrawal Transaction) • Cash Dispenser Interface • ATM Cash • Receipt Printer Interface • ATM Control controls the sequence
  • 33. 33 Use Cases and Classes • Query Account and Transfer Funds use cases are associated with the same set of classes/objects
  • 34. 34 Operator-Specific Use Cases • Operator Interface • ATM Control
  • 35. 35 Object Structuring in Bank Server Subsystem • Several entity objects are bank-wide and need to be stored to be accessible from any ATM. Therefore, these objects must be stored at the server • These objects include: Account objects and Debit Card objects
  • 36. 36 Object Structuring in Bank Server Subsystem • In the Bank Server Subsystem, the entity classes are Customer, the Account super-class, Checking Account and Savings Account subclasses, and Debit Card
  • 37. 37 Object Structuring in Bank Server Subsystem • There is also the ATM Transaction object, which migrates from the client to the server. The client sends the transaction request to the server, which sends a response to the client. The transaction is also stored at the server as an entity in the form of a Transaction Log, so that a transaction history is maintained
  • 38. 38 Object Structuring in Bank Server Subsystem • The transient data sent as part of the ATM Transaction message might differ from the persistent transaction data; for example transaction status is known at the end of the transaction but not during it
  • 39. 39 Object Structuring in Bank Server Subsystem • Business logic objects are also needed at the server to define the business- specific application logic for processing client requests. Each ATM transaction type needs a transaction manager to specify the business rules for handling the transaction
  • 40. 40 Summary • Continued the discussion of Banking System Case Study. • Performed the static modeling of different classes and objects which exists in the case study domain
  • 41. 41 References • ‘The Unified Modeling Language User Guide’ by G. Booch, J. Rambaugh, & I. Jacobson, Addison- Wesley, 1998 • ‘The Unified Modeling Language Reference Guide’ by J. Rambaugh, I. Jacobson, & G. Booch, Addison-Wesley, 1998 • ‘Designing Concurrent, Distributed, and Real- Time Applications with UML’ by H. Gomaa, Addison-Wesley, 2000