Requisitos Não-funcionais
Introdução
Requisitos Não-funcionais
Temas:

Classificação de Requisitos Não-Funcionais
 Derivando Requisitos Não-Funcionais
 Requisitos para Sistemas Críticos
 Engenharia de Requisitos para “Safety-Related
System”
Introdução
Objetivos



Colocar restrições Antes e durante o processo
desenvolvimento
Definir as qualidades globais do sistema
 Segurança (Safety ,Security)
 Usabilidade
 Confiança
 Requisitos de desempenho
Colocar restrições no serviço do sistema sobre
exigências do usuário (Interfaces, Qualidades,
Recurso, Tempo)
Introdução

Requisitos Não-funcionais/funcionais
Exemplo: Requisito de segurança

O sistema só permitirá acesso aos dados, com
autorização.
 O sistema terá um procedimento de autorização
de usuários, nos quais tenham que se identificar
usando um (login) e uma senha. Somente
usuários autorizados terão acesso aos dados
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Boehm-1976,( Deutsh e Willis,1998)


Qualidades exibidas por um software
Davis, 1992

Não-comportamental





Portabilidade
Confiabilidade
Eficiência
Engenharia humana
Testabilidade, Understandabilidade, Modificabilidade
Classificação de Requisitos
Não-funcionais

IEEE-Std 830 -1993

3 Specific Requeriments
3.1 Functional requeriments
3.2 Performance requeriments
3.3 Interface requirements
3.4 Operational requirements
3.5 Resource requirements
3.6 Verification requirements
3.7 Acceptance requirements
3.8 Documentation requirements
3.9 Security requirements
3.10 Portabiliry requirements
3.11 Quality requirements
3.12 Reliabiliry requirements
3.13 Maintainabiliry requirements
3.14 Safety requirements
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Sommerville

Considera:



Interoperabilidade de software e hardware
Processos de desenvolvimento seguidos
Fatores externos, como “Safety e Security regulations”
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Sommerville
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Requisitos de Produtos

Requsitos que podem ser formulado precisamente



O sistema X terá uma disponibilidade de 999/1000 ou 99%.
Isso significa, que a cada 1000 pedidos no serviço 999 devem
ser satisfeitos.
Um sistema X processará 8 transações por segundo .
O código executável em Z de um sistema está limitado em 512
Kb.
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Requisitos de Produtos

Requistos declarados no estado informal

O sistema será desenvolvido para PC e MACINTOSH.
 O sistema codificará todas as comunicações externas em
algoritmo RSA.
 O sistema X Será implementado usando a versão 5 da
BIBLIOTECA Y.

Conflitos em requisitos de Produto

Requisito de utilização de espaço pode entrar em conflito com
o requisito que especifica um compilador padrão, no qual não
gerará o código compacto a ser usado.
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Requisitos de Processos

O processo de desenvolvimento deve ser definido
claramente conforme o padrão ISO 9000

O sistema deve ser desenvolvido usando a seqüência XYZ
da ferramenta CASE.

O gerenciamento de relatórios deve ser produzido a cada
duas semanas, informando o esforço gasto, com a
identificação do componente do sistema.

Um esquema de recuperação no desenvolvimento do
sistema deve ser especificado para o caso de acidentes.
Classificação de Requisitos
Não-funcionais
CONTINUAÇÃO

Requisitos Externos

São requisitos que podem ser colocados no produto e no
processo e são derivados do ambiente que é desenvolvido.

Eles podem fundamentar-se nas informações de domínio
da aplicação.

Considerações Oeganizacionais

Necessidades com outros sistemas

Safety ou regulamentos de proteção dos dados

Leis básicas da física natural
Requisitos Externos
Exemplo 1

