Um método para extração e evolução de linhas de produto de software a partir de sistemas Web existentes
Autor(a) principal: | |
---|---|
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 |