Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes

Detalhes bibliográficos
Autor(a) principal: Pontes, Erick Sharlls Ramos de
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFRN
Texto Completo: https://repositorio.ufrn.br/jspui/handle/123456789/24904
Resumo: 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.
id UFRN_83eb582afced1f03adcf27a7c506542c
oai_identifier_str oai:https://repositorio.ufrn.br:123456789/24904
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Pontes, Erick Sharlls Ramos deSilva, Carlos Eduardo daBarbosa, Eiji Adachi MedeirosCirilo, ElderKulesza, Uira2018-03-19T12:35:22Z2018-03-19T12:35:22Z2017-08-25PONTES, 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.https://repositorio.ufrn.br/jspui/handle/123456789/24904Uma 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.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.porCNPQ::ENGENHARIAS: ENGENHARIA DE SOFTWARELinhas de produto de softwareEvolução de softwareReengenharia de sistemas existentes para LPSUm método para extração e evolução de linhas de produto de software a partir de sistemas Web existentesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWAREUFRNBrasilinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNTEXTErickSharllsRamosDePontes_DISSERT.pdf.txtErickSharllsRamosDePontes_DISSERT.pdf.txtExtracted texttext/plain192221https://repositorio.ufrn.br/bitstream/123456789/24904/2/ErickSharllsRamosDePontes_DISSERT.pdf.txt9f8b15a3c357eec51362b7250e917f3dMD52THUMBNAILErickSharllsRamosDePontes_DISSERT.pdf.jpgErickSharllsRamosDePontes_DISSERT.pdf.jpgIM Thumbnailimage/jpeg3053https://repositorio.ufrn.br/bitstream/123456789/24904/3/ErickSharllsRamosDePontes_DISSERT.pdf.jpg2b306717fa0d23403b7314b123fedc59MD53ORIGINALErickSharllsRamosDePontes_DISSERT.pdfErickSharllsRamosDePontes_DISSERT.pdfapplication/pdf5161787https://repositorio.ufrn.br/bitstream/123456789/24904/1/ErickSharllsRamosDePontes_DISSERT.pdfe31f806ad3caf239f1795235acede45cMD51123456789/249042019-01-30 16:34:03.57oai:https://repositorio.ufrn.br:123456789/24904Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2019-01-30T19:34:03Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.pt_BR.fl_str_mv Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
title Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
spellingShingle Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
Pontes, Erick Sharlls Ramos de
CNPQ::ENGENHARIAS: ENGENHARIA DE SOFTWARE
Linhas de produto de software
Evolução de software
Reengenharia de sistemas existentes para LPS
title_short Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
title_full Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
title_fullStr Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
title_full_unstemmed Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
title_sort Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
author Pontes, Erick Sharlls Ramos de
author_facet Pontes, Erick Sharlls Ramos de
author_role author
dc.contributor.authorID.pt_BR.fl_str_mv
dc.contributor.advisorID.pt_BR.fl_str_mv
dc.contributor.advisor-co1ID.pt_BR.fl_str_mv
dc.contributor.referees1.none.fl_str_mv Barbosa, Eiji Adachi Medeiros
dc.contributor.referees1ID.pt_BR.fl_str_mv
dc.contributor.referees2.none.fl_str_mv Cirilo, Elder
dc.contributor.referees2ID.pt_BR.fl_str_mv
dc.contributor.author.fl_str_mv Pontes, Erick Sharlls Ramos de
dc.contributor.advisor-co1.fl_str_mv Silva, Carlos Eduardo da
dc.contributor.advisor1.fl_str_mv Kulesza, Uira
contributor_str_mv Silva, Carlos Eduardo da
Kulesza, Uira
dc.subject.cnpq.fl_str_mv CNPQ::ENGENHARIAS: ENGENHARIA DE SOFTWARE
topic CNPQ::ENGENHARIAS: ENGENHARIA DE SOFTWARE
Linhas de produto de software
Evolução de software
Reengenharia de sistemas existentes para LPS
dc.subject.por.fl_str_mv Linhas de produto de software
Evolução de software
Reengenharia de sistemas existentes para LPS
description 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.
publishDate 2017
dc.date.issued.fl_str_mv 2017-08-25
dc.date.accessioned.fl_str_mv 2018-03-19T12:35:22Z
dc.date.available.fl_str_mv 2018-03-19T12:35:22Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv 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.
dc.identifier.uri.fl_str_mv https://repositorio.ufrn.br/jspui/handle/123456789/24904
identifier_str_mv 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.
url https://repositorio.ufrn.br/jspui/handle/123456789/24904
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.program.fl_str_mv PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWARE
dc.publisher.initials.fl_str_mv UFRN
dc.publisher.country.fl_str_mv Brasil
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRN
instname:Universidade Federal do Rio Grande do Norte (UFRN)
instacron:UFRN
instname_str Universidade Federal do Rio Grande do Norte (UFRN)
instacron_str UFRN
institution UFRN
reponame_str Repositório Institucional da UFRN
collection Repositório Institucional da UFRN
bitstream.url.fl_str_mv https://repositorio.ufrn.br/bitstream/123456789/24904/2/ErickSharllsRamosDePontes_DISSERT.pdf.txt
https://repositorio.ufrn.br/bitstream/123456789/24904/3/ErickSharllsRamosDePontes_DISSERT.pdf.jpg
https://repositorio.ufrn.br/bitstream/123456789/24904/1/ErickSharllsRamosDePontes_DISSERT.pdf
bitstream.checksum.fl_str_mv 9f8b15a3c357eec51362b7250e917f3d
2b306717fa0d23403b7314b123fedc59
e31f806ad3caf239f1795235acede45c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv
_version_ 1802117608703524864