A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

JMario Equipe Augusto Cesar Neves Lima Filho. JMario Jogo usando Java2D Fiel ao clássico Mario para snes.

Apresentações semelhantes


Apresentação em tema: "JMario Equipe Augusto Cesar Neves Lima Filho. JMario Jogo usando Java2D Fiel ao clássico Mario para snes."— Transcrição da apresentação:

1 JMario Equipe Augusto Cesar Neves Lima Filho

2 JMario Jogo usando Java2D Fiel ao clássico Mario para snes

3 Feature Model

4

5 public void init(){... imagemInterfacePontuacao = resourceManager.loadImage( "interfacePontuacao.png"); imagemInterfaceTotal = resourceManager.loadImage( "interfaceTotal.png"); imagemInterfacePausa = resourceManager.loadImage( "interfacePausa.png" ); } Feature - Language

6

7 privileged abstract aspect LanguageSupport {... private Image GameManager.loadImageLang (String name, String language) {... } pointcut resourceInit(GameManager gm) : execution(* *.init()) &&... protected abstract String getLanguageCode(); after(GameManager gm) returning : resourceInit(gm){ gm.imagemInterfacePontuacao = gm.loadImageLang("interfacePontuacao.png", getLanguageCode ());... }... aspect EnglishSupport extends LanguageSupport{ protected String getLanguage(){ return "US"; }

8 Feature Model

9

10 Feature - Language

11 Feature – Changeable Language

12 privileged aspect ChangeLanguageAspect... private LanguageStrategy GameManager.languageStrategy; private LanguageFactory GameManager.languageFactory = new LanguageFactory(); before(GameManager gm) : checkInput(gm){ if (gm.language.isPressed()) {... }... private void GameManager.changeLanguage() { languageStrategy = languageFactory.createLanguageStrategy(); imagemInterfacePontuacao = languageStratrategy.loadImageLang("interfacePontuacao.png");... }

13 Feature Model

14 public void loadCreatureSprites() {... Image[][] imagensBat = new Image[4][]; Image[][] imagensTurtle = new Image[4][]; Image[][] imagensMummyTurtle = new Image[4][]; Image[][] imagensBlueDragon = new Image[4][];... imagensFlyGoomba[1] = new Image[imagensFlyGoomba[0].length]; imagensFlyGoomba[2] = new Image[imagensFlyGoomba[0].length]; imagensFlyGoomba[3] = new Image[imagensFlyGoomba[0].length]; imagensGoomba[1] = new Image[imagensGoomba[0].length]; imagensGoomba[2] = new Image[imagensGoomba[0].length]; imagensGoomba[3] = new Image[imagensGoomba[0].length]; imagensGreenKoopa[1] = new Image[imagensGreenKoopa[0].length]; imagensGreenKoopa[2] = new Image[imagensGreenKoopa[0].length]; imagensGreenKoopa[3] = new Image[imagensGreenKoopa[0].length];... Feature Model

15 Gráfico de Clones

16

17 Feature Model

18

19 Técnica : Code Generation and Transformation (CGT)

20 Feature – Static Enemy

21 public void loadCreatureSprites() { #foreach($enemy in $enemys) Image[][] imagens$enemy.Name = new Image[4][]; #end... #foreach($enemy in $enemys) imagens$enemy.Name[ 1 ] = new Image[ imagens$enemy. Name[ 0 ].length ]; imagens$enemy.Name[ 2 ] = new Image[ imagens$enemy. Name[ 0 ].length ]; imagens$enemy.Name[ 3 ] = new Image[ imagens$enemy. Name[ 0 ].length ]; #end...

22 Feature – Static Enemy...

23 Gráfico de Clones

24

25 Redução : 54%

26 Feature Model Técnica : Adaptive Object Model (AOM)

27 Feature: User-Defined enemys

28

29 public void loadCreatureSprites() { XMLEnemyHandler handler = new XMLEnemyHandler();... List enemys = handler.getEnemys(); for (int i = 0; i < enemys.size(); i++) { EnemyDescription enemyDescription = enemys.get(i);... EnemyType enemyType = new EnemyType(enemyDescription.getCodigo(), enemyDescription.getName(), enemyDescription.getSpeed(), enemyDescription.isFlyer());... Feature: User-Defined enemys

30 //#ifdef aom import variations.EnemyType; //#endif //#ifdef aom public class Creature extends Sprite { //#else //@public abstract class Creature extends Sprite { //#endif Feature: User-Defined enemys

31 Dificuldades Uso de técnicas não definidas diretamente em decision models Flip-Pure-Variants

32 Atividades – Tempo AtividadeTécnica ou FerramentaTempo Identificação de featuresManualmente/CCFinder2 horas Desenho do modelo de features Captain Feature1 hora Configuração do ambiente e estudo de ferramentas Flip/Pure-Variants3 horas Extração da feature de Linguagem Flip2 horas Inclusão do ponto de variação para feature de inimigos Manualmente1 hora Extração da feature de StaticEnemys Flip/Manualmente3 horas Extração da feature de User-Defined enemys Manualmente6 horas Montagem do configuration knowledge Pure-Variants2 horas

33 Conclusões Uso de diversas técnicas em uma mesma variação Uso extensivo de AO


Carregar ppt "JMario Equipe Augusto Cesar Neves Lima Filho. JMario Jogo usando Java2D Fiel ao clássico Mario para snes."

Apresentações semelhantes


Anúncios Google