A grosso modo, podemos dizer que a Engenharia de Software é uma área do conhecimento relacionado a todos os aspectos da produção e gestão de um software, compreendendo desde o seu estágio inicial na especificação dos requisitos até a sua manutenção, a qual tem por objetivo organizar, aumentar a produtividade e trazer mais qualidade ao software que desenvolvemos.
Hoje o software é uma das tecnologia mais importantes que temos, e consequentemente indispensável no nosso dia a dia, seja nos negócios, ciência, engenharia entre outros. Embora não fosse possível imaginar tal dependência a 50 anos atrás, pode se dizer que o software é tanto o produto quanto o meio utilizado para entrega do produto.
Diante desta evolução do software, a forma como o seu desenvolvimento e gestão vem sendo realizados também tem evoluído. A primeira definição que temos sobre o que é a engenharia de software é de 1969 por F. L. Baue, que diz que a engenharia de software é:
O estabelecimento e uso de sólidos princípios de engenharia para que esse possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais.”
Com base nesta definição é possível observar que não havia a necessidade de satisfação do cliente, assim como pontualidade na entrega, necessidade de testes e tão pouco faz menção aos aspectos de qualidade do software. Pontos estes que são o fundamentais nos dias de hoje.
A visão atual da Engenharia de software discute aspectos relacionados:
- Especificação do software
- O desenvolvimento do software
- A validação do software
- A evolução do software
E com foco na qualidade tem como visão os elementos:
- Métodos: como fazer para construir
- Ferramentas: Apoio automatizado
- Procedimentos: ligação entre métodos e ferramentas
Embora a engenharia de software tenha evoluído muito nos últimos anos, ainda assim esta ainda é uma disciplina muito nova se comparado as outras engenharias, como engenharia civil, engenharia física entre outras. O que acaba por ainda existir muitos mitos na engenharia de software além de pontos a serem melhorados e estudados.
Uma série de artigos relacionados a engenharia de software, podem ser encontrados na tag dedicada sobre o tema.