46
Engenharia de Requisitos Elicitação, detalhamento e documentação.

06 Requisitos

Embed Size (px)

DESCRIPTION

Notas de aula, baseadas no Sommerville e no Schach.

Citation preview

Page 1: 06 Requisitos

Engenharia de Requisitos

Elicitação, detalhamento e documentação.

Page 2: 06 Requisitos

O que é um projeto de sucesso?

“Satisfaz seus clientes e patrocinadores com resultados

que atendem seus objetivos dentro das restrições de

tempo e custo, com produtos de qualidade, mantendo e

promovendo relações harmoniosas entre os envolvidos e

contribuindo pro aprendizado da organização.”

Daniel Garnier

Page 3: 06 Requisitos

“A parte mais difícil de construir um

sistema de software é decidir precisamente

o que construir. Nenhuma outra parte do

trabalho conceitual é tão difícil quanto

estabelecer os requisitos técnicos

detalhados… Nenhuma outra parte danifica

tanto o sistema resultante se for feita de

forma errada. Nenhuma outra parte é mais

difícil de retificar posteriormente.”

Frederick Brooks

Page 4: 06 Requisitos

Custo para se reparar um defeito

Page 5: 06 Requisitos

Requisitos

“Eu sei que você acredita que compreendeu o que eu

disse, mas não estou certo de que o que você ouviu era

realmente o que eu queria dizer!”

Page 6: 06 Requisitos

Identificando requisitos

Requisito é a condição para se alcançar determinado fim

(Dicionário Houaiss)

É a descrição dos serviços e das restrições de um

sistema (Somerville)

Uma capacidade do software necessária ao usuário para

resolver um problema para atingir um objetivo (Dorfman)

Page 7: 06 Requisitos

Processo de requisitos do software

Page 8: 06 Requisitos

O processo de elicitação e análise de

requisitos

Page 9: 06 Requisitos

Técnicas para análise de requisitos

Entrevista (reunião, call, estruturada ou não)

Questionários (modelos padrão ou personalizados)

Análise de formulários (automatização)

Câmeras de vídeo (dia a dia do usuário)

Cenários

Cartões de estórias

Árvores de decisão

Prototipação

Page 10: 06 Requisitos

Classificação dos requisitos

Funcionais

• Descrever a funcionalidade ou os serviços do sistema.

• Depende do tipo de software, possíveis usuários e o tipo desistema em que o software é usado.

• Requisitos funcionais dos usuários podem ser declarações dealto nível a respeito do que o sistema deve fazer.

• Requisitos funcionais do sistema devem descreverdetalhadamente os serviços do sistema.

Não Funcionais

Page 11: 06 Requisitos

Classificação dos requisitos

Funcionais

Não Funcionais

• Esses requisitos definem as propriedades e as restrições dosistema por exemplo, confiabilidade, tempo de resposta eocupação de área.

• As restrições são capacidades de dispositivos de E/S, asrepresentações do sistema, etc.

• Os requisitos de processo também podem ser especificadosimpondo um IDE particular, linguagem de programação oumétodo de desenvolvimento.

• Os requisitos não-funcionais podem ser mais críticos do que osrequisitos funcionais. Se esses não forem atendidos, o sistemapode ser inútil.

Page 12: 06 Requisitos

Classificação dos requisitos

De usuário

Declarações em linguagem natural com diagramas dos serviços que o sistema deverá fornecer e suas restrições operacionais. Escrito para os clientes.

De Sistema

Um documento estruturado estabelecendo descrições detalhadas das funções do sistema, serviços e restrições operacionais. Define o que deve ser implementado assim, pode ser parte de um contrato entre o cliente e o empreiteiro.

Page 13: 06 Requisitos

Classificação dos requisitos

Page 14: 06 Requisitos

Classificação dos requisitos

De usuário De Sistema

Page 15: 06 Requisitos

Classificação dos requisitos

Page 16: 06 Requisitos

Características de bons requisitos

Não ambíguo

Verificável

Determinístico

Rastreável

Correto

Page 17: 06 Requisitos

Não ambíguo

Ambiguidade = incerteza por causa da obscuridade ou

indistinção

Escrever para outra pessoa ler

Problemas:

Uso de pronomes

“O sistema de RH deverá permitir somente cinco registros de

dependentes válidos e tipos de planos de saúde; ele deve incluir o

