Fundamentos e Práticas da Engenharia de Software

Classificado em Tecnologia

Escrito em em português com um tamanho de 4,58 KB

A Importância da Engenharia de Software

O termo foi introduzido no final dos anos 60 devido à "crise do software", resultado da introdução da terceira geração de hardware. O equipamento deixou de ser um impedimento para o desenvolvimento de tecnologia da informação, focando na redução de custos e na melhoria da qualidade e eficiência do software produzido.

A crise foi caracterizada pelos seguintes problemas:

  • Projeto pouco claro;
  • Falhas no planejamento e estimativa de custos;
  • Má qualidade do software;
  • Dificuldade em manter programas não estruturados.

O desenvolvimento de software efetivo e barato requer características como confiabilidade, facilidade de manutenção, usabilidade e eficiência.

1 Conceito de Engenharia de Software

A Engenharia de Software é uma área da Ciência da Computação que oferece métodos e técnicas para desenvolver e manter softwares de qualidade que resolvam problemas diversos. Atualmente, é uma profissão estabelecida internacionalmente, com prestígio social e um futuro promissor.

A área abrange o ciclo de vida de sistemas de informação aplicados em setores como negócios, medicina, manufatura, logística, serviços bancários e web.

2 Métodos, Técnicas e Ferramentas

  • Método: Série de etapas sucessivas que levam a um objetivo, permitindo generalizar e resolver problemas futuros.
  • Técnica: Procedimentos para obter um resultado, exigindo destreza manual e intelectual.
  • Ferramenta: Submódulo responsável por funções específicas para executar uma tarefa.

Ferramentas CASE

As ferramentas Computer Aided Software Engineering (CASE) são aplicações projetadas para aumentar a produtividade e reduzir custos no desenvolvimento de software. Elas auxiliam em tarefas como desenho de projetos, implementação automática de código, compilação, documentação e detecção de erros.

Classificação das ferramentas CASE:

  • Upper CASE (U-CASE): Planejamento, análise de requisitos e estratégia.
  • Middle CASE (M-CASE): Automação de design e análise.
  • Lower CASE (L-CASE): Geração de código, testes e depuração.

História da Engenharia de Software

O termo foi usado pela primeira vez por Fritz Bauer em 1968, durante uma conferência da OTAN. Segundo Alan Davis, é a "aplicação inteligente de princípios, técnicas e ferramentas para a criação e manutenção de software que atenda às necessidades dos usuários com custo razoável".

1 A Crise do Software

O ambiente de desenvolvimento sofre com atrasos, baixa produtividade, taxas de manutenção elevadas e falta de confiabilidade. A crise é um problema crônico causado pela falta de formalismo, metodologia e gestão eficaz.

2 Objetivos da Engenharia de Software

  • Melhorar a qualidade dos processos e produtos;
  • Aumentar a produtividade e a satisfação dos engenheiros.

3 Mitos do Software

Mitos dos Desenvolvedores:

  • Executar o programa é o fim do trabalho;
  • Qualidade é apenas o programa rodar sem erros;
  • Prestação de serviços é apenas o programa em execução.

Mitos da Gestão:

  • Uso de normas e ferramentas resolve tudo;
  • Falta de planejamento pode ser compensada adicionando mais programadores.

Mitos do Cliente:

  • Condições estabelecidas como declaração geral de objetivos;
  • A crença na flexibilidade total do software a mudanças.

Foco da Engenharia de Computação

Aplica fundamentos da ciência da computação, eletrônica e engenharia de software para o desenvolvimento de sistemas integrados. Baseia-se na tecnologia eletrônica para interagir com sistemas físicos, como:

  • Interfaces de comunicação entre computador e dispositivos mecânicos;
  • Sistemas de aquisição de dados e instrumentação virtual;
  • Controle de robôs e sistemas de iluminação.

Tendências em Engenharia de Software

A indústria busca sistemas confiáveis e de alta qualidade com menor custo. A tecnologia orientada a objetos destaca-se pela modularidade, adaptabilidade e reutilização. Combinada com ferramentas CASE, programação visual e bibliotecas de classes, ela permite o salto de qualidade necessário para resolver problemas complexos modernos.

Entradas relacionadas: