The Real-Time UML Standard: Theory and Application The Real The Real-
- Time UML Standard:
Time UML Standard: Theory and Application Theory and Application
Ben Watson Ben Watson Tri Tri-
- Pacific Software, Inc.
The Real- -Time UML Standard: Time UML Standard: The Real The - - PowerPoint PPT Presentation
The Real- -Time UML Standard: Time UML Standard: The Real The Real-Time UML Standard: Theory and Application Theory and Application Theory and Application Bran Selic Ben Watson Bran Selic Ben Watson Rational Software Canada Tri-
2
■ match or mismatch?
■ ■ match or mismatch?
3
4
■ Real-Time System Essentials
■ ■ Real
5
environment environment
Real Real-
Time System System (state) (state) signal signal source source controlled entities controlled controlled entities entities
inputs inputs signal signal source source inputs inputs
coordination
6
environment environment Real Real-
Time System System (state) (state) signal signal source source controlled entities controlled controlled entities entities
inputs inputs signal signal source source inputs inputs
coordination
Agent Agent Agent Agent Agent Agent
Concurrency conflict Concurrency conflict Concurrency conflict
7
■ time-driven: for continuous (synchronous) inputs ■ event-driven: for discrete (asynchronous) inputs
■ hard RT systems: every input must have a timely response ■ soft RT systems: most inputs must have timely response
■ static: fixed deterministic load ■ dynamic: variable (non-deterministic) load
■ ■ time
■ ■ event
■ ■ hard RT systems:
■ ■ soft RT systems:
■ ■ static:
■ ■ dynamic:
8
INSTRUCTOR STATION INSTRUCTOR INSTRUCTOR STATION STATION AIRFRAME AIRFRAME AIRFRAME GROUND MODEL GROUND GROUND MODEL MODEL ATMOSPHERE MODEL ATMOSPHERE ATMOSPHERE MODEL MODEL ENGINES ENGINES ENGINES CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES PILOT CONTROLS PILOT PILOT CONTROLS CONTROLS
9
A A B B A A A A B B B B A A B B A A B B C C A A D D B B C C D D A B C E D F G H
50msec 50msec
ENGINES ENGINES ENGINES
10
11
■ Real-Time System Essentials ■ Essentials of the Object Paradigm
■ ■ Real
■ ■ Essentials of the Object Paradigm
12
Atmosphere Atmosphere Atmosphere Airframe Airframe Airframe Control Surfaces Control Control Surfaces Surfaces
13
14
■ the cost of abstraction (encapsulation, automatic garbage
■ time and timing mechanisms ■ resources (processors, networks, semaphores, etc.)
■ schedulability analysis (e.g., rate-monotnic theory) ■ performance analysis (queueing theory)
■ ■ the cost of abstraction (encapsulation, automatic garbage
■ ■ time and timing mechanisms
■ ■ resources (processors, networks, semaphores, etc.)
■ ■ s
■ ■ performance analysis (queueing theory)
15
■ previously unacceptable response times may now be
■ bounded dynamic binding techniques ■ tunable automatic garbage collection (bounded latency) ■ real-time variants of popular OO languages (e.g., EC++, RT
■ ■ previously unacceptable response times may now be
■ ■ bounded dynamic binding techniques
■ ■ tunable automatic garbage collection (bounded latency)
■ ■ real
16
■ ■ a unique identity (dedicated memory)
void:offHook (); {busy = true; reqDialtone(); … };
■ ■ a public interface
■ ■ a hidden (encapsulated) implementation
Data Attributes Data Attributes
Operations Operations
17
Telephone Call Object Telephone Call Object Telephone1 Telephone1 Telephone1 Telephone2 Telephone2 Telephone2
Telephone Call Telephone Call
abortCall abortCall () () addParty addParty (t:Telephone) (t:Telephone) reportDuration reportDuration () ()
18
■ generic object lifecycle:
■ ■ generic object lifecycle:
Handle Request Handle Handle Request Request Initialize Object Initialize Initialize Object Object Terminate Object Terminate Terminate Object Object Wait for Request Wait for Wait for Request Request
void:offHook (); {busy = true;
… }; void:offHook (); {busy = true;
… };
Handling depends
type and object state Handling depends
type and object state Invokes
Invokes
19
Atmosphere: Airframe: Spolier:
2.gust() 2.gust() 3.position() 3.position() 4.change() 4.change() 1.roughAir() 1.roughAir()
20
■ “keyhole” view of high-level behavior ■ difficult to ensure desired high-level behavior will necessarily
■ re-usable component programming style defines objects
■ ■ “keyhole” view of high
■ ■ difficult to ensure desired high
■ ■ re
21
TelephoneClass busy : boolean
ring() Telephone1:TelephoneClass Telephone2:TelephoneClass Class (Spec) Class (Spec) Class Instance Class Instance
■ A design environment concept
■ ■ A design environment concept
■ A run-time concept
■ ■ A run
22
GenericTelephone busy : boolean
dialDigit() RotaryDial Telephone busy : boolean
dialDigit() TouchTone Telephone busy : boolean
dialDigit() playTone()
Polymorphism: different realizations
Polymorphism: different realizations
Polymorphism: different realizations
Polymorphism: different realizations
Generalization (inheritance) relationship Generalization (inheritance) relationship
23
■ networks of collaborating objects
■ modularity ■ information hiding ■ generalization/refinement mechanisms (e.g., inheritance) ■ genericity
■ ■ networks of collaborating objects
■ ■ modularity
■ ■ information hiding
■ ■ generalization/refinement mechanisms (e.g., inheritance)
■ ■ genericity
24
■ Real-Time System Essentials ■ Essentials of the Object Paradigm
■ ■ Real
■ ■ Essentials of the Object Paradigm
25
■ Inititated by Rational Software (Booch, Rumbaugh, Jacobson)
■ widely adopted by software practitioners ■ widely taught in universities and technical seminars ■ supported by many software tool vendors
■ ■ Inititated
■ ■ widely adopted by software practitioners
■ ■ widely taught in universities and technical seminars
■ ■ supported by many software tool vendors
26
UML partners UML partners OMG Acceptance, Nov 1997 Final submission to OMG, Sept 1997 First submission to OMG, Jan 1997 OMG Acceptance, Nov 1997 Final submission to OMG, Sept 1997 First submission to OMG, Jan 1997
Planned major revision (2002) Planned major revision (2002)
Public Feedback
Web - June 1996 Web - June 1996
OOPSLA 95 OOPSLA 95
27
■ used for modeling both problems and solutions (object, class,
■ deep semantic roots
■ 8 different diagram types (requirements, structure, behavior,
■ ■ used for modeling both problems and solutions (object, class,
■ ■ deep semantic roots
■ ■ 8 different diagram types (requirements, structure, behavior,
28
■ abstracts out detail that is irrelevant for that set of concerns
■ ■ abstracts out detail that is irrelevant for that set of concerns
29
View 2 View 2 V i e w 3 V i e w 3 View 1 View 1
View 2 View 2 V i e w 3 V i e w 3 View 1 View 1
30
■ kinds of objects and their relationships
■ possible life histories of an object
■ flow of control among objects to achieve system-level behavior
■ software modules and deployment on physical nodes
■ ■ kinds of objects and their relationships
■ ■ possible life histories of an object
■ ■ flow of control among objects to achieve system
■ ■ software modules and deployment on physical nodes
31
AircraftSimulator AircraftSimulator AircraftSimulator
■ useful as principal drivers of the overall development process
■ ■ useful as principal drivers of the overall development process
instructor instructor instructor trainee trainee trainee
Run checklist Run checklist
«include» «include»
Prepare flight Prepare flight Land plane Land plane Fail one engine Fail one engine Use case Use case actor actor
32
■ fundamental drivers of definition, development, and testing
■ Focus on function (functional requirements) ■ In RT systems, much focus on non-functional requirements
■ No standard way of associating such non-functional
■ Use cases do not deal with many important “ilities” (availability,
■ ■ fundamental drivers of definition, development, and testing
■ ■ Focus on function (functional requirements)
■ ■ In RT systems, much focus on non
e.g., end-
to-
end delays, maximum response times,…
■ ■ No standard way of associating such non
■ ■ Use cases do not deal with many important “
33
designatedPlane designatedPlane crew crew 1..* 1..* 1 1
Pilot Pilot Airplane Airplane Airline Airline
0..* 0..* 0..* 0..*
Flight Flight
route start duration route start duration
{ordered} {ordered} 0..* 0..* 1 1
Captain Captain First Officer First Officer
Association Association Association class Association class
34
DecrepitAir : Airline DecrepitAir : Airline
N1313:Airplane N1313:Airplane
CreakyAir : Airline CreakyAir : Airline CA345 : Flight CA345 : Flight Donald D. : Pilot Donald D. : Pilot Link Link CA123 : Flight CA123 : Flight Mickey M. : Pilot Mickey M. : Pilot
35
■ e.g., common class diagram for both systems
■ ■ e.g., common class diagram for both systems
N1:Node N1:Node N3:Node N3:Node N4:Node N4:Node N2:Node N2:Node N2:Node N2:Node N1:Node N1:Node N3:Node N3:Node Node Node
0..2 0..2
36
■ in principle, object diagrams only represent “snapshots” of a
■ no guarantee that they hold throughout the lifetime of the
■ need “prototypical” object diagrams ■ but, such semantics are not defined in the current standard
■ ■ in principle, object diagrams only represent “snapshots” of a
■ ■ no guarantee that they hold throughout the lifetime of the
■ ■ need “prototypical” object diagrams
■ ■ but, such semantics are not defined in the current standard
37
2.call() 2.call() 3.sendTone() 3.sendTone() 4.dialtone() 4.dialtone() 1.offHook() 1.offHook()
P1:BusSet P1:BusSet P2:TTSet P2:TTSet
/PhoneIF /PhoneIF /CallProc /CallProc /ToneGen /ToneGen P1:BusSet P1:BusSet Classifier role Classifier role P2:TTSet P2:TTSet NB: It is possible to have collaboration diagrams without an Interactions
NB: It is possible to have collaboration diagrams without an Interactions
38
/Caller /Caller /Operator /Operator / /Callee Callee time time call ack number call ack talk transfer
39
■ very common in many real-time systems ■ well suited for event-driven behavior ■ in telecom, many protocol standards are defined using
■ No standard way of denoting timing information ■ UML sequence diagrams do not scale up very well for
■ ■ very common in many real
■ ■ well suited for event
■ ■ in telecom, many protocol standards are defined using
■ ■ No standard way of denoting timing information
■ ■ UML sequence diagrams do not scale up very well for
40
master : Master d : DBaseServer cs : CommServer read( ) register( )
{(register.receiveTime ( ) - read.sendTime( )) ≤ ≤ ≤ ≤ 2 ms}
41
/Caller /Operator /Callee
Contact Operator Contact Contact Operator Operator Contact Callee Contact Contact Callee Callee Respond Respond Respond Notify Parties Notify Notify Parties Parties Acknowledge Acknowledge Acknowledge Acknowledge Acknowledge Acknowledge
activity activity swimlane swimlane
42
■ showing concurrency (forks and joins are explicit) ■ scaling up to complex systems
■ No standard way of denoting timing information ■ Less well-suited for describing event-driven behavior
■ ■ showing concurrency (forks and joins are explicit)
■ ■ scaling up to complex systems
■ ■ No standard way of denoting timing information
■ ■ Less well
43
created created ready ready
Handle Event Handle Handle Event Event Initialize Object Initialize Initialize Object Object Terminate Object Terminate Terminate Object Object Wait for Event Wait for Wait for Event Event
start/^master.ready() start/^master.ready() poll/^master.ack() poll/^master.ack() stop/ stop/
Initial pseudostate Initial pseudostate State machine State machine State State trigger trigger Action expression Action expression Final state Final state transition transition
44
OffLine OnLine
Ready Busy
req/handle() done/
group transition group transition default transition default transition composite state composite state
45
■ very well suited to those systems ■ scale up very nicely
■ not directly connected to time (except for time events) ■ e.g., run-to-completion paradigm
■ ■ very well suited to those systems
■ ■ scale up very nicely
■ ■ not directly connected to time (except for time events)
■ ■ e.g., run
46
■ once initiated they repeatedly send TimeEvents at the
■ allows rate-monotonic scheduling policies ■ schedulers use the priorities of periodic timers to make
■ ■ once initiated they repeatedly send
■ ■ allows rate
■ ■ schedulers use the priorities of periodic timers to make
47
Handle Request Handle Handle Request Request Initialize Object Initialize Initialize Object Object Terminate Object Terminate Terminate Object Object Wait for Request Wait for Wait for Request Request Handle Request Handle Handle Request Request Initialize Object Initialize Initialize Object Object Terminate Object Terminate Terminate Object Object Wait for Request Wait for Wait for Request Request
■ Clients determine when to invoke an operation
■ ■ Clients determine when to invoke an operation
■ Can avoid concurrency conflicts ■ Require at least one independent engineering-level thread
■ ■ Can avoid concurrency conflicts
■ ■ Require at least one independent engineering
48
anActiveObject anActiveObject # #currentEvent currentEvent : Event : Event + start ( ) + start ( ) + poll ( ) + poll ( ) + stop ( ) + stop ( ) created ready
start/^master.ready() poll/^master.ack() stop/ poll/defer
ready created start
start/^master.ready()
ready
49
anActiveObject anActiveObject
created
ready
created
50
Active1 Active1 Active1 Active2 Active2 Active2
■ Limited priority inversion can occur
■ ■ Limited priority inversion can occur
hi hi lo (queued)
51
■ Eliminates concurrency conflicts for all passive objects
■ No explicit synchronization code required ■ Low-overhead context switching (RTC implies that stack does
■ Limited priority inversion can occur (higher priority activity may
■ Can be circumvented but at the expense of application-level
■ ■ Eliminates concurrency conflicts for all passive objects
■ ■ No explicit synchronization code required
■ ■ Low
■ ■ Limited priority inversion can occur (higher priority activity m
■ ■ Can be circumvented but at the expense of application
52
■ two-tier scheduling scheme ■ event priorities vs thread priorities
■ ■ two
■ ■ event priorities vs thread priorities
OSProcess
OSThread1
Operating System Operating System (schedules process and threads) (schedules process and threads)
Active Active
scheduler scheduler
OSThreadN
Heavyweight general- purpose multitasking Heavyweight Heavyweight general general-
purpose multitasking multitasking
Active Active
scheduler scheduler
...
Lightweight specialized multitasking Lightweight Lightweight specialized specialized multitasking multitasking
53
■ automatically resolve certain concurrency conflicts
■ The priority inversion inherent in RTC may be unacceptable in
■ How does this map to concurrency mechanisms that are used
■ No clear way of exploiting real-time analyses methods (e.g.,
■ ■ automatically resolve certain concurrency conflicts
■ ■ The priority inversion inherent in RTC may be unacceptable in
■ ■ How does this map to concurrency mechanisms that are used
■ ■ No clear way of exploiting real
54
■ Hints of event-based priorities (versus thread-based) ■ Timing events allow realization of time-triggered systems
■ A semantic variation point ■ Can be customized to suit application requirements
■ ■ Hints of event
■ ■ Timing events allow realization of time
■ ■ A
■ ■ Can be customized to suit application requirements
55
■ Time data type declared but not defined (could be either
■ No built-in assumptions about global time source (open to
■ Time events: generated by the occurrence of a specific instant ■ Assumes some kind of run-time Timing Service
■ ■ Time data type declared but not defined (could be either
■ ■ No built
■ ■ Time events: generated by the occurrence of a specific instant
■ ■ Assumes some kind of run
56
:GUI :Scheduler :Scheduler
reservations reservations
:Planner :Planner
update update
Component Component Node Node
57
■ deferred mapping of software to hardware ■ mapping of software to software
■ ■ deferred mapping of software to hardware
■ ■ mapping of software to software
58
■ based on extensive experience and best practices ■ gaining rapid acceptance (training, tools, books)
■ set of modeling concepts ■ a standard graphical notation
■ class, state machine, collaboration, use case, sequence,
■ ■ based on extensive experience and best practices
■ ■ gaining rapid acceptance (training, tools, books)
■ ■ set of modeling concepts
■ ■ a standard graphical notation
■ ■ class, state machine, collaboration, use case, sequence,
59
■ structural focus, inheritance, strong encapsulation,
■ best ways of using UML in the real-time domain ■ missing or non-standard concepts ■ ability to create predictive models for real time
■ ■ structural focus, inheritance, strong encapsulation,
■ ■ best ways of using UML in the real
■ ■ missing or non
■ ■ ability to create predictive models for real time
60
■ Real-Time System Essentials ■ Essentials of the Object Paradigm
■ ■ Real
■ ■ Essentials of the Object Paradigm
61
■ undefined (e.g., scheduling discipline), or ■ intentionally ambiguous (multiple, mutually-exclusive,
■ Different domains require different specializations ■ The applicability and usefulness of UML would have been
■ ■ undefined (e.g., scheduling discipline), or
■ ■ intentionally ambiguous (multiple, mutually
■ ■ Different domains require different specializations
■ ■ The applicability and usefulness of UML would have been
62
■ UML standard as a basis for a “family of languages”
■ ■ UML standard as a basis for a “family of languages”
Variations produced using built-in extensibility mechanisms: stereotypes, tagged values, constraints Variations produced using built-in extensibility mechanisms: stereotypes, tagged values, constraints
63
Specialization through regular inheritance Specialization through regular inheritance
Integer Integer Integer Counter Counter Counter
ResetCounter() ResetCounter ResetCounter() ()
64
Integer Integer Integer MyTimePiece MyTimePiece MyTimePiece
SetTime() SetTime SetTime() () «clock» Semantics: an active counter whose value changes synchronously with the progress of physical time Semantics: an active counter whose value changes synchronously with the progress of physical time
65
■ additional semantic constraints cannot contradict the general
■ within the “semantic envelope” defined by the standard
■ ■ additional semantic constraints cannot contradict the general
■ ■ within the “semantic envelope” defined by the standard
Standard UML Semantics Standard UML Semantics Standard UML Semantics Profile X Profile X Profile X Profile Y Profile Y Profile Y
66
67
Real-Time SIG
RT RT-
AD WG
Analysis & Design PTF
68
■ Time-related modeling ■ General quality of service modeling
■ Real-time system architecture modeling
■ first RFP issued (April 1999) ■ second RFP drafted but not submitted
■ ■ Time
■ ■ General quality of service modeling
■ ■ Real
■ ■ first RFP issued (April 1999)
■ ■ second RFP drafted but not submitted
69
■ First in a series of real-time specific RFPs (ad/99-03-13) ■ Initial proposal submitted in August 2000 (ad/2000-08-04) ■ Approved by the Analysis & Design Task Force and by the OMG
■ Physical time ■ Timing specifications ■ Timing services and mechanisms ■ Modeling resources (logical and physical) ■ Concurrency and scheduling ■ Software and hardware infrastructure and their mapping ■ ..including specific notations for the above where necessary
■ ■ First in a series of real
■ ■ Initial proposal submitted in August 2000 (ad/2000
■ ■ Approved by the Analysis & Design Task Force and by the OMG
■ ■ Physical time
■ ■ Timing specifications
■ ■ Timing services and mechanisms
■ ■ Modeling resources (logical and physical)
■ ■ Concurrency and scheduling
■ ■ Software and hardware infrastructure and their mapping
■ ■ ..including specific notations for the above where necessary
70
⇒ response should not be biased towards any particular
⇒ ⇒ response should not be biased towards any particular
71
■ ARTiSAN (UML tool vendor) ■ I-Logix (UML tool vendor) ■ Rational (UML tool vendor) - lead ■ Telelogic (UML tool vendor) ■ TimeSys (RT tool and technology vendor) ■ Tri-Pacific Software (RT tool vendor)
■ Prof. Murray Woodside and Prof. Dorina Petriu (Carleton U.) –
■ ■ ARTiSAN
■ ■ I
■ ■ Rational (UML tool vendor)
■ ■ Telelogic
■ ■ TimeSys
■ ■ Tri
■ ■ Prof. Murray Woodside and Prof.
72
■ key to quantitative analysis and predictive modeling
■ users can model their RT systems using modeling approaches and
■ open to existing and new analysis techniques
■ eliminate the need for a deep understanding of analysis methods ■ as much as possible, automate the generation of analysis models and
■ ■ key to quantitative analysis and predictive modeling
■ ■ users can model their RT systems using modeling approaches and
■ ■ open to existing and new analysis techniques
■ ■ eliminate the need for a deep understanding of analysis methods
■ ■ as much as possible, automate the generation of analysis models
73
■ predict system characteristics (detect problems early) ■ analyze existing system ■ synthesize elements of the model
■ Schedulability analysis
■ Performance analysis based on queueing theory
■ ■ predict system characteristics (detect problems early)
■ ■ analyze existing system
■ ■ synthesize elements of the model
■ ■ Schedulability analysis
■ ■ Performance analysis
74
■ highly non-linear (detail often matters) ■ models are frequently severely inaccurate and not trustworthy ■ typical modeling process is highly manual:
■ ■ highly non
■ ■ models are frequently severely inaccurate and not trustworthy
■ ■ typical modeling process is highly manual:
Actual Actual System System System System Model Model
analysis results analysis analysis results results measurements measurements measurements
75
5 5 3.1 3.1 4 4
Automated model conversion Automated Automated model conversion model conversion Inverse model conversion Inverse Inverse model conversion model conversion
76
General Resource Model Resource Client etc. Specialized Analysis Domain Model Analysis Resource Analysis Client etc. «import»
«profile» RTresourceModeling «profile» ADprofile «stereotype» ADresource «import» «metaclass» Class «metaclass» Object «stereotype» etc.
77 Analysis Models Infrastructure Models General Resource Modeling Framework
«modelLibrary» RealTimeCORBAModel «profile» RTresourceModeling «profile» RTconcurrencyModeling «import» «profile» RSAprofile «import» «import» «profile» RTtimeModeling «profile» PAprofile «import» «profile» SAProfile «import» «import»
78
■ e.g. throughput, capacity, response time
■ offered QoS: the QoS that it provides to its clients ■ required QoS: the QoS it requires from other components to
■ ■ e.g. throughput, capacity, response time
■ ■ offered QoS:
■ ■ required QoS:
79
Resource Usage Resource Usage
S1 S1 S1 S1 S1 S1
{RequiredQoS ≤ ≤ ≤ ≤ OfferedQoS} {RequiredQoS ≤ ≤ ≤ ≤ OfferedQoS} RequiredQoS RequiredQoS OfferedQoS OfferedQoS
80
access ( )
Client2
access ( )
Client1
{Deadline = 3 ms}
Required QoS Required QoS
{Deadline = 5 ms}
myMonitor
Offered QoS Offered QoS
{MaxExecutionTime = 4 ms}
81
■ Used to define default values that may be overridden for specific
■ ■ Used to define default values that may be overridden for specifi
N1:Node N1:Node N3:Node N3:Node N4:Node N4:Node N2:Node N2:Node Node Node
1 1
82
CoreResourceModel ResourceUsageModel DynamicUsageModel (from ResourceUsageModel) StaticUsageModel (from ResourceUsageModel) CausalityModel ResourceTypes ResourceManagement RealizationModel
83
ResourceService QoScharacteristic 0..n 0..n 0..n 0..n ResourceServ iceInstance 1 0..n +type 1 +instance 0..n Resource 1..n +offeredService 1..n l 0..n 0..n 0..n 0..n / QoSvalue 0..n 0..n +offeredQoS 0..n 0..n 1 0..n +type 1 +instance 0..n ResourceInstance 1..n 1..n 1..n 0..n +type 1..n +instance 0..n 0..n 0..n +offeredQoS 0..n 0..n / Descriptor Instance 1..n 0..n +type 1..n 0..n
■ (i.e., it is not a UML metamodel)
■ ■ (i.e., it is not a UML metamodel)
84
StaticUsage DynamicUsage UsageDemand ResourceServiceInstance (from CoreResourceModel) ResourceUsage 1 0..1 1 +workload 0..1 0..n +usedServices 0..n AnalysisContext 1 1..n 1 1..n 1 1..n 1 1..n ResourceInstance (from CoreResourceModel) 1..n 1..n 1..n 0..n +usedResources 1..n 0..n 0..n 1..n 0..n 1..n EventOccurence
(from Cau s ali tyModel )
85
0..1 1 +effect 0..1 +cause 1 Stimulus 1..n 1 +effect 1..n +cause 1 Scenario 0..n 1 +effect 0..n +cause 1 0..n 1 +effect 0..n +cause 1 Instance (from CoreResourceModel) 0..1 0..n +receiver 0..1 0..n 0..n 1..n +methodExecution 0..n +executionHost 1..n EventOccurence StimulusReception StimulusGeneration
86
+requiredQoS DynamicUsage (from ResourceUsageModel) QoSvalue (from CoreResourceModel) ResourceInstance (from CoreResourceModel) ResourceServiceInstance (from CoreResourceModel) 1..n 1..n 0..n 0..n 0..n +offeredQoS 0..n Scenario (from CausalityModel) 1..n 1..n +usedResources 1..n 1..n / 1..n 1..n +usedServices 1..n 1..n / ActionExecution 0..n 0..n 0..n 0..n 1..n +step 1..n 0..n 0..n 0..n +predecessor +successor 0..n {ordered}
87
StaticUsage (from ResourceUsageModel) ResourceInstance (from CoreResourceModel) Client 1..n 1..n +usedResources 1..n 1..n QoSvalue (from CoreResourceModel) 0..n 0..n 0..n +offeredQoS 0..n / 0..n 1..n 0..n +requiredQoS 1..n QoScharacteristic (from CoreResourceModel) 0..n 1 +instance 0..n +type 1 Instance
(from CoreRes
88
ActiveResource PassiveResource UnprotectedResource protectionKind activ enessKind ResourceInstance (from CoreResourceModel) ProtectedResource CommunicationResource Processor Device purposeKind
89
ActionExecution (from DynamicUsageModel) ResourceServiceInstance (from CoreResourceModel) AcquireService isBlocking : Boolean ReleaseService ExclusiveService 0..n 1 0..n 1 / 0..n 1 0..n 1 / AccessControlPolicy 1 0..n 1 0..n ProtectedResource 1..n 1..n / 0..n 0..1 / 0..1 0..n
90
Instance (from CoreResourceModel) ResourceInstance (from CoreResourceModel) ResourceBroker 1..n 0..n 1..n 0..n AccessControlPolicy (from ResourceTypes) 1..n 1 1..n ResourceManager 1..n 0..n +managedResource 1..n 0..n ResourceControlPolicy 1 0..n 1 0..n
91
0..n 0..n 0..n 0..n Resource Resource Service Service Resource Resource
Stereotype UML base concepts Tags GRMresource Classifier, Instance N/A GRMresSrvc BehavioralFeature GRMexTime «GRMresource»
aPool : BufferPool
«GRMresource»
aPool aPool : : BufferPool BufferPool
«GRMresource»
BufferPool
«GRMresource»
BufferPool BufferPool
«GRMresSrvc» GetBuffer() {GRMexTime = 5} «GRMresSrvc» GetBuffer GetBuffer() () {GRMexTime = 5}
92
master : Master poller : Poller d : DBaseServer cs : CommServer dBadmin : Admin
sort( ) invoke( )
Period = 100 ms WCET = 20 ms Period = 100 ms WCET = 20 ms Period = 150 ms WCET = 40 ms Period = 150 ms WCET = 40 ms Period = 350 ms WCET = 100 ms Period = 350 ms WCET = 100 ms WCET = 2 ms WCET = 2 ms WCET = 20 ms WCET = 20 ms WCET = 10 ms WCET = 10 ms WCET = 10 ms WCET = 10 ms
93
Stereotype UML base concepts Tags GRMclient Classifier, Instance GRMperiod, GRMwcet GRMprotResource Classifier, Instance N/A GRMresService BehavioralFeature GRMwcet
Tag Tag Type GRMperiod RTtimeString GRMwcet RTtimeString
* The stereotypes and tags have been simplified for this presentation * The stereotypes and tags have been simplified for this present * The stereotypes and tags have been simplified for this presentation ation
94
master : Master poller : Poller d : DBaseServer cs : CommServer dBadmin : Admin
sort( ) invoke( )
«GRMclient» {GRMperiod = 100 ms} {GRMwcet = 20 ms} «GRMclient» «GRMclient» {GRMperiod = 150 ms} {GRMwcet = 40 ms} {GRMperiod = 350 ms} {GRMwcet = 100 ms} «GRMprotResource» «GRMprotResource»
95
Master Admin Poller CommServer invoke() register()
1 0..n 1 0..n 0..n 0..n
«GRMclient» «GRMclient» «GRMclient» DBaseServer
1 1
read () sort () «GRMserv» {GRMwcet = 10ms} «GRMserv» {GRMwcet = 20ms} «GRMserv» {GRMwcet = 10ms} «GRMserv» {GRMwcet = 20ms} «GRMprotResource» «GRMprotResource»
96
« «GRManalysisContext GRManalysisContext» »
{ {isSchedulable isSchedulable= .$?} = .$?} Schedulability Schedulability Analyzer Analyzer (RMA) (RMA)
« «GRManalysisContext GRManalysisContext» »
{ {isSchedulable isSchedulable= = True True} } Result: a new model with analysis variable values set Result: a new model with analysis variable values set May include additional tool-specific results encased in UML Notes May include additional tool-specific results encased in UML Notes
97
TimeModel TimedEvents TimingMechanisms TimingServices
98
{ordered}
Physical Time Duration PhysicalInstant n 1 n +start 1 n 1 n +end 1 n Clock (from TimingMechanisms) TimeInterv al 0..n 0..n +measurement 0..n 0..n TimeValue kind : {discrete, dense} 0..n n +measurement 0..n n 1 n +s tart 1 n 1 n +end 1 n 1 0..n +referenceClock 1 0..n
99
ResourceInstance (from CoreResourceModel) Timeout (from TimedEvents) Timer isPeriodic : Boolean 1 0..n 1 +generatedTimeouts 0..n ClockInterrupt (from TimedEvents) TimeInterval (from TimeModel) Clock 1 0..n +offset 1 0..n 1 0..n +accuracy 1 0..n 0..n 1 +generatedInterrupts 0..n 1 TimeValue (from TimeModel) TimingMechanism stability drift skew set(time : TimeValue) get() : TimeValue reset() start() pause() 1 0..n +resolution 1 0..n 0..n 1 0..n +referenceClock 1 1 0..n +currentValue 1 0..n 1 0..n +maximalValue 1 0..n TimeValue (from TimeModel) 1 0..n +duration 1 0..n TimedEvent
(from TimedEvents)
1..n +timestamp 1..n 1 +origin 1
100
State Transition SubactivityState ActionState ActionSequence Method Stimulus Message ActionExecution
RTstart RTend RTduration
Action
«RTaction»
Tags Base Class Stereotype
TimedAction::duration TimedAction::end TimedAction::start
Domain Name
RTduration RTend RTstart
Tag
[0..1] [0..1] [0..1]
Multiplicity
RTtimeValue RTtimeValue RTtimeValue
Tag Type
101
These two associations are derived from the general association between EventOccurrence and Stimulus
Stimulus (from CausalityModel) Timeout ClockInterrupt StimulusGeneration (from CausalityModel) 1 1..n +cause 1 +effect 1..n 1 1..n +cause 1 1..n / 1 0..n +cause 1 0..n / TimedStimulus TimeValue (from TimeModel) 1..n 0..n +start 1..n 0..n 0..n 0..n +time 0..n 0..n 0..n 0..n +end 0..n 0..n
102
Delay EventOccurence (from CausalityModel) TimeValue (from TimeModel) TimedEvent 1..n +timestamp 1..n Scenario (from CausalityModel) TimedAction TimeInterval (from TimeModel) 1 0..n +duration 1 0..n 1..n +end 1..n 1..n +start 1..n
103
b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow processSelection initialPlayout initializePlayer sendFrame showFrame terminalPlayout confirm *[$N]
«PAclosedLoad» {PApopulation=$NUsers, PAextDelay=('mean','asgn',20,'ms')}}
«PAcontext»
«PAstep» {PArespTime= ('req','percentile',95,500,'ms')}} «PAstep» {PAdemand= ('est','mean',1,'ms')}} «PAstep» {PAdemand= (('est','mean',15,'ms'), ('est','sigma',10))} «PAstep» {PArep=$N, PAdemand=('est','mean',10,'ms'), PAextOp=('filesys',12),('network',65)} «PAstep» {PAinterval= ('req','percentile',99,30,'ms')}}
May be very sophisticated and express complex May be very sophisticated and express complex time values (instants and durations) including time values (instants and durations) including probability distributions, percentile values, etc. probability distributions, percentile values, etc. (NB: tools can help reduce visual clutter) (NB: tools can help reduce visual clutter) More compact forms are also More compact forms are also possible: possible:
{0 ms} {11 ms} {10.2 ms} {4.7 ms} {2 ms} {1.5 ms} InstanceA : InstanceB : helloMsg ackMsg 2.7 ms
104
Caller Caller Operator Operator call ack
{call. {call.sendTime sendTime() () -
ack. .receiveTime receiveTime < 10 sec} < 10 sec} Timing constraint Timing constraint ack ack. .sendTime sendTime() ()
On messages: sendTime sendTime() () receiveTime receiveTime() ()
On action blocks (new): startTime startTime() () endTime endTime() ()
call. call.receiveTime receiveTime() () callHandler callHandler. .startTime startTime() () callHandler callHandler. .endTime endTime() ()
105
A clock mechanism A clock mechanism RTclockId RTclockId [0..1] [0..1] Instance, Instance, DataType DataType, , Classifier, Classifier, ClassifierRole ClassifierRole… … « «RTclock RTclock» (subclass of » (subclass of « «RTtimingMechanism RTtimingMechanism») ») A time interval A time interval RTintStart RTintStart [0..1] [0..1] RTintEnd RTintEnd [0..1] [0..1] RTintDuration RTintDuration [0..1] [0..1] Instance, Object, Instance, Object, Classifier, Classifier, DataType DataType, , DataValue DataValue « «RTinterval RTinterval» » An event that occurs at a An event that occurs at a known time instant known time instant RTat RTat [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «RTevent RTevent» » A pure delay activity A pure delay activity RTduration RTduration [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «RTdelay RTdelay» » A clock interrupt A clock interrupt RTtimestamp RTtimestamp [0..1] [0..1] Stimulus, Message Stimulus, Message « «RTclkInterrupt RTclkInterrupt» » (subclass of (subclass of « «RTstimulus RTstimulus») ») An action that takes time An action that takes time RTstart RTstart [0..1] [0..1] RTend RTend [0..1] [0..1] RTduration RTduration [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «RTaction RTaction» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
106
A timed stimulus A timed stimulus RTstart RTstart [0..1] [0..1] RTend RTend [0..1] [0..1] Stimulus, Stimulus, ActionExecution ActionExecution, , Action, Action, ActionSequence ActionSequence, , Method Method « «RTstimulus RTstimulus» » A pause operation on a timing A pause operation on a timing mechanism mechanism Operation Operation « «RTpause RTpause» » An operation that starts a An operation that starts a timing mechanism timing mechanism Operation Operation « «RTstart RTstart» » An operation that sets the An operation that sets the current value of a timing current value of a timing mechanism mechanism RTtimePar RTtimePar [0..1] [0..1] Operation Operation « «RTset RTset» » An operation that resets a An operation that resets a timing mechanism timing mechanism Operation Operation « «RTreset RTreset» » An operation that creates a An operation that creates a new timer new timer RTtimerPar RTtimerPar [0..1] [0..1] Operation Operation « «RTnewTimer RTnewTimer» » An operation that creates a An operation that creates a new clock mechanism new clock mechanism RTstart RTstart [0..1] [0..1] RTend RTend [0..1] [0..1] RTduration RTduration [0..1] [0..1] Operation Operation « «RTnewClock RTnewClock Description Description Tags Tags Applies To Applies To Stereotype Stereotype
107
A timer mechanism A timer mechanism RTduration RTduration [0..1] [0..1] RTperiodic RTperiodic [0..1] [0..1] DataValue DataValue, Instance, Object, , Instance, Object, ClassifierRole ClassifierRole, Classifier… , Classifier… « «RTtimer RTtimer» (subclass of » (subclass of « «RTtimingMechanism RTtimingMechanism») ») A timing mechanism A timing mechanism
RTstability RTstability [0..1] [0..1] RTdrift RTdrift [0..1] [0..1] RTskew RTskew [0..1] [0..1] RTmaxValue RTmaxValue [0..1] [0..1] RTorigin RTorigin [0..1] [0..1] RTresolution RTresolution [0..1] [0..1] RTaccuracy RTaccuracy [0..1] [0..1] RTcurrentVal RTcurrentVal [0..1] [0..1] RToffset RToffset [0..1] [0..1] RTrefClk RTrefClk [0..1] [0..1]
DataValue DataValue, Instance, , Instance, Object, Object,ClassifierRole ClassifierRole, , Classifier, Classifier, DataType DataType « «RTtimingMechanism RTtimingMechanism» » A time service A time service Instance, Object, Instance, Object, ClassifierRole ClassifierRole, Classifier , Classifier « «RTtimeService RTtimeService» » A timeout signal or a A timeout signal or a timeout action timeout action RTtimestamp RTtimestamp [0..1] [0..1] Stimulus, Stimulus, ActionExecution ActionExecution, , Action, Action, ActionSequence ActionSequence, , Method Method « «RTtimeout RTtimeout» (subclass » (subclass
RTstimulus») ») A time value or a time A time value or a time
RTkind RTkind [0..1] [0..1] RTrefClk RTrefClk [0..1] [0..1] DataValue DataValue, Instance, Object, , Instance, Object, DataType DataType, Classifier , Classifier « «RTtime RTtime» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
108
■ 12:04 (time of day) ■ 5.3, ‘ms’ (time interval) ■ 2000/10/27 (date) ■ Wed (day of week) ■ $param, ‘ms’ (parameterized value) ■ ‘poisson’, 5.4, ‘sec’ (time value with a Poisson distribution) ■ ‘histogram’ 0, 0.3 1, 0.4 2, 0.3, 3, ‘ms’
■ ■ 12:04 (time of day)
12:04 (time of day)
■ ■ 5.3, ‘ms’ (time interval)
5.3, ‘ms’ (time interval)
■ ■ 2000/10/27 (date)
2000/10/27 (date)
■ ■ Wed (day of week)
Wed (day of week)
■ ■ $
$param param, ‘ms’ (parameterized value) , ‘ms’ (parameterized value)
■ ■ ‘
‘poisson’ poisson’, 5.4, ‘sec’ (time value with a Poisson distribution) , 5.4, ‘sec’ (time value with a Poisson distribution)
■ ■ ‘histogram’ 0, 0.3 1, 0.4 2, 0.3, 3, ‘ms’
‘histogram’ 0, 0.3 1, 0.4 2, 0.3, 3, ‘ms’
P=0.3 P=0.3 P=0.4 P=0.4 P=0.3 P=0.3 0 ms 0 ms 1 ms 1 ms 2 ms 2 ms 3 ms 3 ms
109
■ Bounded: ‘bounded’, <min-interval>, <max-interval> ■ Bursty: ‘bursty’, <burst-interval> <max.no.events> ■ Irregular: ‘irregular’, <interarrival-time>, [<interarrival-time>]* ■ Periodic: ‘periodic’, <period> [, <max-deviation>] ■ Unbounded: ‘unbounded’, <probability-distribution>
■ Bernoulli, Binomial, Exponential, Gamma, Geometric,
■ ■ Bounded:
■ ■ Bursty
■ ■ Irregular:
■ ■ Periodic:
■ ■ Unbounded:
■ ■ Bernoulli, Binomial, Exponential, Gamma, Geometric,
110
SynchronousInvoke AsynchronousInv
ImmediateService threading DeferredService Stimulus (from CausalityModel) StimuliQueue 0... 0... 0... 0... Scenario (from CausalityModel) ConcurrentUnit 1..n 1..n 1 1 +main 1 1 / StimulusGeneration (from CausalityModel) MessageAction 1..n 1 +effect 1..n +cause 1 / ActiveResource
(from ResourceTypes)
ResourceServiceInstance (from CoreResourceModel) 1 0..n 1 +methodExecution 0..n / 1..n 1..n / ActionExecution isAtomic : Boolean (from DynamicUsageModel) 1..n +step 1..n ProtectedResource
(from ResourceTypes)
111
A synchronous invoke A synchronous invoke Action, Action, ActionExecution ActionExecution « «CRSynch CRSynch» » A stimuli queue A stimuli queue Instance, Object, Class, Instance, Object, Class, ClassifierRole ClassifierRole « «CRmsgQ CRmsgQ» » A concurrent unit concept A concurrent unit concept CRMain CRMain [0..1] [0..1] Node, Component, Node, Component, Artifact, Class, Instance Artifact, Class, Instance « «CRConcurrent CRConcurrent» » An instance of an immediate An instance of an immediate service service {remote, local} [0..1] {remote, local} [0..1] Operation, Reception, Operation, Reception, Message, Stimulus Message, Stimulus « «CRImmediate CRImmediate» » A deferred receive A deferred receive Operation, Reception, Operation, Reception, Message, Stimulus Message, Stimulus « «CRDeferred CRDeferred» » A generalized usage A generalized usage dependency dependency Usage Usage « «CRContains CRContains» » An asynchronous invocation An asynchronous invocation Action, Action, ActionExecution ActionExecution « «CRAsynch CRAsynch» » An action execution An action execution CRAtomic CRAtomic [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «CRAction CRAction» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
112
<<deploys>> ClosedWorkload population externalDelay OpenWorkload
PResource utilization schedulingPolicy throughput PProcessingResource processingRate contextSwitchTime priorityRange isPreemptible PerformanceContext 1..n 0..n 1..n 0..n Workload responseTime priority 1..n 1 1..n 1 PStep probabilty repetition delay
interval executionTime 0..n 0..n +successor 0..n +predecessor 0..n PScenario hostExecutionDemand responseTime 0..n 0..n +resource 0..n 0..n 0..1 0..n +host 0..1 0..n 1..n 1 1..n 1 1 1..n 1 1..n 1..n 1..n 1 1 +root 1 1 PPassiveResource waitingTime responseTime capacity accessTime {ordered}
113
UsageDemand (from ResourceUsageModel) AnalysisContext (from ResourceUsageModel) PerformanceContext Workload Scenario (from CausalityModel) PPassiveResource waitingTime responseTime capacity accessTime PProcessingResource processingRate contextSwitchTime priorityRange isPreemptible PScenario ActiveResource (from ResourceTypes) PassiveResource (from ResourceTypes) ProtectedResource (from ResourceTypes)
114
b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow
Logical Instance Model
b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow processSelection initialPlayout initializePlayer sendFrame showFrame terminalPlayout confirm *[$N]
Usage Scenario
b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow :ClientWorkstation : WebServerNode : VideoServerNode : Internet
«GRMdeploys» «GRMdeploys» «GRMdeploys»
Engineering Instance Model
115
■ Estimated video server processing demand per frame = 10 ms ■ Estimated viewer processing demand per frame = 15 ms (dev = 20 ms) ■ Assumed network delay distribution: exponential with mean = 10 ms ■ Measured packets per frame (LAN) = 65 ■ Measured video server file operations per frame = 12 ■ Max. number of concurrent users = $Nusers ■ Average inter-session times = 20 minutes ■ Frames in a video $N ■ Video frame intervval = 30 ms ■ Required confirmation delay: 95% < 500 ms ■ Required interval between frame displays = 99% < 30 ms ■ ■ Estimated video server processing demand per frame = 10 ms
■ ■ Estimated viewer processing demand per frame = 15 ms (dev = 20 m
■ ■ Assumed network delay distribution: exponential with mean = 10 m
■ ■ Measured packets per frame (LAN) = 65
■ ■ Measured video server file operations per frame = 12
■ ■ Max. number of concurrent users = $
■ ■ Average inter
■ ■ Frames in a video $N
■ ■ Video frame
■ ■ Required confirmation delay: 95% < 500 ms
■ ■ Required interval between frame displays = 99% < 30 ms
116 b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow processSelection initialPlayout initializePlayer sendFrame showFrame terminalPlayout confirm *[$N]
«PAclosedLoad» {PApopulation=$NUsers, PAextDelay=('mean','asgn',20,'ms')}}
«PAcontext»
«PAstep» {PArespTime= ('req','percentile',95,500,'ms')}} «PAstep» {PAdemand= ('est','mean',1,'ms')}} «PAstep» {PAdemand= (('est','mean',15,'ms'), ('est','sigma',10))} «PAstep» {PArep=$N, PAdemand=('est','mean',10,'ms'), PAextOp=('filesys',12),('network',65)} «PAstep» {PAinterval= ('req','percentile',99,30,'ms')}}
117
b : Browser ws : WebServer vs : VideoServer vp : VideoPlayer vw : VideoWindow «PAhost» :ClientWorkstation «PAhost» : WebServerNode «PAhost» : VideoServerNode : Internet
«GRMdeploys» «GRMdeploys» «GRMdeploys»
«PAcontext»
{PAschdPolicy=PR, PArate=1, PAutilization=$Util, PActxtSwT=('est','mean',40,'us')}
«PAstep» send frame «PAstep» show frame «PAstep» receive frame vs : VideoServer vp : VideoPlayer vw : VideoWindow
{PAdemand= (('est','mean',15,'ms'), ('est','sigma',10))} {PAdemand=('est','mean',10,'ms'), PAextOp=('filesys',12),('network',65)} {PAinterval= ('req','percentile',99,30,'ms')}}
«PAcontext»
118
A deferred receive A deferred receive PAutilization PAutilization [0..*] [0..*] PAschdPolicy PAschdPolicy [0..1] [0..1] PArate PArate [0..1] [0..1] PActxtSwT PActxtSwT [0..1] [0..1] PAprioRange PAprioRange [0..1] [0..1] PApreemptible PApreemptible [0..1] [0..1] PAthroughput PAthroughput [0..1] [0..1] Classifier, Node, Classifier, Node, ClassifierRole ClassifierRole, Instance, , Instance, Partition Partition « «PAhost PAhost» » An open workload An open workload PArespTime PArespTime [0..*] [0..*] PApriority PApriority [0..1] [0..1] PAoccurrence PAoccurrence [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «PAopenLoad PAopenLoad» » A performance analysis A performance analysis context context Collaboration, Collaboration, CollaborationInstanceSet CollaborationInstanceSet, , ActivityGraph ActivityGraph « «PAcontext PAcontext» » A closed workload A closed workload PArespTime PArespTime [0..*] [0..*] PApriority PApriority [0..1] [0..1] PApopulation PApopulation [0..1] [0..1] PAextDelay PAextDelay [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «PAclosedLoad PAclosedLoad» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
119
A step in a scenario A step in a scenario PAdemand PAdemand [0..1] [0..1] PArespTime PArespTime [0..1] [0..1] PAprob PAprob [0..1] [0..1] PArep PArep [0..1] [0..1] PAdelay PAdelay [0..1] [0..1] PAextOp PAextOp [0..1] [0..1] PAinterval PAinterval [0..1] [0..1] Message, Message, ActionState ActionState, , Stimulus, Stimulus, SubactivityState SubactivityState « «PAstep PAstep» » A passive resource A passive resource PAutilization PAutilization [0..*] [0..*] PAschdPolicy PAschdPolicy [0..1] [0..1] PAcapacity PAcapacity [0..1] [0..1] PAmaxTime PAmaxTime [0..1] [0..1] PArespTime PArespTime [0..1] [0..1] PAwaitTime PAwaitTime [0..1] [0..1] PAthroughput PAthroughput [0..1] [0..1] Classifier, Node, Classifier, Node, ClassifierRole ClassifierRole, Instance, , Instance, Partition Partition « «PAresource PAresource» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
120
■ <kind-of-value> , <modifier> , <time-value>
■ <kind-of-value> ::= ‘req’ | ‘assm’ | ‘pred’ | ‘msr’ ■ Required, assumed, predicted, measured ■ <modifier> ::= ‘mean’ | ‘sigma’ | ‘kth-mom’ , <Integer> |
■ E.g.:
■ ■ <kind
■ ■ <kind
■ ■ Required, assumed, predicted, measured
■ ■ <modifier> ::= ‘mean’ | ‘sigma’ | ‘
■ ■ E.g.:
121
SAction Priority Worst-case Completion Time Delay Time Preempted Time Ready Time Release Time Blocking Time Laxity Absolute Deadline Relative Deadline isAtomic Response Utilization Spare Capacity Overlaps Slack Time Trigger isSchedulable 1 1 +effect 1 +cause 1 / 0..n 0..n +precedents 0..n 0..n RealTimeSituation SchedulableResource 1 0..n +host 1 0..n SchedulingPolicy SResource Capacity Acquisition Time Deacquisition Time isConsumable Priority Ceiling isPreemptible 0..n 0..n +usedResources 0..n 0..n / 0..n 0..n 0..n 0..n SchedulingJob 1..n 0..n 1..n 0..n 1 1 1 1 1 1 1 1 ExecutionEngine Priority Range Processing Rate Context Switch Time Utilization isPreemptible isSchedulable 1..n 0..n 1..n 0..n 1 0..n +host 1 0..n 1 0..n 1 0..n 0..n 0..1 +ownedResources 0..n 0..1 0..n 1 0..n 1 <<deploys>> <<deploys>>
122
■ Rate Monotonic, Deadline Monotonic, HKL, Fixed Priority,
■ …may be extended in the future
■ FIFO, Priority Inheritance, No Preemption, Highest Lockers,
■ …may be extended in the future
■ ■ Rate Monotonic, Deadline Monotonic, HKL, Fixed Priority,
■ ■ …may be extended in the future
■ ■ FIFO, Priority Inheritance, No Preemption, Highest Lockers,
■ ■ …may be extended in the future
123
Sensors :SensorInterface TelemetryGatherer :DataGatherer SensorData :RawDataStorage TelemetryDisplayer : DataDisplayer TelemetryProcessor :DataProcessor Display :DisplayInterface TGClock : Clock TGClock : Clock TGClock : Clock
A.1:gatherData ( ) A.1.1:main ( ) A.1.1.1: writeStorage ( ) B.1:filterData ( ) B.1.1 : main ( ) B.1.1.1: readStorage ( ) C.1:displayData ( ) C.1.1.1: readStorage ( ) C.1.1 : main ( )
124
Sensors :SensorInterface TelemetryGatherer :DataGatherer
«SAResource»
SensorData :RawDataStorage TelemetryDisplayer : DataDisplayer TelemetryProcessor :DataProcessor Display :DisplayInterface TGClock : Clock TGClock : Clock
A.1:gatherData ( ) C.1:displayData ( ) B.1:filterData ( )
TGClock : Clock
A.1.1:main ( ) A.1.1.1: writeStorage ( ) B.1.1 : main ( ) B.1.1.1: readStorage ( ) C.1.1.1: readStorage ( ) C.1.1 : main ( ) {SACapacity=1, SAAccessControl=PriorityInheritance} «SASchedulable» «SASchedulable» «SASchedulable» «SATrigger» {SASchedulable=$R1, RTat=('periodic',100,'ms')} «SAResponse» {SAAbsDeadline=(100,'ms')}
«SASituation»
«SAAction» {SAPriority=2, SAWorstCase=(93,'ms'), RTduration=(33.5,'ms')} «SAAction» {RTstart=(16.5,'ms'), RTend=(33.5,'ms')} «SATrigger» {SASchedulable=$R2, RTat=('periodic',60,'ms')} «SAResponse» {SAAbsDeadline=(60,'ms')} «SATrigger» {SASchedulable=$R3, RTat=('periodic',200,'ms')} «SAResponse» {SAAbsDeadline=(200,'ms')} «SAResponse» {SAPriority=3, SAWorstCase=(177,'ms'), RTduration=(46.5,'ms')} «SAAction» {RTstart=(10,'ms'), RTend=(31.5,'ms')} «SAAction» {RTstart=(3,'ms'), RTend=(5,'ms')} «SAResponse» {SAPriority=1, SAWorstCase=(50.5,'ms'), RTduration=(12.5,'ms')}
Result Result
125
«SAEngine» {SARate=1, SASchedulingPolicy=FixedPriority}
:Ix86Processor
«SASchedulable»
TelemetryGatherer :DataGatherer
«SASchedulable»
TelemetryDisplayer : DataDisplayer
«SASchedulable»
TelemetryProcessor :DataProcessor
«SAResource»
SensorData :RawDataStorage
«SAOwns» «GRMdeploys»
126
Sensors :SensorInterface TelemetryGatherer :DataGatherer
«SAResource»
SensorData :RawDataStorage TelemetryDisplayer : DataDisplayer TelemetryProcessor :DataProcessor Display :DisplayInterface TGClock : Clock TGClock : Clock
A.1:gatherData ( ) C.1:displayData ( ) B.1:filterData ( )
TGClock : Clock
A.1.1:main ( ) A.1.1.1: writeStorage ( ) B.1.1 : main ( ) B.1.1.1: readStorage ( ) C.1.1.1: readStorage ( ) C.1.1 : main ( ) {SACapacity=1, SAAccessControl=PriorityInheritance} «SASchedulable» «SASchedulable» «SASchedulable» «SATrigger» RTat=('periodic',100,'ms')} «SAResponse» {SAAbsDeadline=(100,'ms')}
«SASituation»
«SAAction» {SAPriority=2, SAWorstCase=(93,'ms'), RTduration=(33.5,'ms')} «SAAction» {RTstart=(16.5,'ms'), RTend=(33.5,'ms')} «SATrigger» RTat=('periodic',60,'ms')} «SAResponse» {SAAbsDeadline=(60,'ms')} «SATrigger» RTat=('periodic',200,'ms')} «SAResponse» {SAAbsDeadline=(200,'ms')} «SAResponse» {SAPriority=3, SAWorstCase=(177,'ms'), RTduration=(46.5,'ms')} «SAAction» {RTstart=(10,'ms'), RTend=(31.5,'ms')} «SAAction» {RTstart=(3,'ms'), RTend=(5,'ms')} «SAResponse» {SAPriority=1, SAWorstCase=(50.5,'ms'), RTduration=(12.5,'ms')} {SASchedulable=$true, {SASchedulable=$true {SASchedulable=$true
Additional tool-specific results encased in UML Notes Additional tool-specific results encased in UML Notes
127
An execution engine An execution engine
SASchedulingPolicy SASchedulingPolicy [0..1] [0..1] SAAccessPolicy SAAccessPolicy [0..1] [0..1] SARate SARate [0..1] [0..1] SAContextSwitch SAContextSwitch [0..1] [0..1] SAPriorityRange SAPriorityRange [0..1] [0..1] SAPreemptible SAPreemptible [0..1] [0..1] SAUtilization SAUtilization [0..1] [0..1] SASchedulable SASchedulable [0..1] [0..1] Saresources Saresources [0..1] [0..1]
Node, Instance, Object, Node, Instance, Object, Classifier, Classifier, ClassifierRole ClassifierRole « «SAEngine SAEngine» » An action An action
SAPriority SAPriority [0..1] [0..1] SAActualPty SAActualPty [0..1] [0..1] SABlocking SABlocking [0..1] [0..1] SAReady SAReady [0..1] [0..1] SADelay SADelay [0..1] [0..1] SARelease SARelease [0..1] [0..1] SAPreempted SAPreempted [0..1] [0..1] SAWorstCase SAWorstCase [0..1] [0..1] SALaxity SALaxity [0..1] [0..1] SAPriority SAPriority [0..1] [0..1] SAAbsDeadline SAAbsDeadline [0..1] [0..1] SARelDeadline SARelDeadline [0..1] [0..1] SAusedResource SAusedResource [0..1] [0..1] SAhost SAhost [0..1] [0..1]
Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «SAAction SAAction» » (subclass of « (subclass of «RTaction RTaction» » and « and «CRAction CRAction») ») Description Description Tags Tags Applies To Applies To Stereotype Stereotype
128
A resource of some kind A resource of some kind SAAccessControl SAAccessControl [0..1] [0..1] SAConsumable SAConsumable [0..1] [0..1] SACapacity SACapacity [0..1] [0..1] SAAcquisition SAAcquisition [0..1] [0..1] SADeacquisition SADeacquisition [0..1] [0..1] SAPtyCeiling SAPtyCeiling [0..1] [0..1] SAPreemptible SAPreemptible [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «SAResource SAResource» » A schedulable resource A schedulable resource Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «SASchedulable SASchedulable» » (subclass of (subclass of « «SAResource SAResource») ») A response to a stimulus or A response to a stimulus or action action SAUtilization SAUtilization [0..1] [0..1] SASpare SASpare [0..1] [0..1] SASlack SASlack [0..1] [0..1] SAOverlaps SAOverlaps [0..1] [0..1] Action, Action, ActionExecution ActionExecution, , Stimulus, Action, Stimulus, Action, Message, Method… Message, Method… « «SAResponse SAResponse» (subclass » (subclass
SAAction») ») A precedence relationship A precedence relationship between actions and triggers between actions and triggers Usage Usage « «SAPrecedes SAPrecedes» » Identifies ownership of Identifies ownership of resources resources Abstraction Abstraction « «SAOwns SAOwns» » (subclass of (subclass of « «GRMrealize GRMrealize») ») Description Description Tags Tags Applies To Applies To Stereotype Stereotype
129
Identifies sharable Identifies sharable resources resources Usage Usage « «SAUses SAUses» » A schedulability analysis A schedulability analysis context context Collaboration, Collaboration, CollaborationInstance CollaborationInstance, , ActivityGraph ActivityGraph « «SASituation SASituation» » Identifies schedulable Identifies schedulable resources used for resources used for execution of actions execution of actions Usage Usage « «SAusedHost SAusedHost» » A trigger A trigger SASchedulable SASchedulable [0..1] [0..1] SASAprecedents SASAprecedents [0..1] [0..1] Message, Stimulus Message, Stimulus « «SATrigger SATrigger» (subclass of » (subclass of « «SAAction SAAction») ») A precedence A precedence relationship between relationship between actions and triggers actions and triggers Usage Usage « «SAPrecedes SAPrecedes» » A scheduler A scheduler SASchedulingPolicy SASchedulingPolicy [0..1] [0..1] SAExecutionEngine SAExecutionEngine [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object Instance, Object « «SAScheduler SAScheduler» » Description Description Tags Tags Applies To Applies To Stereotype Stereotype
130
RTCconnection isShared hiPriority loPriority SResource
(from Sche dulin gDomanModel )
RTCserver serverPriority 0..n 1 0..n 1 RTCorb 0..n 1 RTCmutex 0..n <<deploys>> +host 0..n 0..n 1 RTCclient timeout clientPriority private 1 1..n 1 +host 1..n <<deploys>> Response
(from SchedulingDomanModel)
0..n 0..n +usedResources 0..n 0..n / 1..n 0..n +usedResources 1..n 0..n / 1..n 0..n 1..n +usedResources 0..n 1 0..n 1 0..n / ExecutionEngine
(from SchedulingDomanModel)
SchedulableResource
(from SchedulingDomanModel)
/ +clientScenario / +ownedResources /
131
«RTclock» TGClock : Clock «RSAclient» {RSAtimeout=(105,'ms), RSAclPrio=12 TelemetryGatherer : DataGatherer «RSAserver» {SACapacity=4} Sensor1 :SensorInterface «RSAserver» {SACapacity=10} Sensor2 :SensorInterface «RSAorb» {SASchedulingPolicy= 'RateMonotonic'} TG-ORB: RTOrb «GRMdeploys» «RSAorb» {SASchedulingPolicy= 'RateMonotonic'} S1-ORB: RTOrb «GRMdeploys» «RSAorb» {SASchedulingPolicy= 'RateMonotonic'} S2-ORB: RTOrb «GRMdeploys» «SAEngine» {SASchedulingPolicy= 'RateMonotonic', SARate=1} P1 : I586 «SAEngine» {SASchedulingPolicy= 'RateMonotonic', SARate=0.5} P2 : Ix86 «GRMdeploys» «GRMdeploys» «GRMdeploys» «GRMdeploys»
«SASituation»
132
«RTclock» TGClock «RSAclient» TelemetryGatherer : DataGatherer
«RTevent» {RTat=('periodic', 100, 'ms')} tick ( )
«RSAserver» Sensor1 :SensorInterface
«SAAction» {SAWorstCase=(15,'ms'), RTduration=(10,'ms')} readSensor ( ) «SAresponse» {SAAbsDeadline =(100,'ms')
«RSAserver» Sensor2 :SensorInterface
«SAAction» {SAWorstCase=(30,'ms'), RTduration=(20,'ms')} readSensor ( ) «SAAction» {SAWorstCase=(25,'ms'), RTduration=(5,'ms')} compare ( )
«SASituation»
133
An RT CORBA server An RT CORBA server RSAsrvPrio RSAsrvPrio [0..1] [0..1] SACapacity SACapacity [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «RSAserver RSAserver» » (subclass of (subclass of « «SAResource SAResource» ) » ) An RT CORBA An RT CORBA mutex mutex SAAccessControl SAAccessControl [0..1] [0..1] RSAhost RSAhost [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «RSAmutex RSAmutex» » (subclass of (subclass of « «SAResource SAResource») ») An RT CORBA ORB An RT CORBA ORB SAschedulingPolicy SAschedulingPolicy [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «RSAorb RSAorb» » (subclass of (subclass of « «SAResource SAResource» ) » ) An RT CORBA An RT CORBA connection connection SAAccessControl SAAccessControl [0..1] [0..1] RSAshared RSAshared [0..1] [0..1] RSAhiPrio RSAhiPrio [0..1] [0..1] RSAloPrio RSAloPrio [0..1] [0..1] RSAserver RSAserver [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «RSAconnection RSAconnection» » (subclass of (subclass of « «SASchedulable SASchedulable» and » and « «SAResource SAResource») ») An RT CORBA client An RT CORBA client RSAtimeout RSAtimeout [0..1] [0..1] RSAclPrio RSAclPrio [0..1] [0..1] RSAprivate RSAprivate [0..1] [0..1] RSAhost RSAhost [0..1] [0..1] Classifier, Classifier, ClassifierRole ClassifierRole, , Instance, Object, Node Instance, Object, Node « «RSAclient RSAclient» » (subclass of (subclass of « «SASchedulable SASchedulable») ») Description Description Tags Tags Applies To Applies To Stereotype Stereotype
134
RTCORBA <<CORBAModule>> RTPortableServer <<CORBAModule>> CORBA <<CORBAModule>> IOP <<CORBAModule>> PortableServer <<CORBAModule>> RTCosScheduling <<CORBAModule>>
135
Model Processor
Model Configurer
Parametrized UML Model (XMI) Configured UML Model (XMI)
Model Editor Results Convertor
Configuration Data Set
Model Convertor
Processing Control Specification Domain Model
Model Analyzer
Processing Results Results UML Model (XMI)
1 2 3 4 5 6 7 8 9
10
136
■ Includes: variables, numbers, booleans, strings, lists,
■ expressing complex dependencies between values ■ writing processing scripts
■ ■ Includes: variables, numbers,
■ ■ expressing complex dependencies between values
■ ■ writing processing scripts
137
■ resources ■ concurrency mechanisms ■ time and timing mechanisms
■ predictive models that can be used to validate (risky) design
■ ■ resources
■ ■ concurrency mechanisms
■ ■ time and timing mechanisms
■ ■ predictive models that can be used to validate (risky) design
138
■ Real-Time System Essentials ■ Essentials of the Object Paradigm
■ ■ Real
■ ■ Essentials of the Object Paradigm
139
■ simplifies the design problem (separation of concerns) ■ software is portable to new/different technologies
■ ■ simplifies the design problem (separation of concerns)
■ ■ software is portable to new/different technologies
140
■ ■ limited speed, limited capacity, limited availability,...
141
Node1 (New York) Node2 (Tokyo)
State? State? “on” “on” “on” “on”
It’s a game of numbers! It’s a game of numbers!
142
clientA clientA clientA notifier1 notifier1 notifier1 notifier2 notifier2 notifier2 clientB clientB clientB
e1 e1 e1 e1 e2 e2 e2 e2
time time
■ different observers see different event orderings
■ ■ different observers see different event orderings
It’s a game of numbers! It’s a game of numbers!
143
■ concurrency and asynchrony ■ need for communication and synchronization between sites ■ communication delays ■ possibility of partial failure
■ ■ concurrency and asynchrony
■ ■ need for communication and synchronization between sites
■ ■ communication delays
■ ■ possibility of partial failure
144
145
■ a “virtual” mechanism realized by a computer
■ ■ a “virtual” mechanism realized by a computer
INSTRUCTOR STATION INSTRUCTOR INSTRUCTOR STATION STATION AIRFRAME AIRFRAME AIRFRAME GROUND MODEL GROUND GROUND MODEL MODEL ATMOSPHERE MODEL ATMOSPHERE ATMOSPHERE MODEL MODEL ENGINES ENGINES ENGINES CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES PILOT CONTROLS PILOT PILOT CONTROLS CONTROLS
146
Processor Processor Ethernet LAN Ethernet LAN Processor Processor OS process OS OS process process
stack stack
OS process OS OS process process
stack stack
OS process OS OS process process
stack stack
TCP/IP socket TCP/IP socket TCP/IP socket TCP/IP socket
147
Engineering View Engineering View Engineering View
Processor Processor Ethernet LAN Ethernet LAN Processor Processor OS process OS OS process process stack stack OS process OS OS process process stack stack OS process OS OS process process stack stack TCP/IP socket TCP/IP socket TCP/IP socket TCP/IP socket
Logical View Logical View Logical View
INSTRUCTOR STATION INSTRUCTOR INSTRUCTOR STATION STATION AIRFRAME AIRFRAME AIRFRAME GROUND MODEL GROUND GROUND MODEL MODEL ATMOSPHERE MODEL ATMOSPHERE ATMOSPHERE MODEL MODEL ENGINES ENGINES ENGINES CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES PILOT CONTROLS PILOT PILOT CONTROLS CONTROLS
Realization mappings Realization mappings
148
■ logical elements can be viewed as “residing” on the
■ ■ logical elements can be viewed as “residing” on the
AIRFRAME AIRFRAME AIRFRAME CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES Model 1 Model 1
OS process1 OS OS process1 process1 OS process1 OS OS process1 process1
Model 2 Model 2
Processor Processor
Model 3 Model 3
149
■ depends on the desired granularity of modeling ■ affects the semantics of the realization relationship
■ ■ depends on the desired granularity of modeling
■ ■ affects the semantics of the realization relationship
AIRFRAME AIRFRAME AIRFRAME CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES Model 1 Model 1 OS process1 OS OS process1 process1 OS process1 OS OS process1 process1 Model 2 Model 2 Processor Processor Model 3 Model 3 AIRFRAME AIRFRAME AIRFRAME CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES Model 1 Model 1 Processor Processor Model 3 Model 3
150
■ the quality of the outcome is only as good as the quality of the
■ as in all true engineering, the quantitative aspects are often crucial (How
■ Unfortunately, UML deployment diagrams are inadequate
■ ■ the quality of the outcome is only as good as the quality of the
■ ■ as in all true engineering, the quantitative aspects are often c
■ ■ Unfortunately, UML deployment diagrams are inadequate
151
20MB 20MB 3MIPs 3MIPs 100Mbit/s 100Mbit/s
environment “services” (offered QoS values) environment “services” environment “services” (offered QoS values) (offered QoS values) CPU CPU CPU LAN LAN LAN resources resources resources
CPU : CPU : 3 3 MIPs MIPs Bandw
. : 70Mbit/s 70Mbit/s Mem Mem : : 2MB 2MB
required QoS values required QoS values required QoS values
client client client resource “usage” resource “usage” resource “usage”
152
resource resource resource client client client accesses➨ accesses➨
Logical View Logical View Logical View
WinNT Process WinNT WinNT Process Process
Engineering View Engineering View Engineering View
WinNT Process WinNT WinNT Process Process
«realize» «realize»
153
«OSprocess» HostProcess: P {ctxtSw = “80 usec”; heap = “30 kB} «LWT» Thread1 : T {ctxtSw = “10 usec”} «LWT» Thread3 : T {ctxtSw = “10 usec”} «LWT» Thread2 : T {ctxtSw = “10 usec”} TSensor: TemperatueSensor {cycle = “20 msec”} injector: FIControl {cycle = “20 msec”} instPanel: Register {cycle = “40 msec”} temp : Temperature «GRMdeploys» «GRMdeploys» «GRMdeploys» «GRMdeploys»
154
155
Logical Model Logical Model Logical Model A B
asc asc
Engineering Model Engineering Model Engineering Model X Y Z
«GRMrealizes» «GRMrealizes»
Source element Dest. elements A X, Y asc Y B Z
deployment table A stereotype of the UML realizes relationship A stereotype of the UML realizes relationship Compact tabular form Compact tabular form
156
■ Either as a string (tag value) or as a table
■ ■ Either as a string (tag value) or as a table
<Any additional constraints that apply to the mapping> <Interaction mode between levels, one
{sync, async, replace} <If there are multiple engineering elements,
{inclusive, exclusiveStatic, exclusiveDynamic} <List of corresponding engineering model elements> <List of logical model elements> Additional Additional Constraints Constraints Linkage Linkage Mode Mode Engineering Engineering Elements Elements Logical Logical Elements Elements
E E L L
sync = SW to SW sync = SW to SW async async = SW to SW = SW to SW replace = SW to HW replace = SW to HW
E1 E1 En En L1 L1
157
■ Models ■ QoS specifications (accounting for physical properties) ■ Quantitative analysis techniques and simulation
■ Higher reliability (simplification due to modeling) ■ Ability to predict system characteristics (and major design
■ Portability!
■ ■ Models
■ ■ QoS specifications (accounting for physical properties)
■ ■ Quantitative analysis techniques and simulation
■ ■ Higher reliability (simplification due to modeling)
■ ■ Ability to predict system characteristics (and major design
■ ■ Portability!
158
159
Logical View Logical View Logical View Required Environment Required Environment Required Environment
UNIX Process UNIX UNIX Process Process
Engineering View (alternative A) Engineering View (alternative A) Engineering View (alternative A)
UNIX Process UNIX UNIX Process Process WinNT Process WinNT WinNT Process Process
Engineering View (alternative B) Engineering View (alternative B) Engineering View (alternative B)
WinNT Process WinNT WinNT Process Process
160
INSTRUCTOR STATION INSTRUCTOR INSTRUCTOR STATION STATION AIRFRAME AIRFRAME AIRFRAME GROUND MODEL GROUND GROUND MODEL MODEL ATMOSPHERE MODEL ATMOSPHERE ATMOSPHERE MODEL MODEL ENGINES ENGINES ENGINES CONTROL SURFACES CONTROL CONTROL SURFACES SURFACES PILOT CONTROLS PILOT PILOT CONTROLS CONTROLS
QoS domain (e.g.,failure unit, uniform comm properties) QoS domain (e.g.,failure unit, uniform comm properties)
161
■ failure characteristics (failure modes, availability, reliability) ■ CPU performance ■ communications characteristics (delay, throughput, capacity) ■ etc.
■ ■ failure characteristics (failure modes, availability, reliabilit
■ ■ CPU performance
■ ■ communications characteristics (delay, throughput, capacity)
■ ■ etc.
162
Logical View Logical View Logical View Required Environment Required Environment Required Environment
QoS1 QoS1 QoS1 QoS2 QoS2 QoS2 QoS3 QoS3 QoS3 A local “engineering” model A local “engineering” model «GRMrequires»: a specialization of the “realizes” relationship «GRMrequires»: a specialization of the “realizes” relationship
Stereotype UML base concepts Tags GRMrequires GRMrealizes N/A
163
■ in conjunction with the “required environment” relationship
■ ■ in conjunction with the “required environment” relationship
R R readObj () readObj () «GRMthreadEnv» ThreadForR {priority = 3; heap = 20 KB; stack = 3 KB}
«GRMrequires» «GRMrequires»
Active class Active class Environment expected by instances of class R Environment expected by instances of class R
Stereotype UML base concepts Tags GRMthreadEnv Node, Instance priority [0..1] : Integer heap [0..1] : Real stack [0..1] : Real
164
MainTask
Task1 Task2 Task3
master : Master poller : Poller d : DBaseServer cs : CommServer dBadmin : Admin
165
LogicalPkgX LogicalPkgX
master : Master poller : Poller d : DBaseServer cs : CommServer dBadmin : Admin
EngineeringPkgY EngineeringPkgY
Task1 : Task Task3 : Task Task2 : Task MainTask : Task
EngineeringPkgZ EngineeringPkgZ
«GRMschedulableEntity» Task
«import» «import» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires» «GRMrequires»
166
EngineeringPkgY EngineeringPkgY
Task1 : Task Task3 : Task Task2 : Task MainTask : Task
EngineeringPkgD EngineeringPkgD
«GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize»
«SAProcessingResource» Proc1
«GRMrealize» «GRMrealize»
167
LogicalPkgX LogicalPkgX
master : Master poller : Poller d : DBaseServer cs : CommServer dBadmin : Admin
EngineeringPkgY EngineeringPkgY
Task1 : Task Task3 : Task Task2 : Task MainTask : Task
EngineeringPkgZ EngineeringPkgZ
«GRMschedulableEntity» Task
«import» «import» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize»
168
EngineeringPkgY EngineeringPkgY
Task1 : Task Task3 : Task Task2 : Task MainTask : Task
EngineeringPkgD EngineeringPkgD
«GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize» «GRMrealize»
«SAProcessingResource» Proc1
«GRMrealize» «GRMrealize»
169
■ quantitative analysis of UML-based models ■ a real-time modeling standard that will facilitate automated
■ ■ quantitative analysis of UML
■ ■ a real
170
■ Real-Time System Essentials ■ Essentials of the Object Paradigm
■ ■ Real
■ ■ Essentials of the Object Paradigm
171
■ the environment in which the system exists ■ the implementation technology
■ the physical dimension plays a major role in the design of real-
■ ■ the environment in which the system exists
■ ■ the implementation technology
■ ■ the physical dimension plays a major role in the design of real
172
■ reduces incidental complexity ■ its structural bias is better suited to the real-time domain than
■ additional key features (encapsulation, inheritance,
■ accounts for the physical dimension during logical design ■ based on a quality of service (QoS) framework as represented
■ allows de-coupling from actual implementation technologies
■ suitable for analysis and synthesis ■ enables early detection of critical design flaws
■ ■ reduces incidental complexity
■ ■ its structural bias is better suited to the real
■ ■ additional key features (encapsulation, inheritance,
■ ■ accounts for the physical dimension during logical design
■ ■ based on a quality of service (QoS) framework as represented
■ ■ allows de
■ ■ suitable for analysis and synthesis
■ ■ enables early detection of critical design flaws
173
■ for object-oriented modeling ■ for predictive QoS modeling (via the real-time profile) ■ for design analysis and synthesis (tool interchange) ■ for architectural definition ■ for implementation (through full automatic code generation)
■ ■ for object
■ ■ for predictive QoS modeling (via the real
■ ■ for design analysis and synthesis (tool interchange)
■ ■ for architectural definition
■ ■ for implementation (through full automatic code generation)
174
175
♦ Cooper, R., Introduction to Queueing Theory, The Macmillan Company, 1972. ♦ I. Jacobson, G. Booch, and J. Rumbaugh, “The Unified Software Development Process,”, Addison-Wesley, 1999. ♦ Klein, M. et al., A Practitioner’s Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems, Kluwer Academic Publishers, 1993. ♦ OMG, “The Unified Modeling Language” version 1.3, The Object Management Group, August 1999. ♦ OMG, “UML™ Profile for Scheduling, Performance, and Time - Request for Proposal”, The Object Management Group, March 1999 (doc ad/99-03-13). ♦ UML Real-Time Consortium, “Response to the OMG RFP for Schedulability, Performance, and Time,” August, 2000 (OMG document ad/2000-08-04). ♦ J. Rumbaugh, I. Jacobson, and G. Booch, “The Unified Modeling Language Reference Manual,”, Addison-Wesley, 1999. ♦ B. Selic, “Turning Clockwise: Using UML in the Real-Time Domain”, Communications of the ACM, vol.42, no.10, October 1999 (pp.46-54). ♦ B. Selic, “A Generic Framework for Modeling Resources with UML,” IEEE Computer vol.33, no.6, June 2000 (pp. 64-69). ♦ B. Selic and J. Rumbaugh: “Using UML for Modeling Complex Real-Time Systems,” ObjecTime Limited and Rational Software Corp., March 1998. (http://www.rational.com) ♦ ♦ Cooper, R., Introduction to Queueing Theory, The Macmillan Compa Cooper, R., Introduction to Queueing Theory, The Macmillan Company, 1972. ny, 1972. ♦ ♦ I. Jacobson, G.
Booch, and J. , and J. Rumbaugh Rumbaugh, “The Unified Software Development Process,”, , “The Unified Software Development Process,”, Addison Addison-
Wesley, 1999. ♦ ♦ Klein, M. et al., A Practitioner’s Handbook for Real Klein, M. et al., A Practitioner’s Handbook for Real-
Time Analysis: Guide to Rate Monotonic Analysis for Real Analysis for Real-
Time Systems, Kluwer Academic Publishers, 1993. ♦ ♦ OMG, “The Unified Modeling Language” version 1.3, The Object Man OMG, “The Unified Modeling Language” version 1.3, The Object Management Group, agement Group, August 1999. August 1999. ♦ ♦ OMG, “ OMG, “UML™ Profile for Scheduling, Performance, and Time - Request for Proposal”, The The Object Management Group, March 1999 (doc ad/99 Object Management Group, March 1999 (doc ad/99-
03-
13). ♦ ♦ UML Real UML Real-
Time Consortium, “Response to the OMG RFP for Schedulability, Performance, rformance, and Time,” August, 2000 (OMG document ad/2000 and Time,” August, 2000 (OMG document ad/2000-
08-
04). ♦ ♦ J.
Rumbaugh, I. Jacobson, and G. , I. Jacobson, and G. Booch Booch, “The Unified Modeling Language Reference , “The Unified Modeling Language Reference Manual,”, Addison Manual,”, Addison-
Wesley, 1999. ♦ ♦ B. Selic, “Turning Clockwise: Using UML in the Real
Time Domain”, Communications of the Communications of the ACM, ACM, vol.42, no.10, October 1999 (pp.46 vol.42, no.10, October 1999 (pp.46-
54). ♦ ♦ B. Selic, “A Generic Framework for Modeling Resources with UML,”
IEEE Computer vol.33, no.6, June 2000 (pp. 64 no.6, June 2000 (pp. 64-
69). ♦ ♦ B. Selic and J. Rumbaugh: “Using UML for Modeling Complex Real
Time Systems,” ObjecTime Limited and Rational Software Corp., March 1998. (http ObjecTime Limited and Rational Software Corp., March 1998. (http://www.rational.com) ://www.rational.com)