An Overview of UML for Real-Time Embedded Development
This one-day course introduces the Unified Modelling Language (UML) but with a special consideration for its use in the development of real-time embedded systems. This course provides delegates with a history of UML; introduces all the UML diagrams; guides delegates through a typical process for applying UML and then addresses the current issues of using UML for real-time embedded development.
Course Outline
History and Background:
- Principles and benefits of OO
- Background to UML
- OMG-UML specification
- Overview of UML diagrams
Process and Diagrams:
- Core features of real-time embedded systems
- Models of Software Development
- An Incremental and iterative development process for UML
- The importance of diagrams
Classes, Objects and Code:
- Objects and their features
- The class and how it relates to an object
- Software templates
- Encapsulation
- Interfacing
- Information hiding
- The three basic models of an OO design
- UML class and object notation
- Association and multiplicity
Inheritance and Aggregation:
- Concept of aggregation
- UML notation for aggregation
- Composite aggregation
- How Inheritance simplifies design change
- Classes and sub-classes
- Inheritance notation
- Benefits of inheritance
- Interface classes
- Polymorphism
Interaction Diagrams:
- Collaborating objects
- The sequence diagram
- The collaboration diagram
- Active and passive objects
- Active and passive object communication
State and Activity:
- Concept of states
- Introduction to the state diagram
- Relating the state diagram to the other UML diagrams
- The activity diagram
Use Cases:
- Basic use case notation
- Identifying use cases
- Use case text descriptions
- Scenarios
- The extend relationship
- The include relationship
- The CRC technique
- Object stereotypes
- How use cases relate to interaction diagrams and classes
Issues:
- Problems of applying UML to real-time embedded systems
- Semantic problems
- Modelling concurrency and distribution
- Notation issues
- Missing diagrams
- Process issue
- Case-tool vendors
- Further reading
Course Overview
This is a one-day course introducing UML for use in the design of real-time embedded systems. This is also a good introduction to the concepts of object orientation (OO), such as inheritance and polymorphism. The course is intended only to be an overview - attendees will not be equipped to start using UML after attending this course.
Course Objectives:
- Provides an overview of UML, including its history
- Introduces each diagram in UML
- Familiarises attendees with basic OO concepts
- Introduces an example process in which to apply UML
- Highlights current weaknesses when applying UML to real-time embedded systems
- Highlights the current UML case-tools suitable for use in real-time embedded development
Delegates Will Learn:
- How UML has developed
- The concepts of an iterative and incremental process for applying UML
- A conceptual understanding of OO features (e.g. inheritance and polymorphism)
- A basic understanding of the UML diagrams and their uses
- Where UML falls short for real-time embedded systems
- Which case-tools support UML for real-time development
Pre-requisites:
Knowledge/experience of the development of real-time embedded systems
Who Should Attend:
The course is suitable for anyone who simply requires an overview of UML e.g. managers or engineers who are trying to decide if UML is the right way forward for them, or Field Application Engineers whose products are involved in UML in some way. It is also suitable for managers who just need to understand what their engineers or customers are doing rather than practically applying UML.
Duration:
- One day
Course Materials:
- Delegate handbook
Related courses:


