ClassGenerator - Desenvolvendo aplicações em PHP com qualidade e eficiência. Marcelio Leal 1 Porto Alegre, Abril, 2006
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 2
Sumário Contexto Objetivos Como funciona A ferramenta O que vier por aí... 3
Contexto Desenvolvimento de Sistemas de Informação Utilização de Banco de Dados Relacionais Geração de Protótipos Geradores de Artefatos Automatização 4
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 5
PHP Temos que manter as suas qualidades Liberdade Simplicidade 6
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 7
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,...) 8
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 9 Seguindo padrões e retirando o máximo de informações contidas nos modelos
Solução/Objetivos Arquitetura Documentação Não deixar dependente da ferramenta Reutilizar o conhecimento a partir de mapeamentos 10
Class 11 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
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 12 Evolução no Padrão (Marcelio, Rafael Marlos e Abstract)
Componentes A Ferramenta Gerador de Artefatos Framework Gerador de Código O que faz 13 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 04:34:06 am
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 14
O Processo 15
Outra visão 16
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 17 Deixar livre o desenvolvedor
Os Artefatos e a Arquitetura inicial/básica 18
Operações Inserção Alteração Exclusão Seleção pela CP(PK) Seleção de toda coleção de objetos 19
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 20 Amenizar e facilitar a transição da fase de análise para o projeto OO 04:34:06 am
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. 21
Interfaces 22
Regras de Criação e Otimização Categorias Validação Tipo Elemento HTML Limita caracteres string não text sim long string não textarea sim int int text sim float não text sim date data text sim time hora text sim year int text sim especific type não text não file não file não 23
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) 24 Todas funcionalidades podem ser substituidas por outros Frameworks 04:34:06 am
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 25
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; 26 Adicionar inteligência computacional, na geração das interfaces; Adicionar regras customizáveis via interface V2 Abril/Maio 04:34:06 am
groups.yahoo.com/group/phppaidegua 190 membros IV Echo PHP... Primo/Irmão do Linux Pai d'égua Pai d'égua ==> Trilegal 27
Que a força esteja com vocês... Perguntas? Marcelio Leal - contato@marcelioleal.net 28 www.marcelioleal.net/classgenerator www.marcelioleal.net www.serpro.gov.br groups.yahoo.com/phppaidegua Abstract BI - (www.abstractbi.com) 04:34:06 am