Engenharia de Software: Uma abordagem geral sobre os processos de software

Engenharia de Software: Uma abordagem geral sobre os processos de software

Com a exponencial evolução tecnológica, a necessidade de produzir software cada vez mais sofisticado e atualizado, torna-se necessário aplicação da engenharia de software para reger todos os seus respectivos processos. Segundo Sommerville(2011) "Processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de Software.". É importante ressaltar que um produto de software, independente de seu propósito, deve sempre buscar a qualidade.

Existem diversos modelos para processos de software, e em todos estão presentes quatro atividades fundamentais, são elas:

  1. Especificação de Software
  2. Projeto e Implementação de Software
  3. Validação de Software
  4. Evolução de Software

A sequencia das quatro atividades, assim como suas sub-atividades, são diferentemente organizadas e abordadas em cada modelo.

Não será descritos os modelos de processo de software e as sub-atividades dentro de cada processo neste artigo, porém, afim de demonstrar as diferenças, no modelo cascata as atividades são organizadas de forma sequencia, enquanto que no modelo incremental são intercaladas.

Modelo Cascata - Autor(2020)


Especificação de Software

A especificação de software, também conhecida como engenharia de requisitos, segundo Summerville(2011) "... é o processo de compreensão e definição dos serviços requisitados do sistema e identificação de restrição relativas à operação e ao desenvolvimento de software". A engenharia de requisitos é um ponto critico no processo de software, pois erros nesta fase causará problemas em fases posteriores. Há diversos motivos para que um projeto seja cancelado ou fracassado, seja por não atender as expectativas dos clientes, ou por exceder o prazo e orçamento. As raízes destes problemas, em grande escala são frutos da deficiência na engenharia de requisitos.

A aplicação da engenharia de requisitos, também não ocorre de modo sequencial, é preciso que cada modelo seja consultado e estudado. Porém, são descritas quatro atividades dentro do processo que são fundamentais, são eles:

  1. Estudo de Viabilidade
  2. Elicitação e Análise de Requisitos
  3. Especificação de Requisitos
  4. Validação de Requisitos

Projeto e Implementação de Software

A atividade de projeto e implementação pode ser descrita em duas etapas, sendo a primeira a etapa o projeto de software, seguindo da etapa de implementação do software.

Etapa de Projeto

Segundo Summerville(2011) "é uma descrição da estrutura do software a ser implementado, dos modelos e da estrutura de dados usados pelo sistema e das interfaces entre os componentes do sistema". O resultado da engenharia de requisitos, é utilizado como insumo durante a etapa de projeto, onde é elaborado uma descrição computacional mencionando o que o software deve fazer sobre as especificações de requisitos. Diversos aspectos devem ser considerados durante esta etapa, como arquitetura do sistema, definição das linguagens de programação, padrões de interface, banco de dados.

De acordo com Summerville(2011), as atividades durante a etapa de projeto podem variar, dependendo do tipo de sistema a ser desenvolvido. Porém, as atividades de projeto durante esta etapa podem ser descritos em:

  1. Projeto Arquitetura
  2. Projeto Interface
  3. Projeto Componente
  4. Projeto Banco de Dados

Implementação

A etapa de implementação consiste em codificar a descrição realizada na etapa de projeto. Não há uma forma definitiva sobre a implementação correta. Alguns programadores preferem realizar a codificação das classes, há desenvolvedores que utilizam de ferramentas CASE para geração automatizada de código. Alguns desenvolvedores preferem começar pelos componentes mais trabalhosos, e outros pelos componentes mais fáceis. Porém é sempre preciso verificar se há uma ordem de implementação, uma vez que certos componentes podem depender de outros componentes.

É preciso ressaltar que a priorização de requisitos não faz parte da etapa de implementação, sendo definidas durante a engenharia de requisitos.

Validação de Software

A validação de software, segundo Summerville(2011) " tem a intenção de mostrar que um software se adequá a suas especificações ao mesmo tempo que se satisfaz as especificações do cliente do sistema.", a validação do software é composta por testes, que em sua maioria são dados simulados com o intuito de validar o software, Porém, durante atividade de validação, pode-se ressaltar inconsistências no sistema. Quando são encontrados falhas, é necessário que o software seja depurado, corrigido e novamente testado. Nesta etapa, pode ser necessário que estágios de testes anteriores, tenham que ser refeitos. Segundo Summerville(2011), os estágios de testes são:

  1. Teste de Desenvolvimento
  2. Teste de Sistema
  3. Teste de Aceitação

Evolução do Software

Assim como todo produto, o software também tem sua vida útil. Após a implementação do software, no decorrer do tempo irá surgir novos requisitos. Nem sempre esses requisitos partem do usuário, uma possível atualização no ambiente ou no sistema de segurança também podem ser necessário para que o produto mantenha sua qualidade e seu tempo de vida prolongado.

Para cada solicitação de mudança, deve ser realizado um processo de avaliação e planejamento. Tais processos utilizam da gestão de risco para medição dos impactos e viabilização da mudança.

Conclusão

Em uma breve análise sobre os processos de software descritos por Summerville, torna-se notável os impactos positivos da engenharia de software em um projeto de sistema. Para cada projeto, há um respectivo modelo, e a utilização deste pode alavancar os produtos de software, sendo entregues com maior qualidade.

Muitos produtos de software falharam ou foram cancelado por deficiência em seu planejamento e ausência de uma boa gestão. Não importa a proposta de um produto software, se este não for conduzido pelos alicerces da engenharia, é necessário que todas etapas do processo de software ocorram para que seja garantido a qualidade do produto.

Referencias

Summerville, Ian - Engenharia de Software. 9.ed. São Paulo: Pearson Education do Brasil, 2011.

Entre para ver ou adicionar um comentário

Outros artigos de Bruno Bastos Melo

Outras pessoas também visualizaram

Conferir tópicos