uml and systems analysis
DESCRIPTION
UML and Systems Analysis. MIS3502: Application Integration and Evaluation Paul Weinberg [email protected] Presentation by David Schuff. Review: What is Systems Analysis and Design?. Systems Analysis - PowerPoint PPT PresentationTRANSCRIPT
UML and Systems Analysis
MIS3502: Application Integration and Evaluation
Paul [email protected]
Presentation by David Schuff
Review: What is Systems Analysis and Design?
Systems Analysis Analysis of complex, large-scale
systems and the interactions within those systemshttp://en.wikipedia.org/wiki/Systems_analysis
Systems Design The process of defining the hardware
and software architectures, components, models, interfaces, and data for a computer system to satisfy specified requirementshttp://en.wikipedia.org/wiki/Systems_design
Notice that they are not the same!
Basically…
Systems Analysis is the process of modeling the problemRequirements-oriented What should we do?
Systems Design is the process of modeling a solutionFunctionality-orientedHow should we do it?
Why model?
Creating a blueprint for an application Before you start coding The idea is to minimize having to go
back and make changes later
Why consider SAD in a programming course?
The business analysts
The development
team
Analysis Design Development
What this means
A developer must be able to turn the design into code
But a good analyst should be able to understand all parts of system developmentConduct an analysisDevelop a designImplement the design (coding)
Example: Bjork’s ATM example
An Example of Object Oriented Design, An ATM Simulation, Russell Bjork http://www.math-cs.gordon.edu/local/courses/cs211/
ATMExample/
What we’ll look at…
Use case diagrams
Use case descriptionsActivity diagrams
:Controller :Customer :Order
Interaction diagrams
Analysis Models Design Models
Class name
Attributes
Operations
Customer
name
findName()
Design class diagrams
All diagrams adapted from “Systems Analysis and Design in a Changing World”, 3rd EditionSatzinger, Jackson, Burd, Thompson Publishing, 2004.
Problem Statement
What is the application supposed to accomplish? Use words, not code Be as descriptive as possible Potential sources of information
Forms, reports Engineering drawings Real world object specifications Interviews
Problem statement for ATM application
Services one customer at a time Must be able to handle 10 customers an hour Customer inserts ATM card and enters PIN to begin Transactions
Cash withdrawals --- in $20 increments Deposits Transfers Balance inquiries
Immediate transaction validation with the bank Standard error procedures
Pin error, rejection due to inadequate balance Reports
Use Case Diagram
Use case: sequence of events that represents an interaction between the user and the system
CashWithdrawal
Deposit
Transfer
Invalid PIN
Session
Partial list of use cases from Bjork
example
Customer(actor)
Bank(actor)
Use Case Descriptions
For each use case, include The services the system provides to the user The sequence of events The desired outcome
Users of systems (called actors) can be people organizations other systems
Use Case Description:Deposit transaction (ATM)
A deposit transaction is started from within a session when the customer chooses deposit from the menu of possible transaction types. The customer chooses a type of account to deposit to (e.g. checking) from a menu of possible accounts, and then chooses a dollar amount by typing it on the keyboard. The system sends the customer's card number, PIN, chosen account and amount to the bank, which either approves or disapproves the transaction. If the transaction is approved, the machine accepts an envelope from the customer containing cash and/or checks and then issues a receipt. (If the customer does not insert the envelope within a specified period of time, this operation times out and the deposit transaction is aborted.) If the transaction is disapproved due to an incorrect PIN, the Incorrect PIN extension is executed. All other disapprovals are reported to the session, which initiates the Failed Transaction Extension. The bank is notified whether or not an approved transaction was completed in its entirety by the machine; if it is completed then the bank completes crediting the customer's account for the amount - contingent on manual verification of the deposit envelope contents by an operator later.
Activity diagram
Show which activities occur during a use case
This is for the deposit use caseThe
customer initiates the transaction
Customer ATM
Choose deposit Ask which type of account
Choose accounttype
Send customerinformation to bank
Bank
Incorrect PIN?
Credit customeraccount
Transactioncompleted
Incorrect PINexception
Transactionfailed
Approvetransaction
yes no
yesno
Ask deposit amount
Choose depositamount
Design class diagrams
Shows the attributes and methods of each class
Get the object names and attributes from the noun-phrase analysis What is the object?
Get the methods from the activity diagram What should it do?
Class DepositTransactiontoAccountAmount
DepositTransaction(session, atm, bank)getTransactionSpecificsFromCustomer()sendToBank()finishApprovedTransaction()
Working from the design class diagram
The DepositTransaction class will have Two attributes Four methods
We can tell from this what methods the class will have but not what they do Refer to the use cases,
activity diagrams, and interaction diagrams for detail
Class DepositTransactiontoAccountAmount
DepositTransaction(session, atm, bank)getTransactionSpecificsFromCustomer()sendToBank()finishApprovedTransaction()
Interaction Diagrams
Show how the objects in the application “use” each other
Which methods are called What data is returned
ATM application:Deposit Use Case
:Session :Bank
DepositTransaction(session, atm, bank)
sendToBank()
(approval)
finishApprovedTransaction()
(confirmation)
checkIfCashAvailable(amount)
(confirmation)
initiateDeposit(account, amount)
(confirmation)
:DepositTransaction
(self)getTransactionSpecificsFromCustomer()
Session(session, atm, bank)
:ATM
Customer
Fitting everything together
CashWithdrawal
Deposit
Transfer
Invalid PIN
SessionCustomer
(actor)Bank
(actor) A deposit transaction is started from within a session when the customer chooses deposit from the menu of possible transaction types. The custome r chooses a type of account to deposit to (e.g. checking) from a menu of possible ac counts, and then chooses a dollar amount by typing it on the keyboard. The system sends the customer's card number, PIN, chosen account and amount to the ba nk, which either approves or disapproves the transaction. If the transaction is a pproved, the machine accepts an envelope from the customer containing cash and/or che cks and then issues a receipt. (If the customer does not insert the envelope within a specified period of time, this operation times out and the deposit transaction is aborted.) If the transaction is disapproved due to an incorrect PIN, the Incorrec t PIN extension is executed. All other disapprovals are reported to the session, wh ich initiates the Failed Transaction Extension. The bank is notified whether or not an ap proved transaction was completed in its entirety by the machine; if it is completed then the bank completes crediting the customer's account for the amount - contingent on manual verification of the deposit envelope contents by an operator lat er.
Customer ATM
Choose deposit Ask which type of account
Choose accounttype
Send customerinformation to bank
Bank
Incorrect PIN?
Credit customeraccount
Transactioncompleted
Incorrect PINexception
Transactionfailed
Approvetransaction
yes no
yesno
DepositTransaction(session, atm, bank)getTransactionSpecificsFromCustomer()sendToBank()finishApprovedTransaction()
toAccountAmount
Class DepositTransaction
DepositTransaction(session, atm, bank)getTransactionSpecificsFromCustomer()sendToBank()finishApprovedTransaction()
toAccountAmount
Class DepositTransaction:Session :Bank
DepositTransaction(session, atm, bank)
sendToBank()
(approval)
finishApprovedTransaction()
(confirmation)
checkIfCashAvailable(amount)
(confirmation)
initiateDeposit(account, amount)
(confirmation)
:DepositTransaction
Session(session, atm, bank)
:ATM
Customer
Use case diagramList of all use cases
in the application
Use case descriptions
Textual description of what happens in
each use case
Activity diagramPicture of the
activities described in
each use case
Design class diagrams
List of all methods and attributes in
each object
Interaction diagram
Diagram of how the objects work
together for each use case
Scenarios Objects
Integration and UML: Web Services
We’ll be working with this application later in the course
It uses the MSN Live Search web service to search the web
Microsoft’s web service is a distributed object
Partial interaction diagram for “Search Google” use case
:MSNSearchService
MSNSearchService()
:FormCustomer
Search(SearchResponse)
(search results)
:Label
Text property*
* Because of C#’s convention that uses properties like methods
Things to think about
What if you have to code something not accounted for in the design diagrams?
Does the diagram have to match the code exactly?
What does it mean when……additional detail is required?…specified methods go unused? …different sequencing is required?