• Nenhum resultado encontrado

ER04 - Elicitação - Como elicitar e documentar requisitos

N/A
N/A
Protected

Academic year: 2021

Share "ER04 - Elicitação - Como elicitar e documentar requisitos"

Copied!
45
0
0

Texto

(1)
(2)

Elicitação

• Objetivo

– Entender o que o cliente espera do software

• Problemas mais comuns

– Escopo variável (mas contrato fixo)

– Incertezas do cliente

(3)

Elicitação

• Elementos a serem identificados

– Objetos manipulados pelo sistema

– Serviços prestados pelo sistema

– Restrições que devem ser obedecidas

– Critérios de desempenho

• Resultados esperados

– Narrativa em linguagem natural dos requisitos do

sistema

(4)

Tipos de requisitos

• Requisitos de usuário

– Declarações em linguagem natural mais diagramas de serviços que o sistema fornece e suas restrições

operacionais. Escritos para os usuários.

• Requisitos de sistema

– Um documento estruturado estabelecendo descrições detalhadas das funcionalidades, serviços e restrições operacionais do sistema. Define o que deve ser

implementado e assim, pode ser parte de um contrato entre o cliente e o desenvolvedor.

(5)
(6)

O sistema LIBSYS

• Visão geral do sistema:

– Um sistema de biblioteca que fornece uma interface única para uma série de banco de dados de artigos em

bibliotecas diferentes.

– Os usuários podem pesquisar, baixar e imprimir estes artigos para estudo pessoal.

(7)
(8)

Elicitação

• Cliente x Usuário final

– Nem sempre o cliente é o usuário final

– Cliente

• Quem contrata e paga pelo serviço. • Ex.: Administrador de um hospital

– Usuário final

• Quem usa o software no dia a dia • Ex.: Médicos e enfermeiros

– Importante

• Nunca deixe de elicitar requisitos com os usuários finais pois sem a colaboração deles, o software não será usado.

(9)

Elicitação

• Escolha dos usuários fonte

– Alguns sistemas serão utilizados por milhares ou

milhões de usuários

– Escolha usuários fonte dos requisitos que sejam

representativos

– 20% dos requisitos satisfazem a 80% dos usuários

• Escolher um usuário muito especialista pode levar a implementação de requisitos que nunca serão

(10)

Elicitação

• Maximizar a satisfação do cliente!

– Requisito normal

• O cliente lembra de falar

• O cliente ficará satisfeito se esse requisito estiver no sistema

– Requisito esperado

• Requisito implícito

• O cliente não lembra de falar

• O cliente ficará insatisfeito se esse requisito não estiver no sistema

(11)

Elicitação

• Maximizar a satisfação do cliente!

– Requisito excitante

• O cliente não lembra de falar

• O cliente não espera encontrar esse requisito no sistema

• O cliente ficará satisfeito se esse requisito estiver no sistema

(12)

Técnicas de Elicitação

• Entrevistas

• Oficinas (workshops)

• Reuniões de Brainstorming

• Prototipação

• Maquetes

• Análise de documentação existente

• Análise de sistemas existentes

• Observação de pessoas trabalhando (Etnografia)

• Análise de mercado

(13)

Engenharia de Requisitos

(14)

Tipos de Requisitos

• Requisitos Funcionais

– RF são requisitos diretamente ligados a funcionalidade do software.

• Requisitos Não Funcionais

– RNF são requisitos que expressam restrições que o

software deve atender ou qualidades específicas que o software deve ter.

Requisitos de domínio(RF ou RNF)

– Requisitos que vêm do domínio de aplicação do sistema e que refletem as características desse domínio.

(15)
(16)

Requisitos funcionais

• Descrevem a funcionalidade ou serviços de sistema.

• Dependem do tipo de software, dos usuários

esperados e o tipo de sistema onde o software é

usado.

• Requisitos funcionais de usuário podem ser

declarações de alto nível do que o sistema deve fazer

