Skip to content
This repository has been archived by the owner on Aug 3, 2021. It is now read-only.

Latest commit

 

History

History
16 lines (8 loc) · 2.07 KB

opiniao.md

File metadata and controls

16 lines (8 loc) · 2.07 KB

Você acredita que há um algoritmo para projetar “estações móveis de produção de sanduíche”? Quando o algoritmo é executado temos como resultado um “projeto” que atende os requisitos e detalha a estação móvel?

  • Não, porque projetar estações móveis de produção de sanduíche depende de muitas decisões que não podem ser tomadas por um algorítmo.

Você acredita que há um algoritmo para projetar software? Quando o algoritmo é executado temos como resultado um conjunto de módulos, ou no caso do algoritmo optar pelo projeto orientado a objetos teríamos um diagrama de classes, interfaces, a herança, a organização destes elementos em grupos (packages), a identificação de métodos e outros detalhes que, quando implementados e colocados em execução, atendem os requisitos estabelecidos?

  • Não. Em vez de algorítmos existem boas práticas que podem ser empregadas para projetar um software.

Steve McConnell, no livro Code Complete, 2nd edition, Capítulo 5, afirma: “em projetos informais, muito do esforço de design é realizado enquanto programadores estão diante do teclado. O design é escrever em pseudocódigo a interface de uma classe, ou desenhar diagramas registrando o relacionamento entre algumas classes, ou perguntar a um outro programador qual padrão de projeto é uma melhor escolha.” Você concorda?

  • Concordo já que em projetos informais não há muita preocupação em separar o design da construção do software.

Steve McConnell, no livro Code Complete, 2nd edition, Capítulo 5, afirma: “técnicas de projeto tendem a ser “heurísticas”, “regras práticas” ou “coisas para tentar que algumas vezes funcionam” em vez de processos que podem ser repetidos e que produzem resultados previsíveis. Design envolve tentativa e erro. Uma técnica ou ferramenta que funciona bem em um cenário ou em algum aspecto de um cenário pode não funcionar no próximo projeto.” Você concorda?

  • Concordo, o design de software é subjetivo e depende de decisões feitas pelo designer responsável, assim como do contexto do projeto em questão.