Globalcode – Open4education
Dos requisitos à implantação em uma
palestra
Rafael Chaves - rafael@abstratt.com
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-)
Globalcode – Open4education
Estrutura
Background
Abordagem
Demonstração
Metas
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.
Globalcode – Open4education
Solução Conceitual?
Background
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”
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
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)
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
Globalcode – Open4education
Aplicando a arquitetura automaticamente
Globalcode – Open4education
Implementação (tradicionalmente)
Globalcode – Open4education
Implementação: via solução conceitual e gerador
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
Globalcode – Open4education
Linguagem p/ modelagem
conceitual
• Classes, atributos, operações
• Comportamento imperativo
• Eventos, comunicação por mensagens
• Relacionamentos
• Atributos derivados
• Restrições: pré-condições, invariantes
• Máquinas de estado
Globalcode – Open4education
Protótipo automático a partir do modelo
conceitual
Globalcode – Open4education
Requisitos como testes no nível conceitual
Globalcode – Open4education
Documentação via tradução
automática
Globalcode – Open4education
Geração da solução final via tradução
automática
Globalcode – Open4education
Tamanho da solução conceitual vs.
implementada (Tarefas)
Globalcode – Open4education
Cloudfier TextUML vs. Java implementation
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
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)
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
Globalcode – Open4education
Metas (IV)
• Que uma aplicação completa possa ser criada em horas ou
dias ao invés de semanas ou meses
Globalcode – Open4education
Referências
• Livros:
• “Executable UML” - Balcer/Mellor
• “Model-based Development” - Lahman
• “Domain-Specific Modeling” - Kelly/Tolvanen
• Especificações:
• fUML e Alf - Object Management Group
• Ferramentas
• Cloudfier e TextUML - abstratt.com | cloudfier.com
• Papyrus - Eclipse.org
Globalcode – Open4education
Dos requisitos à implantação em uma
palestra
Rafael Chaves - rafael@abstratt.com

TDC SP 2016 - Dos requisitos à implantação em uma palestra

  • 1.
    Globalcode – Open4education Dosrequisitos à implantação em uma palestra Rafael Chaves - rafael@abstratt.com
  • 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-)
  • 3.
  • 4.
    Globalcode – Open4education Aplicaçãoexemplo: Tarefas da equipe O sistema gerencia uma lista de tarefas, que podem ser atribuídas a colaboradores, que eventualmente completam as tarefas.
  • 5.
  • 6.
    Globalcode – Open4education SoluçãoConceitual - 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çãoConceitual - 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 Arquiteturasó 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
  • 10.
    Globalcode – Open4education Aplicandoa arquitetura automaticamente
  • 11.
  • 12.
    Globalcode – Open4education Implementação:via solução conceitual e gerador
  • 13.
    Globalcode – Open4education Demonstraçãoda 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
  • 14.
    Globalcode – Open4education Linguagemp/ modelagem conceitual • Classes, atributos, operações • Comportamento imperativo • Eventos, comunicação por mensagens • Relacionamentos • Atributos derivados • Restrições: pré-condições, invariantes • Máquinas de estado
  • 15.
    Globalcode – Open4education Protótipoautomático a partir do modelo conceitual
  • 16.
    Globalcode – Open4education Requisitoscomo testes no nível conceitual
  • 17.
  • 18.
    Globalcode – Open4education Geraçãoda solução final via tradução automática
  • 19.
    Globalcode – Open4education Tamanhoda solução conceitual vs. implementada (Tarefas)
  • 20.
    Globalcode – Open4education CloudfierTextUML vs. Java implementation
  • 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
  • 24.
    Globalcode – Open4education Metas(IV) • Que uma aplicação completa possa ser criada em horas ou dias ao invés de semanas ou meses
  • 25.
    Globalcode – Open4education Referências •Livros: • “Executable UML” - Balcer/Mellor • “Model-based Development” - Lahman • “Domain-Specific Modeling” - Kelly/Tolvanen • Especificações: • fUML e Alf - Object Management Group • Ferramentas • Cloudfier e TextUML - abstratt.com | cloudfier.com • Papyrus - Eclipse.org
  • 26.
    Globalcode – Open4education Dosrequisitos à implantação em uma palestra Rafael Chaves - rafael@abstratt.com