50
Requisitos de Software

Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Embed Size (px)

Citation preview

Page 1: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos de Software

Page 2: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Engenharia de requisitos

Estabelece os serviços que o cliente requer de um

sistema e as restrições sob as quais tal sistema

operará e será desenvolvido.

Tais serviços e restrições são chamados de requisitos

Page 3: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

O que é um requisito?

Pode ser uma descrição abstrata de alto nível de

um serviço, uma restrição de sistema ou até uma

especificação matemática, entre outras coisas

O problema cujo desenvolvimento do sistema

deve resolver

O sistema tem que ser construído de modo a satisfazer

todos os seus requisitos

Page 4: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Tipos de requisitos

Requisitos de usuário

Declarações de alto nível escritas em linguagem natural

Escritos para os clientes

Requisitos de sistema

Um documento estruturado estabelecendo descrições detalhadas

das funções, serviços e restrições operacionais do sistema.

Define o que deve ser implementado e pode até ser parte de um

contrato entre o cliente e o desenvolvedor

Page 5: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Definições e especificações

Page 6: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos funcionais e não-funcionais

Requisitos funcionais

Serviços que o sistema deve fornecer

Como o sistema deve reagir a entradas específicas

Como o sistema deve se comportar em determinadas situações

Requisitos não-funcionais ou de qualidade

Restrições sobre serviços ou funções oferecidos pelo sistema tais como restrições de timing, restrições sobre o processo de desenvolvimento, padrões, etc.

Page 7: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Exemplos de requisitos funcionais

O usuário deve ser capaz de pesquisar em todo o

conjunto inicial de banco de dados ou selecionar um

subconjunto a partir dele

Para todo pedido deve ser alocado um identificador

único (ORDER_ID) que o usuário possa copiar para a

área de armazenamento permanente da sua conta

O sistema deve fornecer telas apropriadas para o

usuário ler os documentos no repositório de

documentos

Page 8: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Imprecisão de requisitos

Problemas surgem quando os requisitos não são precisamente definidos

Requisitos ambíguos podem ser interpretados de maneiras diferentes pelos desenvolvedores e usuá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.

Page 9: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos completos e consistentes

Em princípio, requisitos devem ser completos e

consistentes

Completude

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

Page 10: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos não-funcionais

Definem propriedades e restrições de sistema

Exemplos incluem confiabilidade, tempo de resposta e requisitos de armazenamento

Restrições são capacidade de dispositivos de E/S, representações de sistema, etc.

Requisitos de processo podem também ser especificados, impondo uma linguagem de programação, IDE ou método de desenvolvimento particular

Requisitos não-funcionais podem ser mais críticos do que os requisitos funcionais

Page 11: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Tipos de requisitos não-funcionais

Page 12: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Exemplos de requisitos não- funcionais

Page 13: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Metas e requisitos

Requisitos não-funcionais podem ser difíceis de definir

precisamente

Requisitos imprecisos podem ser difíceis de verificar

Meta

Uma intenção geral do usuário, tal como facilidade de uso

Requisito não-funcional verificável

Uma declaração usando alguma medida que pode ser

objetivamente testada

Metas são úteis para desenvolvedores quando exprimem

as intenções dos usuários do sistema

Page 14: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Exemplo

Page 15: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Medidas de requisitos

Page 16: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Interação de requisitos

Conflitos entre os diferentes requisitos não-funcionais são comuns em sistemas complexos

Sistema de aeronave

Para minimizar o peso, o número de chips separados no sistema

deve ser minimizado

Para minimizar o consumo de energia, chips de baixa potência devem ser usados

E o desempenho pode ser impactado!

Contudo, o uso de chips de baixa potência pode significar que mais chips devem ser usados . Qual é o requisito mais crítico?

Page 17: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos de usuário

Requisitos funcionais e não-funcionais descritos de

modo a ser compreensíveis por usuários que não têm

conhecimento técnico detalhado

São definidos usando uma linguagem simples, tabelas e

diagramas quando estes podem ser compreendidos por

todos os usuários

Page 18: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisito de grade de editor

