61
COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Embed Size (px)

Citation preview

Page 1: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

COMET

Elevator Control System Case Study

- Prima parte -

Elevator Control System Case Study

Page 2: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

- Problem description - Use Case Model* Select Destination Use Case

* Request Elevator Use Case

* Abstract Use Cases

* Stop Elevator at Floor Abstract Use Case

* Dispatch Elevator Abstract Use Case

* Select Destination Concrete Use Case

* Request Elevator Concrete Use Case

Indice

Page 3: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Indice

- Static Model

- Object Structuring

- Dynamic Model* Collaboration Diag. per Select Destination Use Case

* Collaboration Diag. per Dispatch Elevator Abstract Use Case- Statechart Model- Fusione dei Collaboration Diagrams- Subsystem Structuring* Refined Static Model

Page 4: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Control System Case Study

L’ Elevator Control System in oggetto deve controllare uno o più ascensori.

In particolare il sistema deve:

•schedulare gli ascensori per rispondere a richieste degli utenti ai vari piani

•controllare il movimento degli ascensori tra i piani

Page 5: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Problem Description

Per ogni ascensore:

• elevator buttons

• elevator lamps

• elevator motor

• elevator door

Indice

Page 6: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Problem Description

Per ogni piano :

• up and down floor buttons

• floor lamps

• direction lamps: direzione di eventuale ascensore in arrivo

Indice

Page 7: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Problem Description

Inoltre:

• un solo floor button, una sola floor lamp e una sola direction lamp per ascensore al primo e ultimo piano

• in ogni albero motore ad ogni piano un arrival sensor

Indice

Page 8: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Problem Description

Caratteristiche hardware dei dispositivi di I/O:

• elevator buttons, floor buttons, arrival sensors: asincroni

• altri dispositivi di I/O: passivi

• elevator lamps, floor lamps: accese dall’hardware, ma spente dal software

• direction lamps accese e spente dal software.

Indice

Page 9: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model

Attività della fase di Requirements Modeling

Attori: Elevator User e Arrival Sensor

Dalla descrizione informale del problema si identificano:

Select Destination: l’utente nell’ascensore preme un up (o down) elevator button per selezionare un piano di destinazione

Request Elevator: l’utente a un piano preme un up (o down) floor button per richiedere un ascensore

Indice

Page 10: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Request Elevator

Select Destinati

on

Use cases e attori di Elevator Control System

Elevator User

Arrival

Sensor

Indice

Message sequence description per Select Destination

Message sequence description per Request Elevator

Page 11: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Select Destination Use Case

Attori: Elevator User, Arrival Sensor

Precondizione: L’utente è nell’ascensore

Descrizione:

• L’utente preme un bottone per salire. Il sensore del bottone manda al sistema una richiesta, identificando il piano di destinazione che l’utente vuole visitare.

• La nuova richiesta è aggiunta alla lista dei piani da visitare. Se l’ascensore è fermo, il sistema determina in quale direzione muovere per servire la successiva richiesta. Il sistema comanda la chiusura della porta, quindi comanda al motore di muovere l’ascensore su o giù.

Indice

Torna al diagramma

Page 12: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Select Destination Use Case

1 Quando l’ascensore si muove, l’arrival sensor si accorge che ci si sta avvicinando a un piano e lo notifica al sistema. Questo controlla se ci si doveva fermare a quel piano: se sì, comanda al motore di fermare l’ascensore. Fermato l’ascensore, il sistema comanda l’apertura della porta.

2 Se ci sono altre richieste in sospeso, l’ascensore visita quei piani che si trovano sulla strada per il piano richiesto dall’utente. Infine l’ascensore arriva al piano selezionato dall’utente.

Indice

Page 13: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Select Destination Use Case

Alternative:

• L’utente preme un bottone per scendere: la risposta del sistema è analoga alla sequenza principale.

• Se l’ascensore è a un piano, e non c’è nessun altro piano verso cui muovere, resta fermo a tale piano con la porta aperta.

Postcondizione: L’ascensore è arrivato al piano di destinazione selezionato dall’utente.

Indice

Page 14: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Request Elevator Use Case

Attori: Elevator User, Arrival Sensor

Precondizione: L’utente è a un piano,vuole un ascensore

Descrizione:

1 L’utente preme un bottone per salire. Il sensore del bottone manda la richiesta al sistema, identificando il numero del piano.

