Considere as afirmações relacionadas à reutilização de software e responda: I. Softwares menores são mais simples de manter. II. Atualmente não há ferramentas que permitam o compartilhamento e versionamento de código fonte. III. Em algumas metodologias de desenvolvimento, escrevemos os testes mesmo antes de começar a programar as funcionalidades do sistema. IV. Módulos que realizam tarefas específicas facilitam seu reuso em outros sistemas.
Questão
Considere as afirmações relacionadas à reutilização de software e responda:
I. Softwares menores são mais simples de manter. II. Atualmente não há ferramentas que permitam o compartilhamento e versionamento de código fonte. III. Em algumas metodologias de desenvolvimento, escrevemos os testes mesmo antes de começar a programar as funcionalidades do sistema. IV. Módulos que realizam tarefas específicas facilitam seu reuso em outros sistemas.
Alternativas
A) Apenas I e II estão corretas
B) Apenas I, II e IV estão corretas
C) Apenas I, III e IV estão corretas
D) Todas estão corretas
E) Nenhuma está correta
Explicação
Vamos analisar cada afirmação:
I. Softwares menores são mais simples de manter. Em geral, quando um software é dividido em partes menores (menor complexidade por módulo, menor acoplamento e maior coesão), a manutenção tende a ser mais simples: fica mais fácil entender, testar, corrigir e evoluir. Portanto, a afirmação I é verdadeira.
II. Atualmente não há ferramentas que permitam o compartilhamento e versionamento de código fonte. Isso é falso: existem diversas ferramentas amplamente usadas para versionamento e compartilhamento de código, como Git e plataformas como GitHub/GitLab/Bitbucket, entre outras. Logo, a afirmação II é falsa.
III. Em algumas metodologias de desenvolvimento, escrevemos os testes mesmo antes de começar a programar as funcionalidades do sistema. Isso descreve o TDD (Test-Driven Development), em que os testes são escritos antes do código de produção. Assim, a afirmação III é verdadeira.
IV. Módulos que realizam tarefas específicas facilitam seu reuso em outros sistemas. Módulos com responsabilidade bem definida (alta coesão) e interfaces claras tendem a ser mais reaproveitáveis, pois podem ser incorporados em outros contextos com menos dependências. Portanto, a afirmação IV é verdadeira.
Conclusão: verdadeiras são I, III e IV.
Alternativa correta: (C).