Engenharia de software é o estabelecimento e uso de princípios de engenharia para desenvolver software de forma econômica e que seja confiável e funcione eficientemente. Ela envolve especificação, desenvolvimento e manutenção de sistemas de software aplicando ciência da computação, gestão de projetos e outras disciplinas. Compreende um conjunto de etapas como requisitos, projeto, implementação, teste e manutenção.