Page 19: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Diretrizes para escrever requisitos

Usar um formato padrão para todos os requisitos

Usar a linguagem de uma forma consistente

‘deve’ para requisitos obrigatórios, e

‘deveria’ para requisitos desejáveis

Realçar o texto para identificar as partes principais

do requisito

Evitar o uso de jargões de computação

Page 20: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos de sistema

Especificações mais detalhadas das funções do sistema,

dos serviços e das restrições

Visam fornercer uma base para o desenvolvimento do

sistema

Eles podem ser incorporados no contrato de sistema

Requisitos de sistema podem ser definidos ou ilustrados

usando notações gráficas

Page 21: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Requisitos e Projeto

Requisitos devem definir o que o sistema deve fazer e o projeto deve descrever como ele faz isto

Requisitos => problema

Projeto => solução

Na prática, requisitos e projeto são inseparáveis

Uma arquitetura de sistema pode ser projetada para estruturar os requisitos

O sistema pode ter que interoperar com outros sistemas que geram novos requisitos

O uso de uma solução de projeto específica pode ser um requisito de domínio

Page 22: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Problemas com linguagem natural

Falta de clareza

É difícil atingir uma precisão sem tornar o documento difícil de ler

e ambíguo

Confusão de requisitos

Requisitos funcionais e não-funcionais tendem a estar

misturados.

Fusão de requisitos

Vários requisitos diferentes podem ser expressos juntos

Dificuldade de estruturar a especificação

Page 23: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Alternativas à especificação em

linguagem natural

Page 24: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Especificações em linguagem estruturada

A liberdade do elaborador de requisitos é limitada por

um template pré-definido para requisitos

Todos os requisitos são escritos de maneira

padronizada

A terminologia usada na descrição pode ser limitada

A vantagem é que a maior parte da expressividade da

linguagem natural é mantida

Mas o grau de uniformidade é imposto na especificação

Page 25: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Apresentação estruturada

Page 26: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Especificação baseada em formulário

Page 27: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Especificação tabular

Usada para suplementar a linguagem natural

Particularmente útil quando você tem de definir uma

série de possíveis cursos alternativos de ação

Page 28: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Especificação tabular

Page 29: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

O documento de requisitos

O documento de requisitos é a declaração oficial do que

é requisitado pelos desenvolvedores do sistema

Deve incluir ambos, uma definição dos requisitos de

usuário e uma especificação dos requisitos de sistema

NÃO É um documento de projeto.

Logo que possível, será preciso definir como o sistema

deve fazer, ao invés de o que deve ser feito

Page 30: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Usuários de um documento de

requisitos

Page 31: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Engenharia de Requisitos

Page 32: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Objetivos

• Descrever as principais atividades da engenharia de requisitos

• Introduzir técnicas para a elicitação e análise de requisitos

• Descrever validação de requisitos

• Discutir o gerenciamento de requisitos

Page 33: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

O Processo da Engenharia de Requisitos

Estudo de viabilidade

Relatório de viabilidade

Elicitação de requisitos e

análise

Modelos do sistema

Especificação de requisitos

Validação de requisitos

Requisitos do usuário e do

sistema

Documento de requisitos

Page 34: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Estudo de Viabilidade

• O que é um estudo de viabilidade?

• O que estudar e concluir?

• Benefícios e custos

• Análise de custo/benefício

• Alternativas de comparação

Page 35: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Estudo de Viabilidade

• Estudo que indica se o esforço em desenvolver a idéia vale a pena

Visa tanto a tomada de decisão

Como a sugestão de possíveis alternativas de solução

Page 36: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Estudo de Viabilidade

• Deve oferecer informações para ajudar na decisão

Se o projeto pode ou não ser feito

Se o produto final irá ou não beneficiar os usuários interessados

Escolha das alternativas entre as possíveis soluções

Há uma melhor alternativa?

Page 37: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

O Que Estudar?

• Sistema organizacional apresentado

Usuários, políticas, funções, objetivos, etc.

• Problemas com o sistema apresentado

Inconsistências, funcionalidades inadequadas, performance, etc.

