terça-feira, 9 de dezembro de 2008

Engenharia de Software

A Engenharia de Software trata-se de uma área do conhecimento da informática voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas da Ciência da Computação, Gerência de Projetos, dentre diversas outras disciplinas, objetivando organização, produtividade e qualidade.

Preocupam-se atualmente essas tecnologias com as linguagens de programação, bases de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a primordialmente com a qualidade do software. Os alicerces científicos da engenharia de software envolvem o uso de modelos abstratos e precisos, os quais permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, com a finalidade de avaliar e garantir sua qualidade. Além disso, a engenharia de software desenvolve mecanismos para o planejamento e gerenciamento do processo de desenvolvimento.

Importa destacar o entendimento de Friedrich Ludwing Baues, que a "engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais". Valendo frisar que o próprio significado de engenharia já traz os conceitos de criação, construção, análise, desenvolvimento e manutenção.

Já a Engenharia de software concentra-se nos aspectos práticos da produção de um sistema de software, enquanto a Ciência da Computação estuda os fundamentos teóricos dos aspectos computacionais.

Em 1.960 pela primeira vez é usado o termo "Engenharia de Software", mas oficialmente somente em 1.968 fora mencionado na "Nato Conference on Software Engineering". A Engenharia de Software surge numa tentativa de aprimorar a crise do software e dar um tratamento de engenharia, o qual daria mais ênfase sistemática e controlada ao desenvolvimento de sistemas de software complexos. É a engenharia de sistemas uma área ampla, uma vez que trata de todos os aspectos de sistemas baseados em computadores, pois engloba desde hardware e engenharia de processos até o software.

Áreas de Conhecimento

Segundo o
SWEBOK (Corpo de Conhecimento da Engenharia de Software), as áreas de conhecimento da Engenharia de Software são:

  • Requisitos de Software
  • Projeto (Design) de Software
  • Implementação de Software
  • Teste de Software
  • Manutenção de software
  • Gerência de Configuração de Software
  • Gerência de Engenharia de Software
  • Processos de Engenharia de Software
  • Ferramentas e Métodos de Engenharia de Software
  • Qualidade de Software

Conforme Pressman, a Engenharia de Software (ES) é uma tecnologia em camadas. E a base de todas essas camadas é o foco na qualidade do software desenvolvido. Portanto, inclusive do ponto de vista didático, é interessante estudarmos a ES em suas camadas de Processo, Métodos e Ferramentas.

A engenharia de software aborda uma série de práticas e tecnologias, principalmente estudadas pela ciência da computação, enfocando seu impacto na produtividade e qualidade de software.

Destacam-se o estudo de linguagem de programação, banco de dados e paradigmas de programação, como:

  • Programação estruturada
  • Programação funcional
  • Programação orientada a objetos
  • Componentes de Software Programação orientada a aspecto

Nenhum comentário: