SlideShare una empresa de Scribd logo
1 de 16
SMartyParser
Um Parser XMI para Modelos UML de Variabilidade




                                     Leandro A. Lanceloti
                        Prof. Dr. Edson A. Oliveira Junior
Tópicos

• Introdução

• Linha de Produto de Software e Variabilidade

• A abordagem SMarty

• XML Metadata Interchange (XMI)

• O SMartyParser

• Trabalhos relacionados, conclusão e trabalhos
  futuros
Introdução

• Linha de produto de software (LP)
  • Ajuda a diminuir o custo do desenvolvimento
  • Ajuda a diminuir o time to market

• Gerenciar variabilidade é um ponto importante
  • A abordagem SMarty ajuda neste gerenciamento

• SMarty é baseada em UML e pode ser exportada via
  XMI
• O SMartyParser é um parser XMI para modelos UML
  baseados em SMarty
LP e Variabilidade

• LP
  • Conjunto de sistemas que compartilham funcionalidades
    • Também conhecido como família de produtos
  • Desenvolvidos a partir de uma infraestrutura comum, o
    núcleo de artefatos

• Variabilidade
  • É como os membros de uma família se distinguem
  • Pode estar ligada à: documentação, arquitetura, códigos
    fonte, compilado, executável e etc
  • Permite que as decisões sejam adiadas, aumentando o
    número de variabilidades
  • O Gerenciamento está ligado a todas as etapas do processo:
    identificação, delimitação e implementação
Abordagem SMarty

• SMartyProfile
  • Conjunto de estereótipos / meta-atributos
  • Baseado em UML
  • Casos de uso, classes, componentes e atividades

• SMartyProcess
  • Identificação, delimitação, representação, rastreame
    nto e análise de configurações de produtos de uma
    LP.
  • Conjunto de diretrizes
Abordagem SMarty
Exemplo de SMarty
cd: AGM - Core As s ets



     c oreAs s ets

                                                                                              << c om ponent v ariabl e
                                                                                                           ,          >>
                                                                                                         Gam e
                                                                                                                           <<v ariabi l ity >>
                                                                                                                           nam e = "g ame s pri te "                        <<v ariabi l ity >>
                                                                                                                           m inSel ec tion = 1                              nam e = "s pri te pair"
                                                                                                                           m ax Selec ti on = 2                             m inSel ec tion = 0
                                                                                              << m andatory >
                                                                                                          >                bi ndingTi m e = DESIGN_TIM E                    m ax Selec ti on = 1
                                                                                                    Point                  al lows Add ingVar = true                        bi ndingTi m e = DESIGN_TIM E
                                                                                              (from c oreAs s ets
                                                                                                               )           v ariants = {c oreAs s e ts .Mov ab leSprite,
              <<v ariabi l ity >>                                                                                                                                           al lows Add ingVar = fa ls e
                                                                                                                           c oreAs s ets .Stati onary Spri te}              v ariants = {c oreAs s e ts .Spri tePair}
              nam e = "m ov abl e s p ri te"                                                                -p
              m inSel ec tion = 1
              m ax Selec ti on = 2
                                                         << m andatory >
                                                                     >                        << m andatory >
                                                                                                          >                            << v ariationPoint andatory
                                                                                                                                                       ,m        >>                              << optional
                                                                                                                                                                                                           >>
              bi ndingTi m e = DESIGN_TIM E                                                                                                                                  - s ec ond
              al lows Add ingVar = true                        Siz e                             Rectangle                                        Gam eSprite                                     SpritePair
              v ariants = {c oreAs s e ts .Paddle ,      (from c oreAs s ets
                                                                          )    -s             (from c oreAs s ets
                                                                                                               )      #r                        (from c oreAs s ets
                                                                                                                                                                 )                           (from c oreAs s ets
                                                                                                                                                                                                              )
              c oreAs s ets .Puc k }                                                                                                                                          - firs t




           << m andatory
                       >>             << al ternati v e_OR v ariationPoint
                                                         ,              >>
                                                                                    <<v ariabi l ity >>                             << optional
                                                                                                                                              >>                           << al ternati v e_OR
                                                                                                                                                                                              >>
                Velocity                         M ovableSprite                     nam e = "wall "                                      Wall                               Stationary Sprite
           (from c oreAs s ets # v
                            )                  (from c oreAs s ets
                                                                )                   m inSel ec tion = 0
                                                                                                                                  (from c oreAs s ets
                                                                                                                                                   )                        (from c oreAs s ets
                                                                                                                                                                                             )
                                                                                    m ax Selec ti on = 1
                                                                                    bi ndingTi m e = DESIGN_TIM E
                                                                                    al lows Add ingVar = fa ls e
                                                                                    v ariants = {c oreAs s e ts .Wal l}

            << al ternati v e_OR
                               >>                     << al ternati v e_OR
                                                                         >>                                                                                       # app
                     Puck                                   Paddle                          << m andatory
                                                                                                        >>                           << m andatory
                                                                                                                                                 >>                           << m andatory
                                                                                                                                                                                          >>
              (from c oreAs s ets
                               )                       (from c oreAs s ets
                                                                        )                      Gam eMen u                                 Board                                          M enu
                                                                                            (from c oreAs s ets
                                                                                                             )      # board                        ::Wall # board
                                                                                                                                  (from c oreAs s ets   )                     (from c oreAs s ets
                                                                                                                                                                                               )
