Engenharia de Requisitos: Boas Práticas e Processos
Classificado em Tecnologia
Escrito em em português com um tamanho de 5,58 KB.
Engenharia de Requisitos
É o conjunto de tarefas que levam a um entendimento de qual será o impacto do software sobre o negócio, auxiliando a Engenharia de Software a compreender melhor o problema.
O que é um Requisito?
- Pode ser uma parte abstrata de alto nível de um serviço.
- Pode ser uma restrição do sistema.
Elicitação de Requisitos
A elicitação, ou descoberta de requisitos, envolve técnicos trabalhando com o cliente para levantar dados sobre:
- O domínio da aplicação.
- Os serviços que o sistema fornece.
- As restrições operacionais do sistema.
Processos da Elicitação
- Descoberta de Requisitos: Processo para coletar informações do sistema e separar os requisitos de usuário e sistemas.
- Classificação e Organização de Requisitos: Por tipo, origem e prioridade.
- Priorização e Negociação de Requisitos: Participação do cliente ou usuário, atendimento ao escopo.
- Especificação de Requisitos: Registro dos requisitos em comum acordo.
Problemas de Análise de Requisitos
- Stakeholders:
- Não sabem o que querem.
- Expressam requisitos em seus próprios termos.
- Diferentes stakeholders podem ter requisitos conflitantes.
- Fatores políticos e organizacionais podem mudar os requisitos.
- Surgimento de novos stakeholders pode fazer com que o ambiente de negócios mude.
Validação de Requisitos
- Validade: O sistema fornece as funções que melhor atendem à necessidade do cliente?
- Consistência: Existe algum conflito de requisitos?
- Completude: Estão incluídas todas as funções e restrições pedidas pelo cliente?
- Realismo: Os requisitos podem ser implementados com o orçamento e a tecnologia disponível?
- Verificabilidade: Os requisitos podem ser verificados?
Técnicas de Validação de Requisitos
- Revisões de Requisitos: Análise manual dos requisitos.
- Prototipação: Uso de um modelo executável para testar os requisitos.
- Geração de Caso de Teste: Desenvolvimento de testes para verificar os requisitos implementados.
Avaliação da Revisão
- Verificabilidade: A exigência é realmente testável?
- Compreensibilidade: O requisito é adequadamente compreendido?
- Rastreabilidade: A origem do requisito é clara?
- Adaptabilidade: Pode ocorrer alteração sem causar danos a outros requisitos?
Modelo Espiral de Boehm
- Não existe fase fixa como especificação ou projeto. Os loops no espiral são escolhidos de acordo com a necessidade do projeto.
- Os requisitos são avaliados explicitamente e resolvidos no decorrer do processo.
Setores do Modelo Espiral
- Desenvolvimento e Validação: Escolha do modelo de desenvolvimento.
- Planejamento: O projeto é revisto e a próxima fase da espiral é planejada.
Rational Unified Process (RUP)
É um processo genérico moderno, derivado do trabalho em UML e processos associados. Reúne aspectos dos 3 modelos genéricos.
Perspectivas
- Dinâmica: Mostra fases no tempo.
- Estática: Mostra atividades do processo.
- Prática: Sugere boas práticas.
Fases do RUP
- Concepção: Estabelece o business case para o sistema.
- Elaboração: Desenvolve um entendimento da extensão do problema e da arquitetura do sistema.
- Construção: Projeta o sistema, testa e programa.
- Transição: Implanta o sistema no seu ambiente de operação.
Boas Práticas do RUP
- Desenvolver software iterativamente.
- Gerenciar os requisitos.
- Usar arquitetura baseada em componentes.
- Modelar o software visualmente.
- Verificar a qualidade do software.
- Controlar as mudanças do software.
XP (Programação Extrema)
Pode ser usado para complementar o método Scrum, porque foca mais em processos de engenharia e desenvolvimento de software.
Características
- Leve.
- Não é prescritivo (só dá as instruções).
- Tende a fundamentar suas práticas por um conjunto de valores.
Objetivo
Levar ao extremo um conjunto de práticas que são ditas como boas na engenharia de software.
Valores
- Comunicação.
- Simplicidade.
- Feedback.
- Coragem.
- Respeito.
Princípios Básicos
- Feedback rápido.
- Presumir simplicidade.
- Mudanças incrementais.
- Abraçar mudanças.
- Trabalho em alta qualidade.
Práticas
- Jogo de Planejamento (Planning Game): Reuniões com clientes feitas em iterações semanais.
- Fases Pequenas (Small Releases): Liberação de pequenas partes do projeto.
- Metáfora: Procura facilitar a comunicação com o cliente.
- Design Simples (Simple Design): Trazer simplicidade para o produto.
- Teste de Aceitação (Customer Tests): Testes construídos pelo cliente para aceitar os requisitos.