SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
ARQUITETURA E DESIGN DE
SOFTWARE
POR VITOR CASTRO
“PESSOAS DE TODO MUNDO ESTÃO
CONSTANTEMENTE CRIANDO APLICAÇÕES WEB
USANDO .NET, JAVA E PHP. NENHUMA DELAS
ESTÁ FALHANDO POR CAUSA DA TECNOLOGIA”
–Joel Spolsky
PAPEL DO
ARQUITETO ?
PAPEL DO ARQUITETO DE SOFTWARE
▸ Identificar as interfaces entre os componentes.
▸ Direcionando a equipe de desenvolvimento
▸ “Guia … experiente e capacitado que ensina aos outros se
virar melhor - Martin Fowler”
▸ Ter a visão do Design e da implementação
DESIGN
IMPLEMENTAÇÃO
} ARQUITETURA
DECISÕES Interfaces de comunicação
Linguagem de Programação
Frameworks e Biblioteca
Componentes
Abstrações
“Entendimento das relações e os impactos”
Ferramentas
….
….
….
IDENTIFICANDO OS
ELEMENTOS DE UM SISTEMA
DESAFIO #1
PROJETO DE UM E-COMMERCE
? ? ?
? ?
TRADE-OFF
ORIENTAÇÃO A OBJETOS
IMPLEMENTAÇÃO
TEXT
DICAS
▸ Programe voltado à Interface, não à implementação !!!
▸ Evite herança, favoreça composição
▸ Considere Domain-Driven-Design
DICAS++
ACOPLAMENTO
Dependência entre os objetos
COESÃO
Responsabilidade única
CAMADAS DO DDD …
USER INTERFACE
APPLICATION
DOMAIN
INFRASTRUCTURE
PROGRAMAÇÃO VOLTADA À
INTERFACE
DESAFIO #2
PROJETAR A INTERFACE PARA ENVIO
DA NOTA FISCAL NO E-COMMERCE
SEFA
E-COMMERCE
DADOS: Nome da Empresa,
CNPJ, Nome do Cliente, CPF,
Descrição da Compra, Valor
da Compra, Data da Compra
QUAL A INTERFACE SERIA
OFERECIDO PARA ENVIAR OS
DADOS DA NOTA FISCAL PELA
SEFA ?
COMO O E-COMMERCE DEVE
USAR ESSA INTERFACE ?
TRADE-OFF
CRIAR OU USAR ?
CRIAR OU USAR ?
▸ Considere o uso de alguma estratégia de injeção de
dependência
▸ Controla o ciclo de vida e as outras dependências.
▸ Ex:
▸ JAVA: CDI, Spring …
QUEREMOS SEMPRE USAR
DICAS++
▸ Domine seu ferramenta de mapeamento objeto relacional
▸ Faça uso de cache sempre que puder
▸ Se a operação puder ser assíncrona faça.
EVOLUINDO O CENÁRIO
DESAFIO #3
PROJETO DE UM NOVO BANCO
BANCO 100% ON-LINE
CARTÃO DE CRÉDITO
CLIENTES
WEB
MOBILE
Transações
Ebanking
Clientes precisam ter acesso à relatórios na web
No celular precisam de agilidade para consultar
as informações
QUE DECISÕES DA ARQUITETURA PRECISAM SER TOMADAS ?
TRADE-OFF
PRÓXIMOS CAPÍTULOS …
▸ Teste de Software
▸ Práticas de programação e uso de design patterns
▸ Comunicação de aplicações (WebServices)
▸ JVM
RECOMENDO A LEITURA DO LIVRO:
INTRODUÇÃO À ARQUITETURA E
DESIGN DE SOFTWARE
Vitor Castro

Mais conteúdo relacionado

Semelhante a Arquitetura e design de software

Asugday - Rio de Janeiro 2015 - O futuro do software corporativo
Asugday - Rio de Janeiro 2015 - O futuro do software corporativoAsugday - Rio de Janeiro 2015 - O futuro do software corporativo
Asugday - Rio de Janeiro 2015 - O futuro do software corporativoFluig
 
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015Fluig
 
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)Santhyago Gallao
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
Prototipagem Em Papel
Prototipagem Em PapelPrototipagem Em Papel
Prototipagem Em Papelelliando dias
 
Folha de Produto - BeAnywhere Insight
Folha de Produto - BeAnywhere InsightFolha de Produto - BeAnywhere Insight
Folha de Produto - BeAnywhere InsightBeAnywhere
 
Workshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersWorkshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersNeue Labs
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosJeison Barros
 
Arquitetura da Informacao na WEB
Arquitetura da Informacao na WEBArquitetura da Informacao na WEB
Arquitetura da Informacao na WEBFábio Flatschart
 
Design UX - Quanto isso influencia seu projeto - Guilherme Sester Araujo
Design UX - Quanto isso influencia seu projeto - Guilherme Sester AraujoDesign UX - Quanto isso influencia seu projeto - Guilherme Sester Araujo
Design UX - Quanto isso influencia seu projeto - Guilherme Sester AraujoiMasters
 