XML Metadata Interchange (XMI)


• Baseado em XML (Extensible Markup Language)

• Criado pela OMG (Object Management Group)

• Facilita o intercâmbio de dados entre diferentes
  ferramentas

• Formato padrão entre a maior parte das
  ferramentas de modelagem UML (Unified
  Modeling Language)

• Compatível com a abordagem SMarty
XML Metadata Interchange (XMI)
O SMartyParser para
       Modelos UML de LP
• Baseado no framework SDMetrics Open Core

• Metamodel Definition File
  • Arquivo contendo as definições dos elementos UML

• XMI Transformation File
  • Arquivo contendo instruções de como extrair os
    dados dos elementos UML

• Adaptado para abordagem SMarty
O SMartyParser para Modelos
  UML de LP: diagrama de
         classes
  cd: S MartyP arser - Diagrama de Classes



                                                                                  << interface >>
                                                                         IP r oductLineUMLModelP ar ser                     << interface >>
                                                                                                                   IP r oductLineV ar iabilityP ar ser




       MetaModelElem ent                         MetaModel
                              *                                      1

                                                                                         *


                   1                                     1

               *                                     *

          ModelE lem ent                            Model                              X MIReader                    P r oductLineModelPar ser
                              *                                      1                                     1

                                                                              1                                1


                                                                                                 *
                                                 X MITr igger




                                                         *

                                                                                             1

                                             X MITr ansfor m ation                X MITr ansfor m ations
                                                                     *
O SMartyParser para Modelos
          UML de LP: exemplo de uso
1)
ProductLineModelParser smartyParser = new ProductLineModelParser
("AGM.xmi","metamodel.xml","xmiTrans1_2.xml");
2)
List<ModelElement> vars = smartyParser.getAllVariabilities();
3)
for (ModelElement element : vars) {
       System.out.println(element.getName());
}
4)
sprite pair
movable sprite
wall
game sprite
...
O SMartyParser para Modelos
UML de LP: exemplo hipotético de
             tela
Trabalhos relacionados

• O EMF (Eclipse Modeling Framework)
  (Eclipse.org)

• O Netbeans XMI Writer (Netbeans.org)

• UML2Django (Petry, 2008)
Conclusão

• Este trabalho apresentou um parser XMI para
  modelos UML de LP com o objetivo de facilitar a
  análise de variabilidade segundo a abordagem
  SMarty.

• Vários trabalhos foram encontrados em projetos
  de código fonte aberto e na literatura, porém
  nenhum trata efetivamente de LP.

• O framework Open Core foi estendido para linha
  de produto e variabilidade.
Trabalhos futuros

• Projeto e implementação de um ambiente
  experimental gráfico de avaliação de LP com base na
  abordagem SMarty

• Análise de métricas de modelo UML a fim de
  identificar problemas na modelagem e na abordagem
  de LP

• Proposta e validação experimental de métricas para
  arquitetura de LP

