Submitted by Automa??o e Estat?stica (sst@bczm.ufrn.br) on 2018-02-15T13:38:34Z
No. of bitstreams: 1
JoaoVictorDeOliveiraNeto_DISSERT.pdf: 2906470 bytes, checksum: 5e5f0824ff4be1201d9af45aac2ed119 (MD5) / Approved for entry into archive by Arlan Eloi Leite Silva (eloihistoriador@yahoo.com.br) on 2018-02-20T21:02:12Z (GMT) No. of bitstreams: 1
JoaoVictorDeOliveiraNeto_DISSERT.pdf: 2906470 bytes, checksum: 5e5f0824ff4be1201d9af45aac2ed119 (MD5) / Made available in DSpace on 2018-02-20T21:02:12Z (GMT). No. of bitstreams: 1
JoaoVictorDeOliveiraNeto_DISSERT.pdf: 2906470 bytes, checksum: 5e5f0824ff4be1201d9af45aac2ed119 (MD5)
Previous issue date: 2017-08-31 / A necessidade de evolu??o nos softwares tornou-se cada vez mais frequente e a engenharia
de software precisou se adaptar para entregar produtos de qualidade em prazos
cada vez menores. Para que o software continue sendo ?til ao longo do tempo, para o prop?sito
ao qual foi desenvolvido, ? necess?rio que sejam realizadas mudan?as ou inclu?das
novas funcionalidades para que este acompanhe as mudan?as no contexto do neg?cio. Com
essas mudan?as, ? inevit?vel que o software passe a aumentar de tamanho e, consequentemente,
em complexidade. Essa expans?o do software cria relacionamentos de depend?ncia
entre componentes do c?digo-fonte e essas depend?ncias se propagam em uma cadeia de
depend?ncias ? medida que a aplica??o cresce. Reescrever o mesmo trecho de c?digo ? uma pr?tica n?o recomendada no desenvolvimento
de software, pois implica em replicar c?digo de forma distribu?da e desordenada.
Ao fazer o reuso, o mesmo trecho j? escrito ? referenciado em diferentes funcionalidades
do sistema atrav?s da cadeia de depend?ncia e chamadas de m?todos, fazendo com que
diferentes partes do c?digo que estejam associadas a diferentes funcionalidades passem a
depender de um mesmo componente. Altera??es de trechos de c?digo que possuem rela??o
direta ou indireta com diferentes casos de uso podem levar a falhas imprevistas da
aplica??o, pois dependendo do n?mero de artefatos envolvidos e da extens?o da cadeia
de depend?ncias relacionada ao c?digo alterado, uma mudan?a pode impactar um outro
caso de uso que aparentemente n?o tem rela??o com o trecho de c?digo modificado. Prever
impactos decorrentes de altera??es em um artefato ? uma tarefa que exige tempo para
an?lise, profundo conhecimento do c?digo-fonte e esfor?o de teste. Este trabalho apresenta uma abordagem para automatizar a identifica??o de poss?veis
conflitos indiretos atrav?s de uma ferramenta, capaz de determinar quais casos de
uso possuem maior probabilidade de serem impactados por mudan?as no c?digo-fonte,
podendo assim direcionar os esfor?os de testes de forma mais eficaz. Foi elaborado um estudo
para avaliar um projeto real de dimens?o extensa que n?o possui uma su?te de testes
automatizados e a ferramenta desenvolvida mostrou-se eficiente para detectar conflitos
indiretos em diferentes cen?rios e tamb?m provou, atrav?s de um experimento emp?rico,
que a maior parte das falhas decorrentes de conflitos indiretos teriam sido evitadas caso
a ferramenta tivesse sido utilizada ainda na fase de desenvolvimento. / The necessity of software evolution for those which solve daily problems became even
more frequent and the software engineering had to be adapted in order to be able to
delivery products with good quality in tight dead lines. In order to the software continues
being useful during its life cycle, to the main purpose whose was developed, its necessary
to apply changes or include new features due to changes which happens in the business. Rewrite the same block of code is not a recommended approach on software development,
because it spreads code in a distributed and disordered way. Applying the code
reuse, the same block of code already wrote is referenced by different use cases through
the dependency chain and method calls, where different parts of the code, which are being
relate to differents funcionalitys, going to depend to the same component. Changes applyed
to a block of code which has direct or indirect relation with differents use cases
may lead to umpredictable fails, depending on the number of different artifacts related
and the extension of dependency chain related to the artifact which was modified, this
change may cause a impact on another use case which, by a first look, does not have any
relation which the modified block of code. Predict impacts from in a specific artifact is a
task which demands time to analysis, deep knowledge of the source-code and test effort. This paper presents an approach to automatize the identification of possible indirect
conflicts using the developed tool, whose can determinate which use cases are more defect
prone by source-code changes, providing a more effective direction to the test?s efforts. A
Study Case was elaborated, assessing a real project of extensive dimension whose doesn?t
have a automatized test case suite, and the developed tool was able to identify the indirect
conflicts on differents cenarios and besides, the tool was able to proof in a empiric
experiment which the major failures, caused by indirect conflicts could be avoided if the
tool were be used during the development fase.
Identifer | oai:union.ndltd.org:IBICT/oai:repositorio.ufrn.br:123456789/24772 |
Date | 31 August 2017 |
Creators | Oliveira Neto, Jo?o Victor de |
Contributors | 01231423420, Medeiros, S?rgio Queiroz de, 00984989404, Pinto, Felipe Alves Pereira, 05083252422, Kulesza, Uira, Lima, Gleydson de Azevedo Ferreira |
Publisher | PROGRAMA DE P?S-GRADUA??O EM ENGENHARIA DE SOFTWARE, UFRN, Brasil |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | English |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Source | reponame:Repositório Institucional da UFRN, instname:Universidade Federal do Rio Grande do Norte, instacron:UFRN |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0022 seconds