SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareLetticia Nicoli
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...Tchelinux
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Paulo Cesar Ortins Brito
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0tdc-globalcode
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileLucas Carvalho
 
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...Vinicius Campos Silva
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Caliel Costa
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEAlexsander Camargo
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Vinta Software
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Jaqueline Ramos
 

La actualidad más candente (20)

Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live Share
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...
O Software Livre e o Mercado de Trabalho: Certificações Profissionais - Vande...
 
Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#Utilizando a API do Roslyn, o novo compilador do C#
Utilizando a API do Roslyn, o novo compilador do C#
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
 
Boas práticas de desenvolvimento Ágil
Boas práticas de desenvolvimento ÁgilBoas práticas de desenvolvimento Ágil
Boas práticas de desenvolvimento Ágil
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
Do regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobileDo regresso ao progresso: automação de testes em aplicativos mobile
Do regresso ao progresso: automação de testes em aplicativos mobile
 
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...
[TDCPOA2018] Desmistificando a eXtreme Programming para desenvolvedores "não ...
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
 
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADEREFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
REFATORAÇÃO DE CÓDIGO LEGADO: DETALHAMENTO DE UMA ESTRUTURA DE MANUTENIBILIDADE
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
 

Destacado

Modernização de Sistemas de Gestão
Modernização de Sistemas de GestãoModernização de Sistemas de Gestão
Modernização de Sistemas de GestãoRafael Chaves
 
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
TDC Floripa 2015  Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...TDC Floripa 2015  Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...Rafael Chaves
 
Cloudfier business pitch deck
Cloudfier business pitch deckCloudfier business pitch deck
Cloudfier business pitch deckRafael Chaves
 
Refatorando o software corporativo
Refatorando o software corporativoRefatorando o software corporativo
Refatorando o software corporativoRafael Chaves
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoRafael Chaves
 
11 Dogmas of model driven development
11 Dogmas of model driven development11 Dogmas of model driven development
11 Dogmas of model driven developmentRafael Chaves
 
AlphaSimple product pitch
AlphaSimple product pitchAlphaSimple product pitch
AlphaSimple product pitchRafael Chaves
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML ModelsRafael Chaves
 
Model Driven Prototyping
Model Driven PrototypingModel Driven Prototyping
Model Driven PrototypingRafael Chaves
 

Destacado (11)

Modernização de Sistemas de Gestão
Modernização de Sistemas de GestãoModernização de Sistemas de Gestão
Modernização de Sistemas de Gestão
 
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
TDC Floripa 2015  Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...TDC Floripa 2015  Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
 
Cloudfier business pitch deck
Cloudfier business pitch deckCloudfier business pitch deck
Cloudfier business pitch deck
 
Refatorando o software corporativo
Refatorando o software corporativoRefatorando o software corporativo
Refatorando o software corporativo
 
Code generation
Code generationCode generation
Code generation
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestão
 
11 Dogmas of model driven development
11 Dogmas of model driven development11 Dogmas of model driven development
11 Dogmas of model driven development
 
AlphaSimple product pitch
AlphaSimple product pitchAlphaSimple product pitch
AlphaSimple product pitch
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML Models
 
TextUML Toolkit
TextUML ToolkitTextUML Toolkit
TextUML Toolkit
 
Model Driven Prototyping
Model Driven PrototypingModel Driven Prototyping
Model Driven Prototyping
 

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

Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...tdc-globalcode
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
 
Sucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSérgio Giraldo
 
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escala
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escalaTDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escala
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escalaIvan Ferraz
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
Arquitetura de software em times ágeis
Arquitetura de software em times ágeisArquitetura de software em times ágeis
Arquitetura de software em times ágeisSérgio Giraldo
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software RupFelipe
 
Engenharia software rup
Engenharia software   rupEngenharia software   rup
Engenharia software rupFelipe
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoThiago Freitas
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesHiury Araújo
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 

Similar a TDC SP 2016 - Dos requisitos à implantação em uma palestra (20)

Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...
TDC2018SP | Trilha Arquitetura Corporativa - Arquitetura Agil. Habilitando ar...
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Sucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura AgileSucesso e derrota na Arquitetura Agile
Sucesso e derrota na Arquitetura Agile
 
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escala
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escalaTDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escala
TDC2018-SP Arquitetura Ágil. Habilitando arquitetura evolucionária em escala
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
Arquitetura de software em times ágeis
Arquitetura de software em times ágeisArquitetura de software em times ágeis
Arquitetura de software em times ágeis
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software Rup
 
Engenharia software rup
Engenharia software   rupEngenharia software   rup
Engenharia software rup
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 

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

  • 1. Globalcode – Open4education Dos requisitos à 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-)
  • 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
  • 10. Globalcode – Open4education Aplicando a arquitetura automaticamente
  • 12. Globalcode – Open4education Implementação: via solução conceitual e gerador
  • 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
  • 14. 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
  • 15. Globalcode – Open4education Protótipo automático a partir do modelo conceitual
  • 16. Globalcode – Open4education Requisitos como testes no nível conceitual
  • 17. Globalcode – Open4education Documentação via tradução automática
  • 18. Globalcode – Open4education Geração da solução final via tradução automática
  • 19. Globalcode – Open4education Tamanho da solução conceitual vs. implementada (Tarefas)
  • 20. Globalcode – Open4education Cloudfier TextUML 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 Dos requisitos à implantação em uma palestra Rafael Chaves - rafael@abstratt.com