Arquitetura de Software

Conteúdo produzido pelas turmas de Arquitetura de Software - Computação @ UFCG

Discussão sobre Refactoring


Este é um documento utilizado como guia para discutir em sala de aula conceitos relacionados à refatoração de código e arquitetura.


Valter Lucena

T. Mens and T. Tourwe, "A survey of software refactoring," in IEEE Transactions on Software Engineering, vol. 30, no. 2, pp. 126-139, Feb. 2004, doi: 10.1109/TSE.2004.1265817.

  • Discutir mais as categorias e desafios da área.
  • Destaque para forma como abordar o assunto: através de um exemplo em comum.

Vinicius Brandão Araújo

T. Mens and T. Tourwe, "A survey of software refactoring," in IEEE Transactions on Software Engineering, vol. 30, no. 2, pp. 126-139, Feb. 2004, doi: 10.1109/TSE.2004.1265817.

  • Mais da metade do orçamento é com refactoring!
  • Discutir mais o artigo. Categorias? Problemas? Ferramentas? Desafios?

Yure Pereira Campos

Silva, Danilo, Nikolaos Tsantalis, and Marco Tulio Valente. "Why we refactor? confessions of github contributors." Proceedings of the 2016 24th acm sigsoft international symposium on foundations of software engineering. 2016.

  • Primeira investigação empírica com o propósito de identificar as motivações reais por trás de operações de refatoração específicas aplicadas por desenvolvedores.

“monitoraram efetivamente 124 projetos Java mais populares hospedados no GitHub para detectar refatorações aplicadas recentemente (no total de 463 ocorrências em 222 commits no período de 61 dias), e pediram aos desenvolvedores (que realmente realizaram as modificações) que explicassem os motivos por trás de sua decisão de refatorar o código. "

- Firehouse interview?

“os desenvolvedores tendem a “floss refactor” (ou seja, aplicar edições de mudança comportamental intencionais junto com as refatorações).”

- Vamos discutir mais isso.

“A refatoração serve a vários propósitos, como melhorar o design, entender o código, encontrar bugs e melhorar a produtividade. "

- Essas foram as categorias levantadas? Vamos discutir.

“Por fim, outra boa contribuição foi que tiveram o cuidado de disponibilizar publicamente os dados coletados e as ferramentas usadas que permitem a replicação das descobertas e facilitam pesquisas futuras, em http://aserg-ufmg.github.io/why-we-refactor."

- Importante! Ciência é reprodução.

Sarah Jéssika da Pontes Albuquerque

Silva, Danilo, Nikolaos Tsantalis, and Marco Tulio Valente. "Why we refactor? confessions of github contributors." Proceedings of the 2016 24th acm sigsoft international symposium on foundations of software engineering. 2016.

“Foram identificadas 44 motivações distintas.”

- Vamos discutir algumas? As mais populares?

“A principal motivação é a mudança de requisitos (adição de funcionalidade, bug fixes).”

Rodrigo Oliveira

Murphy-Hill, Emerson, Chris Parnin, and Andrew P. Black. "How we refactor, and how we know it." IEEE Transactions on Software Engineering 38.1 (2011): 5-18.

Na análise automatizada de Xing e Stroulia da base de código do Eclipse, os autores concluem que “na verdade, a refatoração é uma prática frequente”.

- Que artigo é esse? Fiquei com a impressão de que você revisou outro artigo.

“Os autores fazem essa afirmação principalmente com base na observação de um grande número de mudanças estruturais, 70% das quais são consideradas refatoração. "

João Antonio

Murphy-Hill, Emerson, Chris Parnin, and Andrew P. Black. "How we refactor, and how we know it." IEEE Transactions on Software Engineering 38.1 (2011): 5-18.

“Para isto, foi elaborado um experimento, através da análise de quatro conjuntos de dados distintos. "

- que conjuntos?
  • Vamos dar mais detalhes da análise. O que você descobriu de interessante?

“O artigo questiona várias suposições declaradas na literatura sobre como os programadores refatoram.”

- Tem exemplo de questionamento e resposta?

Vinícius de Medeiros Soares

G. Soares, R. Gheyi, D. Serey and T. Massoni, "Making Program Refactoring Safer," in IEEE Software, vol. 27, no. 4, pp. 52-57, July-Aug. 2010, doi: 10.1109/MS.2010.63.

“O artigo propõe uma ferramenta para aumentar a segurança do processo de refatoração "

- Who watches the watchmen?

“Esse processo segue 7 passos”

- Explica para a gente.

“Os passos seguidos no funcionamento da ferramenta são bem explicados, mas a figura utilizada para ilustrar esse processo poderia ser mais detalhada e organizada, visto que por si só, a figura é de difícil compreensão.”

- Explica mais um pouco, por favor.