Mtodos e Tcnicas Para Anlise de Requisitos

61
Fases de desenvolvimento de software

Transcript of Mtodos e Tcnicas Para Anlise de Requisitos

Page 1: Mtodos e Tcnicas Para Anlise de Requisitos

Fases de desenvolvimento de software

Page 2: Mtodos e Tcnicas Para Anlise de Requisitos

Agenda A evolução do software Crise do software Mitos no processo de desenvolvimento Engenharia de soft Ciclo de vida

Page 3: Mtodos e Tcnicas Para Anlise de Requisitos

Um caso comum !! - O sistema que queremos deve fazer isto,

isto, ..., e nesse caso também isto...; - Sim, Sim, estou anotando... - Conversei com os usuários e basicamente

este é o sistema que teremos que desenvolver;

- Sim chefe; - Ótimo, começaremos a especificar os

requisitos imediatamente.

Page 4: Mtodos e Tcnicas Para Anlise de Requisitos

MOTIVAÇÃO...Quatro meses depois ...

- Senhores usuários, após o emprego das mais modernas técnicas de especificação, produzimos este documento que descreve minuciosamente o Sistema;

- Ótimo! Bom! Hum! ... É um documento com 300 páginas e todos estes gráficos, tabelas. Enfim, vamos analisá-los e voltamos a falar;

Page 5: Mtodos e Tcnicas Para Anlise de Requisitos

MOTIVAÇÃO

... Mais um mês e meio ... - Sr. Analista, nosso pessoal analisou com

cuidado o documento. Tivemos muitas dificuldades em entendê-lo. Mas o que percebemos é que NÃO FOMOS CORRETAMENTE ENTENDIDOS!!!

- Como não? Tudo que está aí foi fruto de nosso entendimento pessoal. REALMENTE VOCÊS NÃO SABEM O QUE QUEREM!!!

Page 6: Mtodos e Tcnicas Para Anlise de Requisitos

Fases da Engenharia de Requisitos

MODELAGEM

ANÁLISEVALIDAÇÃO

ELICITAÇÃO

Aquisição Especificação

Informações elicitadas

Estudo de

viabilidade

Informações

Representações

Especificação

de requisitos

Page 7: Mtodos e Tcnicas Para Anlise de Requisitos

Objetivos – engenharia de requisitos buscar as primeiras informações sobre o

sistema a ser desenvolvido descobrir se vale a pena fazer a análise,

mas sem fazer a análise propriamente dita

Page 8: Mtodos e Tcnicas Para Anlise de Requisitos

Importância Quanto mais tarde um erro é identificado

maior o custo e o tempo de correção Muitos erros não são detectados cedo, mas

poderiam Não atendimento das necessidades dos

usuários – desentendimentos entre usuários e desenvolvedores

Page 9: Mtodos e Tcnicas Para Anlise de Requisitos

Atividades

Estudo de viabilidade Levantar requisitos (elicitação) Organizar requisitos

(modelagem/análise) Validar requisitos junto ao cliente

(validação)

Page 10: Mtodos e Tcnicas Para Anlise de Requisitos

Realização do Estudo de Viabilidade Baseado na avaliação da informação (o que é

requisitado), coleção de informações e escrita de relatório

Perguntas para pessoas da organização O que ocorre se o sistema não for implementado? Quais são os problemas com o processo atual? Como o sistema proposto ajudará? Quais são os problemas de integração? Será necessária tecnologia nova? Quais as habilidades

necessárias para dominá-la? Que facilidades devem ser suportadas?

Page 11: Mtodos e Tcnicas Para Anlise de Requisitos

Elicitação de Requisitos

ELICITAR: descobrir, tornar explícito, obter o máximo de informações para o conhecimento do objeto em questão;

identificar os fatos que compõem os requisitos do Sistema a fim de prover o mais correto e mais completo entendimento do que é demandado daquele software.

Page 12: Mtodos e Tcnicas Para Anlise de Requisitos

Elicitação de requisitos: dificuldades Usuários podem não ter uma idéia precisa do

sistema por eles requerido; Usuários têm dificuldades para descreverem seu

conhecimento sobre o domínio do problema; Usuários e analistas têm diferentes pontos de

