| Duration | 4 days. |
| Objective | To provide students with a good understanding of the principles and process for building Platform-Independent Models using UML, with a focus on aerospace applications. To allow students to perform large-scale integration of such models to form a coherent set of components to use as the basis for platform-specific design and implementation. This course is tool agnostic, and the techniques presented are applicable to all mainstream UML tools. |
| Audience | Developers, Testers |
| Prerequisites | None. |
| Benefits | The course content covers the key elements of UML as a platform-independent modelling formalism, and incorporates examples drawn from military aerospace systems to illustrate how the various models are constructed. Students will consolidate their understanding through a series of practical exercises, mostly based upon military aerospace systems. |
Full Synopsis
| The MDA Process | This gives an overall picture of the MDA process, and the primary artefacts produced during that process. |
| Static Models | This deals with all aspects of modelling classes, associations, generalisations and attributes, using a variety of exercises. The UML Class Diagram Is the primary notation used. Students gain confidence in static modelling using a variety of exercises, some based upon aerospace systems. |
| Domain Partitioning | This explains the principles of partitioning a system into separate domains, and provides proven techniques for finding and defining a coherent set of domains. The UML Package Diagram is introduced as a means of representing the domains and their dependencies. This section introduces a number of techniques that can be used to establish the scope of the domains making up a system in order that they may be developed concurrently by a number of teams. This includes the use of UML Sequence Diagrams. |
| Dynamic Models | This covers the process of defining operations and state charts for the classes in each domain. It emphasises the importance of establishing the overall interaction pattern using UML Collaboration Diagrams prior to construction of the individual state charts. |
| Use Case modelling | This section explains how use case analysis can be used to draw out and organise system requirements. An avionics system is used to illustrate the principles. This system is used as the basis for exercises in which students build all key UML artifacts. |
| Interaction modelling | This shows how sequence diagrams form the basis for linking use cases to a set of domains making up a system. It illustrates use of communication models to understand and document the interactions between classes within each domain. |
| Modelling Patterns | This provides illustrations of a number of common patterns used in platform independent models. In each case, students are given guidelines about when to apply the pattern, and the benefits. This section also shows how to apply patterns to optimise system performance in specific areas. Students practice applying these patterns during a number of exercises based upon aerospace systems, including:
|
| Domain Integration | This explains how to integrate a system of domains. It illustrates specification of domain interfaces (ports) and connectors. |
| MDA and Metamodels | This section explains the principles of metamodels and mappings that underpin the MDA approach. Various example metamodels, mostly drawn from aerospace applications, are used to illustrate the ways in which metamodelling can be applied to allow construction of systems that are easier to upgrade and port. This includes use of metamodels for code generation, and for generic modelling of military avionics systems. |
| Platform Specific Modelling | This section provides an overall strategy for transforming the platform independent UML models into a compliant platform-specific model. A number of patterns are introduced that address common design issues. A set of example allocation strategies, producing a range of systems from fully sequential to highly concurrent, are provided. |
| Summary | Brings together the key aspects of MDA and UML, and provides references to additional information. |
