Você está na página 1de 6

2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos

www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?comp=14202

Artigo Clube Delphi 59 - Anlise O


rientada por Objetos
Artigo da Revista Clube Delphi Edio 59.

ClubeDelphi59

Receba notificaes :)
[ArtigodisponvelnoLeitorDigitalDevMedia.Cliqueaquipara
acesslo]

>CliqueaquiparalertodososartigosdaClubeDelphi59

EsseartigofazpartedarevistaClubeDelphiEdio59.Cliqueaqui
paralertodososartigosdestaedio

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 1/6
2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos

AnliseOrientadaporObjetos

ParteIIArqutiposeUMLemcores

NaedioanteriorfalamossobrealgunsfundamentosdaAnliseOrientadaporObjetos
(OOA).Propus,comoliodecasa,queoleitorpensassesobreumestacionamentode
automveisequaissoosobjetosquesedestacamnessedomniodeproblema.Poderamos
terconsultad9especialistasnoassunto,donosdeestacionamentosoupesquisadona
Internet.
Aidiaaquiobterinformaessuficientesparaesboarummodelodeobjetosprimordial,
quenosforneaumavisoabrangentedonegcioaserautomatizado,porenquantosem

Receba notificaes :)
muitosdetalhes.

Construindoummodeloabrangente
Paraobtermosasinformaessobreonegcioprecisamosdaajudadeespecialistasno
domniodoproblema,quepodemserosproprietrios,osfuncionrioseatconsultores
externos.Sevocrealmentefezsualiodecasadeveteremmosumasriede
informaesarespeitodofuncionamentodeumestacionamento.
Dequalquerforma,asinformaesaseguirservirodeguiaparanossadiscusso.Faa
adaptaesparaoseucaso.Adocumentaoaseguirumexemplotpicodeanotaes
feitasduranteasapresentaesqueosespecialistasfazemparaaequipedoprojeto:

.Oclientepodeserumusurioavulso(porhoraoupernoite)oumensalista(manh,tarde,
noite,diatodo).Aidentificaofeitapelaplacadoveculo.Umclientepodetervrios
veculosecadaveculopodeestarsobumplanodiferente.Clientesavulsosnoso
cadastrados

.Osclientesmensalistaspodemescolherumadatadepagamento(dia5,10,15ou20de
cadams)

.Arededeestacionamentospossuivriosendereos.Osclientespodemestacionarem
qualquerumdeles

.Quandoumusuriodeixaoveculoparaestacionar,ofuncionriodarecepoidentificao
planocorrespondenteeregistraaentradadoveculo.Quandooclienteretornarpararetirar
oveculo,ofuncionrioregistraasadaerealizaacobrana,casosejaavulso

.Opagamentoavulsosegueaseguintetabeladepreos:R$7,00paraa1hora,R$4,00para
a2eR$2,00paraasdemaishoras.OvalormensalparaodiatododeR$120,00.Ovalor
mensalporperododeR$50,00.OpernoitecustaR$14,00.Osvaloresdatabelapodemser
alterados.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 2/6
2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos


