26
Globalcode – Open4education Dos requisitos à implantação em uma palestra Rafael Chaves - [email protected]

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

Embed Size (px)

Citation preview

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

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 - [email protected]