mas os requisitos funcionais de sistema devem

(17)

Exemplos de requisitos funcionais

• O sistema deve fornecer ao usuário a opção pesquisar na base de dados de produtos.

• Para todo pedido deve ser gerado um identificador único no qual o usuário poderá utilizar para fazer pesquisas e obter todas as informações referentes ao pedido.

• O sistema deve fornecer ao usuário a opção de cadastrar um contato. Um contato possui as seguintes informações: nome, telephone, link de rede social.

(18)

Requisitos não funcionais

• Definem propriedades e restrições de sistema:

– confiabilidade, tempo de resposta e requisitos de

armazenamento, capacidade de dispositivos de

E/S, etc.

• Podem ainda estar relacionados a portabilidade, de

SO, de BD, etc.

(19)

Requisitos não funcionais

• Requisitos não funcionais podem ser mais críticos do

que os requisitos funcionais. Se estes não forem

atendidos, o sistema é inútil.

• Requisitos não funcionais estão relacionados a

(20)

Classificações de requisitos não

funcionais

• Requisitos de produto

– Requisitos que especificam que o produto entregue deve se

comportar de uma maneira particular, por exemplo, velocidade de execução, confiabilidade, etc.

• Requisitos organizacionais

– Requisitos que são uma conseqüência de políticas e procedimentos da organização, por exemplo, padrões de processo usados,

requisitos de implementação, etc.

• Requisitos externos

– Requisitos que surgem a partir de fatores externos ao sistema e seu processo de desenvolvimento, por exemplo, requisitos de interoperabilidade, requisitos legais, etc.

(21)
(22)

Requisitos Não Funcionais

• Disponibilidade

– DS-1: O sistema deve ficar disponível por 99,5% do tempo nos dias úteis, das 6h às 22h

• Eficiência

– EF-1: Em condições de pico de uso, o sistema deve ter uma reserva de 25% de capacidade de processamento e

memória

– EF-2: O sistema deve finalizar o cálculo de interferência com sucesso em menos de 5 minutos

– EF-3: O módulo de parser de XML do sistema deve processar 1.000.000 de documentos por segundo

(23)

Requisitos Não Funcionais

• Flexibilidade

– FL-1: Um novo tipo de sensor deve poder ser configurado no sistema em menos de 3 horas

• Integridade

– IN-1: Transações históricas dos consumidores só poderão ser vistas por usuários com privilégios de “auditor”

• Interoperabilidade

– IT-1: O sistema deve ser capaz de importar dados tanto do MS Office (versão 2003) quanto do OpenOffice (versão 2.4)

(24)

Requisitos Não Funcionais

• Confiabilidade

– CF-1: Em cada 1000 execuções, não mais do que 2 podem apresentar falhas de software

• Robustez

– RB-1: Se acontecer uma falha antes do usuário salvar, o sistema deve recuperar uma versão não salva com perda de conteúdo menor que 1 minuto de trabalho

• Manutenibilidade

– MN-1: Todos os métodos devem ser documentados utilizando a notação Javadoc

– MN-2: Modificações corretivas devem ser feitas em menos de 5 horas

(25)

Requisitos Não-Funcionais

• Usabilidade (Facilidade no uso)

– US-1: Um usuário treinado deve ser capaz de submeter um pedido de compra em menos que 5 minutos

– US-2: Um usuário não treinado deve ser capaz de submeter um pedido de compra em menos que 30 minutos

– US-3: Todos os comandos de menu devem ter teclas de atalho associadas

• Portabilidade

– PR-1: O sistema deve poder ser executado em sistema

operacional Windows e Linux, nas arquiteturas i386, AIX e SPARC

(26)

Problemas

• Falta de clareza

– Pode ser difícil uma linguagem precisa e não

ambígua

• Confusão de requisitos

– Requisitos pode estar misturados com

informações do projeto

• Fusão de requisitos

– Diversos requisitos expressos juntos