Entretanto,nonoslimitamosapenasaescrever,mastambmrascunhamosdiagramas
mostrandoosobjetoseseusrelacionamentos.VejanaFigura1umesboodeumdiagrama
declassesdealtonvel.Elepodetersidofeitoemumquadro(brancoounegro),ounuma
folhadepapelgrande,talvezatusandonotinhasautocolantesparacadaobjeto,duranteas
entrevistas.
EuuseioeditordemodelosdoDelphi2005,dentrodeumaaplicaoECOusando
ASP.NET,queserdesenvolvidanorestantedestasrie.Paracriarasua,useomenu
FilelNew>OtherenacategoriaDelphifor.NETProjectsescolhaoitemECOASP.NETWeb
Application.CliquenaabaModelView,queficajuntocomoProjectManagereoData
Explorer,geralmentenocantosuperiordireitodatela.AbraopacoteCoreClassesedum
cliqueduplonodiagramaCoreClassesparaabrilo.
SelecionenaToolPaletteoconeECOClass,cliqueemalgumlugardodiagramaparacriar
umanovaclasseedigiteonomedela.Paracriarumaassociaoentreclasses,cliqueno
coneAssociation,cliquenaprimeiraclasseearrasteomouseparaasegundaclasse.
Selecioneaassociaoparapoderalterarsuaspropriedades,conformeaFigura1.O
arquivodoprojetoestardisponvelparadownloadnoendereodoartigo,casoqueira
baixareleprontofocoaquidescobriroscomponentesprincipaisdonegcioecomoelesse
relacionam.Notentedetalharmuito.Estamosapenasentendendocomoonegciofunciona.
Porenquantoesqueaainterfacecomousurio,bancodedados,linguagemde
programaoeoutrosdetalhestcnicos.
Umaperguntaquefreqentementesefaz:Comochegamosaesseesboo?Existemmuitos
caminhos.Umbompontodepartidaleradocumentaoesublinharossubstantivos
(nomes)eosverbos(aes).Ossubstantivossocandidatosaobjetosouaatributos
(dados),enquantoosverbosnosdoboasdicassobreasfunes(mtodos)dosobjetos.
Entretanto,duranteasapresentaesdosespecialistasnodomnio,possvelidentificaros
principaisobjetos,muitasvezesexplicitadospelosprpriosespecialistas.Massemprebom
validarnossaspercepescomeles,fazendoperguntasetentandoprevercomonosso

Receba notificaes :)
modelorespondesexignciasdonegcio.

Figura1.Esbooinicialdomodelodeobjetos

Comoleromodelodeobjetos?
DeacordocomaFigura1,observamosqueumclienteestrelacionadocomvrios
veculos.Umveculoestrelacionadocomatabeladepreos,quedefineseuplanode
valores.Umaestadaestreferenciandoumveculo,registradapordoisfuncionrios(na
entradaenasada)erealizadaemumestacionamento,queempregavriosfuncionrios.
Notequeexisteumrelacionamentodiretoentreaestadaeoestacionamento.Porm,
poderamosdescobriroestacionamentoatravsdosfuncionriosqueregistramaestada.s
vezesfazemosissoparasimplificaromodeloe/ouporquestesdemelhoriade
performance.
Omodelodeveimplementarasexignciasdadocumentaolevantadaeresponders
perguntasdonegcio.Porexemplo:Quantasestadasforamfeitasemumcerto
estacionamentoduranteumperodoespecificado?Qualovalortotalcorrespondente?
Imagine.Outrasquestesimportanteseverifiqueseomodelopoderespondlas
satisfatoriamente.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 3/6
2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos

Daformacomoest,nossomodelojnosforneceumaboavisosobreonegciode
estacionamentos,maspodemostornlomelhoremaisfcildeler.Paraissovamos
adicionarumadimensoamais,classificandoasclassesdeacordocomseupropsitodentro
dosistemaeidentificandoasatravsdeumcdigodecores,deacordocomoarqutipo
correspondente.Masoqueumarqutipomesmo?
OsquatroArqutipos
arqutipo.s.m.1modelooupadropassveldeserreproduzidoemsimulacrosouobjetos
semelhantes2idiaqueservedebaseparaaclassificaodosobjetossensveis3
Derivao:porextensodesentido:qualquermodelo,tipo,paradigma.(Dic.Houaissda
LnguaPortuguesa).

Poressadefinio,umarqutipodiferentedeumesteretipo,que"algoqueseadquaa
umpadrofixoougeral.Emoutraspalavras,umesteretipodeveserseguidodeforma
rgida,enquantoumarqutipoespecificaummodeloqueseguido"maisoumenos.Alm
dedefiniropropsitoprimordialdeumelemento,oarqutipotambmespecificaalgumas
propriedadesefunesdesseelemento,incluindopossveisrelacionamentoscomoutros
elementos.Paraidentificlos,usamoscorese,nocasodediagramasUML,esteretiposcom
osseusnomes.
Jfaleisobreissonaedioanterior,masvamosconhecermelhorosquatroarqutipos
bsicos:

