Algebraic component models in UML

 

rCOS Component Model

 

Algebraic component models in UML

The UML is the de-facto standard in modelling software system. It also contains modelling and diagramming facilities for component-based modelling. Features include interface modelling and (hierarchical) component composition, together with their respective diagrammatical representations.

While the use of (UML) class diagrams is widely standardised, component diagrams are mostly used informally. This seems to be in line with the observation that most "component-based technologies" still need to be mapped onto the mainstream object-oriented languages Java and C++, and thus components only play a secondary role.

On the theoretical side, component models such as rCOS describe components in an algebraic manner. Hierarchical components are specified through component operators, e.g. by plugging, parallel composition, hiding, or delegation. In such a specification language, intermediate component specifications are also reused as part of more complex components, similarly to super/sub-classes. Required/provided interfaces of components are automatically calculated as the result of composition.

Here is a small example of such a description of a two-place buffer composed from two one-place buffers:

component Buffer { … }
component Connection { … }
Buff1 = Buffer[get1/get]            // renaming
Buff2 = Buffer[put2/put]
BB = Connection ≪ (Buff1 ⊕ Buff2)  // plugging & interleaving

The first two components are atomic, and specified with their respective required/provided interfaces. The other three components Buff1, Buff2, and the resulting BB, are specified through the operators in terms of existing components.

A big problem is that these algebraic specifications of components have no direct representation in UML--while the hierarchical view can easily represent the hierarchical composition of components, declarative information on how (through which operations) a particular component was derived. For example, as a result of composition, interfaces of inner components should be automatically delegated to the resulting (outer) component.

Likewise, editing activities, e.g. on the resulting component diagram, are more difficult to support in a tool: we must distinguish editable interfaces in the atomic components, and read-only occurrences of interfaces (and their connections) that have been obtained as the result of composition.

The first main interest in the thesis would be to investigate based on the existing rCOS Modeler how UML-profiles can be used to support component operators, instead of just manually modelling the results. Furthermore, based on the existing syntax and parser for the textual representation of components like above, the parser should create UML component models using the above profile and computing derived information. In a last step, the tool could be extended to allow users graphical specification using the operators, and enforce restrictions e.g. on read-only interfaces/components.

A prospective student should be interested in:

  • modelling using UML
  • object-oriented analysis
  • Java programming (the existing tool infrastructure is based on open-source Java software using the Eclipse Modeling Framework)

Interest in graphical programming (diagramming) is optional!

Emneord: UML, components, software engineering, formal methods
Publisert 12. mars 2015 11:07 - Sist endret 13. apr. 2018 10:27

Veileder(e)

Omfang (studiepoeng)

60