Skip to content

Latest commit

 

History

History
13 lines (9 loc) · 2.42 KB

opiniao.md

File metadata and controls

13 lines (9 loc) · 2.42 KB

Opiniões

  • 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?

    • Acredito que possa existir sim, mas pode ser diferente dependendo do contexto.
  • 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?

    • Concordo em partes. Não há um algoritmo único para projetar software e resolver todos os problemas. Mas há alguns elementos básicos que precisam ser considerados para se 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?

    • Sim, pois, principalmente em projetos informais não há um planejamento de design antes de estar diante do teclado. Porém, não há como produzir a solução para um problema sem um projeto, mesmo que ele somente apareça quando o programador estiver diante do teclado. A vantagem de ter um projeto antes da construção é que ele poderá ser 'testado' antes de ter que construir de fato.
  • 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?

    • Sim, algums designs podem funcionar em determinado projeto mas serem totalmente diferentes em outros projetos dependendo do contexto, do domínio e dos recursos disponíveis.