tdc sp 2016 - dos requisitos à implantação em uma palestra
TRANSCRIPT
Globalcode – Open4education
Dos requisitos à implantação em uma palestra
Rafael Chaves - [email protected]
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
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 - 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
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
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 - [email protected]