Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Eclipse UML Generators/Specification/CViewpoint/InitialProposal

Evolution Specification: Initial Proposal for C viewpoint

Current status is DRAFT

Preamble

This is a proposal to contribute graphical viewpoints for the UML design of C applications, based on Sirius technology.


Relevant tickets:

  • Bug 440668 - C viewpoint on UML models describing C applications

Introduction

UML is a good standard to model "the whole world" but the concepts may not fit some C developers who have to model systems very close to non oriented object code. Indeed, the notion of UML Class could be destabilizing for example.

So, the idea is to propose some views (representations on UML models) to design different aspects of a system developed in C code:

  • a view to see the general file architecture of the system (Files architecture).
  • a view to see the definitions or declarations of functions or data in a file (File content).

Detailed Specification

Views Specification

Files architecture

On each UML Package, give the ability to create a new Diagram.

In this Diagram:

  • Display each non empty UML Package, in the UML Package, as a box (leaf folder).
    • In this box (leaf folder), display each UML Type (non UML Behavior) as
      • a C file if the UML Type is a UML Class.
      • a H file if the UML Type is a UML Interface.
      • a structure if the UML Type is a UML DataType.
      • a primitive type if the UML Type is a kind of UML DataType.
  • Display each UML Usage as an edge (include) between the files.
Files architecture view

File content

On each UML Class or UML Interface, give the ability to create a new Diagram.

In this Diagram:

  • Display each function (UML Operation) or data (UML DataType) definitions.
  • Only for the C files (UML Class), display each function (UML FunctionBehavior) or data (UML Property) declarations in addition.
H file content view
C file content view

Backward Compatibility and Migration Paths

Metamodel Changes

This evolution does not change any meta-models.

API Changes

This evolution does not change any API.

User Interface Changes

Read the Sirius User Manual to learn how to handle these interfaces.

Specifically, have a look on the use of Modeling Projects and Representations concepts and the handle of the Diagram Editors.

Documentation Changes

A new user manual should be made.

Tests and Non-regression strategy

This part of the document should describe the strategy to use to correctly test the evolution and guarantee the non-regression.

Implementation choices and tradeoffs

Any important tradeoff or choice made during the implementation should be referenced here with pros/cons leading to the final decision.

Back to the top