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

PDF
OCL: Object Constraint Language
PDF
Estrutura de Dados - Procedimentos e Funções
PPTX
Estrutura de Dados em Java (Funções e Procedimentos)
DOCX
Duvan camilo _gustin_11ctj__e08
PPS
Declaraçãodeamor
PDF
Object::Franger: Wear a Raincoat in your Code
ODP
Regular Expressions: Backtracking, and The Little Engine that Could(n't)?
PDF
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
OCL: Object Constraint Language
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados em Java (Funções e Procedimentos)
Duvan camilo _gustin_11ctj__e08
Declaraçãodeamor
Object::Franger: Wear a Raincoat in your Code
Regular Expressions: Backtracking, and The Little Engine that Could(n't)?
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...

Mais de Edson Oliveira Junior (11)

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

Último (20)

PPTX
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
PPTX
Fronteiras e soberania..........................pptx
PDF
DESCCARTE DE MATERIAIS BIOLOGICO ESTUDO DA ODONTOLOGIA
PDF
Historia-da-Psicologia-Rumos-e-percursos.pdf
PDF
[Slides] A Literatura no ENEM 2017 (1).pdf
PDF
Fiqh da adoração (islamismo)
PPT
Domínios Morfoclimáticos.................................
PDF
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
PDF
HABILIDADES POR BIMESTRES HABILIDADES POR BIMESTRES HABILIDADES POR BIMESTRES...
PPTX
REVISA-GOIAS-6o-ANO-LP-3o-BIMESTRE-PPT.pptx
PDF
morfologia5.pdfllllllllllllllllllllllllllll
PPTX
AULA METodologia MODIFIC PART 1 MSC.pptx
PPT
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
PDF
Reino Monera - Biologiaensinomediofun.pdf
PDF
historia-e-geografia-do-amapa.pdf slides
PPTX
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
PPT
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
PPSX
4. A Cultura da Catedral - HistóriaCArtes .ppsx
PDF
Pecados desdenhados por muita gente (islamismo)
PDF
edital-de-chamamento-publico-no-3-2025.pdf
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
Fronteiras e soberania..........................pptx
DESCCARTE DE MATERIAIS BIOLOGICO ESTUDO DA ODONTOLOGIA
Historia-da-Psicologia-Rumos-e-percursos.pdf
[Slides] A Literatura no ENEM 2017 (1).pdf
Fiqh da adoração (islamismo)
Domínios Morfoclimáticos.................................
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
HABILIDADES POR BIMESTRES HABILIDADES POR BIMESTRES HABILIDADES POR BIMESTRES...
REVISA-GOIAS-6o-ANO-LP-3o-BIMESTRE-PPT.pptx
morfologia5.pdfllllllllllllllllllllllllllll
AULA METodologia MODIFIC PART 1 MSC.pptx
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
Reino Monera - Biologiaensinomediofun.pdf
historia-e-geografia-do-amapa.pdf slides
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
4. A Cultura da Catedral - HistóriaCArtes .ppsx
Pecados desdenhados por muita gente (islamismo)
edital-de-chamamento-publico-no-3-2025.pdf
Anúncio

Apresentação SMartyParser

  • 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