www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?
comp=12404
Receba notificaes :)
EsseartigofazpartedarevistaClubeDelphiEdio58.
Cliqueaquiparalertodososartigosdestaedio
AnliseOrientadaporObjetos
Omundocomoele!
Nasedies50,51e52mostreicomooparadigmadeprogramao
orientadaporobjetos(OOPObjectOrientedProgramming)podesignificar
umamelhororganizao,planejamento,desenvolvimentoemanutenode
umaaplicao.Porm,programarOOsemumprojeto(design)OOpodeser
umatarefadifcil,levandoaumaimplementaodeficiente,semos
benefciosdemdioelongoprazoesperadosdaOO.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 1/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Eparaobterumbomdesign(modelodeobjetos)precisamosdeummtodo
deanliseadequado,ouseja,orientadoporobjetos.Semumavisode
mundoOO,derivarumprojetoparaumaboaimplementaoOOtornaseum
enormedesafio,senointil.Assim,nasprximasedies,mostrareios
princpiosfundamentaisdaOOAD(ObjectOrientedAnalysisandDesign),que
naturalmentelevamaumaboaOOP.
Omaterialapresentadoserumasntesedediversasmetodologias,mash
muitotempotenhousadopreferencialmenteaabordagemsugeridapeloDr.
PeterCoad,aquemtenhomuitoaagradecer,tantopelaOOADquantopela
metodologiagilconhecidacomoFDD(FeatureDrivenDevelopment).
AntesdaAnliseOO
Avisodemundoorientadaporobjetosofereceumexcelenteparadigma
paraoentendimentodeumdeterminadocontextoousituao,denominado
domniodoproblema.Anteriormente,doisoutrosenfoqueserammuito
comuns:oenfoquefuncionaleoenfoquededados.
Noenfoquefuncionaldecompeseodomniodoproblemadeacordocom
Receba notificaes :)
suasfunes,algoritmoseprocedimentos.Osdadosrecebemumtratamento
secundrio,svezesemformaderepositrios(arquivos),outrasvezes
simplesmentefigurandoentreasoperaes.Doisdiagramassocomumente
usadosparamodelagem:
DHF(DiagramaHierrquicodeFunes):mostracomoosmdulos
estoorganizadoseconectados,seguindoumahierarquia
arquiteturalefuncional
Fluxograma:demonstradeformagrficaofluxodeoperaesde
umdeterminadoalgoritmo.
Noenfoquededadoshumaenormepreocupaoemmostraroque
acontececomosdadosnamedidaemqueessestransitamentreasdiversas
bolhasdeprocessamento.Asfunes,quandonecessrio,soexplicitadas
separadamente.Osdoisdiagramasmaisusadosso:
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 2/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
DFD(DiagramadeFluxodeDados):mostraasbolhasde
processamento,osdutosdedadoseosrepositrios,normalmente
seguindoumesquemaderefinamento,ondeasbolhasprincipais
sodetalhadas(explodidas)emoutrosdiagramas,formandouma
hierarquiadediagramas
DER(DiagramadeEntidadeRelacionamento):demonstraa
estruturadasentidadespresentesnodomniodoproblemaeos
relacionamentosexistentesentreelas.Geralmenteusadopara
derivaroscriptparaumbancodedadosrelacional.
Umpoucodehistria
interessantenotarque,historicamente,dadosefunessempreforam
consideradosseparadamente,desdeaarquiteturadohardwareatmuitas
linguagensdeprogramaonoOO.Nohardware,foiohngaroJohannLouis
vonNeumann,porvoltade1945,quemsugeriuquetantoosdadosquantoos
programasfossemarmazenadosnamesmamemria.Oscomputadoresque
usamoshojeaindausammuitodaarquiteturavonNeumann(pronunciase
Receba notificaes :)
algocomofonniman).
Nomundodosoftware,osconceitosOOjcomearamaaparecerporvolta
de1959.Algunsanosdepois,alinguagemSimula67apareceujustamente
parafacilitarsimulaes,oferecendovriascaractersticasdeorientaopor
objetos.Smalltalkfoidesenvolvidanasdcadasde1970e1980e
consideradaumadasmaispurasecompletaslinguagensOO.C++apareceu
nadcadade1980,eEiffel,porvoltade1985.Javasapareceuem1995e
C#,em2000.
Eoquetudoissotemavercomvoc?Bom,talvezsejasurpresapara
muitos,masem1989aBorlandlanouoTurboPascal5.5comObjectPascal,
comextensesparaOOP!Umnovotipodedadoschamadoobjectpermitiaa
definiodeumregistroquepossua,almdevariveis,declaraesde
funeseprocedimentos.Ediferentementedeumrecord,umobjectpodia
herdardeumoutroobject!OmundoOOestavaabertoparaospascaleiros!
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 3/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Cincoanosevriasmelhoriasdepois,aBorlandfezumgrandefavorao
mundoelanouoDelphi1.0,ondeoobjectvirouclass(paradesfazerum
dilemafilosfico)!Agoravivemosaexperincia.NETecomodecostume,a
BorlandsalvaodiaelanaoDelphifor.NET!AexperinciaOOserelevada
aumnvelaindamaior,suportadaporumambientedeexecuototalmente
OO,aCLR(CommonLanguageRuntime),queamquinavirtualdo.NET.
Nesses15anos,aprendemosaprogramarOO,criarcomponentes,construir
hierarquiaseorganizarmelhorasaplicaes.Mascreioqueaindanotemos
aplicadoaOOondeelapodeajudarmais(eparaaqualfoioriginalmente
concebida):entenderesimularomundoaonossoredor!
Afinal,oqueAnliseOO?
ummtododeanlisequeexaminaosrequisitosapartirdaperspectiva
dasclasseseobjetosencontradosnovocabulriododomniodoproblema,
enfatizandoaconstruodemodelosdomundorealusandoumavisode
mundoorientadaporobjetos.
ConstruirumaVCLrealmenteengenhosoeeusoumuitogratoporisso!Mas
Receba notificaes :)
equantoaplicao,aodomniodoproblema?Continuamosaprogramarnas
decomposiesfuncionaise/ouorientadaspelosdados...
Ecomomudar?Comocomeardenovo?Felizmentenotodifcilquanto
seimagina.sprestarmosatenoemcomoascrianasaprendem...
ATeoriadaClassificaodizquenacompreensodomundorealcostumamos
empregartrsmtodos:
Diferenciao,baseadanaexperinciadecadaum(aspessoaseos
outrosobjetos)
Distinoentreotodoesuaspartes(apessoaeseusrgose
tecidos)
Formaode,edistinoentre,asdiferentesclassesdeobjetos
(classesdepessoas,classesdeveculos,etc.).
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 4/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Assim,muitodoquesabemoshojeseguiuessametodologia.Primeirovemos
ummontedeobjetospassandoanossafrente.Daconseguimosdistinguir
determinadosgrupos,atravsdesuassimilaridadesediferenas.Umpouco
adiantecomeamosaperceberquecertascoisaspossuemoutrascoisas
dentrodelas(quemnuncadesmontououquebrouumbrinquedoouum
rdio?).Depoiscomeamosadarnomeaosgruposquemontamos,
classificandoos.Adoprovavelmenteseguiuesseprocessoemseuprimeiro
emprego(leiaemGnesis2:1920)!
RobertKiyosaki,autordePaiRico,PaiPobre,sugerequeintelignciaa
capacidadedefazerdistinesmaisrefinadas.Assim,podemosdizerque
umaanlisemelhorqueoutrapelaformacomquefazemasdistines.
Umanalistamaisinteligentequeoutroporcausadesuacapacidadede
observaoedistino,quelevaaumamelhorespecificao.
Boasnotcias,certo?Sejfazemosissoinstintivamente,serapenasuma
questodepraticardeformametdicaehabitualeteremosdadoumpasso
significativoparaadotaraOOAemnossosprojetos!
Receba notificaes :)
ConceitosFundamentais
Aorientaoporobjetosestbaseadaemconceitosessenciais,quea
distinguedeoutrosparadigmas.Eelesnosorestritosprogramao,mas
estendemseanliseeaoprojeto.Entreoutros,osprincipaisso:
Abstrao:princpiodeignorarosaspectosdeumassuntonorelevantepara
opropsitoemquesto,tornandopossvelumaconcentraomaiornos
assuntosprincipais.Pensenoobjetopessoa.Sevocestivercriandoum
sistemaparaumhospital,provavelmenteirconsideraraspectostaiscomo
peso,alturaetiposangneo.Maselesseriamnecessriosnumavdeo
locadora?
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 5/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Encapsulamento:princpiodequecadacomponentedoprogramadeveconter
umanicadecisodeprojeto,isso,umagrupamentodeaspectos
relacionadosaumaidiaouentidade.Almdisso,ainterfaceparacada
mdulodefinidadeformaarevelaromenospossvelsobreseu
funcionamentointerno,implementandooocultamentodeinformao.Assim,
sefornecessrioalteraralgumacoisadentrodacpsula,omundoexterior
noprecisa(oupelomenosnodeveriaprecisar)seralteradoporcausa
disso.Nossoobjetopessoa,porexemplo,agrupaasinformaese
comportamentosdeumserhumano,enquantoescondecomoissofeito.
Identidade:umobjetodistinguesedeoutropelosimplesfatodeexistir.Sua
identidadeindependedosvaloresdeseusatributos.Podemosterdoisobjetos
idnticos(doisgmeos,porexemplo),masaindaassimsabemosqueso
doisobjetosindependentes.Aoalocarmosdoisobjetosnamemriado
computador,emborapossamtertodososatributosiguais,seusendereosde
memriasodiferentes.Doisregistrosidnticosemumatabeladiferenciam
sepelasuachaveprimrianica.
Receba notificaes :)
Herana:mecanismoparaexpressarasimilaridadeentreclasses,
simplificandoadefiniodeclassesiguaisaoutrasquejforamdefinidas
(reutilizaodecdigo).Representageneralizaoeespecializao,tornando
explcitososatributoseservioscomunsemumahierarquiadeclasses.Um
empregadoumapessoa.Portanto,sedefinimosumaclassecomos
atributoseserviostpicosdeumapessoa,podemosaproveitartudoisso
paraespecificarumempregado,concentrandonosagoraapenasnoqueele
temdediferente(normalmenteamais).
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 6/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Polimorfismo:capacidadedeumamesmamensagemserentendidae
executadadeformadiferenteporobjetosdistintos.Peaaumapessoapara
cantar.Cadatipodepessoairresponderaopedidodeformadiferente
(algumasmelhoresqueoutras).Polimorfismotambmapossibilidadede
manipularobjetosmaisespecializadoscomosefossemobjetosmais
genricos.Sevocpediraumempregado,umgerenteouumcantor,para
cantar,vocnoprecisasaberaprioriquetipodepessoaele,pois
cantarestdefinidonaclassePessoaemesmoqueosindivduospertenam
aclassesmaisespecializadas,porheranaelescontinuamsendodaclasse
Pessoae,portanto,conseguemresponderaopedidoparacantar.Os
programasdecalourosnaTVatestamissodeformairrefutvel!
Associao:unioouconexodeidias.Agruparcertascoisasqueacontecem
emalgumpontonotempoousobcircunstnciassimilares.Pessoasassociam
separaosmaisdiversosfins:sociedadecomercial,esportes,
relacionamentos,projetos,etc.Adefiniodotipodeassociaobusca
espelharoqueacontecenavidareal.Pessoastambmestoassociadasa
Receba notificaes :)
coisas(carros,livros),lugares(imveis,aeroportos),servios(emprstimos,
exames),etc.Almdasassociaessimples,tambmpodemoster
composies(carro=motor+rodas)eagregaes(umcursoumagregado
dedisciplinas).
Mosobra?
Ento,vamoscomearatoaguardadaanliseOO!Masantestemosque
arranjarumproblema,umcontexto,umdomniodenegcios.Quetala
vdeolocadoracitadaacima?No,issoestmuitomanjado...Controle
acadmico?Boatentativa...Umhospitalzinho?Outrahora...
Enquantonodecido,saibaquenoimportaqualodomniodoproblema,
fatalmenteencontraremosquatrotiposbsicosdeobjetosemtodoseles:
Pessoas,lugaresoucoisas:essessoosobjetosmaisfceisdeobservar,
poissofsicos.Mesmoseforementidadesabstratas,peloprprioestudodo
processodenegciosorapidamentedetectados
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 7/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Momentosouintervalos:soeventosqueocorremnoprocessorealeque
precisamserregistrados.Oeventopodeserinstantneo(umavenda,um
depsito)ouocorrerduranteumintervalodetempo(umalocao,uma
viagem)
Papis:geralmenteaspessoas,lugaresoucoisasparticipamdoseventos
desempenhandoalgumtipodepapelespecfico.Porexemplo,umapessoa
participadeumavendacomoclienteouvendedor.Umaeroportopode
desempenharopapeldedestino,origemouescaladeumvo
Descries(tipocatlogo):quandoumacoisaoulugarpossuiumadescrio
razoavelmenteconstante,essadescriopodeficarseparadadoobjetoreale
serreutilizadaporoutrosobjetos.Umcarrotemsuaplaca,corenmerode
chassi,massuadescriogeral(nmerodeportas,potncia,etc.)podeficar
emumcatlogoreutilizvelpordiversoscarrosdomesmomodelo.
Squatro?Claro,possvelquevocencontreumououtrodesviodessa
classificaogeral,mastenhaissocomobaseevseacostumandocoma
idia.Issopodelheeconomizarmuitotemponahoradeanalisareprojetar!
Receba notificaes :)
Essesquatrotiposbsicossochamadosdearqutipos.
Ah,sim!Nossodomniodenegcio...Bom,nosprximosartigos
desenvolveremosumaanlise,projetoeprogramaodeumaaplicaoque
nospossibilitecontrolaranossarededeestacionamentosdeveculos,a
OOPark.Eladonadosmelhorespontosdacidadeeoferecealgunsservios
adicionaisparaosclientes,masprecisadeumaboaaplicaoquelheajude
amelhorartantooatendimentoaosfreguesesquantoagestodonegcio.
LiodeCasa
Penseepesquisesobreoassunto.Faavisitasaalgunsestacionamentose
perguntecomofuncionam.Atentaogrande,mastentenocriartabelas
ouformulrios,mesmoquementalmente.Aprendasobreoprocessode
negcio.Afinal,estamosnafasedeanlise,OK?
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 8/9
2017628 ArtigoClubeDelphi58Anliseorientadaporobjetos
Suatarefaaquiidentificarosobjetosparticipantesdosistemareal,suas
caractersticas,comportamentoserelacionamentosprincipais.Notente
detalharmuitoagora.Faremosissoquandoestivermosprojetando.Coma
listadeobjetosemmos,tenteclassificloscomrelaoaosquatro
arqutiposapresentados.Vocstmtrintadiasparaterminar.Quemno
fizeraliodecasaficardecastigo,poisnoaprendernaprtica!
Umgrandeabraoeataprximaaula!Ops,artigo...
Links
www.pcoad.com
SitepessoaldoDr.PeterCoad
www.jot.fm
JournalofObjectTechnology.Revistaeletrnicasobreatecnologiadeobjetos
www.oopsla.org
SiteoficialdaconfernciamundialdeOO(ObjectOrientedProgramming,
Systems,LanguagesandApplications)
Receba notificaes :)
www.featuredrivendevelopment.com
SiteoficialdaFDD
br.groups.yahoo.com/group/gufdd
GrupodeusuriosdaFDDemportugus
porAdailMuniz
Delphinaveia(!)
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12404 9/9