You are on page 1of 28

Relatrio de Projeto Parcial

Faculdade de Tecnologia SENAC RS


Curso de Tecnologia em Anlise e Desenvolvimento de
Sistemas
Relatrio de Projeto Parcial
Aluno : Camila San Martin Ayres
Professor Orientador: Rafel Jeffman
Semestre: 2011/5
Porto Alegre, 10 de un!o de 2011"
Relatrio de Projeto Parcial
Sum#rio
$"1"%itulo do Proeto""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""5
$"2"Professor Orientador""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""5
$"$"A&resenta'(o )eral do Proeto""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""5
$"*"+efini'(o do Pro,lema""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""-
$"5"O,eti.os""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/
$"5"1"O,eti.o )eral"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/
$"5"2"O,eti.os 0s&e12fi1os""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/
*"1"C33""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"2"5de.elo& *"$""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"$"S67 8Su,.ersion9""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"*":t""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"5"+o;ygate""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"<":t%est=i,s""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
*"-"S>uis! Community 0dition ? @+0 *"1"0?S7APSAO%
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""4
-"1"+iagrama de Classes""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1$
-"1"1"Antes""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1$
-"1"2"+e&ois""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1$
-"2"+iagrama de Se>uBn1ia""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1*
/"1"Cun1ionalidades a serem im&lementadas 8%CC @ e %CC @@9""""""""""""""""""""""""""""""""""1<
/"2"ProtDti&o 8%CC @9"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1<
4"1"0stratEgia""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""20
Relatrio de Projeto Parcial
1. Identificao
IDENTIFICA! D! A"#N!
A=F7O: Camila San Martin Ayres
07+0R0GO R0S@+07C@A=:Rua Ria1!uelo 425/*0$
HA@RRO: Centro C0P: 40010?2-0
C@+A+0: Porto Alegre FC: RS
%0=0CO708S9: 8519 41*$*-41 / $22<?<4/-
0?MA@=8S9: smayresIgmail"1om
IDENTIFICA! D! !RIENTAD!R
PROC0SSOR: Rafael Jeffman
0?MA@=8S9: rafael"effmanIgmail"1om
Relatrio de Projeto Parcial
2. Histrico de Verses
$ers%o Autor Descri&%o Data
1 Camila Ayres Ras1un!o do RelatDrio 01/0</2011
2 Camila Ayres Mel!orias 0*/0</2011
$ Camila Ayres ProtDti&o %CC@ 0-/0</2011
* Camila Ayres +iagramas 0//0</2011
5 Camila Ayres Re.is(o Cinal de %e;to 04/0</2011
Relatrio de Projeto Parcial
3. Projeto
3.1. Titulo do Projeto
Refatorao e Testes: adaptando o Umbrello para QGraphicsView.
3.2. Professor Orientador
Rafael Jeffman
3.3. Apresentao eral do Projeto
SoftJare =i,re, SoftJare =i.re e O&en Sour1e 8C=OSS K Cree =i,re O&en
Sour1e SoftJare9 des1re.em o 1on1eito de softJare 1om li1en'a copyleft
1
" Com&arado
aos Co&yrig!t, 1o&yleft d# a >uem re1e,e o softJare direitos adi1ionais
2
" 0ste tra,al!o
far# uso do termo LSoftJare =i.reL &ara a,ranger todos os as&e1tos de C=OSS >ue
enfatiMam a filosofia e os as&e1tos do desen.ol.imento 1ola,orati.o, ,em 1omo o
as&e1to legal e &r#ti1o
$
"
A li1en'a 1o&yleft ,em 1omo a )7F Pu,li1 =i1ense garantem &rin1i&almente
>ue: NA li,erdade de redistri,uir 1D&ias de.e in1luir formas ,in#rias ou e;e1ut#.eis do
&rograma, ,em 1omo 1Ddigo?fonte, &ara am,as as .ersOes modifi1adas"N 8)7F, 20109
O 1Ddigo?fonte, uma .eM &u,li1ado so, a li1en'a )7F Pu,li1 =i1ense, estar# sem&re
dis&on2.el so, essa li1en'a, in1luindo >ual>uer altera'(o realiMada nesse" 0m,ora as
raMOes &or tr#s da 1ria'(o de li1en'as 1omo 1o&yleft e a )P= tBm sido &rin1i&almente
ideolDgi1a 8S%A==MA7, 20109, o termo mais 1omer1ial
*
O&en Sour1e tem
im&ulsionado a )P= e li1en'as similares a tornarem?se dominante no mundo da %@
8%e1nologia da @nforma'(o9"
A filosofia do SoftJare =i.re, tem tido um im&a1to muito alEm do mundo da %@
em si" SoftJare =i.re &ode ser .isto 1omo um e;em&lo de Crowd Sourcing
5
? um
&ro1esso de &rodu'(o a,erto a 1ola,ora'(o dos usu#rios e o &P,li1o interessado em
geral ? mas E muito mais antigo >ue esse 1on1eito" Sites 1omo QiRi&edia, m2dias so1iais
e 1ola,orati.as 1omo Facebook, Youtube e Flickr

tBm forte liga'(o 1om a 1ultura e o
modo de &ensar do mo.imento do SoftJare =i.re"
1 !tt&://JJJ"gnu"org/1o&yleft/
2 !tt&://JJJ"gnu"org/&!iloso&!y/free?sJ"!tml
$ !tt&://JJJ"gnu"org/&!iloso&!y/o&en?sour1e?misses?t!e?&oint"!tml
* !tt&://JJJ"gnu"org/&!iloso&!y/o&en?sour1e?misses?t!e?&oint"!tml e
!tt&://JJJ"o&ensour1e"org/osd"!tml
5 !tt&://1roJdsour1ing"ty&e&ad"1om
Relatrio de Projeto Parcial
O desen.ol.imento de SoftJare =i.re foi e;&li1ado &or =inus %or.alds em uma
entre.ista &ara a re.ista Forbes em Mar'o de 200<:
LSe .o1B E um 1ientista lou1o, .o1B &ode usar softJare so, li1en'a )P=.2 1om
os seus &lanos malignos de dominar o mundo 8L%u,arOes 1om lasers na
1a,e'a SST9, e a )P=.2 a&enas diM >ue .o1B tem >ue de.ol.er o 1Ddigo fonte" 0
&or mim est# tudo ,em" 0u gosto de tu,arOes 1om lasers" 0u sD >uero >ue os
1ientistas lou1os do mundo me &aguem de .olta do mesmo eito >ue eu
1ola,orei" CiM o 1Ddigo fonte dis&on2.el &ara eles, ent(o eles tBm >ue
dis&oni,iliMar as altera'Oes &ara mim" +e&ois disso, &odem fritar?me 1om os
lasers de tu,ar(o 1omo todos eles >uerem"L 8=UO7S, 20059"
=inus %or.ald desen.ol.eu o Rernel do =inu; seguindo essa lDgi1a: &ode?se usar
e alterar li.remente o 1Ddigo 1om a res&onsa,ilidade de dis&oni,iliMar essas
1ontri,ui'Oes a >uem ti.er interesse" Haseadas nessa filosofia, surgiram as 1omunidades
de softJare li.re"
O 5+0
<
E uma 1omunidade de SoftJare =i.re >ue tem desen.ol.ido e entregue
SoftJare =i.re e Open Source !# mais de 15 anos" O 5+0 E, de a1ordo 1om a maioria
das mEtri1as, a segunda maior 1omunidade no mundo, a&enas atr#s da 1omunidade do
5ernel do =inu;" 0ntre os seus &rodutos est(o uma .ariedade de a&li1a'Oes, &ara a
1om&uta'(o mD.el, desktops e uma &lataforma de desen.ol.imento onde os a&li1ati.os
s(o &roetados e desen.ol.idos" 5+0 desen.ol.e softJare &rin1i&almente &ara =inu;,
mas seus &rodutos tam,Em est(o dis&on2.eis &ara QindoJs, Ma1 OS V e um nPmero
1res1ente de dis&ositi.os mD.eis" A 1omunidade E atualmente 1onstitu2da &or 1er1a de
/00 a 1000 desen.ol.edores ati.os
-
e um nPmero semel!ante de 1ontri,uidores &ara
arte gr#fi1a, tradu'(o, desen.ol.imento de sites e outras tarefas dentro do &roeto"
Os a&li1ati.os desen.ol.idos &elo 5+0 s(o es1ritos em C33, linguagem de
&rograma'(o &roetada e im&lementada &or Harne Stroustru&
/
, utiliMam :t
4
, um
frameJorR multi&latforma so, a li1en'a =)P= 8esser !eneral Public icense9W e
5+0?=i,s, ,i,liote1as de softJare em C33/:t >ue 1om&Oem o "#$ #e%eloper
< !tt&://Rde"org
- !tt&://JJJ"Rde"org/announ1ements/*"$
/ !tt&://JJJ2"resear1!"att"1om/X,s
4 !tt&://>t"noRia"1om
Relatrio de Projeto Parcial
Platfor& ou 5+0 S+5, e;igida &or todos os a&li1ati.os do 5+0 Software Co&pilation
85+0 SC9"
O Fm,rello E a ferramenta de modelagem FM= 8'nified (odeling anguage9
distri,u2da 1om as ferramentas de desen.ol.imento do 5+0" O Fm,rello foi es1rito
ini1ialmente em C33 &ara sistemas Fni; &elo estudante uni.ersit#rio Paul Aensgen
10
"
0m 2002, Jonat!an Riddell
11
assumiu o &roeto refatorando o 1Ddigo e in1luindo no.as
fun1ionalidades" 7o mesmo ano, o Fm,rello foi integrado as a&li1a'Oes do 5+0
utiliMando o frameJorR :t" 0m 200/, )o&ala 5ris!na
12
, 1ome'ou a ada&ta'(o do
limitado CrameJorR :Can.as do :t $ &ara o :)ra&!i1s6ieJ do :t *" Aoe o Fm,rello
tem uma .ers(o &ara o 5+0 *"<, mas a .ers(o 1om a ada&ta'(o ini1iada &&or 5ris!na,
est# inst#.el, 1omo 1onse>uBn1ia, n(o foi integrada a .ers(o atual do Fm,rello" O :t *
al1an'ou um n2.el maior de esta,ilidade 1om mel!orias 1omo su&orte a ar>uitetura
(odel)iew e um no.o build syste& modular" O CrameJorR )ra&!i1s 6ieJ surgiu na
.ers(o *"2 e forne1e re1ursos &ara manusear e interagir 1om elementos gr#fi1os 2+, e
um Jidget &ara a .isualiMa'(o dos itens
1$
"
3.!. "efinio do Pro#le$a
O Fm,rello E a Pni1a ferramenta de modelagem FM= &resente no 5+0 S+5 e
am&lamente utiliMado &or alguns &roetos
1*
do &rD&rio 5+0"
Considerando a im&ortYn1ia da FM= &ara a 0ngen!aria de SoftJare
15
e o
aumento do uso do SoftJare =i.re, .erifi1ado &rin1i&almente na edu1a'(o
1<
e no
go.erno 8)ROO%, 5Z)=0R, A+AMS e )OFS@OS 200<9, 1res1e a ne1essidade de
uma ferramente 1omo o Fm,rello"
0m N*+e State of Open SourceT da em&resa de &es>uisas )arner &redisse:
L0m 2012, mais de 40 &or 1ento das em&resas ir# usar 1Ddigo a,erto de forma
direta ou in1or&orado,L 8JF+)0, 200/9"
10 !tt&://&!ensgen"users"sour1eforge"net/
11 !tt&://riddell"org
12 !tt&://Rris!naggR",logs&ot"1om
1$ !tt&://do1">t"noRia"1om
1* !tt&://uml"sour1eforge"net/users"&!&
15 !tt&://JJJ"uml"org/uml[su11ess[stories/inde;"!tm
1< !tt&://one"la&to&"org/a,out/mission e !tt&://ndos"1ode&le;"1om
Relatrio de Projeto Parcial
A em&resa de &es>uisa @+C, es1re.eu em Linu, in t+e -ew $cono&yL 820049:
L@+C &roeta >ue o 1res1imento do softJare rela1ionados ao =inu; .ai liderar o
setor durante o &er2odo 200/?201$ de re1u&era'(o &Ds?re1ess(o, 1om uma ta;a
de 1res1imento anual 1om&osta 8CA)R9 de 2$,<\" 8"""9 0m 1om&ara'(o, o
mer1ado glo,al est# &roetado &ara aumentar em 5\ 200/?201$ CA)R L"
8)@==07, 20049
Atualmente o Fm,rello utilliMa a 1lasse :$Can.as K a mesma 1lasse :Can.as,
renomeada a&enas durante o &ro1esso de ada&ta'(o ? >ue faM &arte do :t$Su&&ort,
,i,liote1a >ue foi desen.ol.ida &ara fa1ilitar o &ort do :t $ &ara :t *, e >ue n(o de.em
estar no 1Ddigo de &rodu'(o, mas a&enas no &ro1esso intermedi#rio, de.endo ser
imediatamente su,stitu2tas &or uma 1lasse e>ui.alente do :t *" 7esse 1aso, o :Can.as
de.e ser su,stitu2do &ara a 1lasse :)ra&!i1s6ieJ
1-
"
3.%. O#jeti&os
3.%.1. O#jeti&o eral
O o,eti.o do &roeto E realiMar uma ada&ta'(o 1onfi#.el do softJare utiliMando
ferramentas de testes automatiMados >ue garantem a a&li1a'(o 1orreta dos 1on1eitos de
refatora'(o"
3.%.2. O#jeti&os 'spec(ficos
" 0liminar o uso do :Can.as no Fm,rello"
" Mel!or su&orte a estereDti&os
1/
"
" Com&letar su&orte a Fndo/Reddo"
" Criar uma 1o,ertura de testes &ara as &rin1i&ais 1lasses"
1- !tt&://do1">t"noRia"1om/*"-/>$1an.as"!tml
1/ !tt&://JJJ"agilemodeling"1om/style/stereoty&e"!tm
Relatrio de Projeto Parcial
!. An)lise de Tecnolo*ias+,erra$entas
As ferramentas foram sele1ionadas ,aseadas nas es&e1ifi1a'Oes do &roeto #
e;istente" 0stas ferramentas s(o am&lamente usadas e testadas, o >ue ofere1e mais
esta,ilidade"
!.1. -..
Linguagem de programao em ue o Umbrello foi desen!ol!ido.
!.2. /de&elop !.3
@+0 &ara C/C33 e outras linguagens de &rograma'(o" ] ,aseado no 5+0
#e%eloper Platfor&, no 5+0 e nas ,i,liote1as do :t"
!.3. 0V1 20u#&ersion3
"istema de controle de !erso de software utili#ado pelos pro$etos do %&'.
"endo usado desde o in(cio do pro$eto.
!.!. 4t
)ramewor* multiplataforma para +,,- base do %&' e tamb.m utili#ado pelo
Umbrello.
!.%. "o56*ate
] uma interfa1e &ara a ferramenta +o;ygen, utiliMada &ara gerar
do1umenta'(o, es1rita em :t e utiliMada em &roetos do 5+0" Ser# utiliMado no final
&ara gerar uma no.a do1umenta'(o &ara o Fm,rello"
!.7. 4tTest8i#s
CrameJorR &ara desen.ol.imento de testes unit#rios em :t" Os testes
ser(o es1ritos na Pltima fase do &roeto"
!.9. 0:uis; -o$$unit6 'dition < I"' !.1.=<01AP0HOT
"oftware para testes automati#ados de interface da empresa )rologic. "er/
utili#ado a medida ue a refatorao resultar em um minimo de funcionalidades test/!eis.
Relatrio de Projeto Parcial
%. "escrio da 0oluo
O Fm,rello utiliMa re1ursos gr#fi1os >ue &ermitem ao usu#rio desen!ar
diagramas 2+, essa E a sua &rin1i&al fun'(o >uanto softJare &ara diagrama'(o FM="
=ogo, o &roeto &ro&Oe a ada&ta'(o dos re1ursos do :Can.as ? 1er1a de $0 1lasses s(o
de&endentes desses re1ursos ? &ara o :)ra&!i1s6ieJ utiliMando tE1ni1as de refatora'(o
de 1Ddigo untamente 1om ferramentas de an#lise est#ti1a e dinYmi1a, 1on1luindo o
&roeto 1om ferramentas de testes &ara a garantir a 1ontinuidade das fun1ionalidade
originais do softJare"
O CrameJorR )ra&!i1s 6ieJ tem uma a,ordagem ,aseada na &rograma'(o
model?.ieJ" 6arias .isualiMa'Oes 8:)ra&!i1s6ieJ9 &odem 1onter Pni1a 1ena
8:)ra&!i1sS1ene9, e a 1ena &ode 1onter itens 8:)ra&!i1s@tem9 de diferentes formas
geomEtri1as"
0ssa ar>uitetura E ,astante similar a do :Can.as, mas o :)ra&!i1s@tem,
e>ui.alente ao :$Can.as@tem E mais &oderoso e mais f#1il de usar" Por e;em&lo, o
:)ra&!i1s6ieJ im&lementa o arrastar e soltar 8drag and drop9 de um item em uma
1ena, fun1ionalidade ine;istente no :1an.as:
NFma das mais not#.eis mel!orias na no.a AP@ 8:)ra&!i1s6ieJ9 E o sistema de
1oordenadas" Agora &odemos usar 1oordenadas em nPmeros reais &ara
+iagrama 1: )ra&!i1s6ieJ
Relatrio de Projeto Parcial
adi1ionais um n2.el ele.ado de &re1is(o a 1a&a1idade de .isualiMa'(o do
:)ra&!i1s6ieJ, es&e1ialmente >uando utiliMamos os Moom em uma 1ena" @sso
sim&lifi1a ao ter >ue lidar 1om dads de fontes e;ternas, 1omo to&ologia, >ue
geralmente usam 1oordenadas reais"T 8AA7SS07, 200<9
7o :Can.as, a geometria dos items eram relati.a ao 1an.as, a 1ena onde os
items s(o 1olo1ados, no :)ra&!i1s6ieJ E &oss2.el 1riar items 1om&ostos, items dentro
de items e redimension#?los de forma inde&endente ou de a1ordo 1om o seu item &ai"
As mel!orias &ro&ostas 1om o &ort &ara o Fm,rello s(o na sua maioria
rela1ionadas a &erfoman1e e otimiMa'(o de 1Ddigo 8AA7SS07, 200<9, &ois o
CrameJorR )ra&!i1s 6ieJ utiliMa os mel!ores re1ursos do :t* >ue a &artir da .ers(o
*"2 utiliMa HSP tree
1.
8/inary Space Partitioning *ree9 1om um mEtodo de inde;a'(o
>ue a1elera a ,us1a dos itens na 1ena" 8S=0%%A, 20109
Processo de Re'atora&%o e Testes (ro(osto como solu&%o (ara o Projeto)
* Anlise)
Pro1esso de an#lise do &ro,lema e desen.ol.imento de diagramas FM=
1onforme a ne1essidade &ara a audar na resolu'(o" ] nesse momento >ue de1ide?se &ela
mel!or tE1ni1a de refatora'(o &ara determinada 1lasse e >uais os testes >ue de.em ser
a&li1ados"
* Desenvolvimento +Re'atora&%o,)
Refatorar E uma tE1ni1a am&lamente utiliMada na engen!aria de softJare, >ue
1onsiste em alterar um 1Ddigo e;istente 1om o o,eti.o de o,ter um 1Ddigo leg2.el, de
f#1il manuten'(o" Para garantir >ue o softJare manten!a o seu 1om&ortamento a&Ds as
de.idas mel!orias na sua estrutura, a&li1a?se ent(o testes automatiMados" 8COQ=0R,
20029
*Testes de Funcionalidade)
S(o os testes unit#rios K testes es&e12fi1os &ara 1ada 1ada fun1ionalidade do
softJare e 1lasse do 1Ddigo ? e testes automatiMados K testes e;e1utados &or
ferramentas desen.ol.idas &ara tal o,eti.o, >ue garantem o 1orreto fun1ionamento do
softJare a&Ds a refatora'(o"
* Bug Fixing: Corre'(o dos erros en1ontrados a&Ds os testes"
14 !tt&://Je,"1s"J&i"edu/Xmatt/1ourses/1s5<$/talRs/,s&/,s&"!tml
Relatrio de Projeto Parcial
7. A#orda*e$ de "esen&ol&i$ento
A metodologia adotada E uma .aria'(o do Scru&
01
, >ue 1ontar# 1om a
organiMa'(o de sprints e &e>uenas entregas" +e a1ordo 1om a solu'(o &ro&osta, o 1i1lo
do Scru& ser# da seguinte maneira:
Ciclo
Dias - . / 0 1 2 3 4 5 -6 -- -. -/ -0 -1
Tare'as An#lise +esen.ol.imento %estes /ug Fi,ing
As altera'Oes feitas no &roeto estar(o sendo .ersionadas 1om o 1ontrolador de
.ersOes S67, logo, todo o !istDri1o das altera'Oes estar# seguro e atualiMado em
s.n3ss!://ayresIs.n"Rde"org/!ome/Rde/,ran1!es/JorR/so1?um,rello?2011/"
O 5+0 fun1iona, 1omo muitos &roetos de SoftJare =i.re, de forma
des1entraliMada, >ue E fre>^entemente 1!amada de /a2aar 8RAUMO7+, 20019,
modelo de desen.ol.imento ao 1ontr#rio do mais tradi1ional Cat+edrall" 0m suma, no
modelo Cat+edral, uma ou mais ar>uitetos &roetam o &roduto, en>uanto os
desen.ol.edores, sem muita autonomia, e;e1utam seus &lanos" 0m 1ontraste, no estilo
HaMaar, &e>uenas e>ui&es de tra,al!o semi?inde&endentes dos 1om&onentes de todo o
&roeto e E ,astante fre>uente o desen.ol.imento de solu'Oes 1on1orrentes" :ualidade e
1a&a1idade de res&osta das e>ui&es de desen.ol.edores determina a 1om&osi'(o final
do &roduto" A tomada de de1is(o E feito em &P,li1o atra.Es de uma 1om,ina'(o de
dis1uss(o merito1r#ti1a e do desen.ol.imento de solu'Oes 1on1orrentes" Os
desen.ol.edores 1om um longo !istDri1o na 1omunidade, muitas .eMes e;er1em uma
influBn1ia 1onsider#.el e a maioria das a&li1a'Oes tem um mantenedor >ue toma
de1isOes" 7o entanto, de.ido _ natureMa .olunt#ria, na maior &arte do tra,al!o 8mesmo
os &agos &or em&resas 1ostumam agir muito inde&endente9, n(o E &oss2.el diMer _s
&essoas o >ue faMer e a fun'(o da maioria dos tomadores de de1is(o se limita a manter
&ort(o" =ogo, o Fm,rello tem uma e>ui&e res&ons#.el, atualmente &e>uena em
1om&ara'(o 1om outros &roetos do 5+0, 1om um mantenedor, Jonat!an Riddell"
20 !tt&://JJJ"s1rumallian1e"org/
Relatrio de Projeto Parcial
9. Ar:uitetura do 0iste$a 2>odela*e$3
9.1. "ia*ra$a de -lasses
9.1.1. Antes

9.1.2. "epois
+iagrama 1: +iagrama Sim&lifi1ado de Classes antes da refatora'(o
+iagrama 2: +iagrama de Classes Sim&lifi1ado a&Ds refatora'(o
9.2. "ia*ra$a de 0e:u?ncia
+iagrama *: +iagrama de Se>uBn1ia
Relatrio de Projeto Parcial
O diagrama a1ima e;&li1a a ar>uitetura do :)ra&!i1s6ieJ, onde o FM=+o1
1ria um no.o o,eto FM=6ieJ 8:)ra&!i1s6ieJ9, >ue &or sua .eM alo1a a sua
FM=S1ene 8:)ra&!i1sS1ene9" O mesmo FM=+o1 dis&ara o sinal sigO,e1tCreated
>uando o usu#rio adi1iona um no.o Jidget na tela, tal sinal E re1e,ido &elo slot do
+iagram, slotO,e1tCreated, >ue &or sua .eM 1ria um no.o FM=Qidget"
O :t geren1ia a 1omuni1a'(o entre o,etos da a&li1a'(o atra.Es de signals e
slots
01
3 Fm signal E emitido >uando determinado e.ento o1orre e E tratado &or um slot
es&e1ifi1ado no 1Ddigo da a&li1a'(o" Fm slot nada mais E do >ue uma fun'(o >ue E
1!amada em res&osta a um sinal em &arti1ular"
21 !tt&://do1">t"noRia"1om/*"-/signalsandslots"!tml
Conte @magem 1: !tt&://do1">t"noRia"1om/*"-/images/a,stra1t?1onne1tions"&ng
@magem 1: Signals e slots: 1omuni1a'(o entre o,etos no :t
Relatrio de Projeto Parcial
@. Aspectos de I$ple$entao do Prottipo
@.1. ,uncionalidades a sere$ i$ple$entadas 2T-- I e T-- II3
" 0liminar o uso do :Can.as no Fm,rello"
" Mel!or su&orte a estereDti&os
22
"
" Com&letar su&orte a Fndo/Reddo"
" Criar uma 1o,ertura de testes &ara as &rin1i&ais 1lasses"
@.2. Prottipo 2T-- I3
Funcionalidades +classes re'atoradas,)
" FM=6ieJ
" FM=6ieJCan.as
" QidgetHase
" FM=Qidget
" FM=O,e1t
TCCI) " Eliminar o uso do 7Canvas no #m8rello*
O &rimeiro s&rint de desen.ol.imento foi ,asi1amente um teste em 1ima do
1ronograma &laneado" As &rimeiras altera'Oes foram um e;em&lo de 1omo n(o
refatorar um softJare, &ois foi 1ontra ao >ue E &re.isto 1omo uma ,oa &r#ti1a de
refatora'(o e testes, altera'Oes &e>uenas e de.idamente &laneadas &ara >ue sea
&oss2.el en1ontrar os erros mais ra&idamente"
NRefatorar siginifi1a alterar os &rogramas em &e>uenos &assos" Se .o1B 1ometer
um erro, E f#1il de en1ontr#?lo"T 8COQ=0R, 20019
Ao 1ome'ar a ada&tar as &rimeiras 1lasses &laneadas, en1ontrou?se a &rimeira
diferen'a entre :Can.as e :)ra&!i1s6ieJ: o sistema de 1oordenadas" 7o :Can.as as
1oordenadas s(o em nPmeros inteiros e no :)ra&!i1s6ieJ em nPmeros reais" Ao
1ome'ar as &rimeiras altera'Oes notou?se >ue seria ne1ess#rio alterar em mais mEtodos
22 !tt&://JJJ"agilemodeling"1om/style/stereoty&e"!tm
Relatrio de Projeto Parcial
do >ue o &laneado, o >ue gerou muitos erros, sem o de.ido 1ontrole do fun1ionamento
do softJare e das 1lasses afetadas &ela altera'(o" Para o segundo s&rint, realiMou?se uma
an#lise mel!or, de1idindo?se tratar das 1oordenadas em um &rD;imo s&rint, &ois E
&oss2.el 1ontinuar usando as 1oordendas em ti&o inteiro"
A mel!or maneira de tra,al!ar en1ontrada &ara realiMar as altera'Oes &or &artes
foi manter as 1lasses antigas e 1riar as no.as 1lasses em 1onunto" Assim, in1luir as
1!amadas &ara os no.os mEtodos atra.Es direti.as de &rE?&ro1essamento em C33 nos
ar>ui.os antigos mantendo o fun1ionamento dos dois e testando o fun1ionamento dos
no.os mEtodos"
+ireti.as de &rE?&ro1essamento
2$
s(o lin!as in1lu2das no 1Ddigo, &re1edidas &elo
sinal `, logo n(o s(o 1onsideradas de1lara'Oes da linguagem de &rograma'(o" :uando o
&rE?&ro1essador en1ontra essa direti.a, ele su,stitui >ual>uer o1orrBn1ia dessa
de1lara'(o no resto do 1Ddigo" O &rE?&ro1essador E e;e1utado antes da 1om&ila'(o,
assim essa su,stitui'(o E realiMada antes de >ual>uer 1Ddigo ser de fato gerado &elas
de1lara'Oes da linguagem de &rograma'(o &ro&riamente dita"
Por e;em&lo, a 1lasse FM=+o1 utiliMa a 1lasse FM=6ieJ, >ue foi refatorada"
=ogo, no !eader umldo1"! foi realiMada a de1lara'(o:
//diretiva de pre-processamento
#define SOC2011 1
7a de1lara'(o dos mEtodos, foi utliMada uma de1lara'(o 1ondi1ional, >ue
&ermite ao &rE?&ro1essador in1luir ou des1artar &arte do 1Ddigo de a1ordo 1om a
direti.a de1larada anteriormente, nesse 1aso, a direti.a &ossui o .alor N1T,
re&resentando um .alor .erdadeiro:
//metodos utilizando o antigo UMLie!
void addie!"UMLie! #vie!$%
void removeie!"UMLie! #vie! & 'ool enforceOneie!(true $%
//metodos utilizando o novo UMLie!
#ifdef SOC2011
void addie!")*++UMLie! #vie!$%
void removeie!")*++UMLie! #vie!& 'ool enforceOneie!(true $%
#endif
2$ !tt&://JJJ"1&lus&lus"1om/do1/tutorial/&re&ro1essor/
Relatrio de Projeto Parcial
A tE1ni1a de refatora'(o, 1onforme CoJler 82001, &" <59 e;&li1a, mais utiliMada
foi a de di.idir algumas 1lasses >ue 1ontin!am mEtodos >ue &oderiam fa1ilmente serem
geren1iados &or outra 1lasse" A no.a 1lasse +iagram s(o alguns dos mEtodos da 1lasse
FM=6ieJ >ue antes geren1ia.am as 1onfigura'Oes dos diagramas" Com isso temos um
1Ddigo de mais f#1il manuten'(o e 1orre'(o de erros"
NSe .o1B .B a estrutura do mesmo 1Ddigo em mais de um lugar, .o1B &ode ter
1erteMa >ue seu &rograma .ai ser mel!or se .o1B en1ontrar uma forma de
unifi1#?los"T 8COQ=0R, 20019
* #9"$ie: +7;ra(<ics$ie:,
A FM=6ieJ !erda.a anteriormente de :Can.as6ieJ" 7essa 1lasse, alEm da
ada&ta'(o &ara :)ra&!i1s6ieJ, foi ne1ess#rio mudar 1omo o Moom era tratado" 7as
Pltimas .ersOes do :t, ao in.Es de :Matri;
2*
, utiliMa?se :%ransform
25
" :%ransform
difere :Matri; 8o,soleto9, em >ue E uma .erdadeiro matriM $;$, &ermitindo
transforma'Oes de &ers&e1ti.a"
* #9"$ie:Canvas +7;ra(<icsScene,
A FM=6ieJCan.as E a no.a FM=S1ene, !erdando de :Can.as" %rata de todos
os e.entos o1orridos na 1ena" A 1lasse mais &rD;ima de :Can.as &ara a ada&ta'(o ao
CrameJorR :)ra&!i1s6ieJ E a :)ra&!i1sS1ene" A no.a 1lasse FM=S1ene trata de
todas as 1onfigura'Oes do diagrama 8um +iagrama de Classe, um de Se>uBn1ia ou um
outro diagrama >ual>uer da FM=9 em 1ena: 1or da lin!a, fonte e alin!amento"
* Diagram +<erda de 7!8ject e 7;ra(<icsItem,
7o.a 1lasse e;tra2da a &artir da FM=S1ene, >ue &assa a geren1iar os Jidgets na
FM=S1ene" Os mEtodos dessa 1lasse tratam dos Jidgets &erten1entes a determinado
diagrama em 1ena" ArmaMena as informa'Oes referentes a &osi'(o, ti&o de diagrama e a
lista de Jidgets &erten1entes ao diagrama"
2* !tt&://do1">t"noRia"1om/latest/>transform"!tml
25 !tt&://do1">t"noRia"1om/latest/>transform"!tml
Relatrio de Projeto Parcial
* =idget>ase +<erda de 7!8ject,
Classe ,ase &ara o FM=Qidget"
* #9"!8ject
0ssa 1lasse E a .ers(o n(o gr#fi1a do FM=Qidget" 0stes s(o 1riados e mantidos
na 1lasse FM=+o1" 0ssa 1lasse 1ontEm toda a informa'(o genEri1a ne1ess#ria &ara
todos os o,etos FM="
* #9"=idget +<erda de =idget>ase e 7;ra(<icsRectItem,
Classe ,ase &ara >uase todos os elementos gr#fi1os" A FM=Qidget !erda.a
anteriormente de :Can.asRe1tangle" A 1lasse mais &rD;ima &ara a ada&ta'(o ao
CrameJorR :gra&!i1s6ieJ E a :gra&!i1sRe1t@tem" 0ssa 1lasse mantEm as informa'Oes
referentes a &osi'(o de 1ada Jidget em determinado diagrama, 1omo a &osi'(o, o
taman!o e o ti&o"
Relatrio de Projeto Parcial
A. Validao
A.1. 'stratB*ia
Os testes e .alida'(o faMem &arte do &ro1esso de ada&ta'(o do softJare" AlEm
do uso do :t%est=i,s, frameJorR &ara testes unit#rios em :t, &laneado &ara o final do
&roeto, in1lui?se no &ro1esso um softJare es&e12fi1o &ara testes de interfa1e, o S>uis!
Community 0dition"
#tili?ando o S@uis< (ara gravar testes)
Com o S>uis! E &oss2.el automatiMar os testes: o softJare a ser testado E
e;e1utado atra.Es de uma 67C 86irtual 7etJorR Com&uting9, ao e;e1utar os &assos
>ue de.em ser testados, o S>uis! 1ria os s1ri&ts de teste, em Ja.as1ri&t, Perl, Pyt!on ou
%1l, mas tam,Em E &oss2.el editar e 1riar os s1ri&ts de a1ordo 1om a ne1essidade" Com
os s1ri&ts gra.ados, &ode?se e;e1ut#?los >uantas .eMes forem ne1ess#rias &ara testes, ao
in.Es de ter >ue faMer o &ro1esso manualmente &ara 1ada 1lasse >ue desea?se testar"
@magem 2: 0;em&lo de Ja.as1ri&t &ara testes gerado &elo S>uis!
Relatrio de Projeto Parcial
A Pni1a des.antagem E >ue a medida >ue se gra.a os testes, o sistema armaMena
uma ta,ela 1om os o,etos da a&li1a'(o, mas se o o,eto n(o esti.er na ta,ela ainda, o
teste n(o E e;e1utado &or 1om&leto e E ne1ess#rio in1luir o o,eto ou editar a ta,ela no
manualmente, ou e;e1utar a a&li1a'(o no modo S&y ou ainda sim&lesmente gra.ar
testes onde usa?se os o,etos ne1ess#rios no teste" Os o,etos s(o elemento do softJare,
1omo um menu, uma 1am&o &ara edi'(o de te;to ou mesmo um reta no diagrama"
A &artir do S>uis! E &oss2.el o,ter os &ontos onde a a&li1aa(o fal!a em tem&o de
e;e1u'(o e gerar relatDrios a &artir de um 1onunto de testes e;e1utados"
@magem 2: %a,ela de o,etos da a&li1a'(o
Relatrio de Projeto Parcial
1=. -rono*ra$a
O 1ronograma deste %CC foi todo ,aseado em Sprints de 15 dias, seguindo o
1i1lo e;&li1ado na a,ordagem de desen.ol.imento do &roeto, 1om datas &rogramadas e
1on1lu2das" Pode?se tam,Em .isualiMar neste 1ronograma, se&arada &or sprints, o
&roduto de 1ada tarefa" As datas de entrega de relatDrios est(o desta1adas se&aradamente
dos Sprints"
T-- I
"escrio da Ati&idade Produto In(cio 'ntre*a "etal;a$ento descriti&o
Plano de Tra#al;o Plano de
Tra#al;o
1@+=3 =1+=! An)lise do Pro#le$aC
definio da soluo e
criao do crono*ra$a.
0print 1D +lasse
U0LView.
+1digo 23425 67425 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print 2D +lasse
U0LView+an!as.
+1digo 6;425 2342< 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print 3D +lasse
U0L=b$ect.
+1digo 2>42< 6742< 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print !D +lasses
U0L?idget e
?idget9ase.
+1digo 6;42< 2642@ &esen!ol!imento- Testes e
9ug )i:.
Eelatrio de Projeto Eelatrio =2+=7 'ntre*a da &erso Parcial
do Eelatrio de Projeto
Parcial para o Orientador
0print %D +lasses
LineAath- +ircle-
"ubset"Bmbol-
"eLine?idget-
8ssociation?idget-
8cti!itB?idget-
8ctor?idget-
8rtifact?idget e
9o:?idget.
+1digo 2342@ 6@42@ Testes e 9ug )i:ing.
Eelatrio de Projeto Eelatrio 1=+=7 'ntre*a do Eelatrio de
Projeto Parcial 2&erso
final3
Apresentao de 0tatus
do Projeto
Apresentao 13+=7 19+=7 Apresentao de 0tatus
do Projeto.
%a,ela 1: Cronograma %CC@
Relatrio de Projeto Parcial
T-- II
"escrio da Ati&idade Produto In(cio 'ntre*a "etal;a$ento descriti&o
0print 7D +lasses
+omponent?idget-
&atatBpe?idget-
'ntitB?idget-
'num?idget-
)loating&ashLine?idget-
)loatingTe:t?idget.
Code?idget.
+1digo 6742@ 26427 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print 9D +lasses
=b$ect?idget-
Aac*age?idget-
Ain?idge-
Arecondition?idget-
Region?idget-
"ignal?idget-
"tate?idget-
Use+ase?idget and
0essage?idget.
+1digo 23427 67427 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print @D +lasses
)or*Doin?idget-
+ombined)ragment?idg
et and +ategorB?idget-
+lassifier?idget.
+1digo 6;427 2642; Testes e 9ug )i:.
0print AD Trabalhar no
suporte a melhores
estere1tipos.
+1digo 2342; 6742; 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print 1=D +ompletar
suporte a Undo4Reddo.
+1digo 6;42; 2642E 8n/lise- &esen!ol!imento-
Testes e 9ug )i:.
0print 11D Testes e 9ug
)i:.
+1digo 2342E 6@42E Testes e 9ug )i:.
Eelatrio de Projeto
AtualiFado
Eelatrio 12+=A 'ntre*a do Eelatrio de
Projeto AtualiFado.
0print 12D Relat1rio de
8ndamento
Relat1rio 6742E 26462 'scrita do Relat1rio.
0e$in)rio de
Anda$ento
Apresentao 1A+=A 23+=A Apresentao do
Anda$ento do Projeto.
0print 13D +orreFes e
melhorias no Relat1rio.
Relat1rio 23462 6@462 'scrita do relat1rio.
0print 1!D Gn(cio do
desen!ol!imento do
artigo.
8rtigo. 67462 >6462 'scrita do artigo.
Relatrio de Projeto Parcial
T-- II
"escrio da Ati&idade Produto In(cio 'ntre*a "etal;a$ento descriti&o
0print 1%D
&esen!iol!imento do
8rtigo final.
8rtigo. 26466 6<466 )inali#ando artigo e
relat1rio final.
0print 17D )inali#ando
artigo e relat1rio final.
Relat1rio. 6@466 >2466 )inali#ando artigo e
relat1rio final.
Eelatrio de Projeto Eelatrio 21+11 'ntre*a do Eelatrio
,inal de Projeto.
Apresentao ,inal Apresentao 2@+11 =2+12 Apresentao da Ganca
,inal.
Eelatrio ,inal de
Projeto Ee&isado
Eelatrio 12+12 'ntre*a do Eelatrio
,inal de Projeto
Ee&isado.
%a,ela 2: Cronograma %CC@@
Relatrio de Projeto Parcial
11. -onsideraes Parciais
Para o &rimeiro &rotDti&o &lanea.a?se1onseguir uma .isualiMa'(o dos Jidgets
em tela 8os diagramas &ro&riamente ditos9, mas n(o E &oss2.el manter o :Can.as@tem
fun1ionando em uma :)ra&!i1sS1ene" Com a ,ase &ronta, as 1lasses atE ent(o
refatoradas, .ai ser &oss2.el realiMar um tra,al!o mais r#&ido &ara 1on1luir a ada&ta'(o
do softJare, finaliMar o su&orte a Fndo/Redo e es1re.er os testes atE a data &re.ista de
1on1lus(o &ros&osta"
Relatrio de Projeto Parcial
Eefer?ncias Gi#lio*r)ficas
R8H0=C&- 'ric ". T;e -at;edral and t;e GaFaarD >usin*s on 8inu5 and Open 0ource #6
an Accidental Ee&olutionar6. =IReillB J 8ssociates- Gnc. "ebastopol- +8- U"8. 3226.
&ispon(!el em:
Khttp:44catb.org4Lesr4writings4homesteading4cathedralMba#aar4N 8cesso em: 6E mar. 3266.
GR==T- 8driaan deO %PGL'R "ebastianO 8&80"- Aaul D.O G=U"G="- Giorgo. -all for
4ualit6D Open 0ource 0oftHare 4ualit6 O#ser&ation. 'uropean research pro$ects- +="A8 e
+8LG9R'. 322@. &ispon(!el em:
Khttp:44 istlab.dmst.aueb.gr4Lgeorge4pubs4322@M=""MG%8G4paper.pdf N 8cesso em: 6E mar.
3266.
DU&G'- Aeter. artnerD Open source Hill :uietl6 taIe o&er. 8br. 322;. &ispon(!el em:
Khttp:44www.#dnet.co.u*4news4itMstrategB4322;4254254gartnerMopenMsourceMwillMuietlBMta*eMo!erM
>E>7EE224N 8cesso em: 6E mar. 3266.
GGLL'C- 8l. T;e Oportunit6 for 8inu5 in t;e 1eH 'cono$6. 322E. &ispon(!el em:
Khttp:44www.redhat.com4f4pdf4idcMwhitepaperMlinu:MinMnewMeconomB.pdfN 8cesso em: 6E mar.
3266.
"T8LL08C- Richard. J;6 0oftHare 0;ould 1ot Ha&e OHners. 3262. &ispon(!el em:
Khttp:44www.gnu.org4philosophB4whBMfree.htmlN 8cesso em: 6E mar. 3266.
GGLL'C- 8l. T;e Oportunit6 for 8inu5 in t;e 1eH 'cono$6. 322E. &ispon(!el em:
Khttp:44www.redhat.com4f4pdf4idcMwhitepaperMlinu:MinMnewMeconomB.pdfN 8cesso em: 6E mar.
3266.
)=?L'R- 0artin. Eefactorin*D I$pro&in* t;e "esi*n of '5istin* -ode. 3Q ed. Cew Hor*:
8ddisonM?esleB- )e!. 3226.
9L8C+R'TT'- DasminO "U00'R)G'L&- 0ar*. -.. KI Pro*ra$$in* Hit; 4t!. 3Q ed.
9oston: ArenticeMRall =pen "ource "oftware &e!elopment "eries- )e!. 322;.
"U00'R)G'L&- 0ar*. Ad&anced 4t Pro*ra$$in*D -reatin* reat 0oftHare Hit; -.. and
4t !. 6Q ed. 9oston: ArenticeMRall =pen "ource "oftware &e!elopment "eries- Dul. 3262.
8C""'C- 8ndreas 8ardal. A Getter -an&as. Qt QuarterlB- 322@. &ispon(!el em:
Khttp:44doc.trolltech.com446EMgraphics!iew.htmlN 8cesso em: 3< mar. 3266.
R8C""'C- 8ndreas 8ardal. A rap;icsVieH sneaI<peeI. 0aio 322@. &ispon(!el em:
Relatrio de Projeto Parcial
Khttp:44labs.t.no*ia.com4322@42<4264aMgraphics!iewMsnea*Mpee*4N 8cesso em: 3< mar. 3266.
"L'TT8- Gunna. 4t rap;ics and Perfor$ance L T;e -ost of -on&enience. Dan. 3262.
&ispon(!el em:
Khttp:44labs.t.no*ia.com432624264664tMgraphicsMandMperformanceMtheMcostMofMcon!enience4N
8cesso em: 3@ mar. 3266.
GCU =perating "BstemO )ree "oftware )undation. T;e ,ree 0oftHare "efinition. Co!. 3262.
&ispon(!el em: Khttp:44 www.gnu.org4philosophB4freeMww. html N 8cesso em: 32 mar. 3266.
LH=C"- &aniel. 8inu5 Eules 0uperco$puters. )orbes. 0ar. 322<. &ispon(!el em:
Khttp:44www.forbes.com4322<42>46<4c#SdlS2>6<linu:.htmlN 8cesso em: 33 mar. 3266.
Relatrio de Projeto Parcial
-o$ponentes Ee<utiliFados
Classes do Fm,rello"
5+0?=i,s"

You might also like