Jorge Luis Rodas Silva
In recent years and with the growing technological advancement, companies no longer focus exclusively on producing a product for a customer (e.g. producing a website for the Decameron Hotel), but on producing for a domain (e.g. the production of websites for hotels); that is, producing products that can be easily adapted to the different changes and suit the individual tastes of customers.
In software engineering, this can be achieved through software product lines (SPL). An SPL is defined as a set of systems that share a common set of features that meet the demand of a specific market. An SPL tries to reduce the effort and cost of implementing and maintaining a set of similar software products over time. However, managing the variability in these systems is a difficult task, the greater the number of products, the more complex they are to be handled.
In order to represent the common and variable parts of an SPL, feature models (FMs) are used. Nowadays, there are models with thousands of features in practice and in the literature such as the one of the Linux Kernel having more than 6000 features and many cross-tree constraints. Manually manage such models is difficult and error-prone. To cope with this large amount of features and relationships, the Automated Analysis of Feature Models (AAFM) was proposed, which deals with the extraction of information from those models through the use of computer-assisted tools.
Over the years, feature models were extended by adding attributes that eased modeling aspects that could not be modeled solely with boolean features and allowed extending the benefits of automated analysis tools.
Moreover, variability modeling practitioners found that a single feature model alone is often not enough to model the variability of complex systems that are managed by different teams. Also, there is extra information associated to the implementation artifacts (implementation components) of each feature such as the number of downloads or ratings that can be used in the analysis process. We conjectured that this new information associated to the feature model could be exploited providing automated support for modeling and that new analysis operations could be leveraged in such scenarios.
In this context, in this thesis we address two problems: The organization of feature models in different layers for different purposes.- Variability information from an SPL may no longer be concentrated on a single feature model but on several. For example, decoupling an Android application variability from the ecosystem variability. This, in turn, causes these models to relate to each other, making modeling itself a challenge, specifically when defining the constraints that could be added to the models and the management of the information associated with them. Understanding which attribute values can be chosen and which analysis operations can be executed in those models is a challenge to be solved.
The leverage of information associated to the features.- In a feature model, we can find a series of features that can have associated information that could be exploited to take a series of variability management decisions. The problem arises when each feature can be implemented by one or several components that contain associated information. In this case, taking advantage of information from the implementation components to select the right one to implement a feature becomes a challenge during the product configuration.
To address the problems described above, we propose two solutions: MAYA: A proposal designed to model several layers (top and bottom layer) in which we can assign to each of the models a series of attributes and establish relationships between them. To this end, we offer mechanisms to model these relationships and the introduction of new analysis operations that take into account the information from the two models. For example, if a bluetooth feature is activated on a mobile phone, which would be the API that should be used to support that function.
RESDEC: A proposal designed to use of information associated with the implementation components in the feature models; that is, exploit the information generated around the components (e.g. number of errors, number of downloads, ratings, etc.) to implement features in the configuration of a product. To this end, we introduce a set of automated analysis operations that relying on recommender systems helps to select the best implementation component alternative that could be used to implement a certain feature. For example, if we are designing a sales website, which components might be the best option to implement the shopping cart feature.
Our solutions were validated in different environments. MAYA was used it in an industrial context for mobile applications with Android and RESDEC was used to select implementation components in a virtual store using real information extracted from WordPress. All our implementations are available and are tools prototypes that we have used in the validations presented in this document.
The information generated around feature models leads to a series of problems related to their management, which opens up new SPL research challenges. In this thesis, we have solved two of them; however, there is still more work to be done in relation to what information generated around the models can be taken, what modeling strategies should be considered, how many layers should be handled and how they can be arranged in each case, or what technique should be used to assist the configuration of products using additional information are some of them to just mention a few.
© 2008-2024 Fundación Dialnet · Todos los derechos reservados