vista do problema (por terem formações diferentes)

Usuários podem antipatizar com o novo sistema e se negar a participar da elicitação (ou mesmo fornecer informações errôneas).

Page 13: Mtodos e Tcnicas Para Anlise de Requisitos

Atividades da Elicitação1. Entendimento do negócio

Você deve entender como os sistemas interagem e contribuem de forma geral com os objetivos do negócio

2. Entendimento do domínio da aplicação O conhecimento do domínio da aplicação é o

conhecimento geral onde o sistema será aplicado

3. Entendimento do problema Os detalhes específicos do problema do cliente onde

o sistema será aplicado deve ser entendido

Page 14: Mtodos e Tcnicas Para Anlise de Requisitos

Tipos de requisitos

requisitos funcionais correspondem à listagem de todas as coisas que o sistema deve fazer

requisitos não funcionais são restrições que se coloca sobre como o sistema deve realizar seus requisitos funcionais

Page 15: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Funcionais

requisitos funcionais evidentes são efetuados com conhecimento do usuário

requisitos funcionais ocultos são efetuados pelo sistema sem o conhecimento explícito do usuário

Page 16: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Não Funcionais

Obrigatórios Desejáveis

Page 17: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Não Funcionais

de interface de implementação de eficiência de tolerância a falhas etc.

Page 18: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Não Funcionais

Associados a requisitos funcionais Suplementares

Page 19: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Não Funcionais

Permanentes Transitórios

Page 20: Mtodos e Tcnicas Para Anlise de Requisitos

Tabela de Requisitos Funcionais Código do requisito funcional (Ex.: F1, F2,

F3, ...). Nome do requisito funcional

(especificação curta). Descrição (especificação longa e

detalhamento do requisito). Categoria funcional: evidente ou oculto.

Page 21: Mtodos e Tcnicas Para Anlise de Requisitos

Tabela de Requisitos Não Funcionais Código do requisito não funcional (Ex.: NF1.1,

NF1.2, ... NF2.1, NF2.2, ...). Nome do requisito não funcional (especificação

curta). Restrição: especificação (longa) do requisito não

funcional. Categoria: tipo de restrição: segurança, performance,

compatibilidade, etc. Obrigatoriedade: se o requisito é desejável ou

obrigatório. Permanência: se o requisito é permanente ou

transitório.

Page 22: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Funcionais e Não Funcionais Associados

F1 Registrar empréstimos Oculto ( ) Descrição: O sistema deve registrar empréstimos de fitas, indicando o cliente e as fitas que foram emprestadas, bem como a data do empréstimo e valor previsto para pagamento na devolução. Requisitos Não Funcionais Nome Restrição Categoria Desejável Permanente NF1.1 Controle de Acesso

A função só pode ser acessada por usuário com perfil de operador ou superior.

Segurança ( ) (x)

NF1.2 Identificação de Fitas

As fitas devem ser identificadas por um código de barras

Interface ( ) (x)

NF1.3 Identificação do cliente

O cliente deverá ser identificado a partir de seu nome Interface ( ) ( )

NF1.4 Tempo de registro

O tempo para registro de cada fita deve ser inferior a um segundo.

Performance (x) ( )

NF1.5 Janela única Todas as funções relacionadas a empréstimos devem ser efetuadas em uma única janela

Interface (x) (x)

... ... ... ... ...

F2 Calcular descontos Oculto ( x ) Descrição: O sistema deve calcular descontos nos empréstimos em função da política da empresa. Requisitos Não Funcionais Nome Restrição Categoria Desejável Permanente NF2.1 Desconto de fim de semana

Nos fins de semana, usuários que levam 4 fitas pagam apenas 3.

Especificação ( ) ( )

... ... ... ... ...

Page 23: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos Suplementares

Nome Restrição Categoria Desejável Permanente

S1 Tipo de Interface As interfaces do sistema devem ser implementadas como formulários acessíveis em um browser html.

Interface ( ) ( )

S2 Armazenamento de dados

A camada de persistência deve ser implementada de forma que diferentes tecnologias de bancos de dados possam vir a ser utilizadas no futuro

Persistência ( ) ( x )

