• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
NFR Framework
 

NFR Framework

on

  • 1,454 views

 

Statistics

Views

Total Views
1,454
Views on SlideShare
1,437
Embed Views
17

Actions

Likes
1
Downloads
23
Comments
0

2 Embeds 17

http://transparenciadesoftware.wordpress.com 16
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    NFR Framework NFR Framework Presentation Transcript

    • “O NFR Framework“ Claudia Cappelli ccappelli@inf.puc-rio.br Aula do Curso de Transparência de Software Prof: Julio Leite 25/05/2008 © Claudia Cappelli 1
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 2
    • 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. 25/05/2008 © Grupo de ER - PUC-Rio 3
    • 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. 25/05/2008 © Grupo de ER - PUC-Rio 4
    • 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)” 25/05/2008 © Grupo de ER - PUC-Rio 5
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 6
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 7
    • 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.) 25/05/2008 © Grupo de ER - PUC-Rio 8
    • NFR Framework Exemplo – Catálogo de Tipos de NFR 25/05/2008 © Grupo de ER - PUC-Rio 9
    • NFR Framework Exemplo – Catálogo de Métodos 25/05/2008 © Grupo de ER - PUC-Rio 10
    • NFR Framework Exemplo – Catálogo de regras de correlação 25/05/2008 © Grupo de ER - PUC-Rio 11
    • 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) 25/05/2008 © Grupo de ER - PUC-Rio 12
    • NFR Framework Catálogo de Tipos de NFR 25/05/2008 © Grupo de ER - PUC-Rio 13
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 14
    • NFR Framework Exemplo – SIG Inicial 25/05/2008 © Grupo de ER - PUC-Rio 15
    • 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” 25/05/2008 © Grupo de ER - PUC-Rio 16
    • NFR Framework Exemplo – SIG com demais níveis 25/05/2008 © Grupo de ER - PUC-Rio 17
    • 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 (+). 25/05/2008 © Grupo de ER - PUC-Rio 18
    • NFR Framework Exemplo – Identificação de Prioridade 25/05/2008 © Grupo de ER - PUC-Rio 19
    • 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”. 25/05/2008 © Grupo de ER - PUC-Rio 20
    • NFR Framework Exemplo – Operacionalização 25/05/2008 © Grupo de ER - PUC-Rio 21
    • 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”) 25/05/2008 © Grupo de ER - PUC-Rio 22
    • NFR Framework Exemplo – Tratamento de interdependências 25/05/2008 © Grupo de ER - PUC-Rio 23
    • 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. 25/05/2008 © Grupo de ER - PUC-Rio 24
    • NFR Framework Exemplo – Armazenamento do Racional 25/05/2008 © Grupo de ER - PUC-Rio 25
    • 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). 25/05/2008 © Grupo de ER - PUC-Rio 26
    • NFR Framework Exemplo – Seleção de Alternativas 25/05/2008 © Grupo de ER - PUC-Rio 27
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 28
    • NFR Framework Exemplo – Avaliando Impacto 25/05/2008 © Grupo de ER - PUC-Rio 29
    • NFR Framework Relacionando as decisões com os Requisitos Funcionais 25/05/2008 © Grupo de ER - PUC-Rio 30
    • 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 25/05/2008 © Grupo de ER - PUC-Rio 31
    • NFR Framework Bibliografia Chung, L.; Nixon, B.; Yu, E.; Mylopoulos, J.; Non-Functional Requirements in Software Engineering – Kluwer Academic Publishers – Massachusetts, USA, 2000. 25/05/2008 © Grupo de ER - PUC-Rio 32