• Objetivos e outros requisitos para o novo sistema

O que precisa mudar?

Page 38: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

O Que Estudar?

• Restrições

Incluindo requisitos não-funcionais do sistema (superficialmente)

• Alternativas possíveis

Sistema atual é geralmente uma das alternativas

• Vantagens e desvantagens das alternativas

Page 39: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Testes de Viabilidade

• Operacional

Medida do grau de adequação da solução para a organização

o Avaliação de como as pessoas se sentem sobre o sistema/projeto

• Técnica

Avaliação da praticidade de uma solução técnica específica e a disponibilidade dos recursos técnicos e dos especialistas

Page 40: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Testes de Viabilidade

• Cronograma

Avaliação de quão razoável está o cronograma do projeto

• Econômica

Avaliação de custo-eficiência de um projeto ou solução

o Conhecida como análise de custo/benefício

Page 41: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Viabilidade Operacional

• Avalia a urgência do problema (visão e fases de estudo) ou a aceitação da solução (definição, seleção, aquisição, e fases do projeto)

• Há dois aspectos da viabilidade operacional a serem considerados

O problema vale a pena ser resolvido ou a solução proposta para o problema funcionará?

Como o usuário final e a gerência sentem-se sobre o problema (solução)?

Page 42: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Viabilidade Técnica

• A solução ou a tecnologia proposta é prática?

• Já possuímos a tecnologia necessária?

• Já possuímos o conhecimento técnico necessário?

Page 43: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Viabilidade de Cronograma

• Dado nosso conhecimento técnico, os prazos dos projetos são razoáveis?

Alguns projetos são iniciados com prazos específicos

o Você precisa determinar se os prazos são obrigatórios ou desejáveis

o Se são mais desejáveis que obrigatórios, o analista pode propor outros cronogramas

Page 44: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Viabilidade Econômica

• Talvez a mais crítica

Durante as fases iniciais do projeto, a análise da viabilidade econômica consiste em julgar se os possíveis benefícios de solucionar o problema são ou não vantajosos

Tão logo os requisitos específicos e soluções sejam identificados, o analista pode levar em consideração os custos e benefícios de cada alternativa

o Isso é chamado de análise de custo-benefício

Page 45: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Tipos de Custos

• Custos de desenvolvimento de sistemas

Desenvolvimento e aquisição

Custos de instalação e de conversão

• Custos operacionais (contínuo)

Manutenção

Pessoal

Page 46: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Análise Custo-Benefício

• Há três técnicas principais

Análise do retorno financeiro (payback analysis)

Retorno do investimento (return on investments)

Valor atual líquido (Net present value)

Page 47: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Análise de Retorno do Investimento

• A técnica de análise de retorno do investimento (ROI) compara os benefícios das diferentes soluções ou projetos

• O ROI para uma solução ou projeto é a taxa percentual que mede a relação entre a quantia que a empresa obtém de retorno ao seu investimento e a quantia investida

Page 48: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Análise de Retorno do Investimento

• O ROI para uma solução ou projeto potencial é calculado como a seguir:

ROI = (Benefícios totais - Custos totais) / Custos totais

ROI = valor atual líquido / Custos totais

o Ex: ROI = (22508,64-17321,20)/ 17321,20= 29,95%

o EX: ROI = 5187,44/ 17321,20 = 29,95%

• A solução que oferecer o ROI mais alto é a melhor alternativa

Page 49: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Matriz de Viabilidade

• Como nós comparamos alternativas quando existem vários critérios de seleção e nenhuma das alternativas é superior em todos os aspectos?

• Use uma Matriz de Análise de Viabilidade!

Page 50: Requisitos de Software - Início | Faculdade de …bacala/ES/04_Requisitos.pdfMetas e requisitos Requisitos não-funcionais podem ser difíceis de definir precisamente Requisitos imprecisos

Documento de Viabilidade

• Após o esforço inicial, discutido anteriormente, deve-se elaborar um relatório de viabilidade

Para cada aspecto apresentado, deve haver seção de avaliação

Deve haver uma seção conclusiva sobre a melhor alternativa ou que o sistema não é viável