SPLevo/Case Studies/ArgoUML-SPL

Aus SDQ-Wiki


ArgoUML-SPL a software product line version of the open source ArgoUML modeling tool. http://argouml-spl.tigris.org/
Linus Tolke and the rest of the ArgoUML-SPL team have identified several optional features of ArgoUML and marked with JavaPP preprocessor markers in the source code.

The SPLevo case study facilitates this adapted code to derive several variants with different sets of features present in the generated code. Those variants are then investigated with the SPLevo tooling to identify and analyze the variation points.

Variant Generator

As part of the case study an Eclipse project is provided to generate the ArgoUML variants to analyze.

This eclipse project contains dependencies and scripts required to generate directly executable variants:

This file is an ANT script configuring and invoking the JavaPP pre-processor tool and ANT task. It can be used to derive different variants and produce new Eclipse Java projects containing the configured variant.
An important characteristic of the generator is, that it produced single, self-contained Eclipse projects. The original ArgoUML - and ArgoUML-SPL - code is spread over multiple projects. The variant produced by the generator produces only one self-contained project to simplify having multiple variants within one Eclipse workspace.

The ANT script contains general targets and macors for generating and cleaning up variants.
To generate or clean up a specific variant, variant-specific targets exists only configuring and executing the general one.

The following ANT target generates a variant with the use case feature enabled.

  • The property "jpp-features" defines which feature to generate
  • The property "project.name" is used for the generated eclipse project
  • generate-variant-code executes the ANT macro to generate the variant

 <target name="generate-usecase-variant">
   <property name="project.name" value="argouml-usecase-variant" />
   <property name="jpp-features" value="USECASEDIAGRAM=on" />
   <prepare-eclipse-project project.name="${project.name}" />
   <generate-variant-code project.name="${project.name}" />

The following ANT target executes the ANT macro to clean up a variant and the property project.name configures which variant to clean up.

 <target name="clean-usecase-variant">
   <clean-variant-folder project.name="argouml-usecase-variant" />

To generate different variant, simply add another target.

For convenience, generate-all-variants and clean-all-variants targets exist, but one should be careful about the memory consumption to execute them.


Team Project Set to develop the generator:

You should configure the following svn repositories before importing the TeamProjectSet:


SVN Repository: https://svnserver.informatik.kit.edu/i43/svn/code/SPLevo/CaseStudies/ArgoUML-SPL (user: anonymous, password: anonymous)


Main project contact:
Benjamin Klatt
FZI Forschungszentrum Informatik (Karlsruhe)
E-Mail [1]