4 de Diciembre de 2019

  • Autor: Rodas Silva, Jorge Luis.
  • Titulo: “On the selection and analysis of software product line implementation components using intelligent techniques”
  • Departamento: Lenguajes y Sistemas Informáticos.
  • Teseo: https://www.educacion.gob.es/teseo/mostrarRef.do?ref=1822182
  • Directores: David Benavides Cuevas y José Ángel Galindo Duarte.
  • Sinopsis:

    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 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.