MomentoIntervalo
Representaalgoquenecessitaserregistrado,porrazesdenegcioouatmesmo
legais,queocorrememalgummomentonotempoouduranteumintervalodetempo.So
atividades,eventoseservios.Ummomentointervalotambmpodetermidetalhes,ou
seja,sercompostoporpequenasetapasdoeventototal.
Exemplos:Umavendaalgoqueaconteceemumcertomomento.Umaestadaoperodo
detempoqueoveculoficasobaresponsabilidadedoestacionamento.

Receba notificaes :)
Paraidentificaressearqutipousamosacorrosaeoesteretipomomentinterval.
TambmseusaasiglaMI.Paraosdetalhes,usamosoesteretipomidetail.

PessoalugarCoisa
Representaumapessoa(fsicaoujurdica),umcertolocal(endereo,casa,privadoou
pblico)oualgumobjeto,geralmenteconcreto.Soentidadesquedevemserregistradasno
sistemapordesempenharempapisnasatividades(momentosintervalos).Umamesma
pessoapodeparticipardeeventosdistintosatravsdepapisdiferentes.Identificamosesse
arqutipocomacorverdeeoesteretipocorrespondente:party,placeouthing.
Suasigla,emingls,PPT.

Papel
arepresentaodeumpapelquedesempenhadoporalgumapessoa,lugaroucoisa,em
umdeterminadoeventodonegcio(momentointervalo).maiscomumenteaplicadoa
pessoas,maspossvelutilizlocomlugareseatmesmocomcoisas.Noartigoanterior
deioexemplodeumaeroporto,quepodedesempenharopapeldelocaldeorigem,destino
ouescaladeumvo.Suacoroamareloeoesteretiporole.

Descrio
comoumitememumcatlogo,definindoascaractersticasdeumadeterminadacoisa,
lugarouatmesmopessoa(menoscomum,maspossvel).Usadoparaconcentrardados
comunsadiversosobjetos,possibilitandoperguntasdenegciointeressantes,comoa
quantidadedeobjetosdeumdeterminadotipo.Aparecenacorazul(quasecinza,
dependendodaferramentademodelagem)eusaseoesteretipodescription.
Porqueimportantereconheceroarqutipodecadaobjeto?Umarqutipojnosdizmuita
coisasobreumobjeto,oferecendocaractersticas,funeserelacionamentosquenos
ajudamadefinirmelhorcadaumsem,noentanto,nosforaraseguiromodelo.Podemos
ganharbastanteemtempoeprecisoseguindoasrecomendaesqueosarqutiposnos
oferecem.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 4/6
2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos

Aoaplicarmosessesconceitosemnossomodelodeobjetos,identificamososarqutipos
descritosnaTabela1.

Classe Arqutipo
Veiculo Coisa
Cliente PessoaouPapel
Funcionrio PessoaouPapel
Estada Momentointervalo
Estacionamento Lugar
TabeladePreos Descrio

Tabela1.Objetoseseusarqutipos

HumaindefiniocomrelaosclassesClienteeFuncionrio.Obviamenteelas
compartilhamatributos(nome,endereo,RG,etc.)emtodos,relacionadospessoado
clienteoufuncionrio.Aquitemosduasopes:

.Usarherana,criandoumaclasseabstrataPessoa,comosatributosemtodoscomunse
derivandodelaasoutrasduasclasses.AstrsseriamidentificadascomoarqutipoPessoa
lugarCoisa(verde)

.Usarcomposio,criandoumaclasseconcretaPessoa,comosatributosemtodoscomuns
erelacionandoasoutrasclassescomela.AclassePessoaseriaverde(PessoaLugarCoisa)
easclassesClienteeFuncionrioficariamamarelas,poisseriampapisdesempenhadospor
umapessoa.

Qualdasopesamelhor?Issodependedoquequeremos.Seusarmosherana,estamos
decidindoqueumapessoapodeserumclienteOUumfuncionrio,masnoambos.A

