Description
Description
This course provides an in-depth exploration of UML (Unified Modeling Language) for embedded and real-time systems. Participants will learn how to apply UML and its real-time extensions across analysis, design, and coding phases for embedded system development.
Trainees will develop a model for a realistic real-time embedded system based on its requirement specification using Papyrus (an Eclipse-based UML tool) or, upon request, Enterprise Architect – Professional Edition.
Training Objectives
- Understand the unique mechanisms of embedded and real-time systems
- Learn how to use UML with real-time extensions for system analysis
- design
- and implementation
- Develop practical UML models for embedded systems throughout the course
Course Outline
- 1. Introduction to Real-Time Systems<br />
- Real-time concepts and constraints<
- Object-oriented vs. structured programming<
- Benefits of the object-oriented approach<
- 2. Object-Oriented Programming & UML<br />
- History and evolution of UML<
- Standard UML diagrams<
- The object-oriented development lifecycle<
- 3. Real-Time System Development with UML<br />
- UML constraints for real-time applications<
- Customizing UML with new diagrams and stereotypes<
- UML-RT development cycle<
- 4. UML Modeling Language<br />
- 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<br />
- 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)<br />
- Overview and key concepts<
- Time management in MARTE<
- 7. System Specification & Modeling<br />
- Static Modeling<br />
- Defining system context and non-functional constraints<
- Use case descriptions<
- High-level class modeling<
- Dynamic Modeling<br />
- Scenario-based use case refinement<
- Incorporating time aspects in sequence diagrams<
- System behavior and state-transition modeling<
- Interface object modeling<
- 8. System Design<br />
- 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<br />
- Software architecture patterns<
- Identifying and allocating tasks<
- Inter-process communication and synchronization<
- Creating software architecture diagrams<
- 10. System Architecture Design<br />
- Hardware partitioning (CPUs, boards, enclosures)<
- Optimizing architecture decisions<
- Defining internal system interfaces (Buses, links, protocols)<
- Modeling hardware architecture with UML<
- 11. Task Execution Environment<br />
- Choosing an execution framework<
- Real-time mechanisms based on system architecture<
- 12. Detailed Design & Coding<br />
- Preparing for Implementation<br />
- Refining the UML model: methods, attributes, inheritance<
- Optimizing class structures (abstract classes, templates, associations)<
- Incremental Coding & Testing<br />
- Implementation of storage objects<
- UML transformations to code:<
- UML → C<
- UML → C++<
- UML → Java<
- Iterative development and testing<
- Final system delivery




