2008 Aug 06 at 13:30
EIT 3145
Steven She, graduate student, David R. Cheriton School of Comp. Sci., Univ. Waterloo
Software systems have grown larger and more complex in recent years. Generative software development strives to automate software development from a systems family by generating implementations using domain-specific languages. In current practice, such languages are built using a top-down approach. In addition, keeping the language specifications consistent with its usage is a difficult and manual task.
An algorithm for reverse-engineering a probabilistic feature model from a sample set of configurations is presented in this thesis. The expressions needed to construct a feature model are discovered by mining for so called association rules. The mined feature model consists of two components: a hierarchy of features that represent feature dependencies and alternative choices, in addition to a set of soft constraints that describe likely defaults or patterns exhibited in the sample set. Consequently, the mined model represents a language that describes the dependencies between features and its exhibited variability in a given sample set.
The mining algorithm is evaluated on a set of Java Applets to retrieve a model representing its framework usage. The retrieved feature model is further applied towards the development of framework-specific modeling languages (FSMLs), which are domain-specific languages that model framework-provided concepts and their rules for development.