Buscar

345820690 Arquiteturas Ageis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

/ 8 
capa_
Sabendo que os aspectos arquiteturais são fato-
res que podem afetar todo um software em desen-
volvimento, e não somente uma funcionalidade. 
 !"#$%!&'()#!)*#+!),-()#)#%!./!)%()"0+!%!')%()%(&
senvolvimento de software incrementais e ágeis está 
1#%#)2(3)"#4')(")#5+#6)7(")8('-5+#%!)(")-"#)98(!&
1-9#./!:)!-)4$+(8(''(:)1#%#)2(3)"#4!8)(")1!"!)8(#&
543#8)%(14';(')#8,-4+(+-8#4')%()"#$(48#)4$18("($+#5)
'("),-()(5#')#*(+(")+!%!)!)'!*+<#8()98!%-34%!)#+0)
o momento. 
=() *#+!:) '() $/!) ($1!$+8#8"!')"#$(48#') %() 4$&
18("($+#8)()(2!5-48)#)#8,-4+(+-8#)%()*!8"#)>)(?@2(5:)
segura e controlada, nada adiantará entregar por-
.;(')%()'!*+<#8(')8A94%!':)9!4')(")#5B-")"!"($+!:)
necessidades funcionais ou não-funcionais poderão 
surgir e a arquitetura atual não suportará ser altera-
da sem por em risco tudo que já foi desenvolvido. Ou 
seja, uma falha na arquitetura tornou-se agora uma 
falha de planejamento e entrega do projeto.
C50")%4''!:)%-8#$+()"-4+!)+("9!)24("!')8(15#&
mando do problema em métodos tradicionais de se 
('9(14D)1#8)*-$14!$#5"($+()+!%!)!)'!*+<#8()#$+(')%()
desenvolvê-lo, gerando uma paralisia da análise, e 
8('-5+#$%!)"-4+#')2(3(')(")#+8#'!')%!')98!E(+!')%()
desenvolvimento de software.
F$+8(+#$+!:) %(9!4') %() 2A84!') ('*!8.!') () +01$4&
cas para sanar essa paralisia da análise, o problema 
#B!8#)0)!-+8!G)#)H#8#54'4#)C8,-4+(+-8#56)I)98!J5("#)
Veja como adotar, modelar e documentar a 
arquitetura, de maneira ágil, em seu processo de 
desenvolvimento de software.
l
Arquitetura 
ági
Adotando
em seu processo de 
desenvolvimento de software
$/!) 0) "#4') #9($#') #') 2#84#.;(') %() ('1!9!) %() -")
projeto, mas sim se a arquitetura para atender a 
984"(48#)($+8(B#)'(8A)'-D)14($+("($+()>)(?@2(5)9#8#)
atender eventuais necessidades na décima entrega, 
por exemplo, sem gerar grandes retrabalhos ou até 
"('"!)8(*#3(8)+!%!)!)'!*+<#8(6)K!")4'+!:)#')9(''!#')
8('9!$'A2(4')9(5#)#8,-4+(+-8#)%!)98!E(+!)D)1#")1#%#)
2(3)"#4')4$'(B-8#')'()!),-()(5#')98!E(+#8#")EA)('+A)
apto para o desenvolvimento da primeira entrega.
=4#$+() %4'+!:) '() !)"0+!%!) %() %('($2!524"($+!)
%()'!*+<#8()0)AB45:)9!8),-()#)#+424%#%()%()%(D)$4./!)%#)
arquitetura deverá ser feita toda no início do projeto, 
()$/!)%()*!8"#)4$18("($+#5L)
F'+() #8+4B!) *#3) -"#) J8(2() 4$+8!%-./!) '!J8() #)
C8,-4+(+-8#)MB45)()'-#')4$>)-N$14#'6)O!B!)#9P')'(8/!)
apresentadas práticas de como aplicar a arquitetura 
ágil em processo de desenvolvimento de software, 
qual é o papel do arquiteto ágil, modelagem e docu-
"($+#./!)AB456
 !"#$%"&'$()*!"+*" ,-&)./.&,*"01)2
Em métodos tradicionais, as atividades relacio-
$#%#')Q)#8,-4+(+-8#)B#'+#")-")+("9!)'4B$4D)1#+42!)
$!)4$@14!)%!)98!E(+!)9#8#)#)%(D)$4./!)%#)24'/!)#8,-4&
+(+-8#5:)#9($#')%!)9!$+!)%()24'+#)+01$41!6)F:)-"#)2(3)
que esta visão tenha sido estabelecida, as equipes 
+($%(")#)8('4'+48)Q')"-%#$.#')#8,-4+(+-8#4')%-8#$+()
+!%!)!)1415!)%()24%#)%!)98!E(+!:)"-4+#')2(3(':)9!8)$/!)
9 \
As práticas de arquiteturas ágeis visam permitir a evolução do sof-
tware de forma objetiva, rápida, controlada e colaborativa para ga-
rantir a entrega de softwares que atendam as variações de negócios 
 !"!#$%&#'!()#*+%,-%./%)0#1)/%#!+/(23#$()!#!4+%)%./!+#3)# 3. %(/3)5#
(.6#-7. (!)5#!/($("!"%)#%#%)/+!/82(!#4!+!#!"39:35#'3"%;!2%'#%#"3<
cumentação de arquiteturas ágeis.
3,/$4"3*,,4!"5"6,/$46*,,4!718*)29(48"5"76,/$446*,,4!
Líder do Escritório de Arquitetura e Métodos Ágeis e do Centro de Excelência SOA da Stefanini IT Solutions. Além disso, 
!/-!#.!#%$!.2%;(&!9:3#%#"%)%.$3;$('%./3#"%#4+=/( !)#=2%()#%#>%!.#.3)#4+3 %))3)#"%#"%)%.$3;$('%./3#"%#.3$3)#4+3"-/3)#
para start-ups de tecnologia.
,-()%43G)R2A84#')1#J(.#')9($'#")"(5S!8),-()-"#TU6)
I-) '(E#:) #) #8,-4+(+-8#) AB45) *!1#) (")%#8)C-+!$!"4#)
9#8#)#)F,-49()9#8+4149#8)%#')%(14';(')#8,-4+(+-8#4':)
1!"!)*!8"#)%()"(5S!8#8)$/!)'P)#')'!5-.;(')+01$41#':)
"#')+#"J0")#)1!"-$41#./!)()C"954D)1#8)!)C98($%4&
3#%!:)24'#$%!)1!")4'+!)F$+8(B#')"#4')VA94%#')()-"#)
K!$'+8-./!)1!")"#4!8)W$+(B84%#%(:)9#8#)B(8#8)2#5!8)
aos clientes.
Sendo assim, a arquitetura ágil é uma técnica, 
ou conjunto de práticas, que uma equipe de desen-
volvimento usa para criar um sistema de software. 
F5#)($2!52()#)+!"#%#)%()%(14';(')'P54%#')()!9!8+-&
nas em todo o ciclo de desenvolvimento de software. 
F")#5B-$')1#'!':)4''!)'4B$4D)1#)#%"4+48),-()-")(88!)
#8,-4+(+-8#5)!1!88(-)(),-()#)(,-49()98(14'#)"!%4D)1#8)
a arquitetura. 
Adotando uma Arquitetura Ágil de um 
Processo de Desenvolvimento
C+0)#,-4:)24"!')!),-/!)4"9!8+#$+()0)#)#8,-4+(&
tura de software independentemente se o método 
%() %('($2!524"($+!) #%!+#%!) 0) AB45) !-) $/!6)C''4":)
sem radicalismos, a decisão se a arquitetura de sof-
+<#8()'(8A)8(#543#%#)+!+#5"($+()#$+(')%#)1!%4D)1#./!)
do projeto ou se ela vai evoluir incrementalmente, é 
uma decisão particular de cada equipe.
F$+8(+#$+!:) 9#8#) -"#) #%!./!) 8(#5) () 1#-+(5!&
sa das práticas de arquitetura ágil, é recomendado 
-"#) #%#9+#./!) ($+8() !') %!4')"-$%!'G) 4$2('+48) -")
pouco de tempo no início do projeto (comumente 
%($!"4$#%!)%() *#'()%() W$1(9+4!$U)9#8#)9($'#8)$#')
RB8#$%(')$(1(''4%#%('T:)()#J!8%#8)!')%(+#5S(')()+!&
"#8)#')%(14';(')"#4')#''(8+42#')$!)"!"($+!)1(8+!)
XE-'+&4$&+4"(U)()8('9!$'A2(5:)#!)5!$B!)%#')4+(8#.;(')
X!-)'984$+'U)%!)98!E(+!6)
)C)D)B-8#)Y)45-'+8#)J(")#)('+8#+0B4#)8(1!"($%#&
%#6)Z!) 4$@14!) %!)98!E(+!:) !-) *#'() W$1(9+4!$:) #9P') !)
Product Owner já ter levantado um conjunto de re-
quisitos do sistema em um nível abstrato (mas que 
entenderem que o cenário de negócio que aquele 
software é destinado mudou de um mês para o outro. 
F)#18(%4+(":)(")-")"-$%!)1#%#)2(3)"#4')%4$["41!)
()B5!J#543#%!:)4''!)EA)0)1!"-")()('9(8#%!6
Z/!) 98(14'#"!') 48) "-4+!) 5!$B(:) 4"#B4$#$%!)
modelos de negócios tão complexos, para acreditar 
nesse fato. Basta olharmos para as diversas start-ups 
+(1$!5PB41#') ,-() '-8B(") #) +!%!)"!"($+!6)\-4+#')
%#')2(3(':)#')"-%#$.#')%()$(BP14!')$('+()'(B"($&
to não mudam de um mês para o outro, mas sim de 
um dia para outro. E neste e em outros cenários, a 
#8,-4+(+-8#)%()'!*+<#8()%(2()'(8)1#9#3)%()(2!5-48)!-)
'(8) "!%4D)1#%#) #) ,-#5,-(8) "!"($+!) '(") B8#$%(')
impactos.
É neste contexto dinâmico que a arquitetura ágil 
$#'1(-) () 2(") B#$S#$%!) 1#%#) 2(3)"#4') *!8.#6) H!4')
não devemos olhar a arquitetura como um aspecto 
técnico de um projeto de software, mas olhá-la como 
um componente crucial para a entrega de valor aos 
envolvidos no projeto. 
E por falarmos em desenvolvimento de software, 
2#5!8)%()$(BP14!:)>)(?4J454%#%()()($+8(B#')*8(,-($+(':)
nos vêm em mente um pensamento que vem cada 
2(3) "#4') 4$>)-($14#$%!) #) ($B($S#84#) %() '!*+<#&
re de ponta-a-ponta: o pensamento Lean, ou Lean 
7S4$]4$B6)F)$/!)0)Q)+!#),-()!)1!$1(4+!)%()#8,-4+(+-8#)
ágil tem em seus pilares os princípios Lean.
C''4":) #) #8,-4+(+-8#) AB45) 24'#) F54"4$#8) !) =('&
9(8%@14!)%()+("9!)9#8#)#)%(D)$4./!)%#)#8,-4+(+-8#)%()
'!*+<#8(:) J-'1#$%!) 7!"#8) #) =(14'/!) !)"#4') 7#8%()
Possível, pois quanto mais tempo você adiar suas de-
14';(':)"#4')1!$+(?+-#543#%#')()#''(8+42#')(5#')'(8/!6)
H!80") 4''!) $/!) 4"9541#) (")$/!)^4'-#543#8) !) 7!%!:)
mas sim que devemos estar diariamente antenados 
para tudo que está ocorrendo no projeto, inclusive o 
cenário de negócio que se destina, considerando fu-
+-8#')"-%#$.#')X()1(8+#"($+()(5#')2/!)!1!88(8U:)9#8#)
que quando elas surgirem, não surpreendam.
C50")%4''!:)#)#8,-4+(+-8#)AB45)*!1#)$!)9!%(8)%()
%(14';(')(")1!$E-$+!)X8(1!8%#$%!)!)2(5S!)98!208J4!)
/ 10 
'(E#) 9!''@2(5)"($'-8#8) () 984!843#8U:) #') 9(''!#') 8('-
9!$'A2(4')9(5#)#8,-4+(+-8#)4$414#")#)1!$*(1./!)%()-")
Z!+(J!!])C8,-4+(+-8#5) X2(E#)"#4')%(+#5S(')$#)'(./!)
=!1-"($+#$%!)-"#)C8,-4+(+-8#)MB45U6)F'+()#8+(*#+!)0)
%($!"4$#%!)%()Z!+(J!!]:)!-)J5!1!)%()$!+#':)C8,-4-
tetural, pois ele visa descrever apenas os aspectos ar-
quiteturais importantes neste momento, tais como: 
!JE(+42!:)$(1(''4%#%(')()8(,-4'4+!')'4B$4D1#$+('6))C9P')('+#)*#'(:)4$414#&'()!)%('($2!524"($+!)(*(-
tivo do projeto segmentado por sprints, conforme 
9!%() '(8)24'+!)$#)DB-8#)_6)H#8#)#)(?(1-./!)%()1#%#)
'984$+)%!)98!E(+!:)8(1!"($%#"!')#)(?(1-./!)%()+8N')
(+#9#'G)H8(9#8#./!:)F?(1-./!)()C2#54#./!6
C) (+#9#) %() 98(9#8#./!) !1!88(8A) #$+(') %#) '984$+)
corrente. Ela visa garantir que todos os pré-requisitos 
$(1(''A84!')9#8#)#)8(#543#./!)%!)+8#J#5S!)98(24'+!)('-
+/!)1-"984%!':)%($+8()(5(')#')%(14';(')#8,-4+(+-8#4')
cabíveis neste momento.
Para isto um rito arquitetural recomendável nes-
+#)(+#9#)0)!) +!8")C8,-4+(+-8#56)I) +!8":)!-)+("9('-
+#%(:) C8,-4+(+-8#5) 0) -"#) 8(-$4/!) 1!") %-8#./!) '--
gerida de uma hora e meia, onde toda a equipe após 
entender os itens a serem desenvolvidos na sprint 
J#1]5!B:)%4'1-+(")()1!$*8!$+#")#')%42(8'#')'!5-.;(')
()%(14';(')#8,-4+(+-8#4')#)'(8(")8(#543#%#')()4"95(-
"($+#%#')%-8#$+()#)(?(1-./!)%#)'984$+6
C!) D$#5) %#) +!8")C8,-4+(+-8#5:) #') 9(''!#') 8('-
ponsáveis pela arquitetura incrementam ou retroali-
"($+#")!)Z!+(J!!])C8,-4+(+-8#5) 1!")#'G) %(14';(':)
8('+84.;(':) E-'+4D1#+42#':) %(9($%N$14#':) 1#"#%#':)
dentre outros itens que achar pertinente. E, logo em 
seguida, cria artefatos de design, ou mecanismos 
arquiteturais, para auxiliar no desenvolvimento da 
sprint. 
C)(+#9#)%()(?(1-./!:)1!"!)!)98P984!)$!"()%43:)
8(98('($+#)#)(?(1-./!)%#')#+424%#%(')98(24'+#':)%($-
+8()(5#')0)15#8!:)#)1!%4D1#./!)%!)'!*+<#8(6)F$+8(+#$+!:)
esta etapa tem uma atividade arquitetural e de design 
"-4+!)4"9!8+#$+(),-()0)#)98A+41#)%()7('+&=842($)=(-
2(5!9"($+) X7==U:) 1-E!) 4$+-4+!)0)#E-%#8)$!)%('4B$)()
"(5S!84#')%!')1P%4B!':)#50")%()#-?454#8)$#)4%($+4D1#-
./!)%()9#%8;(')#8,-4+(+-8#4')("(8B($+('6
H!8)D":)$#)(+#9#)%()#2#54#./!:)$!)D$#5)%#)'984$+:)
pretende-se ter todo o trabalho planejado efetiva-
mente pronto, sem pendências que exijam a retoma-
da da atividade no futuro.
C''4":) (''#) ('+8#+0B4#) "4'+#) 8('-5+#) (") -"#)
abordagem muito mais ágil e de baixo risco para a ar-
quitetura do software.
O Arquiteto Tradicional versus o 
Arquiteto Ágil
Como pôde ser observado até o momento, a mu-
%#$.#)1-5+-8#5),-()#)#+424%#%()%()%(D$4./!)#8,-4+(-
tural de software sofre em um método ágil é muito 
alta. E, não por acaso, o fator crítico de sucesso de um 
98!E(+!)AB45)%(9($%()%()-")9(8D5)#%(,-#%!)%()#8,-4-
tetos. E por incrível que possa parecer, os diferenciais 
$/!) '/!) +01$41!':) "#') '4") 1!"9!8+#"($+#4'6) #^5()
ressaltar que o arquiteto é apenas um papel dentro 
do ciclo de vida do projeto. E este pode ser desem-
penhado por uma única pessoa, menos recomendado 
dentro do pensamento ágil, ou distribuído entre os 
membros da equipe do projeto, para que todos te-
$S#")8('9!$'#J454%#%()'!J8()#')%(14';(')()#8+(*#+!')
arquiteturais.
Z#)DB-8#)`:)1!$*8!$+#"!')#5B-$')%(''(')1!"9!8-
tamentos entre arquitetos tradicionais e arquitetos 
ágeis.
=('+#) *!8"#:)9!%("!') 8('-"48) #') #+424%#%(')%()
um arquiteto ágil dentre de um projeto de software 
1!$*!8"()8(98('($+#%!)$#)DB-8#)a6
Z/!) "($!') 4"9!8+#$+(:) #')
pessoas responsáveis pela arqui-
tetura devem ser bem recepti-
2#')Q')"-%#$.#'),-()1(8+#"($+()
ocorrerão ao longo do projeto. E a 
*!8"#)9#8#)*#3(8)4''!)0G)J#5#$1(#8)
as necessidades com todos os en-
2!524%!')%!)98!E(+!)() '#J(8)%43(8)
R$/!T) %() *!8"#) E-'+4D1A2(5b) 184#8)
(5("($+!') %() %('4B$) >(?@2(4'b) (:)
984245(B4#8)#)-+4543#./!)%()98!+P+4-
pos, ou provas de conceitos, para 
8(%-348)!')84'1!')+01$41!'6))
Modelagem ágil
Z/!) +(") 1!"!) *#5#8"!') %()
arquitetura sem falarmos de mo-
%(5#B("6)F)9#8#)8(#543A&5#:)+("!'):)1&,*";9 Adotando uma arquitetura Ágil.
Na edição 43 da revista MundoJ teve um artigo sobre A 
cultura TDD e o BDD.
para saber mais/
11 \
%42(8'#')$!+#.;(')$!)"(81#%!),-()#+($%(")J(")$!)
que tange a modelagem estrutural e comportamen-
+#5)%()-")'!*+<#8(:)+#5)1!"!)#)*#"!'#)c\O)Xc$4D(%)
\!%(54$B) O#$B-#B(U6) F$+8(+#$+!:) #) B8#$%() "#4!84#)
%(''#') $!+#.;(') 9!''-4) "-4+!') *!8"#54'"!':) () '/!)
"-4+#')%#')2(3(')('+(')*!8"#54'"!'),-()#1#J#")98(-
E-%41#$%!)#)2(5!14%#%()%()1!$*(1./!)%#')"!%(5#B($')
(:)9!8)'-#)2(3:)#+8#'#$%!)#)%!1-"($+#./!)"@$4"#)$(-
cessária da arquitetura de software.
=4#$+()%4'+!:)(")-"#)#8,-4+(+-8#)AB45)98(14'#"!')
encontrar, ou até mesmo criar, formas de modelagem 
mais ágeis que sigam os seguintes princípios:
 » Foco no conteúdo e conceitos, mais que na for-
"#+#./!)()$!+#./!6
 » 7("),-() '(8) $#+-8#5) () '4"95(') %() ($+($%(8) ()
-'#86)C)%41#)#,-4)0:)'()2!1N)B#'+#8)"#4')%()d)"4-
nutos para entender ou explicar como se mo-
%(5#)1!")#)$!+#./!)%()"!%(5#B(")AB45:)(5#)$/!)
serve.
 » =(2()'(8)1#9#3)%()'(8)%('($S#%#)("),-#5,-(8)
*(88#"($+#)1!")#)"('"#)#9#8N$14#6)=('%()-")
papel até em um Powerpoint ou ferramenta de 
desenho.
 » =(2() 4$1!89!8#8) #'9(1+!') 9'41!5PB41!') 1!"!)
formas, e abusar das cores, para estimular me-
5S!8)#')9(81(9.;(')24'-#4')()#)1!"98(($'/!6
 » =(2() 1!"95("($+#8) !-+8#') $!+#.;(':) 1!"!)
c\O6
Sendo assim, o principal indicador se a técnica de 
modelagem ágil criada ou empregada é boa ou não é 
a compreensão de todos os envolvidos em um proje-
+!6)=('+#) *!8"#:) #)"(5S!8) *!8"#)%() (?9(84"($+A&5#)
é reunir todos os envolvidos do projeto em uma sala 
com quadro branco, também conhecido como POW 
XH5#4$)I5%)eS4+(J!#8%U:)()%('($S#8)#)#8,-4+(+-8#)'--
gerida. Se todos entenderam bem, sua técnica de mo-
delagem está ótima.
Z#')DB-8#')d)()f:)'/!)#98('($+#%#')#5B-"#')98!-
9!'+#') %() $!+#.;(') 9#8#) "!%(5#B($') AB(4')
existentes atualmente na comunidade. 
C)DB-8#)d)45-'+8#)-")(?("95!)1!")#)98!-
9!'+#) %($!"4$#%#) %() CB45(=8#<:) ,-() 9!''-4)
apenas três elementos básicos para represen-
tar cenários arquiteturais. São eles: 
 » Círculos: que representam elementos di-
$["41!':) +#4') 1!"!) '(824%!8(') %() #9541#.;(':)
mensageria, dentre outros.
 » Quadrados: que representam elementos es-
táticos ou estruturais.
 » O4$S#'G) 'P54%#') g) 8(98('($+#") 8(5#14!$#-
mentos fortes, concretos ou com sincronismo. 
F) +8#1(E#%#') g) 8(98('($+#") 8(5#14!$#"($+!')
abstratos, fracos ou com assincronismo.
hA) #) DB-8#) f) 45-'+8#) -"#) 1!"J4$#./!) %()
"#9#') "($+#4') 1!") c\O:) ,-() 24'#) #54$S#8)
#) $!+#./!) 9!9-5#8"($+() 1!$S(14%#) %#) c\O)
1!") -"#) *!8"#)"(5S!8) %() 1!$+(?+-#543#./!:)
#98($%43#%!)()"("!843#./!)%!')"#9#')"($-
+#4'6) C) *(88#"($+#) -+4543#%#) 9#8#) 184#./!) %!')
%!4')%4#B8#"#') X"#9#)"($+#5)() 15#''(U) 4$+(8-
54B#%!':) $('+() (?("95!:) 0) #)C'+#S) c\O:) -"#)
ferramenta proprietária, mas que possui uma 
2(8'/!)K!""-$4+i)F%+4!$6:)1&,*"<9"Ciclo de vida da Arquitetura Ágil.
Figura 3. Arquitetos Tradicionais versus Arquitetos Ágeis.
Arquitetos Tradicionais Arquitetos Ágeis
São seres “diferencia-
%!'T6) -#')!94$4;(')'/!)
verdade absolutas.
São humildes e buscam 
'!5-.;(')1!$E-$+#'6
Estão sempre “muito 
!1-9#%!'T9#8#)1!5!1#8)
as mãos no desenvolvi-
mento do software.
São membros ativos do 
time de desenvolvimen-
+!:)#E-%#$%!)$#)1!%4D-
1#./!)()#+-#$%!)1!"!)
mentor.
Se acham tão “diferen-
14#%!'T),-()B!'+#")%()
prever o futuro para não 
terem problemas.
Sabem que não podem 
prever o futuro, mas 
podem estar preparados 
para ele.
Investem muito tempo 
em criar modelos arqui-
+(+-8#4')1!")R+!%#'T#')
4$*!8"#.;(')9!''@2(4')()
inimagináveis.
Sem desperdícios. 
Focam em relatar o 
que é util e importante 
naquele momento.
/ 12 
C50")%(''#')98!9!'+#')%()"!%(5#B(")AB45:)(?4'-
+() !-+8#) %($!"4$#%#) %() K#8+!!$)C81S4+(1+-8(:) ,-()
J#'41#"($+()1!"J4$#)%('($S!')B(!B8AD1!')'4"95(')
1!")DB-8#') () @1!$(')9#8#)"(5S!8) 1!"98(($'/!)%!')
(5("($+!') () 1!"9!$($+(')%(D$4%!')$#)#8,-4+(+-8#6)
Para conhecer mais sobre essa técnica, veja o artigo 
%!)F%-#8%!)j-(88#)g)H8A+41#')9#8#)O4%#8)1!")C8,-4-
+(+-8#)(")C"J4($+(')MB(4':)$('+#)"('"#)(%4./!)%#)
\-$%!h6
:)1&,*"=9"Proposta de Modelagem Ágil com AgileDraw.
Documentando uma ArquiteturaÁgil
#^5() 5("J8#8) ,-() $!') "0+!%!') AB(4':) () 1!"!)
consequência, na arquitetura ágil, o mais importan-
+()$/!)0)#)%!1-"($+#./!)(")'4:)"#4')'4")#)1!"-$4-
1#./!6)H!8+#$+!:)0) 8(1!"($%A2(5),-()!)1!$+(k%!)%#)
arquitetura ágil esteja facilmente acessível a todos os 
($2!524%!')%!)98!E(+!6)F),-(),-#5,-(8)#5+(8#./!)'(E#)
*#145"($+()$!+4D1#%#)9#8#)+!%!'6
K!")4'+!:)%(2()'(8)(24+#%#)#)184#./!)%()%!1-"($-
tos arquiteturais em ferramentas, como editores de 
+(?+!':)"-4+!)"($!')%(4?#8)#')4$*!8"#.;(')#8,-4+(+--
rais dentro de uma ferramenta de modelagem, como 
0)1!"-")%()!1!88(8)(")"-4+!')98!E(+!'6)Z!)984"(48!)
1#'!:)('+(')%!1-"($+!')D1#")$!8"#5"($+()(")-"#)
pasta de projeto compartilhada numa rede que qua-
se ninguém se recorda de ir para consultar algo (ou 
2(8)'()#5B!)"-%!-U)!-)'()('+42(8(")4"98(''!')0)#4$%#)
94!8:)9!4')9#''#")#)4%(4#),-()('+/!)%('#+-#543#%!')()
$4$B-0")!') 1!$'-5+#6) hA)$!) '(B-$%!)1#'!:) Q') 2(3(':)
nem todos os envolvidos no projeto possuem a ferra-
"($+#)$(1(''A84#:)!-)541($.#')'-D14($+(':)9#8#)24'-#-
543#8(")'(-')1!$+(k%!'6
) )C''4":)0)-"#)J!#)98A+41#)9-J541#8)#')4$*!8"#-
.;(')%()#8,-4+(+-8#)(")*(88#"($+#')1!5#J!8#+42#':)+#5)
como Wiki. Pois além de serem facilmente acessíveis 
via web browsers, e versionar automaticamente qual-
,-(8) #+-#543#./!:) 9!''-(") 8(1-8'!') %() $!+4D1#./!)
simultânea via RSS para todos os envolvidos. E caso 
$(1(''A84!) #5B-"#) *!8"#543#./!) S4'+P841#:) !) 1!$+(-
údo contido na plataforma Wiki pode ser exportado 
9#8#)H=l)() '#52!6)H!8+#$+!:)98!1-8()184#8) '(-)Z!+(-
J!!]) C8,-4+(+-8#5) (") -"#) *(88#"($+#) %('+() +49!6)
C50")%!')"#4':)#4$%#)9!%("!')-+4543#8)!')8(1-8'!')%()
Si9(854$]')9#8#)"(5S!8#8)#4$%#)"#4')#)4$+(8#./!)1!")
este artefato.
Figura 4. Atividades do Arquiteto Ágil.
WEB
BROWSER
CONTROLLER
VIEW
HTTPS
SERVICE
LISTENER
APACHE TOMCAT
MESSAGING 
SERVER 
(IBM MQ)
JDBC
DB
13 \
Somando-se a isso, é sempre positivo deixar os 
principais artefatos arquiteturais (diagramas, metas, 
4$%41#%!8(')+01$41!':)%($+8()!-+8!'U)Q)24'+#)%()+!%!')
os membros da equipe em cartolinas pregadas na pa-
rede ou quadros brancos, tal como existem as maque-
tes nas arquiteturas civis, para facilitar a dissemina-
./!)%#')%(14';(')+01$41#')()98!"!2(8)#)+8#$'9#8N$14#)
arquitetural para que todos da equipe sintam-se à 
vontade em poder contribuir com ela.
Inspeção Arquitetural Contínua
Os dois principais pilares de qualquer abordagem 
AB45)'/!G)m-#54%#%()()78#$'9#8N$14#6)F)9#8#)'()1!$'(-
guir isso, precisamos continuamente praticar a ins-
9(./!)()#%#9+#./!)%()+!%!')!')#8+(*#+!')98!%-34%!')
em um processo de desenvolvimento de software.
C''4":) $#) #8,-4+(+-8#) AB45) 4''!) $/!) 0) %4*(8($+(6)
Observar a todo momento a qualidade dos códigos-
&*!$+(')98!%-34%!')(")8(5#./!)#!')9#%8;(')%()%('4B$)
('+#J(5(14%!')0)(''($14#5)9#8#)#)(2!5-./!)'(B-8#)%#)
#8,-4+(+-8#6)C+0)9!8,-(:)#!)5!$B!)%!)%('($2!524"($-
+!:)$!2!')9#%8;(')%()%('B4$)48/!)("(8B48)%!')1P%4B!'-
&*!$+(')98!%-34%!')X%('4B$)("(8B($+('U:)()'#J(8)!J-
servá-los e aproveitá-los serão de grande valia para a 
'#k%()()1!$D#J454%#%()%#)#8,-4+(+-8#6)
F)9#8#)8(#543#8)(''#)4$'9(./!:)$/!)98(14'#"!')D-
car analisando todos os códigos-fontes manualmen-
te. Existem ferramentas gratuitas no mercado, tal 
1!"!)!) !$#8:),-()-+4543#)-"#)1!"J4$#./!)9#8#"(-
+843#%#)%()"0+841#')9#8#)B(8#8)8(5#+P84!')%#),-#54%#%()
dos códigos em tempo real. Com isto, para a arquite-
+-8#)AB45:)"0+841#')1!"!G)%-9541#./!)%()1P%4B!':)1!"-
plexidade ciclomática e acoplamento aferente, dívida 
técnica, conformidade de requisitos não-funcionais e 
dependências cíclicas, são essenciais para manter a 
arquitetura evolutiva e controlada.
>4$!)+/,*?@/!"A$*)!
C) 1!$'+#$+() %4$["41#)$!') $(BP14!') () #) 8#94%(3)
(") ,-() (5#') !1!88(") *#3(") 1!") ,-() !') '!*+<#8(')
9!''#")'!*8(8)"-%#$.#')#8,-4+(+-8#4')1#+#'+8PD1#':)
caso suas arquiteturas não tenham sido concebidas 
%() "#$(48#) 4$18("($+#5:) >(?@2(5) () 1!$+8!5#%#:) %--
8#$+()+!%!)!)98!1(''!)%()%('($2!524"($+!6)C''4":)#')
98A+41#')1!$2($14!$#4')9#8#)%(D$4./!)()%!1-"($+#-
./!)+!+#5)%#)#8,-4+(+-8#)()%('4B$)$!)4$@14!)%!)98!E(+!)
EA)'()98!2#8#")4$(D1#3(')SA)"-4+!)+("9!6)\-4+!')$/!)
($+($%(")9!8,-()$!)D$#5)%!')98!E(+!')%()'!*+<#8(':)
seguindo um ciclo de vida em cascata, muitos proble-
"#')'-8B(")$#)#8,-4+(+-8#)()98!E(+!)%#)'!5-./!6
C)#%!./!)%#')98A+41#')%()#8,-4+(+-8#)AB45)$!')9(8-
"4+()%(D$48:)4$18("($+#8)()#%#9+#8)1!$+4$-#"($+()#)
arquitetura e design dos softwares em desenvolvi-
"($+!:)24'#$%!)'()#%(,-#8)Q')2#84#.;(')$(BP14!)9#8#)
($+8(B#)*8(,-($+()%()2#5!86)C50")%4''!:)#)#%!./!)%#')
práticas de arquitetura ágil visa remover vícios e des-
perdícios de tempo em modelagens e documenta-
.;(':)#50")%()*#1454+#8)#)1!"-$41#./!)+01$41#)($+8()!')
membros da equipe do projeto e, como consequência, 
a qualidade e integridade das entregas.
:)1&,*"B9 Proposta de Modelagem Ágil com Mapas Mentais e UML.
> James O. Coplien and Gertrud Bjornvig – Lean Architecture 
for Agile Software Development
> Série de artigos sobre Arquitetura Evolutiva e 
Design Emergente – Neal Ford: http://www.ibm.com/
developerworks/java/library/j-eaed1/index.html 
> Agile Modeling Home Page: Effective Practices for 
Modeling and Documentation – Scott W. Ambler: http://
www.agilemodeling.com/
> Eric Evans – Domain-Driven Design: Tackling Complexity 
in the Heart of Software
> Erich Gamma – Design Patterns: Element of Reusable 
Object-Oriented Software
> The Responsible Designer – “Don’t you want to take 
responsibility for your designs?” – Rebecca Wirfs-Brock: 
http://wirfs-brock.com/blog/
> Modelagem Ágil – Melhorando o Aprendizado num 
Projeto de Desenvolvimento – Manuel Pimentel: http://www.
slideshare.net/manoelp/palestra-modelagem-gil-manoel-
pimentel-presentation
> Blog do Breno Barros: http://www.brenobarros.net
/referências
Na edição 43 da revista MundoJ, veja como utilizar a 
ferramenta Sonar para extrair as principais métricas para 
as Arquiteturas Ágeis no artigo sobre Evoluindo o design e 
arquitetura através das métricas do Sonar.
para saber mais/

Outros materiais