Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Cambridge University Press & Assessment

978-1-107-04109-7 — Real-Time Software Design for Embedded Systems


Hassan Gomaa
Index
More Information

Index

4+1 view model of software architecture, 59 atomic operation, 40


action, 19, 105 attribute, 33
entry, 19, 108 autonomy
exit, 19, 108 localized, 222
transition, 106 availability, 7, 315
activity, 19, 110 requirements, 88
actor, 14, 80, 299
external system, 83 behavioral pattern
generalized, 85 object, 129
input device, 84 Bidirectional Asynchronous Message
physical entity, 83 Communication pattern, 199, 542
primary, 81 block, 61
secondary, 81 composite, 69
software engineering perspective, 81, 83 external, 73
specialized, 85 block deonition diagram, 28, 61, 67,
systems engineering perspective, 81, 82 69
timer, 84 boundary object, 127, 129
actuator, 5 device I/O, 127, 129, 130
aggregation hierarchy, 16, 64 Broadcast pattern, 207, 543
agile methods, 57 broker, 203
algorithm Broker Forwarding pattern, 204
object, 128, 139 Broker Handle pattern, 544
algorithm task
demand driven, 244 Centralized Control pattern, 190, 531
analysis model, 144 class, 14, 33
analysis modeling, 53 synchronization of access to, 274
analysis patterns, 185 class diagram, 15, 61
application logic subsystem, 166
object, 128, 139 classiocation
architectural communication patterns, 185, 197, of application classes, 127
229, 530, 540 client, 173, 194
architectural patterns, 185 user interaction, 177
architectural structure patterns, 185, 186, client subsystem, 179
530 COMET, 59
architectural styles, 185 COMET/RTE, xx, 10, 51
association, 15, 62 life cycle model, 51
multiplicity of, 62 communication diagram, 17, 18, 144
asynchronous message communication, 21, concurrent, 20
260 subsystem, 169
Asynchronous Message Communication pattern, Completion Time Theorem, 327
183, 198, 540 Example of Applying Generalized, 336
Asynchronous Message Communication with Generalized, 333
Callback pattern, 201, 541 mathematical formulation, 329

581

© in this web service Cambridge University Press & Assessment www.cambridge.org


Cambridge University Press & Assessment
978-1-107-04109-7 — Real-Time Software Design for Embedded Systems
Hassan Gomaa
Index
More Information

582 Index

component, 47 data analysis subsystem, 179


composite, 167 data collection subsystem, 178
I/O, 223 data distribution, 227
interface inheritance, 309 data replication, 227
mobile, 173 database wrapper
plug-compatible, 308 object, 136
component interface, 213 deadline monotonic algorithm, 339
component performance, 223 deadlock, 43
component-based software architecture, 165, 212 delegation connector, 217
design, 212 demand driven tasks, 244
composite component, 165, 212, 217 deployment
composite object, 172 application, 228
composite state, 19, 114 deployment diagram, 23, 169, 229
composite structure diagram, 24, 167 design
composite task, 266 rationale, 318
composition hierarchy, 16, 64 design anti-patterns, 185
conceptual static model, 67 Design Approach for Real-Time Systems
concurrency, 7 (DARTS), 58
concurrent design for change, 319
application, 37 design modeling, 54
systems, 40 for software product lines, 308
task, 37 design pattern, 184
concurrent communication diagram, 22, 267 design restructuring, 367
Concurrent Design Approach for Real-Time device I/O class, 268
Systems (CODARTS), 58 discrete data, 236
concurrent processing Distributed Collaborative Control pattern, 191,
runtime support, 43 532
concurrent sequence diagram, 22 distributed component, 212
concurrent software architecture, 164 distributed control, 7
concurrent task, 234 Distributed Independent Control pattern, 191, 533
concurrent task design, 233 distributed service, 227
concurrent tasks domain engineering, 298
implementation in Java, 295 domain3specioc patterns, 185
condition, 19, 103 duration, 5
conoguration dynamic interaction modeling, 54, 143, 145
requirements, 88 for software product lines, 304
connector, 47, 215 state dependent, 143, 150
example of use for asynchronous stateless, 143, 146
communication, 289 dynamic modeling, 54, 143
example of use for synchronous communication dynamic priority systems, 339
with reply, 290 dynamic state machine modeling, 54
message buffer, 286
message buffer and response, 287 Earliest-Deadline-First scheduling algorithm, 339
message queue, 284, 287, 288 encapsulation, 35
constraint, 27 entity
context modeling, 69 object, 128, 136
context switching, 39, 46 class, 69
context switching overhead, 327 event, 5, 19, 101, 151
continuous data, 236 external, 262
control internal, 263
object, 127, 137 timer, 262
control clustering, 254, 271 event sequence analysis, 315, 324
control object event sequence task, 354
state dependent, 176 event synchronization, 262
control subsystem, 176 extend
coordinator use case relationship, 94
object, 128, 138 external entities, 70
coordinator subsystem, 177
coordinator task, 246 fault tolerant systems, 315
critical region, 40 feature, 301
critical section, 40, 43 alternative, 301
cyber-physical system, 3 common, 301
group, 301
data abstraction, 35 prerequisite, 301
object, 136 feature modeling
data abstraction class, 275 in software product lines, 301

