Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos

Desenvolvimento Guiado por Testes (TDD) e uma das praticas sugeridas na Programacao Extrema. A mecanica da pratica e simples: o programador escreve o teste antes de escrever o codigo. E, portanto, possivel inferir que a pratica de TDD e uma pratica de testes de software. Entretanto, muitos autor...

Full description

Bibliographic Details
Main Author: Mauricio Finavaro Aniche
Other Authors: Marco Aurélio Gerosa
Language:Portuguese
Published: Universidade de São Paulo 2012
Subjects:
Online Access:http://www.teses.usp.br/teses/disponiveis/45/45134/tde-31072012-181230/
id ndltd-IBICT-oai-teses.usp.br-tde-31072012-181230
record_format oai_dc
collection NDLTD
language Portuguese
sources NDLTD
topic Desenvolvimento Guiado por Testes
Projeto de Classes
Qualidade Interna de Codigo.
Sistemas Orientados a Objetos
Class Design
Internal Code Quality.
Object-Oriented Systems
Test-Driven Development
spellingShingle Desenvolvimento Guiado por Testes
Projeto de Classes
Qualidade Interna de Codigo.
Sistemas Orientados a Objetos
Class Design
Internal Code Quality.
Object-Oriented Systems
Test-Driven Development
Mauricio Finavaro Aniche
Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
description Desenvolvimento Guiado por Testes (TDD) e uma das praticas sugeridas na Programacao Extrema. A mecanica da pratica e simples: o programador escreve o teste antes de escrever o codigo. E, portanto, possivel inferir que a pratica de TDD e uma pratica de testes de software. Entretanto, muitos autores de livros conhecidos pela industria e academia afirmam que os efeitos da pratica vao alem. Segundo eles, TDD ajuda o desenvolvedor durante o processo de criacao do projeto classes, fazendo-os criar classes menos acopladas e mais coesas. Entretanto, grande parte dos trabalhos da literatura sao voltados a descobrir se a pratica faz diferenca na qualidade do codigo gerado, mas poucos sao os autores que discutem como a pratica realmente auxilia. Mesmo os proprios praticantes nao entendem ou conseguem expressar bem como a pratica os guia. Este trabalho tem por objetivo compreender melhor os efeitos de TDD e como sua pratica influencia o desenvolvedor durante o processo de projeto de sistemas orientados a objetos. Para entende-las, neste trabalho optamos por um estudo exploratorio essencialmente qualitativo, no qual participantes foram convidados a resolver exercicios pre-preparados utilizando TDD e, a partir dos dados colhidos nessa primeira parte, nos levantamos detalhes sobre como a pratica influenciou as decisoes de projeto de classes dos participantes por meio de entrevistas. Ao final, observamos que a pratica de TDD pode guiar o desenvolvedor durante o processo de criacao do projeto de classes por meio de constantes feedbacks sobre a qualidade do projeto. Esses feedbacks alertam desenvolvedores sobre possiveis problemas, como alto acoplamento ou baixa coesao. Os desenvolvedores, por sua vez, devem interpretar e melhorar o projeto de classes. Este trabalho catalogou e nomeou os padroes de feedback percebidos pelos participantes. === Test-Driven Development (TDD) is one of the suggested practices in Extreme Programming (XP). The mechanical is simple: the developer writes a test before writing the implementation. Thus, TDD is often seen as a software testing technique. However, many famous book authors suggest that TDD can help developers during the class design creation process, enabling developers to create less coupled highly cohesive classes. Most of the academic studies are interested on finding the difference between a TDDd and a non-TDDd code. Only a few of them discuss how the practice really supports class design. Even practitioners do not understand how the practice guides them. This work aims to understand better the effects of TDD and how the practice influences the practitioner during the class design process in object-oriented systems. To better understand them, we did a essencially qualitative explorative study, in which participants were invited to solve a set of pre-prepared exercises using TDD and, based on the gathered data, we retrieved details of how the practice influenced the developers class design decisions through interviews. At the end, we observed that the practice of TDD can guide developers during the class design creation process through constant feedback about its quality. These feedbacks alert developers about possible problems, such as high coupling or low cohesion. Developers then should interpret and improve the class design accordingly. This study also catalogues the TDD feedback patterns perceived by the participants.
author2 Marco Aurélio Gerosa
author_facet Marco Aurélio Gerosa
Mauricio Finavaro Aniche
author Mauricio Finavaro Aniche
author_sort Mauricio Finavaro Aniche
title Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
title_short Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
title_full Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
title_fullStr Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
title_full_unstemmed Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos
title_sort como a prática de tdd influencia o projeto de classes em sistemas orientados a objetos
publisher Universidade de São Paulo
publishDate 2012
url http://www.teses.usp.br/teses/disponiveis/45/45134/tde-31072012-181230/
work_keys_str_mv AT mauriciofinavaroaniche comoapraticadetddinfluenciaoprojetodeclassesemsistemasorientadosaobjetos
AT mauriciofinavaroaniche howthepracticeoftddinfluencestheclassdesignonobjectorientedsystems
_version_ 1718890434648866816
spelling ndltd-IBICT-oai-teses.usp.br-tde-31072012-1812302019-01-21T22:04:34Z Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos How the practice of TDD influences the class design on object-oriented systems Mauricio Finavaro Aniche Marco Aurélio Gerosa Rafael Prikladnicki Ismar Frango Silveira Desenvolvimento Guiado por Testes Projeto de Classes Qualidade Interna de Codigo. Sistemas Orientados a Objetos Class Design Internal Code Quality. Object-Oriented Systems Test-Driven Development Desenvolvimento Guiado por Testes (TDD) e uma das praticas sugeridas na Programacao Extrema. A mecanica da pratica e simples: o programador escreve o teste antes de escrever o codigo. E, portanto, possivel inferir que a pratica de TDD e uma pratica de testes de software. Entretanto, muitos autores de livros conhecidos pela industria e academia afirmam que os efeitos da pratica vao alem. Segundo eles, TDD ajuda o desenvolvedor durante o processo de criacao do projeto classes, fazendo-os criar classes menos acopladas e mais coesas. Entretanto, grande parte dos trabalhos da literatura sao voltados a descobrir se a pratica faz diferenca na qualidade do codigo gerado, mas poucos sao os autores que discutem como a pratica realmente auxilia. Mesmo os proprios praticantes nao entendem ou conseguem expressar bem como a pratica os guia. Este trabalho tem por objetivo compreender melhor os efeitos de TDD e como sua pratica influencia o desenvolvedor durante o processo de projeto de sistemas orientados a objetos. Para entende-las, neste trabalho optamos por um estudo exploratorio essencialmente qualitativo, no qual participantes foram convidados a resolver exercicios pre-preparados utilizando TDD e, a partir dos dados colhidos nessa primeira parte, nos levantamos detalhes sobre como a pratica influenciou as decisoes de projeto de classes dos participantes por meio de entrevistas. Ao final, observamos que a pratica de TDD pode guiar o desenvolvedor durante o processo de criacao do projeto de classes por meio de constantes feedbacks sobre a qualidade do projeto. Esses feedbacks alertam desenvolvedores sobre possiveis problemas, como alto acoplamento ou baixa coesao. Os desenvolvedores, por sua vez, devem interpretar e melhorar o projeto de classes. Este trabalho catalogou e nomeou os padroes de feedback percebidos pelos participantes. Test-Driven Development (TDD) is one of the suggested practices in Extreme Programming (XP). The mechanical is simple: the developer writes a test before writing the implementation. Thus, TDD is often seen as a software testing technique. However, many famous book authors suggest that TDD can help developers during the class design creation process, enabling developers to create less coupled highly cohesive classes. Most of the academic studies are interested on finding the difference between a TDDd and a non-TDDd code. Only a few of them discuss how the practice really supports class design. Even practitioners do not understand how the practice guides them. This work aims to understand better the effects of TDD and how the practice influences the practitioner during the class design process in object-oriented systems. To better understand them, we did a essencially qualitative explorative study, in which participants were invited to solve a set of pre-prepared exercises using TDD and, based on the gathered data, we retrieved details of how the practice influenced the developers class design decisions through interviews. At the end, we observed that the practice of TDD can guide developers during the class design creation process through constant feedback about its quality. These feedbacks alert developers about possible problems, such as high coupling or low cohesion. Developers then should interpret and improve the class design accordingly. This study also catalogues the TDD feedback patterns perceived by the participants. 2012-04-25 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis http://www.teses.usp.br/teses/disponiveis/45/45134/tde-31072012-181230/ por info:eu-repo/semantics/openAccess Universidade de São Paulo Ciência da Computação USP BR reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo instacron:USP