SlideShare uma empresa 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

Mais conteúdo relacionado

Mais 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
 

Mais 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

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
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
"É 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
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
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
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 

Último (20)

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...
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
"É 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...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
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
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 

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