Elevator Control System Case Study
COMET
Elevator Control System
Case Study
- Prima parte -
Indice
- 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
- 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
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
Indice
Problem Description
Per ogni ascensore:
• elevator buttons
• elevator lamps
• elevator motor
• elevator door
Indice
Problem Description
Per ogni piano :
• up and down floor buttons
• floor lamps
• direction lamps: direzione di eventuale
ascensore in arrivo
Indice
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
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
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
Select
Destination
Elevator
User
Request
Elevator
Arrival
Sensor
Use cases e attori di Elevator Control System
Message sequence description per Select Destination
Message sequence description per Request Elevator
Indice
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ù.
Torna al diagramma
Indice
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
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
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ù.
Torna al diagramma
Indice
Use Case Model:
Request Elevator 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 strtada per il piano
richiesto dall’utente. Infine l’ascensore arriva al piano
in risposta alla richiesta dell’utente.
Indice
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
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
Stop
Elevator at
Floor
Dispatch
Elevator
«include»
«include»
«include»
«include»
Select
Destination
Request
Elevator
Elevator
User
Use case model con abstract use case
Arrival
Sensor
Vai a Static Model
Vai a Dispatch Elevator
Vai a Stop Elevator at Floor
Indice
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
Torna al diagramma
Indice
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.
Torna al diagramma
Indice
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
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
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
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
Static Model
Attività della fase di Analysis Modeling
Static model: relazioni statiche
Conceptual static model
Context class diagram
Indice
Floor
Stops at
1...*
1...*
Indicates
arriving/leaving
1,2
FloorButton
1...*
ElevatorButton
1,2
1
1...*
1...*
1,2
DirectionLamp
ElevatorLamp
Notifies
Switches
on/off
1...*
FloorLamp
Elevator
ArrivalSensor
1
Motor
Conceptual static model per Elevator Control System
1
Door
Refined Static Model
Indice
«external input
device»
Elevator Button
«external output
device»
Elevator Lamp
1...*
1...*
Inputs to
Outputs to
1
1...*
Outputs to
«external output
device»
FloorLamp
Refined Static Model
1
«system»
ElevatorControl
System
1
1...*
1
1...*
Inputs to
Outputs to
1
«external output
device»
Motor
«external input
device»
Arrival Sensor
1
«external output
device»
1...
*
Door
1
1
Inputs to
Outputs to
1...*
«external output
device»
DirectionLamp
1...*
«external input
device»
FloorButton
Context class diagram per Elevator Control System
Indice
Object Structuring
Attività della fase di Analysis Modeling
Individuazione degli oggetti software:
- External device obj.
Software device interface obj.
* Elevator Button Interface
* Door Interface
* Motor Interface
* Elevator Lamp Interface
* Floor Button Interface
* Floor Lamp Interface
* Arrival Sensor Interface
* Direction Lamp Interface
Indice
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
Dynamic Model
Attività della fase di Analysis Modeling
Si definiscono le interazioni tra gli oggetti
corrispondenti a ciascuno use case.
Si utilizzano collaboration diagrams
Indice
E1: Elevator
Button Request
:Elevato
rUser
«input device
interface»
:ElevatorButton
Interface
E5: Elevator
Commitment
«coordinator»
:Scheduler
E2:
Elevator
Request
E5a: Up or
Down
«state dependent
control»
:ElevatorControl
Collaboration diagram per Select Destination use case
«coordinator»
:Elevator
Manager
E3:
Update
E4: Acknowledge
«entity»
:ElevatorStatus
&Plan
Indice
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
Diagramma
Indice
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
Diagramma
Indice
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
Collaboration diagram parziale
Collaboration diagram parziale
Statechart
Indice
«output device
interface»
:FloorLampInterface
D2a.1: Floor
Lamp Output
«external output
device»
:FloorLamp
D2: Close Door
«output device
interface»
:DoorInterface
D2a: Off Up
Floor Lamp
«state dependent
control»
:ElevatorControl
D5: Door Closed
D1: Up
Request
«entity»
:ElevatorStatus&Plan
Collaboration per Dispatch Elevator - parziale
D3: Close Door
Command
D4: Door
Response
«external output
device»
:Door
Message sequence description
Collaboration completo
Statechart
Indice
«coordinator»
:Scheduler
D10a:
Departed
(Floor#)
«state dependent
control»
:ElevatorControl
D10:
Departed
(Floor#)
«entity»
:ElevatorStatus&Plan
«external output
device»
:FloorLamp
D6a: Off Up
Direction
Lamp
D9:
Elevator
Started
D6:
Up
«external output
device»
:Motor
Collaboration per Dispatch Elevator - parziale
D6a.1:
Direction
Lamp
Output
«output device interface»
:DirectionLampInterface
«output device interface»
:MotorInterface
D7: Start
D8:
Up Motor
Motor
Command
Response
Message sequence description
Collaboration completo
Statechart
Door Closing to
Move Up
Indice
Entry/D2: Close Door,
D2a: Off Up Floor
Lamp
D1: Up Request
Elevator Idle
D1: Up Request
D5: Door Closed/
D6: Up, D6a: Off Up
Direction Lamp
Elevator Starting Up
Elevator Moving
Checking Next
Destination
D9: Elevator Started
Use case Dispatch Elevator: statechart per Elevator Control
Entry/ D10,
D10a: Departed
Collaboration completo
Indice
«external output device»
:FloorLamp
D2a.1: Floor
Lamp Output
«output device interface»
:FloorLampInterface
D2a: Off
Up Floor
Lamp
«external output device»
:DirectionLamp
«external output device»
:Motor
D6: Up
«state dependent control»
:ElevatorControl
D6a: Off Up
Direction
Lamp
D1: Up
Request
D2: Close Door
D5: Door
Closed
«output device interface»
:DoorInterface
D10:
Departed
(Floor#)
D4: Door
Response
«entity»
:ElevatorStatus&Pla
n
Collaboration Diagram per Dispatch Elevator use case
D8: Motor
Response
D7: Start Up
Motor
Command
D9:
Elevator
Started
D10a:
Departed
(Floor#)
«output device interface»
:DirectionLampInterface
D6a.1: Direction
Lamp Output
«output device interface»
:MotorInterface
«coordinator»
:Scheduler
D3: Close Door
Command
«external output device»
:Door
Torna a parziale 1
Torna a parziale 2
Torna a statechart
Indice
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 Destination
D1: {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
Collaboration parziale 1
Collaboration parziale 2
Collaboration completo
Dynamic Model: Collaboration Diagram per
Dispatch Elevator Abstract Use Case
Indice
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
Collaboration parziale 1
Collaboration parziale 2
Collaboration completo
Indice
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
Collaboration parziale 1
Collaboration parziale 2
Collaboration completo
Indice
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)
Collaboration parziale 1
Collaboration parziale 2
Collaboration completo
Indice
Statechart Model
Attività della fase di Analysis Modeling
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
Indice
No Request
Elevator Idle
entry/update idle status
Door Closing to
Move Up
Entry/D2:Close Door. D2a:
Off Up Floor Lamp
D1: Up Request
Down Request
D5: Door Closed/ D6: Up, D6a: Off
Up Direction Lamp
Door Closed/ Down, Off Up
Direction Lamp
Elevator Starting
Down
Elevator Starting Up
D9: Elevator
Started
D1: Up Request
Door Closing to
Move Down
Entry/Close Door. Off
Down Floor Lamp
Elevator Moving
Entry/D10, D10a:
Departed
Elevator Started
A2: Approaching Floor/
A3: Check This Floor
A4: Approaching Requested Floor/
A5: Stop/ A5a.1: On Direction Lamp
da Checking
Next
Destination
Statechart per Elevator Control
Down Request
Elevator Stopping
da Checking Next
Destination
....
Gerarchico
Top level
....
Indice
verso Door
Closing to
Move Up
A8: Elevator Stopped/ A9: Open Door/,
A9a: Off Elevator Lamp, A9b, A9c: Arrived
verso Door
Closing to
Move Down
Elevator Door
Opening
D1: Up Request
A12: Door opened/
A13: Start Timer
verso Elevator
Idle
Down Request
Elevator at Floor
No Request
A14: After (Timeout)/
A15: Check Next Destination
Checking Next
Destination
Gerarchico
Statechart per Elevator Control
Top level
Indice
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
Top level
muovere
Indice
Statechart Model
3.Preparing to Move Down: superstato che consiste dei
seguenti sottostati:
•Door Closing to Move Down
•Elevator Starting Down
Sono 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
Top level
Indice
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
Top level
Indice
No Request
Elevator Idle
entry/update idle status
Preparing to Move Down
Preparing to Move Up
Door Closing to
Move Up
Entry/Close Door, Off
Up Floor Lamp
Up Request
Door Closed/ Up, Off Up
Direction Lamp
Elevator Starting Up
Up Request
Elevator
Started
da Checking Next
Destination
Statechart gerarchico per Elevator Control
Down Request
Door Closing to
Move Down
Entry/Close Door. Off
Down Floor Lamp
Door Closed/ Down, Off
Down Direction Lamp
Elevator Starting
Down
Elevator Started
Down Request
da Checking
Next
Destination
Moving to Floor
Indice
Elevator Moving
Entry/Departed
Approaching Floor/Check
This Floor
Approaching Requested Floor/Stop On Direction Lamp
verso Door
Closing to
Move Up
D1: Up Request
Elevator Stopping
Elevator Stopped/Open Door, Off Elevator
Lamp, Arrived
verso Door
Closing to
Move Down
Elevator Door
Opening
Down Request
verso Elevator
Idle
No Request
Door opened/Start Timer
Elevator at Floor
After (Timeout)/Check Next Destination
Checking Next
Destination
Statechart gerarchico per Elevator Control
Flat statechart
Top level
Indice
No Request
Elevator Idle
Up Request
Down Request
Preparing to
Move Up
Elevator
Started
Preparing to
Move Down
Moving to
Floor
Down
Request
Elevator
Started
After
(Timeout)
Up Request
Checking Next
Destination
Top-level statechart per Elevator Control
Descrizione degli stati
Indice
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.
Fusione parziale 1
Fusione parziale 2
Indice
Elevator
Lamp
Output
«output device
interface»
: Elevator Lamp
Interface
«output device
interface»
: Motor Interface
Motor Command
Motor Response
Up
Off Elevator
Lamp
Down
Elevator Started
Stop
Elevator Stopped
«state dependent
control»
: Elevator Control
Open Door
Close Door
Door Opened Door Closed
«Output device
interface»
: Door Interface
Door Command
Door Response
Arrived (Floor#)
Scheduler
Request
Elevator
Commitment
Departed (Floor
#)
Service
Request
«coordinator»
: Scheduler
Fusione dei collaboration diagrams – parte 1
«input device interface»
: Floor Button Interface
Floor Button
Request
Indice
Floor
Lamp
Output
Direction
Lamp
Output
Arrival
Sensor
Input
Elevator
Button
Request
«output device interface»
: Floor Lamp
Interface
«output device interface»
: Direction Lamp
Interface
Floor Lamp
Command
«timer»
: Door Timer
Start
Timer
Direction Lamp
Command
Approaching
Floor
(Floor #)
«input device interface»
: Arrival Sensor
Interface
After
(Timeout)
«state dependent
control»
: Elevator Control
Check Next Destination
Next
Destination
Approaching
Request
Floor
Check This Floor
(Floor #)
Arrived (Floor #)
Departed (Floor #)
«entity»
: Elevator Status
& Plan
«input device
interface»
: Elevator Button
Interface
Elevator
Request
Fusione dei collaboration diagrams – parte 2
«coordinator»
: Elevator
Manager
Update
Acknowledge
Indice
Subsystem Structuring
Attività della fase di Design Modeling.
Si dà la precedenza alle linee guida:
• Geographical location
• Aggregation/composition
poichè l’applicazione che consideriamo è
potenzialmente distribuita
Indice
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.
Struttura di Elevator Subsystem
Struttura di Floor Subsystem
Strutturazione in sottosistemi
«control subsystem»
:ElevatorSubsystem
«output device
interface»
: Elevator Lamp
Interface
Up
«input device interface»
: Arrival Sensor
Interface
Approaching
Floor
(Floor #)
Off Elevator
Lamp
Down
«output device
interface»
: Motor Interface
Elevator Started
Start
Timer
Stop
Elevator Stopped
«state dependent
control»
: Elevator Control
Open Door Close Door
Door Opened Door Closed
«Output device
interface»
: Door Interface
«timer»
: Door Timer
After
(Timeout)
verso Floor
subsystem
Floor Lamp
Command,Direction Lamp
Command
Check Next Destination
Next Destination
Approaching
Request
Floor
Arrived (Floor #)
Check This Floor (Floor
#)
Up,
Down
Arrived (Floor #)
Departed (Floor #)
«entity»
: Elevator Status
& Plan
Update
Acknowledge
Struttura di Elevator Subsystem
Descrizione
Departed (Floor #)
Elevator
Request
«coordinator»
: Elevator
Manager
Refined Static Model
«input device
interface»
: Elevator Button
Interface
verso
subsystem
Scheduler
Indice
«external input
device»
: FloorButton
«data collection subsystem»
:FloorSubsystem
Floor
Button
Request
«input device
interface»
Service
Request
:FloorButtonInterface
Floor Lamp
Output
«external output
device»
: FloorLamp
Floor Lamp
Command
«output device interface»
:FloorLampInterface
Struttura di FloorSubsystem
«subsytem»
:ElevatorSubsystem
Direction Lamp
Command
Direction Lamp
Output
«external output
device»
: DirectionLamp
«subsystem»
: Scheduler
«output device
interface»
:DirectionLampInter
face
Descrizione
Refined Static Model
«external input
device»
: ElevatorButton
Indice
«external output
device»
: ElevatorLamp
Elevator
Button Requst
«external output
device»
: Motor
«system»
Motor
Command :Elevator Control
System
Motor
Response
«external input
device»
: FloorButton
«external output
device»
: FloorLamp
Floor
Button
Request
Floor
Lamp
Output
Floor Lamp
Command
Direction Lamp
Command
«data collection
subsystem»
: FloorSubsystem
Elevato
r
Lamp
Output
«control subsystem»
: ElevatorSubsystem
Arrival
Sensor Input
Door
Command
«control subsystem»
: ElevatorSubsystem
Door
Response
Arrival
(Floor #)
«external output
device»
: Door
Scheduler
Request
Depart
(Floor #)
Elevator
Commitment
Service
Request
«coordinator
subsystem»
: Scheduler
Direction Lamp
Output
«external output
device»
: DirectionLamp
Refined Static Model
Descrizione
Strutturazione in sottosistemi
Indice
Refined Static Model
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
«control subsystem»
ElevatorSubsystem
Static model
«output device
interface»
«output device
interface»
«output device
interface»
Door Interface
ElevatorLampInterface
MotorInterface
1
«input device
interface»
ArrivalSensorInter
face
«timer»
DoorTimer
1
Struttura di Elevator Subsystem
«inputdevice interface»
ElevatorButtonInterface
Struttura di Floor Subsystem
1...*
Requests
Controls
1
1..*
1...*
1 «coordinator»
Commands
1
1
1
ElevatorManager 1..*
1
«state dependent control»
Notifies
1
1
Updates
ElevatorControl
1
Updates,Checks 1
1
1...* 1...*
«entity»
Notifies
1...*
1
1...*
Controls
1
Controls
Strutturazione in sottosistemi
Requests
ElevatorStatus&Plan
*
*
*
«data collection
subsystem»
FloorSubsystem Controls
1...*
«output device
«input device
interface»
interface»
Direction Lamp
Floor Button
Interface
Interface
Updates
1
«coordinator subsystem»
1
Scheduler
Controls
Notifies
1...*
1
«server»
ElevatorStatus&Pl
anServer
«output device
interface»
Floor Lamp
Interface
Updates
1
«entity»
*
1...*
1
OverallElevatorStat
us&Plan
1
1
Requests
Refined static model per Elevator Control System
«coordinator»
Elevator Scheduler 1
1
Selects
Scarica

pavarino