Modelo de Visualização dos Conceitos
Transcrição
Modelo de Visualização dos Conceitos
146 9.11 912 Lhm ZANLf 1JNiL Leituras Adicionais . Vadaçdes do di.agrarn.as que iiustrarn Os eventos de F/S pare urn sisterna tratado too unto c.aix.a-preta tern sido amplarnente usadas h decades; por exemplo ern to as operaqdes do sistema corn outros artefatos d anduise e projeto. o c•ornun.i.cacts. corno diagrarnas de fluxo de charnadas. Popula rizararn-se de f especial nos rnétod.os oriented os a objoto s. por mob do seu uso no .rndto.do Ft Cobemrm—94/ o qual fürnecou urn exemplo detaihado do relacionarnerito his Artefatos do PU eve Otos e dados do .sdrrn diagramas de seqUdncia do d.stema .__;tse Modoic. do Dorrdrfo Amostras de Artefatos do PU oasos do use textuad .MO,de:iO ie P.cj.eto refteado em Pararnetros o d d ret rca podem s r laborados no Slossano Gossano fH S ercao Contratos para as ooeracftes do sistem.a de Software Pasta do Desenvolvimeflta Documento do Arquitetura Projetar otjetos paratratar Os eventosdo .ssfema. Ambiente Arnostra da inf;uCncia dos artefatos do PU. do Software Piano do DessrnvoMmento opera cries do sicOema N.e Figure 9.6, ado apresentadas amostras do rebacionarnentos ontre DSSs e o eia tots. Medelagem de Negócia Requisitos .Prc4eto Gestão de Projfeta Teste Figura 9.6 10 Modelo de DomInio: Visualização dos Conceitos Estd tudo bern on prdtica, mao nuncafiuicionard on Leone. Identificar classes conceituais relacionadas corn os requisi tos da iteracdo corrente. maxima gerencial anCnima s OBJETIVOS a Acrescentar, quando apropriado, classes coriceituais de especif icacao. Comparar e diferenciar as visöes conceituais e do irnplementaca o. Crier urn modelo de dorninio inicial. Distinguir entre atrihutos corretos e incorretos. • • • Iritrod ução — Urn modelo do dornIn io amplar e nento ut.iliza do corno fonte de inspiracao para pro jetar objetos do coftwan’ e serd urn dado do entrada requer ido por vários artefatos subsoqfientos djscutidos neste livro. Portanto, C irnportante br este capItubo se o lel tor nao estiver farniliarizado corn assunto o do modela gern dornInio. de 0 modelo do dornInio ilustra as classes concei tuais significativas (pare os modeladores) em urn dornIn io de proble ma; é artefat o o mais importante a sor criado durante a andlise orientada a t objetos. Este capItul o explore as habilidades introdutorias para criaçdo a do modelo s do domIn io. Os dois capItulos seguintos expandern as hahiiidades do modolagem do dornin io acrescentando atrihutos e associaçoes. sat. urn artefato importante da acCuse de requisites, porCm cOo são reatmente orientados a otfetos. uma visão de processo do dominic. taste de use IJML e PAD1OEs iL, ill—c lid I ‘C . - a modclc con ‘ed.I,’i c’noj, . .1 . .2 Eke tambdm est5o relacionados U Ic II’ ‘ic’ I I. c .,.. 1 ,, rn 1 c ‘d .,7L” dc c. ‘1 atrihutos de classes conceituais. io parcial. Ela rnorra .ini I Por exemplo, a Figura 10.1 mostra urn modelo de dornin s neste dominin qiie LIrn classes conceituais Pagamento e Venda são significatis-a ante e que uma Ci.u IL.. import a mento está relacionado a uma Venda de maneir s do notocilo 11 10’ c)c detalhe os nto, rnorne Neste ncia. uma data e urna hora de ocorrC irnportantes. objetos do dominio ou classes conceituais; associaçOes entre classes conceituais; ios. criados na disciplina de Modelagem de Negoc io é ilustrado corn urn coniam” Usando a notaçao UML, urn rnodelo de domin oes. Ele pode motrar: operac definem se não quais nos , classes de de diagramas análise. jetos da 2 urn dos artefato-. Liuc poden’ 0 PU define urn Modelo de Dorninio” conno ma prirneira ediçao — no anohu ou na in” etiac 0 passo mais essencialmerite orientado a o/i. e conei,uoi r obetos COC.” nios cm se interes de nio domm decomposiçao de urn io C eina 1eprccLtaac domin de o duais os quais nos interessarn. Urn model urn dominin cit proLlLm: em real, rnundo do s objeto ou anal de classes conceituais, tuais (ci tL’rrnc u. d concei os model [M095, Fowler96]. Eles tern sido chamados io e modelos de ob. domIn do s objeto de os model livro), deste Modelos de Dominlo do Je cL’o-e conceitaa.’ do nun Urn modelo de dornInio e urna reprcentac JiacUon0 urn onjunto Lie 2 ir Ftc ncãi ciI’c de nentes cornpo de do real, não LI I bi CiO1iO 1 00111 orta que descreve classes ou objeto do Ic h 0- ‘L, 1012, 2 C)— C—.i cia—.c Cc In. ci tua n identi hcar urn conjunto rico de ibjct on de a ‘‘ena oclo 1 cto’ no u’v.:lt ,o t’sforc ue Jo a niH’t’ i entoda a objetos c urn taco. tO’i.’ de prujetci 0 mplernen rtt Je niria fl\ etl acao cm J,c .\ identificaao LIC La. ‘,es tonceitnaj’— U/ trio d’ ti i,r,lnia5 do ca. e-. in no Oe floUt tern nici do pr lblcrna. A L \1 I oi, iliistrar iriociolos Ic dc’nnio. UJi[,IZANDO nh rc I -I d ii ‘nI .1 visöes purarnente conce(tuais de dominic’’- nlaI-c:uc’ h n modehi Jo ibm-n 1’ 1) ‘-a, m ,loio, cl 20 0 projeto de banco de dados. Os .— .(c.i .0, As letras maiOsculas em Modelo de Dominic. ‘-ic’ no PU, em oposiçao an cOncecto geral bun’o’- 0Cic)ci Ic’ ni ‘di 10.1 148 1 . 0 - quanta PagarnenCo Pago-porf data CoinCide-em c)uantdade LinhaDe LmYe0d0 Modelo de dorninlo parcaI C ----‘c) — C:ca — I aoo 1..’- nümeros — no m de cada jRtcqistro endenspo * urn dcionario visual de abstracöes 0 aoiante urn dic:onãrio visual. Os I ca . Arm-aznadc>.ern 1. 149 2 Lnn modelo de dorninio onoo o nit trido 2’ Fur 10 2 C mundo real do dom nb do problems, cndo d.c cornpone.ntes d.c so VncVe,c-omo urna ciasse em Java ou C± (ver Figura 10.3. J-ccrtanto, os seLu.)cntc’s lemento adequa.dos em urn modelo de domi.nio: Mode/os de dorn into nao são mode/os de componentes de software — Reflita urn instante sobre a Figura 101 Ela visualiza e relaciona alEurnas palovras on classes concejtuajs no dominjo Thmhdnn ilustra unna .c0sra,D’ doo CiaSSt COflCCi vistc) que ha muitas coisas qut st decttnrt’- comu001r ohrc rt jctroe c cod ns kni ) “-ni) iq c ( nbtrnc1o ig 0 etc 0 modolo c\lhe urna 0-ta porcl 1 dcladousj ‘-io dt-ilh’-, scm interosse bfltormnçao quo ci tlustr usando t oh no \1L poic I te n natm sido frnnsmitida pot texto em proso por cc ntenms noD loss nno cm cm urn on (I))-C ind e niL 0’tro lugm qualquer Fndetonto c aciI co nu Cb001rncntos nesto lingulkern 0-ual urno \ c? que limo Porcent-.pcnn cldmfnc iii a do s-.e c urn p0 ito 0 C 0 ) )-L L ccmhro porticip-. do procesomentci \ 0-U I oc ci dos nb., ssinn o modelo de dominjo pode car considorado urn dicun cu troc,ocs do vocohulorio do domrnto c do conk udo do rn -.rno C’ t c) Idei’a chave modelo de dornnio ;. gjra•-vende 4 IRe inna indicarn a mutipicidade descr ta en urn cap tu Figura 101 atribubos L assocucaO cia dominic) conCeCtO on objetO n.c: (Do ,duc:: \s c)ozçJo .tt ‘i S 1 1LI/t”. tuUM c’’.si sit a onJ it ‘ n It C d a ‘ ‘ C \ a C s n ri a’ ,, - i a S p1 ‘ u ‘ ‘SC:d ‘u d a e cncettc do. rnL tntere r a. no dons Ce ae -. Ia nao a ama rnagem de ama a d sofw não u s do mundo r al, nã da software: software. casse de software; nfto modelo de faz pane do domnio fazpartedomode!ode .da.mnio artefato de e conc is o a “ u I . t. a, . de i ‘t ii a pl a. r s. ‘ lb I a n. ponahiiid 0’ iS do V ito m a mr:’to importan e a—. i t a - a’v um’sononte ci s’c con ,eeor d domi ad 1 a la.e It. tt 0r1’ , Cia “C 1’ ‘ oni itt I ‘, t. ‘at i I, t a definicão de urna clas.se c.onceitu•ai. r C .- ‘ & t 4 I 4 4 a 5ancodeD•adosDeVendas Venda a a i\ testr d ‘a ft Vt COt O un-a pn&a ou urn oaoco dttdoc de a menus queo está send.o modelado seja de conceitos d.c software, corno urn fllOdej interfaces grificas corn o usudrie, — a 0 Urn rrodejo de aorr no mo ra — rn : - Simbolo — ,. Urn modeto de dominio .não mostra artefatos ou ciasses de cftia 0. Reortscbi.i.idade ou 4 tnétr:tdos. e Figura - a Figura 10.3 i Iiiteucao u I ant 0 a it. iii a xtens t . ‘I i S or & o ni iiu ra Ia at. at. tu i nu vo b Id jo o at rn so ii a to a ‘d ‘a un a i o urn hjct. Mais nt ormal e1 od n a ad a t n os d tot. i Jo Jo, isa ua i’d t t’ IMO°)°’] (‘ja igu a lit 4 pai.avras ou in-opens qua representarn un-a ciasse conceitua.l. Classes conce/tuals P data hora MODELO DC conceitual tern urn “Urna venda representa o evento de urna transaçao de compra. Ela tern urna data e urna hora’. Uma classe DOMDcIO: etSuAuZAçAo inos CoNcanos sIrnbolo, C> conceito urna intencao e urna extensão. do do concek simbolo do concetto 151 P05 eernplO, considere a classe concei tual para evento o de uma transaç ao de corn pra. Posso escoiher rtorneá-la corn o sImbolo Venda. A intençâo de uma Venda pode deterrniflar que ela “representa evento o de uma transaç ao de compr a e tern uma da ta a urna hora”. A extensäo de Venda são todas as ocorréncias de vendas ; em outras palavras o conjunto de todas as vendas. Figura 10.4 Quando estamos trabaihando em urn modelo de domInio, geralmente o sImbo Jo e a intenção do urn conceito tern major interes se prático. Mode/os de domInfo e decomposiçao — — Os problemas de softwa re podern ser comple xos; a decom posica o dividir para con quistar e urna estrategia comum para lidar corn esta comple xidade , pela divisão do espaço do proble ma em unidad es compr eensIv eis. Na análise estruturada, o critério usado para a decomposicao são os proces sos ou asfunc oes. Porém, na artálise orien tada a objetos, a dirnensão de decomposicao usada e fundamentairnente realizada por meio de coisas ou entidades no dornInio. Uma distinçao central entre a andlise orienta da a objetos e a estruturada: a di visCo por classes conceituais (objetos), em vez da divisão por funçoes. Portanto, uma tarefa hásica da fase de análise e identif icar diferentes conceitos no do misdo do problema e documentar os resultados em urn modelo de dominio. j PRODEMGE ECA UTsuzANoo UML E PADROItS 10.2 Modelo conceftual parcial no dominio da loja Registro Venda Não pense que urn rnodelo de dorninio serd meihor se tiver menos classes concel tuais; a verdade tende a ser exatarnente o oposto. F comum deixar passar classes conceituals durante a fase inicial de identifice OU çao e dcscobri las mats tarde durante a consideração de atributos ou assocIaçoe’ mo ao mcorporadas são elas encontradas, Quando projeto. de a fase ainda, durante delo de domInio. Não exclua urn conceito sornente porque os requisitos não indicam urna neces sidade Obvia de lembrar informaçoes sobre dc (urn critério comum, usado na mode pan lagern de dados para o projeto de bancos de dados relacionais, mas irrelevante a modelagem conceitual) ou, ainda, porque o conceito näo tern atrihutos. pa E pea feitarnente vahdo ter classes conceituars scm atributos ou que tern un pd purarnente cornportarnental no dornirno em vez de urn papel de rnfoimaclo F rneihor especificar em excesso urn modclo dc dorninco corn muitus clisses conceituats de granularidade frna do que subespecifica lo Nosso objetivo e criar urn modelo de dorninio composto de classes conceituais iou. ressantes ou significativas rio domInio de interesse (vendas). Nesse caso, isso slgnifj ca conceito- telacionados corn o caso de uso Processai Venda No desenvolvimento itcrativo se constrol de forma incremental urn mod elo de domInio ao longo de várias iteraçoes na fase de elaboração. Em cada urna, o rnodelo de dominio está lirnitado aos cenários prévios e ao cenário em consideraçao, ao invés de urn modelo big bang, o qual tenta captar prematurarnente todas as classes concei tuais e relacionamentos. Por exemplo, essa iteracão está lirnitada a urn cendrio de Processor Venda simplificado que coritempla somente o pagarnento corn dinheiro; portanto sera criado urn modelo pircotl do dornrnio para refletir apinas isso -e nada mais Dessa forrna, a tarefa central é identificar classes conceituais relacionadas corn o cenário que está sendo projetado no mornento. A seguir, propomos urna diretriz dtil para a identificaçao de classes conceituals ldentificacao de Classes Conceituais Figura 1O5 Loja Por exernplo, no mundo real do domIno de cornpra de itens em urna loja, existem a classes conceituais de La/a, Registro e Venda. Po.rtanto, o nosso modelo de rnostrado na Figura 105, pode incluir uma Loja, urn Rcgistro e urna Venda. Classes conceituals no domInlo venda 152 identificar classes conceituals 4,. manuais, docurnentos. artigos he etc e,,ja DeP registros financeiros, tracathistas. de contratos, deassunoos legais op Redbo, Did rioDeCaixa ContrafsDeEi-npneo,, DidrioDeMa.nutengdo LinhaDeCrdcito., Aches Catáiogos ervicos e instrumentos financeiros Cara/cqoCeP’coctos. Cars .cgrOePe rca regras e ponticas °r5caDeRes.-mosos. PniaCeCs-oea-e:-tos VendendoUmProduto ReservandoUfliAssento processos (que geraimente não são repre.sentados corns conceitos, ernb.ora p05mm se-b) Verrda, Pagamento Reunuo V&cr Acidente.. Atemssagem Deca-tame’-toOeVeroas Creoo. eventOs SiStema °o’’e Acro3rra 50 nOSSO casses conceituaa de substa”tivos acs:ratcis organizacOes item PassaeOo SistemaAutorEzaçaoDePagarnentoGomrét5to controieooTrafegoAéreo coisas em urn contèiner outros sisternas de cornputador ou dispositivos ei.etromecdnicos exiernos Caxa Piicnr Lca Arvm-rc Aero-’ae eapSis desernpenhados pm pessoas contèineres cc outras coisas Vendà, Pagament Reserss LThhaD temDeV5nda lug.ares linhas de tens de transacoes Lcia, Aeroporto especificacoes, projetes Cu oescnçao Ce cosas transacdes Registo 4ercrnve EspecficacoOeProe.cc,_DascçacDonr Exemplos objetos fisicos ou tanuvea - Lista he categorias he ciasses conc.eituais Categoria de Classe Concedual Tabela 10.1 Comece a criaçdo de urn modelo do dcsminjo fazendo urna lista das classes. conce.C tuais candidatas do i.ista de categorias d.c classes conceituais. A Thbela 10.1 contdm muitas categorias comuns que geralmente vale a pena consdenar. embora não sela necessdnio seguir algurna ordern de importdncia especifica. C)s exempios são niraão’ do domIno da loja e do dornfnio de reservas de passagens aere.as. ussr uma lista de categorias de classes conceituais . \as sephes seguintes. são apresentadas cluas tdcnicos: tjsar urna lista d.c categonias de classes co.ncei.tuc s 2. Identificar suhstanti.vos on frases que possam estar no lugar d.c su.bstantivos, Qutra técnica excelente pam a modelagern do dornfnio b o uso de pad.röes. de a.náiise., j nor us. cue são modelos de dorninio parciais criaclos or es: cci ista, boo ros L rno o Estra. para 55 154 Corno encontrar classes coriceituals pela ,dent;ficacão de substantivos e ftases qoe podem estar no lugar de urn substantivo . i ou tcn Cl ud por ua ssrnphcidid piopotl em &hbottb} e a anais iingUistic.a: identif subs icar os tanti e. as fra.ses que vos pode e.star m no lugar de ubsdandvo, nas descriçöes textuais de urn dorninio de problema. a considerá.Iosc 0 mo c.andidatos a ci.a.sses •conceituais ou atrihutos. ntUi I I Deve-sstomarcuidadO ao ap1.icar este mdtodo; não ép.os.sIvel ummapearnen-*• do suhstantjvos para classes conceituais e as palavras em uma d teodcm a ccc arnhigua or to mec2nko \do ohsante o dito anteriormente, trata-se de urna outra fonte inspira de cão. Os c. sos do uo plonamente desenvol idos fonocern o\Lelentec descnöes i serum usad c ecc tipo u ‘n i Por \emp o node ss ul o cenarlo atualen c do envo.b,imen.to d..o caso do uso Processor Vdnda. 10 0 Chente chega ao ponto do pagamento do PDV corn bans ou serviços pa a ad Cenärio de Sucesso Principal (ou Fluxo Básico): 1 .2. OCaixaindaumanOVaveflda. 3. 0 Caixa dada c identificadOr do item. 0 S o’-a eq ss e a lrnha de item de venda e apreser a orna descriçao do iteni preço Co mesmo e o total parcial da venda 0 preqa a calculado segundo urn cc junto de regas do oreços. 0 Caixa repete passos 3 e 4 ate quo [ndique tot terrninado 5. 0 Sdterna aoresenta o totai corn Os impostos cacuados. 6 0 Caixe irnorms ao Csento a total e soicita o pagamento 7. 0 Clonic papa e o Sisterna processa a pagarnento. 5. 0 Sstorna rogstra a venda cornpiotada e onvia as inforrnaçOes de venda e paga mento pa:ra a Sisternas extomo do Contabilidade (para cantabflizaqão e comis sOes e de Estoque para atualizaro estocuel. 9. 0 Sisterna .apresenta a recibo.. 0. 0 Olente sa corn a ecibo a os Dens ise tar 0 caso) ExlensfieS (ou Fiuxos AltornatiVos): 7a. PaqarnentO corn dinheiro: Oa:xa og:ta a puan0a do dinheiro fornecida. Siste.rn.a apresenta a valor do troco a ibora a gaveta de dinheiro. Caoa deoos:ta o dn0oco tornecida e entroga o troca para o Ciente. S.ist.erna rogistra a pagarnonto em dinheiro. 0 2. 0 3 0 0 4. 17 rnodoio do doinrnio d uma visuaiizagãc’ 00 COflCOltOS e do vocabulauto do donhi0 ditoos denota. Onde elos so encontrarn? Nos casos de uso. Assim. cbs represefltO urna rica ionic explor sot a ad.a pola id.e.nti fic.açã de frases norninais (substantivoS ? o 1 u r o p IT do urn ub,tanti\ ot diguns d.osses substantivos são candid.atos a classes. conceituals, outrO5g refenir da-ccs conec :tuais que 530 ignoradas nessa iteração (pot exempl° io3 MODEl .0 05 DOMINIC): VIsuALIzAç:Ao Dos Coricmos 155 “Contabilidade” e “cornissöes”) e aind a outro s pode m ser atrib utos Veja a seçao e . o capItulo soguinteS sobre atrihutos para uma orientacão sabre como distinguir en tre os dais. Urn ponto fraco desta ahordagem é a irnprocisao da lingu agem natural; diforon tes substantivos podem repreSentar a mesma classe concei tual ou atributo, entre ou tras amhigüidadcs. Apesar disso, cia é recornendada em combi naçao corn a técnica da Lista do Categorias do Classes Conccituais. Cla Catd1o,ioDeProdu los Loja Iteni Registro Geren to Cliente Caixa LinhaDeltern Do Von do EspecificacdoDu’Produto — sses Conceituais Candidatas para 0 DomInlo de Vend as A partir da Lista do Categorias do Classes Conceituais e da andlise do frases norninais, geranlos uma lista de cand idato s a classes concei tuais para o dornInio. A lista estd restrita aos requisitos e 35 sirnplificacoes que estão sendo considerados o cendrie sinlplificado do Processor Vt’nda. — incluir o recibo no modelo? Não oxisto algo quo possa ser charna do de lista “corret a”. Ela C uma colecao urn tanto arhitrdria de abstracoes e vocahulário do dornInio quo os modeladores consideram digna do nota. Do qualquer forma, segu indo as estrate gias do idontificaçao acima, us tas srmi ares sorão produzidas par rnodoladores diferontes. Objetosrelatório Cm reciho e o registro do urna venda e seu pagam ento, sendo urna classe conceitual relativarnente proemmente no dornInio do vendas. Assirn, ole deveria sor mostrado modobo? Tornos alguns fatoros a considerar: no m Urn recibo C o relatCrio de urna vonda. Em geral, mostra r urn relatório do outra in forrnação em urn modolo do domInio 1130 Otil C porquo toda a sua informaçao é derivada do outras fontos; ole duplica a inforrnaçao que pode sor encontrada em Quito lugar. Esta e uma razão para oxclui-lo. z Urn recibo desempenha urn papo] especia l em tormos das rogras de negocio: go ralmen to elo confer e diroito o ao porta dor do rocibo do dovolvor os itons compra dos polo mosmo. Esta C uma razSo para mostrd -lo no modelo. Urna vex quo a dovoluçao do itens nSo estC sondo cons idera da neste ciclo do desert volvimonto, a Rt’ctho serd exciuld o. Dura nte 0 ciclo do dosonvolvimento quo trata o case do uso Tratar l)eooluçCes, a sua inclusa o seria justificávol. Diretrizes para Modelagem de DomInio UIILrzANOO UML E PADROES Dosonhe-os om urn modelo do dorninio, Acroscente as issociaçöes neossmas para rcgistrar os rd cIonamentos para os quais existe a necossidado de preservar algurna mernória (discu tido em urn capitulo subsequente). Acroscente os atributos necossários para completar os requisitos do infor maçao (discutido em outro capItulo mais adiante). Liste as classes concoituais candidatas, usando a Lista de Categorias d Classes Conceituais e a identificaçâo de substantivos relacionados corn os roquisitos que estão sendo considorados. NJão incluir coisas quo näo estão Id. a — — I bliotocas. a 0 cartografo oxclui coisas do urn rnapa so ndo fororn consideradas re1evanto5 neCs ra a finalidade do mesrno; por exernpbo, a topografia ou as populacOos ndo Cii5 sitam sor mostradas. Da mosrna forrna, urn modelo de domInio pode oxcluir PO requisitos. aos tos nao-pertinen probborna sos conceituais no dorninio do exornplo podernos exclusr Caneta e CestoDePapus do nosso rnodelo de donun 1 ufl (para o conjunto corrente de requisitos), urna vez que cbs não desempenham nota. do digno óbvio papel urn domide. Urn modelo de domlnio é urn tipo do mapa de conceitos ou coisas em sugere o e domInio do Este espfrito enfatiza o papel analItico do urn modelo guinte: dasc1 a Os cartografos usan-i os nomes do território cbs ndo mudam os nornes a use dizer a equivale isso dominio, do modelo Para urn dades em urn rnapa. R cahuldrio do do,nínio quando nomear classes conceit uais e atributos. For oxemplo. coriE cliento o nornoie hiblioteca, uma para modolo ostiver desenvolvendo urn termos usados por tunclonlrios de urn Usuario ou Client da Bthlioteca Excluir caracteristicas irre1e antes a Fazer urn rnodelo do domInio no ospIrito corn que urn cartografo frahaiha: Usar os nornes existentes no territorio a Aesfratégia do cartógrafo se aplica tanto a mapas quanto a rnodelos de dornlnio, Sobre a nomenclatura e a modelagern de coisas: o cartógrafo Urn método complornentar dtil é aprender e copiar “padroos de an1ise”, discutidal em urn capItulo a seguir. 4. 3. 2. 1. Siga estes passos para criar urn modclo de dorrnnio Como coristruir urn modelo de domInlo 1O4 156 1O5 Dos (ucor.ozo is rs 1.57 vu — ou... ? — -. IPDV 4 uma s:i.gia quo sign ifica terminal do ponto-dosvo:ndas. Em j.argdo do compu tadores, un-i terminal 4 qu.aiquor dispos tivo isa onD-i. ou frontoi:ma, d urn sstomna Como Resolver Classes Conceituais Semeihantes Registro versus TPDV Em caso do drivid.a, tome—a urn concoi..to saparado Os atributos dovern scm muito mar05 em urn mod do do dominio, Nd rnundo real, urn aeroporto do destino nao é consid.orado urn ndmero on urn taxto ole 4 urns coisa do grande porte quo ocupa espaco. Portanto,.Aersaart.o dove.ria ser urn conceito. dest:nc C:omo outro exemplo, considere a dorni.nio do reserves he passagons aéroa s,LI/stinc: deveria. ser urn atrihuto do Vôo ou u,ma class-c co.ncei.tual separada. co-.mo Aero pasta? — reroDe No mundo real, urna lola nao 4 considerada urn ntimero ou toxto a tormo uç’ero ,: dot a urns entidaae boal, urns orgaluzacao e aiio crud ocups espaco Porrsrlta. er urn conceito. eura For exem plo, is/a dove ser urn a.trihuto de I/ends on urn a ciasso concertu,al sep arad.a L___— strihuta. coma urn nurnor a .-rn :r Se vocb no ponsar em urns clss cenceitus casso canca:tua. rrcj’ ui-u rto sora urns provaveinser \ antdo real. mundo to no J cz Lrc ‘o cost Lr urn LanLor do LODSO urn atr huto qu nac dar a o ‘ju.r esse ongarrO a seguinte: comurn ao identificar c/asses conce/tuais Urn engano C) [Coad9b]. or Dooivio: Vu Un a montanha ciuo ndo Q cartOgrafo não rn.ostra coisas quo udo estdo 14, co.tuo do donnnio dever:a e\clu;r cois’. nuo :, d\jStO. Vs nicsrna terms, o medelo to no dominic do probiema cue osta send consuersdo. .Vde D. pr.inc±pO tans rn. 4 con.hecido coma a estra tégia Uae a V iVtoDEL 10 6 lenro ooq&c: . —— —— — , - \: tes di. ma s n.aa obsari c coma regra pro ica gre urn modelo de dominio no it ibsi utirnintc cm reto on err a sirn mais ou menos util c urno ferra •.menta de corn unicaci. — . j :14 CDrnO urn PC clitnt, urn PDA conect ado em rede sern lie etc Antiga rnente D t- do mnt dt ternun de I D\ as ]oja mlntI9llarn urn u no qu t i irn ri ytr9da ’ i ann is i o’ pagirn cntos Pocten ormen te so ac s outran itumda coma unto ciIxa ret,i’.,tridota rnecrnco °tLiilrnente Ii )\ pci inc ic i rq, ppeI d (i a r 1gura 10 t’ 1 ni ii g a a tgo gui ri r,isti ‘i i cn0as e pi,arnentos ni Ms iSO tirnhem C rum tt m no 1 de ?onto de o in0 is Conftido a tmo c h porcci mais ab t no, i un i ir’p1imi too ispirmia do que TPV csirn no rnodeif domino a simbolo !sg,i 4 ro iei eril ser usido em luCar de TPDVO di — au It to accePt Ia nestc etudo tie cso d as c Regalia Vrmda * Reotsiro v tombem cr11 side compreencti ci pare oso ou? Conmaos s a Titim i tim au rn rites o s: n 0 roado 0 to on-i nO & i-n goterto: corn o tcinpts i-to tip tin nOt ins sos no ii tim re.,: ia itm I I f P i n’--ifo “I p’ n p om t nio cr1 H n no erritorio a dessa torn nn sin sob no uti ponto o i di sti f di rrulir dade co”ium a cacoo Quondooc et it cc icr lodelo qua re preentem abstraç 1 rndepe ous ndente s di irnplernentaç ao 0 0 tn Sc itr in i tO In 1 1 pode sir consid erodo pin ieprese ntsr to a ciasse comercia de urn local para registrar vend.as coma nina abstraç ão de várjo di te rmina coma no i D\ ts it 1 U Reqista — m sum TPDuF 5 egistrO sa classes conceit oats smmilares - in main urn tmnta aihitnirim mis dos no pronto Iii is Figura 106 Modelagem do Mundo Irreal to :diuns sistenmas oituurc de se dastina m darnin a ios que tOni nmuito pouca analogii ant di minia nmturmis an U mam_ moos urn 501? iO pin telecom unicacoes nO to io 7 159 mais isso CONCEDnE dornInios, MODEIO DE DOMINIO: 7 \ J sU\uzAcAo xs exemplo. Ainda é possIvel criar urn modelo de dornmnio nestes ta Dzalogo Rota Protocolo requer urn alto grau de ahstriçio bern como urn atactamento do que nos aosturna roDs a considcrar em piojctos mais habituais Por exemplo temos aqul alguns cindid atos a chsses concei tuais ielacionidos corn urn dispostti ode chii eirnento em telecornunicaçoes Mensageni Conc iii Pøi — Classes Conceituas de Especificaçao ou de Descncao discus sâo a seguir pode a principlo parece r rclacio nada corn urn proble ma raro altarnente especializado Entreta nto necess a idade de classes concei tuais de especi ficação (como serão defmidac) e comurn em muitos rnodeios de dornin so Assim cli e aqui entahzada. Suponha o seguinte a Lrno instancia de item representa urn item fisico em uma loja como tal ela pode ate rnesrno ter urn nurnero de serie a Urn [tern tern urno descnçao urn preco e urn iterniD que nao estão registrados em qualquer outro luar a Todos os que trabaiharn na loja sofrern de amnesia — a Cida x ez que urn item tisico real e i endido uma instanc ia de coftaian correcpon derite do Item c exciuida do rnundo do software Corn estas hipoteses 0 que icontece no seimte cenars o’ Existe urna forte deman da para um harnhd rguer vegetariano novo e rnuito apreciodo HamburguerObjeto A lola vende todo seu o estoque desse harnburguer isco irnphcando quc tod’s is instancios Item de 1 Hamhu e to rierOh sic excluidas da mernonia do computador Agora temos aqut o cerne do proble rna so ilguem pergunta Quanto custani os HamhCrguerOhteto?” ningue . m sahe respon der, porque a mernória do seu preco estava hgida as instincias estocadas as quars forarn sendo excluidas a medida quc trim i endidis ote quc ted is tii essern side i endida s Obseri e tambcrn quo o modelo corrente cc impler nentado em ift air confer me descnto tern dados duplicodos Assim e inefici ente em termoc de espaco de or niazenamento, porque a descrição, o preco e o iternlD são duplicados para cada instancii de itt 1? do mesmo produto — — A necessidade de classes conceituais de especif icacao ou de descricao 0 rohiema precedente ilustra i nccess idide do rim concei to de objetos que são cc pecificacoes on descriçoes de outras coisas. Para resolve r o problema de Item, 0 que 0 o,ar1o a umo classe 5 ne concei tu-il Espcgf icaçdo DePro duto (ou EspecJicaçaoL)elti m Lb i içmtoDrProduto etc) que armazene inforrnaçOes sobre itens Urn m Especeficaçaofle Piol itt. nao reprcse nta urn Itim mac urna descric ao de mforrnacoes coh,e itens Ob serve que, mesme se todos os itens regisfr ados no estoqu e forern vendidos e suas insde Item correspondentes em soft care fonem excluid as a EcpcethcacaoDcPiodu tancias to ainda penmanecera. Os objetos dc desci itOo ou especificacao estão tortern ente relacionados corn is con-is que descrex em Fni urn rnodelo de domirno e comum afirmar que urn-i Epa cificaçaoDeX Descreve urn X (ver Figura 10.7). “k” Meihor Pior muttos significa uma mutbic Figura 10.7 EspecificacOes ou descricoes sobre outras cosas. 0 Itens dade de “muitos”. Ele indica que uma EspecificacaoDeProdufo pode descrever descricao preco nümero de sér)e temlD Item A necessidade de classes conceituais de especificacão ë comum nos dorninios de v das e produtos, bern como no domInio de manufatura, na qual é necessária Um cricaO de urna coisa manufaturada, a qual é distinta da coisa em si. 0 tempo e c ço são utilizados para motivar as classes conceituais de especificacão porque muito comuns; este nao é urn conceito raro de modelagem. UTILIzANe0 UML e PAOROEs Como outro exemplo, considere uma linha aOrca quo sofre urn acidentt’ fat.’ n dos seus aviöes. Suponha que todos os Oos sejem caneeueos oor sei .‘O’n& quanto se aguarda o térrnino do urna i”t 0—Ogi ii’. ri’gIne nbe’ a i. - Esta espeuficacao ou classe reduzir inforrnaoes redundantes ou dupli cadas Houver necessidade de uma doscricao sobro urn item ou servio indepen dentemente da existncia de ilgum exemplar desses itens ou produtos A exclusão de instâncias de coisas que elas descrevem por exemplo. Item) resultar cm uma perda de inforrnaçao que precise ser mantida, do vido a associação incorreta da inforrnaçao corn a coda exciulda. Outro exemplo de especificacao • R &crescente uma especiticaco ou clisse conceitual de descriçno ‘por e\c faspeczficacaoDeProduto) qu’indo A seguinte diretriz sugere quando utilizar especificacOes: 9 Quando as classes conceituals de especificaçao são necessarias 160 I •1 canceiados,. Os se.us correspoidentos ohjetos do sotdz.’are VOn scOrn CxcOut .— * * Descrtc-oor —————.- Especiticaçttes sobre outras coisas, * - Deane Deso-çdoDe,’tc ——-—— Mehor PIc.r ‘:. Observe que o exemplo precede.nte e sobre urn service iu.rn vdc•,), em yea boom born ‘come urn Himburgucr\ get trno A,s d scriçO do sort o,os ou p no” d o0% I ços, geraimente são necessdrias, outro ox emplo, um.a companhia do te]e.fonia. .m ive.l vend.e pacotes como “bronze’, “ouro”, etc. F necessdrio ter o concede do urna dc.cricic’ do pacoto urn ti po de piano do serviços que descreve tarifas per minute, contebdo do in:ornet sern fir’, etc.), separado do conceito do urn pareto eferivarnente vendido coroo pa rote Je euro vendido para Craig Larman, em I” do janeiro do 2002., a USS 55 per mOo 0 ne partarnento de Marketi.ng necessita d.efinir e. registrar este p.iano do sorviço, ou Des’ eriçroDePa.coteDe•Ca,nuIecaçoes.A4oves, a .n.te.s que a,lgum seja, vendido. Descriçao de servicos flgura 10.8 0 ho.ra \or namer data oo over prograrnada ver Figura IO. .,,. So nas instS ncias do VOn as quais reprosentam voos especificos para ur.nn data rotas •de vdo a linda o dora especIficas. nSo existirO mats ur. reg.istro sobre qu.ais aérea tern. I o a t ‘7L urn r nrre co1 r ctr p’ohien 1’ Cquo descreva urn tOo e sue rota. masmo uando urn dotcrmnaria v’a api0. e ac-uonto, todo- na- oi’-b’n os da rnernória do cornputadc’r. Portante. serão exciuidos. .isyi’., o Onico registro quo mostra pam qniai aoroporte urn vb0 vôossã 0 10.8 1: rs ‘ I I L n r i-i i - I it, a .- i n I i T ii ‘ a Ti “. ‘1 -i . 0 d on ii ‘- (ii r ci. 1 In ,ecifi aç .- o --- n a I o 1- a. u C ‘ o d in do p r rn - ra r. Con-To d agran as cc od u .a pc p ct a e Urn proct.s o (como o P1 , o q ii ilu ado co not ornlruo no documentaão on d e u’ .00 d D an n \k de,o de tr nt x o ou o de c .a n id g 1. L 21 0 Ti Ic er us. do pa a t. Ia image r o l de ]. ii io) Cl es de soft a’e, tabs - io d 10 I ‘a ita .o do’ d agrama oasico d LML Low a i do n-i adelo-. detinido p r rrietodo1ogita ‘v . ‘i o a. i rrì cde las esdalj\4L L 00 1 (iT ii n ii S marDI 0 d . ‘ (1 fl Ci rc a 0 par e n 0 -J. a’i 1 r de . ao ant r etado t.omoun an ore 50. F’ ‘ s. aa.. notaç 0 Ii ad.. p ode ‘mplementaa ao ch’i ada 1 Q d ft. do e il iTilO al. ne - - 0 0 rn ma not. ao u .d de ri ..o do ib tracöo d -. ‘r c a e t. C 11 promet omplo nio espoCaiC. mente urTi an (C an d ‘I , p rusmetdc 0 ‘ciii 0 TV c d o doigran o n iT d d rn 0 iii 0 to ologic amente a eu o ) qu o 0 1 Lr-.. err .i erentec modelo, temos o diagramasde 1 0 0 1 r u ill as par dust or as mci so tens entre ob ad o n e es a e or s no mund rca I ‘t. Can 1 Li I. at. 1 c ie t. c objetoi ‘,n io i [CDQ4 r& I.,- r 1-o vier [FS1LI CT -.ja, a n orna notaao d I t agr 1 r ‘. r e .ipos Ic er pe t: a— niodeloc. CT a c va do e ‘ c a IL cdiv do in p1 mont. I IT -‘- i t -, - . oogaL I I. a e i ‘a ‘—‘ Perspec Iva es en ia ou coniettual - I Notacao UML, Modelos e Métodos: Perspectivas Multiplas :1 1. 2. P Pt. L F — Pagarnento quanha Pagamonto ‘I quantia: Moeda terSaldo Moods 1 1 Venda Venda data: Data horaDolnicio: Hora data hors J 163 A notaçao pura do diagrarna do classes da UML e usada em urn modelo do implo rnontacao visualizando componontes de software. do PU Modelo de Projeto A notacao pura de diagrarna do classes da UML é usada em urn modolo ossennal visuatizando conceitos do mundo real. Modelo do DomIrto do PU M0DELO or DoittNto: VtsvALizAçAo Dos Coacrrros Paqs-por Pa a- or jobtorTotal ( ): Moeda Fgura 10.9 A notacao UML pura é aplicada em diferen tes perspectivas e modelos defini dos por urn processo ou método. — ‘ dc ador ces C COSOS C(as1tI tOo. nos questoes fisicas, questo es de softwa evento re, s, etC. Urn processo, ou método, superpord terminologias alternativas a UME. For exemp lo, no PU, quando as Cal xas da UML são desenh adas no Modol o de Dornin io, e]as podern ser Chamadas de conceitos de domInio ou classes concei tuais; Model o o de DomInio oferece uma perspeC’nva conCe itual. No PU, quando são desenh adas Caixas UML no Modelo de Projeto, elas são ofiCialmente chama das do classes de projeto; o Modelo de Proje to oferece uma perspectiva de especificacao ou implernentaçao, como o modelador desejar. Independentemente do defirtiçao, o aspeCt o import ante a observ ar é quo é dtil faier a distincao ontre as perspe Ctivas do urn analist a de domin io, que procura Clas— SOS ConCeltuais do mundo real, omo urna venda (uma perspe ctiva conceitual), e do urn proietista de softwa re, ctue espeCi fiCa entidad es de sof1wa re, como urna classe do sottware 1. n-tda (ui-i-ia espeCifiCaçao ou perspe Ctiva de impiem entacao). A tvlL pode ser usada para ilustrar essas perspe ctivas corn notaçao e termi noiogia hastante sinailares, de maneir a quo é import ante ter em monte qual a pers pectivaa que estd sendo utilizada (uma visao de anailise, de projeto ou do irnple naentaçdo \ll 01 15 1 1 lo \l h I 0 ago corn caracteristicas estrutairais C/lu c niportarnnto. incluuido classes, (tOres, intel 10.9 164 UM1. C 1DROES — Classe como na UML, 0 termo geral que representa ou uma coisa no mundo real (urna chsse conceitusi) ou de ottware (unii classL do soft ware) , — Isso esta relacionado corn o problerna do hiato de representação ou hiato ‘emantlCO o hrsto entre nosso modelo mental do domirno e sua represent’sco em software nio e conceitos nos quais obtemos inspiracao para dar nome a certas coisas no projeto de software. o Modelo de DomInio fornece urn dicionário visual do vocahuiário do domi Examine a Figura 10.10. Por que os livros e educadores que discutern urn orientado a objetos cornum mostrarn somente o uso de classe% de software cujosno 2 Por quc escolhei urn norne do classe mes refletem vocabularso comum do domrnio 2 de softva’e como Vo.nda c o que urna 1/coda faz Simplesmente escoiher nomes que reflitsm o vocabuiario do dommio (Vend4 meihora a compreensao rdpida e fornece uma indicacao do quo esperar do pedacods cOdigo na classe de software Venda. Temos urn modelo rnentai ou urn modelo de do rnInio em questão (por exemplo, urna loja que vende coisas). No mundo real, sabe mosque a venda tern uma data. Consequentemente, se criarmos urna classe Java isf nome Venda, e derrnos a ela a responsabilidade de saber sobre uma venda real e sos data, então a classe Java Venda corresponderd ao nosso rnodelo mental ou models df domimo do dommio real ou seja cia apelara para nossas intuiçOes do domiruo Dimininçao do Hiato de Representaçao a Classe de implementação urna classe implementada em urna linguagem orientada a objetos, como Java. • — — Classe de projeto urn membro do rnodelo de projeto do i’lJ. F urn sinó nimo de classe de software, mas, por aiguma razão, deseo enfatizar q cia e uma classe no Modelo de Projeto. 0 PU permite que uma ciasse de projeto tertha perspectlvl de especthcacao ou do implernentacao confor me o modelador desejar. • — Classe de software uma ciasse que representa urna perspectiva de w pecificacao ou implementacao de urn componente de software, indepen dentemente de processo ou método. • — Classe conceitual urn conceito ou coisa do mundo real. Urna g 505 tiva conceitual ou essencial. 0 Modelo de Dominio do PU contérn cbs conceituais, • Para evitar confusão, este livro usará termos relacionados corn classes coma segue, urna maneira consistente tanto corn a UvIL quanto corn o PU: U-nuzANDo no Mod&o de a quanSa horaDeinicic: Hors data: Data data hors — — Em urn extremo, poderlamos codificar diretamente a apiicaci.o do PDV ProxGer em cddigo bi.ndrio pure pars invo.•car o con.junto d.c in ru.cDes do process.ador. Corn preendemos qua o hia.to do representacCo d vasto e quo, portanto, have.rd.. urn cus.to real embers dificil de quantificar em urn so.ftmar quo spresenta urn brato f/ia grande do representac5io; d difIcil compreendé-lo e rebaciond-lo corn a clorn:n:o ra problema. PrOxirnas so outro extreme deste espectro estie as tecnoe:a. Jo obeto rnuad quo p m turn c ar 010L0 do o tipo de agrupa.m.ento quo percebemos no mundo real.. No mund.o real, pe.rcebernos urns “parte” (ou cv en.to). chamada venda; assirn, rio m:u.n.do do tao-, temos urn a classe chamada VJrrda, E.sse reiaci.onarne:n.to u.m-para-u.m, rn ais prOximo. entre a vocabuid:rio do domnIn.io e o vocabul.d,no do fl0550 so traare e’a”i a.o’rnparnento reduz o “ a pores hi at a d representv io 1/ao funciona da maneira quo esperamos, conhecendo o dorniri:rn e augerS- madas rais” do estender o codigo para quo tate corresponds do mans/ira similar aa dam:nic’, ou apele pars nossas intuiçOes do domino. Dito simpiesmenfo. a muds/ia do -no’: to n,os lembra o m.od.oio con.ceitua.i ou mental, .funcion.a,nd.o do, m.a.n.eira prevssivs’l. Existe urna vantagern. prdtica pars os modeios de sofftv:ree’ quo rectuzem o trio-to. do representacao. A mo-lena dos engenheiros de software so-he que isso ve.rdade, em- ciasses do sodowe cc no proeto concebem o dominic a sos rsprese.ntacCo em software Wi reduzido, Modelo de Projeto do PU ubterSado (:Moeda a / Portanto, 0 hiato de representacao entre 0 rnodo corns os proponente.s a interessados Weiss / Figura 10.10 No projeto e prOgramacCo ocernados a sojetos. é comum onar jos comes e inforrnacOes tenham Woo nspirados pe:o dom’o so munds ‘ea.. ssa C urns das giandes 555 Ce ehjeto.5. . ecnologe n,.ato sass reduz o 50 .E.de represefltac nSprnLi d urn conc.000, rnaS Mod&o o-rnefliO staurnacassed0 são a mesma nSo fpya0. Co-s Modelo de Dominio do PU são rica nitereSSaOOs 005 ccue:rs MoDoLn )E DOMfNIO: VrsUALizAcAo nos Cososrios Oura cia do diffcil quantificaç1o. De fato, urna prova disco é que os desenvolve .:wa. quo queiem d.ificuitar a .engertharia reversa do cOdigo-fonte. a partir do b nudam us nomes das .cla.sses e dos métodos Java de forrn.a quo fiquem ininteli assm, pam n uso $as nossas inmiçOes do domfnio, embora asej. ras do ocotrole e do dados permane.cam inalteradas. Natura.lme.n te, a tecnoiogia do objetos tambérn tern va.ior porque pode cL porte ao proeto do sistemas elega.ntes, fracarnente acopiados, fdceis de esr 1 tender, orno ser explorado no restante do iivro. Urn hiato de represeritaçao mas mquestionavelmente .secundário diante da vantagern da tecnologia de o do da.r sup.orte a .faciIidade do rnudanças e extensöes edo suporte que cia ofered Ia. rastrOr 0 ocultar a complexidade. Don.nco. RegisOc i Unha..DNtem drNenda P•a•gamento L___ I .. Item Caixa Loaumns Moaec de aom:n:o nc:a:, Modelos de Dominlo no Pu.. suentes. o;a Venda Lnt_J GeeNe speceicacao feProduto ida atributos •o as associaçOes pa.ra o rnod.eio conceitual serão considerados Dos capi Figura 10.11 j .A hata de cUsses conceituais gerada para o dorninio do J’DV ProxGer pode se: pro.sentada. i.raficamente (ve.r Figura h).11) para. mostrar a gdnese do Mode 1010 Exemplo: o Modelo de Dominlo para o PDV ProxGer 1011 . demo ugeride no eernplo da Thheia id,2. urn Modelo do Dominio geralmenteéid lot ornnIti ion cli Or caO quo ca use do eiaoracão. do dominto ni. o oncontra.m u,rna Urte .moti .ação cm cOncepçao. urna V finai.idad.e desta née é urna. invostUaçéo sdria, mac decidir se o pro.to I Tabela 10.2 — — MoocLo DE DOMINIO: VisuauzAçAo DOs CoNcanos Ctt..Ctn Construcao T1.T2 Transicao 167 E1..En Elaboracao r r r r Cl . i i I r r r r I r r r Concepcao Amostra de artefatos do PU e sua seqüência temporal niciar; r refinar Modelo de Casos de Uso (DSSs) Modela de Dominlo t.scipIinefat Modelagem de NeadCiO RequSitos Visao Especificacoes Suplementares Giossário Modelo de Projeto Documento de Arqun Modelo de Implementacao et’ lmplernefltaçãO tetura de software Modelo de Dados Gestãode Projeto Pasta de Desenvolvimento Modelo de Tests PIano de Desenvol vimento de software ‘‘ Ambiente Elaboração o Modelo de DornInio é criado principalmente durante as iteraçOes da elaboracäo, quando e ma br a necessidade de compreender os conceitos dignos de nota e mapear alguns para classes de software durante o trabatho de projeto. Embora, ironicamente, urn ndmero significativo de paginas seja dedicado a ox plicar a modelagem de objetos do dominio, em mäos experientes, o desenvolvimen to de urn modelo do domInio (parcial, e que cresce de modo incremental) em cada iteraçäo deveria tomar poucas horas. Essas são ainda mais abreviadas pelo uso do padroes de andlise predefinidos. 0 modelo de objetos de negócio do PU versus o modelo de domInlo — — O Modelo de DomInio do PU e urna variante oficial do Modelo de Objetos de Neg& cio do PU (MON) menos comurn. 0 MON do PU não confundir corn o quo outras pessoas c métodos podern definir corno MON. o qual é urn termo amplarnente em pregado corn diferentes significados e urn tipo de modelo da empresa usado para descrever todo o negócio. Pie pode ser usado quando fazemos engertharia de proces sos de negdcio ou reengenharia, independentemente do quaiquer aplicacao do soft ware (corno é o PDV Pi-oxGer). 0 livro de Odell, Object-Oriented Methods: A Foundation, fornece urna introduçao ii lida a modelagem conceitual do domInio. 0 livro de Cook e Daniel, Designing O U 6 Systems. tambérn e dtil. O livro de Fowler, Analysis Patterns, oferece padroes que vale a pena usar e modelos de dornInio e, definitivarnente, e recomendado. Urn outro born livro que dcscreve padrOes em rnodelos de domrnio e o de Hay Data Model Patterns Con a tions of Thought 0 conselho e a orientacbo de especialistas ern rnodelagern de di dos que compreendem a distmc’io entre modelos conceituirs puros e modelos di esquemas de bancos de dados podern ser muito uteis para a rnodelagern de objetos do domInio. Join Modeling in Color with UML [CDL99] tern rnais conselhos e orientação rile vantes para a modelagem de domInio do que o titulo sugere. Os autores identifican padröes comuns em tipos relacionados e suas associaçoes; o papel do uso do con realmente uma visualizaçao de categorias cornuns destes tipos, corno descnçio (azul), papFis (arnarelo) e intervalos de tempo (rosa). A cor e usada corno auxIlio no v: sualização dos padroes. Desde o trabaiho original de Abbott, a análise linguistica tern adquirido técr& cas mais sofisticadas para a anhlise orientada a objetos, geralmente charnada de me delagern de hnguagern natural ou urna varlação Ver [Moreno97] corno exernplo Leituras Adicionais .. Você pode optar por desenvolver urn modelo de objetos de rlegócio “incompleto”, focando a explicacao das “coisas” e produtos impor tantes para urn dornInio. Isso geralmente b charnado de modelo de dommnio [RUP]. O MON e representado corn diversos diagramas (classe, atividade e seque que ilustrarn corno a empresa funciona (ou deveria funcionar). Ele será mais j estivermos executando urna engenharia de processos que abranja toda a mas e urna atividade menos comurn do que criar urna simples apticaçao de a isolada. Conseqüentemente, o PU define o Modelo de DornInio corno o artefato de sub. conjurito mais frequenternente criado ou corno urna especializacao do vIO\. [0 MON do PU] serve corno urna ahstraçao do modo como Os fun cionarios do negocio e as entidades de negocio precis m ser relacio nados e colaborar para tocar o negócio [RUP]. IJ OLIZANDO UML s I’ADROES 10.12 168 =j deTeste i’x: as Figura 10,12 Teste Gestão de Projeto Projeto UlSItOS — Amo tr assoc/açSes air/bOos.. :e--—cs. ca”ctAs - . a, ., - 0: “ . ro A of’ L, - t do PU on 0 111 ‘C ;_. — A ala, A ModelO de Dorninio, 6 ..rn.ostrad.a na Figura hodcnd Papo Sc Desen Sottwae vovrento Sc oe’c s n U rim — Amostras de Artefatos do PU ModeIa9eI7l de NegodIo . ,fIubncia dos artefatos, enfa tiza.nd.o 1 iO:.12. 13 ArtefatOsdoPU 169 I II I I I S s 11 Modelo de DomInio: Inclusão de Associaçöes OBJ ETIVOS identificar associaçoes para urn modelo de domInio. Distinguir entre as associacöes “que devem ser conhecidas” daque las somente capazes de auxiliar na compreensao. Associaçöes E importante distinguir as associaçOes de classes concei tuais necess árias a satisfação dos requisi tos de inform acao dos cenário s em desenv olvime nto daquelas que auxi liani na cornpreensao do modelo de domIn io. Este capItul o explora a identificaçäo de associaçöes adequadas e acrescenta associaçOes ao modelo de domInio para o estudo de caso ProxGer. Introdução 11.1 Uma associa çao é urn relacio namen to entre tipos (ou, ma is especificamente, entre instâncias desses tipos) que indica uma conexäo corn signifi cado e interesse (rer Fi gura 11.1). 0 asseciaçoes são descritas come urn relacionarnento semantic Figura 11.1 Assodacoes. Estrj 11 2 Associaçöes dern ados da Lists de Assecioçoes Cemuns — Associaçoes para as quais e corthecimento do relacienamente precisa ser preservado per algum tempo (associacoes que precisam ser cenhecidas. e e Vms associaçio e representada come uma lrnha ontre cenceitos cern urn name A as sociaçao inerentemente bidirecional, o que significa que é pessivel e percurso lOg I co dos objetos de urn dos tipes para o do outre tipo, e vice-versa. Este percurso puramente abstrato; dc não é urns afirmaçae sobre cenexOes em tie entidades de software A Notaçao para Associação em UML nhas de associaçöes. Use es critérios sugeridos neste capItule. For eutre lade, precisarnos ter a memOria de urn relacienamente entre uma Vend 2 Nao es requisites nie sui,erern que tal roliuenamente isa orrente e urn Gerinie nocessarco Noe e rncorreto mestrar urn relacienamente entre urns I/i ada e urn Goes te porem nae e interessante nern utal no contexto des nosses requisites Este é urn ponto importante. Em urn medelo de dominic corn a classes coned tuais diferentes, pode haver n (n — 1) associaçOes entre classes cenceituais urn nilmere potenLnlmente grande 0 excesso de linhas no diogromi pros eca peluiciosi sual e dificulti a compreensao do modelo Portante seja ecenemice ae ocrescentar ii • • Censidero a rnclusão dos seguintes assecioçöes em urn medele dE demirne de vendas. As associaçOes dignas de nota exigern o conhecimento de urn relacionarnente ue cessita ser preservado por algum tempo — que pode ser de milissegundos ou de anoS, dependendo do contexto. Em outras palavras, entre quais objetos necessitarnos ter. relacionamente For exemplo precisames lembrar quals instan urna memoria de urn 2 2 Sms case cop enìs de LinhaDEltemDeVenda são issocindas a uma rnstancia do Venda trdrio nao seria possIvel reconstruir a verida, imprirnir urn reciho ou calcular urn total assocac tre deja ou mais classificadores que envolve conexão entre suas instâncias”. as PADROES Na UML, UuJIzAxDo UML F. Critérios para associaçöes üteis 172 O’ecaD 05 etua 00 ct;2 05 i3 — Lista de ace Categoria A é urns deacricdo de B. across. Vto-PrograrnaçaoDaVOc DescrigdoDehern—ltern j DescnipdoDeVBo—VAo Passage.rev4e’a’rae eso’çaoDeocm—Os:a Ass—A eronave LftrhaDeiteniDeOendaVdnda Pern.aOeVO—RoaL.SsVdo Aegistm—Lma tte.—Prarndrnrs eSDecdiCa’ne. Gaveta—Regst.-n jou. ‘nsa Exemplos do roserva do cassa pens oscarne-re contcio cm soc-c B A cOd fisicarnerte 000500cc B. A é urns parts Idgica de B. A sara e Lista de AssociacOes Cornuns. As urna parts fmca de B. Tabela 111 tirades do dominjos de lola Cornece a adiçae de asseciaç.Oes u.sando a hsta. cia ‘Thbel.a 11.1. lila contdrn categorias comuns que devem ser consideradas Os esempios ado 11.3 Como Encontrar Assocacoes Associaçoes Comuns Lsarixioieitordo diagrams. A flecha de direcão do leitura näo tern sinidcado em normo do modl Os extremes de u.ma as.sec.iaçao pod.em condor urna oxprossdo do .multiphcldade. In dicande e relacienamento nucrdrico entre as instâncias dos ccsncojto:s. Urna seta opcienai de “direçae do iei.tura” i.ndica a direçdo de leitura do norne da asseciação; cia näe indies a direçae do vshilidad on do naveoeil,’. Na auséncia de urns sets. convencionou-se ciuc a associac2o deso sor querda pars a di.rdita ou do ci.ma pars hanco, e.rnbora a 1JML coo ftiça disso urna no gra (ver Figura 11.2). A notação UML pars associapdes h. - Venda -“fecha cie direcao de ieiura -ea nao te’ sgfcaoo. a nac sar ca’ a eerUm no da assotiacao Figura 11.2 \-. ——-—--z-——-—..-— fr:c’Ts 174 : A d UML F Gategoria a.s a urros uhuridade oroanz acona de B, , suds reasIIadcs re0tado / cap;adc pro B. . Ad ur• mern so de A A usa uu aererrrda B. Aepossu.OtoporB, Aturn eu€nto re•OcAnado corn B. T,I s g 0 s c t “ s.c .. A é urna transscto reAcdmn ada CV’ urna roars trarmsacto B. .4 t aAacene a B sOt reaoonsdo a urns rars açta B. AseccmunAacorrB, •: Lhuu’axoa C • • a Diretrizes para Associaça es um. Associaçöes de alta prior/ dade 11.4 :. . a DII Exemplos a ‘çoDetianurençao— au ,.a Vdnda—Reqstro Aeserva—Man.IfestoDeVOo •Caj’xaLca P.!otc’-.-LThhaAdrea Departarnento—Lcia Manutençsãc—LinhaAérea Cthxa-Regisoo R;roc—Aeronaue cue’-re—caxa AgenteDeReservas—Passageir o Ctente—Paaamerito Passagefrc—BiThete Pagamen.ta— Venda Peas rva_Canceiamenro Ld’haD&temDeVenda— L.inhaDeitemDe Panda C. Sacs—Cmade I.c ‘s rd e ute cm urn mo Rsgmstrc=Luu Aviã c—L Thha Aère a Venda—Cfiente. Venda—L oja, Pardda—Vdo 1E s..s o Conce.ntre-se nba associac Oes cuio conhec irne nto do rela cio.narnento d.e vs sec prosorvado per aigu rn tempo (associaçOes que devern sec conhe cidas’). 554 importanto iden , 5 j tificar scu:caiLuais do que asso ciaç Oes () excesso do associas Pes tende a tornar mo delo de dominio confuso do esclarecê-!o A sua des , coherta pode exigir muito tempo, corn em yea be SetiCs0S apenas marpinais. .Ev:te mostrar associac oes redundarites ou der ivtveis. Papéis Cada extrerno de nofl uma Mooti 0 DL DOMIMO l\CLUSAO Db Assx içoEs associaçãO é chamado de papel. Os papéis pod em ter: a expresSBo de multiplicidade 175 • navegabilidade A rnultiplicidade é exarninada a seguir, e as duas outras caracteristic são disc as utidas em capItUlOs posteriOres /tipIlcidade 0 m aPej MutipHcidade em urna assocacãO 0..• jast0ca* A multiplicidade define qua ntaS inst ânc ias de urn a clas se A podem estar associadas uma instBncia de uma ciasse B, em urn momento qualqu er (ver Figura 11.3). a Figura 11.3 item. T T T exatarnente 3. 5 ou 8 exatamente 5 urna4O urn ou mais zero ou mais; “muitos(as)” T Valores de multiplicidade 3.5, 8 5 * Por exemplo, uma dnica instância de urna Loja pod e ser associada a “muitas” (zero ou ma is, indicado pelo *) instãnc ias de Alguns exemplos de expressöes de rnultiplici dade são mostrados na Figura 11.4. Figura 11.4 C) valor da multiplicidade informa quantas inst ãnc ias de urn tipo podern ser associa das corretarnente a instâncias do outro tipo, em urn dete rminado momento (não con- U UML F Pact OLS . Loja 0 1 ou 0.. 1 Estoca —j Item fundir corn as instâncias associadas ao longo do tempo corn outras instSncias) 5. exemplo, d possivel que urn carro usado seja indmeras vezes comercializado por lo. jas de carros usados ao longo do tempo. Mas, em urn certo mornento, o carro é cadcspor somente rn revendedor. 0 carro nSo e Estocado-por muitos revendedores i, 0 quele momento Da mesma forma em paises corn lets monogamicas uma PCssoap de estar Casada corn somente om outra pessoa em urn determtwsdo momerito a1n que, ao longo do tempo, cia possa ter estado casada corn muitas pessoas. 0 valor da multiplicidade depende do nosso interesse corno rnodeiadorese senvoivedores de software, visto que dc informa uma restriçSo do dominic quo soc (ou poderia ser) refletida no software (ver Figura 11.5). IILIZANDO As associaçöes são importantes, porern uma armadilha comurn na criaçSo de mode los conceituais e perder muito tempo tentando descobri-las. 0 Quanto as Associaçoes Devem Ser Detaihadas? 51a0 N. de T. Our exernpto, urns multiplicidade de valor 1 significa que urns instSncia enS associada, cm urn clsdo 0 te, sornente sums instincts de outra classe conceitual. Naturalmente, so longo da vida da instSrtcta. eLi ;cUera sociada a muitas outras, porOm somente a urns do cads vez. 11.6 A multiplicidade dependa do contexto. Rumbaugh [Rurnbaugh9lj dd urn outro exemplo de Pessoa e Empresa cia associação ‘Trabalha-para. Indicar Se urna instSncia de Pessoa trahaiha para uma ou mais instIn cias de Ernpresa depende do contexto do modelo; a Receita Federal estd interessada em rnt.iitos; urn sindicato, provavelmente, em sornente urn. A escoiha depende. no prdtica, de para quem estarnos construindo o software e tambérn das multiplicidades que são válidas em urna imp lernentaçao. Figura 11.5 Essa modelo parcial de dominic não representa objetos da software, mas as multiplicidades ragistrarn restricoes cuio valor pratico normalmente esta relacionado corn nosso interesse em construe software ou bancos de dados (qua refletern nosso dominic do rnundo real) corn verificacftas de validada. Sob esse ponto de vista, o valor desejado poda sar “1 Davarnos nos preocupar com esse ponto de vista? Se esse raIacionamento tosse implernentado cc software, provavelmente desejariamos assegurar que urna instãncia de Item no software astivesse sempre ralacionada corn 1 instãncia especifica de Loja; caso contrário, teriamos urn erro ou dados corrompidos. A resposta depende do nosso interesse e do uso que faremos do modelo. Normalmente, a multiplicida3e se esse informa uma restricao do dominic qua dave ser considerada para verificaçao palo software relacionamento foi implementado a retletido nos objetos de software ou em um banco de dados. Po examplo um determinado item pode estar esgotado ou tar sido descartado a por 550 nao existir maa estoque na Ioja. Sob asse ponto de vista, “0.1 faz sentido Iogico, mas,,. pIicidadedeveriaser”1”ou”0..1”?. 176 11.7 0 sauifltc: Norneie urna a.ssociaçao coin base no forrna,to NomeDoTipo-FraseComVerbo Nomefloiipo, cc qua) a frase corn o vexho cria nina seqüdncia legIvel e corn significado no contexto do modelo, .Paga—por Figura 11.6 Dawgnaoa-para CapLi . Names dc assocac.oes. Supervisiona Psssoa Emprega LincTa Acres Contérn Loj.a ‘mc .,. ‘ A — c.uc-pa’a Papa-pci BBLOTECA! Na Figure 11.6, a d.ireçdo norciraimente pressupcrsta. (ArdiUit) pa.ra i r a carrie cia ama associaçao é da esquerda para a direita on d.c cii.na parc baixo. Essa não ii uma detecT m.iração da UML,. mas ama convençdo re.iativamente comu.m.. a .Pgnc p, a Qs comes das associacoes devem comecar corn urna 1e:ra maruscuic, urno cc um.a. associacSo representa urn classi,flcador de i.igaçoes. entre instdncias. [lois foi-ma tos comuns e igualmente legais parc urna associaçdo composta são; T Como Dar Nomes a Associaçôes é muito mais importante dc ue ancourrar so Encontrar ciaçoes. A maior parte d.o tempo gasto cia criaça.o do modelo d.c domini..o deS veria see dedicad ii identificaçao de conceitos, nAo d.c associaqOes. \‘ocê deve consicterar 178 11 8 11 9 LrruzANDo UML E PADRCEs Associacoes MUltiplas entre Dois Tipos . Assc.ciaçOes maftipas, Coo Voa-para Voa..cje 1 Aercp000 Dois tipes pdem ter miMtipias associaçoes entre si, que o nao é raro, Não ha e pio dPso no nosso estudo do caso PDV, mas ha urn exemplo no dornmnio da rca o cas.•o dus relacionamentos entre urn Vôo (ou, rnais precisarn.ent e, rma P 1 oc e urn ror o n er Hcna ii 7 c asci oos oando pna L o-mndo ae relacionamentos di ferentes, quo devem ser mostrados separadarnente. Flgura 11,7 Associaçães e Implemeritação — Duranto a .fase de a odelagem do d•ommnio, urn.a a sociaçãc uJo é urna a.firmaçao s• bro fiuxos do dados, variáveis do instancia ou conexöes de objetos em urna soIuçio c’ urna uirrnrç -io di quc urn rd Iclonamento torn significado em urn sen tOo pui arninto conceit id no mundo real Em termos pratcos muitos desses rela cionarnentos serão norrnaimente impiernentad os em software como caminhos dana op ‘u c i a. ‘to n \Iodelo eio 1 Pro d quanto no Modelo de Dadcs( .massua presença em. unia visão conceitual (ou essencial) de urn modelo d•e dornin1 obo oxi go suc 5 trnplornenta \n cn’ir urn rnoaelo di. don mio podt.mo d.rimr sociaço eque nao saoe ceuris duranti. a impler ntntiia Dc o mesma torma podem o descobrir assona coos quo dovern ser rnniernentadas. mas passararn despercehida s durante a modeS o r ii odilo di donu no none se aijali/ado pam ,.eul& t IL a o dorn rio \esi. ssas de’cohorti’, tir Sugesido Os modJo proioc do ins etigaçao como urn modelo de dorninio devern ser atualizados corn novas percepcoes e descohertas feitas durant e o trabaiho do ii pkmcntac Icomi. per cxcrnplo nos assoc1 Icoe’ \ão e preoc_ rn c rn iso mc no quo ftit irarnonto exista llim uso prafico par o mode 10. So for urn artofato terntura.rio, usado ap.enas para fornecer irispir.acao pa d ur a ip-i po’-te ior i. ue nbc ern uado Jet 1m siniricatisa mais tar o pair quo uuahz s Ls io’ ite produz ir ou Itualiz ar docurnentaça o ou mod& los., a iii enoc quo oxista u.rna justificativa concreta para seu uso futuro. IaN ad ant dicutir omos torn as i.e implornentar lssocia oes cm uma lingulgem do prograrn.ac o orientada a objetos (a mais cornurn b usar urn atributo que aponta parc urna instbncia da classe associadai, mas, por enquan to, devemos imagin&ial, oTr’u xprtssoi.s pci rni.nto uoni.oitua]s me corno arnrnaçoes sobre uma soluçaoOe mit, d didos ou d ‘or cci Coma sompre poster9r consideracoes de projeto OS Porn di.’ i nformag’ics ir’ decisbes ostrarhas as nossas “investigaçbes de andlise”, au montando as opcoes do projeto mais tarde.. o MoDE!o DE DOMNIO: INCLUSAO DE AssocIAçdEs AssOCiacoes do Mod&o de DomInio do PDV ProxGer 179 podernOs, agora, acrescentar associacoes ao nosso modelo de dorninio do sisterna PDV. Devernos acresceritar as associaçOes cujos requisitos (por exemplo, casos de uso) sugerern ou implicarn a necessidade de serern lembradas, ou que são sugeridas pela nossa percepcbo do dominic do problerna .Ao atacar urn novo problema, as Ca tegorias comuns de associaçOes apresentadas anteriormente devem ser revistas e consideradas, pois são associaçOes relevantes que, normairnente, precisarn set regis tradas. ReiaCi3flat0Ss que rião podem ser esquecidos na Lola Para tomar conhecirnento da venda atual, go rar urn total, irnprimir urn recibo. Para saber se a venda foi paga, relacioriar a quantia fornecida corn o total da venda e imprimir urn recibo. Para recuperar urna EspecficaçaoDeProduto depois de fornecido urn iterniD. gs associaçbes a seguir justificam-se pelo uso do princIpio: “deve ser conhecida”. Ba seiarn-se nos casos de uso em consideração no momento. Registro apta Venda l’enaa Pac,’a—por Pagainen to CatbiogoDeProdutos Registra EspecificacaoDeProduto ma p rt B ogica do B. e urna parte fisica de categona I B. (complotadas) Vondas—Loja (corrente)Venda—Registro EspecificacaoDeProduto—CatalogoDeProduto CatdlogoDeProduto—Loja EspecificacaoDoProduto—ltem tinhaDeltemDeVenda—Vonda LinhaDeltemDe Venda—Venda Registro—Loja Item—Lola Registro—GavetaooCaixa Sistema Percorreremos a lista de categorias de associacfies, corn base nos tipos previar nente identificados, considerando os requisitos do caso de usc corrente: AplicacãO da lista de categorias de associaçOes A A A estd fisicamente contido en’i/sobre B. urna transaçao A esiá logicamente contido em B. A ê urns descricao de B. A t urns linha do item do ou relatdrio B. A d !reaistrado/rejatado/ fpado por B A eStá reiacionado a uma transacao B. Asecomunica corn B. A usa ou Adurna subunidade organizacional do B. gerencia B. LinhaDeltemDeVenda—LinhaDeltemDeVenda Registro—Loja Cfiente—Pagarnento Caixa—Pagamento Pagamenfo—Venda Caixa—Registro Gerente—Registro Gerente—Caixa, mas provavelmente não aplicd vol. Clienfe—Caixa nao aplicd vol ie2biodeB__ Caixa—Loja I. .DUtrafrartsacao j A d urna transaçao relacionada corn urna g e adiacentea B. (f99suido por B. UML E PADROES Figura 11.8 . Urn modelo parciat de dominio. Figura 11.8 foj d: ado de maneira mecaruca da hsta de categorias de associaçoec \o entarito e aco 0 de selhável fazer uma discriminaçao entre as associaçOes incluIdas no nosso model dorninio. Já que essa d urna ferrarnenta de cornunicacao, näo é horn sobrecarregar, modelo de dornInio corn associaçoes que nao são absolutarnente necessárias cue não auxiliam a nossa cornpreensão. 0 excesso de associaçöes pouco convincee provoca urn obscurecimento, em vez de urn esciarecirnento. o conjunto de associaçoes mostrado no modelo do domInio da Preservar somente as associacoes “que devem ser conhecidas”? rnente derivadas da lista de categorias de associaçoes candidatas. o modelo de domInio da Fiira 11.8 mostra urn conjunto de classes concethajse, sociacoes que são candidatas a nossa aplicacao PDV. As associaçoes foram ‘flit’ Modelo de DomInio para o PDV ProxGer UnLIzANDO 1111 180 AssociacaG deco a segu in to: Gererte a Re st a-’. e--o--” ‘e do c - - ‘--‘ aa’ c cc ms-sc’ a -0 mante rio ccc Os ea. ,t d - r 3ao S sea Dee - rad me at 0 e-’j so na a’m.a -‘e’-o. c’s me S c.. cc -cc sire- Ot’a’ o ra nd c d 0 ,e - — . ‘ delo do domInic> é urns fdrramenta do cornunicação cia qual ostamos tontando corn preender e cornunicar concoitos imuortantos a sous roiacionameneaa. Nba osse penn dL isti e\Llulr iun s C 55 C S 1oe 0 ‘ delo gerará u.m rn.odeio do in.forrnação” .rnin.irno do quo é .necossd,rio pa ra .rnodeis o do.mInio d.o problems natural.monte restrito polos requisitos con.si•derados. Entsre tanto, esta ahordagern. pode criar urn modolo quo ndo conduz a urn ent.endimo rito comploto do dorninio. Akin, do sor urn rnod.oio do infdrmaçao do quo so dove, saber sobre coisas. o mo O uso estrito do critdrio “que-deve-ser-conhe.cido” para rnantor associaçdos ‘as mo Associaçoes “cjue precisam ser conhec/das” versus associaçöes para compreensão” justificávoi. — Note que a possihilidade de justificar urna associaçdo c.om 0 argumonto “qu.o dove ser conhecido” depende do.s requisitos; obvia.mente,. urns rnuda:nça nostes co•m.o exigir que olD do urn. caixa aparoça em urn reciho ai.tera a necossidade. do iembra.r urn relacionamen to, Corn base us andii.se anterior, a oxc:Iusa.o ass associacOcs em questao cads s.er -aGer--r--DeV Ectc’ca darn nda ,rc,aoa-omC’erre Reglcfrc 4t:vad Rag/edo (JdadO-por Ca//se Oscussão Os >equ/s/ios não /nd/carn neci as/dade de set corrhec/ do oc de reg/strar o caixa. stoat, A/tm d/sco, tamtrtnr S derivdve/ cc eat/var presen.te a assoc/pado Rep/s So U/sad/s-par Ca/xe, cens’rncep:’ C Evite mostrar associ.acPes .rodundantos ou d•erivdveis • Corn base nete consoiho. nem rods ssaciscdo mss:radc En.foqu.e as associacOes pa.ra as qu.ais o cc..nh•eci.m.en...to do rd.iaciona..mo.ro to necessita ser p.res•ervado pot. urn cort:o tempo (.assseiaço.e.s “quo do vern 5cr co.ni.ecidas”). * trar assOCiacOeS Venda /n0iada-por Caixa — 181 Com.o sugerido p..revia.moo to, recornenda.rn-so Os seguintes critdnios pars mos tLj;L,v:’:I\,Z,:*Aj:t 182 UuuzANDo UM.L r P\oROrs — — Critdrlo deve-ser-conhecido pode criar urn rnodeio quo :näo ati.ng.e urn de seu ciuricar ddias o reacion arnenr os-cha ve. Por exernplo. na apUcaco PDV: embora usande o critério ‘deveserco do”. taive.z não sej.a necess registr ário Vcoda 1r.zica.dapor ar Cliente; a sua inex urn aspecto importante pare a compreensão do dominic a de que urn ci zera vendas. Em ter mos de associacOes., urn horn modelo d aqueie consfru Ido em aigu to stuado entre urn modelo rnirnrno, lustificado sornerite polo critério “deve-s nhecido”, e urn rnocielo ciue ilustra todos os relacioriarnentos concebiveis. Q,i tdr.io hásico julgar pare o seu valor? Ele deve satisfa todos zer a es requisito deve-Fer-conhecido. aldrn de comunicar claramente os conceitos essenciais P tes no Porn nio do prohierna. Enfati.e as associaçdes deve-ser-con hecido mas acresce ”, nte, conforme s osooUra associacaes destinadas somente a enriquecer a corn.preensão critic do d.on .tn1o. • S 12 Modelo de Dominio: Inclusão de Atributos Rich Kulazviec Urn erro suficienternente sofisticado é indistingu foe! de urna caracterIstica. OBJETVOS Identificar atributos em urn modelo de domInio. Disti.nguir entre atributos corretos e incorretos. Atributos F 00cc srio identif icar os atrihut os das classes concei tuais necessdrias para satisfa hr a’ renuiito Jo inform ação dos cenário s em deseriv olvime nto, Este capitulo ex pcra identiiicacu de atributos adequados e acrescenta atribut os ao modelo de do minic do estuoc do caso ProxGer. Introducao 12.1 :n arihuto d urn valor de dados lógico de urn objeto. Inciua os seguintes atributos em urn modelo de domIn io: aqueles para Os os requisitos (por exemplo, casos de uso) sugerem ou implicarn a neces adade de memorizar informaçhes. r PAnROSS Classes e atributos. Hora atributos Algurnas coisas nao devem ser representadas corno atributos, mas corno associac5 Esta secao explora atributos vdiidos. Tipos Válidos de Atributos Figura 12.1 data horãrioDelnicio Venda Os atributos são mostrados no segundo compartirnento da caixa que contém a ci se conceitual (ver Figura 12.1). Corno alternativa, pode-se mostrar o seu tipo. Notaçao UML para Atributos Por exemplo, urn recibo de vendas (que contém as informaçöes de vendas) non mente inclui urna data e urna hora, e a gerência quer saber as datas e os horários 5 vendas por várias razOes. Consequentemente, a classe conceitual Venda necessj( atrihuto data e urn atributo hordrio. UnuzANDo UML de dados, ternos: Booieano, Data,\’iimcro. Strui Outros tipos comuns incluern: Endereço, Cor, Figuras Geométricas (l’onto, Re tãngulo), Nil niero de Thiefone, Nzirnero da Seguridade Social (par exam pio. inscr! çdo no INSS), Codigo Universal de Prod uto (CUP), SKU. ZIP on CliP, tipos em rnerados. (Cndcia), 1-bra. Entre Os tipos muito comuns De preferéncia, em urn modelo de dorn±nio, os atributos devem ser atributos simples ou tipos de dados. A rnaioria dos tipos sirnples de atrihuto São OS tipos de dados prirnitivos, coma nil meros. 0 tipo de urn atributo não deve ser urn conceito complexo do dominio, corn urna Venda ou /Ieroporto. Por exemplo, o atributo registroCorrentc no classe Cam, ca Figura 12.2, é indesejavel porque o seu tipo significa urn Registro, que não é urn npo simples de atributo (como N1niero ou Cadeia). A maneira mais vantajosa de dizer cue urn Cairo usa urn Registro é corn urna associacao, ndo corn urn atrihuto. Mantenha os atributos simples 12.3 12.2 184 [ado urn atributo - .1 oc 1 _j_____ddP,ãO —j— cestino 01 Voo Ac on. cornolexo uoredo Evite representar conce:tos compiexos do cornno corno a:’d,oos: se asec’ T Reiacione corn associacoes, ado corn atrbutos. norne n.orne registrocorrente° Caix..a 0315 A restriçdo para que os atrihutos no modele ale dominic seam sornente tipos ala do dos simpies. nPo sigii..fica que atrihutos em C—— on Java CU mcr?.iéers, instan.ccfi.’.dV devarn 5cr somente de ti.pos de dados simples ou primitives.. Omod.elo Ce do:rninlo foca:iiza af.irmaçoes conceituais pu.ras solace urn deminio Ce problema.,. nab sobre compertentes de softcvare. .Mais tarde, durante o trabaiho de prolate e implernentaçao, sore. demonstrad.o que as associaçdes en.tre objetos expressa.s rio modelo de dominic serC•o muitas. oozes impiernentadas corn.o atrihutos quo re.ferenciam outros Cbjetos complexes do sofiwa. re, Entretanto, esta é apenas uma dentre vdrias solu.çOes Ce projetos possfveis pam implemer.tar u.ma associaçCo e, assirn, es.sa deci.sdo d.eve sec adiada durante a mode lagern do domfnio. OS corn urna ossociacda’, ride’ corn urn otriduto. Aperspectiva conceitual versus a de implementa cáo: o que dizersobre atributos no cod/go? Reiacmne classes concei Repetmdo urn exemplo anterior, urna confusdo comum a ocieaa urn compiexo do dornInio come urn atrd’uto. Para ilustrar, chse rye’ cpeurn.operte de destine no é, no realidade, urna cadeia ale caracture,-: SIC 0 aIo crrc,’ ocupa muitos quihirnetros quadrados ale espaco. Portanto, ‘c alcoa estcr raiccie nado corn Aemun”to corn urna associacãe, rise corn urn atrbuto. come rn,’ntrcdo no Fiura 12.3. Figura 12.3 c:açdes. Meihor Pier Figura ‘12.2 Methor Pior 186 1rLuANno UML .E •. TADROES Instcecia.s sepa.rad.a:s d.o z. ccc gato”. hrstâ.:ncassspa•.adas de N.thneroDeTelefiine qu•e contdrn s In.stãncias separadas do Sti —. 0 rnesrn•o nd,mero a. Inst.iincias separad.a.s de Endereço que contém •o mesmo •e..dereço. Classes deTipos de Dados Não-Primitivos hue caso Fe dtivid.a, •defi.na aigo orno moo cia.sse conceitu.ai sep.arada e ide co•mo u.matr auto. ãtoaos npo cit dicio pr rnin o’- (numero h ) sao tipo, de c mas none todos Os tipos de dados são prirnitivos. Por exemplo, eoLeE fane F urn duo d.c dad•o não-prirnitivo. Os tipos de d..ados pores são tambFrn conhecidos corno objetos valor. A rroçFo do tios de •dados pode ser sutiL Como regra, mantenha .0 teste d pos d.c atrihuto “.simpies”.: faça dde •urn atributo se dc puder ser visto como mind urn icing, urn iaoiean, urna data ou u.rna hora (e assirn por diarite); caso contrFrio; pr.esente-o como urna dass.e conceitua..i separa..d.a. Ao •granio idz sentido distinguir (pela identidade) entre duas instâncias sept do nina Pes.oa cujos .nomes são ambos “Jill Smith”, porque as d:uas instâncjas p represen tar individuos •dife.rentes corn o mesmo nome. Fm torrnos do soft eva cc, existem poucas situaçOes em que alguém c ‘ o i—o de memori c t in sn i de \ r tin oDTt Li1 somente são relevantes as cornparacoes haseadas em valores. Por OUtro lado or pirar o enne t.co- Ge mernona de intancias Ge 0 e oi e distingja i a:nda quo des tenhan-i os mesmos valores de atributo, porque a sua identidade. é importante. - F)e maneira era], os atrihutos devern ser tipos de dados (data ti12es). Este e uj mo da LML quo siifica urn conjunto de valores para 05 quais uma identjdade n5o faz seneido no contexto do nosso modelo ou sisterna [RjB99] Por exemp norm monte não faz sentido distinuir ontre: Tipos de dados 12.4 .4 C eipv oe urn ateibuto podo sec oxpresso corno urna classo nao-prirnitiva em umma Fo Ft- Fr’neinro. For exemplo, no s:stoma PDV existe urn identificador ole item. E F geraimonte e-isto apenas como urn nfim•ero.. A Ajrn dove sec representado conic 10: hpa nao jar cc to o Apliqut ‘4 3 rctr / Represente o quo inicia.irnento puder sec •c•onsiderado urn tipo de dados pcimitivo (coma urn ncãrnero ou string) como urn tipo não-primitiv•o Se: IDe for cornpasta de seçFes separacas. a ncirnerc de telefone, name de pes sea Existirern operacOes que geralmente são associadas corn dc, como anCli se sintCtica on validação. o nOmero de seguridade social Amisu-ros • Ele tiver outros atributos. urn preco prornocional pode ter uma data de inlcio (de entrada em vigor) e uma de fm DR • Ele for uma quantidade corn uma unidade. o a quantia paga tern urna unidade monetFria Mcinsro DR DOMINIO: INCLDSAO • o a • IDe for urna ahstraçao de urn ou mais tipos corn algumas destas qualida des. identificador de item no do.rnlnio de vendas e uma generalize cao de tipos, como Código Universal de Produto (CUP) ou Ndmero do Artigo Europeu (NAE) 187 Ao aplicar essas diretrizes aos atributos do modelo do domlnio do PDV, chegarnos a seguinte análise: • 0 identificador de item é uma abstração de vdrios esquemas de codificaçao, in cluindo CUP-A, CUP-F e a famiia de esquemas NAE. Esses esquemas de codifi cação tern suhpartes que identificam 0 fabricante, o produto, o pals (no caso do NAB) e dIgitos de controle para validação. Portanto, dove haver urna classe são— primitiva ItemID, porque cia satisfaz a muitas das diretrizes dadas, 0 atributo erudercço deve sec uma classe nao-primitiva Endereço porque tern seçoes separadas. • Os atributos preço e qua rub devem ser das classes nao-prirnitivas Quantidade eu Dinheiro, porque são quantidades em uma unidade monetária. • As classes IterniD, Endvreço e Quantidade são tipos de dados (urna identidade tinica ruao tern signilicado), mas elas devern ser consideradas corno classes separadas por causa do suas qualidades. Onde ilustrar as classes de tipos de dados? (c.l kG A cLose Iten!ID deve ser rnostrada como uma classe conceitual separada em urn mo Feb de dominio? Isso depende do que vocC quer enfatizar no diagrama. Urna vez quo It:’uu;ID F urn tipv do Fade (a identidade thiica das instEncias não é importante>, ole pode ser mostrado na secão atributos da caixa de outra classe conceitual (ver Figura 12.4). Mas dc não F uma classe primitiva, corn seus próprios atributos e suas prO prias associaçOes; portanto, tambérn pode ser interessante mostrá-lo como urna clas so conceitual na sua própria caixa. Não he urna resposta correta, depende de corno cr modelo de dominio e usado como uma ferramenta de comunicacão e do importâncU e do significado do conceito no domlnio. e ‘u IBWUOTECA 12.6 PADROE5 Loja 1 1 Se a classe atributo for urn tipo de dados, poderá ser rnostrada na caixa c s norne Caixa 1 norne o numeroDoRegistroCorrente Caixa Usa - nürnero Registro urn atributo “sirnples”, porém usado corno urna chave estran geira para relacionar corn urn outro objeto Não use atributos como chaves estrangeiras. j - Muitas quantidades numéricas nSo devern ser representadas corno ndrneros si-°F Pense em preco ou velocidade. Essas são quarttidades associadas corn unidades e rairnente d necessário conhecer as unidades para que estas possarn ser conVertu Modelar Atributos de Quantidades e Unidades Figura 115 Meihor Por — Os atributos não devern ser usados para relacionar classes conceituais no moo dornInio. A violaçao mais comum desse princIpio é acrescentar urn tipo de atri chave estrangeira, o que norrnalrnente é feito nos projetos de bancos de dados cionais para associar dois tipos. Por exernplo, na Figura 12.5, o atributo numeral gist roCorrente no tipo Caixa e indesejável, visto que sua finalidade é relacionar xa a urn objeto Regis tro. A meihor rnaneira de dizer que urn Caixa usa urn Regr por uma associaçao, não corn urn atributo chave estrangeira. Lernbre-se: relacion pos corn urna associaçao, não corn urn atributo. Existern muitas maneiras de relacionar objetos as chaves estrangeiras são u, nas uma e verernos rnais adiante corno irnpiernentar a relaçao ate chegar a fase projeto, de maneira a evitar a infiltração de projeto. nfiItração de Projeto: Nenhum Atributo como Chave Estrangeira Urn modelo de domInio é urna ferramenta de comunicação; ao escoiheroqw mostrar deve-se ter isso em mente, atributos. Figura 114 Especificacao DeProduto UriuzA000 UML Lid: 12.5 OK OK 188 .. 189 Macdo E ‘ * Quantidade e5pectalizad.a cuja mOods S monetSrta. Modeiagern de quantidade.s. . qu.ttdadessSovaios. samut.Cudade 0 —a EspecificaqaoDe Prado..t’o — es. cená..rios de. Pro’-. —. — — — — descriçao Pans rnostr.a:r a descriça.o em urns ted ou e.m urn recibo, Id Pars procurar un..a P ecQNçaoDssProduto, d.sdo urn.. jte.rnJ.D, 6 necessário reiaci..on.á-ia a urn hi, preço Para caicu.iar o total do venda.. e rnostra.r 0 preco d.a. Ii nha do item, data, ho trio Urn recibo. 6 urn reiatdrio eu.ru p.apei do unso ye us da, Lie normaimente rn.cstrr. a da..ta e o hord.rio do ve:,nd..s. quantidade Pars registru.r a quan.ti.d.sde e.ntrs.d.a, qo.s.nd.o existir mats de urn. item em. urns lirtha de i.tern .do v.enda (poor exern.pio, 01000 pacotss de tofu), q000tm Pans d.eterminar so h.ouve u.m pagarne:n.to saufl.cien.t.e o para calcular o. troco, urns qua.nti.a (ta.mhdn.. co.nhe.cida. co— .rro “qpa,.ntia.. fornecida”) deve ser captada. Os atrihutos escoihidos refleter.. us requisitos para es.ta iteraçdo cessardrnda desta iteração. •--- ----——5 ProxGer ho Atributos para. a Modelo do Dommnlo do PD Figura 116 1. o-—”. :‘Pagarnento ntQuanMe psgarnento ZmEJ tarts : Ntme,,J p ammO ) soft u.sure PDV ProxGer desti.na-se ao rnerca.d.o intensacionai. e dove ac.eita..r preços em diversas rnoedas. Na rnaioria. dos ca.sos, a. soiuçao é representar çuonhdrPe c:.oino Dma classe conceituai d..istinta, corn u..ma Unidada. associad.a [Fowiergd]:. s quantid idts são consideradas tipos do dados (r identidodo unusa nao e umotrsnte) c acttt1 01 !estflflgir ma ilustrrOUO S seçoo utnbutos th c esa d dasse Is or Fut,uu i 12.6). Iäm.bdm 6 corn.un rnostra.r especiaiizagOes do Quantidade,. ii4ada: 0 urn t’] )O d.c 1 qua ntidade cujas unida.cies são ru..oeda.s, Peso é urns qu.antid.ade corr.i unida.,des com,o quilos ou ibras. Moreso Os Doestojo: .1NCL;u.sAo Os. komj-ios 190 12 8 -- L;::g;-co: tJs1L Reqstm Item Oexa —j ••j Pagamento Loja — Texto n•nderec descricão . rneçc Macdc a temtD comma que mostra atr;Dutos, Catálogo [_de Pndutos Uoaeo cc —H q..uanLa M.oeda Figura 12.7 Multaplicadade de LinhaDeltemDeVenda em Relaçao a Item - —- made -—— oaCo-tr moo 4 i I....’. rnrn ——— cern —— a,’ vendor eparado exemplo I pacote deJ urn tern Jcada hnaa Ce cern req tra Cdamadejternaoae urn ama do ‘esr’a eerma a,’ 5paaotesdetofu. Registro da quantidade de dens vendido.s em urna un-ha dc tern, rriut 00 0€ — I F i i \. ei um rup en iaa per exemplo seas pauo e untrar o eu:ILI so uma vex e. então. entrar urna quantidade (per exemplo, Coneauentemente. L :L’J:’oDN L:da individual poderá estar associada conu mats ama instLncia ceurer ltem. \ uantu ado enta ‘da -)xa lo poot cr p. rugotrada come urn atrabuto daLi oh aD th mDt Lnth (hgur a 12 S) Fntretanto a qu antid ide pode see calculida a par hr do a alor tuaI da rnuluphcadade do eiauonamento de maneira quepossaserca racierizada come urn atrihuto derivado urn atributo que pode ser derivado deooh trac mi 1- aouao Na h\IL, urn atrihuto derivade e indicado corn urn simbolo —- - ——--------- --u:-ra -J Figure 12..fi Monew DE ConclusaO do Modelo de DomInio Doutvio: INcrnsAo DE Amieuans 191 Combiflad0 as classes conceituais, as associaçoes e os atributos descobertos em vestigacão previa, temos o modelo ilustrado na Figura 12.9. Foi criado urn modelo de domInio relativamente dtii para o dominio da aplica cãO l’D Não existe urn iinico modelo correto: todos os modelos so aproxirnacoes do dominiO que estarnos tentando compreender. Urn born modelo de domInio capta as ahstracöes essenciais e as inforrnaçoes necessárias para compreender o don,inio — Urn rnodelo parcia do dorninio. seus conceitos, terminologia e relacionamentos. no contexto dos requisitos em vigor, auxiliando as pessoas na compreensao do domi Figura 12.9