Dynamic Modeling in COMET Seconda parte Valentina Cordì.

25
Dynamic Modeling in COMET Seconda parte Valentina Cordì

Transcript of Dynamic Modeling in COMET Seconda parte Valentina Cordì.

Page 1: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

Dynamic Modeling in COMETSeconda parte

Valentina Cordì

Page 2: Dynamic Modeling in COMET Seconda 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.

Page 3: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 4: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 5: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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.

Page 6: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 7: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

Dynamic AnalysisDipendente Dallo Stato

Riguarda la interazione tra oggetti che partecipano a use-case dipendenti dallo stato.

Vedremo due esempi: Validate PIN. Cruise Control.

Page 8: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 9: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 10: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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.

Page 11: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 12: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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.

Page 13: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 14: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 15: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 16: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 17: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 18: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 19: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 20: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 21: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

<<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

Page 22: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 23: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 24: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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

Page 25: Dynamic Modeling in COMET Seconda parte Valentina Cordì.

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