A engenharia de software é uma disciplina de engenharia que envolve todos os aspectos de desenvolvimento e manutenção de um produto de software. As disciplinas de engenharia como a civil, mecânica e elétrica envolve o projeto, análise e construção de um artefato para algum propósito prático. A engenharia de software não é exceção a esta regra — produtos de software certamente possuem propósitos práticos.
A IEEE define Engenharia de Software [1] da seguinte forma:
A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software, isto é, a aplicação de engenharia em software;
O estudo de abordagens como a do primeiro item.
Como esta definição sugere, o que é produzido não é a única coisa importante, mas também como é produzido. As disciplinas de engenharia empregam um conjundo estabelecido de abordagens sistemáticas, disciplinadas e quantificáveis para o desenvolvimento de artefatos. Ao aplicar cuidadosamente um conjunto análogo de abordagens ao desenvolvimento de software, podemos esperar a produção de software altamente confiável, manutenível e que atende os requisitos especificados. Uma abordagem disciplinada é particularmente importante conforme o tamanho de um projeto de software cresce. Com o aumento de tamanho surge uma complexidade muito maior, e aplicar uma abordagem sistemática e disciplinada é essencial.
Este trecho de texto foi traduzido e adaptado a partir de [2].
Referências
"IEEE Standard Glossary of Software Engineering Terminology", IEEE Std 610 12-1990, December 1990, p. 67
BRAUDE, Eric J.; BERNSTEIN, Michael E.. Software Engineering: Modern Approuches. 2. ed. Boston: Wiley, 2010. Cap. 1, p. 2.