© in this web service Cambridge University Press & Assessment www.cambridge.org


Cambridge University Press & Assessment
978-1-107-04109-7 — Real-Time Software Design for Embedded Systems
Hassan Gomaa
Index
More Information

Index 583

onite state machine, 100 Kernel pattern, 189, 536


functional requirements, 53 kernel system, 305

generalization/specialization, 37 Layers of Abstraction pattern, 186, 535


generalization/specialization hierarchy, 16, load balancing, 8
65 localized control, 7
generalized completion time theorem location transparency, 203
example of, 363
generalized real-time scheduling maintainability, 318
example of, 359 MARTE, xx, 11, 12, 28, 51
geographical location, 173 stereotype, 234
group message communication, 206 MASCOT design method, 57
guard condition, 103 Master/Slave pattern, 193, 537
memory-locking, 44
hardware/software boundary, 76 message, 151
speciocation, 76 message communication, 181
hardware/software boundary modeling, 53, 72, asynchronous, 182
73 bidirectional, 181
hazard, 316 synchronous, 182
Hierarchical Control pattern, 192, 534 unidirectional, 181
hierarchical decomposition, 113 message sequence description, 145
middleware, 8
I/O device model-based software engineering, 51
event driven, 236 model-based systems engineering, 51
hardware characteristics, 235 model-driven architecture, 12
interrupt-driven, 236 modioability, 319
passive, 236 monitor, 43, 278
I/O task condition synchronization, 279
demand driven, 240 mutual exclusion, 278
event driven, 236 Multicast communication, 207
periodic, 238 multicore systems, 7, 234
periodic timing considerations, 239 Multiple Client/Multiple Service pattern, 196,
sensor-based periodic, 238 538
idioms, 185 Multiple Client/Single Service pattern, 194,
implementation, 165 539
include multiple readers and writers, 225
relationship, 94 multiple views
use case relationship, 92 of system and software architecture, 59
incremental software construction, 55 multiplicity
incremental software integration, 56 of an association, 15
information hiding, 34, 35, 43, 172, multiprocessor systems, 7, 45, 339
319 global scheduling, 339
class, 35 partitioned scheduling, 339
inheritance, 16, 36, 65 multitasking
as taxonomy, 65 kernel, 45
classiocation mechanism, 65 mutual exclusion, 40, 42, 224
input class
passive, 268 nonfunctional requirements, 53, 88, 317
input object, 130
input/output (I/O) object, 15, 32
object, 130, 131 active, 20, 37
input/output subsystem, 178 concurrent, 20, 37
interaction diagram, 17, 144 passive, 37
descriptor form, 145 Object Access Pattern, 274
generic form, 145 object and class structuring, 128
instance form, 145 Object Management Group, 12, 578
use case based, 170 Object Modeling Technique, 58
interface, 24, 33, 35, 165, 213 object structuring, 54
abstract, 35 object-oriented analysis and design, 58
external, 35 Object-Oriented Design, 58
provided, 26 Octopus, 58
required, 26 OMG, 12
virtual, 35 operating system
Internet of Things, 9 kernel, 43
services, 44
Jackson System Development (JSD), 58 operation, 33