S3 Perfis de usuário Os perfis de usuário para acesso ao sistema são: 3. Administrador - pode efetuar todas as operações. 2. Operador - pode efetuar as operações de empréstimo, devolução, pagamento e cadastramento. 1. Convidado - pode efetuar apenas consultas nos próprios dados (cliente).

Segurança ( ) ( )

... ... ... ... ...

Page 24: Mtodos e Tcnicas Para Anlise de Requisitos

Trabalho em grupo

Selecione um sistema utilizado em sua empresa e identifique 5 requisitos funcionais e seus respectivos não-funcionais (pode ser vários).

Entregar em aulaNome, Descrição do SistemaVisão geral do softwareFs, NFs, Ss

Page 25: Mtodos e Tcnicas Para Anlise de Requisitos

Técnicas de Elicitação

Técnicas especiais que podem ser usadas para coletar conhecimento sobre os requisitos dos usuários

Este conhecimento deve ser estruturado Problemas da elicitação

TempoEngenheiros de softwarestakeholders

Page 26: Mtodos e Tcnicas Para Anlise de Requisitos

Técnicas de Elicitação Entrevistas Leitura de documentos Questionários Análise de protocolos Participação ativa dos usuários Cenários Observações e análise sociais Prototipação

Page 27: Mtodos e Tcnicas Para Anlise de Requisitos

Escolhendo a técnica Deve-se selecionar as técnicas a serem

utilizadas e estabelecer a maneira como elas serão integradas

A escolha das técnicas e seu esquema de integração dependerá do problema e da equipe participante

É interessante conhecê-las e saber identificar onde uma técnica se aplica melhor que outra

Page 28: Mtodos e Tcnicas Para Anlise de Requisitos

Técnicas específicas de elicitação

Page 29: Mtodos e Tcnicas Para Anlise de Requisitos

Entrevistas

O Engenheiro de requisitos ou analista discute o sistema com diferentes stakeholders e obtêm um entendimento dos requisitos

Vantagens: contato direto com o usuário e validação imediata

Desvantagens: conhecimento tácito e diferenças de cultura

Page 30: Mtodos e Tcnicas Para Anlise de Requisitos

Entrevistas - tipos Entrevistas fechadas: o analista busca

respostas a um conjunto de questões pré-definidas

Entrevistas abertas: Não há uma agenda pré-definida e o engenheiro de requisitos discute de forma aberta, o que o stakeholder quer do sistema

Tutorial: o cliente dá uma aula explicando seu trabalho

Page 31: Mtodos e Tcnicas Para Anlise de Requisitos

Entrevistas: dicas - planejamento

Identificar candidatos Preparação da entrevista : agendar e

preparar questionário (se for o caso) O analista não deve ir para a

entrevistas com noções pré-concebidas

Page 32: Mtodos e Tcnicas Para Anlise de Requisitos

Entrevistas: condução Informar aos stakeholders o ponto inicial da

discussão. Isto pode ser uma questão, uma proposta de requisitos ou um sistema existente

Esperar por respostas incompletas Repetir frases do entrevistado com suas

próprias palavras Entrevistadores devem estar cientes da política

organizacional - muitos requisitos reais podem não ser discutidos devido a implicações políticas

Page 33: Mtodos e Tcnicas Para Anlise de Requisitos

Entrevistas: Finalização

Tempo para rever respostas de todas as perguntas - consolidar informações

Agradecimentos Gerar documento que deve ser assinado

pelo entrevistado

Page 34: Mtodos e Tcnicas Para Anlise de Requisitos

Leitura de Documentos

Vantagens: facilidade de acesso e volume de informações

Desvantagens: dispersão das informações e volume de trabalho

Page 35: Mtodos e Tcnicas Para Anlise de Requisitos

Questionários Quando existe conhecimento sobre o problema

e grande número de clientes Quando dados estatísticos são importantes Dão idéia definida sobre como certos aspectos

do universo de informação são percebidos Vantagens: padronização das perguntas e

tratamento estatístico das respostas Desvantagens: limitação do universo de

respostas e pouca iteração

Page 36: Mtodos e Tcnicas Para Anlise de Requisitos

Cenários

Cenários são exemplos de interação que descrevem como o usuário interage com o sistema

