Fichamento No Silver Bullet - Essence and Accidente in Software Engineering
Por: Lucas Henrique • 25/9/2018 • Resenha • 603 Palavras (3 Páginas) • 389 Visualizações
Universidade Federal de Jataí
Curso de Ciência da Computação
Fichamento – No Silver Bullet: Essence and Accident in Software Engineering
Autor do artigo fonte: Jr. Frederick P. Brooks
Lucas Henrique B. Guimarães
Trabalho apresentado à Profª.
Joslaine Cristina Jeske de Freitas da
disciplina Engenharia de Software
como requisito parcial para
obtenção da média semestral.
Jataí - GO 21/08/ 2018
Abordando as principais ideias do artigo de Jr. Frederick P. Brooks
Segundo o autor, projetos de software tem semelhança com um Lobisomem; começam
inocentes, sem problemas aparentes. No entanto, eles podem se tornar monstros em forma de
prazos perdidos e erros. Quando isso ocorre, rapidamente procuramos soluções mágicas, ou
nesse caso, balas de prata.
O autor divide então os problemas relacionados ao desenvolvimento de software em
dois: os essenciais e os acidentais.
Dificuldades essenciais
As dificuldades essenciais dizem respeito somente ao software. Dificilmente haverá
uma invenção para auxiliar na produtividade de um software, utilidade e simplicidade da
mesma maneira que os componentes eletrônicos fizeram para o hardware de computadores. O
autor separa os problemas inerentes ao software em quatro: complexidade, conformidade,
alterabilidade e invisibilidade.
Complexidade: diz respeito ao tamanho da complexidade que a entidade de um
software possui. Tudo deve ser diferente, pois caso duas partes forem iguais então elas serão
transformadas em uma função. Da complexidade vem as dificuldades de comunicação, o que
leva a erros técnicos e de gerenciamento. Portanto, um software não escala linearmente.
Conformidade: o problema da complexidade não é único do software. Na física, pouco
se sabe sobre de alguns assuntos. No entanto, existem leis universais que, se seguidas, tem
grande probabilidade de sucesso. O software não possui essa conformidade, pois modelos
mudam de acordo com o que está sendo mais usado em uma determinada época.
Alterabilidade: O software sempre precisa ser modificado. E as funcionalidades são
as partes mais pressionadas nesse processo. Um software deve ser, portanto, flexível o
suficiente para suportar novas mudanças.
Invisibilidade: a representação abstrata de um software difere totalmente de objetos
geométricos abstratos. Tentar fazer um diagrama da estrutura do software pode levar a diversos
grafos diferentes. Com isso, a comunicação entre os diferentes grupos responsáveis pela
criação do software fica comprometida.
Dificuldades acidentais
Houveram três soluções no passado que focavam nos problemas referentes à construção
de softwares, mas que eram dificuldades acidentais (devido às limitações naturais da época).
São elas:
Linguagens de alto nível: a capacidade dessas linguagens foi e continua sendo de
extrema
...