Está en la página 1de 273
ie EI Lenguaje Unificado de Modelado Guia del usuario SEGUNDA EDICION Grady Booch James Rumbaugh Ivar Jacobson ‘Traduccién y Revision Técnica Jost J Garcia Motna sé Sez Martinez Departamento do Intrmatca y Sistemas Universidad Murcia #eAddison-Wesley Upper Sada River, NJ * Boston + Inlandpols » San Francisco New York» Toronto * Monreal + London « rich » Pars « Macs Capetoun + Sydney + Tokyo » Singapore + Mésleo Cty Raacaprn| ‘ry ne Sor anh be Slane oar tat ean Hmcarenc M6 “as advo eos, {ond ibis alo cee prvi ny cole on depts, isdn, ‘omunacin pba efor esse coir on svn dee es oe Pee cL cia de denon menor ce cata de dein oa applet clea las 20S: Cab Pe DERECHOS RESERVADOS ray Bod; mes Konbagl a estan Lege Ue de ilo ox: rrsaurmenes Dagan Lal 11730 209 ADOISON WESLEY es us aor vided PEARSON EDUCACISN S.A {hia eres 208| A eatin Gre xs Lge eee (RHE MODELING LANGUAGE ‘USER GUIDE, THE 2ND Eston by BOOCI, CRADY UNBAUGH, ASE, i¢COBSON VA, obey Pesala As Wey, Cope D0 gui ete lr: Mig i Kony ‘Tee eet aa ing up do predic: Dia: Asero Cas isd birt: Eape edo PEARSON EDUCACION S.A Compost en resp: emf Cab, ISIRESO EX ESPSA PRINTED PPA tot oles eign A mi querida esposa, Jan y a mi ahijada, Elyse, quienes me llenan de felicidad. wl Cowenne ccomenco bx ee Capitulo § Relaciones a : 6 Iden 6 ‘Termins y concepts ‘ a “Téniascomunes de modeado 14 Soperenca cones... eerie: Capitulo 6 Mecanismos comunes a Tndbectn ..-.cesecseee arc ‘eines y concepts 8 “Teereas comnes de modelo es erreur) Supeenias cones 34 Capitulo 7 Diagramas ” Ingaducién 38 ‘éinos y cones a - 99 ‘Téeneascomunes de adeodo 105 Superecisy cones 10 Capitulo 8 Diagramas de clases 18 Inoduciin a i 13 Términos y concepts 15 ‘Técnicas comunes de mvelado 116 Superninsy cones 14 Parte 3 Modelado estructural avanzado ns Capitulo 3 Caracteristices avanzadas de las clases im Trtoducifa .eeeeesseee ete Gr ‘Téxmines yconepts os ‘Técnicas comunes de modesto. pire” Supeenin comes Me Capitulo 10 Caracteristicas avanzadas de las relaciones. : ae MB Inrouccién M4 ‘Tenino y cones «sooo eo00 0+ irae “Téencascomunes de modeado 19 Sugerenciasy CONS}... eee 160 Capitulo 11 Interfaces, tipos y roles Insoducion ‘Tmines yeoneep0s “ese commes de modelo Soperecias y consejos Capitulo 12 Paquetes Intdcsién ‘Teaines y concepts “Teeniascomunes de moda Sugerecas yconseos Capitulo 13. Instancias Ingo « ‘Téaines ycoeeptos “Teciws omnes de molodo Superniey cones Capitulo 14 Diagramas de objetos ... Ineuein ‘Tenminos y coacepts “éercas conus de modsado Sugerencias yconstos Copitulo 15 Componentes Tnoduceisn ‘Termins yconcepos ‘Ténicas comunes fe modelado ‘Sugeencias y consejos. Parte 4 Modelado basico del comportamiento Capitulo 16 Interacciones Induce “Temiosyconcests. “Téenins eomunes de moelado Sugeenciasy consejos Pi, 161 161 163 167 m 13 174 18 181 184 17 187 89 94, 196 97 197 139 201 208 207 07 208 a8 2 ms ns 26 m7 238 240 Capitulo 17 Casos de uso . Inoducciin ‘Temines yconceptos ‘Técnicas comunes de modelado Sugerencis y consejos Capitulo 18 Diagramas de casos de uso Intoduccién ‘Tetris yconceptos ‘Tenieas communes de modelaso Sugerenias yconsejas Capitulo 19 Diagramas de interaccién Inrosion ‘Termine y cones. “Teonieaseomunes de modcado Sugeeneiasy cones Capitulo 20 Diagramas de actividades . Incesién ‘éanines yconepios “Téonienseomunes de modeado Superenciasy cones Parte 5 Modelado avanzado del comportamiento Capitulo 21 Eventos y sefiales Inealuecién ines y concepts. “Técnicas eomunes de modelo Sugeenisy cones Capitulo 22 Méquinas de estados Ineo ‘Términos yconcepos “Téeneaseomunes de meio Sogerenciasy consejos mm m 28 2 239 BL 2 233 304 30 31 313 313, 3u4 320 3 05 26 28 3 Capitulo 23 Procesos e hilos Inoducsion ‘Temnins yeoneepios . “Tene communes de adelado Sugerecis y consejos Capitulo 24. Tiempo y espacio Inuein “eanivs y cones ‘Tecicascomunes de modelo Sogerecasy cones Capitulo 25 Diagramas de estados Invoduecin ‘TEaminos yconceples ‘Tenicas communes de modelado Sugeraniae y corso Parte 6 Modelado arquitecténico Capitulo 26 Artefactos.... Taodueeiso “Tenmios ycoacpios “Teeaicas comones de modelado Suge y consejos Capitulo 27 Despliegue .. Teoduesia ‘Termins yconepios ‘Tenicas comuses de modelado Sugerencia y conse Capitulo 28 Colaboraciones Intoduccia ‘Teemins yconeptos ‘Tenis comunes de medelado Sugeencias conse. 365 307 369 a2 403 406 407 407 9 aa 320 Capitulo 29 Patrones y frameworks Intxein ‘Téninesy cones “Técnicas comune de modelo Sugerecisy consejos Capitulo 30 Diagramas de artefactos Introdaccién “énnios yconceptos “Técnicas comuns de modelo Supernias yeosson Capitulo 31 Diagramas de despliegue Troueséa ‘Téninosyconep ‘Tenis comunes de dead Sunerecisvconeis Capitulo 32. Sistemas y modelos Invodvecisn ‘Tenmins yconceeos ‘Técnicas comune de madsado ‘Sogersncias y consejos Parte 7 Cierre Capitulo 33 Utilizacién de UML Transciéns UML AAddede ira comission Apéndice A Notacién UML ‘Apéndice B El proceso unificado de rational Glosario indice 9 BS “7 PROLOGO ElLenguse Unica de Modelado (UML, Unfed Modeling Language) es un lengua grifco para visuals, espcitin,consiydocumeniar os ane ‘os deta sistema con gran ceatiad de software, UML proporioea una fora, sind de representar os planas de un sistema, y comprede tanto elementos ‘conceptual, como os process el negocio yl funciones dt sstema,cuan- eos concrete, como as lass escrns en un lengua ds proramacén especie, esquemas de bases de datos y components software retizabls Eat libs ensea cdo wilizar UML de form efertira, Eat libeoeabe avers 20.e UML, Objetivos En este ib 1 Aprenders qué es UML y qué nos, y por qué UML es relevant para el roceo de desrollr sisters con gen cand de sftvare. 18 Domina el voctultn Ia els ss constccionesespetcas do UML yen genera aprender hablar ef lengua de forma fective, 1 Comprenders como wilizar UML para resolver varios problemas de smodelao frecuentes ce rm propscionauna efrecia del uso decrees epi de UML. ‘Siena, ao ere ann dese un manu de referencia comple de UML ‘tees el ema de ovo Ir, The Uni Movelng Language Reference Mal, ‘Second Bdtion (Rumibugh, Jacobson, Boch, Adon Wesey, 2005). ser describe un proceso de dessollo pra icon UML. Sin embargo, one Ia meas de proporconar uaa refeenia completa de ese prccese aa éste es el tema de oto libro, The Unified Softvore Development Process (Qzcobson, Booch, Rumbaugh, Addison-Wesley, 1999), Parting, et libro proprconasogerencicsy consejos sobre cna aie [UL pra resolver vars problemas de mctlado comunes pero no eseia ono ‘model En este eine parc una gua de usuario dew eng de ror _ramocia, queens co ailzarel lengua pero an ena a peogramar. Destinatarios UML poede serail por cualquier persona imolucrad en a proc, dsspliegne y el nsneinent de software, Este Ho e dig prncpalmenie a los miembeos det expo de desaroo que cean modelos UML. Sin emt ‘umbiénesapoiado para aquellos que see, claro en acres, construc, pucks y stribci de un sistema con gran canal deste, Aunque exo inchye casi tos ls pape en une organiza de desaolio de software es eo es especialmente impoante pals arly Tos usuarios Finals (qu espcifican a estnetura ye comporumisnio quero deun st tm), bos aries (que dist sistemas que satsfaen esos rei), los deseoladres (qo corweren esas artes en ogo ejecuable) el pers nal de contol deli (go verifcay vad a esrucura ye comportaien el sistema) os encarysos de asbiblteas de software que crea y atalogan Jos componente) ys jefes del programa y de! project (que genesiment ‘han coniraa ns, proporcionan ideazgo yerenacin, yorguestan los ec sos acess para dst sistem gu leaneee xe). st ltr supone wa conocimienobisioo de fos conceptos arintadas 2 bj (os Laexperencia cn agin engi de programa asaadoa objeto seri ‘hil aunque noes neces Como Utilizar Este Libro Pare desuoliador que se acerca UML por pimera vz, lo mejores reste libro deforma secuesil, Debt restr una stencisn especial al Capt 2, ‘qu presenta. un melo concept de UME. Todos os copes se extras de forma qu cada uno sets en el contend de los anteriores, dando ge & una progesin lie El desatlador experimentado, qu busca respuesta alos problemas communes ‘de modelado que sugen al ulizar UML, poe kerio 2 calgon, Deter presar una atencdn especial alos problems comunes de molelnde que sysresen en can cau, Organizaci6n y Caracteristicas Especiales [Exe ibe se organiza e ite partes: 1 Seccga L_Inoduccisn 1 Secs? Modelado Estructura Bisico 1 Seceis 3 Modelado Barut Avanzaio 18 Seccie'4 Modelado de Comgeramiono Bisico 1 Secci5Modelado de Comporamieno Avanzada 1 Secciga 6 Modelada do le Arctectra w Seccién? Cire Este xo comiene dos apéaices: un resumen de a cotasida UML. y un res ren dl Proceso Unificado de Rational. Tambita se inciye un glosiio de \érmings sions. Hay un indie al fal Cada cpt ata el uso de uns carcterstica espenfica de UML, y le mayo= fa organiza en as cust signenessecciaes: 1. tcc 2. Termine y Conceptos 3. Teeicas Comunes de Mdelado 4, Sugeencasy Consejos “Le erera ses resents yresuelve un conjunto de prblemas de modelo o- ‘mune, Para fr el qo e pueda oer el en busca de xis casos ws «42 UML, ends problems ident or ua tal, camo ena siguiente emo. CE oe cue ictal Cada capitulo comiceza con wn resumen de las earcierseas que estudi, «como ene siguon ejemplo Eneste capitulo i Objeios actos, proces los. ‘Modelo de miles js de como 1 Molelao de ia comusiccién ear process. ' Constecida de bsruciones eon hilos segues (read af). wi Pasioeo empeneis 2 api 25 Asinismo, los comentarios explicaves y gus generale se dan apart en fo: made nots, como se muestra en el siguiente jemplo Nota: Las oparaciones abstracias coresponden alo que Gr lama ‘operaciones vituales puas las operaciones hola an UML corespan- den a las operaciones no vituales de C14, ‘UML ene una seminca muy rca, Po lo ato fa presenti do un cara: terion puede involuerar crs deform natural, En aks esos, se propacio- nan referencias czas en el mages, coro en esta iia, En las figua eilizaa palabras destaeadas en gris para disinguiel extoque cexplica un det del txt que forma pace dt propia moso El eig sedi ‘ingue mostindolo en una fuente deanchura fj, como en este ejenplo, ‘Agradecimientos. Los autores descan agradecer a Brace Do 1 Joaquin Miller su apoyo en fa revisn de manascio del seg Una Breve Historia de UML "Nonmalmeate se reconoceaSimula-6T como pre lenge orients obje- ‘0s, desartollao por Daily Nygaard en Norvga en 1967. Este lengusje nan ‘sx uvo muchos seuidoes, per sus eneepios scien de gen inspiron & ‘vais lenguaes posters. Smaak se popalrzé a princpios de os 0, ye seguidasguivos cos lenguses como ObjecveC, Cos y Eifel a ales de os 80, Los enguajes de modelo orients a djetos aparecieron en f - cada dos 8, mientras os mecodoogias, enfreuados as vero lenges de prograacin orients objets y a nas aplicaciones cada ve ms com> plejs, mpezaronaexpementa con enfoquesskaratvas a ani y ali ‘eo, El ndmero de méoos rents a objets seincremend de menos de 10 ‘mis de 5 duane el prfodo entre 1989 y 1994, Machos usar dees ‘oes tenn problema por enconzarun ngusje de modelo que cobra sts ecesidades completamente, alimeando e aia forma la amas pre de méiods. Unos pocos métodos empezar a ganar important, ete els el, ‘méta de Boothe mftodo OOSE Object Onened Sofware Enginsering, i= zeniera del Software Orintada a Objets) de Jacobson, y el méiode OMT (Chet Modeling Telnigue, Técnica de Modelo de Objeos de Rumbauzh tras més imporanes fueron Fusion, Shae Mellor y Cost Yoardon, Cada nod ésos era un mSiog completo, aunque todos tenn us puntos eres y sus debildades. En pocespalsbras,el método do Booch ea paiculaente Pasiooa —_xvih ‘exgresiv durante Ia fuses de dso yconstresi dels proyectos; OOSE, roporsonabs un sopaeescelene pa ls esas de uso corm forma de dii- irl capure de requis, el anise disfo de alo evel, y OMT ea iit pricipalmese para el sels y para los sistemas de infemacidn con gran ‘uid de dts, tna mast eds omen omar en pi eo 5, tun rot fal Sera Caprain oe Ranta (Ge teal harTason Ot) os eopense spa es (seus nts scl tin etecrnxnenent ons ts pcs aldo eto abr ave ml Coma ceo pre dels nnd Both, OOS y Oa ee aos Spout emt oe nae nes. Catron: nite jsab cots epndenonrt Ss dst on cain anc Sse por spun simi aonb ecb ewe tine mn soni a ls Fn pet ater mess nt ois pop ors etia ale> sootmne edges hc pen qs persone In de modi ao eminent era {Secon npc ments i oer spunea casa nos ers ase ins pte ces ps) a pee i singe Ours naa mag en ere, Cuando cemenzamas con la urifcacié,estableims es metas para outst tba: 1. Models eras, desde el cone hasta os arefats ejectables, swilizando wena evientadsachjetos 2, Trt ascuestionesreasinadas con el tai inerente os ssi sas compleosyericns 3 Crearun lengua de moselao uizable ano por as personas como or as miginas Desamulaanlengosj prague s lie ene ands ye seo orentados ‘objets oes muy diferente de disear un Fenguaje Ge pogramaci. Ea pi ‘mer hg, tenfarms que aotarel problema: Debris inl el enguale aes ecifcacin de requis? pDeberia set longue lo sfiienterentepoente pra pei rogramscio visual? En segundo lug teniamos que conseguir ‘un eulio ene expresividad 3 simpicidad. Un lenguaje demasiado simple lt limita demas el tania de problemas ques pdein resolver um engi Je demasiado complejo pen agobiara las personas qu lo uiizasn En el 350 ‘de la uniicacin de métodosexsentes, también dbiamas ene en cae las bases que se habia senado Si se Ratan dermsicds cambios, confundamos ‘Jos usuarios exiene; sos esistumos a hacer avanar el lenguse, pede fama s oportunidad de involucrar aun conjnto mucho mis amlio de usa ios y de Racer un lenguaje mis sencill. La definicidn de UML procera conseguir el mejor equiliio en cada uns de estas dress, lexueropurala defini de UML comera en orb de 1994, cuando Rare baughseuniéa Booch en Rational. EL objeiv nici de meso proyect fue I ifiorn de ns mtodos de Booch y OMT El bora dea veri 8 del Mé- {odo Unificdo (como fue Imada ertonoes) se publics en octubre de 1995, Por esa cn Jacobson se nia Rational y el aanee del proyecto UML se ampli ra incorpoar OOSE. Nuessesuercs eplasmaron en es acumen dele ‘ers. en junio de 1996, Darnte 1996, pedimes y eines reimensacidn el comunidad intreciona relacionada con la ingeaeria de software, Duran- 1s ese Gempo, también se vo cao que mochas egarzaciones de sofware ‘wlan a UL com un punt esrtégico desu neocio,Esblecios un consor- cio de UML, con varias ganizacioes que quran ddicr ecu pear ‘hci une diniién fens y complet de UML. ‘Las ognizacones qo conten a a dfn 1.0 de UML feeton Digi- ‘al Equipment Corpratioe, Hewe-Packard, Logis, telisor, IBM, [CON (Computing, MCISystesiouse, Microso, Orzle, Ration, Teas lastaments 1 Unisys. Esa coaboras pejo UML 1.0, un lenge de model bien einido, exprsiv, potent aplicable aun amplo expec de domains de problemas. Mary Loomis fue decsva pars conveces al Object Management ‘Groap (OMG) de que emiera una slit de propuests (RFP, Request For Proposal) para eaguaje de modelad estindar UML 1,0se fre para st ‘tania al Object Management Group (OMG) en enero de 1957, en = presi asa solicit. Entre enero julio de 1997, gro inci de colaboradores e ampli para in- cli pricticament a os as demas organiacionos gue habfanenvindo algu- na propuesta ohblanconiibuido en alguna medica on Is espuestsiniciles al OMG, incuyendo Andersen Corsukig, Ericsson, OsjeciTime Limited, Planum Techaology, Pech, Reich Tectnoogies, Softeam, Sieding Software y Tskon. Se fom un grpo de tbajo para semana, iderad por Cris Kobryn de MCT Sysemous ycoordnado po Ed EyRholt de Rational, para Formula sespecfcain de UML y para integra UML eon oiosesierzas de estndarizacin, Un versa revisuda de UML (a vets 11) fecal (OMG para su esanarizacisn es julio 1997, En sepiebre de 1997, esta ve sign fe aceptada por la OMG Aalsis and Design Task Farce (ADT) y ef (OMG Arbiter Board y se sometidl yoo de todos los iets del OMG. ‘UML 1. fue adoptado por el OMG el I de noviembre de 1997 Daxatte vos aos, el mantenimiento de UML fue asumido por la OMG Re~ vision Task Free, que creé las versions 13, Ly 15, Del abo 2000 al 2003, tinconjuto nuevo y ampliado de colaboradrescreé una especfeaion set lizads de UML, versin 2.0, Esa versiin fe revsada durante un so por una Finalization Task Force (FTP) lderada por Bran Sli, de (BM, y el OMG sxkop la vetsin oficial de UML 20 pricipios de 2005, UML 2.0 una re- visi imporante de UML 1, ineluye muchas cractrisica adicioals. Ade ims, se hicieron mucks cambios a ls elementos previos a partir de In experiencia com la veri anterir Los documents de Ja espciisin scl de UML se encueriran en a pgina web del OMG en wovomg.crg. UbtLeset rato del trabajo de muchas personas, Tas ideas gue hay en pro= ‘venen de un aml espe de tabs anteriores, Seis wn gran proyecto de investigacin itreareconsrir una istacompleta de fates, iaclso seria sll idenicar 3 tos aquelos que ha nud sobre UML mayor ‘omener gr, Cun ein oe uabajdeiarestgncidn cence y ‘agenierfa, UML es uns peque colina sada en Is cima de wnt montaia sigamesea de experiencia pevia Parte 1 Np INTRODUCCION UNFEADO DE sNoneLAD0 LENGUNE UWNFADO DE ‘MODELADO Capitulo 1 ne Por QUE MODELAMOS Eneste capitulo 1a inpoanch demic 1 Gant eis def medclado. = {Los panos bisa de un Sst lar, Modelo oreo a ajctos, ‘cw empress de sotware con éxito es aguela que produce de uns manera con sistent software de calidad que aisface ls necesidades desu stan. Una empresa que puede desarllr ese sftware defor predecble y pana, con uso efceney efecto de recuse, alo humanos com mati, ene un negocio soni Este mens conlera una important cunsecvencia: el poducto principal de on ‘equipo de desarlo ro san bonis documenta, reationes may importantes, _randeslemaso linea de cdigo fuente merecedors de premio Plt An- ‘esbien, es un buen software que stag los nevsiades eambintes de sus ‘wus y la empresa. Todo fo dems es secandaro Desafocunadamente, muchas empresas de sofware confunden “secunda ‘on “imeevane” Para roduc solare qu compa su props, bay que co- nose involura los usuaios de foenadscpinada con el Or dexter los requis reales del sistema, Para desarollar software de calidad daraers, sider una sda bate xitectnica que ea ec al cambio. Par esrro~ ar sofvace pia, efiiete y efectivamens cone mimo de deschossot- ‘wae de aba opetio, hay gue tener a gene aprpias, fas heraientas apropiadsy elenfoqueapopino, Para hacer todo eso de femnacorsisete y predecibl, con un esti de los costes dl sistema en ead etapa det vida, hay qv dsgoner oun proces de Gesull sido que pasa aduparse ‘las necesidades canes dl problema en cuss y del tenologh, Pare lumeouscen Cwiot Pen Qu Moomawcs 5 Emodeladoes unpre cenual de todas as actvidates que conducen ala pro- vein de buen software. Contvimos modelos para comunicar I estvtura desea ef comportiento de nuestro sistem, Consttes modelos pata vie sualzary conor la arguitectura del sistema. Coasimos modelo ara com ‘reader mejoretssena qu estos contend, rus veces descusiendo ‘portunidades para a simplificac y la eulicién. Construimos modelos para contol spo, La importancia de modelar Sise quiere consi un eset para un pero, se pede comencar my ben con ‘un moni de mater algunos clays y unas cuants beraments bcs, ti les como un mrifo, un serruco yuna cinta mética. Ex poes hor on paca pluifcacin previa, es probable que se cabs con una css eazeablemene funciona, y que proeblemente se pueda hacer si a ayuda de nadie. Mientras sea bastante grande y no enga gots, el pero staré content, Sin sale bien, siempre se puede wlvera empezar o busca un petra menos exigent Sise quer cons una esa para una fii, se peed comteszar son tn on vo cde mudera,slganosefavos, yuna cunts heramiontas bcs, pero va a evar ms impo y, con toda seguridad, fails serd mis exigete que el po- ‘mo. En este cso, a menos qu se ya heeo ates mucha vee, saben ‘un resoto mejoctacendo uns pianfcacidn della anes de golpeael pi ‘mer cave o ec las eimienos. Como minmo, se relzarn algunos bocetos el axpecto que se quiere que eng a cass. Adonis, ss quiere consi a asa de calidad qe satis las ecesidaes def familia y que cumpla las le- ye de construc ales, se aecesaviodibujr algunos plans, de forma que Se pueda penser ene so petentid de las abiacions ls detalles prcticns en lectricidad, alec fontanria Dadusests plans, se puede empe- ‘zara ucer estimacionesrazonables é a caniad de emp y materiales que requerir el abso. Aunque es rnanamente posible que uno seconstruya st propia cs, se macho mis efceste trabajar cos otros, posblementesubeon- tratando muchos tibajos importants o canprandomneilspreconiios. ‘Miemras se cumpian los pane y se permanerca den de ia imitaiones de ‘empo y dinero, es muy probable quel fail es saisfecta Sino sal bien, ‘no s puede cambiar precisimente e fila, as que es mejor etablcer as ‘expecta l principio y conta os cambios cidadosiment, ‘ise quite eonsrir un gran blague deofcnas, sera enormemente estilo ‘comenzar con un moni de madera, slguos lus y unas cua hae las seas, Como es protbl que se est usando dinero de ora gente ets pe sonas querrninfaires el taako, forma y esl de efcg. Con freewenis, ells cambiar de opin, incluso despats de haber comeazado la consi ‘ib del edtcio. Ser deseable lanifar de forma exensiva,porgueelcoste de falar es alto. Se fomari parte de un grupo numeroso responsable de pu cary consiicel edifco, y los miembros del equipo aecesitarén toda clase de plans y modelos para a commniacin inter. Mens se consiga la gene y ls heramietasaproiats y se cone de for sa active proceso de arsformar un concept aquietnic cn reali es robble qu se legue obtener wn edicio quesatsfaga ass nln. Si uno uit seguir conser edifices, desea segue decompainar los de- 205 dels ings ca a realdad de la vecnoogta dela constucei6n, as ‘como tratar al resto del equipo profesionslment, sia exponeslo ning es 0, ni dirigiénolo tan dramente que se queme ‘Carosumente, an montén de empresas de desarrollo de software comienzan _qerzndo constr rascatieos, pero enfacan el problems como si esuieran tlieaiados Ja easeta de un pero. ‘A ees tiene sue S uno ten la gente spropiada en el momento apor- ‘uno ys todo los planets extn en conjurcin, entance se pri, so se pode, hacer gue el equipo produzca un product software que deslumbre a sus usuarios, Sin embargo, rormalmente no se puede conseguir la gente apeopada (los bucnosestin muy solicits), nunca es ed momento opor no (ayer hubier sido mejor, y ls planetas no parece liners (en ver de clo siguen moviéndose fuera de nosso contr). Dada la reciente demas «a de desarrollo dpi de software, os equipos de desrolo a menudo re ‘curren ala Gia cosa que realmente suben hacer bien: riturar ms y mis, lines de cio, Los esfuers de programacin heroics son leyenda en esta nda, yu menudo parece que a eacckin apopiada pura cualquier crisis ‘nel desarrollo es absjar nds duo Sin embargo, és 0 son nesesrimnen- ‘els lineas de cOiigoapropiadas, y algunos proyectos son de tal maguitud ge incluso adr ms hora ala joraiaaboral woes suite para erminat el abajo, Sirealmentequeremes cosiuel sofware equivalent una easa0 un ra5- ‘acielos, et problema es algo masque una cuestén de eseribirerandes aa tidades de sluware —de hecho, el truco esi en erearel software propiado yen imagiar cio esribir menos saftware—. Esto converte al desarollo ‘deoftware de calidad en una cuestin de arqutectr, process yheraica- tas, Iclso ast, muchos proyectos empievanparecienda cael de per, Pare t Inrrooueot Cuno Por due Mooemos 7 pero crecen hast el tamatio de un rascacels, simplemente porgue son vf 8 desu propo Exit. Liga un momento enel que, si nose ka tenido en cuenta argitectra,e proceso as heramientas, ln easta dl poo, cON- venta ahora en rascals, se colapsa bajo su propio peso. El derbi meno dela caseta puede molesar a perc; el fill de un grea edificio afectar matesialmente a sus ingilinos. Los proyectos sofware que fracasan o hacen por cirunsancaspropis, po todos los prnyecios con xo se parecen en muchos apecos. Hay muchos ele- ‘mentos que cntinayen anna empresa de sofware can ito; ne en comin es uso del modelado. Et modo es ua nica deingeniera prada y bien acepags,Coasimos ‘modelo arqitectnios de cass yrscaielos pra ayudar asus usuarios i ‘lize producto fia, Inclusopodemos conser madelesmatemsticos para nalizar los efectos de vents otaemots sole auestos edificios, El modelo noes so pa def industs dea conse, Seria inconce- bible crear una nueva aeronavecautamovil sn consti pesiamente madelos, desde models informsticos a modelo sicos para eine de view voto os a eszala real. Los muvos disositvos elécticos, desde los microrocesa ores alas ceils elefiea,requeren agin grado de modelad para ‘comprender jor el sista y comunicar as idea a tos. En fa industic- erator la cica del storghoading representavi de na peicula con ies), que es una forma de medelado es fundamental en cualguie pecdiue- i, En os campos de La socologi, la economy I gestin empresa, se ‘construyen modelos para poder valid as teri probarcrs muvas cot un ‘cost y unos esp inimos 1 es entances, un model Para responder deforma see, Un modelo es wna smplificacion dela realidad, ‘Un modelo proporcia fs panos de un sistema. Los ods pueden inoli- rar plans deta, af coms planos mis generales que ofrecen una visén ‘slobal det sistema en considera, Ux han models inclye aquellos elemen- tos ge teoen uns gran inluencia yonite aquellos aemeins menores que no son elevanies pare nivel de abstracid dao. Todos fs sisters pueden set esritos desde diferentes pespectvasullizando diferentes modelos, y cada ‘modelos, por ata, une abstraeci seménicameate cera del sistema, Un ‘modelo puede se estructural, destacando fs ganzacdn del sien, 0 puede serde comporamiet,resallando su diniien. exetcepio? Sessa sno oe Ue, thewones {Por a adelamos? Hey wa ran fundamental CConstrsinos modelos par conprender mejor el sistema que estamas esorollando. ‘A tas del maslad,conseguimos cua obeies 1. Los modelos ns syudan a vswlizar emo eso queremas que Sean sistema, 2, Las modes aos periton espeificar a eset 0 el comportanien- todeun sistema 3, Los modelos ns properonan plants que aos gun en fa consrue~ cin de un sistem 4. Los modelos documenta as docisions que bemos adoptad. i nodelad noes slo pata fos grandes istras Inlso el equvalete sof ware de una easela de pro puede beneficiarse de algo de modela. Sin er- ‘argo, esabsokaamete coro que, cao mis prandey compo esel sistem, el modelado se hace més important, por una simple 26: Constr modelos de sitnascompleos porque no peas com render el sistema en staid. oy limites a cpa umana de comprende acomplia. Ata del ‘modelo, eucimosel problema que se est estoando, centrindonosen ut S10 sspete cia ver Ese es, esecialment, el enfoque “divide v veneers" que antes Eger ist sas: acometer un problema dif vidiéadlo en ‘una sere de sproblemas ms pequeios qu se pueden resolver. Adem, te 5 del model, se potercia arent humana Un model escogido lees mente puede genital modeladr trabajar a mayors eles de abstrsei, Devic que se deteria moda oo significa que nscesariameate ses havendo as Dehecbo, una serie de suis sugeren que a mayorade as orgaizaeo~ ‘es sfvare hacen poo oningn moletdofomal. ise epresentaza el uso el modelo frente aa compleidad de un problema ecompobiria que cuanto ‘nds seneilloes el proyecto menos poable es que se haya vilizado un modelo formal Lapua ive aquies “formal”. En realidad, incuso en el proyecto mis sim= ‘ple ls desurolideresbacen algo de moda, sibien muy infermalment. Un Figure 214: Dependencis, Lasarsscnes seasaiener tes cgones ayia ates scranson hoses sy edocs ns Can. as ere vt bute se lon oe sre conta Cuinio2 — Presemcouae UML 27 En segundo lugar, una aaciacin es una elacin esta entre elses que deste unconunt de enlaces, fs cuales son coneiones en objtos que son instanias declases, La gropacio es un ipo epecia de asceicib, qu epre- senta na relia estructural ere un od y sus partes, Grifcaent, ua a0- iaci se presenta coro una linea contin, posblemente digi, que a ees inluye ure eiqut, ya menudo ireluye oosadoros, come fa multi- pliidady os nombres deextemo, como se muestra en la Figura 2.15. i : ieee eas Figur 215: Asociaciones, En tercer lg una generalizaccn os una relacin de espeilinacidnlgenes- ‘zac en Ia cal el elemento especial (2 fj) se basa ex a especifia- cin del element generaizado (el padre). El ij conan ls esuctura yel comporamiento del pede. Gefiamente, una rela de genertizsién se representa como un lies coninos con usa punta de ea vata apantando al re, como se muestra en la Figur 2.16, ——> Plgur 216: Ceneazaciones En cto lugar, un realiacines una elcin semintica ente clasitiesdores, en donde un casiicadorespesfea un conzato que ovo clasiieadorgaantiza ‘que eumpli. Se pueden encontrar relscones de reaizavi en ds sins te interfaces yl clises y components que las ealzan, yen os cs0s de soy ls colshoraciones gue Tos elise Gefiamete, na relacin de reali- ‘zacidn se repesenta corn una mela etre ua geveralizacin yuna relacién de dependeacs como se muesia en a Figura 2.17 “D Figura 2.17: Realzaciones Estos catoclemertas son los elements bisces elacioales que se poden n= ‘ren un medelo UML. Tambige exiien varices d es Cato, aes ‘como el refnaniento a toa, nines ya exes, DDiagramas en UML. Un dagramo esa represenscdngifea de un conjun- tode elements, vselizad la mayors dels voces como un aafocorexo de sodas (elements) yaros(elacones), Los dsgramas se ibujan para isl arn sistema desde dfceates prspectvs, de forma qu un diagram es ura, 23 Panes tes dagemes cesses se seater ee Gone es eames ceenens se Gea ant Cane, tos avgames Yiecanctse ema se scan ano (apna 38 Iraeeucosn royecién de n sistem. Ea tos os siseras, excepto en osm tives, un igrama representa una vista resuna de os elementos que castiuyen an Sistema, EI mismo elemento puede aparecet ea cados los dgrames, slo ex nos poco diagrams (el cso ms comin, en sain gram (arcs muy "ao)- En cov un digrama puede conterercualquiee combinacin e elm ‘os yrelacions. Ea prictia, sin embargo, slo surge un pogucto nimero de ombinacones habituales, las cuales son consistete cr as ino vistas mis ‘les que comprenden la arqutesors de un sistema eon gran candad de sofware, Por esi ran, UML ncluye tee tpos de dagrames: 1. Diagrama de css 2. Disgrama de oben, 4, Dingrara de components 4, Diagram de estructura compuasta, 5. Diggrama de cass de uso, 6. Disgrama de secunca 7. Diagrama de eomunicsci, 8. Diagrams de exes, 9. Diageara de sctividdes, 10 Dingrama de despieue. Disgrama de pagats 12:Disgrama ge tempos. 13. Disgrace visi gob terccones, Un diagrama de clases muestra un conjunto de clases, interfaces ycolaboracio- ‘es, a8 como ss elacones. Estos diagrams son ls gras ns comune en l modelado de sistemas oictades a objets. Lo disgramas de clases ‘shurcan la vista de dso etica de un sistema, Los diagrams de clases que Jncluye clases eatin eubren la vist de proceso esta de tn stem. Los dagramas de corpponents son una variant de os dingramas de cases, Un agrana de objetas moestra un conjunto do objets y ss telaiones. Los Aligeramas de objeto representa instantineas estes de insta dels ele- ‘mento existeies en os diagamas de elses. Estos dagraas cubes a vista sao eatica ol vita de process esdica den stra, como lo baces los disgramas de clases, pero desde la pespetvade exes ele protapices. Un diagrana de components representa l encapsulcin de una else, jua- ‘0 con sas interfaces, puers yesircua nies, la eu est Frmada por tts components anidados y cnectores. Los diagrames de components cube a vista de implementacin esta del deo de un sistema, Sonim Portas pra constr sistemas ms grands a pac de partes pequelas. i wesc rasan ene) Cpe 1 oscar inst te ‘isovanens Capi 18 Les doguest se esacs se tect (spt Levsepamer ceases fedenien ene! Cpa se deganes lesson se fisuensn spite Carmo 2 Pasorscdn se UML 29 (UME isingu enue un dagrame deesrarra compuecta, plicable x cual ‘quier cise, yun diagrama de components, er unificaemos a discuss ya ‘que la diferencia ene un componente y una clas estructura es ianecest- rlamente sui.) Un dagroma de cars de uso musa un counted casos de uso y actors (un tipo especial cases y sus relacioes, Los diagramas de casos eso eubren lt vin de esos de woes de un sisters. Estos digranas on especialmente imporuats en el modetadoy oranizaciéa del componamiento de ua sie. “ant os agramas de secuncia como ns dagramss de comic son i pos de disramas de interacidn. Un diograna de interaccn muestra na interact, que costa de un court de obeos 0 roles, inlay ls men- Sj que pueden ser envindos entrees. Lo diagrams de intaccia cure ln vista indies de un stems. Un dfagrama de secuenca es un digrama de interac que esata rdenacién temporal de os menses un dingraa de ‘onicaién es un diagram de intrsccién que tesla la rgenizain eric tural de los objeto o roles que envi yreciben mensajes. Las diagrams de secuencity los digramas de comuniccién representan concepos bisces similares, pro cad dingrama sala ura visa diferente de los concepos. Les iagamas de secuenciaresatan I ardeaacg temporal Ins dagramas de ‘comunicacda resalian In estructura de datos través de Ia cul fiuyen Tos ‘mensajes. Un dagrama de tiempos que no se tata en et lia) muestra los tiempos reales en los que se intercambian ls menses. Un diagrams deesados muestra una muna de estas, que const de ata- os. asicioes, eventos y actividades, Un diagramade estas mes vis- tn dinimica de un objeto. Son epecaiment imporantes en el modelo del ‘comportamnienio de una ira, una case o uns colaboracn yeeslaa el ‘comport iigido por eventos de un bro, locales especialmente Ul eel medelado de ssemus eactvs, Undigrana de acividades esta a eet de un proceso ota compe ‘asin como el uj de consol y datos paso s paso en lk compu, Los ‘grams Ge actividades cubrea avis ica de un sistema, Soa espcil- ‘mente importantes al modelareffncionaniento de un sistema y resalian et {Mujp de conal enze objec. ‘Undliagrama de deslegue muesta a configuacién de nado de procesien- to en tempo de ejcocin y ls anefactos qu resides en ellos. Ls agra de desplieguesbordn la vista de despliegue estos de una argutectora. Nor- ‘malmenc, un podoalbergs uno o mas stata. m0 Pamet inoue Cwimo2 —Presemaconce UNL 31 tosoranss spaces Cae 2 Un lagrama de anefacos muestra os constiuyeces fisios de un semen computador. Los aefactosinclayen aches, bases de datas yeoeccones Fisica de bits similares. Las anefcos se uilza a menado jut coals _grumas de despiegue. Los areficios ambi muestra as css y componea. Fes que implementa, (UML tata a fos diagramas e srefacos como uaa varlacin de los diagrams de despiege, pero ls dscuires pr separa). Un iagromade paquets moat ta deseomposcin del propo model en ni Ades nganizaivasy sus dependencis. Un diagrama de sempos es un diagrams de imeracidn que musta es ie: rs etles ene diferentes objetoso roles, en pposcdn la simple secvencia telutiva de menses. Ua diagram de visién global de ineracione es on Iubido enue un diagrams de actividades y un diagrama de secuencia. Estes Aingrarns ener uss espeializados por tano, no los trataremos en et i+ ro. Para mis detalles puede verse el Maral de Referenca de UML. sta no es uma lit cera de diagramss, Las heramiestas poeden usar Unt para proporiona ots tipo de iggramas, aunque ts Son los que con mayor recuncia parecer en la prictica Reglas de UML Los boques de constcein de UML no pueden commbinase simplemente de culquir manera Como easier lenguaje, UML tiene un aime de regs ‘que especitiana qué dete parecer un rodeo ben formado, Una madla bien Formadoes uqel que es semnicamenteautconssiente yes en aroniacon todos sus modelos relacionados, UML tiene reas initiasy semiatias para: 1 Nombres Cémo lamar fos elementos, racones ydisgramas ¥ Alcance _Elcontexiogue dau signicado esesfico aun ombre. 4 Yisiiidad Cima se pueden wry utlizar esos norbes por ors. © Inegiidsd Cs se relcionanupropiaia y consistentemente unas ements cn otras. 1 Ejecsién Qué significa etsutaro simular un move diaimico. Los modelos constuidos durante el desarollo de un sistema con gra cantidad > Parte 2 =i MopELapo EsTRUCTURAL BAsIcO El icono para un artefacto es un etingulo con Wa palabra clave > sobre el nombre. El applet bina HolaMiunda class es ana v2 siacn de est simbolo bsio, co as eas vericalesdobes, que indian ue sun artefact eectable (com una ease atv}. Econo para el aeacto hnola. java seharemplazdo por un cono define por el usuario, qu r= resent un archivo de texto, Bl cong parla pagina web hola. hes se aa pesonaizao igualmeate, exteadiendol note de UML. Com indica eta figura, esa pgna we tien oto afc, ola. ipa, que se representa por tm ene de arefato defini pore suai, en ete cao uns inated Is magea. Como estos mos res arefeetos lian simbols grificosdefinids Porel usuario us nombres se encuentran fuer elisa, La dependencias entre os artefirios se muestran con fechas escontinus. tino Noa: Ls relaciones entre la cise (Hollaxunde), su obsigo fuenle {hola. java) y su cécig objeto (Hotatundo class} no se sualen ‘madelar expliciament, aunque a veces esto es itl para verlacont- ‘guacién fisica de un sistema, Por ato lado, es recuents visualzar la ‘iganizacién de un sistema basaco ena Web mediante dagramas de arletactos, para modelar sus paginas y otros arelacos ejecutatles. isis sso | i i Capitulo 4 LENGUME a CLASES ‘UNIFICADO DE ooeuno En este capitulo. Gases tis, peices y genes Medea del yotaiaie eta ens Mods de dab de esponsaistades eo va sven 1 Modelo coms ie no en solve Motel de pos pains f Consistent. Lalas sons logs de consssn mis ingots ecg sie- ma oetda sober Una cle ua dcrpin deen conta de objt08 ‘qe compre eso abo, operons, eliconsy sein, Uta thse impemena ua om ines us Lasclazessetitzn prs apr el eat essen dessa. Es RATERS gs ass pasion incur absraccioes que forme prs del dominio del proble- SECRET me.avcomocles qv conten mm mplemencion Lares pueden ‘Scccrare! vila pa repselr cost que sea solar, ardvize o cos puente Captus 8. ‘conceptuales. Lasclas bien cscs xine dtm y pian dun dsti- bucineqlbaa de sponses nel sistema. Introduccién El madela ce un sistema implica enc as oss queso importantes des <8 un punt de visa parculs. Esta ox feman ef vcabalaro del sistema que se esd modeland, Por elemplo, si estamos constuyento wna cis, las a 52 Pamez tsetse Capo Novetano Esrmuruna. Bisco paedes, poe, ventana, armas y lees son lunes de las cossimpotntes desde a prspectva de un propitaro, Cada una de estas cosas puede Se sepa- vada del es, Cada una de clas también iene un conjanta de propicdades. Las parcdestie- senna altura yuna anchuray son sla Las puerta también tenon una ‘uray ura anchura y son sli, pero tienen el comportaniestoaiioal ue pee ails en una direc, Las veatns son sinilaes a as purtas en qe mba soa aberuras en as paedes, ero as velar y as putas iene propicadesligeramentedifeenies. Las ventana se cisehan normlmente ourgue no siempre) para que se psd mirar ara de ella en ver de tae esa, Las paredes, pueras y ventanas no suelen encontraseafsladss, asf que también hay que considera e6me encajan juss fs instanciasespecticas de elas. Las cosas que se han denice y las relaciones que se estable- cen ente ells se verdn sfectadas por el uso que se peetende da a exda ‘abitacin de a casa, emo se espera que sea la cireulaci de una hab taclon aoa y el estoy el aspeco general que se quiet logratcoa esa Aispsicisn, Las personas implicadas estan intresads en iferetes cosas. Por eemplo, los fantaneros que ayuda a constr Is casa se interesarin por cosas come esages, sifonesycontuctos de ventacén. Hl propetaro no estar preoc- pado necesariamente por estes cvesone,excepo en el caso de que inten ‘fen con fs cosas en las que fj sv atencia, como dnd se puede colocar ‘im sop en un seo o dda puede romper laeséica del to un cond: to de veniacin, ‘En UML, todas ests cosas se modelan como clases. Una clases uma asta ign de is cons qu Ferman parte det vocaulaio, Une clase ao es un je ‘o indvidal, sino que representa un conunto de objetos. Ast, se puede pensar concepivalment en “pred” como una clase de objets eon cirtaspropieds- es comunes, como altura, longtad,grosor, ses msesre on, ec, Tambiéa se puede pensar en insancias ndlviduales de paredes, como “Ia pared dela esquin sur demi despa”, Encl teeno del software, muchos lengusjes de programa soporandee- tamenteelconcepo de clas. Eso es excelente, porque ello significa que & menudo las ahstracciones qo se crean pueden Wasadasediecamente aun lengua dep i | { Owed Clases 53 aa ™ lan Figura 4. Clases, UML tanbi proporcion ava repesestacn grifca de ls cs ‘sala Figura 4.1. Esarosacén permite vsulizar ana abtaccin independien- temerte de cislquir lengua de programackn espectia y de forma que permite rsa as panes ms importantes de una absiracién: su nombre, sus sano y su operaciones Términos y conceptos Eroonte se neonate ceo des ‘Una clase es un dscripeén de un conjunto de cjetos que comparten los mis- mos strbuos, opeasiones lions y seminice. Gfiemene, un clase 36 representa come un rectingulo. Nombres (Cada clase ade tener ua nombre qe a distnga de ras clases. Un nombre es na cadena de texto. Ese nombre solo se denomina nombre simple; un nombre RELACIONES UNIFCADO DE ‘HODELADO En este capitulo 1 Relaciones de dependeci, generlizacia y asciacién, 2 Mode de dependencias Siples 1m Moselado eis herein sil ‘Moselad de relaciones essa. 1 Chescin de res de elaciones ‘Alrealiar absraecions, uno sea cuenta de que muy poe clases se eneuen- ‘ean isads. En ver dello, la mayoracolsboran con tas de varias mane. Por tanto, al modelarun sistema, ao so bay qe identifica los elementos que conforta el voesbulavo del sistema, también hay que model eGo sea cinnan ests elementos ene tas Enel modelato orienta actos hay tes pos de elaciones especialmente impotent: dependencias, que representa relacions de uso ear clases fi cluyend refinamiento, waza yLigadure, genealzaciones, que conectan clases generale can sus espcilzaione, yasceiaciones, que represenlanrelaianes Came 12 estes ene objets. Cada ura de estas relaiones proporciona na forma ‘ifereme de combina las abstaccines La construe de eds de telaciones no es muy diferente de establecee una disuibucin equllrada de responssilidaes entre las clases Si se mo- dela en exceto, se acabarécon un fo de relaciones que arin el modefo in- ‘comprensibl; 8 se models insufcientemente, se habrd perdido un montdn de a riqueza del sistema, contenida en Ja forma en que las cosas colabaran 5 65 Pane? Moos i99 Esrmucunas Baca Introduccién Gis pose Seenian ete) Cana 10 Al constr una cas, e052 como paredes, pueras, ventana, amos y ives “rmarin pane de nusto vocabulro, Sin enturgo, ninguna de esas cos se encuentra aisha. Las pred milan con ara pared. Las poeta ns ve ‘ands se colocan en las predes para hacer abetuas paras gente a lu. Los uebles y las ues estin sicamenreadyacentes alas paredesytechos Las par reds, as pers, los armatosylaslces se pueden aprupa ara formar cosas nds comple, como ls habiacianes. ‘Adem de us elacionesestructuales ene ests cosas también aparecersn ‘os tps de elaiones, Por efpl, seguro que la cas ene ventas, pero robublemente sean de varios ios diferentes. Puede haber grandes miradores ‘que nose aban, asi como pegueas ventana en I cocina que silo hogan, AF _Buas ventas Se abriin hacia aria y abo; oa, como fas ventana que den al pitio, se abirn de iaguiera a dereeh, Algunas ventas tend una Giea ‘op de eistl otal eden dobl, Sin impo sus ferences, bay algunas cuslidades “vectanals” en cada una de elias: todas son una aberura en wna ped, y leds es dsetadas pra dejar pasar Is uel ey, aves, get, [En UML, fas formas on gue ls cosa conectan etre sf, ben Blea ofsen- meni, se modelan coma relcions. En el modelado oentad a objets tay es clases de elaciones muy importante: dependensas, oneralizaconesyascia- Las dependencias son eaciones de uso, Poejmpl, las tberfasdependen de calentador para calemar l agua gue condocen, Las asociacones son rlaciones estucturales ent instancias, Po ejemplo, as hrabitacionesconstan de paredes y ovas cosas ls pares & su vez pueden con- ‘tenes puerasy ventana Js tubers pueden aavesr ls pares. Las generalizacioes conectan elses generales con otras mis esecializadas cn lo que se conoce cum relacionessubclase/supercase o hijolpude. Por «ejemplo, un mirador es un tipo de ventana con grandes bjas deers js: ‘na ventana de patio es us tipo de vestana con has de cristal que se aren de lado a lad, -Exos res tps de eaciones eben lia mayor dels formas ingots en que ‘colaboran unas cass con ras. Coro ers de espera, ambién se coresponden bin con fs formas gue ofrecen fs mayors de os lnguaies de programscin sreniaos a objetos para conetar objeto pevcenmrrtniittibit btn —~binstnmmeeen | | @ carino'S — Reciows 67 LUMIL propociona wna representa géfca pra cada uno de eststpos dee Taciones como se mutta en la Figua 5.1. Esta ntacin permite visalizar relaionsindependieaemont de calquerFengusje de programacién expeef= feo, de forma qu permite destacar ls pares mis instante de una ela: su nombre, fs elementos que eorecta y sos propiedaes ae ae “peneraizaciin: bistarinass Sees ssicon a ema (ery Figura 51: Relaciones. Términos y conceptos Capt ate pate 5? trator ene Capi 1 ‘Una rlacifn es una conexén ent elementos, Enel modstado rietado a ob- {jee las res relaiones mas importantes son las dependencies, las generals ‘ions y las asociacones. Grfcamente, una relaein se epresenta como una Tinea, usados ferent tips lines pare diferencias as tpos de relaciones. Dependencia ‘Uns dependencia es una relasién de uso que decors que un elemento (per empl Is clase Vent ema) ula I infrmasn y Ios seviios de oto ele- mento (pr ejempla, In clase vento), pero no seceseriamente a To inves. Grificamene, una dependencia se representa como una lines iscontnus di- sid cia ef elemento del cul se depende, Las dependencias se warn cuan- do se quiets nica que un elemento uliza ao. Lamayori de ls wees as dependenciss liza en el comesto dela el ses, par indica que una clase win ls operaciones de ota o que ula va- rable o parimetos cay igo viene do por Is traclas: vas a Figura 5.2 es claramente ura rekcin de uso (sta clase tilzda cmb, opeacicn ds Lar clase puede verse tambin aectad, porque la clase wiz puede 52 Penre 2 Moosion EermyorIRA. BAS presenta ahora un mei oun comportaninto diferentes. En UML tiga ‘se pueden crear dependencas ent ors muchos elementos, especialmente mo- (a5 y paquets, Faborabeviees| ee reroute Cra ‘cca oar ua) ‘eon Figur 5.2: Dependencias. os tret ia dependencia puede tener un nombre, aunque es aro que Fe care Senebesen Ios nombres, a manos que se larga un modelo con ma GERGES* —chas dependencias y haya que refrirse a alas o cistingulries. Nor Copan iaine —-malmente se utlizarén estereotipas para distinguir clferentes sesreaizesse _variadades de dependendias. ‘eoven oo! capita. Generalizacién Uns gnerlizocidnes una elacién entre un elemento general lard superla se pare) y an caso mis espectio de ese element (amnado subelaseo hijo). La gaeralizacgn se la a veces elacin “esun-ipo-de": un elemento (Come lnclase iirador)esunsipo-de un elemento mas general (por ejemplo, lc se Ventana). Un objeto de a clase hija se puede asociar@ uns arabe © un parémetneuyo tipo venga dado porel puke, pero no alainversa. En cra pla- ‘yas fa generalzaci significa qu el hijo puede sus a a dela del pate, Un io erea la popiedades desu padres, especialmente sus auibuos _yoperacones menudo (pono sempre) el hijo ide stributosy operaciones aos que ereda de sus pate, Ura implementa de ua operscn en ws hijo redefine la implementacdn de Ia misma opercién en el pate; esto se conoce ‘um poimoefismo. Para sera misma, abs opeaciones ln de ener Ia mis- tm sigoatura (mismo sombre y paritres). Gréicameat, la geceralizcin se ‘representa como ua Tinea driida continua, con un ran punta de lech vaca, spuntando apace, como se mesa en [Figura 3.3. Las geneaizcions ulizarin cuando se quia most elacones pei, ‘Uns clase puede tener ningun, uno o ms ade. Una clase sin pes y uno ‘i hijos se denomina ease miro clse bass, Una ease sin ies ge lama os pee ‘Season sna canto 1 ylescponcor Gasper mts gersaters) econo — weeeausone Com 10. Crimes Raucous 69 clase hoa. Uns clase con un ico padre se dice que utiliza herencia simple; una late con ms de un pue se dice que ulin herencia map ‘A menudo se uilizan generalizaciones ene class nteruces pra represen lurreieiones de hereaia, Ex UML tunbia se pueden esablace genealizaio- res ene vos tps de clasiieadores, com por ejemplo nodes Nr Figure | ne esa onsen ay 7 a te a Learamecr—| [aacoems —| [waenome a /nacwoTansrajecteSes)| | naaveTamafetacir: Peal) i ener ee mace Figura 5.3: Generalzaign, ‘Nota: Una generalizacin con un nombre indica una descomposicion| de las subclass de una euperclase a partir de un aspecto determi ‘nao, lo que se denomina un conjunto de generalzacién, Ls conjun- tos do genoralzacién maltiples son oriogonales; la idea es que la superclase se espacialce mediante herencia muliple para selecco- nar una subclase de cada conjunto. Este es un tema avanzado que ‘no ge rata an este Hbro. Asociacion ‘Una soriacidnes una rela estrctral que espeifica que los objets de un lementaestin conctados con ls objetos de oto. Dads uns asocacién ene os clases, se puede establecer una elacin desde un objeto de una case hasta algunes objets del cra clas, También es vilido que ambos extemos de wna 0 Pane lacs ‘ecwtnc anes Sroesean ca eceele cnet Cap fasconan on 2 fee = es Paces oon eat el Capi Monst40o Esraveunat Bisco ssociacién estén conectados la misma clase. Esto significa qu un objeto de Incase se puede conectar con otros cbetos de fa misma clase, Una asoeaciin ue conectaexatamete dos clases edie bina, Aunque noes fecuete, se pede ener asociackes que conecten mis de das clases; és aman aso~ Caciones maria. Grifcamente, uaa ascinién se represents corn una fea continta que coneta I misma o diferentes cases, Las asciacioaes se witiza- rn euando se qulearepesetarrelaconesesructrales. pare de esta form bisia, hay euro adornes que se aplican fas asccia- cones. Nombre, Una asociacdn puede tener un nombre, ques uliza para dese bia atualee de alain, Para que no haya stbigiedad en su sigsitica- do, se puede der una czeccén al nombre por medio de una fleebe que apunts ena direceia en la que se preende que se la el nombre, como se muestra, nla Figura SA. rec tat ents —\ oe sitio Figura 54: Nombres de asocincones Tlota: Aunque una asoclacin puede tener un nombre, normalmen- teno se necesta incu s se proporcionan explictamente nombres ce rol para fa asaciacién, Si existe mas de una asociacin eniro las mismas clases, 2s necesario usar nombres de asocieciin 0 bien ‘nombres en los exremos de la asociacion pare distinguiras. Si una ‘asociacén tiene més da un extremo sobre la misma clase, e8 nace ‘sario user nombres en el extremo de a asaciacién para cistinguiles. Si sélo hay una asaclacién ene un par de clases, algunos masela- {ores omitan las nombres, pero es mejor proporcionaros pera dejar claro el propésito de la asoctacion. Fol, Cuando unt clase patcia en una soci, dene us ol espetficn que juega en es else; unl es simplemente a cara que la clase de wn extremo 4e a asoeisein peseata al clase del oto exten. Se puede dar un nombre explicit al rol que juga un clase en una asociacin. El rol que jueg una lar ' | CcwsnwoS Reasons 71 se en una aociacié se denomina nombre de extremo (en UML se lamas rome de rod. En a Figura 53, una Pereona que jvegacl rl de enpeada ‘stl asociads con una Eps que juoga el rol de pats, Nota: La misma clase puede jugar el mismo o diferentes roles en ‘tras asociaciones. ‘Nota: Un atibuio puede verse como una asociacién de un solo ‘sentido en una clase, El nombre del abuta se carresponde con 1 ‘nombre ds extremo del exremo de la ascciacién mas alejado dela clase. swede nase agape rete de sare noire dh ‘Figura 3.3: Nombres de extremes te asoctacoa (nombres de rl), Multiplicidad, Uno asosiaién representa ana relacién estructura entre ob- jetos. Ea tuchas sitaciones de modelado, es irapotane sefalarcudntos ‘jetos pueden conectarse a wavs d= una instancia de una asosiacin. Este “ents” se denomina mulilicidad de ol de la asociacidn y representa un ango de enteros que especiican el tama posible del conjunto de bjetos telacionsdas. La mutipliciad se escribe como una expresién con un valor ‘minima y un valor méximo, que pueden ser iguaes; se atilizan dos puntos consecuvos para separar ambos valores. Cuando se indica una maiplicidod en un extrema de una asocacin, se esti especifcando cutosobjetos de la clase de ee extrem puede haber para cada objeto de a clase ene otro ex teem Se pede indica una maltipicidad de exaciamente uno (1),cer0 0 uno (0. .1), muchos (0. .*),0 uno o mds (2. .*)- Se puede dar un rango de en- {eras (como 2. 5) Tnolso se pede indicar un nimeraexscto (por ejem- lo, 3, lo que equrale a3. .3), Por ejemplo, en la Figura 5.6, cada objeto empresa iene como empleados ‘uno o mis objets persona (smuiplicisd 1. .*); eada objeto persona tiene como pan a exo o nis objetos empresa (moliplicidal *, To que equivalea 0. .*) 12 parte2__Mootito Exrucrnt co cwmnsos Rescowes 73 rtp i ‘que uno construya la forma bisica de ests tres relaciones ser toda To necesa- Saeed | rio para mostrar la semntice principal dels relaiones. Sin embargo, a veces ‘ es neces visualiar eee oes earcteriss, como la frei Pea Em conpues avg, dsrinnane, clases sean, otpos expsles eee de dependencias y generalizaciones. Estas y otras caracteristicas se pueden ex- sachin prea en UM pet se ta como concepts aanrads, Fig 5.6 top Lezdoyanss Las dependence geneizain ys axoiaciones son elemento esthios 6 yee denn lie del cae. En UML ess clacionesse estan oor {zamncer —Agregacion. Una ssciacgn normal ee dos lates representa un ec omens elmene ens diagramas de ses. Secret ud eatipals sds ans cles esd oezpinews eel i [Hporares mo vl sinser ningun mis importa eos A veces, se desea mode- lesenicesse Cuando seempiezaamodsara nivel de cj, y speciale cuando sta camo se lerusa relacién “‘vodo/parte”, en la cual una clase representa una cosa grande (el ener ‘baja con colaboraciones dindmicas de estos objetos, aparecerdn enlaces, que son Pong 3), que const de ements is pois (8 “parts Ex tp de re Gwenn de ssocaciones qe represen conexiones ene abe a avs de lac se denomina agregacin la cual representa una relacign del ipa “tiene ‘un, 08, un objet del too tine objeto de a parte. Fa eli, a agregaida «3 slountip especial deasciain ys especies atiaiendoa usa asociacie, norma un om vaco en spre del todo, com se muestra en fa Figura 57. speci mae forte] Figura: saci. Nota: ET significado de esta forma simple de agregacion es complo- tamente conceptual. El rombo vacio dstinue el loco" de la“parte", ri mas ni menos. Esto significa que fa agregactdn simple no cambia of significado de lz navagaciin a tavés de fa asociacion entre el todo y sus pares, riliga la existencia dl todo y sus partes. Para una forma més resticliva de la agregacion, véase la seccién sobra la ‘composicién en ef Capitulo 10. Otras caracteristicas Las dependenisssmgles, sn adorns, les goneralizaione es asocisiones con nombres, maliplicdadesy roles soa las carctersticas mis frecuentes que se necesitan al rear abstraciones, De hecho, para la mayoca de les modelos Jas que se pueden eaviar mensajes, Estilos de dibujo Las reaciones se muesiran en ls dagramas como lineas que van de un feono 1 ir. Las ina anon varios adoro, como lr flscas ls rombor, pa dic tingur distintstpos do elaciones. Normalmone, os modsladores elgen uno de ente eas dos estilos para bur ines 1 Lineas obliues con cualquier dgulo Se uliza un Unico segmeato a nos que sean necesirios varios aegmentos para eitar a tr iconos, 1 Lineaseailieas paral los Iados de papel. A menos que ua i= eaconecte 2 dosiconsalineados, linea debe dibujarse como una se- rie de segmentos de linea conectados con sngulasrecas. Ese es el cate que se lia pricipelente en este Ho, Con cuidad, la mayoria dels ences de ineas pueden evitase. Si es necesa~ rip um craze y hay ambigtedad acerca de co estn conecta is eas, se puede usr un peqefo aco para indicre crac. ap Figura 5.8 Simbolo de crue de ness. 78 Phare ave.s00 EFTRUCTIRAL BAS! Técnicas comunes de modelado (Seon en ion IRE kes seul cuca dest Un cipo comin de refacién de dependencia esl coneién entre na clase que uilza aca clase como parimetro de una operaci. ara model eta elcid ws 18 Hay que crear una dependensa que vaya dese ln clse con ln opercién Pasa fa clase utlizada come parmetro de la oper, Por ejemplo, la Figur 5.8 muesra un coajunto de clases extra de un siste- ‘ma que gestion lt asignacin de estudiantes y profesor a cursos en uns uni- versidad. Esta figura muestra ana dependencia desde PLanDe1Curso hacia 50, porque Curse se utiliza en as dos operacion ‘Sine proporsigns Ia signature completa de Ie aperacin, como an esta Ha, ‘ormalmene no se aecsia moszar la dependenci, porque el wso de fa clase yest expo en ln signatura. Sin embargo, a veces s deseard mostrar es , lo que es sia ala insrvcién friend deC+, i Cuwmmuos © Rruconet 78 SCR oe CaM cule Ne uutics ‘Al model el vocablaio de un sistem, se ropieza con clases que son sims: ‘esos en estructura ene compertaiento. Cas wa de ells se podeia ‘modeler como una shsraccin diferenradae independiente. Sin embargo, una orm mejor consists en exter as caracerfstrascomunes de esrctura © comporimientoycolocalas enclses mis generates deus que heeden fst ses espeializades. Para moder relciones de heen: 'm Dado un conjunto de ctses, hay que buscar responsabildudes, aba 105, operaciones comunes & dos 0 mis eases. 1 Hay que elevar esas responsabilidades, atbuios y operaciones eamu nes a una clase mis genera. Si es necesari, hay que crear una aveva clase cual se puedanesignarests elementos (pero con uidado de no inrocir demasiado ivele). 1 Hay que especifcar que la lases mis especies heredan del clase mds general a uravés de una elacin de generaizacion desde cada cae se especialzad a su pte. aoa me cae] [re Se) [mes aa mar aaah FR eae | Far Taare] [Aaa Figur 5.10: Relaciones de herenca Porcjmpl, la Figura 510 muestra un conjnto de clases extrafdas de un apli- cach finenciera.Poderos encontrar una reac de generlizacén deslecua- wroclases(CuentaCorriente, Accién, Bono y Propiadad) hacia Ta clase ms gene Valor es el pade, y CuentaCorriente, 76 Pama? asses Canto Copnio 12 Mooeuse Esrueruni. Basco ‘Aceign, Bono y Propiedad son tod hijs, Cada una de estas hij especalzadss es un tipo de Valor. Se puede ver que Va Lor inclaye dos operaciones: valoraccual e 2. Como Valor es su padre, CusntaCorriente, accién, Bono y Propiedad heedanestasdbs ope raciones,y por la misma rzsn,culesquiea ros aibutos y operaciones de \Vellor que pusdan estar oitdos en a fig Podemos ver ue los nombres Valor y vatoractual estén eseritas de forma lgeramente distinta a fos cos Hay un mova para esto. Cuando se coastruyen jrarqutas como la de I igus, « menudo encontaremos clases no hoja que son incompletas, simplemente son clases de las que nose de Sa que haya objeto. Esta clases se aman absracas. Ex UML se pede especificar que una clase es abstracts eseribiendo sv nombre ea cusiva, compen la clase VaZor. Esta conveacia se aplea alas operaciones como valoractual y signifies que dicha operacinproporciona una signa, porto dens est incompleay, por tet, debe ser implementada pra sgn mélodo aun aivel ms bajo de abstracsidn, De beeho, como seve en lt Figur, las cuatro class hijs inmedistas de Valor son eoaersts (es deci, ro soa astra na debe proporcionar ua implementacién sone: lade ia operacifa vel oraccual, ‘Las jerrquas de gneralizacidnfespecalzcion no tien por cut Finitrse a os iveles. De hecho, com seve en a Figura 5.10 es frecuene tener mds de os niveles de hereacia, italzequelo y AcciénCapital~ (Grande son amas his de fa cual, au we, es hij de Valor sor es, por lant, aa clase saz, ya que no tiene padres. AcciénCap!- 81 Pequetio y AccidnCepitalrande son ambas clases ha porque no tienen js. Rood lene un pe sf como is, por tanto noes un cla se ai aura clase ha. Aunque auf aa se muestra, tmbi se pusden creat clases que tengan més de un padre, Esto se denomina herencia mip y signifies que la else dads ene todos los arbutes, operaciones y aseiacnnes de todos ss padres. Poe puesto, no pusde aber ccs en unajrarquta de herenei; una deteai= nada clase no puede sr su propio atecesor, Modelado de relaciones estructurales [Al modelar con relaciones de dependenciao generalizacin, se puede estar ‘modelando clases que rpeesentan diferentes nlveles de importanci 0 dif Lee ecaiconse ore accel se psc Capito 10, Sipe 1 Cwinos Reucores 77 rentes niveles de absraccidn. Das una dependencia entre dos clases, una clase depende dels otra, peo a segunda no tiene conocimienio dela prime- 1, Bn una celacin de generalizacién entre dos clases, la clase hija hereda de su padre, pero el padte no tiene conocimientoexpetfico de sus cases hits. En definiiva las relaciones de dependencia y generalizaci6n son ssimétrias, (Cuando se modela con relaiones de asociacin, se estin modelanda class del mismo nivel. Dada una aociaidn ene dos cates, amb dependen dela ot kira NEO Stosobetanatis Figur 6.3: Estereipas, apenas 70 Mecanauos comes ‘Nota: Cuando se dafine un icone para un estereolipo debe tenerse ten cuenta el empleo dal color como apoyo para ofrecer une sutl se Fal visual (aunque el color dabe usarse de forma moderada), UN. permite usar cualquier forma en les iconos, y sla implementacién io permite, e508 iconas podrfan aparecer cod herramientas pimiivas para quo fos usuarios quo creen dlagramas UML tengan una paleia de elementos que son baslcos para ellos, relacionados con el voca- tulario de su dominio. Valores etiquetados “Todo clemento de UML ten su propio conjunio de propiedad: las clases tie- ex pombees,atibuos y operaciones as asocociones tienen aombresy dos © sms extremes (cada uno con sus propedades), et. Coa los exteretpos, se pueden adi ouevosclementos UML; con los valores eiquetsdos, se pueden ‘Mair nuowas popieddes a un esteeipo, ‘Se pueden defini eguetss que se apliqun a estercoips individuals, defor. ‘ma qe culguier elemento con ese esterotipo tenga ese valor etiguetao. Un ‘alr etiquetado no es lo mismo que un arbuto de una clase. Ea vez de ello se ude ver un valor eiqvtado como un metadato porque su valor se aplica& especiticacia del elemento, na asus instaeias. Por eemplo, com se muestra nla Fgura 66, se pei especfcar la capeidndnecesaria de un servi, © equerieque so ya uo nico servidar en un sistema vind esteeeoe eee coreate | eoantpode Sana eos reece Figura 66: Definiciones de estereotpes yeiguetas. 33 Pee? asses senso pec go ‘plas antose ‘ness fps rel samen Cae 2. fe Gounsnnrt | Scenes Sreidemes Move azo Eerueruna Bisco Los valores exquetads se clocan en nou asocindul elemento afta, coo ‘se mes en Ia Figura 67. Cada valor etigutad ncuye una cadema de camcte- reseoa ut nome (esque), ur separ (el smal =), yun valor el ela ‘tquew. el eocte voter erp | capactat=50 secon “errr Senideretngecn Figura 6.2: Valores etiquetados ota: Uno de los usos ms comunes da is valores etiquetados os especticar propiedades relevanles a la generacién de cddigo 0 la le plantearse unc varios diagramas tives en uo) 1m Hay que dara cada diagram un nombre significaivo que expres su objetivo cramente 1m Hey que mantener organizados los diagrams. Deben agrupase en paquets sen a vista 1 No hay que obsesionase cone formato de un diagram Hay que dejar que las herramietas yun Un digrama bien exrveurads 1 Secentraen comunicar un apecto dea vista de un sistema, 1 Contiene s6lo aquellos elementos esencales para comprender ese spect. 1 Proporciona detalles de fornia consistent con su nv! ds absteci (anuestra so auellos aos esenciales para su compresié). 18 Nos tan misimalista que dj de informar al eter sobre I semint- caimportant 112 pare? —‘Moos.aso Esrucruea Basco ‘Cusndo se dibue un dagraa Capitulo 8 a Hay gue le un nombe uecomungu pops. Lao > DIAGRAMAS DE CLASES 1 He ue odor ces pr iio rcs de es, woo 1 goin enn cpg cos woe 1 Hay que usar nots y colores como seals visules para maria ate cin sobre las cratristicas importantes Gel diagram, No bstante, colordebe usar con cudao, ya que algunas parsons son dala, +E color s6lo debe uilizarse para destacar algo, no para aportarinfoe: smacin esecil : Ene cua: 18 Mosca de colboraciones simples ee 1 Modelo de un eszema lgic de base de dats. 1 Ingenieria direct ever, - Los diagrams de clases son fos mis atlas en et tnodads de sistemas onettados objeto. Un digrama de clises rues an conjunta de else, in ‘erfaesy colaboraiones, asf como sus relcions, Los diagramas de clases se ulzan para modsar a vst de disefo esi de tun sistema. Esto incluye,prnefpalmets, xeelar el veabilaio det sistema, ‘odelaras enlaboraiones © modelaresquems Los diagramas de else amt bin son ase pra un par de dagramasrelacionodos os dagramas decom oventes y los diogramas de desplieaue : [Los iagramas de clases son importantes no silo gare visuals, specifica y ‘documentar modelos esveturals, sin imbign pre consi isterasejocu- Tables, apicando ingeniera ieee inversa Introduccién Cuando se constrye un eas, se comienza com un vcabulaio que inchye bo ‘ues de construsscn bcos, como parses sels, enna, pers cis 4, Estos elemenios son prinepalmente esas (a pres tienen un ‘iu una nchura yun ges, pero tumbiéntnen algo de comporaaient (los . Aifeetestpos de paredes pusden soponariferentes cargas, las poeras se abren 19 ao Pawre2 oos.ice Esrueruns Bisco yan, hay resiceons see la estes dt stele sn apoyo). Dehecho no ‘se pueden cosiderarindopedienomene esas crcelescas erucurles y de ‘compncanienta Mis ie, cuando uno consrye eu eas, debe considers co imeractian. Bi proces de disefar una casa po pre de-un suite implies e- ‘sumblirestosclementos de forma nica saisfaora que cumpla tas los oqui- sits fines y no furconsles del Fturo ingilin. Los dso que se crean rs visuoizar asa y especicar sus doles la egress const son ‘representicionesgrificas de exos elements y sus elaciones. ‘La consirucién de software coincide en muchas de eas earactersicas conta construc de we cas, excepto qué, dada fer del software, es posible eft blogues de consccn bisicos desde cere. Con UML. los dagta- smas de clases se emplean para vsulizar el aspecioesticn de esos bloques ¥ ss elasiones y para especifiar os detalles para constr, como se mus teaenla Figuea 2. ois Trai ' Se at 1 secant pe srt \ rcs pes ierige bo weno fi: | Smee Ses ‘a Sate line | a Srp ae ees Sinetaeray Senuecy erotic Serseate 4 : vepnraac igen cx | is ? ‘epereinc | pisiorilEmpteos Feed in on —— Figura 8: Un diggrama de clases, Gwin 8 Onsager cases 115 Términos y conceptos Las ones serene cee gaa 2 ‘Ses onto aeons se ‘scien ans Captane ty, Deira se ‘Seaton ona ap ts ‘eater ens Cepnsns 3) 1 ‘espa Cap 12 es ‘sbrtenas ss Ssauon oe Copii 2 Cepia 12 Un diagrama de claves es un digrama qu ruesrs wo conjunto de interfaces, colaborscionesy sus relaciones. Grficement, un diagrama de clases e una colecsg de neds y arcs. Propiedades comunes Un grams de classes ip esp agra y compart lis pope= Aadesconansl rst eos iagramas (una a contenido rife gue «ue proyeccin de an modelo) Lo qu isting un disgrama declases de Jos os tios de agra su cotenio petit. Contenide Las dagramas de lass contenen normlmentc los siguientes elementos Chass, Interfaces 1 Relacunes de dependenci, generaliascdn y wocicisn A goal que os demas diagramas, os agramas dase pasen conten n= tas yrestriciones. ‘Los diagramas de clases también pueden content paquets 0 subsistems, Jos eales se san pera sprupar los elementos de un modela en-prtes mis arandes. A veces se colocein instancias en los iagramas de clases, expe~ ‘ialmentecuande se quiets mostrar el tipo (psiblementedinsinico) de wna Nota: Los dagramas de componenies ys Gagramas de desplegue ‘son similares aos diagramas de clases, exceplo que en lugar d3 cae ‘8 contianen componentes y nods, respecivaments, Cerimwo® — Danas neecases 117 416 Pamve2 — Movetato EsraverunAL Bisco Usos comunes esvowsde Los iagramas de claves s ilza para modelu Ta vista e disefa esttca de erase un sistema. Esta vista soportaprincpameete los equsos funcionales den ‘dicuis ans ‘api sistema, los servicios que el sister debe proprcionar a sus usaros finals, Cuando se model vista de sf esttica de un stra, aormalente seu aarin Yoseiagramas de cases de una de estas es formas: 1, Para modelarel vosbulario de un sistema. El modelada del voeaulaia de un sistems implica tomar decisions sobre qué absieciones son pate del sistema en considera y cles can fuera de us Tints. Los diapramas de clases se uilian para specifica ests abstaccones y sus esponsailiddes 2, Para modelareolaboreciones simples [Una coaborsin es una sock de cases, meres yoos elements ue co Isbora pare proorciorar un comporarien' cagperalvo mayor que a sume de todas los elamenies, Por ejemplo, cuando se modela la series de una ran seein en un sistema dsribido, no puede cbservar simplemente una case tislada para comprendcr qué ocure. a vez deel, la seméticala evan acabo tun conjunta de clases que colahari ete sl. Los dngramas de clases se emplesn para visualzaryespciicar ext conjunto de clases ys eaciones, 3, Pars modelar un eaquema logic de base de des. ‘Se purde persaren un esuema como an plano ata el disco conceptual de una ‘se de dats. En chs daminios we neces almacenrinformain pessten- teen na based dats relaioal o en una base de datos oriental objeto. So sen modelaresquemas para esis bases de datos mediante dngramas de clases. Técnicas comunes de modelado (EPEC keer ronan acct [Ninguna clases encanta sila. Ea vez de elo, cada una taba encolabo- ‘cin con ots pare evar cab alguna semtica mayor que La asta coda clase individual, Por tanto pare de copturar el voeabulro del ssi, ‘sboeress rena oon sede, ‘rn 2 dete enaicaome tee también by que pres atencisn ala visulizscidn, expeifiacn,consnecién -ydocumentacdn del forma en que esis elemenios del vacsbulsro colorant ‘ents Estas eoboraciones se represntan con los dagramas de clases. Para meer una colboracids 1 Hay que identifica ts mecanismms que se quieren model. Un meca- nso representa una func ocomportariento de apace del sistema ‘gue scald modelando que resulta de a ineraccidn de una sociedad de clases, inetices y ts elementos. 1 Para cla mecoism, ay que identifica ls cass, interfaces y otras colabocariones que partcian en esa claborcin.Asimismo, hay que iden las eelaciones ene estas elemestos, 1 Hay que oar escenarios pra recore I ineraccidn entre estos cleen- tes, Durant el recon, se desctrirn pares del mods que fltaban 1 pate qu ean serintcamenteincorectas. 1 Hay qu asegurarse de rellenar estos elementos con su contenido Para las clases, hay que comerzar oteniendo un repanoequlbrad de ponsilidades Despés, conel tiempo, hay que convenir dias ena ‘utes y operaciones conse. Por ejerplo, la Figura 8.2 muestra un conju de clases extras de Ta impe~ ‘entacin de un robo autGnomo, L figura se entra en ls clases implicates nel mecanismn pra mover el robot aims de una trayeccria Aparee una cise abstacia (oeor) condos hjos coneretas, nocorbireccion y Ho~ torPrincipal. Ambas cases heredan ls cinco operaciones dela elas pa- fre, Motor. A so vez, las dos elses se muestan como pares d ou ease, Conductor. Lacase agente! ‘deaeuna ssoisciGn uno uno ‘on Conductor y una asoeisci6a unoa muchos eon SonsorCoLicion. No se muesran atiblos ni operaciones para Agent ePrayectoria, aunque st se indica sus responsabilidades, ‘Hay muchas mis clases implicadas en est sistema, pero este diagram mes tea slo aquelas abstracionesimpleadas directament en mover el robot. l- suns de estas mismas eases aparecerin en otros digramss. Por ejemplo, sunque nose muestre aqui, la ease Agent etvayectov a colabora al me ‘os con otras dos clases (Entorno y AgenteOb‘etivo) en un meesnisma 4ealto nivel para el manejo des bjetios conirapuesios que el robot puede ‘ener en un momento determinado,Andlogamentc, aunque tampaco se muests ‘qui, ls clases SensorColision y Conductor (y sus pate) colaboran con otrciaseAgenteFe11os) enun mecanismo responsable decomprobar 110 pame? Monee Esmcrann Bisco Gwwntoe _Ducrameoccuses 119 coosatemen iat dl abt esa ders ical aad ss al, pcs permit el mods del omportamient. En based do fs fotsboraones es Ga en an dag dire, proposes una vis ay cSas cpeacons gies cman convierten ea pds ri compen del sister deste ierentes pepsi seo resets lmscenaos spose ara molar sqm Tastee |" Sersetate_] _ ae 1a usin guts clases del made suo estado db cen lempo devi ds plains. Loree] 1 a gue crearun gram de css qe comer ens cases. Se pe a ‘ener Copia & de definicun conjunto propo de valores etquotados para cubric detalles ve “ cespecificas de bases de datos. Sf i; 1 Tay qucespaniros eles esses de esas aes. En geal < matin esto signifi espcificar los detalles de sus abuts y cent I aen- snes Seapine] Cin en lnsseciaones que esttran esas ses en sas eral 1 dees 1 Fay gue tescarptons comunesqcompanel defo fc de> ses ded, ls como arsicions ess y scans ono ee) Donde sea ees, deen res abrasion needs pai en | plifca In estructura ogi, ‘in aa 1 qu consider tambiel compoten des cles persis rang tena | tespatdendo ls psicioncs qo seen portant pare ees0 2 i Insts yninegrided de ox. En ener pe proper mae gor 82: dad de colaboraciones ines. ee 7 | joe sepsacin de interes, las repos del negocio estas aa mipu- | Inside onjnosde sos objets dbsin cease en po ! porencina de ess cles pists. (ocr eee ieee i 1 Done sex pos, hay ue sir beri ayen stoma nde iin en un st fe. simossuns Muchos estes se se modelo enn objeto prs, lo gt sig ERA Un bee eaten ae leasrioory pfiea que estos objets poiase almacenadesen uta base de datos con elf ha Cspot Ge poder reeuerarlospostesorment, Lamayoti dels veces se emplears una hase de datos elacional, una bse de datos orienta objetoso ura base de a= toshibrida objeto-elaciona prac alracenamnieno persisente, UML es apo ado pra moder esquemas lice de bases de datos, ai como basse datos Tsicas, Los diagrams de clases de UML son un supeteuajunt de los diagrams eni- tia ean (E-R), ana heramnizate de modela pa el dist fico de bo ‘de datos wilizada con mucha frecuencia. Mientras que fos dingramas ER. clisieos se centr slo en fs datos, ls diagramas de clases van un paso mis este libra, Aqui, el interés radica simplemente en master cémo se pueden modeler esquemas mediante UML. En a prctca, @l mode {o $e realizaré con estereotipas adaplados al ipo de base de datos (eacional u oientada a objtos) que se esté utlizando, 1a Figura 8.3 muestra un conjonco de clases exaids de un sistema éeinfor- rmacidn de una universidad. Esta igara es una excnsin de un dingrama de clases anterior, y ahora se muestra fs clases a un ave suficientemente ‘etalado para conser una base de des fisiez. Comenzando por In parte inferior inguirda de ete dram, se encuonzan ls clues Estudiante, yao Pez tosprtioe Sac ere Eine ‘ayegooone ‘doe ene Htooa.ace Esrucruna Bisco curso, Profesor. Hay una aociacida ene Estudiante y Curso, que expecta que los estudiantes asisten alos cursos. dems, cd estan pede astra cualquier nimero de cursos yeada curso puede ener cualquier mero de estudiantes. Este digtama mests las anbutos do las sis elses. Todos ls ribs Son Ae tpos primitives, Cuando se odela un esquems, generaimente una relaion ‘con cualquier tip no primitvo se modela mediante agregseonesexplicias en verde con abies. Drs de ests cases (Universidad y Departament) mustan vais ope raciones para manipula sus partes. Estas operaciones se inluyen pore son importantes para mantener letra de los datos afi oeiminar ux De partanento, parempl, tend algunos efectos en cadena). Hay as mi ‘has operaciones qu eprfan conser par estas dos clases y para ele0, ‘como consular los prereisitos de un cso ates de asignaie un estucant, Estas so as bien reglss de negocio en vee de operaciones para iteaidad di ta bse de datos, y por ello se deen colocara wn nivel mayor de absrecei ‘que ete enquem. meni ‘hecre So Depsramerin |, ‘eS hire ro Siete feats) Tee este erotic 10 eset cies tent sare Sieve [eee 1 So rent : ss | [sites eine om ese ba Eset cabechanae SS” roreentoniee yo] be To aude neo) acs ina [eeremen|| 1 aaa Figura 8.3: Modelado de un Esqueca 4s oporanis cairwasi esl apn tre aeooas Ingenieria directa e inversa EL modelado es important, pero hay que ecoedar que el peduco principal de un ‘equiped dss es software, co diagramas, Pr supesto le azn por aque se crean modelos es paraetregar, en el moment portinn cl software ade ge sisfga ls objetvs sirpeecambanes dels usuarios y le empresa Por «sta anes importa que ls mods que seceen ylasimplementaiones que se desplieguen se correspond ene sf, de forma ques minimiceoinclas se elimine el eoste de mantener sreroizads as modelos as implementciones ar alguns usos de UML, os meeos elias nunca se comespondern can sme, Por empl, sse medela un proceso de negocio con dagraas de ec- vides, muchas es setae modeladas inlucarn agente, aoa compu adores En cts casos, se mova sizemas cuyas pares sean, desde un nivel dodo esbsraci, uta pera de hardware (aunque a ovo nivel deabstaccin, seguro qos exe hardwaze puede comtener un computador y software embebido). En a mayori els cas, sin emrgo Jos medelos reads # coresponderia con eign, UML no esecfia ninguna comespandenca pacar con nngén fen ‘uj 2 progrumacn onenado abetcs, peo UML se diset0 can ets ates ‘pondeacis an ment, Eso es especialmente cero pra os diaramas de clases, ‘uyos contenido tien an cha eanespoadenla ca todos hos ensues oie ‘aos a objts imports nivel nda, como Jars, C4, Small, il, ‘Ads ObjestPascly Fare. UML tambin fv disfiad pra ceesponderse con ‘ua varieda de enguses comerisles basados en objets, como Visual Basi, ‘Nota: La eorrespondancia de UML a lenguajes de Implementacion ‘espectios para realizar ingeniera directa e versa cae fuera del a. cance de este fro. En la practice, se terminardutlizando estereot- os y valores elquetados acapiados el lenguale de programacion ‘que so osté ompleando. La ingenira directa ese] proceso de tansformar un modelo en eéigo ara ‘és de una corresponencia con un lengua de implementacn. La ingener recta pou una pétdide de infeemacién, porque fos modelos esetitos et UML so seminicamente mais ies que cuskuierlenguaje de programacion coven a objets actual, De hecho, éta es una de is zones principales por Jas que se necesitan nolo adem tel ogo. Las caratritas eset es com las colaboreciones, yes carateristicas de cotporiamieno, come as Jteracciones, pueden vsulirarse lament en UML, pro no an clara te apanirde simple ego este 22 Pane? oos.aao Esravrunas Bast ara hacer ingeniera directa com un diagama de clases 1 Hay gue identifica ls teplas para Ia comespondencio al Tengu © Jenuajes de implerentacnelegids. Esto es algo ques bark de for 1a global par el proyecto ola orgaizacin, 1 Segin a semana de os lengunjesescogidos, quis aya que esin+ sired usode cenas eorcerscas de UML. Por ejemplo, UML pet fe modelarherencia smile, pero Smalhalk: slo permite herenis Simple Se pode oar por prokibica los desarolladares el modelo tom ereniamilipl Uo que haces Is modelos dependents del en tse) odesatollrconstrecones espcfcas del Inguae de inle- ‘entaién para transforma estas caraeeristces ms eas (Io que hace Ta comespondencia mes compl) 1 Hay que usar valores etigactados paca guia. decisions demplemen- tacidn en el lenguaje destino, Esto se puede hacer a nivel de clases in- alvdaaes st es necesario un contol mas preciso. También se pus hace aun nivel mayor, como colaboraioneso paguets 1 Hay que wer herramients para generar in La Figua 84 ils un sella dagrama de cases que espcifica ure instan- clacidn del pn cadena de responsibil. Esta instancicion parila in- {oliersstesclases: Cliente, Gestoréventos y estorBventostul, Cliente y GestorEventos se representan como clases abstracts, ien- tras que GestortventosGUT esconreta Gestarventos tene la ope ‘ckdn que normalmente se experaen esiepatén (gest ionarSolicitus), tungue sean afiadda ds abuts privados para esi nstancac Gest Tieotcst wae Saige: Si ‘eters Figura 8.4 Ingeieta direct Cmrmac 8 vans os cases 123 ‘Todas ests clase especitican una comespondenca on Java, como se nota en suestereoipe,Usando una heramiens, ingenira dra dels clases de ete sigrama a Java es nmedit,Laingnieria direct de Incase Gest or Ever ‘tos prodceel siguiente cédigo. public abstract class Costorsventos { Gestoraventes sucesor: private Integer ideventosctval; private String origen; Gestorsventos {) public void gestionarsolicitud() () > Li ingenieria imveraa eel proceso de tansformar ego en un modelo‘ ae ‘és de una corespondensa con ua lenguaje de progeumscin especticn. Lain= eter iaversa produce un luvin de informacidn pane dela cua esta un vol de detalles bajo del que se necesita para consrir models ies. A mismo tempo, Ingenieria iners es incorplt. Hay wna pérdida de infor sacin cuando ae hace ingesira drt de modelo 3 eStigo, as! que 20 £2 puede receareompletamente un modelo a pride eitigo a menos que lashe- rraienas inclu informecin es los comentarios del cio fuente que vaya ssl dela semdntca del lenge de implement, Para hacer innit inves sobre un dagrama de clases: 1 Hay que identifica las reglas para a corespondencia desde el engua~ je lengajs de implementacion elgidas, Eso es algo qu se had de Toma lol para el proyecto ola organizacicn, ' Conuaa heranien, ay quince igo vbr el qu se desea apli- caingenefa ove, Hay qu sia hemamena para generar un maevo modelo o molar no exiene al que eeplid ingeiei erecta pre~ viament, No e azobleesperr que lingerie imversaproduzca un ‘nico motel cons a pani de un gran blaqu de ego. Habré que seleceionar uma pare del ig ycoestrel modelo desde a base 18 Con a heramients, hy querer un dagrama de css inpecrionando cl modelo. Porejemplo, puede eomenzar con ua o ms clases, desputs expan el diograma,consderandorlacons espeticasv ca clases ‘vecns. Se pueden mostrar uectarlosdetlsdel contenido esti rama de clases, sein sea neces, para comuniear so propésilo.

También podría gustarte