![Page 1: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/1.jpg)
04:34:06 am
1
ClassGenerator - Desenvolvendo aplicações em PHP com qualidade e
eficiência.
Marcelio Leal
Porto Alegre, Abril, 2006
![Page 2: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/2.jpg)
04:34:06 am
2
Apresentação
● Engenheiro de software do SEPRO● Graduado em C. da Computação● Mestrando em C. da Computação● Membro-Fundador do Grupo PHP Pai
d'Égua● Experiência com web/php desde 2001
![Page 3: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/3.jpg)
04:34:06 am
3
Sumário
● Contexto● Objetivos● Como funciona● A ferramenta● O que vier por aí...
![Page 4: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/4.jpg)
04:34:06 am
4
Contexto
● Desenvolvimento de Sistemas de Informação
● Utilização de Banco de Dados Relacionais
● Geração de Protótipos● Geradores de Artefatos● Automatização
![Page 5: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/5.jpg)
04:34:06 am
5
Motivação
“Algumas das principais barreiras à flexibilidade corporativa são o tempo e o custo para desenvolver aplicações de negócio ou modificar as já existentes com qualidade e eficiência”, Cumins 2002
![Page 6: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/6.jpg)
04:34:06 am
6
PHP
● Temos que manter as suas qualidades– Liberdade– Simplicidade
![Page 7: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/7.jpg)
04:34:06 am
7
Dilemas
“Preciso de um sistema com qualidade e confiabilidade, mas o cliente quer resultados rápidos”
“Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente ou fortemente dependente de uma solução”
“Repito muitas operações padrões a cada vez que faço um sistema”
![Page 8: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/8.jpg)
04:34:06 am
8
Problemas
● Custos do desenvolvimento(IDE,...)● Transição da fase de análise OO para a
fase de projeto(Abstração X Eficiência)● Mapeamento objeto-relacional(BDR
ainda é o padrão)● Reutilização dos artefatos e do
conhecimento (Sistemas legados, SQL, ...)
![Page 9: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/9.jpg)
04:34:06 am
9
Solução/Objetivos
● Prover um padrão p/ mapeamento OR– Fácil, extensível, gerenciável, escalável e
produtiva● Prover geração de artefatos de
funcionalidades básicas– Cadastro, Alteração, Exclusão e Seleção– Sem código desorganizado e excessivo– Seguindo padrões e retirando o máximo de
informações contidas nos modelos
![Page 10: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/10.jpg)
04:34:06 am
10
Solução/Objetivos
● Arquitetura● Documentação● Não deixar dependente da ferramenta● Reutilizar o conhecimento a partir de
mapeamentos
![Page 11: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/11.jpg)
04:34:06 am
11
Class
● Ferramenta com o objetivo de automatizar o desenvolvimento de sistemas de informação
● Melhorando alguns aspectos do desenvolvimento de software, direta e indiretamente
● E utilizando o conhecimento adquirido para melhorar gradativamente o software gerado
![Page 12: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/12.jpg)
04:34:06 am
12
Histórico● Padrão utilizado no SAAD, base do Class
● Versão 0.1 Lançada em Nov/Dez de 2001
– Marcelio L., Eduardo G., Leonardo G. e Prof. Affonso G.
● Versão 0.2 (ADODB) Lançada em Jun/Jul de 2002
– Adaptações na versão 0.1 (Eduardo Guerra)
● Versão 0.5 Lançado em Maio de 2003
– Código Refeito, Evolução, manutenção dos artefatos(ML)
● Versão 0.6 Lançado em Abril de 2004
– Código Refeito, evolução no Padrão (ML, Eloi Favero)
● Versão 1.0 TCC
– Evolução no Padrão (Marcelio, Rafael Marlos e Abstract)
![Page 13: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/13.jpg)
04:34:06 am
13
A Ferramenta● Componentes
– Gerador de Artefatos– Framework– Gerador de Código
● O que faz– Geração de Artefatos a partir de um
modelo de mais alto-nível para automatizar o desenvolvimento de SI.
– Baseados em padrões reconhecidos pela comunidade de Engenheiros Web;
– Utiliza regras de mapeamento pra geração
![Page 14: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/14.jpg)
04:34:06 am
14
Gerador de Artefatos
"Um artefato é qualquer item criado como parte da definição, manutenção ou utilização de um processo de software. Inclui entre outros, descrições de processo, planos, procedimentos, especificações, projeto detalhado, código, documentação para o usuário. Artefatos podem ou não ser entregues a um cliente ou usuário final”, Staa
![Page 15: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/15.jpg)
04:34:06 am
15
O Processo
![Page 16: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/16.jpg)
04:34:06 am
16
Outra visão
![Page 17: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/17.jpg)
04:34:06 am
17
Metas
● Gerar e manter boa parte do sistema
● Estabelecer um padrão
● Transferir esforços para as atividades essenciais
● Diminuir a repetição de código
● Diminuir a incidência de erros
● Dividir bem as responsabilidades
● Melhorar a comunicação
● Utilizar o conhecimento adiquirido
● Deixar livre o desenvolvedor
![Page 18: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/18.jpg)
04:34:06 am
18
Os Artefatos e a Arquitetura inicial/básica
![Page 19: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/19.jpg)
04:34:06 am
19
Operações
● Inserção● Alteração● Exclusão● Seleção pela CP(PK)● Seleção de toda coleção de objetos
![Page 20: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/20.jpg)
04:34:06 am
20
Mapeamento OR
● Manter os princípios da OO– Reusabilidade– Extensibilidade– Minimizando o impacto em performance*
● Utilizar os benefícios de um BDR● Tranparência nas operações no BDR● Utilizar padrões de projeto● Amenizar e facilitar a transição da fase
de análise para o projeto OO
![Page 21: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/21.jpg)
04:34:06 am
21
Mapeamento OR
● Funcionamento– Cada tabela é transformada em uma
classe do tipo Básica;– Para cada classe básica criada são criadas
também:● Uma classe do tipo CadBD;● Uma classe do tipo Cad ;● Os métodos de acesso na classe Fachada.
![Page 22: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/22.jpg)
04:34:06 am
22
Interfaces
![Page 23: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/23.jpg)
04:34:06 am
23
Regras de Criação e Otimização
Categorias Validação Tipo Elemento HTML Limita caracteresstring não text simlong string não textArea simint int text simfloat não text simdate data text simtime hora text simyear int text simespecific type não text nãofile não file não
![Page 24: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/24.jpg)
04:34:06 am
24
O Framework integrado● Camada de abstração do BD(ADODB)
● Controle, mecanismo de log e aviso de erros em tempo de execução (Erros de programação)
● Comunicação via e-mail
● Controle e fluxo de mensagens de apresentação para usuários
● Validação de interfaces JavaScript
● Controle de códigos e estados estáticos
● Funções extras de interface (Combos...)
● Estilos de interface (CSS)
● Todas funcionalidades podem ser substituidas por outros Frameworks
![Page 25: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/25.jpg)
04:34:06 am
25
Conclusões
● Um bom aumento da velocidade de desenvolvimento
● Começar do simples/elegante● Padronização de arquitetura e código● Melhor comunicação em equipe● Liberdade pra criar, modificar e reutilizar● Diminuição ou isenção, dependendo do caso,
de teste nos artefatos gerados
![Page 26: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/26.jpg)
04:34:06 am
26
Trabalhos futuros●Integração com outros ambientes, como o DBDesigner e o Umbrello;
●Adicionar formatos nos dados de entrada, como XML;
– Podendo ser sincronizado com os formatos acima citados
●Separar os arquivos de mapeamento, facilitando uma configuração personalizada destes mapeamentos.
●Gerar outros tipos de interface, incluindo XML e GTK;
●Adicionar inteligência computacional, na geração das interfaces;
●Adicionar regras customizáveis via interface
●V2 Abril/Maio
![Page 27: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/27.jpg)
04:34:06 am
27
● groups.yahoo.com/group/phppaidegua● 190 membros● IV Echo PHP● ...● Primo/Irmão do Linux Pai d'égua●
● Pai d'Égua ==> Trilegal
![Page 28: ClassGenerator - Desenvolvendo aplicações em PHP com ... · “Preciso de um framework e ferramentas de produtividade, mas preciso que o software não fique defasado rapidamente](https://reader031.vdocuments.pub/reader031/viewer/2022022708/5be74bb109d3f2db738c253e/html5/thumbnails/28.jpg)
04:34:06 am
28
Perguntas?
Marcelio Leal - [email protected]
●www.marcelioleal.net/classgenerator●www.marcelioleal.net●www.serpro.gov.br●groups.yahoo.com/phppaidegua●Abstract BI - (www.abstractbi.com)
Que a força esteja com vocês...