SPLevo/Technology Cartridges
New URL: https://github.com/kopl/SPLevo/wiki/Technology-Cartridges
Reason: SPLevo has been published on GitHub.
Abstract
To support different technologies, SPLevo provides a concept of technology cartridges. A Technology Cartridge encapsulates all technology specific aspects such as extraction, difference analysis or variation point model initialization. The complete SPLevo infrastructure, data models and processing is technology independent and provides extension points whenever technology specific information is needed.
Available Cartridges
- JaMoPP Cartridge
MoDisco Java Cartridge(Discontinued)
Technology Cartridge Structure
SPLevo is capable to handle different technologies such as programming languages, frameworks, etc. This is realized by a concept named Technology Cartridges. The overall SPLevo tooling is based on generic "Software Elements" and the main processing and analysis is done based on these conceptual elements. All technology specific processing and information handling is encapsulated within a technology specific Cartridge. For example, which language constructs the Java programming language is made of, or how to differentiate software elements within the Spring framework.
Cartridge Development
A technology cartridge is made of a set of extension implementations of Eclipse extension points specified by the SPLevo main tooling. These implementations can be realized by one more Eclipse plugins. It is recommended to use separate plugins to make use of a more structured approach because even technology cartridges can become of reasonable size. The set of Technology Cartridges plugins should be combined in a feature to simplify their publication and installation.
Extension Points
Aligned with the overall SPLevo process, the extension points are build on top of each other. The most reasonable one is the extractor, capable to parse the technology's specific implementation. Next, a Difference Analysis logic for the technology's specific software elements is required. A Variation Point Model extension must be specified and an according VPM Builder to derive a variation point model from the technology specific diff model.
Variation Point Analyzer must implement their logic as technology independent as possible. However, some software element processings must be done in a technology specific manner and for this, encapsulated by the Technology Cartridges. For this, the Variation Point Model Analyzer provide own extension points a Technology Cartridge can contribute to.
How to implement a technology cartridge's extensions for the various extension points is documented with the individual extension point.