UCM 1.2 RTF Avatar
  1. OMG Issue

UCM12 — clarify the UCM programming model and C++ mapping w.r.t. port element connection

  • Key: UCM12-4
  • Status: closed  
  • Source: THALES ( Thomas Vergnaud)
  • Summary:

    The programming model described in section 14.2 shows a set of methods to be implemented by programming language mappings. In particular, the signatures of connection methods are explicitly described (see figure 14.5 on page 77 for on_disconnect and on_connect). These methods are restrictive, as they force some "dynamic" programming: port elements are accessed from their names.
    Section 16.7 indicates the corresponding mapping to C++11, with the same method signatures.
    However, section 16.9 indicates there could actually be two approaches for a C++ mapping: one based on strongly typed methods, and the other based on generic methods. Section 16.7 describes the later one.

    Section 16.9 is so small it might be completely overlooked, while it states a very important point: both generic and strongly typed mappings are necessary. Generic API is nice as it provides flexibility when creating applications, but it prevents addressing real-time critical systems, as it manipulates strings (which cannot guarantee execution time). On the opposite, a strongly typed API completely suits cricital systems as it enables far more predictable execution time, but it also prevent flexibility in the implementation, and is almost always coupled with code generation.

    Section 16.9 shows that the UCM standard identified the two mapping approaches, and decided to allow both. But it is not explicit enough. The definition of the programming model in section 14.2 should explicitly address the two possibilities (generic and strongly typed). Section 16 should explicitly explain that UCM actually defines TWO standard mappings for C++11: one with generic API and the other with a strongly typed API.

  • Reported: UCM 1.1 — Mon, 25 Feb 2019 17:36 GMT
  • Disposition: Resolved — UCM 1.2
  • Disposition Summary:

    clarify the UCM programming model and C++ mapping w.r.t. port element connection

    Rename the “programming model” into “container model”, as the name was not approriate. Rewrite the container model section to focus on its structure and explain that most parts of the API depend on the programming language mappings.
    Be more explicit about the two C++ mapping strategies: generic and strongly typed.

  • Updated: Tue, 8 Oct 2019 17:58 GMT
  • Attachments: