2,202 research outputs found

    Selection of Software Product Line Implementation Components Using Recommender Systems: An Application to Wordpress

    Get PDF
    In software products line (SPL), there may be features which can be implemented by different components, which means there are several implementations for the same feature. In this context, the selection of the best components set to implement a given configuration is a challenging task due to the high number of combinations and options which could be selected. In certain scenarios, it is possible to find information associated with the components which could help in this selection task, such as user ratings. In this paper, we introduce a component-based recommender system, called (REcommender System that suggests implementation Components from selecteD fEatures), which uses information associated with the implementation components to make recommendations in the domain of the SPL configuration. We also provide a RESDEC reference implementation that supports collaborative-based and content-based filtering algorithms to recommend (i.e., implementation components) regarding WordPress-based websites configuration. The empirical results, on a knowledge base with 680 plugins and 187 000 ratings by 116 000 users, show promising results. Concretely, this indicates that it is possible to guide the user throughout the implementation components selection with a margin of error smaller than 13% according to our evaluation.Ministerio de Economía y Competitividad RTI2018-101204-B-C22Ministerio de Economía y Competitividad TIN2014-55894-C2-1-RMinisterio de Economía y Competitividad TIN2017-88209-C2-2-RMinisterio de Economía, Industria y Competitividad MCIU-AEI TIN2017-90644-RED

    On the selection and analysis of software product line implementation components using intelligent techniques

    Get PDF
    En los últimos años y con el creciente avance tecnológico, las empresas ya no se centran exclusivamente en diseñar un producto para un cliente (por ejemplo, el diseño de un sitio web para el Hotel Decameron), sino en producir para un dominio (por ejemplo, el diseño de sitios web para hoteles); es decir, el diseño de un producto que pueda adaptarse fácilmente a las diferentes variaciones que puedan existir para un mismo producto y que se adapte a los gustos individuales de los clientes. En la ingeniería de software, esto puede lograrse a través de la gestión de líneas de productos de software (SPL). Una SPL se define como un conjunto de sistemas que comparten un conjunto común de características que satisfacen la demanda de un mercado específico. Una SPL intenta reducir el esfuerzo y el costo de implementar y mantener en el tiempo un conjunto de productos de software similares; sin embargo, manejar la variabilidad en estos sistemas es una tarea dif´ıcil, a mayor n´umero de productos m´as complejo se hace manejarlos. Los modelos de caracter´ısticas (FMs) se emplean para representar gr´aficamente las partes comunes y variables de una SPL. Dada la gran cantidad de caracter´ısticas que se pueden derivar de un modelo de caracter´ıstica (FM), resulta dif´ıcil de gestionarlos. Para hacer frente a estos problemas se ha propuesto el An´alisis Autom´atico de Modelos de Caracter´ısticas (AAFM) que mediante el uso de herramientas asistidas por ordenador, se ocupa de la extracci ´on de información de los modelos de características. No obstante, existen ciertos escenarios en los que la configuración de un producto se convierte en una actividad compleja dado el número de componentes que existen para implementar una determinada característica. En esta tesis, exploramos técnicas inteligentes para resolver dos problemas que surgen al manejar una SPL: i. Por un lado, hemos identificado los problemas que surgen cuando un desarrollador desea mantener sus aplicaciones al d´ıa con los últimos avances tecnol´ogicos. La estrecha relaci ´on entre las caracter´ısticas de aplicaci ´on y los componentes de plataforma es dif´ıcil de rastrear. Los desarrolladores deben ser conscientes de las consecuencias que podr´ıan traer a las aplicaciones existentes cuando cambia el hardware donde se va a ejecutar; por ejemplo, cuando una aplicaci ´on se traslada de un smartphone a una computadora/tablet, o cuando una plataforma se actualiza a una nueva versi´on. Los diferentes tama˜nos y resoluciones de pantalla, la posible ausencia de un radio celular o el aumento de la cantidad de memoria pueden tener impactos positivos o negativos en una aplicaci ón. En este contexto, dado que las caracter´ısticas de aplicaci ´on y de plataforma están conceptualmente separadas, sus caracter´ısticas pueden modelarse en dos modelos distintos. Por consiguiente, manejar la trazabilidad entre estas dos capas y c´omo los posibles cambios en ciertas caracter´ısticas puedan afectar a la otra capa, es un problema que est´a por resolver. ii. Por otro lado, hemos encontrado lo complicado que es para el desarrollador de aplicaciones configurar un producto cuando hay una variedad de componentes de implementación para cada característica. Por ejemplo, un desarrollador web en WordPress busca manualmente aquellos componentes (plugins) que son factibles y más óptimos para cada sitio web. Esta tarea lleva tiempo y no siempre garantiza que los componentes seleccionados sean los m´as adecuados (en términos de calidad) para la aplicación requerida. Dos escenarios podrían surgir durante esta configuraci´on: primero, la selecci ´on emp´ırica de un componente, en la pr´actica, puede no proporcionar los resultados esperados; adem´as, no tener criterios basados en la experiencia de otros usuarios con respecto a estos componentes, podr´ıa inducir una mala selecci ´on y lograr una mala experiencia para el usuario final. En este contexto, el manejo de la relaci ´on entre los componentes de implementaci´on y sus caracter´ısticas es otro problema a resolver. Concretamente, las contribuciones de esta tesis se detallan a continuaci´on; Modelos de caracter´ısticas en m´ ultiples capas: En esta ´area introducimos un framework para el an´alisis de modelos de caracter´ısticas de m´ ultiples capas, llamado MAYA. Los objetivos que perseguimos con esta soluci´on son: i) modelar la variabilidad de los sistemas software en dos capas, incluyendo sus respectivas interdependencias; ii) definir un conjunto de operaciones que puedan imponerse a dichos modelos; iii) una implementaci ´on de referencia para el an´alisis de m´ ultiples capas basado en un caso de estudio en Android, y finalmente; iv) dos evaluaciones emp´ıricas que demuestran la viabilidad de nuestra propuesta en la pr´actica. Componentes de implementaci´on: La configuraci´on de un producto es una de las actividades m´as propensas a errores, m´as a ´un cuando para cada caracter´ıstica hay m´as de un componente que la implemente. Para gestionar estas configuraciones, introducimos un sistema de recomendaci ´on basado en componentes llamado RESDEC que facilita la selecci ´on de componentes de implementaci´on al crear productos en una SPL. Concretamente las contribuciones que se presentan con esta propuesta son: i) modelado del problema de selecci ´on de componentes de implementaci ´on como una tarea de recomendaci´on utilizando algoritmos de filtrado colaborativo y por contenido; ii) dise ˜no de un prototipo de herramienta de sistema de recomendaci´on basada en componentes lista para ser utilizada y extendida a otros entornos a partir de la selecci ´on de componentes de implementaci´on y, finalmente; iii) una evaluaci´on emp´ırica basado en sitios web de comercio electr ´onico enWordPress

    A Software Product Line Approach to Ontology-based Recommendations in E-Tourism Systems

    Get PDF
    This study tackles two concerns of developers of Tourism Information Systems (TIS). First is the need for more dependable recommendation services due to the intangible nature of the tourism product where it is impossible for customers to physically evaluate the services on offer prior to practical experience. Second is the need to manage dynamic user requirements in tourism due to the advent of new technologies such as the semantic web and mobile computing such that etourism systems (TIS) can evolve proactively with emerging user needs at minimal time and development cost without performance tradeoffs. However, TIS have very predictable characteristics and are functionally identical in most cases with minimal variations which make them attractive for software product line development. The Software Product Line Engineering (SPLE) paradigm enables the strategic and systematic reuse of common core assets in the development of a family of software products that share some degree of commonality in order to realise a significant improvement in the cost and time of development. Hence, this thesis introduces a novel and systematic approach, called Product Line for Ontology-based Tourism Recommendation (PLONTOREC), a special approach focusing on the creation of variants of TIS products within a product line. PLONTOREC tackles the aforementioned problems in an engineering-like way by hybridizing concepts from ontology engineering and software product line engineering. The approach is a systematic process model consisting of product line management, ontology engineering, domain engineering, and application engineering. The unique feature of PLONTOREC is that it allows common TIS product requirements to be defined, commonalities and differences of content in TIS product variants to be planned and limited in advance using a conceptual model, and variant TIS products to be created according to a construction specification. We demonstrated the novelty in this approach using a case study of product line development of e-tourism systems for three countries in the West-African Region of Africa

    A systematic literature review on the semi-automatic configuration of extended product lines

    Get PDF
    Product line engineering has become essential in mass customisation given its ability to reduce production costs and time to market, and to improve product quality and customer satisfaction. In product line literature, mass customisation is known as product configuration. Currently, there are multiple heterogeneous contributions in the product line configuration domain. However, a secondary study that shows an overview of the progress, trends, and gaps faced by researchers in this domain is still missing. In this context, we provide a comprehensive systematic literature review to discover which approaches exist to support the configuration process of extended product lines and how these approaches perform in practice. Extend product lines consider non-functional properties in the product line modelling. We compare and classify a total of 66 primary studies from 2000 to 2016. Mainly, we give an in-depth view of techniques used by each work, how these techniques are evaluated and their main shortcomings. As main results, our review identified (i) the need to improve the quality of the evaluation of existing approaches, (ii) a lack of hybrid solutions to support multiple configuration constraints, and (iii) a need to improve scalability and performance conditions

    Automating Software Customization via Crowdsourcing using Association Rule Mining and Markov Decision Processes

    Get PDF
    As systems grow in size and complexity so do their configuration possibilities. Users of modern systems are easy to be confused and overwhelmed by the amount of choices they need to make in order to fit their systems to their exact needs. In this thesis, we propose a technique to select what information to elicit from the user so that the system can recommend the maximum number of personalized configuration items. Our method is based on constructing configuration elicitation dialogs through utilizing crowd wisdom. A set of configuration preferences in form of association rules is first mined from a crowd configuration data set. Possible configuration elicitation dialogs are then modeled through a Markov Decision Processes (MDPs). Within the model, association rules are used to automatically infer configuration decisions based on knowledge already elicited earlier in the dialog. This way, an MDP solver can search for elicitation strategies which maximize the expected amount of automated decisions, reducing thereby elicitation effort and increasing user confidence of the result. We conclude by reporting results of a case study in which this method is applied to the privacy configuration of Facebook
    corecore