Kennedy Carter
Go
  |  Contact us
SERVICES - Training :: Training Courses :: Course Synposes :: Advanced MDA with xUML

Duration 3 days.
Objective To provide students with a broad and deep understanding of the principles and process for building Platform-Independent Models using Executable UML. To allow students to perform large-scale integration of such models to form a coherent set of components suitable for translation onto specialised platform-specific implementations.
Audience Modelers, System Designers, Implementers, Testers.
Prerequisites A basic understanding of Executable UML is required. Ideally students will have attended the 5 day class entitled “Implementing the OMG’s Model Driven Architecture with Executable UML”, but a working knowledge of UML will suffice.
Benefits The course content is informed by the practical experiences of the Kennedy Carter consultants, and embodies their understanding of the risks involved in large-scale, distributed projects, and the ways in which those risks can be mitigated. The course is completely up to date, and the students will spend a large amount of time enhancing their modeling skills by conducting a series of practical exercises.

 

Full Synopsis

MDA Process Overview This briefly revisits the key aspects of MDA-based development, namely domain partitioning, executable modeling, bridging and code generation, to provide the context for the rest of the course.
The xUML Formalism This provides a succinct summary of all aspects of the xUML formalism, and outlines the rules governing the organization and execution of xUML models.
Patterns in xUML This provides illustrations of the most common patterns used in xUML PIMs. In each case, students are given guidelines about when to apply the pattern, and the benefits it will deliver.
Advanced xUML This addresses a number of key areas of the xUML formalism, specifically:
  1. Packages, which explains how a domain can be partitioned into two or more packages, and how they are connected together. Guidelines regarding when and when not to use packages are provided.

  2. Association Classes, which uses examples to explain the circumstances in which they should be used.

  3. Polymorphic Signals, which explains in detail how polymorphic signals propagate down a superclass/subclass hierarchy, and the choices available to the modeler when processing polymorphic signals.

  4. Creation Signals, which describes what they are, and why we recommend they are not used. Naturally, the alternative recommended pattern for creating an object in a specified state is explained and illustrated.

  5. Hold Effects, which explains what they are, when they might be used and illustrating a standard modeling pattern for achieving the same goal without using Hold Effects.

  6. Datatypes, which illustrates the various forms of user-defined types available to the modeler, and provides guidance on when and how to use each one, including the benefits and drawbacks of enumeration types.

  7. Structures and Set Manipulation, which illustrates the ASL constructs used for assembling and manipulating sets of structures and sets of instance handles.
Execution Rules of xUML This explains the levels of concurrency provided by objects with state machines in platform-independent xUML models, and how signals passed between the state machines are processed. It then explains how to achieve mapping to different levels of concurrency in the platform-specific implementation.
Advanced Bridging This covers all aspects of defining bridge mappings between domains, including:
  1. Non Counterpart Bridging, based on an extended example that shows students a complete end-to-end strategy for specifying all elements of a non-counterpart bridge. This includes a discussion of the role of terminator operations, domain operations and class operations in bridging.

  2. Association Counterparting, which explains how and when to use counterpart associations and association terminators. It will include executable end-to-end examples, illustrating scenario-based and run-time based creation of counterpart associations, and their subsequent navigation and deletion.

  3. Generalisation Counterparting, which explains the principles behind generic-specific counterparting, with a complete example of their use.

  4. Untyped Instance Handle Counterparting, which explains how and when to take advantage of untyped instance handles, and the risks associated with this non type-safe technique. An end-to-end example will be use to illustrate the application of untyped instance handles.

  5. Deferred Types, which shows how modelers can specify manipulation of data types in a PIM, while deferring the platform-specific implementation of those types. The concepts will be illustrated with TA-1 and TA-5 specific examples.
Code Generation This explains the key aspects of the TA-5 and TA-5M code generators from the modelers’ viewpoint. It will explain how to minimise the re-translation overhead when changing the PIM, and provide examples of xUML to C++ mappings to help modelers understand how they can relate the generated C++ back to the source xUML when using a C++ debugger.
Case Study The students’ understanding will be reinforced by use of a case study that allows them incrementally to build a small but executable system of domains, which embodies all the key aspects covered in the course. Most of the above sections will incorporate construction of a related part of the case study system.