O sistema de registro de estudante.
O formato dos dados de registro de estudante disponível pelo
SREC (Student Record System)
Seqüência de registro de dados usada na anotação é como se segue:
Admission_No + Name + Address + University + Course
The individual data items are defined thus:
Admission_No = Year + Personal_Number
Year = 4{Digit}4
Personal_Number = 5{Dìgit}5 Digit = 0 |1| 1 | .. | 9
Name = Surname + (Middlename) + Fìrstname
Surname =1[Letter}15+ (Hyphen) +1{Lettex}15
Middlename = {Letter)10
FirstrLame =1{Letter}15
Letter= A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|X|Y|Z
Hyphen = Address =1{Char}140 Char = Digit |1| Letter | - | | ,
University =1{Letter}20
Course = 1{Letter}20
Requisitos Externos
Exemplo 2

Sistema de dados médicos.
Organização de proteção de dados oficial deve
certificar que todos os dados mantido, estejam de
acordo com a legislação de proteção de dados,
antes do sistema entrar em operação.
Requisitos Externos
Exemplo 3
Sistema de proteção nos
trens.
O tempo requerido para um trem
obter uma parada completa usa a
seguinte função computadorizada:
trem = controle+gradiente
onde
gradiente= 9,8ms-2/gradiente
compensado/alpha e esses
valores são conhecidos para os
diversos tipos de trens
Derivando Requisitos não Funcionais

Não são abordados adequadamente devido:

Dificuldade de elicitar

Limites relacionados ao projeto

Subjetivas => avaliações empíricas complexas.
Derivando Requisitos não Funcionais

Requisitos não funcionais estão relacionados a
requisitos funcionais.

Requisitos não funcionais tendem a conflitar entre
si.

Não há regras para os requisitos não-funcionais.

Uma solução é uma proposta para uma nova
solução
Propostas de Modelos

Chung modelo-orientado-a-metas
 Dobson modelos lógicos
 Kotonia (Kotonia and Sommerville, 1996)
pontos-de-vista
Traduzir objetivos gerais ou metas em
declarações que se refiram às propriedades
mensuráveis do sistema
Requisitos de Software (Preocupações)

Os interessados tem preocupações
importantes mas difícil de articular

São tipicamente não-funcionais

Objetivos críticos do negócio (padronização)

Características essenciais do sistema como

segurança

desempenho

funcionalidade

manutenabilidade
Requisitos de Software (Preocupações)
Atender as preocupações em cada estágio é
prioritário

Atender requisitos funcionais

Expressam requisitos críticos "holísticos”

sub-preocupações

lista de verificação

Preocupações x prioridades globais
Relacionamento entre necessidades do
usuário e requisitos não funcionais
Necessidades do
usuário
Função
Desempenho
Alteração
Preocupações do
usuário
1. Facilidade de uso
2. Acesso não autorizado
3. Possibilidade de falha
4. Utilização de recursos
5. Desemp. de
verificação
6. Facilidade
comunicação
7. Facilidade de reparar
8. Facilidade de alterar
9. Facilidade de
transportar
10.Facilidade de
expandir
Requisitos nãofuncionais
1. Usabilidade
2. Segurança
3. Confiança
4. Eficiência
5. Verificabilidade
6. Interoperabili.
7. Mantenabilidade
8. Flexibilidade
9. Portabilidade
10.Expansibilidade
Decomposição de Preocupações
Sistema de Proteção de Trem
Safety
Colisão Descarrilamento
Excesso de Velocidade
para as condições de trajeto
O Sistema deve estar
apto a detectar e evitar
causas de descarrilamento
Acidente Pessoal
Dano de trajeto
Que informação sobre
dano de trajeto é solicitado
pelo sistema ?
Como é fornecida ?
O que sig. na verdade“excesso
de velocidade” ?
Sob que condições o excesso velocidade pode causar descarrilamento ?
Decomposição de Preocupações
Sistema de Proteção de Trem
Compatibilidade
Hardware
Ambiente de
Execução
Software
Tempo
Um requisito
afetará o
desempenho
do software ?
Física
Interface
O requisito
O Sistema deve
necessita de
ser executado num
dados que
ambiente de execução
não estão
ADA
disponíveis
na Interface ?
Pode esta função ser fornecida pelo ambiente de execução ?
Processo Modelo de Empresa

Loucopulos and Karakostas (1995)

metas da empresa

sub-metas

não-funcionais

