Dynamic Modeling in COMET Seconda parte Valentina Cordì.
-
Upload
annetta-usai -
Category
Documents
-
view
215 -
download
0
Transcript of Dynamic Modeling in COMET Seconda parte Valentina Cordì.
Dynamic Modeling in COMETSeconda parte
Valentina Cordì
Dynamic Analysis
La Dynamic Analysis e` una tecnica che aiuta a determinare come gli oggetti interagiscono tra loro nell`esecuzione di uno use-case.
Si puo` suddividere in relazione al tipo di use-case in:Non dipendente dallo stato.Dipendente dallo stato.
Parte dagli use-case e considera ogni interazione tra l`attore principale e il sistema.
Un interazione inizia con un evento esterno.
Dynamic AnalysisNon Dipendente Dallo Stato
Considera ogni interazione in sequenza, nel modo seguente:
Determina gli oggetti interfaccia. Determina gli oggetti interni. Determina la collaborazione tra gli
oggetti. Considera eventuali sequenze
alternative
Dynamic AnalysisNon Dipendente Dallo Stato
Esempio: View Workstation Status
Use Case Name: View Workstation status.Actor:factory operator.Summary: This use case describes the factory
operator viewing the status of one or more factory workstation.
Precondition: The factory operator is logged in.Description: The factory operator request to view
the status of one or more factory workstation.Operator requests may be on demand.The operator may also subscribe to receive notification of changes in workstation satus.
Alternatives: Factory workstation is down. Warning message is dysplayed to operator.
Postocndition: Workstation status has been displayed.
View Workstation Status
<<user Inteface>>:Operator Interface
<<entity>>:Workstation StatusServer
V1.2:WorkstationData
V1.1:WorksationStatus Request
<<actor>>
:FactoryOperator
V1:Operator Request
V1.3:Displayed Info
Message Sequence Description
Dynamic AnalysisDipendente Dallo Stato
Riguarda la interazione tra oggetti che partecipano a use-case dipendenti dallo stato.
Vedremo due esempi: Validate PIN. Cruise Control.
Obiettivi: determinare la interazione tra i seguenti oggetti:
Lo state-dependent control object. Gli oggetti (solitamente interfacce),
che spediscono eventi al control object. Gli oggetti che eseguono le azioni e le
attivita`. Gli altri oggetti che partecipano nello
use-case.
Dynamic AnalysisDipendente Dallo Stato
I passi principali sono: Determinare oggetti interfaccia. Determinare gli state-dependent control
object. Determinare gli altri oggetti interni. Determinare collaborazione tra gli
oggetti. Determinare la esecuzione dello
statechart. Considerare le sequenze alternative.
Dynamic AnalysisDipendente Dallo Stato
Perche` e` importante costruire insieme il collaboration diagrams e lo statechart?
Dynamic AnalysisDipendente Dallo Stato
Un evento nel collaboration diagram deve essere consistente con lo stesso nello statechart.
La costruzione del collaboration diagram e dello statechart e` iterativa.
Ogni evento di input e di output deve essere considerato in sequenza.
Determinare attivita` e azioni. Determinare i messaggi generati dagli
oggetti. Mostrare gli eventi esterni e le
sottosequenze di eventi interni sia nello statechart che nel collaboration diagram.
Dynamic AnalysisDipendente Dallo Stato
Dynamic AnalysisDipendente Dallo Stato
Per completare la Dynamic Analysis è necessario controllare che:
Lo statechart sia guidato da ogni stato e da ogni transizione almeno una volta
Ogni azione e ogni attivita` sia eseguita almeno una volta.
2.5Validate PIN
(Customer Info)
2.4:PINEntered
(Customer Info)
2.3:Customer Info
2.7a:UpdateStatus
Banking System
<<external I/ODevice>>
:CardReader
<<subsystem>>:BankServer
<<state dependentcontrol>>
:ATMControl
<<entity>>:ATMTransaction
1.2:Card
Inserted
2.6[Valid]: Valid PIN
<<user interface>>
:CustomerInterface
<<entity>>:ATMCard
<<I/O deviceinterface>>:Card Reader
Interface
1.3:GetPIN
2.7DisplayMenu
2.1:Card Request
2.2:Card Data
1.1:CardInput Data
1:CardReader Input
1.4:PIN Prompt2.8:Selection Menu
2:PIN Input
Collaboration Diagram:Valid PIN
Idle
Entry/Display Welcome
Waitingfor Pin
ValidatingPin
Waiting forCustomer Choice
1.2:Card Inserted/1.3:Get PIN
2.4:PIN Entered/2.5:Validate PIN
2.6:Valid PIN/2.7:Display Menu,2.7a:Update Status
Banking System
2.5,2.6A.8:Validate PIN
(Customer Info)
2.6A.1a,2.7a:UpdateStatus
2.4,2.6A.7:PIN Entered(Customer Info)
2.3,2.6A.6:Customer Info
<<external I/ODevice>>
:CardReader
<<subsystem>>:BankServer
<<state dependentcontrol>>
:ATMControl
<<entity>>:ATMTransaction
1.2
2.6A*[Invalid] Invalid PIN 2.6[Valid]: Valid PIN
<<user interface>>
:CustomerInterface
<<entity>>:ATMCard
<<I/O deviceinterface>>:Card Reader
Interface
1.3,2.72.2,2.6A.5:Card Data
1.1
2,2.6A.3:PIN Input
1
2.6A.1:Invalid PIN Prompt
1.42.6A.2:Invalid PIN Prompt
2.8
2.1,2.6a.4:Card Request
Banking SystemCollaboration Diagram:Invalid PIN
2.5,2.6A.8:
2.6A.1a,2.7a
2.4,2.6A.7
2.3,2.6A.6
<<external I/ODevice>>
:CardReader
<<subsystem>>:BankServer
<<state dependentcontrol>>
:ATMControl
<<entity>>:ATMTransaction
1.2 2.6A*[Invalid]
2.6B[ThirdInvalid]:T
hird Invalid
PIN
<<user interface>>
:CustomerInterface
<<entity>>:ATMCard
<<I/O deviceinterface>>:Card Reader
Interface
1.3,2.6A.1,2.7 2.1,2.6A.42.2,2.6A.5
1.1
2,2.6A.3
1
1.4, 2.6A.2, 2.8
2.6B.1:Confiscate
2.6B.2:Confiscate Card
Banking SystemCollaboration Diagram:Third Invalid PIN
2.5,2.6A.8:
2.6A.1a,2.7a
2.4,2.6A.7
2.3,2.6A.6
<<external I/ODevice>>
:CardReader
<<subsystem>>:BankServer
<<state dependentcontrol>>
:ATMControl
<<entity>>:ATMTransaction
1.22.6C[StolenOR Expired]:Card Stolen,Card Expired
<<user interface>>
:CustomerInterface
<<entity>>:ATMCard
<<I/O deviceinterface>>:Card Reader
Interface
1.3,2.6A.1,2.7 2.1,2.6A.42.2,2.6A.5
1.1
2,2.6A.3
1
1.4, 2.6A.2, 2.8
2.6C.1:Confiscate
2.6C.2:Confiscate Card
Banking SystemCollaboration Diagram:stolen or expired card
1.2:Card Inserted/1.3:Get PIN
2.4,2.6A.7:PIN Entered/2.5,2.6A.8:Validate PIN
2.6:Valid PIN/2.7:Display Menu,2.7a:Update Stauts
2A.1:Cancel/2A.2:Eject,2A.2:Display Cancel
2.6B:Third Invalid PIN2.6C:Card Stolen, Card Expired/2.6B.1,2.6C.1:Confiscate2.6B.1a,2.6C1.a:Update Status
Idle
Entry/Display Welcome
Waitingfor Pin
Validating Pin
Waiting forCustomer Choice
Confiscating
Ejecting
2.6A:invalid PIN/2.6A.1:Invalid PIN Prompt,2.6A.1a:Update Status
Banking System
Cruise Control<<input device interface>>
:CruiseControlLeverInterface
<<external input device>>:CruiseControlLever
<<entity>>:CurrentSpeed
<<algorithm>>:Acceleration
<<state dependent control>>:CruiseControl
<<output device interface>>:ThrottleInterface
<<external output device>>:Throttle
C1:Accel Input
C1.1:AccelC1.2: Enable
Increase Speed
C1.6:Throttle Position
C1.3:Read
C1.4 CurrentSpeed ValueC1.5
Throttle Value
Collaboration Diagram:Accel event
Cruising
Do/Maintain Speed
Initial
Accelerating
C1.2Do/Increase Speed
Resuming
Do/Resume Cruising
Idle
Engine On/Clear Desired
SpeedEngine Off
C1.1:Accel[Brake Off]
Cruise/SelectDesiredSpeed
Reached Cruising
Brake Pressed
Resume[Brake Off]
Cruising Off
Cruise Control
<<algorithm>>:Cruiser
C2:Cruise Input
C2.1:Cruise
<<entity>>:CurrentSpeed
<<state dependent control>> :CruiseControl
<<output device interface>>:ThrottleInterface
<<input device interface>>:CruiseControlLeverInterface
<<entity>>:Desired Speed
<<algorithm>>:Acceleration
<<external input device>>:CruiseControlLever
C2.2:Disable Increase Control
C2.3 Select Desired Speed
C2.6:EnableMaintain Speed
C2.7:Read
C2.8:Desired Speed Value
C2.9:Read
C2.10:Current Speed Value
C2.4:ReadC2.5:Current Speed Value
C2.11:ThrottleValue
Cruise ControlCollaboration Diagram:Cruise event
Cruising
C2.6Do/Maintain Speed
Initial
Accelerating
C2.2Do/Increase Speed
Resuming
Do/Resume Cruising
Idle
Engine On/Clear Desired
SpeedEngine Off
Accel[Brake Off]
C2.1:Cruise/C2.3:Select Desired
Speed
Reached Cruising
Brake Pressed
Resume[Brake Off]
Cruising Off
Cruise Control
Cruise Control
<<input device interface>>:BrakeInterface
<<external input device>>:Brake
<<algorithm>>:Cruiser
<<state dependent control>> :CruiseControl
<<output device interface>> :ThrottleInterface
C3:Brake Input
C3.1:Brake PressedC3.2:Disable Maintain
Speed
C3.3Throttle
Value
Collaboration Diagram:Brake event
Cruising
C3.2Do/Maintain Speed
Initial
Resuming
Do/Resume Cruising
Idle
Engine On/Clear Desired
SpeedEngine Off
Accel[Brake Off]
Accelerating
Do/Increase Speed
Cruise/Select Desired
Speed
Reached Cruising
C3.1:Brake Pressed
Resume[Brake Off]
Cruising Off
Cruise Control
Cruising
C2.6,C3.2,C4.11Do/Maintain Speed
Initial
Resuming
C4.2,C4.10Do/Resume
Cruising
Idle
Engine On/Clear Desired
SpeedEngine Off
C1.1Accel[Brake Off]
Accelerating
C1.2,C2.2Do/Increase Speed
C2.1:Cruise/C2.3:Select Desired
Speed
C4.9:Reached Cruising
C3.1:Brake Pressed
C4.1:Resume[Brake Off]
Cruising Off
Cruise Control