2 Il sistema seleziona un ascensore per visitare il piano. La nuova richiesta è aggiunta alla lista dei piani da visitare. Se l’ascensore è fermo, il sistema determina in quale direzione muovere per servire la successiva richiesta. Il sistema comanda la chiusura della porta, quindi comanda al motore di muovere l’ascensore su o giù.

Indice

Torna al diagramma

Page 15: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

1 Quando l’ascensore si muove, l’arrival sensor si accorge che ci si sta avvicinando a un piano e lo notifica al sistema. Questo controlla se ci si doveva fermare a quel piano: se sì, comanda al motore di fermare l’ascensore. Fermato l’ascensore, il sistema comanda l’apertura della porta.

2 Se ci sono altre richieste in sospeso, l’ascensore visita quei piani che si trovano sulla strtada per il piano richiesto dall’utente. Infine l’ascensore arriva al piano in risposta alla richiesta dell’utente.

Use Case Model: Request Elevator Use Case

Indice

Page 16: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Request Elevator Use Case

Alternative:

• L’utente preme un bottone per scendere: la risposta del sistema è analoga alla sequenza principale.

• Se l’ascensore è a un piano, e non c’è nessun altro piano verso cui muovere, resta fermo a tale piano con la porta aperta.

Postcondizione: L’ascensore è arrivato al piano in risposta alla richiesta dell’utente.

Indice

Page 17: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Abstract Use Cases

Si individuano due sottosequenze comuni agli Use Cases descritti, da cui ricavare due Abstract Use Cases:

Dispatch Elevator: la situazione in cui l’ascensore viene inviato in risposta a una richiesta dell’utente

Stop Elevator at Floor: la situazione in cui l’ascensore si ferma

Indice

Page 18: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dispatch Elevator

Stop Elevator at Floor

Select Destination

Request Elevator

«include» «include»«include» «include»

Elevator User

Arrival Sensor

Use case model con abstract use case

Indice

Vai a Static Model

Vai a Dispatch Elevator

Vai a Stop Elevator at Floor

Page 19: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Stop Elevator at Floor Abstract Use Case

Attore: Arrival Sensor

Precondizione: L’ascensore si sta muovendo

Descrizione: Quando l’ascensore si muove, l’arrival sensor si accorge che ci si sta avvicinando a un piano e lo notifica al sistema. Questo controlla se ci si doveva fermare a quel piano: se sì, comanda al motore di fermare l’ascensore. Fermato l’ascensore, il sistema comanda l’apertura della porta.

Alternative: L’ascensore non deve fermarsi a questo piano, quindi va oltre.

Postcondizione: L’ascensore si è fermato al piano, con la porta aperta

Indice

Torna al diagramma

Page 20: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Dispatch Elevator Abstract Use Case

Precondizione: L’ascensore ha almeno un piano da visitare

Descrizione: Il sistema determina in quale direzione muovere per servire la successiva richiesta. Il sistema comanda la chiusura della porta, quindi comanda al motore di muovere l’ascensore su o giù.

Alternative: Se l’ascensore è a un piano, e non c’è nessun altro piano verso cui muovere, resta fermo a tale piano con la porta aperta.

Postcondizione: L’ascensore si sta muovendo nella direzione comandata.

Indice

Torna al diagramma

Page 21: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Select Destination Concrete Use Case

Attori: Elevator User

Precondizione: L’utente è nell’ascensore

Descrizione:

1. L’utente preme un bottone per salire (o scendere). Il sensore del bottone manda al sistema una richiesta, identificando il piano di destinazione che l’utente vuole visitare.

2. La nuova richiesta è aggiunta alla lista dei piani da visitare. Se l’ascensore è fermo, si include Dispatch Elevator Abstract Use Case

3. Si include Stop Elevator at Floor

Indice

Page 22: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Select Destination Concrete Use Case

4. Se ci sono altre richieste in sospeso, l’ascensore visita quei piani che si trovano sulla strada per il piano richiesto dall’utente. Infine l’ascensore arriva al piano selezionato dall’utente.

Alternative:

L’utente preme un bottone per scendere: la risposta del sistema è analoga alla sequenza principale.

Postcondizione: L’ascensore è arrivato al piano di destinazione selezionato dall’utente.

Indice

Page 23: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Request Elevator Concrete Use Case

Attori: Elevator User