• Realização de experimentos e análises de trade-off
  para priorizar atributos de qualidade de LP

Más contenido relacionado

Más de Edson Oliveira Junior

Uma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web ProfoleUma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web ProfoleEdson Oliveira Junior
 
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREEdson Oliveira Junior
 
Revisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de PesquisaRevisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de PesquisaEdson Oliveira Junior
 
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...Edson Oliveira Junior
 
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...Edson Oliveira Junior
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Edson Oliveira Junior
 
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Edson Oliveira Junior
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
Mini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de SoftwareMini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de SoftwareEdson Oliveira Junior
 

Más de Edson Oliveira Junior (11)

COMPSAC 2014
COMPSAC 2014COMPSAC 2014
COMPSAC 2014
 
Uma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web ProfoleUma Experiencia na Adocao do Java EE 6 Web Profole
Uma Experiencia na Adocao do Java EE 6 Web Profole
 
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
 
Revisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de PesquisaRevisão Sistemática e Bases de Pesquisa
Revisão Sistemática e Bases de Pesquisa
 
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
Desenvolvimento do Módulo de Planejamento do Ambiente Experimental SystEM-Env...
 
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
Um Protótipo Web do Módulo de Planejamento de Avaliações de Linha de Produto ...
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
 
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
Extensão da Abordagem SMarty de Gerenciamento de Variabilidade para Sistemas ...
 
Apresentação FITEM 2012
Apresentação FITEM 2012Apresentação FITEM 2012
Apresentação FITEM 2012
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
Mini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de SoftwareMini Curso Avaliação de Linha de Produto de Software
Mini Curso Avaliação de Linha de Produto de Software
 

Último

Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 

Último (20)

Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 

