APRESENTAÇÃO GERAL NORMAS PARA APRESENTAÇÃO DE TRABALHOS ACADÊMICOS.
Apresentação SMartyParser
-
Upload
edson-oliveira-junior -
Category
Education
-
view
197 -
download
0
description
Transcript of Apresentação SMartyParser
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
coreAssets
<<com ponent, variabl e>>
Game
<<variabi l ity>>
nam e = "g ame spri te "
m inSel ec tion = 1
m axSelec ti on = 2
bi ndingTi m e = DESIGN_TIM E
al lowsAdd ingVar = true
variants = {coreAsse ts .Movab leSprite,
coreAssets .Stati onarySpri te}
<<variabi l ity>>
nam e = "wall "
m inSel ec tion = 0
m axSelec ti on = 1
bi ndingTi m e = DESIGN_TIM E
al lowsAdd ingVar = fa lse
variants = {coreAsse ts .Wal l}
<<variabi l ity>>
nam e = "m ovabl e sp ri te"
m inSel ec tion = 1
m axSelec ti on = 2
bi ndingTi m e = DESIGN_TIM E
al lowsAdd ingVar = true
variants = {coreAsse ts .Paddle ,
coreAssets .Puck }
<<variabi l ity>>
nam e = "s pri te pair"
m inSel ec tion = 0
m axSelec ti on = 1
bi ndingTi m e = DESIGN_TIM E
al lowsAdd ingVar = fa lse
variants = {coreAsse ts .Spri tePair}
cd: AGM - Core Assets
<< m andatory>>
M enu
(from coreAssets)
<< m andatory>>
Rectangle
(from coreAssets)
<< m andatory>>
Board
(from coreAssets::Wall)
<< variationPoint, m andatory>>
GameSprite
(from coreAssets)
<< al ternati ve_OR>>
Puck
(from coreAssets)
<< al ternati ve_OR>>
Paddle
(from coreAssets)
<< al ternati ve_OR>>
Stationary Sprite
(from coreAssets)
<< optional>>
Wall
(from coreAssets)
<< optional>>
SpritePair
(from coreAssets)
<< m andatory>>
GameMenu
(from coreAssets)
<< al ternati ve_OR, variationPoint>>
M ovableSprite
(from coreAssets)
<< m andatory>>
Point
(from coreAssets)
<< m andatory>>
Size
(from coreAssets)
<< m andatory>>
Velocity
(from coreAssets)
second-
board#
app#
firs t-s-
v#
r#
p-
board#
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
X MITr igger
X MITr ansfor m ation
MetaModelElem ent
X MITr ansfor m ations
X MIReader
MetaModel
Model P r oductLineModelPar ser
<< interface >>
IP r oductLineV ar iabilityP ar ser
<< interface >>
IP r oductLineUMLModelP ar ser
ModelE lement
cd: S MartyP arser - Diagrama de Classes
*
1
1
*
1
*
1
*
1
*
*
*
1
*
1
1
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