Documente Academic
Documente Profesional
Documente Cultură
Elevator Control System Banking System Cruise Control and Monitoring System Distributed Factory Automation System Electronic Commerce System
Hassan Gomaa, Designing Concurrent, Distributed, and Real-Time Applications with UML, AddisonWesley, Object Technology Series, 2000.
Koichiro Ochimizu School of Information Science Japan Advanced Institute of Science and Technology
COMET
User Requirements Modeling Analysis Modeling Design Modeling Throwaway Prototyping Incremental Software Construction Incremental Software Integration Incremental Prototyping Customer System Testing (Concurrent Object Modeling and architectural design mEThod)
2005/2/26
Process
Problem Definition Problem Description Definition of Functional Requirements by a Use Case Diagram and Use Case descriptions Analysis Static Modeling of objects in a problem domain. Dynamic Modeling in a problem domain Collaboration Diagrams State Charts Consolidated State Charts Consolidated Collaboration Diagram Architecture Design ( Distributed, Non Distributed) Subsystem Design Task Design Information Hiding Class Design Detailed Design Connectors Design Composite Task Design Deployment Performance Analysis Worst-case scenario analysis Programming (Incremental)
Incremental Software Construction Selecting a subset of the system to be constructed for each increment. The subset is determined by choosing the use cases to be Included in this increment. Incremental software construction consists of the detailed design, coding, and unit testing of the classes in the subset. Incremental Software Integration the integration testing of each increment is performed. Integration test cases are developed for each use case. Interfaces between the objects that participates in each use case are tested. System Testing testing the system against Its functional requirements.
Problem Description
1..* Floor
1..* Elevator 1
1 1..*
Arrival Sensor
Problem Description
Definition of Functional Requirements by Use Cases Describing a class diagram of real world entities is recommended.
Select Destination
Arrival Sensor
<<include>>
<<include>>
<<include>>
Select Destination
Request Elevator
Elevator User
1..*
1 1
1..*
1..*
1..*
E5:
F4: Update
<<coordinator>> Scheduler
: Elevator User
<<coordinator>>
Scheduler
Elevator Manager
:Elevator User
F6: ElevatorCommitment
F6a: Up or Down
Elevator Stopping
A8: Elevator Stopped / A9Open Door, A9a Off Elevator Lamp, A9b,A9c: Arrived
<<timer>>
: DoorTimer
A14:After
(Timeout)
A9a:Off ElevatorLamp
A13:Start A1:Arrival Timer Sensor <<input device A2:Approaching <<state depend Input
A9:Open Door
interface>>
Floor(Floor#)
control>>
:Arrival Sensor
: ArrivalSensor Interface
Floor (Floor #, direction)
A4:Approaching Requested
Elevator at Floor
A14: After( Timeout) /A15: Check Next Destination
A16:No Request
A9b:Arrived(Floor #) A15:Check
Next Destination
<<coordinator>>
: Scheduler
<<entity>>
: ElevatorStatus&Plan
Elevator Idle
A16: No Request
<<coordinator>>
: Scheduler
D1:
Up Request
D1: Up Request
<<entity>>
: Elevator Status&Plan
No Request
Door Closing to Move Up Entry/ D2:Close Door , D2a:Off Up Floor Lamp D1:Up Request Down Request
Entry/ Close Door , Off Down Floor Lamp Door Closed / Down, Down Direction Lamp Elevator Starting Down Elevator Started Off
A4:Approaching Requested Floor / A5Stop, A5a1On Direction Lamp Elevator Stopping Down Request
D1:Up Request
A8:Elevator Stopped / A9Door Opened, A9a Off Elevator Lamp, A9b,A9c:Arrived Elevator Door Opening A12:Door Opened /A13:Start Timer Elevator at Floor A14:After(Timeout) /A15:Check Next Destination Checking Next destination
<<timer>>
: Door Timer Floor Lamp Command Start Timer Direction Lamp Command
Subsystem Structuring
Structuring Criterion: Principles high coupling within a subsystem and low coupling between subsystems
Aggregate/composite object: objects that are part of the same aggregate or composite object should be in the same subsystem Geographical locationIf two objects could potentially be physically separated in different locations, they should be in different subsystems to reduce
communication cost
After ( Timeout)
Close Door
ArrivalSensor Input
Check Next Destination Check This Floor (Floor #) Arrived( Floor #) Departed( Floor #)
Door Closed
Arrived ( Floor #)
Up, Down
<<entity>>
: Elevator Status&Plan Departed( Floor #) Acknowledge Scheduler Request Floor Service Button Request <<input device Interface
<<coordinator>>
: Elevator Manager Elevator Commitment
Clients and servers must be In separate subsystems User interface objects are usually clients A control objects and all the entity and interface objects it directly controls should all be part of one subsystem
<<coordinator>>
: Scheduler
interface>>
: FloorButton Interface
Subsystem Structuring
<<timer>>
: Door Timer Floor Lamp Output
After ( Timeout)
Motor Command
<<timer>>
Floor Lamp Command Direction Lamp Command
After (Timeout)
Close Door
<<sub system>>
Floor Subsystem
Elevator Stopped
Open Door
ArrivalSensor Input
Check Next Destination Check This Floor (Floor #) Arrived( Floor #) Departed( Floor #)
Door Closed
: Elevator Control
Next Destination Approaching Requested Floor
Arrived ( Floor #) Elevator Subsystem Floor Subsystem Scheduler Subsystem Departed( Floor #)
Check This Floor( Floor #) Arrived( Floor #) Arrived( Floor # Departed (Floor #) Departed( Floor #)
Up, Down
<<entity>>
: Elevator Status&Plan Acknowledge Scheduler Request
Up, Down
<<entity>>
: Elevator Status & Plan Acknowledge Update
Scheduler Request
<<coordinator>>
: Elevator Manager Elevator Commitment
<<coordinator>>
: Scheduler
interface>>
: FloorButton Interface
<<coordinator>>
: Elevator manager
<<sub system>>
: Scheduler
Elevator Commitment
Subsystems
Floor Button Request <<control subsystem>> : FloorSubsystem Service Request
<<subsystem>>
: Scheduler
<system>> :
Elevator Control System
<<control subsystem>>
Elevator Subsystem Arrival (Floor# Departed (Floor #) Elevator Commitment Scheduler Request
Door Response
<<subsystem>>
: Elevator Control
Direction Lamp Command
<<coordinator subsystem>>
Scheduler
Task Structuring
Design task structure and task interface by applying the following task structuring criteria to problem domain objects recognized as an consolidated collaboration diagram.
1 1
Notifies 1
<<timer>>
Door Timer
<<entity>>
Elevator Status&Plan * 1
* *
Updates 1
<<server>>
Elevator Status & Plan Server
Updates 1
I/O task structuring criteria Address how internal interface objects are mapped to I/O tasks and when I/O task is activated Internal task structuring criteria Address how internal objects are mapped to Internal tasks and when an internal task is activated Task priority criteria Address the importance of executing a given task relative to others Task clustering criteria Address whether and how objects should be grouped into concurrent tasks.
<<entity>>
1 1 Overall Elevator Status & Plan
Requests
The actions activated during state transition are executed within the thread of control of the control object. The activity should be structured as a separate task.
Non-Distributed Solution
The Elevator Control System is mapped to a single CPU or tightly coupled multiprocessor configuration The Elevator Status & Plan entity object is accessible to all elevators as well as scheduler, so that one centralized repository of data can be used
Motor Command
<<timer>>
Floor Lamp Command Direction Lamp Command
After (Timeout)
<<sub system>>
Floor Subsystem
Elevator Stopped
Open Door
: Elevator Control
Next Destination Response TheCheck objects Elevator Button Interface Next Check This Floor( Floor #) Destination and Arrival Sensor Interface are structured as a separate task respectively, Arrived( Floor #) Approaching Requested Arrived( Floor # based on the asynchronous input device Floor Departed (Floor #) interface task structuring criterion Departed( Floor #)
Up, Down
<<entity>>
: Elevator Status & Plan Acknowledge Update
Scheduler Request
<<coordinator>>
: Elevator manager
<<sub system>>
: Scheduler
Elevator Commitment
Motor Command
Motor Command
<<timer>>
Floor Lamp Command Direction Lamp Command
After (Timeout)
<<timer>>
Floor Lamp Command Direction Lamp Command
After (Timeout)
<<sub system>>
Floor Subsystem
Elevator Stopped
Open Door
: Elevator Control
Next Destination Approaching Requested Floor
<<sub system>>
Floor Subsystem
Elevator Stopped
Open Door
: Elevator Control
Next Destination Approaching Requested Floor
Check This Floor( Floor #) Arrived( Floor #) Arrived( Floor # Departed (Floor #)
Check This Floor( Floor #) Arrived( Floor #) Arrived( Floor # Departed (Floor #) Departed( Floor #)
Up, Down
Each Elevator Control Object is Departed( Floor #) <<entity>> mapped to a separate Elevator : Elevator Status & Plan Controller task.
Acknowledge Update
Scheduler Request
<<coordinator>>
: Elevator manager
<<sub system>>
: Scheduler
Elevator Commitment
: Elevator Status & Plan The Elevator Controller task is combined with Acknowledge Motor Interface and Door Interface objects, Update based on the control clustering criterion.
Up, Down
<<entity>>
Scheduler Request
<<coordinator>>
: Elevator manager
<<sub system>>
: Scheduler
Elevator Commitment
The Elevator Manager (one instance in the : Motor <<timer>> solution) executes Interface Off elevator non-distributed asynchronously After : Door Timer Lamp Up (Timeout) task. with the Elevator Controller The Elevator Elevator Started Down Manager Start is structured as a separate coordinate task. Timer Stop Direction Elevator Stopped
Lamp Command
Motor Command
Task Architecture
(Non-distributed Elevator Control System)
Elevator Lamp Output Door Command <<control subsystem>> Elevator Subsystem <<data collection subsystem>> :Floor Subsystem
<<sub system>>
Floor Subsystem
Open Door
Close Door
<<control clustering>>
: Elevator Controller
Next Destination Approaching Requested Floor Check Next Destination Check This Floor ( Floor #) Arrived (Floor #) Departed (Floor #)
<<resource monitor>>
: Floor Lamp Monitor
Check This Floor( Floor #) Arrived( Floor #) Arrived( Floor # Departed (Floor #) Departed( Floor #)
Up, Down
<<entity>>
: Elevator Status & Plan Acknowledge Update
Scheduler Request
<<data abstraction>>
: Elevator Status&Plan Acknowledge Update Schedule Request Select Elevator Elevator #
<<coordinator>>
: Elevator manager
<<sub system>>
: Scheduler
Elevator Commitment
<<coordinator>>
: Elevator Manager
<<co ordinator>>
: Scheduler
Elevator Commitment
Service Request
Task Interface
( Non-distributed Elevator Control System)
Elevator Lamp Output
doorCommand( out doorResponse)
<<control clustering>>
: Elevator Controller
checkNextDestination( in elevator#, out direction)
<<resource monitor>>
: Floor Lamp Monitor
+ arrived(elevator#, floor#, direction) + departed(elevator#, floor#, direction) + checkThisFloor( in elevator#, in floor#, out floorStatus, out direction) + checkNextDestination( in elevator#, out direction) + updatePlan(elevator#, floor#, direction, out idleStatus)
checkThisFloor( in elevator#, in floor#, out floorStatus, out direction) arrived(elevator#, floor#, direction) departed(elevator#, floor#, direction)
<<data abstraction>>
: Elevator Status & Plan
updatePlan(el evator#,floor# ,direction, out idleStatus) schedulerReque st( elevator#, floor#, direction)
<<resource monitor>>
<<coordinator>>
elevatorRequ est(elevator#, floor#, direction)
: Elevator Manager
<<co ordinator>>
elevatorCommit ment( elevator#, floor#, direction)
: Scheduler
serviceRequest(floor#, direction)
Scheduler {1 node}
<system>> :
ElevatorControl System Floor Lamp Command Direction Lamp Command
<<control subsystem>>
ElevatorSubsystem Arrived (Floor # Departed( Floor #) Elevator Commitment Scheduler Request
<<control clustering>>
: Elevator Controller Check Next Destination Check This Floor ( Floor # )
Arrived ( Floor #) Departed ( Floor #)
Door Response
<<resource monitor>>
: Floor Lamp Monitor
<<coordinator subsystem>>
Scheduler
<<data abstraction>>
: Local Elevator Status & Plan Acknowledge
Update
interface>>
: Elevator Buttons Interface Elevator Request
<<coordinator>>
: Elevator Manager
Scheduler Request
<<subsystem>>
: Scheduler Elevator Commitment
Service Request
<<server>>
: Elevator Status & Plan Server Elevator Commitment Update Plan
Arrived, Departed
<<data abstraction>>
: Overall Elevator Status&Plan Select Elevator Service Request
Elevator #
<<subsystem>>
: Elevator Subsystem
<<subsystem>>
: Floor Subsystem
<<coordinator>>
: Elevator Scheduler Scheduler request
Task Parameters
Task
Stop Elevator at Floor Arrival Sensors Interface Elevator Controller Total elapsed time = 34 msec Select Destination Elevator Buttons Interface Elevator Manager( Case b) Total elapsed time = 47 msec Request Elevator Floor Buttons Interface Scheduler Elevator Manager( Case c) Total elapsed time = 76msec Other Tasks Floor Lamps Monitor Direction Lamps Monitor
CPU time Ci
2 5
Period Ti
50 50
Utilization Ui
0.04 0.10
Total utilization = 0.68
Assigned
Priority
1 4
3 6
100 100
0.03 0.06
Total utilization = 0.47
2 5
4 20 6
3 6
5 5
500 500
0.01 0.01
7 8
10
Elevator
Button Interface
Floor
Button Interface
Elevator
Controller
Elevator
Manager
Scheduler
Result of Analysis(1/3)
Stop elevator at Floor (Ta=50msec)
Execution time: Total execution time Ca2msec (Arrival Sensors Interface)+5msec (Elevator Controller). Execution utilization Ue=Ca/Ta=7/50=0.14 Preemption by higher priority tasks: Total preemption time Pa=3 (Elevator Buttons Interface)+4(Floor Buttons Interface)=7msecPreemption utilization Up=Pa/Ta =7/50=0.14 Blocking time: Total worst-case blocking time Ba= 20msec (Scheduler). Worst-blocking utilization Ub = Ba/Ta=20/50=0.40 Total Utilization= Ue+Up+Ub=0.14+0.14+0.40=0.68
0 2 6
4 10
5 14 6 18 20 40
F4: scheduler Request
20
46 50
Result of Analysis(2/3)
Select Destination (Tb=100msec)
Execution time: Total execution time Cb3msec (Elevator Buttons Interface)6msec(Elevator Manager). Execution Utilization Ue=Ca/Ta=9/100=0.09 Preemption by higher priority tasks with shorter periods: Arrival Sensors Interface and Elevator Controller (preempts Elevator Manager) can each execute twice during 100 msec period, giving a preemption time of 14 msec. Preemption by higher priority tasks with longer periods: 4 msec from Floor Buttons Interface to handle floor Button interrupt. Total preemption time Cp=14+4=18 Total preemption utilization Up= Cp/Tb = 18/100 = 0.18 Blocking time: Worst-case blocking time Ba= 20msec (Scheduler). Worst-case blocking utilization Ub = Bb/Tb=20/100=0.20 Total Utilization= Ue+Up+Ub=0.09+0.18+0.20=0.47
Results of Analysis(3/3)
Request Elevator (Tc=200msec)
Execution time: Total execution time Cc4msec (Floor Buttons Interface)20msec(Scheduler)6msec(Elevator Manager). Execution utilization Ue=Cc/Ta=30/200=0.15 Preemption by higher priority tasks with shorter periods: Arrival Sensors Interface and Elevator Controller (preempts Elevator Manager and Scheduler) can each execute four times for a total of 28 msec. Total preemption time Cp=28+18=46. Preemption utilization Up=Cp/Tp=0.23 Total elapsed time=30+46+0=76 Total Utilization= Ue+Up=0.15+0.23=0.38
Performance Analysis of Distributed Elevator Control System one node per elevator, one node per floor, one scheduler node. 40 floors and 12 elevators
Task Parameters
Task
Elevator Subsystem Arrival Sensors Interface Elevator Controller Elevator Buttons Interface Elevator Manager Floor Subsystem Floor Buttons Interface Floor Lamps Monitor Direction Lamps Monitor Scheduler Subsystem Elevator Status and Plan Server Elevator Scheduler
CPUtime Ci
2 5
Period Ti
50 50
Utilization Ui
0.04 0.10
Assigned Priority
1 3
3 6
4
100 100
200
0.03 0.06
0.02
2 4
1
5 5
2 20
500 500
10 50
0.01 0.01
0.20 0.40
7 8
1 2
Network transmission delay = 2 msec Elapsed time for Stop Elevator at Floor = 41 msec < 50 msec Elapsed time for Select Destination = 48 msec < 100 msec Elapsed time for Request Elevator = 82 msec < 200 msec
11
Result of Analysis(1/3)
Stop elevator at Floor (Ta=50msec)
Execution time: Total execution time Ca2msec (Arrival Sensors Interface)5msec (Elevator Controller) Execution utilization Ue= Ca/Ta=7/50=0.14 Preemption by higher priority tasks with longer periods. Preemption time Pa=3 (Elevator Buttons Interface). Preemption utilization Up=3/50=0.06 Blocking time: Total worst-case blocking time Ba= 6msec (Elevator Manager). Worst-case blocking utilization Ub = Ba/Ta=6/50=0.12 Total elapsed time=736 =16msec<50Total Utilization= Ue+Up+Ub=0.14+0.06+0.12=0.32 Total elapsed time for Stop elevator at Floor16(Total elapsed time for Elevator Subsystem)2 (Transmission Delay, 25byte, 100bau, Transmission Delay Dt = 200/100000 = 2msec23 Worst-case elapsed time of Scheduler system)16223 41msec
Result of Analysis(2/3)
Select Destination (Tb=100msec)
Execution time: Total execution time Cb3msec (Elevator Buttons Inteface)6msec(Elevator Manager). Execution utilization Ue=Ca/Ta=9/100=0.09 Preemption time by higher priority tasks with shorter periods: Arrival Sensors Interface and Elevator Controller can each execute twice during the 100 msec period, giving a total preemption time of 14 msec. Up=0.14. Total elapsed time =9+14=23Total utilization = Ue+Up =0.09+0.14=0.23 Total elapsed time for Select Destination Eb =23 (Elevator subsystem elapsed time)2(transmission delay)23 (Scheduler subsystem elapsed time) =48msec.
Result of Analysis(3/3)
Request Elevator (Tc=200msec)
Total elapsed time for floor subsystem Ef=4msec( floor buttons Interface)1msec(transmission delay)=5msec. Total elapsed time for scheduler subsystem Es=1msec(transmission delay)20msec(elevator Scheduler)+ 1 msec (transmission delay)2msec (Blocking time by Elevator Status & Plan subsystem) 1+20+1+2= 24msec. Execution time of Elevator Manager1+6+1=8 Total elapsed time of Elevator subsystem16+8=24 Total elapsed time for Request Elevator 5+2+24+2+24+2+23=82
12