SMartyParser: um parser XMI para modelos UML de variabilidade em LPs

  • 1. SMartyParser Um Parser XMI para Modelos UML de Variabilidade Leandro A. Lanceloti Prof. Dr. Edson A. Oliveira Junior
  • 2. Tópicos • Introdução • Linha de Produto de Software e Variabilidade • A abordagem SMarty • XML Metadata Interchange (XMI) • O SMartyParser • Trabalhos relacionados, conclusão e trabalhos futuros
  • 3. Introdução • Linha de produto de software (LP) • Ajuda a diminuir o custo do desenvolvimento • Ajuda a diminuir o time to market • Gerenciar variabilidade é um ponto importante • A abordagem SMarty ajuda neste gerenciamento • SMarty é baseada em UML e pode ser exportada via XMI • O SMartyParser é um parser XMI para modelos UML baseados em SMarty
  • 4. LP e Variabilidade • LP • Conjunto de sistemas que compartilham funcionalidades • Também conhecido como família de produtos • Desenvolvidos a partir de uma infraestrutura comum, o núcleo de artefatos • Variabilidade • É como os membros de uma família se distinguem • Pode estar ligada à: documentação, arquitetura, códigos fonte, compilado, executável e etc • Permite que as decisões sejam adiadas, aumentando o número de variabilidades • O Gerenciamento está ligado a todas as etapas do processo: identificação, delimitação e implementação
  • 5. Abordagem SMarty • SMartyProfile • Conjunto de estereótipos / meta-atributos • Baseado em UML • Casos de uso, classes, componentes e atividades • SMartyProcess • Identificação, delimitação, representação, rastreame nto e análise de configurações de produtos de uma LP. • Conjunto de diretrizes
  • 7. Exemplo de SMarty cd: AGM - Core As s ets c oreAs s ets << c om ponent v ariabl e , >> Gam e <<v ariabi l ity >> nam e = "g ame s pri te " <<v ariabi l ity >> m inSel ec tion = 1 nam e = "s pri te pair" m ax Selec ti on = 2 m inSel ec tion = 0 << m andatory > > bi ndingTi m e = DESIGN_TIM E m ax Selec ti on = 1 Point al lows Add ingVar = true bi ndingTi m e = DESIGN_TIM E (from c oreAs s ets ) v ariants = {c oreAs s e ts .Mov ab leSprite, <<v ariabi l ity >> al lows Add ingVar = fa ls e c oreAs s ets .Stati onary Spri te} v ariants = {c oreAs s e ts .Spri tePair} nam e = "m ov abl e s p ri te" -p m inSel ec tion = 1 m ax Selec ti on = 2 << m andatory > > << m andatory > > << v ariationPoint andatory ,m >> << optional >> bi ndingTi m e = DESIGN_TIM E - s ec ond al lows Add ingVar = true Siz e Rectangle Gam eSprite SpritePair v ariants = {c oreAs s e ts .Paddle , (from c oreAs s ets ) -s (from c oreAs s ets ) #r (from c oreAs s ets ) (from c oreAs s ets ) c oreAs s ets .Puc k } - firs t << m andatory >> << al ternati v e_OR v ariationPoint , >> <<v ariabi l ity >> << optional >> << al ternati v e_OR >> Velocity M ovableSprite nam e = "wall " Wall Stationary Sprite (from c oreAs s ets # v ) (from c oreAs s ets ) m inSel ec tion = 0 (from c oreAs s ets ) (from c oreAs s ets ) m ax Selec ti on = 1 bi ndingTi m e = DESIGN_TIM E al lows Add ingVar = fa ls e v ariants = {c oreAs s e ts .Wal l} << al ternati v e_OR >> << al ternati v e_OR >> # app Puck Paddle << m andatory >> << m andatory >> << m andatory >> (from c oreAs s ets ) (from c oreAs s ets ) Gam eMen u Board M enu (from c oreAs s ets ) # board ::Wall # board (from c oreAs s ets ) (from c oreAs s ets )
  • 8. XML Metadata Interchange (XMI) • Baseado em XML (Extensible Markup Language) • Criado pela OMG (Object Management Group) • Facilita o intercâmbio de dados entre diferentes ferramentas • Formato padrão entre a maior parte das ferramentas de modelagem UML (Unified Modeling Language) • Compatível com a abordagem SMarty
  • 10. O SMartyParser para Modelos UML de LP • Baseado no framework SDMetrics Open Core • Metamodel Definition File • Arquivo contendo as definições dos elementos UML • XMI Transformation File • Arquivo contendo instruções de como extrair os dados dos elementos UML • Adaptado para abordagem SMarty
  • 11. O SMartyParser para Modelos UML de LP: diagrama de classes cd: S MartyP arser - Diagrama de Classes << interface >> IP r oductLineUMLModelP ar ser << interface >> IP r oductLineV ar iabilityP ar ser MetaModelElem ent MetaModel * 1 * 1 1 * * ModelE lem ent Model X MIReader P r oductLineModelPar ser * 1 1 1 1 * X MITr igger * 1 X MITr ansfor m ation X MITr ansfor m ations *
  • 12. O SMartyParser para Modelos UML de LP: exemplo de uso 1) ProductLineModelParser smartyParser = new ProductLineModelParser ("AGM.xmi","metamodel.xml","xmiTrans1_2.xml"); 2) List<ModelElement> vars = smartyParser.getAllVariabilities(); 3) for (ModelElement element : vars) { System.out.println(element.getName()); } 4) sprite pair movable sprite wall game sprite ...
  • 13. O SMartyParser para Modelos UML de LP: exemplo hipotético de tela
  • 14. Trabalhos relacionados • O EMF (Eclipse Modeling Framework) (Eclipse.org) • O Netbeans XMI Writer (Netbeans.org) • UML2Django (Petry, 2008)
  • 15. Conclusão • Este trabalho apresentou um parser XMI para modelos UML de LP com o objetivo de facilitar a análise de variabilidade segundo a abordagem SMarty. • Vários trabalhos foram encontrados em projetos de código fonte aberto e na literatura, porém nenhum trata efetivamente de LP. • O framework Open Core foi estendido para linha de produto e variabilidade.
  • 16. Trabalhos futuros • Projeto e implementação de um ambiente experimental gráfico de avaliação de LP com base na abordagem SMarty • Análise de métricas de modelo UML a fim de identificar problemas na modelagem e na abordagem de LP • Proposta e validação experimental de métricas para arquitetura de LP • Realização de experimentos e análises de trade-off para priorizar atributos de qualidade de LP