SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Arquitetura evolutiva
por @DenisFerrari
Meta da apresentação
• Através de conceitos, teorias e histórias
mostrar o que é importante em cada fase de
um projeto.
Conceitos
O que é programação?
A programação é como uma redação.
A programação, assim como a redação...
• Pede por macro-decisões;
• É definida nas micro-decisões;
• Depende de valiação externa;
• Novas implementações necessitam da
avaliação do todo;
• É um processo criativo…
(O TDD é fod* legal pois auxilia as micro-decisões)
O que é arquitetura de software?
A arquitetura
de um projeto de software é como
a infraestrutura de uma cidade.
A arquitetura...
• Conjunto de macro-decisões;
• Conjunto de convenções;
• Códigos de base (requisitos não funcionais);
• “Define” como as coisas devem ser feitas;
• Pode facilitar ou atrapalhar novas
implementações;
• É difícil de mudar;
Existe software sem arquitetura?
A figura do arquiteto é essencial?
(O arquiteto deve estar próximo do time de
desenvolvimento, assim como o prefeito
deveria usar apenas serviços públicos)
Quando a arquitetura de um projeto
deve ser definida?
Qual o tamanho ideal de um
time de desenvolvimento?
Dois programadores, um designer.
(A qualidade dos integrantes de um time é mais
importante do que a quantidade de pessoas)
(Um projeto de software é como uma criança,
seu comportamento final dependerá das
influências que ele recebeu dos adultos que
estavam perto durante seu crescimento)
(O livro de DDD não é a bíblia e saber
arquitetura não faz de você um cara mais legal)
(A interface com o usuário
antes da programação)
(A utilização do código
antes de sua construção)
(Analisar o comportamento do usuário
antes de construir o que você acha importante)
CONCEPÇÃO DO PRODUTO
Primeira fase
Funcionalidades
• Base de conhecimento;
• Gerenciador de avisos;
• Interface de auto-atendimento;
• Busca com relevância*;
Tecnologias
Uma tecnologia deve estar
alinhada com os conceitos do seu projeto e
não deve definir como você irá trabalhar.
(Cuidado com a política nas decisões).
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
A arquitetura deve
atender ao momento do projeto e
possibilitar a sua evolução.
ESTATÍSTICAS E IMPORTAÇÃO
Segunda fase
Funcionalidades
• Ferramenta de importação;
• Informações estatísticas sobre a base de
conhecimento;
• Interação do usuário com a base de
conhecimento;
(Migração de dados é uma coisa chata)
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
MULTICLIENTES
Terceira fase
Funcionalidades
• Multi-Tenant;
• Separar necessidades de domínio das
necessidades de leitura;
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
DOMÍNIO RELATÓRIOS
PROCESSOS LEITURATENNANTS
INTEGRAÇÃO ENTRE SISTEMAS
Quarta fase
Funcionalidades
• Providenciar uma interface de integração
entre sistemas de Service Desk;
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
PROCESSOS LEITURATENANTS
RELATÓRIOS INTEGRAÇÕESDOMÍNIO
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
PROCESSOS LEITURATENANTS
RELATÓRIOS INTEGRAÇÕESDOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
DOMÍNIO RELATÓRIOS
PROCESSOS LEITURATENNANTS
PERSISTÊNCIA
DOMÍNIO
AUTO-ATENDIMENTO ADMINISTRAÇÃO
APLICAÇÃO
INFRAESTRUTURA
CONSIDERAÇÕES FINAIS
Conclusão
Obrigado!

Weitere ähnliche Inhalte

Ähnlich wie DevInCachu 2013: Arquitetura evolutiva

Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareAleatório .
 
Arquitetura de Software 101
Arquitetura de Software 101Arquitetura de Software 101
Arquitetura de Software 101Leandro Silva
 
Aula Teste Fatec Engenharia de Software III
Aula Teste  Fatec Engenharia de Software IIIAula Teste  Fatec Engenharia de Software III
Aula Teste Fatec Engenharia de Software IIIDalton Martins
 
O Arquiteto da Informacao
O Arquiteto da Informacao O Arquiteto da Informacao
O Arquiteto da Informacao Carlos Franco
 
