More Related Content
Similar to NFR Framework (20)
NFR Framework
- 1. “O NFR Framework“
Claudia Cappelli
ccappelli@inf.puc-rio.br
Aula do Curso de Transparência de
Software
Prof: Julio Leite
© Claudia Cappelli
25/05/2008 1
- 2. NFR Framework
1. Motivação
2. Abordagem Tradicional
3. O NFR Framework – Passos do método
4. SIG – Softgoal Interdependency Graphs
5. Tipos de Catálogo de NFR
6. Detalhando e exemplificando os Passos do Método
7. Resumo
8. Bibliografia
© Grupo de ER - PUC-Rio
25/05/2008 2
- 3. Motivação
Contexto
Durante o processo de desenvolvimento de software um
desenvolvedor precisa tomar decisões como por
exemplo:
Com que freqüência as informações serão atualizadas?
Como será o processo de identificação dos usuários da
aplicação?
As bases de dados serão locais ou distribuídas?
As decisões tomadas tem papel importante em aspectos
como segurança, performance, precisão entre outros.
© Grupo de ER - PUC-Rio
25/05/2008 3
- 4. Motivação
Abordagem Convencional
Desenvolvimento direcionado para modelagem de
requisitos funcionais
Desenvolvedores focam seus primeiros esforços para
encontrar junto aos clientes os requisitos funcionais do
sistema
Muitas das decisões sobe estes requisitos funcionais, que
seriam requisitos não funcionais, são tomadas de forma não
sistemática e nem sempre documentadas
Os atributos de qualidade do software são vistos como
conseqüências destas decisões e não como algo que foi
pensado.
© Grupo de ER - PUC-Rio
25/05/2008 4
- 5. NFR Framework
NFR Framework
Usa requisitos como segurança, precisão, desempenho e custo
para direcionar o processo de desenvolvimento de requisitos
Tem como principal objetivo oferecer uma estrutura de
representação para armazenamento do desenho e do racional
do processo de desenvolvimento de requisitos através de grafos
chamados “softgoal interdependency graphs (SIGs)”
© Grupo de ER - PUC-Rio
25/05/2008 5
- 6. NFR Framework
Passos Principais
Adquirir conhecimento sobre:
O domínio particular onde o software vai ser desenvolvido
Os requisitos funcionais do software
Tipos particulares de Requisitos não Funcionais, e técnicas
associadas de desenvolvimento
Identificar Requisitos não Funcionais para o domínio em
particular
Decompor Requisitos não Funcionais
Identificar operacionalizações (possíveis alternativas de
implementação para o sistema)
Tratar ambigüidades, prioridades e interdependências entre
Requisitos não Funcionais e operacionalizações
Selecionar operacionalizações
Apoiar as decisões com racional
Avaliar o impacto das decisões
OBS: Não precisam ser executados necessariamente nesta ordem
e pode permitir iteração durante o processo
© Grupo de ER - PUC-Rio
25/05/2008 6
- 7. NFR Framework
Softgoals Interdependency Graphs
Sua construção pode ser vista em termos incrementais e
interativos de fase de elaboração, analise e revisão.
Seu objetivo é armazenar as considerações do
desenvolvedor sobre estes requisitos e mostrar a
interdependência entre eles.
Usa os conceitos de:
Softgoals – Nuvens
Interdependency Links – Linhas com setas
Label – Descrição das intenções
© Grupo de ER - PUC-Rio
25/05/2008 7
- 8. NFR Framework
Catálogos de Requisitos
Um dos pontos mais importantes do Framework é a
possibilidade de armazenar conhecimento sobre
experiências anteriores quanto a Requisitos não
Funcionais propiciando o reuso.
Existem 3 tipos de catálogo que podem ser usados
Catálogo de Requisitos não Funcionais com suas
associações de conceitos e terminologia
Catálogo de técnicas de desenvolvimento (métodos) para
apoiar na descoberta de requisitos
Catálogo de interdependências implícitas entre requisitos
não Funcionais
Estes catálogos podem ser criados a partir de diversas
fontes (textos, guias de desenvolvimento, livros,
especialistas etc.)
© Grupo de ER - PUC-Rio
25/05/2008 8
- 9. NFR Framework
Exemplo – Catálogo de Tipos de NFR
© Grupo de ER - PUC-Rio
25/05/2008 9
- 10. NFR Framework
Exemplo – Catálogo de Métodos
© Grupo de ER - PUC-Rio
25/05/2008 10
- 11. NFR Framework
Exemplo – Catálogo de regras de correlação
© Grupo de ER - PUC-Rio
25/05/2008 11
- 12. NFR Framework
Voltando aos Passos Principais
1. Adquirir conhecimento ......
Obter as informações de uso do domínio onde o software estará
sendo construído.
Obter os requisitos funcionais
Obter expectativas da organização quanto ao funcionamento (ex:
volumes, desempenho etc.)
Obter as prioridades da organização (o que o sistema deve
priorizar caso tenha que decidir o que fazer primeiro em alguma
situação)
Obter tipos particulares de Requisitos não Funcionais, e técnicas
associadas de desenvolvimento em catálogos (aqui podem ser
usados os três tipos de catálogos apresentados anteriormente)
© Grupo de ER - PUC-Rio
25/05/2008 12
- 13. NFR Framework
Catálogo de Tipos de NFR
© Grupo de ER - PUC-Rio
25/05/2008 13
- 14. NFR Framework
Continuando os Passos Principais
Identificando NFRs ......
Nesta fase o desenvolvedor identifica junto ao cliente suas
necessidades quanto a segurança, privacidade, transparência,
precisão etc.
Em seguida busca nos catálogos já existentes Requisitos não
Funcionais que possam atender as necessidades impostas pelo
cliente.
Neste momento ele inicia a construção do SIG
© Grupo de ER - PUC-Rio
25/05/2008 14
- 15. NFR Framework
Exemplo – SIG Inicial
© Grupo de ER - PUC-Rio
25/05/2008 15
- 16. NFR Framework
Continuando os Passos Principais
Decompondo os NFRs......
Nesta fase o desenvolvedor decompõe o NFR Type (tipo) ou Topic
(tópico)
No exemplo do slide anterior os dois requisitos não funcionais tem
o mesmo tópico (“accounts”) mas endereçam dois diferentes tipos
(“performance” and “security”)
Como em geral os requisitos de primeiro nível são muito abstratos
estes são divididos em componentes menores para que se possa
buscar soluções mais efetivas.
Neste momento buscamos outros requisitos não funcionais que
juntos satisfaçam (possam fazer alcançar) o requisito superior.
Estes são então colocados como uma decomposição dos de maior
nível
Agora deve-se identificar que todos estes requisitos não funcionais
contribuem positivamente para atendimento do requisito de mais
alto níve colocando a notação de “AND”
© Grupo de ER - PUC-Rio
25/05/2008 16
- 17. NFR Framework
Exemplo – SIG com demais níveis
© Grupo de ER - PUC-Rio
25/05/2008 17
- 18. NFR Framework
Continuando os Passos Principais
Tratando prioridades......
Nesta fase o desenvolvedor deve identificar as prioridades pois os
SIG’s podem ficar muito extensos e complexos
Para priorizar devemos levar em conta as informações do domínio,
e as prioridades da organização
Usa-se a notação (!) para identificar que um requisito não
funcional é prioritário
O requisito não funcional prioritário contribui positivamente para o
requisito onde está ligado e sendo assim esta contribuição é
identificada através do (+).
© Grupo de ER - PUC-Rio
25/05/2008 18
- 19. NFR Framework
Exemplo – Identificação de Prioridade
© Grupo de ER - PUC-Rio
25/05/2008 19
- 20. NFR Framework
Continuando os Passos Principais
Identificando operacionalizações......
Em determinado ponto quando os requisitos não funcionais estão
suficientemente refinados o desenvolvedor estará apto a identificar
possíveis técnicas para implementá-los.
Técnicas de desenvolvimento para implementação dos requisitos
não funcionais são chamadas de “operacionalizações”.
As operacionalizações são representadas através de uma nuvem
com um contorno mais escuro. E são um outro tipo de requisito
não funcional.
As operacionalizações também podem dar contribuições positivas e
negativas aos requisitos a que estão ligados
Muitas operacionalizações podem ser alternativas de
implementação e portanto serão representadas por um “OR”.
© Grupo de ER - PUC-Rio
25/05/2008 20
- 21. NFR Framework
Exemplo –
Operacionalização
© Grupo de ER - PUC-Rio
25/05/2008 21
- 22. NFR Framework
Continuando os Passos Principais
Tratando interdependências implícitas entre os requisitos não
funcionais......
Durante o processo de escolhas da operacionalização outros
requisitos podem estar sendo afetados positiva ou negativamente
Estas influências devem ser representadas por setas não contínuas
Todas estas setas devem ter a identificação de contribuição
positiva e negativa
Além disso ao analisar uma operacionalização pode-se identificar
uma contribuição negativa ou positiva para um outro tipo de
requisito (no exemplo a seguir... “user-friendly”)
© Grupo de ER - PUC-Rio
25/05/2008 22
- 23. NFR Framework
Exemplo –
Tratamento de
interdependências
© Grupo de ER - PUC-Rio
25/05/2008 23
- 24. NFR Framework
Continuando os Passos Principais
Armazenando o racional......
O desenvolvedor deve armazenar todos os argumentos para suas
escolhas.
Estes argumentos são modelados no SIG como nuvens com
contornos mais claros e ligados aos relacionamentos entre os
requisitos não funcionais e suas operacionalizações através de
setas.
Estes argumentos podem também contribuir positiva ou
negativamente para o alcance dos objetivos.
© Grupo de ER - PUC-Rio
25/05/2008 24
- 25. NFR Framework
Exemplo –
Armazenamento do
Racional
© Grupo de ER - PUC-Rio
25/05/2008 25
- 26. NFR Framework
Continuando os Passos Principais
Selecionando alternativas......
O refinamento continua até que o desenvolvedor tenha detalhes
suficientes.
O desenvolvedor escolhe entre as possíveis operacionalizações com
seus racionais
Ele deve marcar suas escolhas no SIG através de sinais de
representam os que foram escolhidos (√) e os rejeitados (X).
© Grupo de ER - PUC-Rio
25/05/2008 26
- 27. NFR Framework
Exemplo –
Seleção de
Alternativas
© Grupo de ER - PUC-Rio
25/05/2008 27
- 28. NFR Framework
Continuando os Passos Principais
Avaliando o impacto......
O desenvolvedor deve propagar suas decisões identificando o
impacto destas em toda a estrutura do SIG através da avaliação da
satisfação dos objetivos
Este processo é feito botton-up
Ele deve marcar a propagação no SIG através de sinais de
representam os que foram satisfeitos (√) e os não escolhidos (X).
Existem várias regras para propagação:
Se uma operacionalização foi rejeitada e contribui negativamente para
alcance de um objetivo então o objetivo fica satisfeito.
Se uma operacionalização foi escolhida e faz parte de uma estrutura de
“OU” então mesmo que as outras operacionalizações desta estrutura não
tenham sido escolhidas o objetivo é alcançado.
Se uma operacionalização é escolhida e ela contribui negativamente
para o alcance de um objetivo este objetivo não será satisfeito
© Grupo de ER - PUC-Rio
25/05/2008 28
- 29. NFR Framework
Exemplo –
Avaliando
Impacto
© Grupo de ER - PUC-Rio
25/05/2008 29
- 30. NFR Framework
Relacionando as
decisões com os
Requisitos
Funcionais
© Grupo de ER - PUC-Rio
25/05/2008 30
- 31. NFR Framework
Resumo
Este capítulo apresenta uma técnica para elicitação de NFR
Este processo apóia não só o desenvolvedor durante o
processo de desenvolvimento do software como a construção
de catálogos para futuros reusos.
Catálogos podem ser utilizados para redução de tempo de
desenvolvimento uma vez que grande parte das soluções já
podem estar catalogadas e analisadas quanto a seus impactos
O método propões uma maneira formal de relacionar
Requisitos Funcionais e Não Funcionais
© Grupo de ER - PUC-Rio
25/05/2008 31
- 32. NFR Framework
Bibliografia
Chung, L.; Nixon, B.; Yu, E.; Mylopoulos, J.; Non-Functional
Requirements in Software Engineering – Kluwer Academic
Publishers – Massachusetts, USA, 2000.
© Grupo de ER - PUC-Rio
25/05/2008 32