(27)

Falta de Clareza

• Os requisitos precisam ser claros e precisos

• Requisitos ambíguos podem ser interpretados de

maneiras diferentes pelos desenvolvedores e

usuários.

• Requisito: O sistema deve ter telas apropriadas para

a exibição dos relatórios.

• Considere o termo ‘telas apropriadas’

– Intenção do usuário – tela de propósito especial para cada tipo diferente de documento;

– Interpretação do desenvolvedor – fornece uma tela de texto que mostra o conteúdo do documento.

(28)

Requisitos completos e consistentes

• Em princípio, requisitos devem ser ambos, completos e consistentes.

• Completeza

– Eles devem incluir descrições de todos os recursos requeridos.

• Consistência

– Não deve haver conflitos ou contradições nas descrições dos recursos de sistema.

• Na prática, é impossível produzir um documento de requisitos completo e consistente.

(29)

Conflito

• Requisitos não funcionais normalmente

entram em conflito com outros requisitos e é

preciso haver negociação.

– Eficiência X segurança

– Confiabilidade X Eficiência

– Usabilidade X Segurança

(30)

Requisitos de domínio

• Derivados do domínio de aplicação e descrevem

características de sistema que refletem o domínio.

• Podem restringir os requisitos funcionais existentes

ou estabelecer como cálculos especificos devem ser

realizados.

• Se os requisitos de domínio não forem satisfeitos, o

sistema pode não funcionar.

(31)

Requisitos de domínio do sistema de

bibliotecas

• Deve existir uma interface de usuário padrão para todos os bancos de dados que será baseada no padrão Z39.50.

• Devido às restrições de direitos autorais, alguns

documentos devem ser excluídos imediatamente na chegada. Dependendo dos requisitos de usuário, esses documentos serão impressos localmente no servidor de sistema para serem encaminhados manualmente para o usuário ou direcionados para uma impressora de rede.

(32)

Problemas de requisitos de domínio

• Facilidade de entendimento

– Requisitos são expressos na linguagem do

domínio de aplicação;

– Isso não é, freqüentemente, compreendido pelos

engenheiros de software que estão

desenvolvendo o sistema.

• Implícito

– Especialistas em domínio compreendem a area

tão bem que não pensam em tornar os requisitos

de domínio explícitos.

(33)
(34)

Elicitação

• Dificuldades:

Stakeholders não sabem o que querem do sistema e não expressam o que querem

Stakeholders expressam requisitos naturalmente usando seus próprios termos (domínio)‏

Diferentes stakeholders têm diferentes requisitos

• Fatores políticos podem influenciar (mais poder para um gerente)‏

• Ambiente dinâmico muda constantemente. Novos requisitos podem surgir de novos stakeholders

(35)

Elicitação

• Engenheiros de software, clientes e usuários finais do

sistema e outros envolvidos (stakeholders) trabalham

para aprender

Sobre o domínio da aplicação

Quais serviços/funcionalidades o sistema deve

fornecer

O desempenho esperado

As restrições de hardware, do ambiente, do

negócio

(36)

Elicitação

• Extrair o Conhecimento Tácito

– Trivial

• Internalizado

• Nunca é lembrado!

• Problema de comunicação – Não de

requisitos!!!!

(37)

Elicitação

• Processo interativo com realimentação

contínua (cíclico)‏

• Atividades:

Obtenção de requisitos (coleta de dados)‏

Classificação e organização de requisitos

Priorização e negociação de requisitos

(38)

Documento de Requisitos de

Software

(39)

Documento de Especificação de

Requisitos

• O documento de requisitos do software deve ser

composto por sentenças em linguagem natural,

seguindo determinados padrões:

1. Use ‘deve’ para requisitos obrigatórios.

Exemplo:“O sistema deve rodar em microcomputadores da linha IBM PC que possuam microprocessador 486 DX.”

2. Use ‘deveria’ ou ‘é desejável que’ para requisitos desejáveis.

