81 research outputs found

    Addressing Fine-Grained Variability in User-Centered Software Product Lines: A Case Study on Dashboards

    Get PDF
    Software product lines provide a theoretical framework to generate and customize products by studying the target domain and by capturing the commonalities among the potential products of the family. This domain knowledge is subsequently used to implement a series of configurable core assets that will be systematically reused to obtain products with different features to match particular user requirements. Some kind of interactive systems, like dashboards, require special attention as their features are very fine-grained. Having the capacity of configuring a dashboard product to match particular user requirements can improve the utility of these products by providing the support to users to reach useful insights, in addition to a decrease in the development time and an increase in maintainability. Several techniques for implementing features and variability points in the context of SPLs are available, and it is important to choose the right one to exploit the SPL paradigm benefits to the maximum. This work addresses the materialization of fine-grained variability in SPL through code templates and macros, framed in the particular domain of dashboards

    Integrating the common variability language with multilanguage annotations for web engineering

    Get PDF
    Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms such as feature-oriented programming or aspect-oriented programming. Moreover, it is extremely difficult, or even impossible, to apply these programming models to web applications, mainly because of their multilingual nature, since their development involves multiple types of source code (Java, Groovy, JavaScript), templates (HTML, Markdown, XML), style sheet files (CSS and its variants, such as SCSS), and other files (JSON, YML, shell scripts). We propose to use the Common Variability Language as a composition-based approach and integrate annotations to manage fine grained variability of a Software Product Line for web applications. In this paper, we (i) show that existing composition and annotation-based approaches, including some well-known combinations, are not appropriate to model and implement the variability of web applications; and (ii) present a combined approach that effectively integrates annotations into a composition-based approach for web applications. We implement our approach and show its applicability with an industrial real-world system.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    A Generic method for assembling software product line components

    Get PDF
    Software product lines (SPL) facilitate the industrialization of software development. The main goal is to create a set of reusable software components for the rapid production of a software systems family. Many authors propose different approaches to implement and assemble the reusable components of an SPL. However, the construction and assembly of these components continue to be a complex and time-consuming process. This thesis analyzes the advantages and disadvantages of the current approaches to implement and assemble the reusable components of an SPL. Taking advantage of these elements and with the goal of developing a generic method (which can be applied to several software components developed in different software languages), we develop Fragment-oriented programming (FragOP), a framework to design, implement and reuse SPL domain components. FragOP is based on: (i) domain components, (ii) domain files, (iii) fragmentation points, (iv) fragments, (v) customization points, and (vi) customization files. FragOP was implemented in an open-source tool called VariaMos, and we also carried out three evaluations: (i) we created a clothing stores SPL, derived five different products, and discussed the results. (ii) We developed a discussion about the comparison between FragOP and other approaches. And (iii) we designed and executed a usability test of VariaMos to support the FragOP approach. The results show preliminary evidence that the use of FragOP reduces the manual intervention when assembling SPL domain components and it can be used as a generic method for assembling assets and SPL components developed in different software languages.Las líneas de productos de software (LPS) promueven la industrialización del desarrollo de software mediante la definición y ensamblaje de componentes reutilizables de software. Actualmente existen diferentes propuestas para implementar y ensamblar estos componentes. Sin embargo, su construcción y ensamblaje continúa siendo un proceso complejo y que requiere mucho tiempo. Esta tesis analiza las ventajas y desventajas de las diferentes estrategias actuales para implementación y ensamblaje de componentes de LPS. Con base en esto y con el objetivo de desarrollar un método genérico (el cual se pueda aplicar a múltiples componentes de software desarrollados en diferentes lenguajes), esta tesis desarrolla la programación orientada a fragmentos (FragOP), la cual define un marco de trabajo para diseñar, implementar y reutilizar componentes de dominio de LPS. FragOP se basa en: (i) componentes de dominio, (ii) archivos de dominio, (iii) puntos de fragmentación, (iv) fragmentos, (v) puntos de personalización, y (vi) archivos de personalización. Además, se realizó una implementación de FragOP en una herramienta llamada VariaMos, y se llevaron a cabo tres evaluaciones: (i) se creó una LPS de tiendas de ropa, se derivaron cinco productos y se discutieron los resultados. (ii) Se realizó una discusión acerca de la comparación de FragOP y otras propuestas actuales. Y (iii) se diseñó una prueba de usabilidad acerca del soporte de VariaMos para FragOP. Los resultados muestran evidencia preliminar de que el uso de FragOP reduce la intervención manual cuando se ensamblan componentes, y que FragOP puede usarse como un método genérico para el ensamblaje de componentes.Doctorad

    A configuration-based domain-specific rule generation framework for process model customization

    Get PDF
    In today’s changing world, there is an ever-increasing demand and need for software reuse in applications, where the process model needs to be reused in different applications in a domain-specific environment. The process model is required to adapt and implement changes promptly at run-time, in response of the end-user configuration requirements. Furthermore, reusability is emerging strongly as a necessary underlying capability, particularly for customization of business in a dynamic environment where end-users can select their requirements to achieve a specific goal. Such adaptations are in general, performed by non-technical end-users which can lead to losing a significant number of person-days and which can also open up possibilities to introduce errors into the system. These scenarios call for - indeed cry out for - a system with a configurable and customizable business process, operable by users with limited technical expertise. Research aims to provide a framework for generating the rule language and configuring domain constraints. This framework builds upon the core idea of Software Product Lines Engineering (SPLE) and Model-Driven Architecture (MDA). The SPLE provides a platform that includes the variability model. Variability models offer features where end-users can select features and customize possible changes in the domain template, which is the container for domain and process models. The user selects their requirements as a feature from feature models and generates rules from domain models using MDA. Then, the generated rules are translated from a high-level domain model, based on the requirements of the end-user. On the other hand, the weaving model is responsible for reflecting activation and de-activation of features of variabilities in the domain template. The usability of the proposed framework is evaluated with a user study in the area of Digital Content Technology. The results demonstrate that usability improvements can be achieved by using the proposed techniques. The framework can be used to support semi-automatic configuration that is efficient, effective and satisfactory

    WeaFQAs: A Software Product Line Approach for Customizing and Weaving Efficient Functional Quality Attributes

    Get PDF
    Fecha de Lectura de Tesis: 10 de julio de 2018Los atributos de calidad funcionales (FQA) son aquellos que tienen una clara implicación en la funcionalidad del sistema, es decir, existen unos componentes específicos que deben ser incorporados a la arquitectura software del sistema para satisfacer sus requisitos de atributos de calidad. Ejemplos de FQAs son seguridad, usabilidad, o persistencia. Modelar estos atributos es una tarea compleja. Por un lado, se componen de muchas características relacionadas, por ejemplo seguridad está compuesto, entre otros, por autenticación, confidencialidad y encriptación. Tienen dependencias entre ellos, por ejemplo, seguridad puede ser requerido por usabilidad o persistencia. Por otro lado, tienen muchos puntos de variabilidad: una aplicación concreta puede requerir autenticación y control de acceso mientras que otra puede necesitar sólo encriptación. Además, su funcionalidad suele estar dispersa afectando a varios componentes del sistema en desarrollo. El objetivo de esta tesis es definir una línea de productos software orientada a aspectos que permita: (1) modelar las similitudes y la variabilidad de los FQAs desde las primeras etapas del proceso de desarrollo, (2) gestionar las dependencias existentes entre los FQAs, (3) independizar el modelado de los FQAs de la arquitectura de la aplicación afectada, (4) configurar los FQAs en base a los requisitos de cada aplicación teniendo además en cuenta propiedades no funcionales como el rendimiento y el consumo energético de cada solución, (5) incorporar las configuraciones a la arquitectura de la aplicación de manera automática; y (6) gestionar la evolución de los FQAs cuando los requisitos cambien en el futuro. Como resultado se ha definido WeaFQAs, un proceso software para gestionar los FQAs que cubre todos los puntos mencionados. Se han realizado y comparado dos instanciaciones de WeaFQAs usando diferentes lenguajes de variabilidad y de modelado, además de proporcionar soporte con una herramienta basada en el lenguaje CVL

    Modeling Software Product Lines Using Feature Diagrams

    Get PDF
    The leading strategies for systematic software reuse focus on reuse of domain knowledge. One such strategy is software product line engineering. This strategy selects a set of reusable software components that form the core around which software products in a domain are built. Feature modeling is a process that enables engineers to identify these core assets, in particular the com(e.g., shared) and variable features of products. The focus of this thesis is to give an overview of the feature modeling process by introducing feature diagrams. Feature diagrams capture and represent comand variable properties (features) of the software products in a domain, focusing on properties that may vary, which are further used to produce different software products. We present practical examples that show how feature models are used to represent a set of valid composition of features (configurations), in which each configuration can be considered as a specification of a software system instantiated from a software product line

    Building the Core Architecture of a Multiagent System Product Line: With an example from a future NASA Mission

    Get PDF
    The field of Software Product Lines (SPL) emphasizes building a core architecture for a family of software products from which concrete products can be derived rapidly. This helps to reduce time-to-market, costs, etc., and can result in improved software quality and safety. Current AOSE methodologies are concerned with developing a single Multiagent System. We propose an initial approach to developing the core architecture of a Multiagent Systems Product Line (MAS-PL), exemplifying our approach with reference to a concept NASA mission based on multiagent technology
    corecore