Você está na página 1de 32

1

1.
2.
Pr-Reitoria de Ps-Graduao e Pesquisa
Lato Sensu em Desenvolvimento em Software Livre
Traal!o de "on#luso de "urso
$ %S$ D& '(T$D$S )G&*S
+P$*+D$S P&L$ S$,T-+R& L*.R&
/ras0lia - D,
2112
+utor2 +l03io Get4lio 5ro!n 6unior
$rientador2 Prof7 'ar#o +nt8nio de $. +ra49o
2
+L:P*$ G&T;L*$ 5R$<= 6%=*$R
$ %S$ D& '(T$D$S )G&*S +P$*+D$S P&L$ S$,T-+R& L*.R&
+rti>o a3resentado ao #urso de 3s->raduao em
Desenvolvimento em Software Livre da
%niversidade "atli#a de /ras0lia?
#omo requisito 3ar#ial 3ara oteno do
T0tulo de &s3e#ialista
$rientador2 Prof. 'ar#o +nt8nio de $. +ra49o
/ras0lia
2112
3
Artigo de autoria de Alpio Getlio Krohn Junior, intitulado O uso de mtodos
geis apoiados pelo software livre apresentado omo re!uisito parial para
o"ten#$o do grau de %speialista em &esenvolvimento em 'oftware (ivre da
)niversidade *at+lia de ,raslia, em -./00/-10-, defendido e aprovado pela "ana
e2aminadora a"ai2o assinada3
444444444444444444444444444444444444444
5rof6 7aro Ant8nio de Oliveira Ara9o
Orientador
)*,
444444444444444444444444444444444444444
5rof6 Jos Adal"erto :a#anha Gualeve
Avaliador
)*,
,raslia
-10-
4
+GR+D&"*'&=T$
Agrade#o primeiramente a &eus, pelo dom da vida e por me ofereer
ondi#;es de onluir essa etapa t$o importante em minha vida6
Agrade#o < minha esposa pelo apoio e pelo inentivo dado durante o deorrer
do urso, < minha famlia por areditar nesse o"9etivo, e < )niversidade *at+lia de
,raslia por ofereer meanismos apa=es de gerar onheimento atravs do
am"iente virtual de aprendi=agem om o apoio de doentes !ualifiados para apoiar
ao aluno durante toda a 9ornada da p+s>gradua#$o6
5
$ %S$ D& '(T$D$S )G&*S +P$*+D$S P&L$ S$,T-+R& L*.R&
+L:P*$ G&T;L*$ 5R$<= 6%=*$R
Resumo2 Os mtodos geis de desenvolvimento de software t?m sido ada ve=
mais utili=ados nas empresas de desenvolvimento de software6 Os mesmos "usam
aliar as prtias do desenvolvimento iterativo e inremental < agilidade e
dinamiidade ofereidas pelos meanismos utili=ados nos mtodos geis6 Os
softwares livres ofereem aos mtodos geis meanismos para o ontrole das
atividades reali=adas no ilo de desenvolvimento de software atravs de solu#;es
de "ai2o usto e alta apaidade de adapta#$o6 O presente artigo desreve os
prinipais oneitos e atividades envolvidos nos mtodos geis '*@)7, %2treme
5rogramming, :eature &riven &evelopment e Adaptive 'oftware &evelopment,
reali=ando tam"m uma "reve ompara#$o dos referidos mtodos e !uais atividades
ada mtodo reali=a para satisfa=er as etapas do desenvolvimento inremental
proposto por 'ommerville A-11BC6 &esreve tam"m omo os softwares livres
podem apoiar o desenvolvimento "aseado em mtodos geis atravs do uso de
ferramentas de apoio6
Palavras-#!ave2 7todos Dgeis, '*@)7, E5, :&&, A'&, %ngenharia de 'oftware,
&esenvolvimento de 'oftware, &esenvolvimento Fterativo e Fnremental, 'oftware
(ivre6
6
1. *=TR$D%@A$
Gos ltimos anos, os mtodos geis de desenvolvimento de software apresenta>
ram grande aeita"ilidade nos pro9etos de software, essa aeita"ilidade deve>se
prinipalmente < apaidade dos mtodos geis em assimilar as neessidades de
mudan#a oorridas ao longo do desenvolvimento do pro9eto6 &iante dessa resente
aeita"ilidade, surgiu a motiva#$o para ela"orar o presente artigo omo forma de es>
tudo e ompara#$o entre os mtodos geis mais utili=ados pelo merado de produ>
#$o de softwares6
O presente artigo tem o o"9etivo de e2pliar o resumidamente o funionamento
de alguns dos mtodos geis de desenvolvimento de software, "em omo reali=ar
uma ompara#$o de suas prinipais araterstias entre si 9untamente om uma
ompara#$o dos mtodos geis om os demais mtodos de desenvolvimento de
software6
Ao longo deste artigo, ser possvel identifiar as atividades, artefatos, etapas e
papis relaionados a ada um dos mtodos geis, "em omo ada uma dessas ati>
vidades, dentro do ilo de vida de desenvolvimento de software, podem ser apoia>
das atravs do uso de software livre6 A a"rang?nia deste artigo ompreende os
prinipais mtodos geis utili=ados atualmente A'OA@%', -11HC, assim ompreendi>
dos3 '*@)7, Extreme Programming AE5C, Feature Driven Development A:&&C e
Adaptive Software Development AA'&C 9untamente om o uso de algumas ferramen>
tas de software livre6
2. /R&.& <*STBR*"$ D$S '(T$D$S )G&*S
O desenvolvimento de software ompreende a onep#$o, ela"ora#$o e a im>
plementa#$o de um sistema omputaional, em outras palavras, ompreende o en>
tendimento da neessidade de um usurio ou de um merado, e diante dessa ne>
essidade reali=ar a onstru#$o um produto I sistema omputaional !ue venha su>
prir essa neessidade om a utili=a#$o de reursos omputaionais para tal finalida>
de6
%ssa onstru#$o tem por prtia a utili=a#$o de prinpios s+lidos de enge>
nharia om o"9etivo de o"ter software de maneira eon8mia e onfivel, prtia
essa onheida por %ngenharia de Software6
5resmann A-11BC define %ngenharia de Software omo sendo a utili=a#$o de
s+lidos prinpios de engenharia para a o"ten#$o de software de maneira eon8mia
e onfivel, esse oneito foi riado na dada de 0HB1 e utili=ado pela primeira ve=
ofiialmente na NATO Conference on Software Engineering A*onfer?nia so"re %n>
genharia de Software da OJAGC A5@%'7AGG, -11BC6
A partir desse momento, iniiou>se a ado#$o de mtodos e prtias ro"ustas
de prospe#$o e espeifia#$o de sistemas, ofereendo ao merado de onstru#$o
de softwares um ara"ou#o de doumentos e diagramas apa=es de ofereer supor>
te ao proesso de onstru#$o de sistemas6 %sse ara"ou#o vem evoluindo desde
ent$o, dessa forma surgiram diversos proessos e metodologias de desenvolvimen>
to de software !ue agregaram valor aos produtos gerados, entretanto, essa agrega>
#$o de valor tra=ia onsigo um usto de produ#$o6
7
Grande parte dessa agrega#$o de valor onsiste na doumenta#$o gerada, a
!ual ompreende &oumenta#$o do 5roesso, &oumenta#$o do 5roduto, &ou>
menta#$o de )surio, &oumenta#$o do *+digo, dentre outros6
K medida !ue as organi=a#;es tornam>se ada ve= mais dependentes da in>
dstria do software, fiam mais evidentes os pro"lemas relaionados ao proesso de
desenvolvimento de sistemas3 alto usto, alta omple2idade, difiuldade de manu>
ten#$o, e uma disparidade entre as neessidades dos usurios e o produto desen>
volvido A'O77%@LF((%, -11BC6
Ao longo dos anos, a %ngenharia de Software evoluiu em seus proessos e
metodologias e atualmente, dentre os proessos onheidos, est$o o 7odelo *asa>
ta AWaterfallC, Fterativo e Fnremental, 5rototipa#$o, %spiral, e os mtodos Dgeis6 &i>
ante dos pro"lemas relaionados ao proesso de desenvolvimento de sistemas
A'O77%@LF((%, -11BC, os mtodos Dgeis surgiram omo uma alternativa para pro>
ver < indstria de software a agilidade neessria para entregar produtos om a !ua>
lidade dese9ada e dentro do usto e pra=o estimado6
Os mtodos Dgeis tiveram sua evolu#$o aentuada a partir de 0HH1 A'OA>
@%', -11HC omo uma alternativa aos demais mtodos de desenvolvimento, por ora
"urortios, !ue e2igiam a produ#$o de uma srie de artefatos e reomendavam o
umprimento de diversas atividades para !ue o ilo de vida do software fosse satis>
feito ompletamente6
C. '(T$D$S )G&*S
O desenvolvimento de sistemas um proesso de alto usto, alta omple2ida>
de, e e2iste a difiuldade para manuten#$o dos sistemas "em omo h uma dispari>
dade entre as neessidades dos usurios e os produtos desenvolvidos para os mes>
mos A'O77%@LF((%, -11BC6
%sses pro"lemas, dentre outros, foram um dos prinipais fatores !ue motiva>
ram a ria#$o do 7anifesto para o &esenvolvimento Dgil de Software, tam"m o>
nheido simplesmente omo 7anifesto Dgil A,%*K, -100C6 %sse manifesto foi ideali>
=ado por diversos profissionais de desenvolvimento de software, dentre os !uais se
destaam Kent ,eM, @o"ert *6 7artin, Nard *unningham, 7artin :owler, dentre ou>
tros6
O 7anifesto Dgil "usa valori=ar3
Fndivduos e intera#;es mais !ue proessos e ferramentasO
Software em funionamento mais !ue doumenta#$o a"rangenteO
*ola"ora#$o om o liente mais !ue negoia#$o de ontratosO
@esponder a mudan#as mais !ue seguir um plano6
:a=endo uma "reve anlise do 7anifesto Dgil AA7,(%@, -100C, possvel
verifiar !ue o mesmo n$o desarta proessos e ferramentas, doumenta#$o a"ran>
gente, negoia#$o de ontratos "em omo seguir um plano6 A prinipal diferen#a
est na priori=a#$o ou no foo, ou se9a, e2iste uma prioridade maior em valori=ar in>
divduos e intera#;es, software funionando, ola"ora#$o om o liente e rpida res>
8
posta <s mudan#as sem pormenori=ar ou at mesmo desartar demais atividades
dos outros mtodos de desenvolvimento de software e2istentes6
Ao longo dos anos, surgiram inmeros mtodos geis de desenvolvimento de
software !ue "usam em regras gerais atender <s delara#;es ontempladas no
7anifesto Dgil6 Ao longo deste artigo, ser possvel e2plorar os !uatro mtodos
geis mais omuns entre os profissionais da omunidade de desenvolvimento de
software !ue adotam desenvolvimento gil em seus proessos6
P60'*@)7
7uitos profissionais ao ter o primeiro ontato om o nome '*@)7 !uestio>
nam o signifiado dessa aparente sigla !ue d nome ao mtodo6 %ntretanto, ao on>
trrio do !ue estamos aostumados a onviver na sopa de letras do mundo da Je>
nologia da Fnforma#$o, '*@)7 n$o uma sigla, seu nome tem origem em uma das
posi#;es adotadas pelos times de rug!, onde todos os omponentes do time fiam
agrupados em forma oesa om os "ra#os entrela#ados, "usando somar for#as
para avan#ar so"re o time adversrio6
:a=endo analogia ao rug!, essa a proposta do '*@)7, ter uma e!uipe
oesa e apa= de unir for#as para atingir os o"9etivos omuns, dentre os !uais se
enontram os desafios do dia>a>dia no desenvolvimento de software, pra=os, eso>
pos, entregveis e demais atividades !ue preisam ser venidas pelas e!uipes de
desenvolvimento de software6
A e!uipe do '*@)7 onta "asiamente om tr?s papis "em definidos A'O>
A@%', -11HC, onforme visto a seguir3
Scrum "aster 3 o responsvel pelo proesso '*@)7 dentro da e!uipe,
responsvel por disseminar os onheimentos relaionados ao proesso e
tornar o mesmo uma ultura dentro da e!uipe6 Q responsvel por garantir
!ue toda a e!uipe siga as prtias definidas6 Q responsvel tam"m por
oordenar as reuni;es dirias om a e!uipe e dar andamento nos itens re>
portados por todos os mem"ros da e!uipe6
Scrum Team 3 a e!uipe de desenvolvimento, na maioria dos asos om>
posta de B a 01 pessoas, auto>organi=veis, auto>gereniveis e multifun>
ionais6 G$o deve e2istir a divis$o tradiional de argos ou fun#;es Aanalis>
tas, programadores, testadores, et666C, mas todos devem tra"alhar em prol
do o"9etivo omum !ue o umprimento dos o"9etivos de ada Sprint6
Product Owner 3 responsvel por representar os interesses dos sta#e$ol%
ders na e!uipe, a pessoa !ue define 9untamente om os sta#e$olders o
Product &ac#log, "em omo a priori=a#$o do mesmo 9unto < e!uipe6
O desenvolvimento de software "aseado no mtodo '*@)7 iniia>se om
um entendimento iniial do produto !ue ser gerado, iterativo e inremental, ou
se9a, a ada itera#$o Aou ada iloC o produto inrementado om novas funionali>
dades agregando valor ao produto final6 %sse entendimento iniial, muitas ve=es ain>
da inerto no inio do desenvolvimento vai se tornando laro aos pouos6
9
O Product Owner A5OC o mem"ro da e!uipe responsvel por ela"orar 9unto
aos envolvidos do pro9eto Asta#e$oldersC o Product &ac#log6 O Product &ac#log
uma listagem de tudo o !ue deve ser feito no deorrer do desenvolvimento6 %ssa lis>
tagem transformada ent$o em re!uisitos funionais e re!uisitos n$o>funionais, os
denominados 'ser Stories6 %nt$o a partir desse momento, o Product &ac#log uma
listagem de 'ser Stories6
O passo iniial a divis$o do Product &ac#log em releases, espera>se !ue
ada release ontenha um inremento de funionalidade reonheida pelo usurio6
Jodo tra"alho no '*@)7 reali=ado em perodos denominados Sprints, os !uais
s$o itera#;es om dura#$o de - a R semanas6 *ada Sprint iniiado om uma reu>
ni$o denominada Sprint Planning "eeting, nessa reuni$o o 5O 9untamente om o
time definem !ual o o"9etivo do Sprint e !uais itens do Product &ac#log Aou !uais
'ser StoriesC ser$o tra"alhados no referido Sprint6 O resultado dessa reuni$o o
Sprint &ac#log, ou se9a, tudo o !ue ser tra"alhado no referido Sprint6
As e!uipes do '*@)7 devem ser autogereniveis, dessa forma om a de>
fini#$o do Sprint &ac#log, ada mem"ro da e!uipe esolhe um 'ser Stor! e fia res>
ponsvel pela ondu#$o do mesmo6
&iariamente, reali=ada a Dail! Scrum "eeting, s$o reuni;es rpidas reali=a>
das em pouos minutos e lideradas pelo Scrum "aster, om o"9etivo de disseminar
o onheimento so"re as atividades reali=adas pelo time6 Gessa reuni$o, ada mem>
"ro do time deve responder aos seguintes !uestionamentos3
o O !ue eu fi= ontemS
o O !ue eu farei ho9eS
o %2iste algum impedimento !ue impate ou possa impatar minhas ati>
vidadesS
*om "ase nessas informa#;es, o Scrum "aster responsvel por ondu=ir
essas informa#;es dentro dos demais nveis da e!uipe para !ue as atividades n$o
se9am impatadas6
Ao final de ada Sprint, o produto final inrementado om o resultado do tra>
"alho e reali=ada a reuni$o hamada Sprint (eview "eeting, nessa reuni$o os o">
9etivos do Sprint s$o revisados e os fatos oorridos s$o analisados e disseminados
entre todos os mem"ros do 'rum Team6
:igura 0 I %2eu#$o do mtodo '*@)7
:onte3 '*@)7 Alliane A-100C6
10
P6-%EJ@%7% 5@OG@A77FGG I E5
O Extreme Programming AE5C teve seu primeiro pro9eto iniiado em mar#o de
0HHB6 'ua filosofia "aseada nos seguintes valores3 *omunia#$o, *oragem,
Feedac#, @espeito e 'impliidade A,%*K, -111C6
Go aspeto omunia#$o, o E5 "usa estreitar os la#os de omunia#$o
entre os envolvidos no pro9eto, inluindo liente, desenvolvedores, lderes, analistas,
e todos !ue forem neessrios ao perfeito desenvolvimento do pro9eto6 Go E5, as
"arreiras de omunia#$o devem ser superadas e os aessos devem ser livres entre
todos os envolvidos, independente da hierar!uia ou papel no pro9eto6
Go aspeto oragem, deve ser onsiderado sempre o riso de neessidade
de mudan#as ao longo do pro9eto, se9am essas mudan#as nos re!uisitos, na
ar!uitetura, na e!uipe, na infraestrutura6 &essa forma, a e!uipe do pro9eto deve
sempre ter oragem de assumir esse riso e estar disposta a assumir !uais!uer
mudan#as !ue se9am neessrias para o suesso do pro9eto6
%m rela#$o ao Feedac#, o E5 enfati=a !ue a prtia de feedac# entre os
mem"ros da e!uipe deve ser onstante om o"9etivo de minimi=ar os impatos de
uma informa#$o tardia6 (em"rando !ue no E5 a e!uipe do pro9eto de software
omposta por todos os envolvidos no pro9eto Alientes, desenvolvedores, analistas,
ar!uitetos, et666C6 &eve haver o foo em forneer uma funionalidade para o liente
o !uanto antes, para !ue o mesmo iniie a avalia#$o do software o !uanto antes, e
dessa forma identifi!ue possveis desvios ou neessidades de orre#$o, forneendo
o feed"aM aos desenvolvedores, !ue por sua ve= podem iniiar os a9ustes
neessrios e forneer uma nova vers$o para o liente assim !ue possvel6
Os pro9etos E5 "usam enurtar ao m2imo a defasagem de tempo entre a
soliita#$o de uma funionalidade pelo liente, e seu resultado o"servado atravs
da entrega da funionalidade sendo usvel pelo mesmo6
O ritrio @espeito o !ue failita o umprimento dos demais prinpios, pois
sem o respeito entre os mem"ros da e!uipe, n$o h omo desempenhar os papis
om efii?nia e efiia6
'o"re o aspeto 'impliidade, o E5 determina !ue as e!uipes onentrem>se
em fa=er, primeiramente, apenas o !ue deve ser feito para !ue a funionalidade se9a
onluda e evite fa=er o !ue pode ser onsiderado desneessrio6
)ma pes!uisa reali=ada pelo Standis$ )roup so"re softwares onludos e
entregues nos %stados )nidos revelou !ue RTU das funionalidades nuna s$o
utili=adas pelos seus usurios e 0HU delas raramente s$o usadas, totali=ando BRU
de funionalidades !ue poderiam dei2ar de ser produ=idas6 5or outro lado, o mesmo
estudo revelou !ue VU das funionalidades s$o usadas sempre e outros 0PU s$o
usados om fre!W?nia, onforme o grfio apresentado a"ai2o A:igura -C6 Fsso
representa grande parte do tempo e do usto em um pro9eto de desenvolvimento de
software6
11
:igura -3 :re!u?nia de utili=a#$o de funionalidades
:onte3 'tandish Group A-100C6
O proesso de desenvolvimento "aseado no E5 tem suas araterstias "em
similares ao '*@)7, mantendo seu foo em itera#;es urtas sempre om o"9etivo
de gerar uma parte entregvel do software para o usurio ome#ar a usar e identifi>
ar possveis a9ustes ou melhorias6 Os papis e artefatos gerados pelo E5 tam"m
s$o em grande parte semelhantes ao '*@)76
Go E5, os re!uisitos do software s$o detalhados em 'ser Stories 9untamente
om o liente em on9unto om o Product Owner, os !uais s$o priori=ados atravs
da identifia#$o das 'ser Stories !ue representam funionalidades mais importan>
tes6
A e!uipe de desenvolvimento utili=a o meanismo de gereniamento de o"9e>
tivos, em su"stitui#$o ao gereniamento de atividades6 5artindo desse prinpio,
possvel tra"alhar sempre om foo nos o"9etivos a serem atingidos, e a partir de en>
t$o as atividades s$o distri"udas internamente na e!uipe para !ue as 'ser Stories
se9am onludas e entregues6
%2iste tam"m a prtia de omunia#$o diria entre os mem"ros da e!uipe,
om o"9etivo de identifiar as atividades reali=adas, a serem reali=adas, e os itens
!ue preisam de aten#$o para !ue o tra"alho n$o se9a impatado6
O plane9amento das entregas ao liente reali=ado 9untamente om o pr+prio
liente, ap+s a priori=a#$o das 'ser Stories, dessa forma o liente est sempre en>
volvido no dia>a>dia do pro9eto e iente de tudo o !ue est oorrendo, e2iste assim a
transpar?nia entre os mem"ros em rela#$o <s atividades reali=adas e os o"9etivos
da!uele perodo6
A figura a"ai2o A:igura PC representa o flu2o de atividades em um pro9eto de
software utili=ando E53
12
:igura P3 :lu2o de Atividades no 7todo E5
:onte3 Fmprove FJ A-100C, om adapta#;es6
P6P:%AJ)@% &@FL%G &%L%(O57%GJ I :&&
O mtodo Feature Driven Development, ou &esenvolvimento Guiado por :un>
ionalidades foi riado em 0HHV e apliado iniialmente em um pro9eto de desenvol>
vimento de software em uma grande institui#$o "anria na 'ingapura A5A(7%@O
:%('FGG, -11-C6
A vers$o iniial do :&& foi pu"liada ofiialmente em 0HHH A*OA&O (%:%,>
L@%, &% ()**A, 0HHHC6 'ua vers$o ompleta foi pu"liada em -11- A5A(7%@O
:%('FGG, -11-C6
A :&& estruturada "asiamente em duas fases distintas, ompreendidas
em *onep#$o/5lane9amento e *onstru#$o6 A fase de *onep#$o e 5lane9amento,
deve ser e2eutada em ilos de 0 a - semanas, e ompreende as seguintes ativida>
des3
&esenvolver um modelo a"rangente 3 nessa atividade, o Gerente de 5ro9etos
deve formar a e!uipe de modelagem omposta por profissionais !ue dete>
nham o onheimento do neg+io 9untamente om desenvolvedores6 A e!uipe
de modelagem deve ela"orar um estudo dirigido so"re o domnio6 Ap+s esse
estudo, essa mesma e!uipe estuda os doumentos de refer?nia ou re!uisi>
tos disponveis, envolvendo re!uisitos funionais, modelos de dados, manu>
ais, dentre outros6 Ap+s o estudo da doumenta#$o, a e!uipe de modelagem
deomposta em pe!uenos grupos de at P omponentes, e ada grupo ela>
"ora um modelo de o"9etos referente <s funionalidades !ue ser$o tratadas
:unionalidades
n$o
implementadas
:unionalidades
mais
Fmportantes
5lane9amento
Fterativo
5lane9amentos
Xonestos
'oftware
:unional
*omunia#$o
&iria
&ia>a>dia
do pro9eto
13
pelos mesmos6 %sse modelo refinado a ada intera#$o de aordo om os
entendimentos o"tidos ao longo do tempo6
O prinipal resultado dessa atividade a ela"ora#$o do &iagrama de *las>
ses, om seus relaionamentos, atri"utos e mtodos, &iagramas de 'e!u?n>
ia e de %stados se houver neessidade e demais omentrios !ue nortea>
ram a ela"ora#$o dos modelos6
*onstruir uma lista de funionalidades Aou features C3 essa atividade tem por
o"9etivo prinipal identifiar todas as funionalidades !ue satisfa#am aos re>
!uisitos6 A e!uipe envolvida nessa atividade deve identifiar o on9unto de
funionalidades atravs do onheimento o"tido na atividade anterior6 Junta>
mente om essa atividade, devem ser identifiadas todas as reas de neg+io
envolvidas no domnio de neg+io do sistema, para ada rea de neg+io de>
vem ser identifiadas as atividades reali=adas pelas mesmas, e para ada ati>
vidade reali=ada deve haver uma funionalidade !ue satisfa#a essa neessi>
dade6
5lane9ar por funionalidade3 om a lista de funionalidades ela"orada pela ati>
vidade anterior, a se!W?nia de desenvolvimento deve ser determinada6 &es>
sa forma, a e!uipe deve atri"uir uma data de inio e trmino para ada funi>
onalidade a ser onstruda6 %ssa atri"ui#$o o"tida atravs dos seguintes fa>
tores3
o &epend?nias entre as funionalidades e o"9etos envolvidosO
o &istri"ui#$o da arga de tra"alho entre os responsveisO
o *omple2idade das funionalidadesO
o Adiantamento das atividades !ue ofereem alto riso para o pro9etoO
o *onsidera#$o de maros e2ternos do pro9eto, omo demonstra#;es,
lan#amento de vers;es "eta, pontos de verifia#$o6
Ap+s a onsidera#$o desses fatores, as atividades s$o distri"udas aos pro>
gramadores>lderes por atividade de neg+io, os !uais ir$o distri"uir as ativi>
dades de onstru#$o das funionalidades entre a e!uipe de desenvolvimento,
sempre om foo na funionalidade a ser onluda6
O resultado prinipal dessa atividade um ronograma das atividades de ne>
g+io, os programadores>lderes atri"udos <s atividades de neg+io "em
omo a lista de lasses e o"9etos atri"udos agrupados por funionalidade6
J a fase de *onstru#$o, tipiamente reali=ada em itera#;es de - semanas, om>
preende as seguintes atividades3
&etalhar por funionalidade3 Ap+s a ela"ora#$o da lista de lasses e o"9etos
proveniente da atividade anterior, s$o formadas e!uipes de funionalidades,
onde ada e!uipe torna>se responsvel por uma funionalidade de neg+io6 A
partir de ent$o, ada e!uipe de funionalidade iniia o estudo dos modelos
gerados para a!uela funionalidade, 9untamente om os diagramas e demais
doumentos at o momento produ=idos6 Opionalmente, a e!uipe pode de>
senvolver um diagrama de se!W?nia para a funionalidade, omo forma de
apoio no entendimento da intera#$o entre os o"9etos6
Gessa atividade, o modelo de o"9etos refinado e os atri"utos e mtodos
identifiados s$o inludos no diagrama de lasses ela"orado anteriormente,
14
adiionando inlusive novas lasses identifiadas durante o refinamento do
modelo6
)m prefio das lasses e mtodos esrito om o"9etivo de detalhar os o">
9etivos de ada uma, das opera#;es reali=adas, e demais informa#;es !ue fo>
rem neessrias ao entendimento da finalidade de ada uma delas6
5rinipal resultado dessa atividade um paote de pro9eto ou design detalha>
do, ontendo diagrama de se!W?nia, modelo de o"9etos e lasses detalhado,
restri#;es de design, "em omo lista de tarefas para ada mem"ro da e!uipe6
*onstruir por funionalidade3 ompreende a onstru#$o da funionalidade vi>
svel para o liente, ou se9a, uma feature6 X a implementa#$o de lasses,
mtodos e demais omponentes neessrios ao atendimento da funionalida>
de6 '$o reali=adas tam"m inspe#;es de +digo om o"9etivo de identifiar
possveis desvios dos padr;es adotados, prtias inade!uadas, e outros itens
!ue podem omprometer a !ualidade dos +digos gerados6 Ao final, reali=a>
do teste unitrio om o"9etivo de ertifiar !ue a funionalidade foi atendida6
O produto final dessa atividade gera#$o da vers$o final da funionalidade
para entrega ao liente6
:igura R I *ilo de desenvolvimento "aseado em :&&6
:onte3 Xeptagon A-100C6
P6RA&A5JFL% 'O:JNA@% &%L%(O57%GJ I A'&
O mtodo Adaptive Software Development I A'&, ou &esenvolvimento
Adaptvel de Software foi proposto iniialmente por Jim Xighsmith em 0HHV
ANF'%G%%K, -100C6 Q "aseado em itera#;es de urto pra=o Apouas semanas ou no
m2imo um m?sC6
'uas prinipais atividades de levantamento dos re!uisitos do sistema s$o "a>
seadas em reuni;es JA& A*oint Application DevelopmentC om os usurios da solu>
#$o, e as atividades de desenvolvimento "aseadas em @A& A(apid Application De%
velopmentC6 )ma das prinipais premissas desse mtodo manter o liente ou
15
usurio sempre perto da e!uipe de desenvolvimento, para !ue todas as dvidas e
todos os eslareimentos se9am forneidos sempre !ue neessrio atravs da inte>
ra#$o entre as e!uipes6
O prinipal foo do A'& a gera#$o de +digo, ou se9a, a programa#$o6 O
o"9etivo prinipal entregar uma funionalidade ao usurio o !uanto antes, para !ue
o mesmo iniie os testes e identifi!ue as demais neessidades do sistema, o !ual ir
se adaptando ao longo do tempo, at o momento !ue a funionalidade torna>se
ompleta6 &essa forma, esse mtodo usa o prinpio da isa para o"ter os re!uisi>
tos detalhados6 )ma pe!uena e limitada vers$o da funionalidade disponi"ili=ada
para o usurio, o !ual e2euta testes iniiais e naturalmente sente falta de demais
miro>funionalidades !ue ompletam a!uela funionalidade6 &essa forma a nees>
sidade do usurio e2plorada forneendo assim mais detalhes so"re o !ue deve ser
feito6
*ada ilo de desenvolvimento "aseado no A'& guiado pelas seguintes fases3
%speula#$o 3 Gessa fase, a e!uipe o"tm 9unto aos usurios atravs de ses>
s;es JA& os re!uisitos iniiais do !ue deve ser feito6 *om "ase nesses re!ui>
sitos iniiais, reali=ado um plane9amento om "ase no entendimento o"tido
e dos omponentes a serem gerados para suprir a!uela funionalidade6 Q re>
ali=ada tam"m uma rpida prototipa#$o e modelagem para !ue o usurio
possa visuali=ar uma vers$o iniial do prot+tipo ainda n$o funional6
*ola"ora#$o 3 A fase de ola"ora#$o ompreende a onstru#$o da funionali>
dade6 A e!uipe desenvolvimento reali=a a onstru#$o "aseada no entendi>
mento o"tido at o momento6 O termo *ola"ora#$o utili=ado em deorr?n>
ia da neessidade de ola"ora#$o entre os envolvidos I e!uipe de desenvol>
vimento e liente, todos passam a ola"orar mutuamente para !ue o produto
se9a gerado e onludo6
Aprendi=ado 3 @eali=ada ap+s a fase de *ola"ora#$o, a etapa de aprendi=ado
onstitui a entrega do produto onstrudo ao liente para !ue o mesmo iniie
os testes6 &urante esses testes, o mesmo ir produ=ir relat+rios de defeitos
ou neessidades de melhorias, esses relat+rios servir$o omo insumos para o
aprendi=ado da e!uipe so"re o !ue deve ser tratado na pr+2ima itera#$o6 O
foo da etapa de aprendi=ado tam"m na !ualidade, pois nessa fase os
pontos !ue neessitam de aten#$o s$o identifiados e reportados para trata>
mento tam"m na pr+2ima itera#$o6
:igura T I *ilo de desenvolvimento "aseado em A'&6
:onte3 Knol A-100C, om adapta#;es6
&s3e#ulao
A5lane9amento,
@e!uisitos ,siosC
"olaorao
A@e!uisitos e
pro9etos detalhados,
onstru#$oC
+3rendiDado
AJestes, feed"aMs
e melhoriasC
&ntre>a
AFnremento do
software,
integra#$oC
16
E. PR*="*P+*S "+R+"T&R:ST*"+S $/S&R.+D+S =$S '(T$D$S )G&*S
Os mtodos geis analisados est$o "aseados no desenvolvimento inremen>
tal, ou se9a, o software inrementado em itera#;es ao longo do tempo om novas
funionalidades6
&e aordo om 'ommerville A-11BC o modelo inremental om"ina elementos
do modelo asata sendo apliado de maneira iterativa, onde o o"9etivo ao final de
ada itera#$o apresentar um produto operaional, ou se9a, um inremento nas fun>
ionalidades entregues ao usurio, at !ue ao final das itera#;es o sistema ompleto
se9a entregue ao usurio6
:igura B I &esenvolvimento Fnremental
:onte3 'ommerville A-11BC
*onsiderando o fato !ue todos os mtodos geis analisados seguem o mode>
lo inremental, o presente estudo "usou identifiar em ada mtodo gil as ativida>
des reali=adas em ada etapa do desenvolvimento inremental sugerido por 'om>
merville A-11BC6 A seguir apresentada uma sntese das atividades reali=adas e ar>
tefatos gerados por ada mtodo gil disutido anteriormente6
Ja"ela 0 I &efinir re!uisitos iniiais
7todo &etalhamento da atividade
'*@)7 &efini#$o e detalhamento do 5rodut ,aMlog
E5 Os lientes esrevem as )ser 'tories
:&& %la"ora#$o de doumentos de re!uisitos
A'& @e!uisitos s$o definidos em sess;es JA& entre e!uipe de desenvolvimento e liente
Ja"ela - I Atri"uir re!uisitos aos inrementos
7todo &etalhamento da atividade
'*@)7 &efini#$o do 'print ,aMlog6
E5 &efini#$o 9unto ao liente so"re !uais )ser 'tories ser$o tratadas em ada itera#$o6
:&&
As funionalidades s$o agrupadas, priori=adas e distri"udas aos mem"ros da e!uipe
responsveis por sua ondu#$o6
A'& &efini#$o do nmero de itera#;es "aseada no !ue deve ser reali=ado6
17
Ja"ela P I 5ro9etar a ar!uitetura do sistema
7todo &etalhamento da atividade
'*@)7 Q reali=ado um pro9eto geral de ar!uitetura "aseado no 5rodut ,aMlog6
E5 A ar!uitetura pro9etada paralelamente ao desenvolvimento6
:&& *ria#$o de diagrama de lasses representando a ar!uitetura6
A'& Atividade n$o detalhada6
Ja"ela R I &esenvolver inremento do sistema
7todo &etalhamento da atividade
'*@)7
Fmplementa#$o dos re!uisitos onstantes no 'print ,aMlog previstos para a itera#$o atu>
al6
E5 Fmplementa#$o das )ser 'tories ontempladas na itera#$o atual6
:&&
Anlise da doumenta#$o, ela"ora#$o de &iagrama de 'e!u?nia, refinamento do mode>
lo, implementa#$o das funionalidades ontempladas na itera#$o6
A'& Fmplementa#$o dos re!uisitos ontemplados na itera#$o atual6
Ja"ela T I Lalidar inremento
7todo &etalhamento da atividade
'*@)7 G$o h proedimento de valida#$o definido6
E5
%2eu#$o de testes unitrios pelos desenvolvedores, e testes de aeita#$o pelos lien>
tes6
:&&
Os testes e valida#;es s$o reali=ados pela e!uipe de desenvolvimento durante e ap+s a
implementa#$o6
A'& Os lientes reali=am testes e valida#;es tnias e funionais do sistema6
Ja"ela B I Fntegrar inremento
7todo &etalhamento da atividade
'*@)7 A integra#$o reali=ada ao final de ada 'print6
E5 Fntegra#$o paralela ao desenvolvimento das )ser 'tories6
:&& Atividade reali=ada ao final dos testes e valida#;es do inremento6
A'& G$o h proedimento definido6
Ja"ela V I Lalidar sistema
7todo &etalhamento da atividade
'*@)7 O liente reali=a a valida#$o do sistema em reuni$o no ltimo dia do 'print6
E5 O liente reali=a as valida#;es do sistema ap+s a disponi"ili=a#$o do mesmo6
:&& A valida#$o reali=ada atravs dos testes e valida#;es dos inrementos6
A'& G$o h proedimento de valida#$o definido6
Atravs das ta"elas anteriores possvel identifiar algumas das prinipais
atividades reali=adas em ada um dos mtodos geis ontemplados no estudo, "em
omo os papis e artefatos envolvidos nessas atividades6
Q o"servado !ue todos os mtodos geis seguem a premissa do desenvolvi>
mento iterativo e inremental, onde as vers;es do software s$o inrementadas atra>
vs de ada itera#$o, e em ada itera#$o as disiplinas da engenharia de software
s$o e2eutadas iliamente6
Q possvel o"servar tam"m !ue os mtodos geis s+ umprem seu papel se
a presen#a do usurio ou do liente 9unto < e!uipe de desenvolvimento for pratia>
18
mente onstante6 %ssa neessidade deve>se ao fato dos mtodos geis suprimirem
algumas etapas do gereniamento de re!uisitos, gerando assim a neessidade de
ontato onstante entre e!uipe de desenvolvimento e liente6 5or outro lado, os m>
todos geis inserem o usurio no onte2to do pro9eto de desenvolvimento atravs do
seu enga9amento nas atividades do dia>a>dia, entretanto, nem sempre as unidades
de neg+io detentoras do onheimento de neg+io podem disponi"ili=ar uma pes>
soa para estar onstantemente envolvida na e!uipe de desenvolvimento, diante dis>
so, podemos verifiar !ue isso torna>se um fator rtio de suesso para pro9etos de
desenvolvimento utili=ando mtodos geis6
Outro fator rtio de suesso a disponi"ilidade da e!uipe em ser multidisi>
plinar, ou se9a, a e!uipe deve ser formada por profissionais apa=es de atuar em di>
versos papis dentro da %ngenharia de 'oftware6
Atravs de um panorama geral so"re os mtodos geis ontemplados nesse
artigo, o"serva>se tam"m !ue os mtodos geis n$o reali=am e2pliitamente todas
as atividades reomendadas por 5ressman A-11BC relaionadas < engenharia de
software, a figura a"ai2o demonstra !ue !uanto maior o nvel de maturidade de uma
empresa em desenvolvimento de software, menor o nvel de ader?nia dos mto>
dos geis aos re!uisitos e2igidos pelo Capailit! "aturit! "odel +ntegrated I *77F,
mantido pelo Software Engineering +nstitute > '%F6 &essa forma, podemos onluir
!ue os mtodos geis priori=am a e2eu#$o de atividades foadas somente na ons>
tru#$o do software em detrimento < utili=a#$o de demais atividades de ontrole e ge>
reniamento6
:igura V I Gvel de ader?nia dos mtodos geis ao *77F6
:onte3 ,log *77F A-100C, om adapta#;es6
19
Q possvel o"servar Aver figura VC !ue os mtodos geis '*@)7, :&& e E5
n$o satisfa=em nenhum dos re!uisitos dos nveis R e T do modelo de maturidade
*77F6
7esmo onsiderando o "ai2o nvel de ader?nia dos mtodos geis aos re>
!uisitos do *77F, possvel verifiar atravs de pes!uisa reali=ada AA7,Y'O:J,
-100C durante as duas primeiras semanas de Junho do m?s de -100, em um univer>
so de 0B. pessoas, !ue a utili=a#$o de mtodos geis tem sido ampla em diversos
tipos de pro9etos de software, om uma "ai2a oorr?nia de falha por tipo de pro9eto6
Os mtodos geis tem se destaado no merado de produ#$o de software
A:igura .C em deorr?nia da sua adapta"ilidade <s mudan#as om "ai2o impato
em deorr?nia do seu modelo iterativo de tra"alho, as mudan#as s$o identifiadas
em tempo h"il de serem implementadas em ausar tantos impatos aos produtos
gerados, outro fator !ue tem ooperado para a aeita"ilidade dos mtodos geis a
apaidade das pessoas envolvidas em aeitarem as mudan#as neessrias6
:igura . I 'itua#$o dos pro9etos geis por tipo de pro9eto6
:onte3 Am"Zsoft A-100C, om adapta#;es6
Outra pes!uisa AA7,Y'O:J, -100C tam"m demonstrou !ue pouos pro9etos
de desenvolvimento de novos softwares t?m optado por n$o utili=ar mtodos geis
Aver figura HC, essa op#$o demonstra !ue os mtodos geis tem tido ampla aeita"ili>
dade no merado de desenvolvimento de software6
20
:igura H I Jipos de pro9etos !ue n$o optaram pela utili=a#$o de mtodos geis
:onte3 Am"Zsoft A-100C, om adapta#;es6
)sar uma metodologia gil n$o para todos6 A:ON(%@, -100C6 5ara !ue
um mtodo gil se9a utili=ado om suesso, algumas premissas devem ser o"serva>
das6
A primeira delas !ue os mtodos geis s$o preferenialmente apliveis em
situa#;es onde os re!uisitos s$o inertos ou volteis, dessa forma o ilo iterativo e
inremental permite !ue !uais!uer mudan#as se9am failmente assimiladas e im>
plantadas pela e!uipe de pro9eto6
Outra premissa a e2ist?nia de uma e!uipe responsvel e motivada, essa
e!uipe envolve tanto a e!uipe de desenvolvimento !uanto os representantes dos li>
entes ou usurios6
5or ltimo, o liente ou usurio deve ter o entendimento neessrio para su>
prir a e!uipe de desenvolvimento nesses onheimentos e os mesmos devem ser
envolvidos no pro9eto6
21
F. $ S$,T-+R& L*.R&
A origem do software livre oorreu em meados de 0HB1, !uando os
fa"riantes de omputadores vendiam suas m!uinas e 9untamente om as mesmas
eram entregues os +digos>fonte dos programas, permitindo !ue os mesmos fossem
alterados e redistri"udos6 Ao final da dada de B1, om o aumento da demanda
por programas de omputador, os fa"riantes pararam de entregar os programas
9untamente om os hardwares e passaram a vender os programas impondo
restri#;es !uanto < distri"ui#$o surgindo dessa forma os softwares proprietrios6
&e aordo om Amadeu A-11RC, o pes!uisador do (a"orat+rio de Fntelig?nia
Artifiial do 7FJ A"assac$usetts +nstitute of Tec$nolog!C, @ihard 'tallman, no ano
de 0H.P, tomou a deis$o de desenvolver o primeiro sistema operaional livre om
todas as funionalidades e2istentes no 9 onheido sistema operaional )ni26 %sse
primeiro sistema operaional livre foi denominado 5ro9eto GG)6 A idia proposta por
'tallman ganhou adeptos ao redor do mundo ulminando om a ria#$o da :':
A:ree 'oftware :oundationC6
Go ano de 0HH0, (inu2 Jorvalds, matemtio finland?s fe= a divulga#$o
atravs da internet do nleo AMernelC de um sistema operaional om o +digo>fonte
a"erto, o !ual era "aseado no 9 e2istente )ni2, nasendo assim o sistema
operaional GG)/(inu26
O movimento de pu"lia#$o de 'oftware (ivre ganhou notoriedade nos
ltimos anos6 %ste modo de produ#$o de software tem resultado em produtos de
e2elente !ualidade e grande penetra#$o em ertos nihos de merado mundial de
software6 A araterstia mais importante do software livre a li"erdade de uso,
+pia, modifia#$o e redistri"ui#$o6 %sta li"erdade onferida pelos autores do
programa e efetivada atravs da distri"ui#$o do +digo fonte dos programas, o !ue
os transforma em "ens p"lios, disponveis para utili=a#$o por toda omunidade e
de maneira !ue se9a mais onveniente a ada indivduo6 A li"erdade para usar,
opiar, modifiar e redistri"uir software livre lhe onfere uma srie enorme de
vantagens so"re o software proprietrio6 A mais importante delas a disponi"ilidade
do +digo fonte, por!ue isto evita !ue os usurios se tornem refns de tenologias
proprietrias AX%E'%(, -11-C6
Atualmente, duas grandes institui#;es mundiais est$o < frente do movimento
em favor do software livre, a :': AFree Software FoundationC e a O'F AOpen Source
+nitiativeC6
&e aordo om a :':, o software livre est fundamentado em !uatro
li"erdades assim desritas3
(i"erdade 13 Q a li"erdade de e2eutar o programa para !ual!uer prop+sitoO
(i"erdade 03 Q a li"erdade de estudar o programa, omo ele funiona e
adapt>lo <s suas
neessidades, o aesso ao +digo fonte um pr>re!uisito para essa li"erdadeO
(i"erdade -3 Q a li"erdade de redistri"uir +pias de modo !ue vo? possa
a9udar o pr+2imoO
(i"erdade P3 Q a li"erdade de aperfei#oar o programa de modo !ue toda
omunidade se "enefiie6
%m 0HH., ,rue 5erens e %ri @aZmond fundaram a O'F AOpen Source
+nitiativeC om o o"9etivo de promover o software livre6
O foo prinipal da :': s$o as li"erdades !ue um software livre deve possuir,
22
por outro lado, a O'F apresenta prinipais araterstias !ue um software livre deve
possuir6
G. $ %S$ D& S$,T-+R&S L*.R&S &' +P$*$ +$S '(T$D$S )G&*S
Go deorrer do presente artigo, foi possvel o"servar !ue todos os mtodos
geis o"servados reali=am, de alguma forma, as atividades do desenvolvimento
inremental proposto por 'ommerville A-11BC6 &iante disso, possvel onluir !ue
os mtodos geis podem ser utili=ados omo alternativa aos modelos de proesso
de desenvolvimento de software tradiionais6
Juntamente om as atividades reali=adas no proesso de desenvolvimento
gil surge a neessidade do uso de ferramentas de apoio om o"9etivo de ontrolar e
apoiar a e2eu#$o das referidas atividades6 &iante dessa neessidade, h a
proposta da utili=a#$o de um ara"ou#o de ferramentas de ontrole e apoio <s
atividades reali=adas durante o desenvolvimento gil, om a partiularidade de !ue
todas as ferramentas propostas s$o "aseadas em software livre6
5ara e2emplifiar o uso de ferramentes livres no apoio ao desenvolvimento
"aseado e mtodos geis, foram seleionadas algumas ferramentas utili=adas pelo
merado de desenvolvimento de software as !uais ofereem meanismos para
suprir ada uma das fases do ilo de desenvolvimento6 As ferramentas foram
seleionadas dentre vrias op#;es disponveis, optando por a!uelas !ue se apliam
em ada fase do ilo de vida6
B60 %*(F5'% 5@O*%'' :@A7%NO@K *O75O'%@
A ferramenta Eclipse Process Framewor# Composer prov? um framewor#
para engenharia de proessos, ou se9a, um ara"ou#o de reursos om o"9etivo de
permitir a ela"ora#$o e ustomi=a#$o de proessos, se9am eles de engenharia de
software ou outros proessos !uais!uer6 Q destinada, em prinpio, aos %ngenheiros
de 5roesso ou Analistas de 'istemas foados em atividades relaionadas ao
mapeamento e/ou defini#$o de proessos6 &essa forma, a mesma pode se apliada
em apoio aos mtodos geis atravs da defini#$o e pu"lia#$o do proesso
adotado6 Atravs dessa ferramenta possvel esta"eleer as atividades envolvidas
em ada proesso, su"proesso ou fase, "em omo definir os papis atuantes
nessas etapas 9untamente om os artefatos gerados em ada uma das etapas6
Ap+s essa defini#$o, a ferramenta permite a pu"lia#$o do proesso definido
em am"iente we", em formato semelhante ao utili=ado pelo proesso unifiado, ou
at mesmo pelo Open)5 AOpen 'nified ProcessC6 'egue a mesma estrutura de
5apis, &isiplinas, Atividades, Artefatos e 5roessos6
23
:igura 01 I *aptura de tela do %lipse 5roess :rameworM *omposer
:onte3 XA)7%@ A-11VC6
B6- &OJ 5@OJ%*J
A ferramenta &ot5ro9et destinada ao gereniamento de pro9etos, mantida
por um grupo de voluntrios e por seus usurios os !uais reportam pro"lemas e
reali=am manuten#;es atravs de omunidade pr+pria em am"iente internet6 :oi
desenvolvida om uso da linguagem 5X5 utili=ando o "ano de dados 7Z'[( por
padr$o, entretanto permite a utili=a#$o de outros "anos de dados omo o
5ostgre'[(6
A ferramenta suporta as nove reas de onheimento do gereniamento de
pro9etos previstas pelo 57,oK APro,ect "anagement &od! of -nowledgeC, sendo
utili=ada omo alternativa ao 7irosoft 5ro9et Aferramenta proprietria destinada ao
gereniamento de pro9etosC6 5ermite a importa#$o de e2porta#$o de dados de outras
ferramentas, "em omo a gera#$o de relat+rios, grfios Agantt, aloa#$o de
reursos, dentre outrosC, integra#$o om ferramentas de email, dentre outras
funionalidades !ue a apro2imam das demais solu#;es proprietrias om a mesma
finalidade6 At o momento da ela"ora#$o do presente artigo, a ferramenta possui
RVTR0 usurios registrados6
*onsiderando !ue um pro9eto um esfor#o temporrio empreendido para
riar um produto, servi#o ou resultado e2lusivo A57F, -11RC, possvel onluir !ue
os pro9etos de software se en!uadram dentre os pro9etos !ue neessitam ser
gereniados, e para tal reomenda>se o uso das "oas prtias itadas pelo 57,oK6
24
&essa forma, os pro9etos "aseados em desenvolvimento gil tam"m preisam ser
gereniados, e para suprir essa neessidade, pode ser utili=ada a ferramenta
&ot5ro9et6
:igura 00 I *aptura de tela da ferramenta &ot5ro9et6
:onte3 FJ 5areiros A-10-C6
B6P %*(F5'% F&%
A ferramenta %lipse F&% A+ntegrated Development EnvironmentC destinada
prinipalmente < onstru#$o de +digos>fonte6 'ua prinipal diferenia#$o a
apaidade de e2tens$o de suas funionalidades atravs de plugins para as mais
diversas finalidades !ue podem ser instalados de aordo om a neessidade de
ada usurio6
Q mantida pelo 5ro9eto %lipse o !ual foi riado originalmente pela F,7 em
novem"ro de -110 e suportada por um ons+rio de diversos forneedores na rea
de software6 5osteriormente, esse ons+rio se tornou a :unda#$o %lipse em -11R
omo uma organi=a#$o sem fins lurativos u9o o"9etivo prinipal foi tornar a
ferramenta e2tensvel para !ue !uais!uer usurios ou forneedores pudessem
ustomi=>la e us>la onforme suas neessidades6
Atualmente, a prinipal utili=a#$o da ferramenta no desenvolvimento
"aseado na linguagem Java, entretanto a ferramenta possui diversos plugins para
desenvolvimento atravs das mais diversas linguagens de programa#$o, tais omo
5X5, 5erl, S$ell Script, 5(/'[(, dentre outras6 A mais reente e inovadora
apaidade da ferramenta o desenvolvimento de omponentes em *O,O(
Alinguagem de programa#$o utili=ada em am"iente "ainframeC6 Alm disso,
periodiamente s$o disponi"ili=ados diversos novos plugins para as mais diferentes
finalidades, ampliando a apaidade e a"rang?nia de uso da ferramenta6
&essa forma, a mesma fornee aos mtodos geis o ara"ou#o de
25
ferramentas neessrias para a onstru#$o do software, o"rindo todas as
atividades inerentes ao desenvolvimento Aonstru#$o de +digo>fonte, ompila#$o,
depura#$o, testes unitrios, versionamento, et666C, sendo !ue determinadas
atividades re!uerem plugins e framewor#s adiionais para o devido uso Ae23 7aven,
Ant, Junit, et666C6
:igura 0- I *aptura de tela da ferramenta %lipse F&%6
:onte3 &o autor6
B6R '),L%@'FOG
Jodo o proesso de desenvolvimento, se9a ele gil ou tradiional, utili=a e
produ= artefatos ou produtos de tra"alho Adoumenta#$o, odigos>fonte, et666C6
%sses produtos de tra"alho neessitam ser devidamente arma=enados e
versionados atravs de alguma ferramenta de ontrole de vers$o, umprindo assim
uma das prinipais atividades da prtia de ger?nia de onfigura#$o6
A ferramenta 'u"version destinada ao ontrole de vers$o, foi desenvolvida
omo um dos pro9etos da funda#$o Apahe 'oftware omo forma de melhoria da 9
e2istente ferramenta denominada *L' AConcurrent .ersion S!stemC6 5ermite aos
desenvolvedores, gerentes de onfigura#$o, e demais papis partiipantes no ilo
de vida de desenvolvimento, o orreto versionamento de todos os artefatos dos
pro9etos atravs de ferramentas lientes, linhas de omando ou de plugins,
permitindo a fil integra#$o do am"iente loal om o servidor de ar!uivos6
Alm do versionamento dos artefatos, a ferramenta permite a resolu#$o de
onflitos entre vers;es atravs do reurso onheido omo merge, "em omo a
gera#$o de "aselines e aplia#$o de eti!uetas nas vers;es ou on9unto de vers;es
geradas6
Joda a intera#$o entre o usurio e a ferramenta pode ser reali=ado atravs de
26
linha de omando, plugins ou lientes sendo e2eutados em on9unto om o
navegador de ar!uivos loal6
:igura 0P I *aptura de tela do plugin do 'LG na ferramenta %lipse F&%6
:onte3 &o autor6
B6T 7AGJF'
&urante a etapa de testes e homologa#$o dos softwares onstrudos atravs
de mtodos geis, os usurios enontram defeitos e inonsist?nias !ue neessitam
ser reportadas <s e!uipes de desenvolvimento6 *om o"9etivo de ontrolar o registro
dos defeitos e inonsist?nias, pode ser adotada a ferramenta 7antis ,ug JraMer6
A mesma esrita em 5X5 e utili=ando os "anos de dados 7Z'[( e 5ostgre'[(,
alm da neessidade de algum servidor we" para suportar o uso da ferramenta6
Gesse aso, reomenda>se o uso do servidor Apahe, por tam"m ser um pro9eto
"aseado em software livre e de fil integra#$o om demais servi#os6
)m grande diferenial da ferramenta 7antis !ue a mesma permite o registro
e aompanhamento dos defeitos atravs de apliativos para i5hone, Android ou
Nindows 7o"ile, aumentando a mo"ilidade e failidade de uso6
)ma outra araterstia marante da ferramenta 7antis !ue a mesma
permite a onfigura#$o de um servidor de emails para !ue no momento de um
registro ou fehamento de algum defeito ou alguma inonsist?nia, se9a enviado um
email ao responsvel om o"9etivo de torn>lo iente da a"ertura do pro"lema6
27
Ap+s o registro de um defeito, possvel aloar um responsvel para o
mesmo o !ual fiar responsvel por resolver e devolver o a solu#$o do pro"lema
para !ue o mesmo se9a retestado pelo usurio ou pelo responsvel pelo registro6 A
ferramenta permite tam"m a gera#$o de relat+rios onsolidados dos registros de
defeitos6
:igura 0R I *aptura de tela da ferramenta 7antis ,ug JraMer6
:onte3 7antis A-10-C6
B6B X)&'OG
Os pro9etos de desenvolvimento de software "aseados e mtodos geis
possuem uma araterstia muito din\mia !ue o desenvolvimento de mltiplas
funionalidades paralelamente6 Ga maioria dos asos, !uando e2iste esse
desenvolvimento paralelo, torna>se difil garantir a integridade e funionamento de
uma determinada vers$o de software, ou at mesmo garantir !ue os +digos>fonte
arma=enados nas ferramentas de ontrole de vers$o Ae23 'u"versionC este9am
ntegros e n$o impatem o funionamento do pr+2imo paote do produto a ser
gerado6 &iante deste onte2to, surge a neessidade da prtia denominada
Fntegra#$o *ontnua A*ontinuous FntegrationC6 %ssa prtia definida omo sendo a
integra#$o de uma ou mais altera#;es de +digo>fonte em fae aos +digos>fonte
arma=enados no ontrole de vers$o, deve oorrer fre!uentemente em perodos
programados entre a gera#$o da vers$o de ada odigo>fonte e a gera#$o do
pr+2imo paote do software, e aso oorram erros, os desenvolvedores
responsveis devem ser avisados para !ue provideniem a orre#$o imediatamente
A:ON(%@, -10-C6
&iante disso, a ferramenta Xudson reali=a o papel de reali=ar a integra#$o
28
ontnua atravs da sinroni=a#$o onstante dos +digos>fonte arma=enados no
ontrole de vers$o, empaotamento A"uildC e disponi"ili=a#$o AdeploZC dos mesmos
em am"iente de testes om o o"9etivo de garantir a integridade dos +digos>fonte
ontinuamente6 %ssa tarefa e2eutada de forma automtia e agendada pela
ferramenta Xudson6 5ara sua e2eu#$o, depende apenas de um servidor we" Ade
prefer?nia o ApaheC e do aesso ao ontrole de vers;es6
:igura 0T I *aptura de tela da ferramenta Xudson6
:onte3 %lipse A-10-C6
29
H. "$="L%SA$
Atravs dos estudos reali=ados no presente artigo, foi possvel o"ter uma vi >
s$o geral dos prinipais mtodos geis utili=ados pelo merado de onstru#$o de
softwares atualmente, "em omo utili=ar os softwares livres omo ferramentas de
apoio ao proesso de desenvolvimento "aseados em mtodos geis6
%m ada um dos mtodos analisados, foi possvel identifiar as prinipais ati >
vidades reali=adas, os papis envolvidos na reali=a#$o dessas atividades, "em
omo os artefatos ou produtos gerados omo resultado dessas atividades6 :oi poss>
vel identifiar tam"m !ue a prinipal semelhan#a entre os mtodos geis a sua
reali=a#$o de atividades em ilos iterativos e inrementais, onde ao final de ada
itera#$o s$o inludas ou inrementadas novas funionalidades ao software e2isten>
te, proporionando < e!uipe de onstru#$o de software a apaidade de entregar
produtos em m+dulos ou paotes usveis, diminuindo assim o tempo entre a on>
ep#$o do software e a entrega ao usurio6 :oi possvel detetar tam"m a neessi>
dade onstante da presen#a do usurio Aou um representante do mesmoC no am"i >
ente da onstru#$o do software, provendo assim a agilidade no forneimento das in>
forma#;es para garantir a dinamiidade do tra"alho6
:a=endo uma ompara#$o das atividades reali=adas pelos mtodos geis,
om as atividades previstas no modelo *77F, foi possvel onluir !ue !uanto mais
alto o nvel de maturidade de uma empresa, menor o nvel de ader?nia dos mto>
dos geis aos re!uisitos do modelo Avide figura VC6 Assim possvel verifiar !ue os
mtodos geis n$o t?m sido apliados em empresas om alto nvel de maturidade
nos proessos de desenvolvimento de software6
5odemos verifiar atravs da figura H !ue os mtodos geis tem tido ampla
aeita#$o em novos pro9etos de desenvolvimento de software, pois apenas PU dos
novos pro9etos optaram pela n$o utili=a#$o de mtodos geis, demonstrando assim
uma tend?nia do merado em enarar o desafio da utili=a#$o de um dos mtodos
geis em detrimento aos demais mtodos de desenvolvimento at ent$o utili=ados
pelo merado6
5or fim, possvel onluir !ue o software livre pode ser um "om aliado ao
proesso de desenvolvimento "aseado em mtodos geis, pois e2istem diversas fer>
ramentas de apoio ao desenvolvimento apa=es de suprir as neessidades do on>
te2to de tra"alho em um am"iente de desenvolvimento de software6 Apesar do mto>
do de tra"alho de determinada e!uipe ser "aseado em desenvolvimento gil, e2iste
a neessidade do uso de ferramentas de ontrole e apoio na e2eu#$o das ativida>
des6
30
USING AGILE METHODS SUPPORTED BY FREE SOFTWARES
Abstract: T$e agile software development met$ods $ave een increasingl! used on
software development companies/ T$ese companies are tr!ing to unif! t$e practices
of iterative and incremental development to t$e agilit! and d!namicit! offered ! t$e
agile met$ods/ T$is article descries t$e main concepts and activities of t$e
following agile met$ods0 SC('"1 Extreme Programming1 Feature Driven
Development and Adaptive Software Development/ T$e article also ma#es a
comparison etween t$e met$ods referred aove and tells w$ic$ activities eac$
met$od use to fulfill t$e steps of t$e +ncremental Development proposed !
Sommerville 234456/ Also descries $ow t$e free software can support t$e
development ased on agile met$ods using support tools/
Keywr!s: Agile "et$ods1 SC('"1 7P1 FDD1 ASD1 Software Engineering1
Software Development1 +ncremental Development1 Free Software/
31
I. R&,&RJ="*+S
A7A&%), 'rgio6 Software livre2 a luta 3ela lierdade do #on!e#imento. 5erseu
A"ramo, -11R6
A7,(%@, 'ott N6, &Kaminin> t!e +>ile 'anifesto6 &isponvel em3
]http3//www6am"Zsoft6om/essaZs/agile7anifesto6html^6 Aesso em3 1R out6 -10-6
A7,Y'O:J6 SurveLs +mLsoft6 &isponvel em3
]http3//www6am"Zsoft6om/surveZs/^6 Aesso em 0R set6 -10-6
,%*K, K6 +>ile 'anifesto6 &isponvel em3 ]http3//www6agilemanifesto6org^6
Aesso em3 -R set6 -10-6
,%*K, K6 &Ktreme Pro>rammin> &K3lained6 7assahusetts6 Addison>NesleZ,
-1116
,(OG *77F6 PM>ina internet /lo> "''*6 &isponvel em3
]www6"logmmi6om6"r^6 Aesso em3 -1 out6 -10-6
*OA&, 5eter6 (%:%,L@%, %ri6 &%()*A, Jeff6 6ava 'odelin> in "olor wit! %'L2
&nter3rise "om3onents and Pro#ess6 5rentie Xall, 0HHH6
%*(F5'%6 5ro9eto %lipse6 &isponvel em3 ]http3//www6elipse6org^6 Aesso em3 1V
nov6 -10-6
:ON(%@, 7artin6 T!e new metodolo>L6 &isponvel em3
]http3//martinfowler6om/artiles/new7ethodologZ6html^6 Aesso em3 1- out6 -10-6
:ON(%@, 7artin6 "ontinuous *nte>ration6 &isponvel em3
]http3//martinfowler6om/artiles/ontinuousFntegration6html^6 Aesso em3 1V nov6
-10-6
X%5JAGOG6 ,eature Driven Develo3ment6 &isponvel em3
]http3//www6heptagon6om6"r/fdd^6 Aesso em3 -1 set6 -10-6
X%E'%(, @o"erto A6 Software livre2 3ro3osta de aNes de >overno 3ara in#enti-
var o uso de software livre. @elat+rio Jnio @J>&FG: 11R/-11-6 *uriti"a>5@,
-11-6
32
FJ 5areiros6 &isponvel em3 ]http://www.itparceiros.com.br/^6 Aesso em3 1B nov6
-10-6
KGO(6 +>ile software develo3ment6 &isponvel em3
]http3//Mnol6google6om/M/agile>software>development^6 Aesso em3 -P out6 -10-6
7AGJF'6 'antis /u> Tra#Oer. &isponvel em3 ]http://www.mantisbt.org^6 Aesso
em3 1V nov6 -10-6
5A(7%@, 'tephen6 :%('FGG, John 76 + Pra#ti#al Guide to ,eature-Driven Devel-
o3ment. 5rentie Xall, -11-6
XA(7%@, 5eter6 &#li3se Pro#ess ,rameworO "om3oser P Part 12 5eL "on#e3ts.
F,7 @ational 'oftware, -11V6
57F6 P'/o5 P "on9unto de "on!e#imentos em Geren#iamento de Pro9etos.
APa edi#$oC, 5ro9et 7anagement Fnstitute, -11R6
5@%''7AG, @OG%@ '6, &n>en!aria de Software. ABa edi#$oC, '$o 5aulo, %d6
7GrawXill, -11B6
'*@)7 A((FAG*%6 PM>ina internet S#rum +llian#e6 &isponvel em3
]http3//www6srumalliane6org/^6 Aesso em3 1P set6 -10-6
'OA@%', 7ihel dos 'antos, "om3arao entre 'etodolo>ias )>eis e
Tradi#ionais 3ara o Desenvolvimento de Software6 )nipa > )niversidade 5resi>
dente Ant8nio *arlos, :auldade de Jenologia e *i?nias de *onselheiro (afaiete6
-11H6
'O77%@LF((%, Fan6 &n>en!aria de software6 '$o 5aulo3 Addison>NesleZ, -11B6
'JAG&F'X G@O)56 PM>ina internet Standis! Grou36 &isponvel em3
]http3//www6standishgroup6om/^6 Aesso em3 0- set6 -10-6
NF'%G%%K6 -!at is +da3tive Software Develo3ment. &isponvel em3
]http3//www6wisegeeM6om/what>is>adaptive>software>development6htm^6 Aesso
em3 -. set6 -10-6