Arquitetura da informação slides
Arquitetura da informação   slidesArquitetura da informação   slides
Arquitetura da informação slidesAllan Barros
 
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaTDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaLeandro Daniel
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareLeonardo Zanivan
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis Agile Trends
 
Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e ProjetoSergio Silva
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoLeandro Daniel
 
TDC 2012 - Fishbowl conversation sobre Arquitetura
TDC 2012 - Fishbowl conversation sobre ArquiteturaTDC 2012 - Fishbowl conversation sobre Arquitetura
TDC 2012 - Fishbowl conversation sobre ArquiteturaLeandro Daniel
 
Interação Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
Interação Humano Computador Plataforma Mobile - Wellington Pinto de OliveiraInteração Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
Interação Humano Computador Plataforma Mobile - Wellington Pinto de OliveiraWellington Oliveira
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaCleiton Felipe Moraes
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Certificações em Arquitetura de TI
Certificações em Arquitetura de TICertificações em Arquitetura de TI
Certificações em Arquitetura de TIMarcelo Sávio
 
Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Adriano Tavares
 

Ähnlich wie DevInCachu 2013: Arquitetura evolutiva (20)

Apresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de softwareApresentação bichinhos da TI: o que é esse arquiteto de software
Apresentação bichinhos da TI: o que é esse arquiteto de software
 
Arquitetura de Software 101
Arquitetura de Software 101Arquitetura de Software 101
Arquitetura de Software 101
 
Aula Teste Fatec Engenharia de Software III
Aula Teste  Fatec Engenharia de Software IIIAula Teste  Fatec Engenharia de Software III
Aula Teste Fatec Engenharia de Software III
 
O Arquiteto da Informacao
O Arquiteto da Informacao O Arquiteto da Informacao
O Arquiteto da Informacao
 
Arquitetura da informação slides
Arquitetura da informação   slidesArquitetura da informação   slides
Arquitetura da informação slides
 
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura EvolucionáriaTDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de software
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis
 
ES - 02
ES - 02ES - 02
ES - 02
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e Projeto
 
Aula 1 analise e projeto
Aula 1   analise e projetoAula 1   analise e projeto
Aula 1 analise e projeto
 
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquitetoFIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
 
TDC 2012 - Fishbowl conversation sobre Arquitetura
TDC 2012 - Fishbowl conversation sobre ArquiteturaTDC 2012 - Fishbowl conversation sobre Arquitetura
TDC 2012 - Fishbowl conversation sobre Arquitetura
 
Interação Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
Interação Humano Computador Plataforma Mobile - Wellington Pinto de OliveiraInteração Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
Interação Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Certificações em Arquitetura de TI
Certificações em Arquitetura de TICertificações em Arquitetura de TI
Certificações em Arquitetura de TI
 
Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez!
 
Negócio Fechado. E agora?
Negócio Fechado. E agora?Negócio Fechado. E agora?
Negócio Fechado. E agora?
 

Mehr von Denis Ferrari

Empreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesEmpreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesDenis Ferrari
 
10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempoDenis Ferrari
 
UCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETUCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETDenis Ferrari
 
Desenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDesenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDenis Ferrari
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwareDenis Ferrari
 
Desenvolvimento orientado a Testes
Desenvolvimento orientado a TestesDesenvolvimento orientado a Testes
Desenvolvimento orientado a TestesDenis Ferrari
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding DojoDenis Ferrari
 

Mehr von Denis Ferrari (9)

Empreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoquesEmpreendedorismo - Ao vivo e sem retoques
Empreendedorismo - Ao vivo e sem retoques
 
10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo10 coisas que aprendi com o tempo
10 coisas que aprendi com o tempo
 
UCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NETUCL Innovation Party - Framework .NET
UCL Innovation Party - Framework .NET
 
Desenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e CarreiraDesenvolvimento de software - Mercado e Carreira
Desenvolvimento de software - Mercado e Carreira
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de software
 
Desenvolvimento orientado a Testes
Desenvolvimento orientado a TestesDesenvolvimento orientado a Testes
Desenvolvimento orientado a Testes
 
Apresentação sobre Coding Dojo
Apresentação sobre Coding DojoApresentação sobre Coding Dojo
Apresentação sobre Coding Dojo
 
AOP
AOPAOP
AOP
 
TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 

Kürzlich hochgeladen

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

DevInCachu 2013: Arquitetura evolutiva