SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
“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

Mais conteúdo relacionado

Mais procurados

Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentBenny Skogberg
 
Java Course 11: Design Patterns
Java Course 11: Design PatternsJava Course 11: Design Patterns
Java Course 11: Design PatternsAnton Keks
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my collegeSneha Lata
 
Android Multimedia Player Project Presentation
Android Multimedia Player Project PresentationAndroid Multimedia Player Project Presentation
Android Multimedia Player Project PresentationRashmi Gupta
 
Desenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterDesenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterPaulo Henrique
 
ModulFlutter-1.pptx
ModulFlutter-1.pptxModulFlutter-1.pptx
ModulFlutter-1.pptxhanadi40
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Ariane Izac
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
ARI and AGI, a powerful combination
ARI and AGI, a powerful combinationARI and AGI, a powerful combination
ARI and AGI, a powerful combinationJöran Vinzens
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studioParinita03
 

Mais procurados (20)

Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Java Course 11: Design Patterns
Java Course 11: Design PatternsJava Course 11: Design Patterns
Java Course 11: Design Patterns
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my college
 
Flutter do zero a publicacao
Flutter do zero a publicacaoFlutter do zero a publicacao
Flutter do zero a publicacao
 
Android Multimedia Player Project Presentation
Android Multimedia Player Project PresentationAndroid Multimedia Player Project Presentation
Android Multimedia Player Project Presentation
 
JAVA PROGRAMMING
JAVA PROGRAMMING JAVA PROGRAMMING
JAVA PROGRAMMING
 
Java
JavaJava
Java
 
Desenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterDesenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com Flutter
 
ModulFlutter-1.pptx
ModulFlutter-1.pptxModulFlutter-1.pptx
ModulFlutter-1.pptx
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Java IO
Java IOJava IO
Java IO
 
ARI and AGI, a powerful combination
ARI and AGI, a powerful combinationARI and AGI, a powerful combination
ARI and AGI, a powerful combination
 
C sharp
C sharpC sharp
C sharp
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 

Semelhante a O NFR Framework: abordagem para requisitos não funcionais

Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosGustavo Lopes
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de SoftwareRobson Silva Espig
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfmmarolla1
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdfPedro Alcantara
 
Es capítulo 4 - engenharia de requisitos
Es   capítulo 4  - engenharia de requisitosEs   capítulo 4  - engenharia de requisitos
Es capítulo 4 - engenharia de requisitosFelipe Oliveira
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...André Agostinho
 
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...Dalton Martins
 
Os aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosJosé Vieira
 

Semelhante a O NFR Framework: abordagem para requisitos não funcionais (20)

NFR Framework
NFR FrameworkNFR Framework
NFR Framework
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Aula 04
Aula 04Aula 04
Aula 04
 
Engenharia Software
Engenharia SoftwareEngenharia Software
Engenharia Software
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
 
RAD
RADRAD
RAD
 
Modelagem 16102006
Modelagem 16102006Modelagem 16102006
Modelagem 16102006
 
Es capítulo 4 - engenharia de requisitos
Es   capítulo 4  - engenharia de requisitosEs   capítulo 4  - engenharia de requisitos
Es capítulo 4 - engenharia de requisitos
 
Aula 05
Aula 05Aula 05
Aula 05
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...
Aula 02 - Analisando objetivos e restrições de um projeto - Projeto de Redes ...
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
Os aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de Requisitos
 

O NFR Framework: abordagem para requisitos não funcionais

  • 1. “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
  • 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 25/05/2008 © Grupo de ER - PUC-Rio 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. 25/05/2008 © Grupo de ER - PUC-Rio 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. 25/05/2008 © Grupo de ER - PUC-Rio 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)” 25/05/2008 © Grupo de ER - PUC-Rio 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 25/05/2008 © Grupo de ER - PUC-Rio 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 25/05/2008 © Grupo de ER - PUC-Rio 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.) 25/05/2008 © Grupo de ER - PUC-Rio 8
  • 9. NFR Framework Exemplo – Catálogo de Tipos de NFR 25/05/2008 © Grupo de ER - PUC-Rio 9
  • 10. NFR Framework Exemplo – Catálogo de Métodos 25/05/2008 © Grupo de ER - PUC-Rio 10
  • 11. NFR Framework Exemplo – Catálogo de regras de correlação 25/05/2008 © Grupo de ER - PUC-Rio 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) 25/05/2008 © Grupo de ER - PUC-Rio 12
  • 13. NFR Framework Catálogo de Tipos de NFR 25/05/2008 © Grupo de ER - PUC-Rio 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 25/05/2008 © Grupo de ER - PUC-Rio 14
  • 15. NFR Framework Exemplo – SIG Inicial 25/05/2008 © Grupo de ER - PUC-Rio 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” 25/05/2008 © Grupo de ER - PUC-Rio 16
  • 17. NFR Framework Exemplo – SIG com demais níveis 25/05/2008 © Grupo de ER - PUC-Rio 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 (+). 25/05/2008 © Grupo de ER - PUC-Rio 18
  • 19. NFR Framework Exemplo – Identificação de Prioridade 25/05/2008 © Grupo de ER - PUC-Rio 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”. 25/05/2008 © Grupo de ER - PUC-Rio 20
  • 21. NFR Framework Exemplo – Operacionalização 25/05/2008 © Grupo de ER - PUC-Rio 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”) 25/05/2008 © Grupo de ER - PUC-Rio 22
  • 23. NFR Framework Exemplo – Tratamento de interdependências 25/05/2008 © Grupo de ER - PUC-Rio 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. 25/05/2008 © Grupo de ER - PUC-Rio 24
  • 25. NFR Framework Exemplo – Armazenamento do Racional 25/05/2008 © Grupo de ER - PUC-Rio 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). 25/05/2008 © Grupo de ER - PUC-Rio 26
  • 27. NFR Framework Exemplo – Seleção de Alternativas 25/05/2008 © Grupo de ER - PUC-Rio 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 25/05/2008 © Grupo de ER - PUC-Rio 28
  • 29. NFR Framework Exemplo – Avaliando Impacto 25/05/2008 © Grupo de ER - PUC-Rio 29
  • 30. NFR Framework Relacionando as decisões com os Requisitos Funcionais 25/05/2008 © Grupo de ER - PUC-Rio 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 25/05/2008 © Grupo de ER - PUC-Rio 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. 25/05/2008 © Grupo de ER - PUC-Rio 32