© in this web service Cambridge University Press & Assessment www.cambridge.org


Cambridge University Press & Assessment
978-1-107-04109-7 — Real-Time Software Design for Embedded Systems
Hassan Gomaa
Index
More Information

584 Index

output class real-time embedded systems


passive, 268 characteristics, 5
output object, 130, 131 Real-Time Object-Oriented Modeling (ROOM),
58
package diagram, 20 real-time operating system, 44
performance, 315 real-time scheduling, 315
requirements, 88 aperiodic tasks, 330
performance analysis, 315 periodic tasks, 325
example of tasks executing on multiprocessor Real-Time Scheduling
systems, 365 Advanced, 339
example using event sequence analysis, 346 real-time scheduling theory, 324, 325
example using real-time scheduling, 351 task synchronization, 331
example using real-time scheduling and event Real-Time Scheduling Theory
sequence analysis, 354 Generalized, 331
of software designs, 315 Real-Time Structured Analysis and Design,
Performance Analysis 58
Example Using Event Sequence Analysis, 337 real-time system, 3, 4
Using Event Sequence Analysis, 336 hard, 4
Using Real-Time Scheduling Theory and Event soft, 4
Sequence Analysis, 338 real-time systems, 315
Performance Analysis of Multiprocessor required interface, 214
Systems requirements modeling, 53
using Timing Diagrams, 340 resource monitor task, 240
with Event Sequence Analysis, 342 RFID, 9
with Mutual Exclusion, 342 run to completion semantics, 101
performance modeling, 315
performance parameters safety, 316
estimation and measurement, 343 requirements, 88
period, 6 safety critical system, 317
periodic task, 242 scalability, 313
platform transparency, 203 requirements, 88
platform-independent model, 13 scenario, 145
platform-specioc model, 13 scheduling algorithm
polling, 236 priority preemption, 45
port, 214 round-robin, 45
complex, 215 scope of control, 175
provided, 215 security, 317, 318
required, 215 security requirements, 88, 317
priority ceiling protocol, 331 semaphore, 40
priority inheritance, 44 sensor, 5
priority inversion, 331, 332 separation of concerns, 172
priority preemption task scheduling, 44 between tasks and nested classes, 267
process, 38, 39 task and class, 274
heavyweight, 39 sequence diagram, 17, 144
lightweight, 39 concurrent, 20
process control, 6 sequential clustering, 253
producer/consumer problem, 41 issues, 254
proole, 26, 28, 565 sequential software architecture, 164
provided interface, 214 server, 194
proxy service, 173, 181, 194
object, 127, 130, 133 object, 128, 141
proxy task service component, 224
event driven, 242 concurrent, 224, 226
pseudocode sequential, 224
periodic input task, 552 Service Discovery pattern, 205, 545
Publish/Subscribe pattern, 207 Service Registration pattern, 204, 546
publisher, 207 service subsystem, 180
simple component, 165, 212
quality of service, 164 smart device, 236
software application engineering, 298
rate monotonic algorithm, 325 software architectural patterns
rate monotonic priority, 332 documenting, 209
reactive systems, 7 software product lines, 309
real-time control, 6 software architecture, 47, 164
real-time embedded system, 3 deployment view, 169
distributed, 7 dynamic view, 168

© in this web service Cambridge University Press & Assessment www.cambridge.org


Cambridge University Press & Assessment
978-1-107-04109-7 — Real-Time Software Design for Embedded Systems
Hassan Gomaa
Index
More Information

Index 585

multiple views, 166 subsystem, 175