A descoberta de cenários expõe interações possíveis do sistema e revela as facilidades que o sistema pode precisar

Page 37: Mtodos e Tcnicas Para Anlise de Requisitos

Cenários Cenários são partes inerentes de alguns métodos de desenvolvimento OO São estórias que explicam como um sistema poderá ser utilizado. Devem incluir:

descrição do estado do sistema antes de começar o cenário o fluxo normal de eventos do cenário exceções ao fluxo normal de eventos informações sobre atividades concorrentes uma descrição do estado do sistema no final do cenário

Page 38: Mtodos e Tcnicas Para Anlise de Requisitos

Análise de protocolos Analisar o trabalho de determinada pessoa

através da verbalização Objetivo: estabelecer a racionalidade utilizada

na execução de tarefas Vantagens: possibilidade de elicitar fatos não

facilmente observáveis e permitir melhor entendimento dos fatos

Desvantagens: desempenho do entrevistado e “o que se diz é diferentes do que se faz”

Page 39: Mtodos e Tcnicas Para Anlise de Requisitos

Participação ativa dos usuários Incorporação dos usuários ao grupo de ER Os usuários precisam aprender a linguagem de

modelagem utilizadas para ler as descrições e criticá-las

Integração dos usuários na modelagem do sistema

Vantagens: envolvimento dos clientes/usuários Desvantagens: Tempo em treinamento dos

usuários e falsas expectativas no usuário

Page 40: Mtodos e Tcnicas Para Anlise de Requisitos

Observação e análise social Difícil descrever os processos, interessante

observar Processos reais diferem dos processos

formais escritos nos manuais Vantagens: visão mais completa e

perfeitamente ajustada ao contexto Desvantagens: custo com tempo e pessoal

gasto e pouca sistematização do processo

Page 41: Mtodos e Tcnicas Para Anlise de Requisitos

Prototipação

Uma versão inicial de um sistema que poderá ser usado para experimentação

Protótipos são úteis para elicitar requisitos porque o usuário poderá “experimentar” o sistema e mostrar os pontos fortes e fracos

Concreto

Page 42: Mtodos e Tcnicas Para Anlise de Requisitos

Tipos de prototipagem

DescartávelProtótipo serve para requisitos e é descartado

um outro sistema é implementado depois; Evolucionária

usado no ciclo espiralOs requisitos vão aparecendo conforme o

usuário está utilizando o “sistema”

Page 43: Mtodos e Tcnicas Para Anlise de Requisitos

Prototipagem - Vantagens O protótipo permite que os usuários experimentem e

descubram o que eles realmente necessitam para suportar o trabalho deles

Estabelece a viabilidade e utilidade antes que altos custos de desenvolvimento tenham sido realizados

Interface Pode ser usado para teste do sistema e

desenvolvimento da documentação Força estudo detalhado dos requisitos que revela

inconsistências e omissões

Page 44: Mtodos e Tcnicas Para Anlise de Requisitos

Prototipagem - Desvantagens

Custos de treinamento: pode se optar por ferramentas específicas para prototipação

Incompletude

Page 45: Mtodos e Tcnicas Para Anlise de Requisitos

Organização dos Requisitos (Modelagem) Visa a representação dos requisitos em

modelos conceituais que descrevem as necessidades encontradas na elicitação.Diagramas/modelos“Manutenção” de ConceitosConsultas/Relatórios

Page 46: Mtodos e Tcnicas Para Anlise de Requisitos

Análise de Requisitos

Analisar o modelo gerado buscando encontrar inconsistências e omissões nos requisitos elicitados

Intercalar com elicitação pois problemas são descobertos quando os requisitos são elicitados

Page 47: Mtodos e Tcnicas Para Anlise de Requisitos

Validação

Com a ajuda dos clientes/usuários, busca-se validar ou seja, confirmar o conhecimento adquirido.

Page 48: Mtodos e Tcnicas Para Anlise de Requisitos

Documentação Gerada

O documento de requisitos de software - também chamado de SRS software requirements specification - é o resultado da engenharia de requisitos.

Deve incluir requisitos do usuário, requisitos do sistema

Page 49: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos do usuário