mais velho”

Acrônimos e siglas

Indeterminação

“O sistema deverá fazer as correções no registro quando possível”

Assumir conhecimento prévio

Características de bons requisitos

Page 18: 06 Requisitos

Verificável

Pode ser testado completamente de modo razoável

(conforme a sua criticidade)

Assegurar que

Sistema funciona corretamente

As exceções são tratadas de forma adequada

Suporta vários conjuntos diferentes de dados

Exemplo:

“O sistema deve ser amigável”

Características de bons requisitos

Page 19: 06 Requisitos

Determinístico

Precisa necessariamente ser determinável – todos os

caminhos devem ser previstos

“O sistema deve enviar novos registros aos sistema

Financeiro a cada cinco minutos”

E se não tiver novos registros neste período?

Características de bons requisitos

Page 20: 06 Requisitos

Rastreável

De onde veio este requisito?

No que ele vai se transformar (ou já se transformou) no

sistema?

Caminho do requisitante à implementação em duas vias

É muito importante quando

Um requisito é alterado

Um componente de software é alterado

Se negocia prioridades (ou cortes)

Características de bons requisitos

Page 21: 06 Requisitos

Correto

Consistência (um requisito não pode contradizer o outro)

Deve ser assegurada a acuracidade e a correção no

texto do requisito

Não enrolar

Sentenças com começo, meio e fim

Características de bons requisitos

Page 22: 06 Requisitos

Atores no processo de requisitos

Clientes e usuários

Gerentes de negócios (áreas afetadas)

Gerente e líderes do projeto

Projetistas de software

Testadores

Page 23: 06 Requisitos

Documentação de requisitos

O documento de requisitos de software é a declaração oficial do que é demandado dos desenvolvedores do sistema.

Deve incluir ambas, uma definição de requisitos do usuário e uma especificação de requisitos do sistema.

NÃO é um documento de projeto. Na medida do possível, deve definir O QUE o sistema deve fazer ao invés de COMO deve fazê-lo.

Documento de especificação de requisitos: o que o desenvolvedor precisa saber

Lembrar: documento de visão, glossário e requisitos se complementam

Page 24: 06 Requisitos

Documentação de requisitos

Page 25: 06 Requisitos

Documentação de requisitos

Padronização da sintaxe

Modelo de user histories

Modelo em linguagem natural

Modelo de casos de uso

Page 26: 06 Requisitos

Estrutura do documento de requisitos

Page 27: 06 Requisitos

Estrutura do documento de requisitos

Page 28: 06 Requisitos

Formas de escrever uma especificação

de requisitos de sistema

Page 29: 06 Requisitos

Usuários do documento de requisitos

Page 30: 06 Requisitos

Usuários do documento de requisitos

Page 31: 06 Requisitos

Validação dos requisitos

Page 32: 06 Requisitos

Revisão dos requisitos

Rever metas e objetivos estabelecidos para o sistema

Comparar requisitos metas o objetivos

Descrever o ambiente operacional

Examinar

interfaces

fluxo de informações

funções

Verificar omissões, imperfeições e inconsistências

Documentar riscos

Discutir sobre como o sistema será testado

Page 33: 06 Requisitos

Desafios da fase de requisitos

Funcionários do cliente podem sentir-se

intimidados/substituídos pelos computadores

Habilidade em negociação

Pouco tempo para as discussões mais profundas

(essenciais)

Flexibilidade e objetividade são essenciais

Page 34: 06 Requisitos

Gerenciamento de requisitos

Gerenciamento de requisitos é o processo de gerenciar os requisitos em constante mudança durante o processo de engenharia de requisitos e desenvolvimento de sistemas.

Após o sistemas começar a ser usado, surgem novos requisitos.

É preciso manter o controle das necessidades individuais e manter ligações entre os requisitos dependentes para que você possa avaliar o impacto das mudanças nos requisitos.

É necessário estabelecer um processo formal para fazer propostas de mudança e ligar essas aos requisitos de sistema.

Page 35: 06 Requisitos

Mudanças nos requisitos O ambiente técnico e de negócios do sistema sempre muda após a

instalação. Um novo hardware pode ser introduzido, pode ser necessário para a interface

do sistema com outros sistemas, as prioridades do negócio podem mudar (com as consequentes alterações no sistema de apoio necessário) e, podem ser que o sistema deve, necessariamente, respeitar.

