The demand for speeding up software development inside
corporations triggers a series of issues related to coding organization.
Software development teams have to achieve business deadlines, so
they adopt the bad practice to copy-and-paste code. In this way, clones
populate software repositories and hinder the improvement or
maintenance of systems. Programming languages with object-oriented
paradigm characteristics tend to make easy coding abstraction and
reuse processes. However, a question arises: the same team working
with several kinds of programming languages are influenced by their
paradigms regarding the decrease of cloning incidence? This work
proposed an approach to identify, analyze and compare clones inside
heterogeneous software repositories without consider the development
team profile. The experimental evaluation of the approach was possible
thru two controlled experiments which aimed to detect and evaluate
clones, using and adapting tools available on market. This evaluation
was executed inside an organizational environment, which owned
several applications with closed-source code but available to analysis.
The final results showed no relationship to the amount of application
code lines. Procedural language systems had a lower clone incidence
and, when conflicting open and closed source systems, both had similar
results regarding to the manifestation of source-code clones. / A exigência por acelerar o desenvolvimento de software nas
empresas desencadeia uma série de problemas relacionados à
organização do código. As equipes de desenvolvimento, pressionadas a
cumprir prazos ditados pela área de negócio, adotam a prática ruim de
copiar e colar código. Assim, os clones são criados e povoam os
repositórios de software dessas companhias, tornando o aprimoramento
e manutenção dos sistemas cada vez mais dificultado. Linguagens de
programação que possuem características do paradigma de orientação a
objetos tendem a facilitar ainda mais o processo de abstração de código
e de reaproveitamento. No entanto, uma questão pode ser feita: uma
mesma equipe, trabalhando com diversos tipos de linguagens, sofre
influência destes tipos, no que diz respeito à diminuição da incidência
de clones? Este trabalho propôs uma abordagem para identificar,
analisar e comparar clones em repositórios heterogêneos de software,
com uma análise tênue do perfil da equipe envolvida. A avaliação
experimental da abordagem foi realizada por meio de dois
experimentos controlados, os quais visaram a detecção e a avaliação de
clones, utilizando e adaptando o ferramental disponível no mercado.
Esta avaliação foi executada in-vivo, em um ambiente organizacional
real, o qual possuía uma grande quantidade de aplicações e linhas de
código fechado disponíveis para análise. Os resultados finais não
apresentaram relação direta com a quantidade de linhas de código das
aplicações. Sistemas de linguagem procedural apresentaram menor
incidência de clones e, no conflito entre sistemas de código aberto e
fechado, ambos tiveram resultados similares no que diz respeito à
manifestação de clones de código-fonte.
Identifer | oai:union.ndltd.org:IBICT/oai:ri.ufs.br:riufs/3392 |
Date | 31 August 2016 |
Creators | Torres, José Jorge Barreto |
Contributors | Rodrigues Júnior, Methanias Colaço |
Publisher | Universidade Federal de Sergipe, Pós-Graduação em Ciência da Computação, UFS, Brasil |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | application/pdf |
Source | reponame:Repositório Institucional da UFS, instname:Universidade Federal de Sergipe, instacron:UFS |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0018 seconds