Baixe o app para aproveitar ainda mais
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/
Compartilhar