Study topics for 94.586 Object-Oriented Design of Real Time Systems... April 2001 The exam will be for one hour, and will have short questions ("what is") and slightly longer questions ("explain", or "describe", or "compare") related to understanding terminology and concepts. actor, or (in RoseRT) capsule protocol between actors hierarchical state machine, substate, action/activity inheritance among state machines (.....add events/states/transitions, retarget trans, change actions/activities, .......NOT change existing nesting or remove events/states/transitions) system global state (with multiple state machines) message, signal, synchronous or asynchronous interaction Use Case, sub-Use Case Use Case Map: path, start-point, end-point, responsibility, stub scenario what is architecture; examples of architecture patterns (client-server, shared memory, pipeline, combinations) server, tiered server, forwarding server static analysis global analysis, factors, issues, strategies in the work of Hofmeister et al conceptual, module and execution architecture in their work conceptual component, connector, port and role criteria for concurrency, and why (interface, thread of control, parallel, urgent, communications, exclusive in time, add/remove/replace, data management) criteria for modularity: cohesion (temporal, data, logical, functional...) and coupling (common, control, arguments) how to derive module architecture from conceptual architecture subsystem and layer, criteria for separation of layers (temporal scope, data scope, "uses" services) module vs process schedulability; completion time theorem rate-monotonic analysis, criterion utilization fault recovery mechanisms (logging, checkpoint and rollback) failure detection mechanisms (logging, heartbeat, predicate checking) kinds of fault tolerance (full masking, isolation (transaction aborts), recoverable, auto recovery, fail safe) exceptions: examples, handling mechanisms (in-line, separate process) software features for fault tolerance (predicate checks, handlers, layering, separate processes, replication of data and functions, voting, audit processes)