FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
-
Upload
leandro-daniel -
Category
Technology
-
view
1.374 -
download
0
description
Transcript of FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
![Page 1: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/1.jpg)
Arquitetura (evolucionária) de Software e o Arquiteto
Leandro Daniel@leandronet
![Page 2: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/2.jpg)
Leandro Daniel
Desenvolvimento de software
Autor de artigosSQL Server
Visual Studio
Editor Técnico
.net Magazine
.NET
Arquiteto de Sistemas
ClubeDelphi
Comunidade
Business Intelligence
@leandronet
Várias certificações...
Podcaster
![Page 3: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/3.jpg)
http://voidpodcast.com
![Page 4: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/4.jpg)
Objetivos
Refletir sobre o desenvolvimento
de software
Entender a importância da
arquitetura
Apresentar uma abordagem prática de
arquitetura
![Page 5: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/5.jpg)
Refletindo sobre o desenvolvimento de software
![Page 6: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/6.jpg)
Com o que o desenvolvimento de software se parece?
![Page 7: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/7.jpg)
Engenharia... É tudo igual?
![Page 8: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/8.jpg)
“-Ficou ótima a ponte! Dá pra mudar ela de lugar?”
![Page 9: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/9.jpg)
É possível morar em um prédio inacabado?
![Page 10: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/10.jpg)
É possível construir um avião em pleno voo?
![Page 11: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/11.jpg)
![Page 12: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/12.jpg)
Complicar a execução de tarefas simples parece
besteira?
![Page 13: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/13.jpg)
Desenvolver software se parece mais com isso:
Escrever poemas. :)
by Fred Brooks–Mythical Man-Month, The: Essays on Software Engineering,
Anniversary Edition, Capítulo 1
![Page 14: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/14.jpg)
![Page 15: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/15.jpg)
![Page 16: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/16.jpg)
![Page 17: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/17.jpg)
@leandronet
Arquitetura existe, sempre! Mesmo que não seja pensada!
Mas... O que é arquitetura afinal?
![Page 18: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/18.jpg)
@leandronet
Arquitetura Implementação Design
![Page 19: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/19.jpg)
@leandronet
Arquitetura é aquela coisa que é difícil de mudar depois.
Por essa razão, deve existir o mínimo possível dessa coisa.
![Page 20: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/20.jpg)
Conjunto das decisões mais importantes
Decisões com alto custo de reversão
Componentes – Papéis – Relacionamentos
Gentilmente copiado do @elemarjr =P
![Page 21: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/21.jpg)
“organização fundamental de um sistema incorporada em
seus componentes, suas relações entre si e entre o ambiente e os princípios
guiando seu design e evolução”
IEEE
@leandronet
![Page 22: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/22.jpg)
Existe diferença?
@leandronet
![Page 23: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/23.jpg)
![Page 24: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/24.jpg)
![Page 25: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/25.jpg)
![Page 26: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/26.jpg)
Enterprise Architect
Solution Architect
Software Architect
Business Architect
Papéis do Arquiteto
SOA Architect
Data Architect
<papel aqui> Architect
![Page 27: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/27.jpg)
Preocupações relevantes durante o processo de definição de uma arquitetura
(segundo o TOGAF)
![Page 28: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/28.jpg)
<Intermission>
![Page 29: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/29.jpg)
Apresentando: Um código C#!
![Page 30: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/30.jpg)
Assembly
Classe
Método
Essa é uma abstração do código (by NDepend)
![Page 31: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/31.jpg)
![Page 32: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/32.jpg)
![Page 33: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/33.jpg)
c
![Page 34: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/34.jpg)
</Intermission>
Qual abordagem você utilizaria para construir esse software?
![Page 35: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/35.jpg)
Entendendo a importância da arquitetura de software
![Page 36: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/36.jpg)
@leandronet
Espectro do Design
Waterfallclássico
BDUF
SomeDUF
DesignEmergente
Agile
XGH
![Page 37: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/37.jpg)
Arquitetura Evolucionária e Design Emergente
@leandronet
#Simples
#Agile
#Flexível
#Foco do cliente
#Iterativa
#Adaptativa
#YAGNI
![Page 38: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/38.jpg)
"Não existe nenhum design no início. Você começa codificando uma
pequena quantidade de funcionalidades, e vai acrescentando outras gradativamente,
deixando que o design tome forma!”
Martin Fowler
@leandronet
Design Emergente
![Page 39: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/39.jpg)
Manter as coisas como estão, exige trabalho!
Sim, a entropia existe em software...
@leandronet
![Page 40: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/40.jpg)
![Page 41: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/41.jpg)
Quanto mais tempo você adiar suas decisões...
...Mais contextualizadas elas serão!
@leandronet
![Page 42: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/42.jpg)
</Lembrando>
Qual abordagem você utilizaria para construir esse software?
<Lembrando>
![Page 43: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/43.jpg)
Práxis da Arquitetura Evolucionária
![Page 44: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/44.jpg)
Complexidade Essencial
Complexidade Acidental
@leandronet
![Page 45: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/45.jpg)
“Obrigação que uma organização de software incorre quando escolhe um
design ou um tipo de construção que é prático no curto prazo mas que aumenta
a complexidade e é mais custoso no longo prazo.”
Ward Cunningham
@leandronet
Dívida Técnica
![Page 46: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/46.jpg)
Dívida técnica sempre é uma vilã?
@leandronet
Depende!
Fuuuuuuu!!!
OMG!!
![Page 47: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/47.jpg)
@leandronet
Quadrante da dívida técnica
“Nós não temos tempo para
design”
“Nós vamos lidar com as
consequências”
“O que são camadas?”
“Agora nós sabemos que
deveríamos ter feito isso”
Irresponsávele
De propósito
Irresponsávele
Sem querer
Prudentee
De propósito
Prudentee
Sem querer
![Page 48: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/48.jpg)
Métrica 1 Métrica 2 Padrão Idiomático
Identificando padrões idiomáticos
@leandronet
![Page 49: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/49.jpg)
Para fechar, algumas dicas importantes...
@leandronet
![Page 50: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/50.jpg)
É necessário tomar essa decisão agora?
@leandronet
Posso adiar essa decisão com segurança?
O que posso fazer para tornar essa decisão reversível?
![Page 51: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/51.jpg)
Toda e qualquer atividade dentro do desenvolvimento de software é importante.
@leandronet
Pense sempre em flexibilidade.
Não lute contra as “mudanças”.
![Page 52: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/52.jpg)
Tenha ciência do seu conhecimento (e da sua ignorância, se possível...)
@leandronet
“A simplicidade consiste em subtrair o óbvio e acrescentar o significativo.”(John Maeda)
Quando em dúvida, erre pela simplicidade.
![Page 53: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto](https://reader033.fdocument.pub/reader033/viewer/2022050922/5579a33bd8b42ac1148b491b/html5/thumbnails/53.jpg)
Referências
Pesquise no Google por:
• “Neal Ford” + “Evolutionary Architecture”• “Martin Fowler” + Design + Enterprise
http://reverb.leandrodaniel.com
http://voidpodcast.com