nfr framework

32
“O NFR Framework“ 25/05/2008 1 © Claudia Cappelli Claudia Cappelli [email protected] Aula do Curso de Transparência de Software Prof: Julio Leite

Upload: claudia-cappelli

Post on 12-Jul-2015

991 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NFR Framework

“O NFR Framework“

25/05/2008 1© Claudia Cappelli

Claudia Cappelli

[email protected]

Aula do Curso de Transparência de Software

Prof: Julio Leite

Page 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

NFR Framework

25/05/2008 2© Grupo de ER - PUC-Rio

6. Detalhando e exemplificando os Passos do Método

7. Resumo

8. Bibliografia

Page 3: NFR Framework

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.

Page 4: NFR Framework

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.

Page 5: NFR Framework

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)”

Page 6: NFR Framework

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

Page 7: NFR Framework

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

Page 8: NFR Framework

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.)

Page 9: NFR Framework

NFR Framework

Exemplo – Catálogo de Tipos de NFR

25/05/2008 9© Grupo de ER - PUC-Rio

Page 10: NFR Framework

NFR Framework

Exemplo – Catálogo de Métodos

25/05/2008 10© Grupo de ER - PUC-Rio

Page 11: NFR Framework

NFR Framework

Exemplo – Catálogo de regras de correlação

25/05/2008 11© Grupo de ER - PUC-Rio

Page 12: NFR Framework

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)

Page 13: NFR Framework

NFR Framework

Catálogo de Tipos de NFR

25/05/2008 13© Grupo de ER - PUC-Rio

Page 14: NFR Framework

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

Page 15: NFR Framework

NFR Framework

Exemplo – SIG Inicial

25/05/2008 15© Grupo de ER - PUC-Rio

Page 16: NFR Framework

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”

Page 17: NFR Framework

NFR Framework

Exemplo – SIG com demais níveis

25/05/2008 17© Grupo de ER - PUC-Rio

Page 18: NFR Framework

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 (+).

Page 19: NFR Framework

NFR Framework

Exemplo – Identificação de Prioridade

25/05/2008 19© Grupo de ER - PUC-Rio

Page 20: NFR Framework

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”.

Page 21: NFR Framework

NFR Framework

Exemplo –Operacionalização

25/05/2008 21© Grupo de ER - PUC-Rio

Page 22: NFR Framework

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”)

Page 23: NFR Framework

NFR Framework

Exemplo –Tratamento de interdependências

25/05/2008 23© Grupo de ER - PUC-Rio

Page 24: NFR Framework

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.

Page 25: NFR Framework

NFR Framework

Exemplo –Armazenamento do

Racional

25/05/2008 25© Grupo de ER - PUC-Rio

Page 26: NFR Framework

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).

Page 27: NFR Framework

NFR Framework

Exemplo –Seleção de Alternativas

25/05/2008 27© Grupo de ER - PUC-Rio

Page 28: NFR Framework

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

Page 29: NFR Framework

NFR Framework

Exemplo –Avaliando Impacto

25/05/2008 29© Grupo de ER - PUC-Rio

Page 30: NFR Framework

NFR Framework

Relacionando as decisões com os

Requisitos Funcionais

25/05/2008 30© Grupo de ER - PUC-Rio

Page 31: NFR Framework

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

Page 32: NFR Framework

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