O objetivo da engenharia de software é produzir software que atenda às necessidades e expectativas dos clientes e usuários, que seja entregue no prazo e no orçamento estabelecidos, que seja fácil de modificar e evoluir, que seja compatível com outros sistemas e que seja livre de defeitos e vulnerabilidades.
Para alcançar esses objetivos, a engenharia de software se baseia em diversas áreas do conhecimento, como matemática, lógica, ciência da computação, gestão de projetos, comunicação, ética e direito. A engenharia de software também utiliza padrões, normas, modelos, metodologias, técnicas e ferramentas específicas para cada etapa do processo de desenvolvimento de software.v