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: