Logical View For Lab
Logical View For Lab
1. Overview
2. Static Structures
3. Interactions
4. Dynamic Behavior
5. Example: Logical View for the ATM
Classes, interfaces,
collaborations Use cases Process,Threads
•In general only the design model is maintained in the logical view,
since the analysis model provides a rough sketch, which is later
refined into design artifacts.
Design Model
-The design model consists of collaborating classes, organized
into subsystems.
-Artifacts involved in the design model may include:
•class, interaction, and state diagrams
•the subsystems and their interfaces
2. Static Structures
Notion of Class
a description of a group of objects with:
•common properties (attributes),
•common behavior (operations),
•common relationships to other objects, and common semantics.
Visibility:
+ public
# protected
- private
Extensibility Mechanisms
•Stereotype
•Tagged value
•Constraint
Notion of Stereotype
•provides the capability to create a new kind of modeling element.
•we can create new kinds of classes by defining stereotypes for classes.
•the stereotype for a class is shown below the class name enclosed in
guillemets (<< >>).
•examples of class stereotypes: exception, utility etc.
Boundary, Entity, and Control Classes
The Rational Unified Process advocates for finding the classes for a
system by looking for boundary, control, and entity classes.
Entity classes:
•model information and associated behavior that is generally long lived
•may reflect a real-world entity, or may be needed to perform tasks internal
to the system
•are application independent: may be used in more than one application.
Boundary classes:
•handle the communication between the system surroundings and the inside
of the system
•can provide the interface to a user or another system
Control classes:
•model sequencing behavior specific to one or more use cases.
•typically are application-dependent classes.
Relationships
* *
Object Diagram
Shows a set of objects and their relationships at a point in time
Shows instances and links
Built during analysis and design (address the static design view)
Purpose
•Illustrate data/object structures
•Specify snapshots
Static Structure Diagrams
Subsystem: Independent unit of functionality that consists of a
collection of related classes and/or other subsystems.
•Offer interfaces and uses interfaces provided by other subsystems.
•In the UML, subsystems are represented as folders/packages:
<<subsystem>>
People
Information
Dependency Relationships: provides and uses relationships
•Uses relationship, shown as a dashed arrow to the used interface.
•Provides relationship, shown as a straight line to the provided interface.
Transfer
<<subsystem>> <<subsystem>>
DirectBanking AccountService
3. Interactions
Use Case Realization
the functionality of a use case is defined by describing the
scenarios involved.
•a scenario is an instance of a use case: it is one path through the flow of events
for the use case.
•each use case is a web of scenarios: primary scenarios (the normal flow for the
use case) and secondary scenarios (the what-if logic of the use case).
•scenarios help identify the objects, the classes, and the object
interactions needed to carry out a piece of the functionality
specified by the use case.
Transitions:
•represents a change from an originating state to a successor state (that
may be the same as the originating state).
•may have an action and/or a guard condition associated with it, and
may also trigger an event.
Activity Diagram
•Captures dynamic behavior (activity-oriented)
•Behavior that occurs within the state is called an activity: starts when the state
is entered and either completes or is interrupted by an outgoing transition.
•Purpose
-Model business workflow
-Model operations
5. Example: Logical View for the ATM
Withdraw Money Use case
2:requestWithdrawal
:CashierInterface :Withdrawal
1:identify
:CashierInterface 2:requestDeposit
1:identify
:Deposit 5: deposit
3:putMoney
Customer
:MoneyReceptor :Account
4:moneyReception
Transfer Use Case
A1:Account
1:identify :CashierInterface
4:transfer
2:requestTransfer 3:validate
A2:Account
:Transfer
Class Diagram <<control>>
<<boundary>> Withdrawal
Dispenser
requestWithdrawal()
authorizeDispense()
<<control>> <<entity>>
<<boundary>> Transfer Account
CashierInterface
requestTransfer() validate()
identify() deposit()
transfer()
withdraw()
<<control>>
Deposit
<<boundary>>
MoneyReceptor
requestDeposit()
putMoney() moneyReception()
(Refined) Class diagram providing a view of the classes involved
in withdraw Money use case (design model)
CardReader
Display Transaction
Manager
KeyPad Client
Customer Manager Persistent
Class
Withdrawal
Dispenser
Feeder
Account
Cash Manager
Dispenser Counter Account
Sensor
Traceability (Withdraw use case)
Analysis
CashierInterface Dispenser Withdrawal Account
<<trace>. <<trace>>
Design <<trace>> <<trace>>
Display Cash
Counter
KeyPad
Withdrawal
Client Dispenser
CardReader Manager Sensor
Transaction Account
Dispenser Manager
Feeder
Persistent Account
Class Manager
A Scenario of the Withdraw Money Use Case (Design Model)
:Client :Cash :Transaction
:CardReader :Display :KeyPad Manager Counter Manager
Specify amount
Amount (A)
Request cash availability (A)
…
Statechart Modeling Dynamic Behavior of Account Class
AccountState
debit [amount<=balance]/balance-=amount
deposit [amount<=-balance]/
balance+=amount-1
[amount>balance]/balance-=amount
withdraw
[amount>-balance]/
credit
balance+=amount-1
deposit/balance+=amount
<<subsystem>>
ATM Interface
<<subsystem>>
UDisplay Classes Subsystems
CardReader, Display, UDisplay/ATM Interface
<<subsystem>> KeyPad, ClientMgr
Dispenser DispenserFeeder, Dispenser/ATM Interface
DispenserSensor, CashCounter
Withdrawal, TransactionMgr TransactionMgt
<<layer>>
Application-specific
Subsystems Layers
System-software
<<layer>>
Middleware
<<layer>>
System-software
<<subsystem>> Application-specific
Requirements
ATM Interface
Design Codinglayer
STATES
UML use case UML Activity UML State UML
descriptions and diagrams
<<subsystem>>
Diagrams <<subsystem>>
Diagrams Package
Application-general layer
Transaction Mgt Account Mgt Diagrams
CLASS STRUCTURE
<<subsystem>> <<subsystem>>
Requirements
Java.awt Java.rmi UML
Specification UML Class UML Object Component
Middleware layer
Diagrams Diagrams Diagrams
Scenarios
<<subsystem>>
Java Virtual Machine
INTERACTIONS
UML Sequence UML Collaboration UML
Diagrams Diagrams Deployment
Diagrams
<<subsystem>> System-software layer
TCP/IP