Precondizione: L’utente è a un piano, vuole un ascensore

Descrizione:

1. L’utente preme un bottone per salire. Il sensore del bottone manda la richiesta al sistema, identificando il numero del piano.

2. Il sistema seleziona un ascensore per visitare il piano. La nuova richiesta è aggiunta alla lista dei piani da visitare. Se l’ascensore è fermo, si include Dispatch Elevator abstract use case.

3. Si include Stop Elevator at Floor abstract use case

Indice

Page 24: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Use Case Model: Request Elevator Concrete Use Case

4. Se ci sono altre richieste in sospeso, l’ascensore visita quei piani che si trovano sulla strada per il piano richiesto dall’utente, seguendo le sequenze di dispatching e stopping. Infine l’ascensore arriva al piano in risposta alla richiesta dell’utente.

Alternative: L’utente preme un bottone per scendere; la risposta del sistema è analoga alla sequenza principale.

Postcondizione: L’ascensore è arrivato al piano in risposta alla richiesta dell’utente

Indice

Page 25: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Static Model

Attività della fase di Analysis Modeling

Static model: relazioni statiche

Conceptual static model

Context class diagram

Indice

Page 26: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Floor

FloorButton FloorLamp DirectionLamp

Elevator

ArrivalSensor

1...*

1Notifies

1...*1...*

Stops at

1...*

Indicates arriving/leaving

1,2

Switches on/off

1,21,2

ElevatorButton ElevatorLamp Motor Door

1...* 1...* 1 1

Conceptual static model per Elevator Control System

Indice

Refined Static Model

Page 27: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«system»ElevatorControlSystem

«external output device»DirectionLamp

Outputs to1...*

1

«external output device»

FloorLamp

«external input device»

FloorButton

1

1...*

Outputs to

1

1...*

Inputs to

«external output device»

Motor 11...*

Outputs to

«external output device»

Door

«external output device»Elevator Lamp

«external input device»

Arrival Sensor

«external input device»

Elevator Button

1...*

1...*1...*1...*

1

111

Inputs toInputs to Outputs

to

Context class diagram per Elevator Control System

Indice

Refined Static Model

Page 28: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Object Structuring

- External device obj. Software device interface obj.

Individuazione degli oggetti software:

* Elevator Button Interface * Door Interface * Motor Interface * Elevator Lamp Interface * Floor Button Interface * Floor Lamp Interface * Arrival Sensor Interface * Direction Lamp Interface

Attività della fase di Analysis Modeling

Indice

Page 29: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Object Structuring

Control objects:

* Elevator Control state dependent control object* Elevator Manager* Scheduler

Entity object:

*Elevator Status & Plan status: informazioni sul movimento dell'ascensore (in su, in giù o fermo); il piano corrente (se si trova fermo a un piano) o l'ultimo piano visitato (se è in movimento) plan: lista di tutti i piani che l'ascensore deve visitare

Indice

Page 30: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model

Si definiscono le interazioni tra gli oggetti corrispondenti a ciascuno use case.

Si utilizzano collaboration diagrams

Attività della fase di Analysis Modeling

Indice

Page 31: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«input device

interface»:ElevatorButtonInterface

«coordinator»

:ElevatorManager

«coordinator»

:Scheduler

«state dependent control»

:ElevatorControl

«entity»:ElevatorSta

tus&Plan

E1: Elevator Button Request

E2: Elevator Request

E3: Update E4:

AcknowledgeE5: Elevator Commitment

E5a: Up or Down

Collaboration diagram per Select Destination use case

:ElevatorUse

r

Indice

Page 32: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Select Destination Use Case

Message sequence description

E1: La Elevator Button Request arriva all'oggetto Elevator Button Interface

E2: L'oggetto Elevator Button Interface manda all'oggetto Elevator Manager la Elevator Request

E3: L' Elevator Manager manda la richiesta all'oggetto Elevator Status & Plan,che la aggiunge alla lista dei piani da visitare

Indice

Diagramma

Page 33: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Select Destination Use Case

E4: Viene aggiornato l'elevator plan. Viene mandato un riscontro all'oggetto Elevator Manager, che verifica se l'ascensore è fermo

E5: L' Elevator Manager manda un messaggio Elevator Commitment allo Scheduler, per informarlo che tale ascensore andrà a visitare il piano dato

