UML and Systems Analysis MIS3502: Application Integration and Evaluation Paul Weinberg firstname.lastname@example.org 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 problem • Requirements-oriented • What should we do? • Systems Design is the process of modeling a solution • Functionality-oriented • How 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 development • Conduct an analysis • Develop a design • Implement 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… Analysis Models Design Models Class name Customer Attributes name Operations findName() Use case diagrams Design class diagrams :Controller :Customer :Order Use case descriptions Activity diagrams Interaction diagrams All diagrams adapted from “Systems Analysis and Design in a Changing World”, 3rd Edition Satzinger, 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 Session • Use case: sequence of events that represents an interaction between the user and the system Customer (actor) Bank (actor) Cash Withdrawal Deposit Transfer Invalid PIN Partial list of use cases from Bjork example
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 Customer ATM Bank Choose deposit Ask which type of account • Show which activities occur during a use case • This is for the deposit use case • The customer initiates the transaction Choose account type Ask deposit amount Choose deposit amount Send customer information to bank Incorrect PIN? yes no Incorrect PIN exception Approve transaction no Transaction failed yes Credit customer account Transactioncompleted
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? Design class diagrams
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
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 (self) getTransactionSpecificsFromCustomer() Customer :ATM :Session :DepositTransaction :Bank Session(session, atm, bank) DepositTransaction(session, atm, bank) sendToBank() (approval) checkIfCashAvailable(amount) (confirmation) initiateDeposit(account, amount) (confirmation) finishApprovedTransaction() (confirmation)
Fitting everything together Use case diagram List of all use cases in the application Use case descriptions Textual description of what happens in each use case Activity diagram Picture 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 Customer :Form :MSNSearchService :Label MSNSearchService() Search(SearchResponse) (search results) 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?