Upload
internet
View
145
Download
1
Tags:
Embed Size (px)
Citation preview
Especificação de Requisitos
Eveline Alonso VelosoPUC-Minas
Bibliografia IEEE. SWEBOK: Guide to the Software
Engineering Body of Knowledge. 2004, capítulo 2.
SOMMERVILLE, Ian. Engenharia de Software. 6ª ed., São Paulo: Pearson, 2003, capítulo 6.
PRESSMAN, Roger S. Engenharia de Software. 5ª ed., Rio de Janeiro: McGraw Hill, 2002, capítulos 10 e 11.
Transparências da professora Maria Augusta Vieira Nelson – PUC-Minas.
PAULA-FILHO, Wilson de Pádua. Engenharia de Software: Fundamentos, Métodos e Padrões. 2ª ed., Rio de Janeiro: LTC - Livros Técnicos e Científicos, 2003, capítulo 5.
Especificação de Requisitos Requisito:
efeito que o sistema deve exercer sobre o mundo real.
Especificação de Requisitos: interface entre o mundo real e o
domínio da máquina; deve ditar:
o que o sistema deve fazer; sem ditar:
como fazê-lo. Dizer como;
é uma atividade da fase de desenho.
Tipos de Especificação de Requisitos
Especificação dos Requisitos do Usuário: Também conhecida como
Documento de Definição dos Requisitos do Software.
Especificação dos Requisitos do Software: ERSw.
Especificação dos Requisitos do Usuário Descreve o problema enfrentado pela
organização cliente e os futuros usuários finais do produto de software; e as características desejáveis de uma
solução para o problema.
Define os requisitos do software em alto nível; da perspectiva do domínio do problema.
Seu conteúdo deve ser descrito; em termos do domínio da aplicação.
Especificação dos Requisitos do Usuário Lista os requisitos do software
indicando informações sobre: os objetivos gerais do sistema; as características do ambiente em que o
sistema será implantado; restrições aplicáveis; hipóteses relacionadas.
Pode ser a base para a proposta de um contrato de desenvolvimento de software; portanto, os requisitos descritos em uma
especificação de requisitos de usuário devem ser abertos à interpretação.
Especificação dos Requisitos do Software Estabelece a base para um contrato
entre clientes e futuros usuários finais do software e a empresa desenvolvedora sobre: o quê o produto de software deve
oferecer; assim como aquilo que não se espera
que o software faça. Portanto, requisitos documentados nesse
tipo de documento; devem ser definidos em detalhes.
Especificação dos Requisitos do Software Apresenta ainda a visão do cliente e
futuros usuários finais do software; sobre os serviços oferecidos pelo sistema
e outras características; porém em maior nível de detalhes;
o que permite um maior entendimento da necessidade ou problema.
Serve como passo inicial para o refinamento do sistema.
Não deve descrever: decisões de desenho ou de
implementação; aspectos gerenciais do projeto;
como custos e prazos.
Especificação dos Requisitos do Software Provê:
rigorosa avaliação dos requisitos do software;
antes que o desenho do sistema comece; reduzindo o retrabalho na fase de construção;
uma base consistente para a realização de estimativas relacionados ao produto e ao projeto;
uma base para o melhoramento posterior do software;
uma base de referência para manutenções futuras no sistema.
Leitores da Especificação dos Requisitos do Software Clientes/usuários do software:
especificam os requisitos do software; e os lêem para verificar se eles atendem suas
necessidades.
Gerente do projeto: utiliza a ERSw para planejar o
desenvolvimento do software.
Arquitetos de software: utilizam o documento para compreender
o sistema que deve ser desenvolvido.
Leitores da Especificação dos Requisitos do Software
Testadores: utilizam a ERSw para desenvolver
testes de aceitação para o sistema.
Engenheiros de manutenção do sistema: utilizam o documento para melhor
compreender o sistema; e as relações entre suas partes.
Características de Qualidade da Especificação de Requisitos de Software Uma boa especificação de
requisitos de software é correta: todo requisito nela presente;
é realmente um requisito do produto a ser construído.
Para verificar a correção da especificação de requisitos:
deve-se solicitar a revisão e aprovação formal da especificação de requisitos por parte do cliente.
Características de Qualidade da Especificação de Requisitos de Software É altamente recomendável que exista
algum registro dessa aprovação pelo cliente, por exemplo:
documento de especificação dos requisitos do software assinado pelo cliente aprovando seus requisitos;
e-mail do cliente contendo um “de acordo” sobre os requisitos aprovados.
Aprovações informais, sem registros, podem gerar conflitos futuros sobre:
o que teria sido aprovado na época; o conteúdo dos requisitos.
Características de Qualidade da Especificação de Requisitos de Software Uma boa especificação de
requisitos de software é completa: contém todos os requisitos do
software: funcionais, não-funcionais, restrições e
interfaces externas; define entradas válidas e inválidas:
e as respostas do software para todas as entradas válidas;
contém glossário de todos os termos técnicos.
Características de Qualidade da Especificação de Requisitos de Software Uma boa especificação de requisitos de
software é consistente: não há conflitos entre os subconjuntos de
requisitos presentes. Uma boa especificação de requisitos de
software é priorizada: todos os seus requisitos são classificados
quanto à estabilidade, complexidade e importância.
Uma boa especificação de requisitos de software é rastreável:
permitindo a fácil determinação dos antecedentes e conseqüências de todos os requisitos.
Características de Qualidade da Especificação de Requisitos de Software Uma boa especificação de requisitos de
software é verificável: ou seja, seus requisitos são passíveis de
serem testados. Um requisito é verificável:
se existir um processo finito; com custo compensador; que possa ser executado por uma pessoa ou
máquina; que mostre a conformidade do produto final
com o requisito. Requisitos não-verificáveis:
requisitos ambíguos; requisitos definidos em termos qualitativos; requisitos contrários a fatos técnicos e
científicos.
Características de Qualidade da Especificação de Requisitos de Software Uma boa especificação de requisitos
de software é modificável: sua estrutura e estilo permitem a
mudança de qualquer requisito: de forma fácil, completa e consistente.
A modificabilidade geralmente requer: organização coerente;
com índices e referências cruzadas; ausência de redundância entre requisitos; definição separada de cada requisito.
Características de Qualidade da Especificação de Requisitos de Software Na prática, para sistemas
grandes e complexos, é praticamente impossível atingir a consistência e a completude da especificação de requisitos de software. Porém essas características devem
ser sempre buscadas; com a construção de uma
especificação de requisitos de software tão completa quanto possível.
Meios para Especificação de Requisitos
Documentação em linguagem natural;
Modelagem gráfica; Notações tabulares; Modelagem matemática; Protótipos; Combinação dos anteriores.
Documentação em Linguagem Natural Uma das formas mais comuns
de se redigir especificações é a linguagem natural; tanto Especificações de Requisitos
de Usuário; quanto Especificações de
Requisitos de Software. Geralmente utiliza-se algum
template; para orientar a redação dos
requisitos.
Documentação em Linguagem Natural – Dificuldades A linguagem natural:
é muito sujeita a ambigüidades; permitindo que leitores e escritores da
especificação interpretem as mesmas palavras;
de diferentes maneiras;
permite um excesso de flexibilidade: é possível documentar o mesmo requisito;
de modos bastante diferentes na especificação;
é difícil de ser utilizada de maneira precisa; sem produzir um documento de difícil leitura.
Template 1 – Especificação de Requisitos de Usuário – Método Volere identificador do requisito; descrição do requisito; fonte do requisito; critério de aceitação; nível de satisfação (aceita valores de 1 a 5);
define quão satisfeito ficará o cliente/usuário; se o requisito for implementado;
nível de insatisfação (aceita valores de 1 a 5); define quão insatisfeito ficará o cliente/usuário;
se o requisito não for implementado;
dependências e conflitos com outros requisitos.
Template 2 – Especificação de Requisitos de Software – IEEE 803-1998 Introdução; Descrição Geral; Requisitos Específicos:
Requisitos de Interfaces Externas; como o software interage com as pessoas,
com o hardware do sistema e com outros sistemas?
Funcionalidades do Sistema; o que o software deverá fazer?
Outros Requisitos; Informação de Suporte.
Modelagem Gráfica
Diagramas de fluxo de
dados;
Diagramas de entidades e
relacionamentos;
Diagramas de transição de
estados.
Notações Tabulares Utilizam tabelas e árvores para
descrever o comportamento do sistema: Tabelas de Decisão:
permitem especificar requisitos que produzem uma saída ou ação;
dependendo da avaliação de condições complexas.
Árvores de Decisão: semelhantes a tabelas de decisão; úteis quando nem todas as combinações
de condições são possíveis.
Tabela de Decisão – Exemplo
Seção de Condições: superior esquerdoSeção de Ações: inferior esquerdoEntrada de Condições: superior direitoEntrada de Ações: inferior direito
Árvore de Decisão – Exemplo
Cálculo de tarifa de uma distribuidora de livros