Vantagem rastrear os requisitos não-
funcionais
Relacionamento entre Empresa e
Metas do Sistema
Meta
Visualizar os cenários
de tráfego aéreo
Meta secundária
Requer sistema de
resposta em tempo real
Requisitos não-funcionais
Os dados do radar
Todos os dados
devem ser mostrados
dos cenários devem
em tempo real
ser mostrados
Requisitos
não-funcionais
quantitativos
Mostrar 100
trajetos
Mostrar 100
vetores
A posição da aeronave
deve ser mostrada em
menos de 0.165s
Mostrar 500 tabelas
de símbolos
Atributos de requisitos não-funcionais
(Deutsch and Willis, 1988; Sommerville, 1996)

eles devem ser objetivos

um requisito não-funcional é objetivo se não
expressa um desejo, uma meta, ou uma opinião
pessoal.

eles devem ser testáveis

um requisito não-funcional é testável se há algum
processo pelo qual o requisito possa ser testado
Exemplos de medidas métricas para
requisitos não-funcionais
Propriedade
Desempenho
Confiança
Disponibilidade
Tamanho
Usabilidade
Robustez
Portabilidade
Métrica
 transações processadas por segundo
 tempo de resposta para entrada do usuário
 taxa de ocorrência de falha
 tempo médio de falha
 probabilidade de falha na demanda
 kbytes
 tempo necessário para aprender 80% das
facilidades
 número de erros cometidos pelo usuário
num dado período de tempo
 tempo para reiniciar após uma falha no
sistema
 número de sistemas alvo
Requisitos não Funcionais
Pericles Loucopoulos e Vassilios Karakostas
Declarações
de Requisitos
dos stakeholders
Modelo
Representação
das atividades
Modelo
requisitos
Funcionais
RNF
Empresarial
RNF
Estruturados
Requisitos para Sistemas Críticos
Sistemas críticos são sistemas cuja ‘falha’
causam danos significativos para as pessoas
ou organizações.


econômicos
físicos
 humanos
Requisitos para Sistemas Críticos
Há três tipos principais:

Comerciais => dano econômico

Missão => realização de tarefas

Safety => dano humano/ambiental
Requisitos para Sistemas Críticos

As principais restrições não-funcionais:

confiança

desempenho

security (segurança para o sistema)

usabilidade

safety (segurança para o usuário/meio
ambiente )
Requisitos para Sistemas Críticos
requisitos não-funcionais são:

requisitos do sistema como um todo

pode levar a requisitos funcionais específicos
para o software ou outros sub-sistemas.

ocorre conflito entre eles
Requisitos para Sistemas Críticos

Identificados explicitamente e negociados





Código => Desempenho => Confiança
Código => Desempenho => Confiança
Segurança => Usabilidade
Safety contradiz Disponibilidade do sistema
compromisso entre os interessados para
satisfazer o sistema
Requisitos de Confiança
São Restrições no comportamento do sistema
durante a execução

Disponibilidade


exemplo: 3 minutos de indisponibilidade em 24
horas
Taxa de falha


ROCOF - taxa de ocorrência de falhas num dado
período de tempo
MTTF - tempo médio entre falhas no sistema
Requisitos de Desempenho
limitam a velocidade de operação de um
sistema:

Requisitos de resposta


Requisitos throughput


sistema deve responder a uma solicitação do
usuário dentro de 2 segundos.
processar pelo menos 10 transações por
segundo.
Requisitos de tempo

o sistema deve registrar os dados dos sensores
pelo menos 6 vezes por segundo
Requisitos de Desempenho

A memória RAM pode afetar


o comportamento do sistema na execução
a velocidade de operação do sistema.
Devem ser especificados quantitativamente
Requisitos de Segurança (Security)
Os requisitos de segurança são incluídos num
sistema para

assegurar que não seja permitido o acesso
não autorizado ao sistema e aos seus dados

para assegurar integridade do sistema
quando de danos acidentais e maliciosos.
Requisitos de Usabilidade
Especificam a interface do usuário final e
interações com o sistema.

podem ser especificados quantitativamente
 são pouco concretos
 preocupados em achar consistência através
de diferentes sistemas

decisões de projeto de sistema afetam que
formulários serão usados.
Requisito de Segurança (Safety)

