PlatformKit Eclipse Plugin
The PlatformKit Eclipse Plugin provides assistance in developing Software Product Lines using explicit platform dependency management. One can define platform constraints for each component or feature in the SPL using OWL-DL ontologies. See Modelling Platform Dependencies for details on how to do this.
A Domain-Specific Language, defined using EMF, is used for product configuration. The meta-model for this DSL can be annotated with platform constraints, such that each language element (corresponds to component/feature) can have a number of platform constraints. The Instant Messenger case study provides example meta-models that are already annotated with platform constraints.
PlatformKit uses an internal model of a Constraint Space, Constraint Sets and Constraints (see Fig.1: Platformkit Model to know what platform constraints it needs to group together and which pre-ordering to use. There are two usage scenarios for Platformkit Models: one can choose to…
- …add all meta-classes of a product line meta-model as constraint sets. This allows for checking which components/features are valid for a concrete platform and which are most- or least-specific regarding platform in general. This scenario is discussed in Setting up a Platform-Aware Configuration Language.
- …add a number of concrete product configurations as constraint sets. This allows for validating a product configuration against a concrete platform and checking which product configurations are most- or least-specific regarding platform in general. This scenario is discussed in Platform-Driven Deployment.
PlatformKit does pre-classification of the platform constraint ontologies using a DL reasoner (directly or through DIG). All other operations (validation, determining most-/least-specific) use the pre-classified ontology.
A Platformkit Model that reflects the meta-classes of a product line meta-model can be used during product configuration. In the product configuration editor, one can “profile” the editor to only show the configuration choices that are valid for a given platform. In addition, the PlatformKit profiler can use the pre-determined order of the Platformkit Model, such that the choices show up most-specific-first of least-specific-first. Finally, the product configuration model can be validated: this includes the standard check against the product line meta-model as well as a check against the chosen concrete platform. This feature is useful when profiling existing product configuration models against a new platform.
When the product configuration models have been made, a new Platformkit Model can be created that includes all product configurations. Each Constraint Set in this new model now corresponds with a single product configuration model. The Constraints inside each Constraint Set are the accumulated platform constraints that apply for the whole product configuration. This Platformkit Model and its pre-classified ontology can be put on the web for use with the PlatformKit Servlet.
Please report any bugs you find in the PlatformKit bugzilla.
