Os Processos de Software

Ricardo Dias
Contexto Delimitado
4 min readAug 20, 2019

Quando um novo projeto de software se inicia, seu planejamento é um desafio e nem sempre é possível conseguir preencher todas as lacunas existentes no momento de sua elaboração. Dificuldades, imprevistos e retrabalho são comuns em muitos projetos, gerando desconforto para a empresa e para o cliente.

Embora não seja possível extinguir completamente esses fatores, é possível reduzi-los a um nível mínimo se, na estratégia utilizada, adotarmos um processo adequado para a realidade específica e o tipo de projeto a ser desenvolvido.

Neste artigo, tentarei explicar como funcionam os processos.

O que é um processo?

O Processo de Software é um conjunto de atividades usadas para a produção de sistemas computacionais, envolvendo o desenvolvimento do início ao fim.

Segundo JALOTE (2005), o Processo de Software é um conjunto de atividades, ligadas por padrões de relacionamento entre elas, pelas quais, se as atividades operarem corretamente e de acordo com os padrões requeridos, o resultado desejado é produzido. O resultado desejado é um software de alta qualidade e com baixo custo. Obviamente , um processo que não aumenta a produção ou não pode produzir software com boa qualidade não é um processo adequado.

Existem vários modelos de processo de software, porém todos possuem algumas etapas em comum (SOMMERVILLE, 2011), como se seguem:

1. Especificação

É onde acontece a definição das funcionalidades do software e as restrições em seu funcionamento. Envolve:

  • Engenharia de Sistema: estabelece uma solução geral para o problema, envolvendo questões extra software;
  • Análise de Requisitos: levantamento das necessidades do software produzindo um documento com a especificação de requisitos;
  • Especificação de Sistema: descrição funcional do sistema, incluindo um plano de testes para verificar adequação.

2. Projeto

O planejamento do software acontece neste etapa, que envolve:

  • Projeto Arquitetural: desenvolve um modelo conceitual, composto de módulos mais ou menos independentes;
  • Projeto de Interface: onde cada módulo tem sua interface de comunicação estudada e definida;
  • Projeto Detalhado: onde os módulos em si são definidos, e possivelmente traduzidos para pseudocódigo.

3. Implementação e Validação

Nesta etapa o software deve ser produzido de modo que cumpra sua especificação. É onde acontece a chamada “programação” ou “codificação”.

Após a programação, o código precisa ser validado para garantir que esteja, de fato, fazendo o que o cliente solicitou. Envolve:

  • Teste de Unidade e de Módulo: são feitos testes para verificar a presença de erros e comportamento adequado a nível das funções e módulos básicos do sistema;
  • Integração: a união de diferentes módulos implementados em um único produto e os testes da interação entre eles quando operando em conjunto.

4. Manutenção e Evolução

Esta etapa é muito importante, pois o software precisa evoluir para atender a novas necessidades ou mudanças solicitadas pelo cliente. O software em geral entra em um ciclo iterativo que abrange todas as fases anteriores.

Modelos de processo

O jargão “cada caso é um caso” é bem adequado aqui, pois para cada tipo de projeto, um Modelo de Processo será o mais adequado. Assim sendo, não existe o “modelo melhor de todos”, mas sim o “modelo melhor para este projeto”. Cada modelo possui vantagens e desvantagens que precisam ser consideradas na hora de serem adotados.

A escolha de um modelo deve ser embasada no custo-benefício que ele pode trazer no momento do desenvolvimento. Ou seja:

  • Se for um projeto pequeno, não serão necessárias muitas tratativas de controle, podendo talvez ser desenvolvido por um ou dois programadores;
  • Ao contrário, em projetos maiores, um controle mais minucioso de variantes será necessário, por causa da maior tacha de mudanças durante o processo.

Uma escolha acertada do melhor modelo é determinante e pode reduzir imensamente o desperdício de tempo e de dinheiro, aumentando o lucro obtido na entrega do projeto.

É sempre difícil explicar de maneira concisa os diversos processos de software existentes. Na literatura, alguns autores falam de uns modelos enquanto outros enfatizam pontos de forma diferente, conforme suas próprias experiências. Mas não deixa de ser um assunto importantíssimo e que merece uma atenção especial por parte de empresas que queiram se profissionalizar, entregar mais qualidade em menos tempo e lucrar com isso.

Espero que o conteúdo tenha sido útil até agora. Em artigos posteriores, abordarei os principais modelos de processo de software. Um grande abraço e até a próxima!

Leia também o próximo artigo sobre o assunto:

Leia todos os artigos desta série:

Referências para aprofundamento

JALOTE, P. An Integrated Approach to Software Engineering. 3. ed. New York: Springer, 2005;

SOMMERVILLE, Ian. Engenharia de Software, 9ª Edição. Pearson. São Paulo, Brasil, 2011.

--

--

Ricardo Dias
Contexto Delimitado

Apaixonado por padrões, programação clara, elegante e principalmente manutenível. Trabalha como desenvolvedor deste 2000, incrementando a cada ano este loop…