A Engenharia de Software (ES) é uma área da computação voltada à especificação, desenvolvimento, manutenção e criação de software, com a aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando organização, produtividade e qualidade. Atualmente essas tecnologias e práticas englobam linguagens de programação, banco de dados, ferramentas, plataformas, bibliotecas, padrões de projeto de software, processo de software, qualidade de software. Além disso, a ES deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema computacional de qualidade e que atenda às necessidades de um requisitante de software. Os principais fundamentos científicos para a ES envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, além de:
      -   
 A projetar, modelar e codificar programas. 
  -   
 B modelar, escrever o código fonte e testar o sistema. 
  -   
 C projetar, testar o sistema e cuidar do Banco de Dados. 
  -   
 D testar o sistema, garantir funcionalidade e corrigir erro de programação. 
  -   
 E projetar, implementar e manter sistemas de software, avaliar e garantir sua qualidade.