Não há concenso sobre o que significa o termo
‘requisito seguro’ (safety requirement)
 requisitos que estão diretamente relacionados
para assegurar operação segura
 requisitos de sistemas de proteção que são
projetados para proteger contra acidentes.
 o uso específico do termo geralmente depende
da cultura e prática da organização na qual é
usado.
Requisito de Segurança (Safety)
Requisitos “safety” são os requisitos ‘não
devem’ que excluem situações inseguras das
soluções do sistema.

o sistema não deve permitir operação a
menos que o responsável pela operação
esteja presente
Requisito de Segurança (Safety)

o sistema não deve permitir que seja
aplicado ao paciente uma dose de sedativo
maior que o valor máximo determinado pelo
médico do pciente.
 o sistema não deve operar se a temperatura
externa estiver menor que 4 graus Celsius.
Os requisitos “safety” podem não definir a
funcionalidade de um sistema mas, ao inves
disso, descrever um comportamento
inaceitável ou indesejado do sistema.
ER em sistemas relacionados com
segurança (safety)

Sistemas em que uma falha pode causar
danos aos operadores, clientes, organização,
ambiente ou público em geral

Controle de tráfego aéreo

Controle de rotas de trem

Controle industrial

Produtos domésticos
ER em sistemas relacionados com
segurança (safety)

A segurança (safety) do sistema depende de
vários requisitos não-funcionais (não apenas
de segurança):

Confiabilidade

Segurança de acesso (security)

Desempenho

Usabilidade
ER em sistemas relacionados com
segurança (safety)

Como derivar requisitos ?

Atividade de análise de segurança

Preocupa-se em garantir que o sistema produzido
não coloca em perigo os usuários finais ou o
ambiente
Ciclo de vida de sistemas críticos
Análise de danos
Avaliação de riscos
BCS and
IEE 1989
Especificação dos requisitos de segurança
requisitos
funcionais
requisitos de
segurança
Definição dos sistemas de segurança
Planejamento da validação
Projeto e implementação
Validação da segurança
Manutenção operacional
Verificação
Derivando requisitos

Guilhotina automática para cortar papel

Lâmina vertical

Motor

Software de controle (controlador)

Botões de início e fim do corte

Um único operador

Sensores
Derivando requisitos
requisitos abstratos
Elicitação
Análise
Processo de requisitos
Documentação
Validação
Requisitos
Identificar considerações de
segurança associados
requisitos de segurança
abstratos
Identificar
danos
Avaliar riscos
Analisar danos
Sugestões de
requisitos
Análise de segurança
Derivando requisitos
Esmagar a mão do operador
Fault-tree
Levenson and Harvey
Falha mecânica
Falha na
trava
Erro do operador
Falha no mecanismo
da lâmina
Erro de implementação
Falha do controlador
Falha de software
Erro de projeto
Falha elétrica
Erro de especificação
Derivando requisitos

Falha mecânica

O sistema deve manter um log para verificar se a
manutenção está em dia. Se a manutenção
atrasar por 2 dias, o sistema é desabilitado

A lâmina da guilhotina deve estar ligada a duas
travas, ambas controladas pelo software
(controlador). Caso haja uma falha em alguma
trava, o sistema é desabilitado
Derivando requisitos

Erro do operador

Dois botões fisicamente separados por 30 cm
devem ser pressionados simultaneamente

Se algum dos botões (ou ambos) estiverem
pressionados por mais de 0,25 segundos o
sistema deve ser desabilitado
Derivando requisitos

Falha do controlador

O software de controle deve ser formalmente
especificado em Z e a consistência da
especificação deve ser demonstrada com
argumentos matemáticos

A integridade dos dados do sistema deve ser
checada duas vezes a cada segundo. Se alguma
inconsistência for detectada, o sistema é
desabilitado
Resumo

Requisitos não-funcionais definem
qualidades ou atributos gerais do sistema

Existem três tipos: produto, processo e
requisitos externos

As principais restrições são:

Confiabilidade, desempenho, usabilidade e
segurança (safety e security)
Download

Requisitos Não