• Exemplo: “É desejável que o sistema rode em microcomputadores da linha IBM PC que possuam microprocessador superior ao 486 DX.”

Exemplo: “O sistema deveria rodar em microcomputadores da linha IBM PC que possuam microprocessador superior ao 486 DX.”

(40)

Documento de Especificação de

Requisitos

3. Os requisitos devem estar organizados logicamente, como por exemplo, inicialmente todos os requisitos de entrada, depois os de processamento e por último os requisitos de saída.

4. Cada requisito deve ter um identificador único, por exemplo, um identificador numérico, para posterior referência.

• RF01: O sistema deve permitir que o usuário com perfil administrado remova um cliente previamente cadastrado.

5. Os requisitos do software devem estar divididos em requisitos funcionais e não funcionais.

(41)

Formato da Especificação de

Requisitos

• Existem vários padrões de especificações de requisitos. • Um exemplo:

I. Visão Geral do Sistema II. Requisitos Funcionais

III. Requisitos de Qualidade

IV. Apêndice

• Padrão IEEE/ANSI 830/1998.

• A Especificação pode ser acompanhada de um PROTÓTIPO

(42)

Formato sugerido pelo padrão IEEE

1. Introdução

1. Propósito do documento de requisitos 2. Escopo do produto

3. Definições, acrônimos e abreviaturas 4. Referências

5. Visão geral do restante do documento 2. Descrição Geral

1. Perspectiva do produto 2. Funções do produto

3. Características dos usuários 4. Restrições gerais

5. Suposições de dependências

3. Requisitos específicos (requisitos funcionais e não-funcionais) 4. Apêndices

(43)

Problemas com especificação em

linguagem natural

• Ambigüidade

– Os leitores e os escritores dos requisitos devem interpretar as mesmas palavras da mesma maneira. Linguagem natural é naturalmente ambígua , por isso, muito difícil.

• Flexibilidade excessiva

– A mesma coisa pode ser dita de várias maneiras diferentes na especificação.

• Falta de modularização

– Estruturas de linguagem natural são inadequadas para estruturar requisitos de sistema.

(44)

Exercício

• Descreva os requisitos de uma agenda eletrônica

no papel

– Lista de requisitos funcionais

– Lista de requisitos não funcionais

(45)

Referências Bibliográficas

• Sommerville, Ian. Engenharia de Software. 8a edição. Pearson Education, 2007.

• Pressman, Roger S. Engenharia de Software. 6a edição. McGraw-Hill, 2006.

Referências

Documentos relacionados

Na atividade de hoje não será necessário duplicar o o projeto para sua conta pois não será necessário editar nada1. De toda maneira, você ainda pode duplicar o projeto caso

Another study of adverse events worthy of mention was conducted in the United States between 2007 and 2013 and identified greater SAE occurrence during the first vaccine dose

Quanto ao tipo de alongamento, cinco professores trabalham com o alongamento estático, quatro com o alongamento ativo, três com o passivo e dois aplicam

vigência da campanha, no processo seletivo 01/2018 do Centro Universitário de Lavras – UNILAVRAS, para ingresso em um dos cursos presenciais ou a distância, e optar pela

Depois de morar por três anos em Jaraguá do Sul (SC) e outros três em Campinas (SP) me estabeleci em Rio Claro, interior de são Paulo, isto já faz dez anos. Como já havia parado

setor de vendas on-line, passando também a fazer envios de produtos para todo o Brasil, sendo necessária até a contratação de uma equipe de 3 funcionários

Durante a parada cardíaca, a RCP de alta qua- lidade e, particularmente as compressões torácicas são essenciais para enviar fluxo sanguíneo para os órgãos vitais e, desta forma,

26 Tabela 3 – Atividades na área de reprodução acompanhadas durante o estágio obrigatório na Clínica de Equinos Santa Maria, no período de 1º de agosto a 15 de novembro.. 30