São declarações em linguagem natural e também em diagramas sobre as funções que o sistema deve fornecer e as restrições sob as quais deve operar.

Page 50: Mtodos e Tcnicas Para Anlise de Requisitos

Requisitos do sistema

Estabelecem detalhadamente as funções e as restrições de sistema.

Algumas vezes chamado de ESPECIFICAÇÃO FUNCIONAL

Pode servir como contato entre o comprador e o desenvolvedor do software.

Page 51: Mtodos e Tcnicas Para Anlise de Requisitos

Padrão IEEE/ANSI 830-1998

1. Introdução 1.1 Propósito 1.2 Convenções 1.3 Público Alvo e Orientações para Leitura 1.4 Escopo do Produto 1.5 Referências

Page 52: Mtodos e Tcnicas Para Anlise de Requisitos

2. Descrição Geral 2.1 Perspectiva do Produto 2.2 Funções do Produto 2.3 Classes de Usuários e Características 2.4 Ambiente Operacional 2.5 Restrições de Projeto e Implementação 2.6 Premissas e Dependências

Page 53: Mtodos e Tcnicas Para Anlise de Requisitos

3. Requisitos de Interface Externa 3.1 Interfaces do Usuário 3.2 Interfaces de Hardware 3.3 Interfaces com outros Sistemas 3.4 Interfaces de Comunicação

Page 54: Mtodos e Tcnicas Para Anlise de Requisitos

4. Funcionalidades do Sistema 4.x Funcionalidade X 4.x.1 Descrição e Prioridade 4.x.2 Seqüências de Estímulos e Respostas 4.x.3 Requisitos Funcionais

Page 55: Mtodos e Tcnicas Para Anlise de Requisitos

5. Requisitos não Funcionais

5.1 Requisitos de Performance 5.2 Requisitos de Uso com Segurança 5.3 Requisitos de Segurança 5.4 Atributos de Qualidade 5.5 Regras de Negócio 5.6 Documentação do Usuário

Page 56: Mtodos e Tcnicas Para Anlise de Requisitos

6. Outros Requisitos

Apêndice A: Glossário

Apêndice B: Modelos de Análise

Apêndice C: Lista de Pendências

Page 57: Mtodos e Tcnicas Para Anlise de Requisitos

JadJoint Application Design (JAD), criada pela IBM no final dos anos 70, é uma proposta para a identificação de requisitos de sistema que procura integrar as pessoas da área de negócio (usuários) e profissionais da área técnica por meio de seminários altamente focados.

Page 58: Mtodos e Tcnicas Para Anlise de Requisitos

JadA técnica JAD procura assegurar que a informação seja levantada a partir de todas as áreas afetadas e que os requisitos identificados sejam aprovados por todos os participantes, não cabendo esta decisão apenas aos analistas de sistema responsáveis pela coleta dos requisitos.

Page 59: Mtodos e Tcnicas Para Anlise de Requisitos

Jad - Definição de papéisPatrocinador executivo – responsável do

sistema que está sendo debatido. Deve resolver conflitos entre participantes (quando um impasse estiver estabelecido, cabe a ele, a decisão final). Ele auxilia também na preparação (homework) da JAD, introduzindo o problema para o grupo, no início da sessão.

PAULO - MPB

Page 60: Mtodos e Tcnicas Para Anlise de Requisitos

Jad - Definição de papéisMembros da equipe de desenvolvimento – a

equipe é formada, principalmente, por analistas de sistemas. EQUIPE WEBPACK

Usuários de negócio – pessoas que possuem o conhecimento e a experiência no domínio do problema (visão de negócio). Durante uma sessão JAD, os usuários contribuem com suas visões sobre os processos atuais e naquilo que precisa ser modificado. EQUIPE MPB

Page 61: Mtodos e Tcnicas Para Anlise de Requisitos

Jad - Definição de papéis

Secretário – pessoa que registra toda a informação discutida e as decisões tomadas durante a sessão. EDUARDO – WEBPACK

Facilitador – pessoa que coordena o processo de levantamento de requisitos. O objetivo do facilitador é direcionar e sustentar a discussão, garantindo que as metas da sessão sejam alcançadas. DOUGLAS - WEBPACK