1. Introduction to Real-Time Systems
Real-time concepts and constraints
Object-oriented vs. structured programming
Benefits of the object-oriented approach
2. Object-Oriented Programming & UML
History and evolution of UML
Standard UML diagrams
The object-oriented development lifecycle
3. Real-Time System Development with UML
UML constraints for real-time applications
Customizing UML with new diagrams and stereotypes
UML-RT development cycle
4. UML Modeling Language
Static Modeling: Use cases, class diagrams
Dynamic Modeling:
Sequence diagrams
Collaboration diagrams
State-transition diagrams
UML Extensions:
Accessing the UML meta-model
Creating stereotypes and profiles
5. UML Extensions for Real-Time Systems
System Context Modeling
Behavior Modeling: State diagrams
Timing Analysis: Extended sequence diagrams, timing diagrams
Parallelism Modeling: Software and hardware architecture diagrams
6. The MARTE Profile (Modeling and Analysis of Real-Time and Embedded Systems)
Overview and key concepts
Time management in MARTE
7. System Specification & Modeling
Static Modeling
Defining system context and non-functional constraints
Use case descriptions
High-level class modeling
Dynamic Modeling
Scenario-based use case refinement
Incorporating time aspects in sequence diagrams
System behavior and state-transition modeling
Interface object modeling
8. System Design
Organizing the system using subsystems and packages
Refining class behavior and sequence diagrams
Integration of third-party libraries (e.g., GUI)
Handling I/O interfaces, data persistence, and storage
9. Multi-Process and Multi-Task Systems
Software architecture patterns
Identifying and allocating tasks
Inter-process communication and synchronization
Creating software architecture diagrams
10. System Architecture Design
Hardware partitioning (CPUs, boards, enclosures)
Optimizing architecture decisions
Defining internal system interfaces (Buses, links, protocols)
Modeling hardware architecture with UML
11. Task Execution Environment
Choosing an execution framework
Real-time mechanisms based on system architecture
12. Detailed Design & Coding
Preparing for Implementation
Refining the UML model: methods, attributes, inheritance
Optimizing class structures (abstract classes, templates, associations)
Incremental Coding & Testing
Implementation of storage objects
UML transformations to code:
UML → C
UML → C++
UML → Java
Iterative development and testing
Final system delivery