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

Difference between revisions of "Eclipse UML Generators/Specification/CViewpoint/InitialProposal"

(Created page with "= Evolution Specification: Initial Proposal for C viewpoint = Current status is '''DRAFT''' == Preamble == This is a proposal to contribute graphical viewpoints for the UM...")
 
m (Preamble)
Line 11: Line 11:
 
'''Relevant tickets:'''  
 
'''Relevant tickets:'''  
  
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=440667 Bug 440668] - C viewpoint on UML models describing C applications
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=440668 Bug 440668] - C viewpoint on UML models describing C applications
  
 
== Introduction  ==
 
== Introduction  ==

Revision as of 10:29, 4 August 2014

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.

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.

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