This course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.
A detailed design course which focuses on designing a Real-Time Embedded System (RTES) using UML 2.0 notation to document the proposed design. This makes it significantly different from most UML courses which focus on UML notation above design principles.
By using comprehensive real-world examples it also identifies the areas where UML 2.0 improves on UML 1.5, but also still identifies its weaknesses (areas such as concurrency, multi-processing and distributed systems). The course is backed up by a comprehensive ‘real-world’ CASE study demonstrating how to apply UML 2.0 to a RTES.
This course has been developed by the leading author Dr. J. E. Cooling.
· To provide an understanding of the design principles of modern real-time software developments methods.
· To show how to develop real-time software in a rigorous and systematic manner.
· To enable attendees to develop their own practical design skills.
· To teach the UML 2.0 design notation for use on RTES.
Introduction to real-time systems design
- An overview of real-time systems
- Incremental design processes
Software machines - fundamentals
- Modularization principles and practices
- Diagramming techniques in program design - the UML activity diagram
Overview of OO design concepts
- Designing systems as sets of collaborating objects
- Classes, objects and their features
- Key design and build issues: software templates, encapsulation, interfacing, information hiding, inheritance and aggregation
Basic class and object modelling
- Design templates, encapsulation, interfacing and information hiding
- Class and object generalisation and specialisation: inheritance
Modelling dynamic behaviour
- State diagrams to define system and object dynamics
- The concepts, syntax and semantics of UML state machine diagrams
Developing the ideal object model
- Object relationships, communication and control in an ideal environment
- Scenarios, sequence diagrams and communication diagrams
- Rresponsibility-based design techniques
- Interfacing to the real-world
Developing the practical sequential (procedural) object model
- Controlling the collective behaviour of objects in sequential code: the coordinator object
- Specifying algorithmic (processing) operations using activity diagrams
Developing the specification model for small systems
- The role of the specification model
- Concurrent and non-concurrent structures - active and passive objects
- Specifying object structures - flat object structure
Concurrent systems and task-based design
- Problems with abstract software design
- Fundamentals of multitasking design
Developing the implementation (tasking) model for small systems
- Mapping the specification model to the tasking model.
Plus more
Real-Time Software Design with UML 2.0