Os desenvolvedores de software geralmente contam com padrões de arquitetura de software bem conhecidos, como MVC, para construir seus aplicativos. Em muitos desses padrões, as classes desempenham funções específicas no sistema, como Controladores ou Entidades, o que significa que cada uma dessas classes possui características específicas em termos de design e implementação de classes orientadas a objetos. Na verdade, como mostramos em um estudo anterior, as funções arquitetônicas são diferentes entre si em termos de métricas de código.

Neste artigo, apresentamos um estudo realizado em uma empresa de desenvolvimento de software no qual capturamos as percepções dos desenvolvedores sobre os aspectos do design orientado a objetos das funções arquitetônicas em seu sistema e se essas percepções correspondem à análise métrica do código-fonte.

Descobrimos que seus desenvolvedores não têm uma percepção comum de como suas funções arquitetônicas se comportam em termos de aspectos de design orientado a objetos e que suas percepções também não correspondem aos resultados da análise métrica do código-fonte. Este fenômeno também não parece estar relacionado com a experiência dos desenvolvedores. Achamos esses resultados alarmantes e, portanto, sugerimos que as equipes de desenvolvimento de software invistam na educação e no compartilhamento de conhecimento sobre como as funções arquiteturais de seus sistemas se comportam.