Receba notificaes :)
heranacomoumesteretipo,ondedescendentesdevemseguirfixamente.Tambm
possvelusaropolimorfismoparamanipularobjetosdescendentesdiferentesapartirda
definiodaclassesuperior.
Seescolhermosacomposio,decidimosqueumapessoapodedesempenharqualquerum
dosdoispapis,simultaneamenteouno(essaumadecisodenegcio)emesmoassim
podemosreferenciarapessoacorrespondente.Nohpolimorfismo,maspodesedefinir
umainterfaceparamanipularobjetosdiferentesatravsdela.
Geralmenteousodeheranalevaaumahierarquiafixaedemanutenomaisdifcil,com
poucaflexibilidade.Emmuitoscasosprefervelusaracomposioparagarantirmaior
liberdadeepossibilitarextensesdeformamaisfcil.Norestantedestasriedaremos
prefernciacomposiosemprequepossvel.

UMLemCores?
Ascoresadicionamumadimensoamaisemumdiagrama,comosefossemcamadas
extrasdeinformao,aumentandoaquantidadedecontedoquepodemosexpressarsem
ocuparmaisespao.Masissononovidade.MesmonosdiagramasEntidade
Relacionamentojseusavacoresdistintasparaidentificarreasafinsnaquelemontede
tabelas.Porexemplo:financeiroemvermelho,controledeestoqueemazul,contabilidade
emverde,etc.Identificamososarqutiposusandoasquatrocoresbsicas,emtonspastis
porseremmaissuaves:rosa,amarelo,verdeeazul.Outromotivoporqueas"notinhas
autocolantes"tambmsoencontradasnessascores,oquefacilitaseuusodurantea
modelageminicial.
Almdetornaremomodelomaisagradveldesever,ascoresidentificamimediatamenteo
propsitodecadaclasse,oferecendoumacompreensomuitomaiorsobreonegcioeas
entidadesparticipantes.Olivroderefernciasobreamodelagememcores
"JavaModelinginColarwithUMLdePeterCoad,EricLefebvreeJeffDeLuca.

Nossomodelocolorido!

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 5/6
2017629 ArtigoClubeDelphi59AnliseOrientadaporObjetos

Adicionandoadimensodacoraonossomodelo,juntamentecomalgunspequenosdetalhes
sclasses,chegamosaonossomodeloabrangenteinicial,mostradonaFigura2.Esse
modeloficardisponvelnositedaClubeDelphi.Aoabriroprojeto(disponvelpara
download)vocteraoportunidadedevislumbrla,aovivoeacores!

Figura2:Modelodeclassesabrangentes

Paracasa
Agoraquevocjaprendeumaissobreosarqutiposesobreodomniodoproblema,faaa
revisonomodeloparaverificarseumaboasimulaodarealidade,tentandorespondera
perguntasdenegcio,necessidadesderelatrios,estatsticasetc.

Receba notificaes :)
Especifiquenovosatributosemtodosparaasclasseseatmesmooutrasclassesqueno
foramidentificadasainda.Tenhocertezaquepodemoschegaraummodelobem
interessanteapsumperododeanliseeverificao.Lembrese:todoonossosistema
dependerdessemodelo!Noimaginequesaircomummodelodefinitivodaprimeiravez.
Aanliseeoprojetosoresultadosdevriasiteraes,poiscadavezqueolhamoso
modeloeestudamosonegcio,reconhecemosdiferentesaspectosedescobrimos
necessidadesadicionais.
Noprximoartigovamosfinalizaressemodelo,aprenderumpoucomaissobreos
arqutiposecomearnossoprojetousandooDelphi2005,comumaaplicaoECOusando
ASP.NET.Atl!

Links
www.pcoad.com
SitedoDr.PeterCoad,umdospioneirosemanliseeprojeto00,autordevrioslivroseex
proprietriodaTogetherSoft,fabricanteoriginaldaferramentademodelagemTogether
(hojeumprodutoBorland).CoadocriadordaUMLemcoresedosquatroarqutipos.

porAdailMuniz
Delphinaveia(!)

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=14202 6/6

Você também pode gostar