6 research outputs found
A Generic method for assembling software product line components
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
Recommended from our members
A rule-based approach to software traceability to product family systems
Software traceability has been recognized as an important activity in software system development. Traceability relations can improve the quality of a system being developed, as well as reduce the time and cost associated with the development. In particular, traceability relations can facilitate the development process, reuse of parts of the systems by comparing artefacts, validation that a system meets its requirements, understanding the rationale for certain design and implementation decisions, and analysis of the implications of changes in the system. However, support for traceability in software engineering environments and tools are not always adequate. In addition, automatic generation and maintenance of traceability relations are not easy tasks.
In contrast, product family systems, in which software systems share a common set of features and new product members can be built around a set of reusable artefacts, is considered an important paradigm for software system engineering. Despite its importance and advances in the area, the support for common and variable aspects among applications and the engineering of reusable and adaptable components are difficult tasks. This is mainly due to the large number and heterogeneity' of documents generated during the development of product family systems.
The underlying principle of this thesis is to use of traceability to support the difficulties associated with product family systems. More specifically, traceability can assist with the identification of common and variable functionalities of the product members, reduction of inconsistencies between product members, reuse of available core assets, and establishment of relationships between product members and product family architectures
Tool Support for Traceable Product Evolution
In software product families, the full benefit of reuse can only be achieved if traceability of requirements to architecture, components and further down to source code is supported. This requires automated tool support for tracing from the abstract features of the product family to a set of concrete features and source code of family members. We extended a commercial software tool to support top-down as well as bottom-up traceability in product families, from the family feature map all the way down to implementation files. At the code level, both newly developed and commercial-off-the-shelf components are accommodated. The tool has been validated by (bottom-up) filling the tool鈥檚 reuse base with features, components, documentation files, etc. from six related products in the Next Generation Network service domain, and next deriving a seventh product from this reuse base.