Engenharia de Software: Processos, Ciclo de Vida e Metodologias de Desenvolvimento

ComputaçãoAtualizado em 5,52 KB

Resumo

O texto apresenta os fundamentos da engenharia de software, incluindo seus objetivos e pilares (processo, métodos e ferramentas). Explica o ciclo de vida do software, dividido em atividades de desenvolvimento e de gestão, e compara modelos como o cascata e o iterativo. Também contrasta métodos tradicionais e ágeis e alerta para o risco de aumento de escopo.

Pontos-chave

  • Objetivo da engenharia de software: obter um produto de qualidade, com alto padrão, baixo custo e no menor tempo possível.
  • Os pilares são processo, métodos e ferramentas; o processo define quem faz o quê e quando.
  • O ciclo de vida se divide em atividades de desenvolvimento (análise de negócio, requisitos, design, implementação, V&V e deploy) e de gestão (requisitos, configuração e mudanças).
  • No modelo cascata, a saída de uma etapa é a entrada da seguinte, com feedback tardio e sem previsão de manutenção.
  • No processo iterativo, o projeto é dividido em iterações, com feedback imediato para corrigir erros.
  • Métodos ágeis priorizam indivíduos e interações, software funcionando, colaboração com o cliente e resposta a mudanças.

Teste-se

Objetivos e Pilares da Engenharia de Software

Objetivos: Especificar, documentar e implantar processos no desenvolvimento de um produto. O objetivo principal é obter um produto de qualidade, com alto padrão, baixo custo de desenvolvimento e no menor tempo possível.

Pilares da Engenharia de Software:

  • Processo: Conjunto de atividades ou tarefas executadas por papéis predefinidos em uma ordem específica que geram, como resultados, produtos de trabalho. Define quem faz o quê e quando faz. Devem ser definidos, documentados e implementados. Este conjunto de atividades define o ciclo de vida (requisitos, arquitetura, código-fonte, testes, contrato, etc.).
  • Métodos: Para cada tarefa, é atribuído um método para a conclusão das mesmas.
  • Ferramentas: Visam facilitar e melhorar o desenvolvimento dessas atividades.

Três pontos fundamentais: Plena compreensão do processo de negócio do ambiente fim; contínua verificação e validação da qualidade de todos os artefatos gerados; e a implementação, documentação e implantação de processos.

Ciclo de Vida do Software

O ciclo de vida é o conjunto de atividades executadas no processo de desenvolvimento, iniciando no momento da concepção do software e seguindo até ser descontinuado. É dividido em duas categorias:

  • Atividades de desenvolvimento: São as atividades técnicas inerentes ao desenvolvimento.
  • Atividades de gestão: Atividades de suporte às técnicas, inerentes aos conceitos da gerência de projetos.

Atividades de Desenvolvimento

  • Análise de Negócio: Identifica as necessidades do stakeholder e propõe uma solução.
  • Análise de Requisitos: Identifica as características das soluções propostas.
  • Análise de Design: Define a arquitetura da solução proposta (estrutura e comportamento).
  • Implementação: Codificação da solução proposta.
  • V&V (Verificação e Validação): Testa e valida os diversos artefatos desenvolvidos.
  • Deploy: Trata da implantação no ambiente de produção.

Atividades de Gestão

  • Gerência de Requisitos: Principal objetivo é o controle sobre quais são os requisitos especificados e o estado de cada um, permitindo controlar a evolução do projeto.
  • Gerência de Configuração: Permite ao time controlar o conjunto de artefatos que contém uma determinada release; cada versão gera uma nova baseline.
  • Gerência de Mudanças: Permite o controle de todas as mudanças solicitadas.

Modelos de Desenvolvimento

Modelo Cascata

Nesse modelo, as atividades do processo de desenvolvimento são estruturadas em uma cascata, onde a saída de uma etapa é a entrada para a próxima etapa. As atividades são atômicas, possuem feedback tardio, baixo grau de interação, evolução de risco de sucesso do projeto e demora. Não prevê a manutenção nem permite a reutilização.

Processo Iterativo

No processo iterativo, um problema deve ser quebrado em porções que são atacadas individualmente. Desta forma, o projeto é dividido em diversas pequenas etapas denominadas iterações. Em cada iteração, pode-se aplicar todas as atividades do ciclo de vida. Ao término, deve-se entregar uma build para que a mesma possa ser validada no ambiente de produção. O feedback imediato é fundamental para a correção dos erros, evitando a propagação dos mesmos pelas próximas etapas.

Classificação de Processos

  • Formal: É realizado um produto de trabalho, como uma análise de negócios, um documento de requisitos ou um documento de arquitetura. Vantagem: Oferece melhor persistência das informações geradas, considerando que estão documentadas.
  • Informal: Foca na comunicação entre os membros do time e a comunicação entre o time e os stakeholders. Vantagem: Permite que o tempo dedicado à implementação, V&V e deploy seja maior, oferecendo resultados mais rápidos.

Métodos Tradicionais vs. Métodos Ágeis

  • Métodos Tradicionais: Comunicação formal entre os membros do time e entre o time e stakeholders. Foca na documentação das atividades ou tarefas, gerando grande quantidade de documentos. É vantajoso quando o stakeholder não é acessível, quando o time é de médio ou grande porte ou quando há alta rotatividade. Os produtos de trabalho gerados em uma tarefa são utilizados como subsídios para as demais atividades.
  • Métodos Ágeis: Surgem como contraproposta à burocracia do método tradicional. Define-se em 4 pilares: 1) Indivíduos e interações mais que processos e ferramentas; 2) Software em funcionamento mais que documentação abrangente; 3) Colaboração com o cliente mais que negociação de contratos; 4) Responder a mudanças mais que seguir um plano.

Aumento de Escopo: Pode acontecer a continuação do sistema e a aparição de muitos requisitos novos, fazendo com que esse sistema nunca termine. Isso é chamado de aumento de escopo.

Baixar

PDF Word HTML

Perguntas frequentes

Quais são os pilares da engenharia de software?

Os pilares são processo, métodos e ferramentas. O processo é o conjunto de atividades executadas por papéis definidos em uma ordem específica, os métodos são atribuídos a cada tarefa e as ferramentas visam facilitar essas atividades.

Qual a diferença entre o modelo cascata e o processo iterativo?

No modelo cascata, a saída de cada etapa alimenta a próxima, com feedback tardio e sem previsão de manutenção. No processo iterativo, o projeto é dividido em iterações, com feedback imediato que evita a propagação de erros.

O que são métodos ágeis?

São métodos que surgiram como contraproposta à burocracia dos métodos tradicionais. Baseiam-se em quatro pilares: indivíduos e interações, software em funcionamento, colaboração com o cliente e resposta a mudanças.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Qual é o principal objetivo da engenharia de software segundo o texto?
2. Qual dos seguintes NÃO é um pilar da engenharia de software?
3. Qual a principal característica do modelo cascata?
4. Qual atividade de gestão controla as versões e os conjuntos de artefatos de uma release?
5. No processo iterativo, qual é a vantagem do feedback imediato?
6. Segundo o texto, quando os métodos tradicionais são vantajosos?
7. O que é o aumento de escopo?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.