AdverServer Servidor de Ranking para AdverGames Parte 3 Felipe Maia.

Slides:



Advertisements
Apresentações semelhantes
[Material apresentado no SBGames2005]
Advertisements

Projeto 1.
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Interação Cliente Servidor
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Desenvolvimento de Projetos e Aplicações Web
Sistema de Recrutamento e Seleção
Separation of Concerns (SoC)
AdverServer Servidor de Ranking para AdverGames Parte 1 Felipe Maia.
Projeto de casos de uso RUP + Projeto de serviços SOA
Orientação a Aspectos: π-PSF Killer Team Amirton Chagas, Elton Renan, José Dihego, Natanael Silva, Thiago Alexandre.
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Rodrigo de Souza Couto Redes de Computadores II
O Fluxo de Implementação
Desenvolvimento de Sistemas Orientados a Aspectos
Web Services Uninorte Semana de Tecnologia da Informação
Integração com Banco de Dados
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
Fns2 – Fagner Nascimento
AdverServer Servidor de Ranking para AdverGames Parte 2 Felipe Maia.
Concorrência e Java RMI
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
Programação orientada a Aspectos Radio Manager System.
Padrões de Projeto e Arquitetura em Camadas
Configuração do Ambiente de programação
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Programação orientada a aspectos Marcação de Concerns Paulo Fagner Thiago Brayner Tiago Vinícius.
Sistema Virtual de Venda de Móveis
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
13/11/2007 João Arthur Brunet Monteiro GMF/DSC/CEEI/UFCG Evolução de Software A Survey of Software Refactoring Reconstruction of Successful Software Evolution.
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
Aguilar Figueira Dias Orientador Prof. Dr. João Bosco da Mota Alves
SISTEMA PROCESSUAL DIGITAL
ABC reuso Reengenharia Primeiras conclusões. ABC reuso Análise do Código Fonte Arquitetura em Camadas Fachada (SIAlocacaoPlus) Negócio (Cadastros) Persistência.
Lucas Figueiredo Marcelo Pereira Ranieri Valença Rosana Matos Valmir Sena.
Padrões de Projeto.
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Parte 3 - Resultados Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP.
Título do Projeto Equipe.
Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira.
Modelo de Análise e Projeto
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
SyncML Apresentação –Introdução Motivação Iniciativa SyncML –XML (eXtensible Markup Language) –Protocolos SyncML –Sincronização em duas vias –Conclusões.
MAC499 - Trabalho de Formatura Supervisionado Rachel de Paula Thiago Lourençoni Wu Chen Lung Estágio realizado em uma empresa que atua na área de ASP (Application.
CVS – Gerenciamento de Versões
1 PRINCÍPIOS DO MERCADO ATUAL 1. Imagine que você se prepara e se qualifica como um excelente corretor de imóveis; 2. Passa a atuar na área imobiliária,
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Orientação a Objetos e Java Alexandre Mota  Centro de Informática, UFPE.
Wi-Fi Information Service Ademir José de Carvalho Junior Felipe Cavalcanti Ferreira.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Rodrigo Cristiano Silva Introdução A HTML 5 foi idealizada por um grupo de “freethinkers” que estavam cansados do padrão oficial da.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
REMBOX Sistema para controle e auxílio no uso de medicamentos controlados e tratamentos médicos.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
Projeto de Arquitetura de Software
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Programação orientada a Aspectos Radio Manager System.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Aplicações em Três Camadas MVC – Model, View, Control.
Aplicativos para Web MVC Prof. Odair Indena Jr.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

AdverServer Servidor de Ranking para AdverGames Parte 3 Felipe Maia

AdverServer  Servidor de ranking para jogos online – AdverGames  Produto comercial  Não é vendido como um produto mas faz parte dos jogos

AdverServer  Permite cadastro e manipulação de administradores, empresas, jogos, jogadores, invite- s e entradas de ranking  Sistema de Informação com banco de dados  Realiza comunicação com interface JSP e com um protocolo de mensagem HTTP para comunicação Flash

AdverServer  Possui controle de persistência, porém sem controle de concorrência nem de transação  Razoavelmente modularizado

AdverServer - Arquitetura JSP Page Flash Game HttpServlet FabricaHandler Handlers... Fachada Negocio

Concern Identificados  Concerns  Persistence  Concurrency  ExceptionHandling  ErrorLogging  PropertiesReading  FlashProxy  Business

Remodularização Adverserver  Processo de remodularização OO  Primeiramente o Adverserver foi remodularizado em Java básico OO  Bons resultados foram obtidos na remoção dos clones  Foram encontrados alguns bugs que foram corrigidos (exemplo: editar não validava os campos fornecidos)

Remodularização Adverserver  Processo de remodularização OO  A marcação do código via concerntagger forneceu um bom conhecimento do sistema  O projeto original possuia uma arquitetura decente, utilizando design patterns como AbstractFactory e Singleton

Remodularização Adverserver  Processo de remodularização OO  O projeto original possuia alguns pequenos problemas básicos e simples de design  Algumas classes estavam mal nomeadas  Exemplo: Repositorio era na verdade um repositorio especifico SQL  Algumas classes estavam em pacotes que não deveriam estar  Exemplo: Repositorio SQL estava no pacote de negocio  Classes básicas acessavam cadastros para se autalizarem na persistencia

Remodularização Adverserver  Processo de remodularização AO  Somente após a modularização OO foi realizada a modularização AO  A modularização AO não encontrou muitos locais onde atuar  O controle de persistencia foi completamente modularizado via OO e AO  O controle de sincronização só evitava a quebra da pattern Singleton

Remodularização Adverserver  Processo de remodularização AO  Não existia controle de transação, as operações eram simples  O tratamento de exceção não continha clones reais a serem modularizados  O logging de erro só ocorria na geração de uma exceção  A comunicação Flash já estava bem modularizada via OO

Remodularização Adverserver  Processo de remodularização AO  A camada de negócio já estava bem modularizada via OO

Dados recolhidos  Tempo da remodularização  28 horas entre estudo e remodularização  Refactorings OO via eclipse:  Rename:  13x  Move:  4x  EncapsulateFields:  5x

Dados recolhidos  Refactorings OO via eclipse:  Extract Method:  6x  Padrões:  Removidos 4 singletons  Adicionado um singleton  Utilização de Fabrica na modularização da persistencia  Idiomas AO:  Tag (marker) interface

Refactorings

Dados recolhidos  Refactorings não existentes no Eclipse:  Feitos a mão  Exemplo:  Encapsulate method  As páginas JSP não foram modificadas  Foram criadas 3 novas classes java e 1 novo aspecto aj

Dados recolhidos  Pares de clones encontrados na nova versão:  35  Porém nenhum par parece ser bem modularizável via OO ou AO  A maioria é negócio similar ou strings SQL

Resultados  Problemas na modularização OO foram detectados e foram consertados  Inclusive alguns bugs foram detectados e corrigidos  Decorreu de todas as três partes do projeto

Resultados  Somente o crosscutting concearn Persistence foi totalmente modularizado  Decorreu da primeira parte do projeto  Antes invadia código de cadastros e de classes básicas  Agora consiste de repositórios, gerenciador de conexão e aspecto de inicialização  Alto ganho em modularização

Resultados  Tratamento de exceção já estava parcialmente sem duplicação de código  Pequenos problemas foram consertados via OO  Evitando assim duplicação

Conclusão  O projeto foi bastante trabalhoso e cansativo  AOP é extremamente potente porém extremamente complexa sem as ferramentas corretas  OO gera bons resultados quando utilizada em conjunto com uma boa arquitetura e design patterns  Porém podem se tornar excelentes via adição de AOP