E5a: Se l'ascensore è fermo, Elevator Manager manda un messaggio Up (o Down) all'oggetto Elevator Control,indicandogli di muovere nella direzione desiderata. Questo caso è gestito da Dispatch Elevator use case

Indice

Diagramma

Page 34: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Dispatch Elevator Abstract Use Case

Note: i messaggi Up o Down possono arrivare a Elevator Control da diverse origini, che verranno indicate con source object (considerabile come parametro di input al collaboration model).

Nello scenario considerato viene inviata una Up Request

Indice

Collaboration diagram parziale

Collaboration diagram parziale

Statechart

Page 35: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«state dependent control»

:ElevatorControl

«entity»:ElevatorStatus

&Plan

«output device interface»

:FloorLampInterface

«external output device»

:FloorLamp

«output device interface»

:DoorInterface

«external output device»:Door

D1: Up Request

D2: Close Door

D3: Close Door Command

D4: Door Response

D5: Door Closed

D2a: Off Up Floor Lamp

D2a.1: Floor Lamp Output

Collaboration per Dispatch Elevator - parziale

Indice

Message sequence description

StatechartCollaboration completo

Page 36: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«state dependent control»

:ElevatorControl

«entity»:ElevatorStatus

&Plan

«coordinator»:Scheduler

«output device interface»

:DirectionLampInterface

«external output device»

:FloorLamp

«output device interface»

:MotorInterface

«external output device»:Motor