Ux para agencias de publicidade
Ux para agencias de publicidade Ux para agencias de publicidade
Ux para agencias de publicidade Danilo Sousa
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções Edgar Silva
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações phpEduardo Cesar
 
Sistemas ERP - Implantação e tendências de mercado
Sistemas ERP - Implantação e tendências de mercadoSistemas ERP - Implantação e tendências de mercado
Sistemas ERP - Implantação e tendências de mercadorobisson_oliveira
 
Arquitetando sistemas PHP
Arquitetando sistemas PHPArquitetando sistemas PHP
Arquitetando sistemas PHPEduardo Cesar
 
Retorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeRetorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeBernardo Mattos
 

Semelhante a Arquitetura e design de software (20)

Asugday - Rio de Janeiro 2015 - O futuro do software corporativo
Asugday - Rio de Janeiro 2015 - O futuro do software corporativoAsugday - Rio de Janeiro 2015 - O futuro do software corporativo
Asugday - Rio de Janeiro 2015 - O futuro do software corporativo
 
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015
Futuro do software corporativo padrão - 18ª conferência anual ASUG 2015
 
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
Android: História, Mercado e Possibilidades (FLISOL - Indaiatuba - 2011)
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
Intranet no Mundo Corporativo - Usando a tecnologia na redução de distâncias ...
Intranet no Mundo Corporativo - Usando a tecnologia na redução de distâncias ...Intranet no Mundo Corporativo - Usando a tecnologia na redução de distâncias ...
Intranet no Mundo Corporativo - Usando a tecnologia na redução de distâncias ...
 
Prototipagem Em Papel
Prototipagem Em PapelPrototipagem Em Papel
Prototipagem Em Papel
 
Folha de Produto - BeAnywhere Insight
Folha de Produto - BeAnywhere InsightFolha de Produto - BeAnywhere Insight
Folha de Produto - BeAnywhere Insight
 
Workshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholdersWorkshop: Ouvindo usuários e stakeholders
Workshop: Ouvindo usuários e stakeholders
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
 
Arquitetura da Informacao na WEB
Arquitetura da Informacao na WEBArquitetura da Informacao na WEB
Arquitetura da Informacao na WEB
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Design UX - Quanto isso influencia seu projeto - Guilherme Sester Araujo
Design UX - Quanto isso influencia seu projeto - Guilherme Sester AraujoDesign UX - Quanto isso influencia seu projeto - Guilherme Sester Araujo
Design UX - Quanto isso influencia seu projeto - Guilherme Sester Araujo
 
Ux para agencias de publicidade
Ux para agencias de publicidade Ux para agencias de publicidade
Ux para agencias de publicidade
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
 
Agile lightining talk
Agile lightining talkAgile lightining talk
Agile lightining talk
 
O retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuárioO retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuário
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações php
 
Sistemas ERP - Implantação e tendências de mercado
Sistemas ERP - Implantação e tendências de mercadoSistemas ERP - Implantação e tendências de mercado
Sistemas ERP - Implantação e tendências de mercado
 
Arquitetando sistemas PHP
Arquitetando sistemas PHPArquitetando sistemas PHP
Arquitetando sistemas PHP
 
Retorno do Investimento em Usabilidade
Retorno do Investimento em UsabilidadeRetorno do Investimento em Usabilidade
Retorno do Investimento em Usabilidade
 

Mais de Vitor Castro

Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Vitor Castro
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaVitor Castro
 
Produtividade máxima
Produtividade máximaProdutividade máxima
Produtividade máximaVitor Castro
 
Refatoração na prática
Refatoração na práticaRefatoração na prática
Refatoração na práticaVitor Castro
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Um pouco sobre agilidade
Um pouco sobre agilidadeUm pouco sobre agilidade
Um pouco sobre agilidadeVitor Castro
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingVitor Castro
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?Vitor Castro
 
Otimizando scrum com kanban
Otimizando scrum com kanbanOtimizando scrum com kanban
Otimizando scrum com kanbanVitor Castro
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011Vitor Castro
 

Mais de Vitor Castro (16)

Agilidade na Veia
Agilidade na VeiaAgilidade na Veia
Agilidade na Veia
 
Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - Unifesspa
 
Lider integral
Lider integralLider integral
Lider integral
 
Gamificar
GamificarGamificar
Gamificar
 
Produtividade máxima
Produtividade máximaProdutividade máxima
Produtividade máxima
 
Refatoração na prática
Refatoração na práticaRefatoração na prática
Refatoração na prática
 
Poder do hábito
Poder do hábitoPoder do hábito
Poder do hábito
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Um pouco sobre agilidade
Um pouco sobre agilidadeUm pouco sobre agilidade
Um pouco sobre agilidade
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Debito tecnico
Debito tecnicoDebito tecnico
Debito tecnico
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?
 
Otimizando scrum com kanban
Otimizando scrum com kanbanOtimizando scrum com kanban
Otimizando scrum com kanban
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 

Arquitetura e design de software