apresentação smartyparser

16
SMartyParser Um Parser XMI para Modelos UML de Variabilidade Leandro A. Lanceloti Prof. Dr. Edson A. Oliveira Junior

Upload: edson-oliveira-junior

Post on 06-Jul-2015

197 views

Category:

Education


0 download

DESCRIPTION

Apresentação Artigo - Leandro Lanceloti - Um Parser XMI para Modelos UML de Variabilidade

TRANSCRIPT

Page 1: Apresentação SMartyParser

SMartyParser Um Parser XMI para Modelos UML de Variabilidade

Leandro A. Lanceloti

Prof. Dr. Edson A. Oliveira Junior

Page 2: Apresentação SMartyParser

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

Page 3: Apresentação SMartyParser

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

Page 4: Apresentação SMartyParser

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

Page 5: Apresentação SMartyParser

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

Page 6: Apresentação SMartyParser

Abordagem SMarty

Page 7: Apresentação SMartyParser

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#

Page 8: Apresentação SMartyParser

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

Page 9: Apresentação SMartyParser

XML Metadata Interchange (XMI)

Page 10: Apresentação SMartyParser

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

Page 11: Apresentação SMartyParser

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

Page 12: Apresentação SMartyParser

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

...

Page 13: Apresentação SMartyParser

O SMartyParser para Modelos

UML de LP: exemplo hipotético de

tela

Page 14: Apresentação SMartyParser

Trabalhos relacionados

• O EMF (Eclipse Modeling Framework)

(Eclipse.org)

• O Netbeans XMI Writer (Netbeans.org)

• UML2Django (Petry, 2008)

Page 15: Apresentação SMartyParser

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.

Page 16: Apresentação SMartyParser

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