Requirements engineering - a roadmap
"No Silver Bullet: essence and accidents of software engineering"
Resumo:
Este artigo (Brooks, 1986) defende a inexistência de um avanço tecnológico que gere uma melhora de ordem de magnitude na produtividade, simplicidade e confiabilidade da construção de software. O autor ainda aponta alguns caminhos promissores ainda em desenvolvimento.
Introdução
Há, hoje, grande discussão em torno de promover grande melhora na produtividade da construção de sistemas complexos. Existem duas partes bastante separadas que constituem as atividades relacionadas ao desenvolvimento do software: atividades essenciais, que envolvem a criação de um modelo conceitual para o sistema, e atividades acidentais, que envolvem a própria implementação do sistema em um programa. O objeto deste artigo é defender que avanços significativos conquistados até hoje foram promovidos em cima das questões acidentais do software, e que ganhos da mesma proporção no desenvolvimento das atividades essenciais são muito mais difíceis de serem alcançados.
O desenvolvimento de software deve ser difícil?
A própria natureza do software torna improvável que exista uma solução mágica para o problema da construção de sistemas, como a integração eletrônica representaram para o problema de construção de hardware complexo. Não é que o software evolui muito lentamente; na realidade, o hardware é que evolui muito rapidamente; não existem paralelos tecnológicos no mundo com a velocidade da inovação em hardware.
Analisando os problemas inerentes à essência do problema do desenvolvimento de software, existem os seguintes pontos particulares:
Complexidade: Há poucos elementos repetitivos e idênticos, e fazer crescer o software envolve muito trabalho além de agregar ou repetir componentes menores. Não há crescimento linear para o software.
Conformidade: Não há conforto em um princípio unificado. O software, por ser uma criação muito recente, precisa ser adaptado a todo tipo de