An Approach to manage variability in object-oriented applications with feature models

Bulut, Ender
In this thesis, an approach to manage variability in object-oriented applications by using a feature modeling language and a simple source code generation technique has been designed and developed. This approach provides developing configurable object oriented applications in a practical way. That is, an application developed with our approach takes just a configuration file including user selections in a pre-defined domain as input and then automatically configure and manage itself with respect to these selections. To build an application by using this approach, there are several steps that should be followed. First of all, the variability points in the domain are specified and designed by using feature model. After the feature model is designed, the code generator im- plemented for our approach produces automatically the semi-automatic source code templates containing interfaces, configurator classes and entity classes with attributes designed specially as data structures to be used to manage variability. Software developers who are experts in software architecture will be responsible for the next step. The developers manually develop the application with the generated source code tem- plates by using the data structures considering the commonality and variability of the domain and so the application can be provided to work for various feature combinations. In the final step, a developer or even a customer that can understand the feature diagram selects the desired features of the application according to the rules and constraints in the configurator of a feature modeling language like FeatureIDE and so that the variabilities in the domain can be reflected automatically and directly to this object-oriented application with the feature model. Moreover, the proposed approach is applied to an online shopping domain as a case study in order to demonstrate con- cretely the contribution of this work.