Conceitos de Engenharia Reversaaplicados na migração de sistemas legadosSymfony 1.x para Symfony 2.x                      ...
Eu sou  Guilherme Verasum “ varredor TIC ”
Objetivos do dia- Algo que possa agregar (Guia de Referência)- O que são sistemas legados ?- O que é engenharia reversa ?-...
O que são sistemas legados?Um sistema legado é um antigo método, tecnologia ousistema (programa).Um sistema legado pode ou...
O que são sistemas legados?Em ambos os casos, o efeito sobre ainteligência de negócios, relatórios operacionais eestratégi...
Razões para manter um sistema legado:-   O sistema funciona satisfatoriamente, e o proprietário    não vê razão para alter...
Razões para manter um sistema legado:-   O sistema requer constante disponibilidade, de modo    que não pode ser retirado ...
Razões para manter um sistema legado:-   A maneira que o sistema funciona não é bem    compreendida. Tal situação pode oco...
Problemas gerados por sistemas legados“Os sistemas legados são considerados potencialmenteproblemáticas pelos engenheiros ...
Problemas gerados por sistemas legados- Estes sistemas podem ser difíceis de manter, melhorare expandir porque há uma falt...
Problemas gerados por sistemas legados- Integração com sistemas mais novos também pode serdifícil, porque o software novo ...
O que é Engenharia Reversa?A engenharia reversa é o processo de descobrir osprincípios tecnológicos de um dispositivo, obj...
O que é Engenharia Reversa?Além de analisar o funcionamento em detalhes doproduto, ela pode ser usada para dar manutenção,...
O que é Engenharia Reversa?Entretanto as mesmas técnicas vem sendo pesquisadaspara aplicação em sistemas de software legad...
Visualizando os conceitos
Motivações - Razões para engenharia reversa-   Interfaceamento: ER pode ser utilizada quando em    um sistema é necessário...
Motivações - Razões para engenharia reversa-   Melhorar a documentação técnica que pode ser    obsoleta desde a concepção ...
Motivações - Razões para engenharia reversa-   Modernização Software: ER é geralmente necessária    para compreender situa...
Motivações - Razões para engenharia reversa-   Acadêmico (aprendizagem). ER para efeitos de    aprendizagem, pode ser real...
Técnicas e Sistemas de ERExistem diversas técnicas de ER, entretanto elas nãodefinem o “como fazer” ou “o que deve ser fei...
Outras Questões - Outros pontos de atenção- Leis especificas em cada país- Existe muita documentação sobre o assunto(com v...
Falando sobre Web Softwares       Nosso objetivo é falar sobre sistemas que usam                             ●            ...
Falando sobre Web SoftwaresA maioria dos projetos web possui:  - Um banco de dados MySQL ou PostgreSQL ...  - Arquivos est...
Falando sobre Web SoftwaresPara qualquer aplicação existem geralmente quatro tipos de dados: * Dados iniciais: São necessá...
Na prática o que eu devo fazer ? Analisar,●● Analisar,● Analisar●● e
Na prática o que eu devo fazer ?   ●   Tomar um café            ●e         ●Analisar        novamente
Na prática - Uma sugestão de passo a passo- Analisar o arquivo de schema (yml, xml na pasta config)- Analisar o banco de d...
Na prática - Uma sugestão de passo a passo- Analisar pasta lib global   - Filtros (filter)   - Formulários (form) ex: camp...
Na prática - Uma sugestão de passo a passo- Analisar pasta de testes- Analisar pasta de plugins e realizar etapas acima re...
Na prática - Uma sugestão de passo a passo- Verificar se existe dependência entre classes- Levantamento das interfaces vis...
Na prática - Uma sugestão de passo a passoNotas:* Esse processo pode ser repetir* É possível usar o plugin sfGraphViz para...
Nossos objetivos- Entender as relações e conexões entre os objetos (tabelas) do bancode dados e o sistema.- Entender se ex...
ConclusãoFazendo todos estes passos você terácerteza de ter mapeado todo osistema?Resposta: NãoVocê terá de ver verificar ...
Vantagens de usar SymfonyUsando symfony você tem a vantagem de saber onde as coisas estão efazer a o seu mapeamento.Entret...
DesvantagensVocê fica viciado em tantas soluções profissionais e que facilitam o seutrabalho.
Mas por que mudar para Symfony 2- Eventualmente você pode precisar de uma nova tecnologia ouintegração- Bugs de segurança ...
Documentos gerados para ER ou RE:Este documentos também são documentos de projeto (sugestões):- Criar uma lista de compara...
Sobre o Symfony 2“Se você olhar ao redor, cada componente parece implementar opadrão MVC. E a maioria deles são anunciados...
Visão geral - Diferenças EstruturaSymfony 1.x              Symfony 2.x
Visão geral - Diferenças entre conceitosProjeto                      ProjetoAplicação                    AplicaçãoMódulo  ...
O que é um BundleÉ um bando de coisas?Sim.Mas pode ser melhor definido como um conjunto de arquivos querepresentação uma f...
O que é um BundleAplicaçãoMódulo                    BundlePluginsLibs
Nas ViewsLayoutPartial     Modelos            SlotsSlotComponent
Symfony 1 - EstruturaProjeto                 JoobetAplicações              Frontend,                        BackendMódulos...
Symfony 2 - EstruturaProjeto                 JoobetAplicações              Frontend,                        BackendBundle ...
O que é preciso? Processo básico1 - Preparar o seu projeto (Documentação como DER etc …)2 - Baixar a última versão do Symf...
Dificuldades?
Você domina o que faz?
mysql - postgres - mvc - symfony - xp - scrum uml - tap - php - apache - linux - subversion  websvn - propel - doctrine - ...
Um pouco de prática ...
Baixando, Instalando e Configurando oBanco de dados
Baixando, Instalando e Configurando oBanco de dados
Baixando, Instalando e Configurando oBanco de dados
Baixando, Instalando e Configurando oBanco de dados
Baixando, Instalando e Configurando oBanco de dados
Baixando, Instalando e Configurando oBanco de dados
Como você faria no symfony 1.x- Criar aplicaçãosymfony generate:app [--escaping-strategy="..."] [--csrf-secret="..."] (nom...
Como você faria no symfony 1.x- Faço um build all com o comandosymfony doctrine:build --all --and-load --trace     - Cria ...
Como você faria no symfony 2.x- Criar novo bundle      php app/console generate:bundle      - Totlab/MensagemBundle- Criar...
Conclusões ERQuando falamos de Engenharia Reversa, Reengenharia ou Migrações,os principais fatores de sucesso estão relaci...
Conclusões Symfony- Vale a pena migrar para Symfony 2
Questões ???    </apresentação>guilhermeveras@gmail.com@guilhermeveraswww.totlab.com.br
Upcoming SlideShare
Loading in …5
×

sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistemas legados Symfony 1.x para Symfony 2.x

2,135 views

Published on

São abordados conceitos de Engenharia Reversa aplicados na migração de sistemas legados Symfony 1.x para Symfony 2.x.

O objetivo é que o responsável pela migração possa usar este conteúdo como guia de referência no desenvolvimento do seu processo de migração de sistemas.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,135
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistemas legados Symfony 1.x para Symfony 2.x

  1. 1. Conceitos de Engenharia Reversaaplicados na migração de sistemas legadosSymfony 1.x para Symfony 2.x www.totlab.com.br
  2. 2. Eu sou Guilherme Verasum “ varredor TIC ”
  3. 3. Objetivos do dia- Algo que possa agregar (Guia de Referência)- O que são sistemas legados ?- O que é engenharia reversa ?- Falando sobre Web Softwares- Falando sobre Symfony 2- Symfony 1.x vs Symfony 2.x- Na prática- Indagações, reflexões e onde o vento levar ...
  4. 4. O que são sistemas legados?Um sistema legado é um antigo método, tecnologia ousistema (programa).Um sistema legado pode ou não permanecer em uso,entretanto, mesmo que ele não seja mais usado, elepode continuar a impactar na organização devido ao seupapel histórico.Dados históricos podem não ter sido convertidos paraum novo sistema e ele ainda pode existir dentro do novosistema com um uso personalizado em um esquemacrosswalk.
  5. 5. O que são sistemas legados?Em ambos os casos, o efeito sobre ainteligência de negócios, relatórios operacionais eestratégicos pode ser significativo.Por uma variedade de razões, um sistema legado podecontinuar a ser utilizado, muitas vezes (senão todas),passado o tempo de vida de suporte pelo seufornecedor, resultando em falta apoio e grandes desafiosna manutenção.
  6. 6. Razões para manter um sistema legado:- O sistema funciona satisfatoriamente, e o proprietário não vê razão para alterá-lo.- Os custos de redesenhar ou substituir o sistema são proibitivos porque o mesmo é grande, monolítico, e/ou complexo.- O refactory para um novo sistema seria oneroso em tempo e dinheiro quando comparado com os benefícios previstos em substituí-lo por completo.
  7. 7. Razões para manter um sistema legado:- O sistema requer constante disponibilidade, de modo que não pode ser retirado de serviço, e o custo da concepção de um novo sistema com um nível de disponibilidade semelhante é elevada. Exemplos disso incluem: sistemas para lidar com contas de clientes em bancos, sistemas de reserva, controle de tráfego aéreo, distribuição de energia (rede elétrica), usinas nucleares, instalações militares de defesa etc.
  8. 8. Razões para manter um sistema legado:- A maneira que o sistema funciona não é bem compreendida. Tal situação pode ocorrer quando os projetistas do sistema deixaram a organização, e que o sistema tenha ou não sido devidamente documentados ou documentação foi perdida.- O utilizador espera que o sistema possa ser facilmente substituído quando isso se tornar necessário.
  9. 9. Problemas gerados por sistemas legados“Os sistemas legados são considerados potencialmenteproblemáticas pelos engenheiros de software por váriasrazões” (Bisbal et al., 1999), por exemplo:- Os sistemas legados são freqüentemente executados em hardware obsoleto, e peças de reposição para tais computadores podem se tornar cada vez mais difíceis de obter.
  10. 10. Problemas gerados por sistemas legados- Estes sistemas podem ser difíceis de manter, melhorare expandir porque há uma falta de compreensão dosistema, os funcionários que eram peritos podem ter seaposentado e pode não existir mais documentação.- Os sistemas legados podem ser vulneráveis a partir deoutras camadas (insegurança recursiva), como antigossistemas operacionais e/ou aplicativos, devido à falta depacotes de segurança estarem disponíveis ou aplicados.Também podem existir configurações de produção quecausam problemas de segurança.E isso pode ser potencialmente explorado por hackers.
  11. 11. Problemas gerados por sistemas legados- Integração com sistemas mais novos também pode serdifícil, porque o software novo pode usar tecnologiascompletamente diferentes e pode não existir uma formasimples de comunicar tais plataformas.
  12. 12. O que é Engenharia Reversa?A engenharia reversa é o processo de descobrir osprincípios tecnológicos de um dispositivo, objeto ousistema através da análise de sua estrutura, funções eoperação.Muitas vezes envolve reconstruir alguma coisa, porexemplo: um dispositivo mecânico, componenteseletrônicos, softwares.Mas também se estende para outras áreas como:Química, Biológica, Geográfica etc.
  13. 13. O que é Engenharia Reversa?Além de analisar o funcionamento em detalhes doproduto, ela pode ser usada para dar manutenção, ouser desenvolvido um novo dispositivo ou programa quefaz a mesma coisa sem usar ou simplesmente duplicar(sem estender) o original.“A engenharia reversa tem suas origens na análise dehardware para obter vantagem comercial ou militar.”O objetivo é deduzir decisões de design de produtosfinais com pouco ou nenhum conhecimento adicionalsobre procedimentos envolvidos na produção original.
  14. 14. O que é Engenharia Reversa?Entretanto as mesmas técnicas vem sendo pesquisadaspara aplicação em sistemas de software legados, nãopara fins industriais ou de defesa, mas sim parasubstituir a documentação incompletas, incorretas, ouindisponíveis.
  15. 15. Visualizando os conceitos
  16. 16. Motivações - Razões para engenharia reversa- Interfaceamento: ER pode ser utilizada quando em um sistema é necessário fazer a interface com outro e para que ambos os sistema negociem informações. Esses requisitos normalmente existem para quando buscamos a interoperabilidade entre plataformas.- Militar ou Comercial (espionagem): Aprender sobre a nova tecnologia de um inimigo ou concorrente, capturando um protótipo, pode resultar no desenvolvimento de produto semelhante ou melhor.
  17. 17. Motivações - Razões para engenharia reversa- Melhorar a documentação técnica que pode ser obsoleta desde a concepção do produto. ER de software pode fornecer a documentação mais recente necessária para a compreensão do estado da arte do sistema e sua continuidade.- Obsolescência de tecnologia: Muitas vezes o fornecedor não oferece mais suporte ao produto, o que significa que a única maneira de incorporar a funcionalidade em nova tecnologia é a engenharia reversa do produto existente e em seguida projeta-lo.
  18. 18. Motivações - Razões para engenharia reversa- Modernização Software: ER é geralmente necessária para compreender situação atual do sistema e estimar corretamente o esforço necessário para migrar o mesmo.- Análise de Segurança do Produto: Para identificar se é possível remover proteções contra cópia. Para avaliar possíveis vulnerabilidades de violação de patentes e desenvolvimento de contratos específicos.
  19. 19. Motivações - Razões para engenharia reversa- Acadêmico (aprendizagem). ER para efeitos de aprendizagem, pode ser realizada para compreender questões-chave de um projeto mal sucedido e posteriormente melhorar o seu design.- Inteligência competitiva técnica: Entender o que seu concorrente está fazendo de verdade, contra (vs), o que ele diz que esta fazendo.
  20. 20. Técnicas e Sistemas de ERExistem diversas técnicas de ER, entretanto elas nãodefinem o “como fazer” ou “o que deve ser feito”.Elas estão ligadas a extração de informação paralevantamento de requisitos.Depois destas extrações e analises o processo dedesenvolvimento seguiria de forma normal.
  21. 21. Outras Questões - Outros pontos de atenção- Leis especificas em cada país- Existe muita documentação sobre o assunto(com visões muito particulares) analise crítica é essencial- Existem diversas métricas e formulas de avaliação deesforço de conversão- Já existem certificações especificas nesta área
  22. 22. Falando sobre Web Softwares Nosso objetivo é falar sobre sistemas que usam ● ● Symfony 1.x ● ● como framework de desenvolvimento
  23. 23. Falando sobre Web SoftwaresA maioria dos projetos web possui: - Um banco de dados MySQL ou PostgreSQL ... - Arquivos estáticos (HTML, Imagens, JavaScript, Css ) - Arquivos Uplodados para o sistema por usuários ou admins - PHP classes e bibliotecas - Batch files (scripts de automação e de linha de comando ou cron) - Log files (da aplicação e do servidor) - Arquivos de configuração
  24. 24. Falando sobre Web SoftwaresPara qualquer aplicação existem geralmente quatro tipos de dados: * Dados iniciais: São necessários para a aplicação trabalhar.Por exemplo: categorias, tags, configurações.Muitas vezes também precisamos de usuários administradores previamentecadastrados para operar o backend da aplicação.* Dados de testes: São necessários para a aplicação ser testada.Como desenvolvedor, você precisa escrever testes para garantir que o sistemase comporte como descrito nas sua documentação, e a melhor forma de fazerisso é escrever testes. Cada vez que você executa seus testes, você pode precisarlimpar o banco de dados, inserindo alguns dados novos para testar.* Dados de usuário: São criados pelo usuário durante a vida normal daaplicação.* Dados de processamento: Geralmente de rotinas agendadas (cron) ou deoutros sistemas com interface.
  25. 25. Na prática o que eu devo fazer ? Analisar,●● Analisar,● Analisar●● e
  26. 26. Na prática o que eu devo fazer ? ● Tomar um café ●e ●Analisar novamente
  27. 27. Na prática - Uma sugestão de passo a passo- Analisar o arquivo de schema (yml, xml na pasta config)- Analisar o banco de dados real- Analisar os arquivos de fixtures e sql- Analisar os comportamentos do ORM (Behaviors)- Analisar a pasta config global- Analisar o arquivo global de configurações do projeto (app.yml)
  28. 28. Na prática - Uma sugestão de passo a passo- Analisar pasta lib global   - Filtros (filter)   - Formulários (form) ex: campos obrigatórios e post validators   - Modelo (model) ex: getMyScore   - Widgets ex: data X até data Y com jquery data picker   - Tarefas (task) ex: Enviar uma mensagem para usuários queatualizaram o perfil em X dias, cancelar acesso por falta de pagamento   - Outras bibliotecas (vendors) ex: Swift Mail, domPDF etc
  29. 29. Na prática - Uma sugestão de passo a passo- Analisar pasta de testes- Analisar pasta de plugins e realizar etapas acima recursivamente- Analisar todos os módulos de todas as aplicações e suas partials,componentes e slots(gerando um mapa do sistema para isso um plugin pode nos ajudar)- Analisar pasta lib locais (Classes myUser)- Analisar os arquivos locais de configurações (aplicação e modulo)app, rotas, linguagens, filtros etc- Analisar os arquivos da pasta web (scripts, imagens, uploads, controladores etc)- Verificar se existe integração como outros sistemas (web service)
  30. 30. Na prática - Uma sugestão de passo a passo- Verificar se existe dependência entre classes- Levantamento das interfaces visuais e das suas interações(mapeamento do workflow) - User Cases- Levantar com o desenvolvedor original (se possível) uma lista depontos de atenção e de melhorias (em entrevista), ele pode ter tidovarias ideias que não foram implementadas (por algum tipo deviabilidade como tempo o recurso) ou pensando em outras formas deorganização mas na prática não conseguiu implementar.- Analisar logs do servidor web e do sistema- Clonar o projeto em um ambiente de teste- Torcer para que o desenvolvedor não tenha alterado nada do core doSymfony para fazer o seu projeto
  31. 31. Na prática - Uma sugestão de passo a passoNotas:* Esse processo pode ser repetir* É possível usar o plugin sfGraphViz para visualizar o DER(Caso banco seja Mysql usar mysql workbench)* O plugin sfApplicationMapPlugin gera um mapa de todo o sistema* Existe pelo menos 50% de chance de encontramos alguma diferençaentre os modelos mapeados nas configurações, formulários e no banco* data-dump e data-load irão nos ajudar (lembre-se de sempre clonar oprojeto e testar data-dump e data-load antes de colocar em produção)* Use Doctrine Migrations
  32. 32. Nossos objetivos- Entender as relações e conexões entre os objetos (tabelas) do bancode dados e o sistema.- Entender se existem filtros e/ou se os dados sofrem modificações aoserem inseridos e/ou consultados no banco (comportamentos)- Gerar documentação real do atual estado da arte do sistema(Mapa do sistema)- Caso o sistema já possua um volume de dados, existe a possibilidadede otimizar o banco (Normalização) caso ele já não esteja- Analisar: volume e carga atual, licença (custos), e gerar projeções- Identificar o que é melhor fazer a ER ou Reengenharia
  33. 33. ConclusãoFazendo todos estes passos você terácerteza de ter mapeado todo osistema?Resposta: NãoVocê terá de ver verificar tudo e ainda corre o risco deixar alguma coisapassar. Por isso é vital que você teste o que esta sendo feito ehomologue cada interface com o setor/cliente/responsável(e se houver integração com o desenvolvedor original melhor ainda).Isso também vai depender do seu ciclo de desenvolvimento e dasmetodologias empregadas (Garantia, ex: ANVISA - RDC 17 - GAMP 5)
  34. 34. Vantagens de usar SymfonyUsando symfony você tem a vantagem de saber onde as coisas estão efazer a o seu mapeamento.Entretanto o desenvolvedor pode não ter seguido todos os padrões epor isso você precisa conferir.Além disso Symfony fornece um conjunto de ferramentas para facilitaro seu trabalho de analise.Graças a concepções do framework, um sistema legado Symfony émelhor tipo de sistema legado que você poderia encontrar.
  35. 35. DesvantagensVocê fica viciado em tantas soluções profissionais e que facilitam o seutrabalho.
  36. 36. Mas por que mudar para Symfony 2- Eventualmente você pode precisar de uma nova tecnologia ouintegração- Bugs de segurança ou brechas pode ser encontradas- Referências e evolução da comunidade, as pessoas não falam maissobre determinado conteúdo- Aprender mais, se tornar um profissional melhor- Velocidade e desempenho“Dependendo do seu projeto e de suas necessidades, você podeescolher alguns dos componentes do Symfony 2 e iniciar o projeto comeles, ou você pode usar tudo do framework e se beneficiar com aintegração que ele proporciona.”
  37. 37. Documentos gerados para ER ou RE:Este documentos também são documentos de projeto (sugestões):- Criar uma lista de comparação   Tabela | Campo | Tipo | Validação | Comportamento | Filtro- Documento de mapeamento dos Tipos de dados: - Dados de Teste - Dados de Configuração e/ou inicialização - Dados de Usuário - Dados de Processamento- Mapa do sistema(Aplicações, módulos, componentes, partials, plugins, etc)...
  38. 38. Sobre o Symfony 2“Se você olhar ao redor, cada componente parece implementar opadrão MVC. E a maioria deles são anunciados como frameworksMVC ... mas não Symfony 2, por que eu realmente não me importo se oSymfony 2 e MVC ou não.”“Se você gosta de chamar Symfony 2 de um framework MVC, entãovocê deve saber que ele realmente prove as ferramentas para oscontroladores e visões, mas não para o modelo, para vocêcriar o mesmo faça “no braço” ou com alguma ferramenta ORM compor exemplo o Doctrine.”“Eu não gosto de MVC, porque não é assim que a web funciona.Vejo Symfony 2 como um servidor HTTP, com solicitações e respostas.Os princípios fundamentais de Symfony 2 estão centradas em torno daespecificação HTTP.”Tradução adaptada de Fabien Potencier Publicado em Blog Pessoal (25/10/11)
  39. 39. Visão geral - Diferenças EstruturaSymfony 1.x Symfony 2.x
  40. 40. Visão geral - Diferenças entre conceitosProjeto ProjetoAplicação AplicaçãoMódulo Bundle
  41. 41. O que é um BundleÉ um bando de coisas?Sim.Mas pode ser melhor definido como um conjunto de arquivos querepresentação uma funcionalidade.(Um bando de coisas que serve para alguma coisa)
  42. 42. O que é um BundleAplicaçãoMódulo BundlePluginsLibs
  43. 43. Nas ViewsLayoutPartial Modelos SlotsSlotComponent
  44. 44. Symfony 1 - EstruturaProjeto JoobetAplicações Frontend, BackendMódulos Oferta, Categoria, Empresa
  45. 45. Symfony 2 - EstruturaProjeto JoobetAplicações Frontend, BackendBundle Oferta, Categoria, Empresa
  46. 46. O que é preciso? Processo básico1 - Preparar o seu projeto (Documentação como DER etc …)2 - Baixar a última versão do Symfony3 - Configurar o banco de dados4 - Configurar o apache5 - Gerar tudo automágicamente pela linha de comando6 – Programar minhas regras de negócio
  47. 47. Dificuldades?
  48. 48. Você domina o que faz?
  49. 49. mysql - postgres - mvc - symfony - xp - scrum uml - tap - php - apache - linux - subversion websvn - propel - doctrine - django - rails prado - perl - pear - prototype - cocoa scriptaculus - tinymce - ajax - yaml - routingmódulo rewitre - i18n - l10n - api - web service sql - herança - oo - orm - ldap grasp - dot - graphviz - namespace ...
  50. 50. Um pouco de prática ...
  51. 51. Baixando, Instalando e Configurando oBanco de dados
  52. 52. Baixando, Instalando e Configurando oBanco de dados
  53. 53. Baixando, Instalando e Configurando oBanco de dados
  54. 54. Baixando, Instalando e Configurando oBanco de dados
  55. 55. Baixando, Instalando e Configurando oBanco de dados
  56. 56. Baixando, Instalando e Configurando oBanco de dados
  57. 57. Como você faria no symfony 1.x- Criar aplicaçãosymfony generate:app [--escaping-strategy="..."] [--csrf-secret="..."] (nome da aplicacao - frontend no caso)- Configurar o arquivo schema.yml com o seu modeloconfig/schema.yml- Configurar o arquivo fixtures.yml com os dados de inicialização e/outeste data/fixtures.yml
  58. 58. Como você faria no symfony 1.x- Faço um build all com o comandosymfony doctrine:build --all --and-load --trace - Cria o sql necessário para criação das tabelas no banco e executa - Cria o sql com os inserts dos dados de inicialização e executa - Mapeia as tabelas do banco em classes (model) - Mapeia os filtros (filters) - Mapeia os formulários (forms) - Mostra todas as saídas por causa do parâmetro - - trace (que é ótimo para debug)- Criar CRUDsymfony doctrine:generate-module  --with-show frontend (Aplicação)mensagem (Modulo) Mensagem (Modelo)
  59. 59. Como você faria no symfony 2.x- Criar novo bundle php app/console generate:bundle - Totlab/MensagemBundle- Criar entidades - php app/console generate:doctrine:entity- Gerar schema (insere no banco) - php app/console doctrine:schema:create- Gerar formulário (opcional) - php app/console doctrine:generate:form- Gerar CRUD - php app/console doctrine:generate:crud
  60. 60. Conclusões ERQuando falamos de Engenharia Reversa, Reengenharia ou Migrações,os principais fatores de sucesso estão relacionados:- Com o envolvimento com os usuários e desenvolvedores no processo- A nova estrutura adotada- Uma boa gestão do projeto- Qualificação da equipe envolvida, sempre invista em educação
  61. 61. Conclusões Symfony- Vale a pena migrar para Symfony 2
  62. 62. Questões ??? </apresentação>guilhermeveras@gmail.com@guilhermeveraswww.totlab.com.br

×