D10a: Departed (Floor#)

D10: Departed (Floor#)

D6a: Off Up Direction Lamp

D6: Up

D9: Elevator Started

D6a.1: Direction Lamp Output

D8: Motor Response

D7: Start Up Motor Command

Collaboration per Dispatch Elevator - parziale

Indice

Message sequence description

Statechart

Collaboration completo

Page 37: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Idle

Checking Next

Destination

Elevator Starting Up

Door Closing to Move Up

Entry/D2: Close Door, D2a: Off Up Floor Lamp

Elevator Moving

Entry/ D10, D10a: Departed

D5: Door Closed/ D6: Up, D6a: Off Up Direction Lamp

D1: Up Request

D1: Up Request

D9: Elevator Started

Use case Dispatch Elevator: statechart per Elevator Control

Indice

Collaboration completo

Page 38: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«external output device»

:DirectionLamp

«output device interface»

:DirectionLampInterface

«state dependent control»

:ElevatorControl

«output device interface»

:DoorInterface

«external output device»:Door

«external output device»:Motor

«output device interface»

:MotorInterface«coordinator»

:Scheduler

«entity»:ElevatorStatus

&Plan

«external output device»

:FloorLamp

«output device interface»

:FloorLampInterface

D2a.1: Floor Lamp Output

D6a.1: Direction Lamp Output

D2a: Off Up Floor Lamp

D6a: Off Up Direction Lamp D1:

Up Request

D10: Departed(Floor#)

D10a: Departed (Floor#)

D6: Up

D9: Elevator Started

D7: Start Up Motor Command

D8: Motor Response

D2: Close Door

D5: Door Closed

D3: Close Door CommandD4: Door

Response

Collaboration Diagram per Dispatch Elevator use case

Indice

Torna a parziale 1 Torna a parziale 2

Torna a statechart

Page 39: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Dispatch Elevator Abstract Use Case

Message sequence description

Precondizione: l’ascensore si trova nello stato Elevator Idle oppure nello stato Checking Next DestinationD1: {source object} manda un messaggio Up Request a Elevator Control, che effettua una transione allo stato Door Closing to Move Up

Come risultato della transizione, ci sono due eventi in output concorrenti

Indice

Collaboration parziale 1 Collaboration parziale 2 Collaboration completo

Page 40: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Dispatch Elevator

Abstract Use Case

D2: Elevator Control manda un comando Close Door a Door Interface

D2a: (sequenza parallela) Elevator Control manda un comando Off Up Floor Lamp all’oggetto Floor Lamp Interface, che spegne la reale floor lamp

D3: Door Interface manda un Close Door Command alla porta reale

D4: la porta reale manda una Door Response quando la porta è chiusa

Indice

Collaboration parziale 1 Collaboration parziale 2 Collaboration completo

Page 41: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Dispatch Elevator

Abstract Use Case

D5: La Door Interface manda un messaggio Door Closed a Elevator Control, che effettua una transizione allo stato Elevator Sarting Up

D6: Elevator Control manda un comando Up all’oggetto Motor Interface

D6a: Elevator Control manda una richiesta Off Up Direction Lamp all’oggetto Direction Lamp Interface, che spegne la direction lamp (D6a.1)

D7: l’oggetto Motor Interface manda una Motor Response quando l’ascenore ha iniziato a muoversi verso l’alto

Indice

Collaboration completo

Collaboration parziale 2Collaboration parziale 1

Page 42: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Dynamic Model: Collaboration Diagram per Dispatch Elevator Abstract Use Case

D8: il motore reale manda una Motor Response quando l’ascensore ha iniziato a muoversi verso l’alto

D9: l’oggetto Motor Interface manda un messaggio Elevator Started all’oggetto Elevator Control, che effettua una transione allo stato Elevator Moving

D10: Elevator Control manda un messaggio Departed agli oggetti Elevator Status & Plan (D10) e Scheduler (D10a)

Indice

Collaboration parziale 1 Collaboration parziale 2 Collaboration completo

Page 43: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Statechart Model

E’ necessario

• fondere gli statecharts parziali di Dispatch Elevator use case e di Stop Elevator at Floor

• considerare branch alternativi

per creare uno statechart completo

Si avranno inoltre: Statechart gerarchico e top level

Attività della fase di Analysis Modeling

Indice

Page 44: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Moving

A2: Approaching Floor/ A3: Check This Floor

Entry/D10, D10a: Departed

Elevator Idle

entry/update idle statusDoor Closing to Move Up

Entry/D2:Close Door. D2a: Off Up Floor Lamp

Door Closing to Move Down

Entry/Close Door. Off Down Floor LampD1: Up

RequestDown Request

Elevator Starting Up Elevator Starting Down

D5: Door Closed/ D6: Up, D6a: Off Up Direction Lamp

Door Closed/ Down, Off Up Direction Lamp

D9: Elevator Started

Elevator Started

Elevator Stopping

A4: Approaching Requested Floor/ A5: Stop/ A5a.1: On Direction Lamp

Statechart per Elevator Control....

No Request

D1: Up Request

da Checking Next Destination

Down Request

da Checking Next Destination

Indice

Gerarchico Top level

Page 45: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

....

Elevator Door

Opening

A8: Elevator Stopped/ A9: Open Door/,A9a: Off Elevator Lamp, A9b, A9c: Arrived

Elevator at Floor

A12: Door opened/ A13: Start Timer

Checking Next Destination

A14: After (Timeout)/ A15: Check Next Destination

verso Door Closing to Move Up

D1: Up Request

No Request

verso Elevator Idle

Down Request

verso Door Closing to

Move Down

Statechart per Elevator Control

Indice

Gerarchico Top level

Page 46: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Statechart Model

Consideriamo il top level statechart , che mostra gli eventi ma non le azioni:

1. Elevator Idle: l’ascensore è fermo a un piano e non ha richieste in sospeso. Ha la porta aperta.

2. Preparing to Move Up: è un super-stato che comprende i seguenti sottostati

•Door Closing to Move Up: l’ascensore vi entra quando incomincia a chiudere la porta per soddisfare una richiesta di visitare un piano superiore

•Elevator Starting Up: un ascensore vi entra quando la porta è stata chiusa e sta aspettando che il motore inizi a farlo muovere

Indice

Top level

Page 47: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Statechart Model

3.Preparing to Move Down: superstato che consiste dei seguenti sottostati:•Door Closing to Move Down•Elevator Starting DownSono analoghi ai due precedenti

4. Moving to Floor: questo superstato consiste dei seguenti sottostati

•Elevator Moving: un ascensore vi entra quando ha iniziato la sua salita o la sua discesa

•Elevator Stopping: un ascensore vi entra quando si sta avvicinando a un piano a cui si deve fermare

Indice

Top level

Page 48: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Statechart Model

•Elevator Door Opening: un ascensore vi entra quando si è fermato al piano e la porta si sta aprendo

•Elevator at Floor: un ascensore vi entra quando la porta si è aperta completamente

5. Checking Next Destination: l’ascensore controlla quale piano visitare e quindi in quale direzione muoversi, o se entrare nello stato Elevator Idle. Vi entra dopo un timer event nello stato Elevator at Floor

Indice

Top level

Page 49: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Idle

entry/update idle status

Door Closing to Move Up

Entry/Close Door, Off Up Floor Lamp

Door Closing to Move Down

Entry/Close Door. Off Down Floor Lamp

Up Request Down Request

Elevator Starting Up

Elevator Starting Down

Door Closed/ Up, Off Up Direction Lamp

Door Closed/ Down, Off Down Direction Lamp

Elevator Started

Elevator Started

Statechart gerarchico per Elevator Control

No Request

Up Request

da Checking Next Destination

Down Request

da Checking Next Destination

Preparing to Move Up

Preparing to Move Down

Indice

Page 50: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Door

Opening

Elevator Stopped/Open Door, Off Elevator Lamp, Arrived

Elevator at Floor

Door opened/Start Timer

Checking Next Destination

After (Timeout)/Check Next Destination

verso Door Closing to Move Up

D1: Up Request

No Request

verso Elevator Idle

Down Request

verso Door Closing to

Move Down

Statechart gerarchico per Elevator Control

Elevator Stopping

Elevator Moving

Entry/Departed

Approaching Requested Floor/Stop On Direction Lamp

Moving to Floor

Approaching Floor/Check This Floor

Indice

Flat statechart Top level

Page 51: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Elevator Idle

Preparing to Move Down

Moving toFloor

Preparing to Move Up

Checking Next

Destination

No Request

Up Request

Up Request

ElevatorStarted

ElevatorStarted

Down Request

Down Request

After(Timeout)

Top-level statechart per Elevator Control

Indice

Descrizione degli stati

Page 52: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Fusione dei Collaboration Diagrams

Attività della fase di Design Modeling.

Si mostrano tutti gli oggetti che partecipano agli use cases e tutte le loro interazioni.

Vengono incluse alternative che di solito non compaiono nei collaboration diagrams canonici.

I nomi dei messaggi possono essere aggregati.

Indice

Fusione parziale 1 Fusione parziale 2

Page 53: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«output deviceinterface»

: Elevator LampInterface

Elevator Lamp

Output «output deviceinterface»

: Motor Interface

Motor Command

Off ElevatorLamp

«state dependentcontrol»

: Elevator Control

Stop

Down

Up

Elevator Started

Elevator Stopped

Motor Response

«Output deviceinterface»

: Door Interface

Open Door Close Door

Door Opened

Door Closed

Door Command

Door Response

«coordinator»

: Scheduler

Arrived (Floor#)

Departed (Floor #)

«input device interface»

: Floor Button Interface

Scheduler Request

ElevatorCommitment

Service Request

Floor Button Request

Fusione dei collaboration diagrams – parte 1

Indice

Page 54: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«state dependentcontrol»

: Elevator Control

«timer»: Door Timer

After(Timeout)Start

Timer

«output device interface»

: Direction LampInterface

DirectionLamp

Output

«output device interface»

: Floor LampInterface

FloorLamp

Output

«input device interface»

: Arrival SensorInterface

ArrivalSensorInput

Direction LampCommand

Floor LampCommand

ApproachingFloor

(Floor #)

«entity»: Elevator Status

& Plan

Check Next Destination

Check This Floor (Floor #)

Arrived (Floor #)

Next Destination

Departed (Floor #)

ApproachingRequest

Floor

Update Acknowledge«coordinator»: ElevatorManager

«input deviceinterface»

: Elevator ButtonInterface

ElevatorButton

RequestElevator Request

Fusione dei collaboration diagrams – parte 2

Indice

Page 55: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Subsystem Structuring

Si dà la precedenza alle linee guida:

• Geographical location

• Aggregation/composition

poichè l’applicazione che consideriamo è potenzialmente distribuita

Attività della fase di Design Modeling.

Indice

Page 56: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Subsystem Structuring

Elevator Subsystem: oggetto composto, control subsystem

Contiene:Door Interface, Motor Interface, Elevator Button Interface, Elevator Lamp Interface, Arrival Sensor Interface, Door Timer, Elevator Control, Elevator Status & Plan, Elevator Manager Floor Subsystem: oggetto composto, data collection subsystem

Contiene: Floor Lamp Interface, Floor Button Interface, Direction Lamp Interface Scheduler Subsystem: coordinator subsystem.

Indice

Struttura di Elevator Subsystem Struttura di Floor Subsystem Strutturazione in sottosistemi

Page 57: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«output deviceinterface»

: Elevator LampInterface

«output deviceinterface»

: Motor Interface

«state dependentcontrol»

: Elevator Control

Stop

Down

Up

Elevator Started

Elevator Stopped

«Output deviceinterface»

: Door Interface

Open Door Close Door

Door Opened

Door Closed

«entity»: Elevator Status

& Plan

Check Next Destination

Check This Floor (Floor #)

Arrived (Floor #)

Next Destination

Departed (Floor #)

ApproachingRequest

Floor

«timer»: Door Timer

After(Timeout)

StartTimerOff

ElevatorLamp

«coordinator»: ElevatorManager

Acknowledge

Update «input deviceinterface»

: Elevator ButtonInterface

Elevator Request

Arrived (Floor #)

Departed (Floor #)

verso subsystem Scheduler

Up, Down

«input device interface»

: Arrival SensorInterface

ApproachingFloor

(Floor #)

«control subsystem» :ElevatorSubsyste

m

verso Floor

subsystem

Floor Lamp Command,Direction

Lamp Command

Struttura di Elevator SubsystemDescrizione Refined Static Model

Page 58: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«external input

device»: FloorButton

Floor Button

Request «subsystem»: Scheduler

Floor LampOutput

«external outputdevice»

: DirectionLamp

Direction Lamp

Output

«input device interface»

:FloorButtonInterface

«output device interface»

:FloorLampInterface

«output device interface»

:DirectionLampInterface

«subsytem»:ElevatorSubsy

stem

ServiceRequest

Floor Lamp

Command«external

outputdevice»

: FloorLamp

Direction Lamp

Command

«data collection subsystem»

:FloorSubsystem

Struttura di FloorSubsystem

Indice

Descrizione Refined Static Model

Page 59: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«control subsystem»: ElevatorSubsystem

«external outputdevice»

: ElevatorLamp

«control subsystem»

: ElevatorSubsyst

em

«external inputdevice»

: ElevatorButton

«external outputdevice»: Motor

«external outputdevice»: Door

«external input

device»: FloorButton

«data collectionsubsystem»

: FloorSubsystem

Elevator

LampOutput

ArrivalSensor Input

MotorCommand

MotorResponse

DoorCommand

DoorResponse

«coordinatorsubsystem»: Scheduler

«external outputdevice»

: FloorLamp

Floor Button

Request

ServiceRequest

«external outputdevice»

: DirectionLamp

Floor Lamp

Output

Direction LampOutput

Floor Lamp

CommandDirection Lamp

Command

Arrival(Floor #)Depart

(Floor #)Elevator

Commitment

SchedulerRequest

«system»:Elevator ControlSystem

ElevatorButton Requst

Strutturazione in sottosistemi

Indice

DescrizioneRefined Static Model

Page 60: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

Refined Static Model

Indice

Rappresentato da un class diagram

Derivato da:

• architettura generale dei sottosistemi

• struttura di ciascun sottosistema

Mostra:

• classi da cui sono istanziati gli oggetti che partecipano ai collaboration diagrams

• relazioni tra le classi

Page 61: COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study

«output device interface»

Door Interface

«output device interface»

ElevatorLampInterface

«output device interface»

MotorInterface

«inputdevice interface»

ElevatorButtonInterface

«input device interface»

ArrivalSensorInterface «state dependent

control»

ElevatorControl

«coordinator»

ElevatorManager

«entity»

ElevatorStatus&Plan«timer»

DoorTimer

Controls

1

1...*

Controls

1

1 Requests1...*

1

Updates1

1

1

1Updates,Check

s

11Commands

1

1

Controls

1

1...*

Notifies

1

1Notifies

«control subsystem»

ElevatorSubsystem

«output device interface»

Direction Lamp Interface

«server»

ElevatorStatus&PlanServer

«coordinator»

Elevator Scheduler

«input device interface»

Floor Button Interface

«output device interface»

Floor Lamp Interface

1...*

1...*

Controls

«entity»

OverallElevatorStatus&Plan

1

1Updates

11

Selects

1...*

1...*

Controls

1...* 1

1...*

1

1

1..*

Updates

1..* Requests

Notifies

Requests

«data collection subsystem»

FloorSubsystem

«coordinator subsystem»Scheduler

*

*

*1

* 1

Refined static model per Elevator Control System

Static model

Struttura di Elevator Subsystem

Struttura di Floor Subsystem

Strutturazione in sottosistemi