A Engenharia de Software é a área da computação que aplica os princípios da engenharia ao processo de desenvolvimento de software. Se um programador simplesmente escreve código, o engenheiro de software projeta, desenvolve, testa e mantém sistemas de software complexos, de grande escala e de missão crítica, de forma organizada, metodológica e garantindo a qualidade. Ele se preocupa não apenas com o código, mas com todo o ciclo de vida do software, desde o levantamento das necessidades do cliente, passando pela arquitetura do sistema, pelo gerenciamento do projeto, pela garantia de qualidade e pela evolução do software ao longo do tempo. É a disciplina que busca transformar o desenvolvimento de software de uma arte para um processo de engenharia rigoroso, previsível e eficiente.