Engenharia de software é uma área muito complexa dedicada à concepção, execução, desenvolvimento e manutenção de sistemas de software, aplicando tecnologias e práticas de ciência da computação, gerência de projetos e outras disciplinas, para que os sistemas se comportem de forma confiável e eficiente, satisfazendo todos os requisitos definidos. O termo engenharia de software apareceu pela primeira vez em 1968, após a crise do software (época que se refere às dificuldades de desenvolver programas livres de defeitos, facilmente compreensíveis e verificáveis).
Um software pode ser produzido por uma variedade de propósitos, para atender as necessidades específicas de um determinado cliente, empresa, usuários e até mesmo para uso pessoal, utilizando-se de técnicas que englobem linguagens de programação, base de dados, ferramentas, plataformas, bibliotecas, padrões, processos, entre outras. O processo de desenvolvimento de software pode se tornar muito complexo, dependendo do seu tamanho e criticidade. Por exemplo, a criação de um sistema operacional é uma tarefa que exige gerenciamento de projetos, muitos recursos e uma equipe de trabalho disciplinado.
A gerência de projetos de software é constituída por um conjunto de atividades, que devem ser administradas de acordo com parâmetros de custo, tempo e qualidade, com a utilização de métricas quantitativas e qualitativas, ao longo do processo de desenvolvimento, para garantir um produto final que satisfaça às expectativas do cliente, dentro daquilo que foi acordado inicialmente. No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento.
A utilização de softwares de qualidade garante a segurança das transações, dos negócios, das pessoas envolvidas e mantém alta disponibilidade dos serviços. É papel da engenharia de software trabalhar nestes quesitos e evitar problemas que aparecem na construção de um software, tais como:
- Estouro de prazos e custos: Muitas vezes decorrente de uma falta de controle do escopo (modelo) do projeto, gerando previsões de prazos e custos fora da realidade.
- Baixa qualidade: Devido ao excesso de bugs (erros) encontrados no final do projeto, por uma fase de teste mal executada.
- Aderência do produto final: Além dos diversos bugs encontrados, softwares que não atendem aos requisitos ou necessidades dos clientes, gerando piores resultados.
- Alto índice de retrabalho: Durante a confecção de projetos mudanças próxima da entrega do produto, geram alto custo e retrabalho do projeto.
Em engenharia de software as responsabilidades são compartilhadas por um grande grupo de pessoas, com destaque para o gerente de projetos que gerencia todo o trabalho, e o Engenheiro de Software que é o especialista da área.
A engenharia de software afeta as economias e as sociedades de diferentes maneiras. Muitos países gastam uma percentagem apreciável do seu PIB em software, que contribuem na redução de custos, melhoram a qualidade e agilidade dos serviços de saúde, órgãos governamentais e outros serviços sociais.
Referências Bibliográficas:
https://web.archive.org/web/20090321154208/http://imasters.uol.com.br:80/artigo/3691/des_de_software/engenharia_de_software
http://pt.wikipedia.org/wiki/Engenharia_de_software
http://pt.wikipedia.org/wiki/Crise_do_software
http://www.facape.br/jocelio/es/material_em_pdf_conceitual/ESConceitos.pdf
http://www.di.ubi.pt/~lfbaa/es/wp-content/uploads/aula02.pdf
Texto originalmente publicado em https://www.infoescola.com/informatica/engenharia-de-software/