Please use this identifier to cite or link to this item: https://repositorio.ufrn.br/jspui/handle/123456789/24904
Title: Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
Authors: Pontes, Erick Sharlls Ramos de
Keywords: Linhas de produto de software;Evolução de software;Reengenharia de sistemas existentes para LPS
Issue Date: 25-Aug-2017
Citation: PONTES, Erick Sharlls Ramos de. Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes. 2017. 87f. Dissertação (Mestrado Profissional em Engenharia de Software) - Instituto Metrópole Digital, Universidade Federal do Rio Grande do Norte, Natal, 2017.
Portuguese Abstract: Uma Linha de produto de software (LPS) representa uma família de sistemas relacionados que compartilham similaridades e variabilidades visando atender às necessidades de um segmento de mercado específico. A adoção de LPS tem sido aplicada em diversas áreas na indústria de software devido aos benefícios alcançados, tais como, redução dos custos no desenvolvimento, aumento da qualidade e redução do tempo de comercialização. No entanto, cenários distintos podem ser encontrados para implementação de uma linha de produtos, caracterizando 3 abordagens para adoção de LPS: (1) abordagem proativa: não existe softwares em produção, e uma LPS é desenvolvida do zero; (2) abordagem reativa: já existe uma LPS em produção que vai sofrer incremento para atender novos requisitos; (3) abordagem extrativa: a LPS é desenvolvida a partir dos artefatos de um sistema ou conjunto de sistemas relacionados que já estão em produção. No contexto de abordagens extrativa e reativa, este trabalho propõe um método de extração e evolução de LPSs a partir de sistemas existentes implementados na linguagem Java. O método foi extraído a partir da condução de um estudo empírico de desenvolvimento de uma LPS para o domínio de sistemas de controle de espaços físicos utilizados em diferentes centros da Universidade Federal do Rio Grande do Norte (UFRN) e define três atividades que apresentam um conjunto de diretrizes para refatoração e modularização de features em sistemas implementados em Java: (i) Modelar features da LPS, (ii) Projetar e implementar LPS através da refatoração de um sistema existente, e (iii) Realizar testes para cada um dos produtos atuais existentes. Em seguida, o método foi avaliado por meio da sua aplicação durante evoluções da LPS para atender novos requisitos demandados pelos clientes. Por fim, foi constatado um aumento de linhas de código dos produtos da LPS, no entanto, o núcleo da LPS possui uma quantidade de linhas de código menor que qualquer produto antes e depois da extração da LPS. Com isso, os artefatos da LPS ficaram melhor modularizados em termos de features, o que pode facilitar a evolução tanto do código do núcleo quanto dos artefatos variantes de cada aplicação.
Abstract: A software product line (SPL) represents a family of related systems that share commonalities and variabilities to address the needs of a specific market or mission. The adoption of SPL has been applied in several areas in the software industry due to the benefits achieved, such as reduction of development costs, quality improvement and reduction of time to market. However, distinct scenarios can be found when developing a SPL, which lead to 3 approaches for adopting a SPL: (1) proactive approach: there are no previous software implementation and a SPL is developed from scratch; (2) reactive approach: there is a SPL available which is evolved to address new features and products; (3) extractive approach: SPL is developed from the assets of a system or a set of related systems that already exists. In the scenarios of the extractive and reactive approaches, this dissertation proposes a method of extraction and evolution of SPLs from existing systems implemented in the Java language. The method was extracted from an empirical study of an LPS for the domain of systems that manage physical spaces from different Federal University of Rio Grande do Norte (UFRN) departments and defined three activities that present a set of guidelines for refactoring and modularizing features in systems implemented in Java: (i) Model SPL features, (ii) Design and Implement LPS by refactoring an existing system, and (iii) Perform tests for each of the existing products. The method is evaluated through its application during SPL evolutions to address new requirements demanded by the customers. As a result of the study, we found an increase in the number of lines of code of the products of the products, however, the SPL core had lower lines of code than any product before and after the LPS extraction. Thus, the SPL assets have become better modularized in terms of features, which may facilitate the evolution of core and variant implementations of each application.
URI: https://repositorio.ufrn.br/jspui/handle/123456789/24904
Appears in Collections:MPES - Mestrado Profissional em Engenharia de Software

Files in This Item:
File Description SizeFormat 
ErickSharllsRamosDePontes_DISSERT.pdf5.04 MBAdobe PDFThumbnail
View/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.