“O NFR Framework“
25/05/2008 1© Claudia Cappelli
Claudia Cappelli
Aula do Curso de Transparência de Software
Prof: Julio Leite
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
NFR Framework
25/05/2008 2© Grupo de ER - PUC-Rio
6. Detalhando e exemplificando os Passos do Método
7. Resumo
8. Bibliografia
Motivação
� Durante o processo de desenvolvimento de software um desenvolvedor precisa tomar decisões como por exemplo:
Contexto
25/05/2008 3© Grupo de ER - PUC-Rio
� 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.
Motivação
� Desenvolvimento direcionado para modelagem de requisitos funcionais
� Desenvolvedores focam seus primeiros esforços para encontrar junto aos clientes os requisitos funcionais do
Abordagem Convencional
25/05/2008 4© Grupo de ER - PUC-Rio
� 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.
NFR Framework
NFR Framework
� Usa requisitos como segurança, precisão, desempenho e custo para direcionar o processo de desenvolvimento de requisitos
25/05/2008 5© Grupo de ER - PUC-Rio
� 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)”
NFR Framework
� 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
Passos Principais
25/05/2008 6© Grupo de ER - PUC-Rio
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
NFR Framework
� 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.
Softgoals Interdependency Graphs
25/05/2008 7© Grupo de ER - PUC-Rio
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
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
25/05/2008 8© Grupo de ER - PUC-Rio
� 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.)
NFR Framework
Exemplo – Catálogo de Tipos de NFR
25/05/2008 9© Grupo de ER - PUC-Rio
NFR Framework
Exemplo – Catálogo de Métodos
25/05/2008 10© Grupo de ER - PUC-Rio
NFR Framework
Exemplo – Catálogo de regras de correlação
25/05/2008 11© Grupo de ER - PUC-Rio
NFR Framework
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.)
Voltando aos Passos Principais
25/05/2008 12© Grupo de ER - PUC-Rio
� 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)
NFR Framework
Catálogo de Tipos de NFR
25/05/2008 13© Grupo de ER - PUC-Rio
NFR Framework
� 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
Continuando os Passos Principais
25/05/2008 14© Grupo de ER - PUC-Rio
Funcionais que possam atender as necessidades impostas pelo cliente.
� Neste momento ele inicia a construção do SIG
NFR Framework
Exemplo – SIG Inicial
25/05/2008 15© Grupo de ER - PUC-Rio
NFR Framework
� 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”)
Continuando os Passos Principais
25/05/2008 16© Grupo de ER - PUC-Rio
(“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”
NFR Framework
Exemplo – SIG com demais níveis
25/05/2008 17© Grupo de ER - PUC-Rio
NFR Framework
� 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çãoUsa-se a notação (!) para identificar que um requisito não
Continuando os Passos Principais
25/05/2008 18© Grupo de ER - PUC-Rio
� 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 (+).
NFR Framework
Exemplo – Identificação de Prioridade
25/05/2008 19© Grupo de ER - PUC-Rio
NFR Framework
� 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”.
Continuando os Passos Principais
25/05/2008 20© Grupo de ER - PUC-Rio
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”.
NFR Framework
Exemplo –Operacionalização
25/05/2008 21© Grupo de ER - PUC-Rio
NFR Framework
� 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
Continuando os Passos Principais
25/05/2008 22© Grupo de ER - PUC-Rio
� 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”)
NFR Framework
Exemplo –Tratamento de interdependências
25/05/2008 23© Grupo de ER - PUC-Rio
NFR Framework
� 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
Continuando os Passos Principais
25/05/2008 24© Grupo de ER - PUC-Rio
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.
NFR Framework
Exemplo –Armazenamento do
Racional
25/05/2008 25© Grupo de ER - PUC-Rio
NFR Framework
� Selecionando alternativas......
� O refinamento continua até que o desenvolvedor tenha detalhes suficientes.
� O desenvolvedor escolhe entre as possíveis operacionalizações com seus racionaisEle deve marcar suas escolhas no SIG através de sinais de
Continuando os Passos Principais
25/05/2008 26© Grupo de ER - PUC-Rio
� Ele deve marcar suas escolhas no SIG através de sinais de representam os que foram escolhidos (√) e os rejeitados (X).
NFR Framework
Exemplo –Seleção de Alternativas
25/05/2008 27© Grupo de ER - PUC-Rio
NFR Framework
� 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-upEle deve marcar a propagação no SIG através de sinais de
Continuando os Passos Principais
25/05/2008 28© Grupo de ER - PUC-Rio
� 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
NFR Framework
Exemplo –Avaliando Impacto
25/05/2008 29© Grupo de ER - PUC-Rio
NFR Framework
Relacionando as decisões com os
Requisitos Funcionais
25/05/2008 30© Grupo de ER - PUC-Rio
NFR Framework
� 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.
Resumo
25/05/2008 31© Grupo de ER - PUC-Rio
� 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
NFR Framework
� Chung, L.; Nixon, B.; Yu, E.; Mylopoulos, J.; Non-Functional Requirements in Software Engineering – Kluwer Academic Publishers – Massachusetts, USA, 2000.
Bibliografia
25/05/2008 32© Grupo de ER - PUC-Rio