Um ramo da ciência da computação, a engenharia de software é uma ala da engenharia que se preocupa com o crescimento de produtos de software. Trabalha dentro de um conjunto de directrizes, melhores práticas e técnicas que foram meticulosamente aperfeiçoadas ao longo dos anos, transformando-se à medida que o software e a tecnologia mudam. A engenharia de software leva ao aparecimento de um produto que é firme, eficaz e eficiente naquilo que faz. A engenharia de software engloba duas partes, nomeadamente o software e a engenharia.