osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
39 stars 8 forks source link

independent feature group types and feature mapping #500

Closed reteprelief closed 7 years ago

reteprelief commented 10 years ago

We have introduced FGM to specify mapping of features in different FGT even if their structures are different, or for performing name mapping. FGT has its own Github entry. The SAVI POC example makes use of independently defined FGT where suppliers refine the features with their own types and properties. Functional Integration checking detects these mismatches. The example has been ported to AADL V2, but has some issues with instantiation. The example is in SVN/aadl-models under examples-models/savipoc

lwrage commented 8 years ago

This is addressed by a language update, see saeaadl/aadlv2.1#15

joeseibel commented 7 years ago

Content assist for the second element in a feature group chain does not work. This is because the context object passed to the scope provider is a Connection. With this context object, the scope provider cannot determine if the requested content assist is for the source or destination.

lwrage commented 7 years ago

Language Change

In AADL 2.2 connection source and/or destination can reach into feature groups to allow an arbitrary mapping between feature group elements in one component and features or feature group elements in another component. For details see sections 9.1 and 9.5 in the standard document.

Metamodel Change

The list of nested features in a connection source/destination is stored in a linked list of ConnectedElement objects. The reference to the next object in the list is called next and can be retrieved with method getNext().

If the connection source or destination is of the form f or c.f the model is the same as before: one connected element object is created with next == null.

If the source or destination is of the form c.f.f1. ... .fn the nested features f1 ... fn are stored in connected elements c1 ... cn. In each of these ci the context is null and connection end is a reference to fi.

This way valid AADL 2.1 models are parsed exactly the same way as before, and the graphical editor (and every other plugin) continue to work correctly with such models.

Instantiation Change

For feature and feature group connections only those connections are added to the the instance model that pass through all features listed in the source and destination of the connection between two subcomponents. Connections still follow the declared connections up/down the hierarchy, such that the nested features listed in the connection source/destination effectively act as a filter on the set of available connections.

/cc @philip-alldredge @backesj