This project is educational and aims at learning about software product lines. It's part of the lecture at the Technical University Braunschweig and uses Java and FeatureIDE.
It's meant to be a simple, local and private movie database, like IMDb but without the community nature.
The project is splitted in tasks, to try out different things. In short the tasks are:
- Create a feature model for your domain (with descriptions)
- Create 5 typical configurations
- Implement at least 2 features
- Use runtime variability (main-method arguments) to (de)activate these features
- Mark unused features as abstract
- Test your implementation using the 5 typical configurations and document errors in a text file
- Implement more features so there are at least 4 available
- Use the Antenna or Munge preprocessor to configure the application
- Mark unused features as abstract
- Test your implementation using the 5 typical configurations and document errors in a text file
- Implement more features so there are at least 6 available
- Change the application to be a configurable framework (with plugins)
- Avoid creating one interface per feature or one interface for all features
- You could avoid a plugin loader by commenting out the feature loading
- Implement more features so there are at least 8 available
- Change the application to use feature-oriented programming
- Use a FeatureIDE project (Composer: FeatureHouse or AHEAD)
- Test your implementation using the 5 typical configurations and document errors in a text file
- Implement more features so there are at least 10 available
- Change the application to use aspect-oriented programming
- Use a FeatureIDE project (Composer: AspectJ)
- Test your implementation using the 5 typical configurations and document errors in a text file