structural view, 166 task, 235
software context diagram, 174 Subscription/Notiocation pattern, 207, 226,
software context modeling, 53 547
Software Cost Reduction Method, 58 substate, 19, 113
software design method subsystem, 172
requirements for real-time embedded systems, synchronization
10 multiple readers and writers, 277
software evolution, 318 using mutual exclusion, 276
software maintenance, 318 synchronization with monitor
software modeling, 61 multiple readers & writers, 280
software product line, 297, 323 writer starvation, 282
context diagram, 304 synchronized methods, 278
engineering, 298 Synchronized Object Access pattern, 198, 263,
evolution approach, 305 548
software quality attributes, 4, 55, 313 synchronous message communication, 21
software reusability, 322 with reply, 21, 261
software system context diagram, 73, 74, without reply, 21, 261
134 Synchronous Message Communication with Reply
associations, 74 pattern, 183, 200, 549
spiral model, 57 Synchronous Message Communication without
state, 102 Reply pattern, 202, 550
composite, 113 SysML, xx, 12, 27, 51, 61, 67, 70
history, 116 system context diagram, 69, 70
state decomposition associations, 70
sequential, 113 system deployment modeling, 53, 77
state dependent control system modeling, 61
object, 128, 137 system quality attributes, 313
task, 245 system testing, 56
state machine, 101, 152 Systems Modeling Language (SysML), 11,
class, 269 12
developed from use case, 121
diagram, 19 tagged value, 27
nat, 113 task, 39, 233
hierarchical, 113 behavior speciocation, 264, 291
inheritance, 119 event sequencing logic, 264, 291
integration, 124 interface speciocation, 264
orthogonal, 117 multiple of same type, 248
state machine diagram, 100 non-time-critical computationally intensive,
state machines 249
cooperating, 118 periodic algorithm, 242
state transition, 101 sampling rate, 239
aggregation, 114 scheduling, 45
state transition diagram, 19, 100 states, 45
state transition table, 100 synchronization, 41, 44
statechart, 100 task architecture, 233
statechart diagram, 19 task clustering criteria, 250
statecharts, 58 task communication and synchronization, 258
static modeling, 54, 61 task interaction
concepts, 62 via information hiding object, 263
for software product lines, 303 task inversion, 256
stereotype, 26, 28, 70, 126 multiple-instance, 256
architectural, 166 task priority criteria, 248
concurrency, 234 task structuring criteria, 257
deonition, 66 internal, 242
MARTE, 166 TCP/IP protocol, 8, 186
reuse, 303 temporal clustering, 250, 270
role, 166, 234, 303 issues, 252
structural element, 61 testability, 320
structural modeling, xx, 52, 61 thread, 39
of the problem domain, 52 throwaway prototype, 53
of the system context, 52 time
structuring criteria blocked, 6
component, 221 elapsed, 6
I/O task, 235 execution, 6
object and class, 126 physical, 6

© in this web service Cambridge University Press & Assessment www.cambridge.org


Cambridge University Press & Assessment
978-1-107-04109-7 — Real-Time Software Design for Embedded Systems
Hassan Gomaa
Index
More Information

586 Index

time-critical task, 249 optional, 299


timer package, 98
object, 128, 130, 139 relationships, 92
timer event, 101 variation point, 300
timing constraints, 4, 6 use case diagram, 14
timing diagram, 29, 327, 336 use case map, 59
traceability, 321 use case modeling
requirements, 321 for software product lines, 299
transition use cases
from analysis to design, 170, 181 documentation of, 87
user interaction, 174
UML, xx, 12, 51 object, 127, 130, 133
UML tools, 30 user interaction subsystem, 177
Unioed Modeling Language (UML), 11, 12 user interaction task, 246
Unioed Software Development Process (USDP), Utilization Bound Theorem, 325
56 Generalized, 333
use case, 14, 79, 86, 299
alternative in software product line, 299 visibility, 16
alternative sequences, 86 private, 16
base, 92, 95 protected, 16
extension, 95 public, 16
extension point, 95 Voice over IP, 187
inclusion, 92
kernel, 299 white page brokering, 203
main sequence, 86 whole/part relationship, 64
model, 53, 79
modeling, 79 yellow page brokering, 203, 205

© in this web service Cambridge University Press & Assessment www.cambridge.org

You might also like