As pessoas que pagam por um sistema e os usuários desse sistema raramente são as mesmas pessoas. Clientes do sistema impõem requisitos devido a restrições orçamentais e

organizacionais. Esses podem entrar em conflito com os requisitos do usuário final e, após a entrega, pode ser necessário adicionar novos recursos para suporte ao usuário, caso o sistema seja para atender a seus objetivos.

Sistemas de grande porte costumam ter uma comunidade de usuários diversos, com muitos usuários tendo necessidades diferentes e prioridades que podem ser conflitantes ou contraditórias. Os requisitos do sistema final são, inevitavelmente, um compromisso entre eles

e, a experiência mostra que, muitas vezes se descobre que o balanço de apoio dado aos diferentes usuários precisa ser mudado.

Page 36: 06 Requisitos

Planejamento de gerenciamento de

requisitos

Estabelece o nível de detalhamento necessário para o gerenciamento de requisitos. Decisões do gerenciamento de requisitos: Identificação de requisitos. Cada requisito deve ser identificado

exclusivamente para que ele possa ser comparado com outros requisitos.

Processo de gerenciamento de mudanças. Esse é o conjunto de atividades que avaliam o impacto e o custo das mudanças. Esse processo é discutido em mais detalhes na seção seguinte.

Políticas de rastreabilidade. Essas políticas definem as relações entre cada requisito e entre os requisitos e o projeto do sistema que deve ser registrado.

Ferramentas de suporte. As ferramentas de suporte que podem ser usadas variam desde sistemas especialistas, sistemas de gerenciamento de requisitos até planilhas e sistemas de banco de dados simples.

Page 37: 06 Requisitos

Gerenciamento de mundança de requisitos Decidir se uma mudança de requisitos deve ser aceita.

Análise de problema e especificação de mudanças Durante essa fase, o problema ou a proposta de mudança é analisada

para verificar se é válida. O feedback dessa análise é devolvido para o solicitante, que pode responder com uma proposta mais específica de mudança dos requisitos, ou decidir retirar o pedido.

Análise de mudanças e custos O efeito da mudança proposta é avaliado por meio de informações de

rastreabilidade e conhecimento geral dos requisitos do sistema. Uma vez que essa análise é concluída, toma-se a decisão de prosseguir ou não com a mudança de requisitos.

Implementação de mudanças O documento de requisitos e, se necessário, o projeto e implementação do

sistema, são modificados. Idealmente, o documento deve ser organizado de modo que as mudanças possam ser facilmente implementadas.

Page 38: 06 Requisitos

Gerenciamento de mudança de requisitos

Page 39: 06 Requisitos

AVISOS PAROQUIAIS

São avisos fixados nas portas de uma igreja, todos eles reais, escritos com muito boa vontade e muito má redação.

Page 40: 06 Requisitos

AVISOS AOS PAROQUIANOS

Para todos os que tenham filhos e não o saibam, temos na

paróquia uma área especial para crianças.

Page 41: 06 Requisitos

AVISOS AOS PAROQUIANOS

Prezadas senhoras, não esqueçam a próxima venda para

beneficencia. É uma boa ocasião para se livrar das coisas

inúteis que há na sua casa. Tragam os seus maridos!

Page 42: 06 Requisitos

AVISOS AOS PAROQUIANOS

O mês de novembro finalizará com uma missa cantada por

todos os defuntos da paróquia.

Page 43: 06 Requisitos

Checklist

Os requisitos:

Estão corretos?

São consistentes?

Estão completos?

São realistas?

Descrevem algo necessário para o cliente?

Podem ser verificados?

Podem ser rastreados?

Page 44: 06 Requisitos

Relembrando

Page 45: 06 Requisitos

Pontos importantes

Você pode usar uma variedade de técnicas para a elicitaçãode requisitos, incluindo entrevistas, cenários, casos de uso e etnografia.

A validação dos requisitos é o processo de verificação da validade, consistência, completude, realismo e verificabilidadedos requisitos.

Mudanças organizacionais e técnicas, e de negócios, inevitavelmente levam a mudanças nos requisitos de um sistema de software.

O gerenciamento dos requisitos é o processo de gerenciamento e controle dessas mudanças.

Page 46: 06 Requisitos

Engenharia de Requisitos

Elicitação, detalhamento e documentação.