3. O que é um gerador de Código?
• Um gerador de código visa levar para um outro nível de
abstração a função do desenvolvedor, trazendo para isto
diagramas, meta-linguagens, modelos de telas, modelo de
banco de dados entre outras abordagem
• Durante a década de 80 e 90 onde as linguagem não eram
Orientadas a Objeto para aumentar a produtividade a
única a coisa a ser feita era a geração de código
• Tomemos como exemplo: Cobol, Clipper e Basic
• Após a confecção de tais artefatos normalmente escolhe-
se a linguagem e clica-se para a geração de código
• Transferindo para o gerador a função de codificar em
linguagem intermediária, atualmente Java ou .Net
4. O que é um gerador de Código?
• Um gerador de código (FERTALJ et al.,2002; WANG et all.,
2008) é uma ferramenta de software que permite a partir
de diferentes artefatos de entrada gerar o código de uma
aplicação em uma linguagem fonte
• Apesar do código produzido esteja correto, Moreira e
Mrack (2003) citam várias característica indesejáveis:
• Funcionamento em uma via: Caso o código gerado seja
alterado pelo desenvolvedor, tais alterações são perdidas
• O padrão do código dependente da ferramenta
• Código de baixa qualidade
• Acrescentamos:
• Despreocupação total com a arquitetura
5. O fracasso dos anos 80 e 90
Os geradores fracassaram nos anos 80 e 90
seria uma opção para o século XXI?
6. Geração de código x OO
• O surgimento da Orientação Objeto permitiu a fatoração
de todo o código repetitivo
• A melhor opção não é gerar rápido um código e sim não
gerar código repetitivo desnecessário
• Os principais benefícios da orientação a objeto (OO) são
perdidos no gerador de código
• Não há Reuso de componentes e de bibliotecas
• Total acoplamento entre o gerador e o código gerado
• Falta de coesão do código produzido
• O objetivo é gerar código rápido a qualquer preço
7. O que a organização perde?
• Seguramente um dos aspectos mais preocupantes para
uma organização é o grau de dependência quando se faz a
opção por um gerado de código
• Se o produto ou a empresa deixar de existir por qualquer
que seja o motivo, tudo que foi desenvolvido nesta
tecnologia deverá ser reescrito
• Quanto custará reescrever?
• Qual o impacto no negócio da organização?
• Quem será responsabilizado por esta decisão?
• A inovação dependerá única e exclusivamente de um
único fabricante desprezando todos os benéficos do
movimento Open Source
8. O que o profissional perde?
• O profissional ao utilizar um gerador de código perde o
conhecimento da linguagem e da arquitetura
• As oportunidades de novas colocações no mercado
estarão restrita a outras empresas que usam o gerador de
código
• Defasagem tecnológica
• Encurtamento da carreira profissional, pois jamais
conseguirá ser um arquiteto
• As linhas de códigos somem e todo o conhecimento
tecnológico vão junto
• Para se usar um gerador de código qual a necessidade de
um curso superior em tecnologia?
9. O que a equipe perde?
• O desenvolvimento em equipe é um dos pontos mais
prejudicados com o uso do gerador de código
• Como garantir a integração dos projetos para equipes de 5
a 100 desenvolvedores?
• Como reusar regras de negócios feitas por outras pessoas
da equipe?
• Como evitar que as alterações feitas entre os membros não
terão impactos entre si?
• Como garantir um baseline do aplicativo em produção?
• Como garantir um branch paralelo entre manutenção do
sistema em produção de uma nova versão?
10. Não há Bala de Prata
"No Silver Bullet: essence and accidents of
software engineering"
Frederick P. Brooks
Este artigo de um dos mais respeitados
engenheiros de software defende a inexistência
de um avanço tecnológico que gere uma melhora
de ordem de magnitude na produtividade,
simplicidade e confiabilidade da construção de
software.
11. Questões importantes
• A quanto tempo existe o software?
• Quanto de material para estudo existe disponível?
• Quantas releases do produto já foram liberados?
• Qual o tipo de licença adotada pelo software?
• Quantos softwares semelhantes existem?
• Qual o grau de reuso ou de colaboração do mercado com
este produto?
• Quantos projetos de missão crítica foram desenvolvidos
com o software e estão em produção?
• É uma solução departamental ou corporativa?
14. O jCompany NÃO é um gerador de código
O jCompany faz uso de wizards para gerar
artefatos que não são Java e não possuem
orientação a objeto
tais como: JSP, XML e XHMTL
15. • Tem como premissa básica a orientação a objeto (OO) e o
foco principal em arquitetura
• O uso intensivo do OO permite a programação por exceção
ou invés da geração de código repetitivo
• Reusa os frameworks lideres em cada segmento,
conseguindo evoluir de forma colaborativa e alinhada com
as tendências mundiais
• Uso de padrão de mercado como: Gof, W3C, MVC ou MVP
• Full compliance com as especificações do Java EE
• Orientado para o reuso de componentes e regras de
negócios
• Ambiente de qualidade e testes automatizados integrados
• Segurança garantida
16. • Possibilidade de extensão para atender as mais diversas
necessidades e dispositivos
• Atualização tecnológica constante
• Total independência do fabricante
• Total independência da IDE
• Privilegia o conhecimento tecnológico dos profissionais
• Privilegia a produtividade sem abrir mão da liberdade e da
qualidade
• Forte desenvolvimento em equipe
• Governança corporativa
• Gerencia de configuração
• Modalidade Open Source
17. Aderente a todos os níveis profissionais
Iniciante
Redução da curva de aprendizado
Intermediário
Aprimoramento do nível de conhecimento
Arquiteto
Extensão da arquitetura
18. Abrange todos os níveis da organização
Garantia do investimento
Mitigação de risco
Qualidade
Padronização
Produtividade
Atualização tecnológica
19. O jCompany em números
• Um framework estável com 7 anos de mercado.
• Atualizado tecnologicamente (Up-to-Date).
• Em 7 anos, mais de 26 lançamentos de versões e releases.
• Mais de 1.500 subscrições.
• Mais de 200 clientes corporativos e órgãos públicos.
• Mais de 1.100 projetos em produção.
• Mais de 180.000 Pontos de Função desenvolvidos.
• 3.421 profissionais treinados.
• 111 profissionais certificados.
• 54.736 horas de treinamento já realizados.
• 164.208 horas de mentorias já realizadas.
20. Fique atento!
O dinheiro investido é possível recuperar
Porem o tempo perdido jamais se recupera
21. A decisão cabe a você!
Obrigado.
Justino
(31) 9313-4910
justino@powerlogic.com.br