A Engenharia de Software é uma área da engenharia que se propõe a fornecer parâmetros para o desenvolvimento de softwares. Ela está relacionada a todos os aspectos do desenvolvimento de software, abrangendo desde aspectos iniciais como a especificação de requisitos até processos de manutenção (SOMMERVILLE, 2008). A Engenharia de Software engloba três elementos – métodos, ferramentas e procedimentos – que permite controlar o processo de desenvolvimento e oferece uma base sólida para a implementação de softwares de forma produtiva e com qualidade. Os métodos fornecem os detalhes do que fazer para se construir o software, as ferramentas fornecem apoio automatizado ou semi-automatizado aos métodos e por fim os procedimentos formam um elo que conecta os métodos e as ferramentas permitindo assim o desenvolvimento do software de forma racional e oportuna (PRESSMAN, 2006).

O termo Engenharia de Software surgiu no final dos anos 60 durante uma conferência em que se discutia a “crise do software”. A crise do software por sua vez era um resultado direto da evolução tecnológica empregada na fabricação do hardware de computador baseado em circuitos integrados. Essa evolução viabilizou a implementação de softwares antes considerados impossíveis de serem desenvolvidos. Os softwares resultantes tornavam-se cada vez maiores e o desenvolvimento informal mostrava-se cada vez mais inviável. Projetos de grande porte apresentavam, muitas vezes, anos de atraso. Os custos frequentemente superavam as previsões, o software resultante não era confiável além de ser difícil de manter e de desempenho insatisfatório (SOMMERVILLE,2008) .

Esse quadro tornou evidente a necessidade de se criar novos processos de gestão e desenvolvimento de software. Inicialmente os processos de desenvolvimento de software mantinham conceitos típicos da Engenharia. Eles ajudaram a sistematizar o processo de desenvolvimento de software e mais tarde deu origem a Engenharia de Software (SOUZA NETO, 2004). Desses processos surgiram as primeiras metodologias de desenvolvimento de software, como a metodologia cascata, a prototipação, o espiral e outros.


Agile desmistificado com Scrum, XP, Kanban, Spotify e Trello

Referências:

PRESSMAN, Roger S. Engenharia de Software : 6 ed. São Paulo: McGraw Hill/Nacional, 2006.

SOMMERVILLE, Ian. Engenharia de Software : 8 ed. Rio de Janeiro: Prentice-Hall, 2008.

SOUZA NETO, Oscar Nogueira de. Análise Comparativa das Metodologias de Desenvolvimento de Softwares Tradicionais e Ágeis. Belém: Unama – Universidade da Amazônia, 2004.