Engenharia de Software é uma ciência?


  • Wikipedia:
    • "Engenharia de software é uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade"
    • Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema de informação Sistema computacional, pois ambos se confundem!
    • Atualmente, essas tecnologias e práticas englobam linguagens de programação, banco de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão da Qualidade de Software.


  • O papel do pesquisador é compreender a natureza dos processos, produtos e o relacionamento entre os dois no contexto do sistema
  • O papel do profissional da prática (engenheiro de software) é construir sistemas cada vez melhores, utilizando o conhecimento disponível
  • Mais que em outras disciplinas, estes papéis são simbióticos
  • O pesquisador precisa dos laboratórios para observar e manipular as variáveis
  • Elas somente existem quando os engenheiros de software constróem sistemas de software
    • O engenheiro de software precisa compreender melhor como construir sistemas melhores
    • O pesquisador pode produzir modelos para ajudar


Engenharia de Software é desenvolvimento


  • As tecnologias da disciplina são baseadas no elemento humano
  • O Software não é o mesmo o tempo todo
    • Existe um enorme número de variáveis que provocam diferenças
    • Seus efeitos precisam ser entendidos
  • Atualmente,
    • o Conjunto de modelos insuficientes que nos permita pensar sobre a disciplina
    • Falta de conhecimento dos limites das tecnologias para certos contextos
    • Análise e experimentação insuficientes (empirismo x experimentação)