Empirically investigating the human role on the code smell effect
Autor(a) principal: | |
---|---|
Data de Publicação: | 2015 |
Tipo de documento: | Tese |
Idioma: | eng |
Título da fonte: | Repositório Institucional da UFBA |
Texto Completo: | http://repositorio.ufba.br/ri/handle/ri/22844 |
Resumo: | Context: Code smell is a term commonly used to describe potential problems in the design of object-oriented systems. The theory about code smells, initially presented in nineties, is focused on characterization of different types of smells and heuristics for their detection and removal. Since then, empirical studies have evaluated the impact of the practical adoption of the code smell concept on software development. We call this issue the code smell effect. The findings of empirical studies on the code smell effect have presented inconsistencies with respect to what is expected by the theory. This phenomenon is not well understood. Objective: Enhancing the understanding of the code smell effect, characterizing problems hindering the practical adoption of the smell concept and investigating their origin. More specifically, we focus on the major confounding factor affecting observations on the code smell effect, which is the human role on smell detection. The human role is mostly disregarded by the theory and it strongly affects the experiments on the subject. Method: We explore the problem empirically, from two perspectives. First, we synthesize the current knowledge on the code smell effect from a set of primary studies published in the literature. To do this, we performed a systematic review based on thematic synthesis. Second, we propose the investigation of factors affecting the human evaluation of smells. To do this, we performed a family of controlled experiments. In it, we investigate an extensive number of factors affecting the human perception of smells. The factors are the use of design comprehension tool support; developer's experience, knowledge and training; and software size. From the thematic synthesis and the family of controlled experiments, we identify challenges for the area and present them as a research agenda. Results: We find out that human evaluation of smell should not be trusted. The studies indicate that the agreement on smell detection is low. They also show that demographic attributes, such as developers' experience, impact the agreement on smell detection. We also concluded that, nowadays, there are not evidences supporting the use of code smells for practical evaluation of design quality. Our evidences are divergent findings correlating code smells and software attributes, such as changes on source code. In some cases, the studies converge showing that code smells do not impact some attributes. This happens, for example, with studies correlating smells and effort on maintenance. Conclusion: This thesis points out to the gap between the theory and the experimental findings about the code smell effect. Our evidences indicate that the main source for this gap is the low number of studies focusing on the human role on the smell effect. The researches on the subject should focus on better understanding this issue. This not seems the path followed by the area, which has directed its effort on researches focused on tool assessments, such as automatic detection or smell removal. In order to face the problem, we propose a research agenda, indicating that the area needs to: i) investigate the nature of smells, grouping them according to their characteristics; ii) explore human factors affecting smell detection, and their relationships; iii) explore cognitive aspects affecting human perception of smells; and iv) outline attributes of the experiments in order to classify the context where findings can be grouped. These challenges indicate some paths to be followed by the area in order to systematize the use of code smell in the practice of the software development. Despite difficulties, we believe that this is possible and our thesis contributes for this journey. |
id |
UFBA-2_9631b18078098faec166aea859a83759 |
---|---|
oai_identifier_str |
oai:repositorio.ufba.br:ri/22844 |
network_acronym_str |
UFBA-2 |
network_name_str |
Repositório Institucional da UFBA |
repository_id_str |
1932 |
spelling |
Santos, José Amâncio MacedoMendonça Neto, Manoel Gomes deMendonça Neto, Manoel Gomes deSant’Anna, Cláudio NogueiraChavez, Christina von Flach GarciaFigueiredo, Eduardo Magno LagesPinho, Viviane Dias Malheiros de2017-06-07T11:28:44Z2017-06-07T11:28:44Z2017-06-072015-06-18http://repositorio.ufba.br/ri/handle/ri/22844Context: Code smell is a term commonly used to describe potential problems in the design of object-oriented systems. The theory about code smells, initially presented in nineties, is focused on characterization of different types of smells and heuristics for their detection and removal. Since then, empirical studies have evaluated the impact of the practical adoption of the code smell concept on software development. We call this issue the code smell effect. The findings of empirical studies on the code smell effect have presented inconsistencies with respect to what is expected by the theory. This phenomenon is not well understood. Objective: Enhancing the understanding of the code smell effect, characterizing problems hindering the practical adoption of the smell concept and investigating their origin. More specifically, we focus on the major confounding factor affecting observations on the code smell effect, which is the human role on smell detection. The human role is mostly disregarded by the theory and it strongly affects the experiments on the subject. Method: We explore the problem empirically, from two perspectives. First, we synthesize the current knowledge on the code smell effect from a set of primary studies published in the literature. To do this, we performed a systematic review based on thematic synthesis. Second, we propose the investigation of factors affecting the human evaluation of smells. To do this, we performed a family of controlled experiments. In it, we investigate an extensive number of factors affecting the human perception of smells. The factors are the use of design comprehension tool support; developer's experience, knowledge and training; and software size. From the thematic synthesis and the family of controlled experiments, we identify challenges for the area and present them as a research agenda. Results: We find out that human evaluation of smell should not be trusted. The studies indicate that the agreement on smell detection is low. They also show that demographic attributes, such as developers' experience, impact the agreement on smell detection. We also concluded that, nowadays, there are not evidences supporting the use of code smells for practical evaluation of design quality. Our evidences are divergent findings correlating code smells and software attributes, such as changes on source code. In some cases, the studies converge showing that code smells do not impact some attributes. This happens, for example, with studies correlating smells and effort on maintenance. Conclusion: This thesis points out to the gap between the theory and the experimental findings about the code smell effect. Our evidences indicate that the main source for this gap is the low number of studies focusing on the human role on the smell effect. The researches on the subject should focus on better understanding this issue. This not seems the path followed by the area, which has directed its effort on researches focused on tool assessments, such as automatic detection or smell removal. In order to face the problem, we propose a research agenda, indicating that the area needs to: i) investigate the nature of smells, grouping them according to their characteristics; ii) explore human factors affecting smell detection, and their relationships; iii) explore cognitive aspects affecting human perception of smells; and iv) outline attributes of the experiments in order to classify the context where findings can be grouped. These challenges indicate some paths to be followed by the area in order to systematize the use of code smell in the practice of the software development. Despite difficulties, we believe that this is possible and our thesis contributes for this journey.Contexto: Code smell ´e um termo comumente utilizado para descrever potenciais problemas em projetos de software orientados a objetos. A teoria relacionada a code smells, inicialmente apresentada nos anos noventa, tem foco na caracteriza¸c˜ao de diferentes tipos de smells e nas estrat´egias para sua detec¸c˜ao e remo¸c˜ao. Desde ent˜ao, estudos emp´ıricos tˆem avaliado o impacto da ado¸c˜ao do conceito de code smell no desenvolvimento de software, ou seja, o “efeito code smell”. Os resultados destes estudos tˆem apresentado inconsistˆencias com rela¸c˜ao aos efeitos propostos pela teoria. As causas deste fenˆomeno n˜ao s˜ao bem compreendidas. Objetivo: Melhorar a compreens˜ao sobre o efeito code smell, identificando problemas que tˆem dificultado uso do conceito no desenvolvimento de software. Mais especificamente, nos concentramos no papel humano na detec¸c˜ao de smells. O fator humano ´e uma vari´avel pouco considerada pela teoria, mas afeta significativamente os resultados dos estudos emp´ıricos sobre o tema. M´etodo: N´os exploramos o problema de forma emp´ırica, a partir de duas perspectivas. Primeiro, n´os sintetizamos o conhecimento relacionado ao efeito code smell a partir de um conjunto de estudos prim´arios existente na literatura. Para isso, n´os realizamos uma revis˜ao sistem´atica, com base no m´etodo de s´ıntese tem´atica. Segundo, n´os propusemos a investiga¸c˜ao de fatores que afetam a percep¸c˜ao humana sobre smells. Neste caso, n´os realizamos uma fam´ılia de experimentos controlados, investigando um extensivo n´umero de fatores que afetam a percep¸c˜ao humana sobre smells. Os fatores s˜ao: o uso de ferramentas de suporte `a compreens˜ao do projeto de software; a experiˆencia; o conhecimento te´orico sobre code smells e o treinamento dos desenvolvedores; e o tamanho do software. A partir da s´ıntese tem´atica e da fam´ılia de experimentos, n´os identificamos alguns desafios para a ´area, apresentandoos como uma agenda de pesquisa. Resultados: N´os percebemos que a avalia¸c˜ao humana de smells n˜ao ´e confi´avel. Os estudos indicam que o grau de concordˆancia relacionado `a avalia¸c˜ao humana ´e baixo. Al´em disso, os estudos mostram que atributos demogr´aficos, como experiˆencia do desenvolvedor, afetam o grau de concordˆancia na detec¸c˜ao de smells. Tamb´em conclu´ımos que n˜ao h´a evidˆencias que indiquem o uso do conceito de code smells como ferramenta para a avalia¸c˜ao da qualidade dos projetos de software. Estas evidˆencias s˜ao as inconsistˆencias nos resultados correlacionando os smells e atributos de software, como mudan¸cas no c´odigo. Em alguns casos, os estudos concordam que os smells n˜ao tem correla¸c˜ao com certos atributos. Isso ocorre, por exemplo, com estudos correlacionando smells e esfor¸co na manuten¸c˜ao de software. Conclus˜ao: Esta tese evidencia uma lacuna existente entre a teoria e os estudos emp´ıricos relacionados ao efeito code smell. Nossas evidˆencias apontam o baixo n´umero de estudos abordando o papel humano na detec¸c˜ao de smells como principal causa desta lacuna. Pesquisas na ´area devem se concentrar em entender este aspecto. Este n˜ao parece ser o caminho seguido pela ´area, que tem se concentrado principalmente no desenvolvimento de ferramentas de suporte, como ferramentas para detec¸c˜ao autom´atica e remo¸c˜ao de smells. Para auxiliar neste sentido, n´os propomos uma agenda de pesquisa indicando pontos importantes a serem considerados: i) investiga¸c˜ao da natureza dos smells, agrupando-os de acordo com suas caracter´ısticas; ii) explora¸c˜ao de fatores humanos afetando a detec¸c˜ao de smells e seus inter-relacionamentos; iii) explora¸c˜ao de aspectos cognitivos afetando a percep¸c˜ao humana de smells; e iv) identifica¸c˜ao de atributos relacionados aos estudos emp´ıricos de forma a delinear o contexto onde resultados podem ser agrupados. Estes desafios indicam alguns caminhos que a ´area pode seguir para sistematizar o uso do conceito de code smell no desenvolvimento de software. Apesar das dificuldades, n´os acreditamos que isso ´e poss´ıvel e nossa tese visa a contribuir neste sentido.Submitted by Kleber Silva (kleberbs@ufba.br) on 2017-06-01T20:18:43Z No. of bitstreams: 1 Tese final - Amâncio.pdf: 4405750 bytes, checksum: ceb4c269d4cf1fa74d0861c679a6f10d (MD5)Approved for entry into archive by Vanessa Reis (vanessa.jamile@ufba.br) on 2017-06-07T11:28:44Z (GMT) No. of bitstreams: 1 Tese final - Amâncio.pdf: 4405750 bytes, checksum: ceb4c269d4cf1fa74d0861c679a6f10d (MD5)Made available in DSpace on 2017-06-07T11:28:44Z (GMT). No. of bitstreams: 1 Tese final - Amâncio.pdf: 4405750 bytes, checksum: ceb4c269d4cf1fa74d0861c679a6f10d (MD5)Sistemas ComputacionaisSoftware designcode smelldesign flawfalhas de projetoEmpirically investigating the human role on the code smell effectinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisInstituto de MatemáticaPrograma Multiinstitucional de Pós-graduação em Ciência da Computação, UFBA-UNIFACS-UEFSIMbrasilinfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFBAinstname:Universidade Federal da Bahia (UFBA)instacron:UFBAORIGINALTese final - Amâncio.pdfTese final - Amâncio.pdfapplication/pdf4405750https://repositorio.ufba.br/bitstream/ri/22844/1/Tese%20final%20%20-%20Am%c3%a2ncio.pdfceb4c269d4cf1fa74d0861c679a6f10dMD51LICENSElicense.txtlicense.txttext/plain1383https://repositorio.ufba.br/bitstream/ri/22844/2/license.txt05eca2f01d0b3307819d0369dab18a34MD52TEXTTese final - Amâncio.pdf.txtTese final - Amâncio.pdf.txtExtracted texttext/plain479252https://repositorio.ufba.br/bitstream/ri/22844/3/Tese%20final%20%20-%20Am%c3%a2ncio.pdf.txt133c44948f585cd5fd83f9e7ec597b39MD53ri/228442022-02-20 21:59:37.932oai:repositorio.ufba.br:ri/22844VGVybW8gZGUgTGljZW7Dp2EsIG7Do28gZXhjbHVzaXZvLCBwYXJhIG8gZGVww7NzaXRvIG5vIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGQkEuCgogUGVsbyBwcm9jZXNzbyBkZSBzdWJtaXNzw6NvIGRlIGRvY3VtZW50b3MsIG8gYXV0b3Igb3Ugc2V1IHJlcHJlc2VudGFudGUgbGVnYWwsIGFvIGFjZWl0YXIgCmVzc2UgdGVybW8gZGUgbGljZW7Dp2EsIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGEgQmFoaWEgCm8gZGlyZWl0byBkZSBtYW50ZXIgdW1hIGPDs3BpYSBlbSBzZXUgcmVwb3NpdMOzcmlvIGNvbSBhIGZpbmFsaWRhZGUsIHByaW1laXJhLCBkZSBwcmVzZXJ2YcOnw6NvLiAKRXNzZXMgdGVybW9zLCBuw6NvIGV4Y2x1c2l2b3MsIG1hbnTDqm0gb3MgZGlyZWl0b3MgZGUgYXV0b3IvY29weXJpZ2h0LCBtYXMgZW50ZW5kZSBvIGRvY3VtZW50byAKY29tbyBwYXJ0ZSBkbyBhY2Vydm8gaW50ZWxlY3R1YWwgZGVzc2EgVW5pdmVyc2lkYWRlLgoKIFBhcmEgb3MgZG9jdW1lbnRvcyBwdWJsaWNhZG9zIGNvbSByZXBhc3NlIGRlIGRpcmVpdG9zIGRlIGRpc3RyaWJ1acOnw6NvLCBlc3NlIHRlcm1vIGRlIGxpY2Vuw6dhIAplbnRlbmRlIHF1ZToKCiBNYW50ZW5kbyBvcyBkaXJlaXRvcyBhdXRvcmFpcywgcmVwYXNzYWRvcyBhIHRlcmNlaXJvcywgZW0gY2FzbyBkZSBwdWJsaWNhw6fDtWVzLCBvIHJlcG9zaXTDs3Jpbwpwb2RlIHJlc3RyaW5naXIgbyBhY2Vzc28gYW8gdGV4dG8gaW50ZWdyYWwsIG1hcyBsaWJlcmEgYXMgaW5mb3JtYcOnw7VlcyBzb2JyZSBvIGRvY3VtZW50bwooTWV0YWRhZG9zIGVzY3JpdGl2b3MpLgoKIERlc3RhIGZvcm1hLCBhdGVuZGVuZG8gYW9zIGFuc2Vpb3MgZGVzc2EgdW5pdmVyc2lkYWRlIGVtIG1hbnRlciBzdWEgcHJvZHXDp8OjbyBjaWVudMOtZmljYSBjb20gCmFzIHJlc3RyacOnw7VlcyBpbXBvc3RhcyBwZWxvcyBlZGl0b3JlcyBkZSBwZXJpw7NkaWNvcy4KCiBQYXJhIGFzIHB1YmxpY2HDp8O1ZXMgc2VtIGluaWNpYXRpdmFzIHF1ZSBzZWd1ZW0gYSBwb2zDrXRpY2EgZGUgQWNlc3NvIEFiZXJ0bywgb3MgZGVww7NzaXRvcyAKY29tcHVsc8OzcmlvcyBuZXNzZSByZXBvc2l0w7NyaW8gbWFudMOqbSBvcyBkaXJlaXRvcyBhdXRvcmFpcywgbWFzIG1hbnTDqm0gYWNlc3NvIGlycmVzdHJpdG8gCmFvIG1ldGFkYWRvcyBlIHRleHRvIGNvbXBsZXRvLiBBc3NpbSwgYSBhY2VpdGHDp8OjbyBkZXNzZSB0ZXJtbyBuw6NvIG5lY2Vzc2l0YSBkZSBjb25zZW50aW1lbnRvCiBwb3IgcGFydGUgZGUgYXV0b3Jlcy9kZXRlbnRvcmVzIGRvcyBkaXJlaXRvcywgcG9yIGVzdGFyZW0gZW0gaW5pY2lhdGl2YXMgZGUgYWNlc3NvIGFiZXJ0by4KRepositório InstitucionalPUBhttp://192.188.11.11:8080/oai/requestopendoar:19322022-02-21T00:59:37Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)false |
dc.title.pt_BR.fl_str_mv |
Empirically investigating the human role on the code smell effect |
title |
Empirically investigating the human role on the code smell effect |
spellingShingle |
Empirically investigating the human role on the code smell effect Santos, José Amâncio Macedo Sistemas Computacionais Software design code smell design flaw falhas de projeto |
title_short |
Empirically investigating the human role on the code smell effect |
title_full |
Empirically investigating the human role on the code smell effect |
title_fullStr |
Empirically investigating the human role on the code smell effect |
title_full_unstemmed |
Empirically investigating the human role on the code smell effect |
title_sort |
Empirically investigating the human role on the code smell effect |
author |
Santos, José Amâncio Macedo |
author_facet |
Santos, José Amâncio Macedo |
author_role |
author |
dc.contributor.author.fl_str_mv |
Santos, José Amâncio Macedo |
dc.contributor.advisor1.fl_str_mv |
Mendonça Neto, Manoel Gomes de |
dc.contributor.referee1.fl_str_mv |
Mendonça Neto, Manoel Gomes de Sant’Anna, Cláudio Nogueira Chavez, Christina von Flach Garcia Figueiredo, Eduardo Magno Lages Pinho, Viviane Dias Malheiros de |
contributor_str_mv |
Mendonça Neto, Manoel Gomes de Mendonça Neto, Manoel Gomes de Sant’Anna, Cláudio Nogueira Chavez, Christina von Flach Garcia Figueiredo, Eduardo Magno Lages Pinho, Viviane Dias Malheiros de |
dc.subject.cnpq.fl_str_mv |
Sistemas Computacionais |
topic |
Sistemas Computacionais Software design code smell design flaw falhas de projeto |
dc.subject.por.fl_str_mv |
Software design code smell design flaw falhas de projeto |
description |
Context: Code smell is a term commonly used to describe potential problems in the design of object-oriented systems. The theory about code smells, initially presented in nineties, is focused on characterization of different types of smells and heuristics for their detection and removal. Since then, empirical studies have evaluated the impact of the practical adoption of the code smell concept on software development. We call this issue the code smell effect. The findings of empirical studies on the code smell effect have presented inconsistencies with respect to what is expected by the theory. This phenomenon is not well understood. Objective: Enhancing the understanding of the code smell effect, characterizing problems hindering the practical adoption of the smell concept and investigating their origin. More specifically, we focus on the major confounding factor affecting observations on the code smell effect, which is the human role on smell detection. The human role is mostly disregarded by the theory and it strongly affects the experiments on the subject. Method: We explore the problem empirically, from two perspectives. First, we synthesize the current knowledge on the code smell effect from a set of primary studies published in the literature. To do this, we performed a systematic review based on thematic synthesis. Second, we propose the investigation of factors affecting the human evaluation of smells. To do this, we performed a family of controlled experiments. In it, we investigate an extensive number of factors affecting the human perception of smells. The factors are the use of design comprehension tool support; developer's experience, knowledge and training; and software size. From the thematic synthesis and the family of controlled experiments, we identify challenges for the area and present them as a research agenda. Results: We find out that human evaluation of smell should not be trusted. The studies indicate that the agreement on smell detection is low. They also show that demographic attributes, such as developers' experience, impact the agreement on smell detection. We also concluded that, nowadays, there are not evidences supporting the use of code smells for practical evaluation of design quality. Our evidences are divergent findings correlating code smells and software attributes, such as changes on source code. In some cases, the studies converge showing that code smells do not impact some attributes. This happens, for example, with studies correlating smells and effort on maintenance. Conclusion: This thesis points out to the gap between the theory and the experimental findings about the code smell effect. Our evidences indicate that the main source for this gap is the low number of studies focusing on the human role on the smell effect. The researches on the subject should focus on better understanding this issue. This not seems the path followed by the area, which has directed its effort on researches focused on tool assessments, such as automatic detection or smell removal. In order to face the problem, we propose a research agenda, indicating that the area needs to: i) investigate the nature of smells, grouping them according to their characteristics; ii) explore human factors affecting smell detection, and their relationships; iii) explore cognitive aspects affecting human perception of smells; and iv) outline attributes of the experiments in order to classify the context where findings can be grouped. These challenges indicate some paths to be followed by the area in order to systematize the use of code smell in the practice of the software development. Despite difficulties, we believe that this is possible and our thesis contributes for this journey. |
publishDate |
2015 |
dc.date.submitted.none.fl_str_mv |
2015-06-18 |
dc.date.accessioned.fl_str_mv |
2017-06-07T11:28:44Z |
dc.date.available.fl_str_mv |
2017-06-07T11:28:44Z |
dc.date.issued.fl_str_mv |
2017-06-07 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://repositorio.ufba.br/ri/handle/ri/22844 |
url |
http://repositorio.ufba.br/ri/handle/ri/22844 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Instituto de Matemática |
dc.publisher.program.fl_str_mv |
Programa Multiinstitucional de Pós-graduação em Ciência da Computação, UFBA-UNIFACS-UEFS |
dc.publisher.initials.fl_str_mv |
IM |
dc.publisher.country.fl_str_mv |
brasil |
publisher.none.fl_str_mv |
Instituto de Matemática |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFBA instname:Universidade Federal da Bahia (UFBA) instacron:UFBA |
instname_str |
Universidade Federal da Bahia (UFBA) |
instacron_str |
UFBA |
institution |
UFBA |
reponame_str |
Repositório Institucional da UFBA |
collection |
Repositório Institucional da UFBA |
bitstream.url.fl_str_mv |
https://repositorio.ufba.br/bitstream/ri/22844/1/Tese%20final%20%20-%20Am%c3%a2ncio.pdf https://repositorio.ufba.br/bitstream/ri/22844/2/license.txt https://repositorio.ufba.br/bitstream/ri/22844/3/Tese%20final%20%20-%20Am%c3%a2ncio.pdf.txt |
bitstream.checksum.fl_str_mv |
ceb4c269d4cf1fa74d0861c679a6f10d 05eca2f01d0b3307819d0369dab18a34 133c44948f585cd5fd83f9e7ec597b39 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA) |
repository.mail.fl_str_mv |
|
_version_ |
1808459539670892544 |