Transposer

Objectives

This project defines a generic and agnostic rule application tool. It is designed to be able to discover, infer and schedule application of provided rules. It can do model transformation, when applying transformation rules, other purposes may be impact analysis or model validation. Mostly, Transposer is useful where the application is a set of tasks to be done.

For each category of tasks, you will need to defined a 'rule' that will handle the task:

Define tasks dependencies (or 'premices')

image

And Transposer will find a way to perform all tasks according to dependencies

In the above sample, Task T6 will be the first to be performed (no dependency to others tasks), then after, T10, T4, ... after ? Transposer will find a way to execute the tasks.

Cycle management

When tasks have cycle dependencies, it will determine an order to be performed first.

image

There is 2 mechanisms for cycle resolution, Critical dependencies vs dependencies, as some dependencies can be considered as "more critical" than others, and Complete and Incomplete rules

Critical dependencies vs dependencies

image

Complete and Incomplete rules

image

The triggered order of tasks can be order can be

Interfaces

Transposer provides some Services allowing to call/manipulate it.

TransposerLauncher

This class allows launching programmatically a complete transposer's process.

Provided by bundle: org.polarsys.kitalpha.transposer.core

File name: org.polarsys.kitalpha.transposer.api.TransposerLauncher.java

TransposerConfiguration

This class define cadence activities used for each Transposer Workflow Elements.

Provided by bundle: org.polrsys.kitalpha.transposer.core

File name: org.polarsys.kitalpha.transposer.api.TransposerConfiguration.java

Extensibility

Transposer is an Eclipse plug-in that defined one extension point:

TransposerWorkflow

Transposer uses Cadence to manage external activities. Four workflow elements are declared:

Transposer Core declares the workflows and asks Cadence to run user-enabled external activities: image

ITransposerWorkflow

This interface provides all Cadence IDs for each Workflow Elements and theirs parameters.

Provided by bundle: org.polarsys.kitalpha.transposer.core

File name: org.polarsys.kitalpha.transposer.api.ITransposerWorkflow.java

Customising The The Transposer Behaviour

Transposer provides main interfaces allowing to contribute / redefine the behaviour of Transposer.

ITransposer

This interface allows contributing a new Transposer Process using the Transposer Architecture.

Provided by bundle: org.polarsys.kitlpha.transposer.core

File name: org.polarsys.kitalpha.transposer.api.ITransposer.java

IScheduler

This interface defines objects allowing to de schedule rule application thanks to the dependency graph.

Provided by bundle: org.polarsys.kitalpha.transposer.scheduler

File name: org.polarsys.kitalpha.transposer.scheduler.api.IScheduler.java

IRuleHandler

This interface defines objects are responsible for rule discovery and rule inference.

Provided by bundle: org.polarsys.kitalpha.transposer.rules.handler

File name: org.polarsys.kitalpha.transposer.rules.handler.api.IRuleHandler.java

ITransposerTask

This interface defines Transposer tasks objects.

Provided by bundle: org.polarsys.kitalpha.transposer.scheduler

File name: org.polarsys.kitalpha.transposer.scheduler.api.ITransposerTask.java

Contributing a Set Of Rules to Transposer

Provided by bundle: org.polarsys.kitalpha.transposer.core

Extension point name: org.polarsys.kitalpha.transposer.rules.handler.mapping.

Contributing a set of rules is done through the following extension (in the bundle plugin.xml file). You can show below the extension point description:

Extension Declaration Attributes:

Mapping Declaration Attributes:

MappingPackage Declaration Attributes:

MappingElement Declaration Attributes:

DefaultMappingPossibility or MappingPossibility Declaration Attributes:

Context May declare a local IContext that will complete the current one when this rule is executed. This IContext will "help" the rule do the job (cache queries results ...).

APIs

IRule Interface

This interface specifies the contract for a Rule (complete or incomplete).

Provided by bundle: org.polarsys.kitalpha.transposer.rules.handler

File name: org.polarsys.kitalpha.transposer.rules.handler.rules.api.IRule.java

IDomainHelper Interface

Provided by bundle: org.polarsys.kitalpha.transposer.rules.handler

File name: org.polarsys.kitalpha.transposer.rules.handler.rules.api.IDomainhelper.java

Presentation

Additional documentation can be found on the presentation.