O palestrante propõe uma abordagem para desenvolvimento de software baseada em modelagem conceitual e geração de código. A abordagem separa entendimento de negócio de decisões arquitetônicas e permite que requisitos sejam testados e documentação gerada automaticamente antes da implementação. A demonstração mostra como a solução conceitual de um sistema de gerenciamento de tarefas é traduzida em código funcional em poucas horas.
2. Globalcode – Open4education
Palestrante
Formação: bacharel (2000) e mestre (2004) em Computação pela UFSC
Passado:
• OTI/IBM Canada: Eclipse (2002-2005), Jazz/Team Concert (2005-2006)
• Genologics: Desenvolvedor Senior/Arquiteto (2008-2012)
Hoje: fundador da Abstratt Technologies
• EasyAlpha: serviço de desenvolvimento de aplicações sob medida (2016-)
• Cloudfier: plataforma de desenvolvimento de aplicações de gestão (2012-)
4. Globalcode – Open4education
Aplicação exemplo:
Tarefas da equipe
O sistema gerencia uma lista de tarefas, que podem ser
atribuídas a colaboradores, que eventualmente completam as
tarefas.
6. Globalcode – Open4education
Solução Conceitual - Exemplo 1
Requisito: “Precisamos exibir as tarefas em aberto”
Solução conceitual:
• A entidade “Tarefa” tem ao menos dois estados: “Em Aberto” e
“Concluída”
• “Tarefa” tem uma ação para que o colaborador possa marcar
a tarefa como concluída
• “Tarefa” tem uma consulta que mostra todas as tarefas com
estado “Em Aberto”
7. Globalcode – Open4education
Solução Conceitual - Exemplo 2
Requisito: “Um colaborador poderá repassar uma tarefa em
aberto para outro”
Solução conceitual:
• A entidade “Tarefa” tem uma ação “Repassar” que espera um
colaborador como parâmetro
• Pré-condição: o estado atual da tarefa deve ser “Em Aberto”
• Restrição: o candidato a novo responsável precisa ser
diferente do responsável atual
8. Globalcode – Open4education
Arquitetura só existe
na forma de um
documento ou de
exemplos de código
existente
Solução conceitual
só existe na cabeça
dos programadores
Soluções conceituais se materializam apenas
via implementação (tradicionalmente)
9. Globalcode – Open4education
1. Aceitar que entendimento do negócio e decisões arquiteturais
são coisas totalmente separadas (e que negócio > tecnologia)
2. Materializar a solução conceitual, usando uma linguagem
com nível de abstração mais alto, independente de tecnologia
3. Codificar decisões arquiteturais em um gerador
4. Produzir a implementação automaticamente
Elementos da abordagem proposta
13. Globalcode – Open4education
Demonstração da Abordagem
Linguagem de modelagem conceitual (p/ programadores)
Protótipo automático a partir da solução conceitual
Requisitos como testes no nível conceitual
Documentação via tradução automática
Geração da solução final via tradução automática
21. Globalcode – Open4education
Metas (I)
• Que o desenvolvedor deverá saber tanto do negócio quanto
analistas de negócios
• Que novos desenvolvedores assimilarão o conhecimento
sobre o sistema rapidamente
• Que uma base de conhecimento do sistema acessível a
stakeholders não técnicos estará sempre disponível atualizada
22. Globalcode – Open4education
• Que uma funcionalidade nova será testável menos de uma
hora depois que o requisito foi identificado
• Que o analista de negócios terá visibilidade contínua sobre
estágio atual de desenvolvimento do sistema:
• Sem ter que esperar um deploy
• Sem ter que fazer engenharia reversa
• Que o cumprimento dos requisitos de negócios será
preservado através de testes automatizados
Metas (II)
23. Globalcode – Open4education
Metas (III)
• Que o código da aplicação vai ser consistente, e ter boa
qualidade
• Que a arquitetura vai poder ser mantida atualizada sem
comprometer a entrega de valor do negócio
• Que será possível mudar para outra plataforma sem ter que
recriar o sistema do zero