You are on page 1of 13
1p Eidos ENO Al rights reserved A.propésito de UML A.Introduccién El presente capltulo estd dedicada, por un lado, al origen del UML y, por ‘otro, a dos elementos vinculados a UML: - el RUP (Rational Unified Process o proceso unificada de desamollo de software), un proceso de desarrollo y evoluciin de programas; - la arquitectura MDA (Model Driven Architecture o arquitectura guiada por modelos), destinada a la realizaciin de sistemas, independientemente de la plataforma fisiea y de los aspectos tecnoligicos. B.EI origen del UML: Unified Modeling Language El UML esté basado en la orientaciin a objetos, sistema que vio la luz Mucho antes que el UML en el campo de los lenguajes de programacidn, Simula, el primer lenguaje orientado a objetos nacié en los aftos 1960 y ha id numercsos sucesores: Smalitalk, C++, Java o, mas recienternente, #. En un lenguaje de programacidn ta Gescripcién de los objetos se realiza de manera formal con una sintaxis rigurosa. Dicha sintaxis resulta llegible para los no programadores y dificil de descifrar para los programadorts. A di- ferencia de las midquinas, los humancs prefieren ulilizar lenguajes gréficos Para representar abstracciones, ya que deminan eve lipo de lenguaje con mayor facilidad y obtienen una visién de conjunto de los sistemas en mucha menos tiempo. Iniciackdn, ejemplos y ejercicios comegiias | 21] ‘Capitulo 2 En los afios 1980 y principios de 1990, las notaciones gréficas se multipli- can y, Muy a menudo, cada uno utiliza su propia notacién. En 1994, James Rumbaugh y Grady Booch deciden unirse para unificar sus notachomes, pro- cedentes de sus respectives métodos: OMT para James Rumbaugh y méto- do Booch para Grady Booch. En 1995, Yvar Jacobson decide unirse al equipo de los "tres amigos". EI equipo trabaja entonoes dentro de Rational Software. La versie 1.0 de UML sé publica én 1997. E) trabajo de evolucién de la otacion empieza a hacerse demasiado voluminose para sdlo tres personas y los tres amigos solicitan la ayuda del Object Management Group (OMG), Un consorcio de més de GOO sociedades y universidades qué trabajan en et campo de las tecnologias de! objeto, La OMG adopta la notacién UML en noviembre de 1997 en su versién 1.1 y crea una Task Force encargada de la evolucién del UML. Desde entonces, la Task Force ha actualizado UML en varias ocasiones. En marzo de 2003, ve ts luz ta versién 1.5, que ofrece la posiiilidad de desori= bir acciones gracias a una extensién de UML llamada Action Semantics o semantica de acciones, cuyo estudio sobrepasa los limites del presente ma- nual, En Io que se refiere a la versién 2.0, objeto de la presente obra, deta contaré ya con una versién definitiva cuando usted esté leyendo estas pagi- nas. La versién 2.0 constituye la primera evolucién importante desde la aparicién del UML en 1997, A ella, se han afiadido mumerosos diagramas y os diagramas existentes se han enriquecido con nuevas construcciones. (La figura 1 ilustra la evoluckin de UML y traca su origen y sus principales versiones con ayuda de un diagrama de actividad (capitulo 9), Figura 2.1 - Origen y principales versiones de UML Recorders que UML es una notackin destinada al modelado de sistemas y de procesas mediante objetos. UML no contiene una gula metodoligica, pero constituye un soporte de modelado, C.RUP: Rational Unified Process RUP es un proceso de realizacién o de evolucién de software enteramente basado en UML, ce ahi el intents de presentario en esta ebra, Esté consti- tuido por un conjunto de directivas que permiten producie software a partir del pliego de condiciones (requisites). Cada directiva define quiém hace qué ¥ en qué momento. Un proceso permite, por tanto, estructurar las diferentes. etapas de un proyecto informatica. (© Bsus EN Lr saps ves Tniciacion, ejemplos y ejercicios coregidas. EE (© Eines ENT AN sighs reanved Conceptos de Ia orientacién a objetos A. Introduccién El objetivo del presente capitulo es describir Ios diferentes conceptos y prin- cipios de la orientacsén a abjetos en los que se basa el lenguaje UML, ‘Conocerios resulta indispensable para comprender los elementos. utilizades ‘en los diagramas UML que abordaremos en los capitulos siguientes. En primer lugar, trataremos el concepte de objeto y después veremos odmo modelario en UML por abstraccién. Introduciremes la nocién de clases, representacién comin de un conjunto de objetos similares. Hablaremes después del principio de encapsulaciin, ocultackin de informa- clones intemas y propias al funcionamiento de! objeto. Describiremas las relaciones de especializackin y de generalizaciin que in- froducen las jerarquias de clases, la herencia, las clases concretas y abs- tractas y, posterionmente, abordaremos el polimorfismo, consecuencia direc- fa de la especializacién. Finalmente tratanemos la composicién de ebjetos para concluir con una no- cién mas especifica de UML, la especializacién de tos elementos del diagra- ma a través de los estereotipos. B.El objeto Un objeto es una entided identificable del mundo real, Puede tener una existencia fisica (un caballo, un libro} o no tenerla (un texto de ley). identifi- cab/e significa que el objeto se puede designar. ejemplos y ejercicios corregidos EI Bl articuls 2938 del cédigo de impuestos En UML todo objeto pose un conjunto de atributos (estructura) y un con- junto de métodos (comportamiento). Un atributo es una variable destinada a recibir un valor. Un métedo es un conjurto de insirucciones que toman valores en la entrada y modifican los valores de los atibutos @ producen un resultado, Incluso los objetos estiticos del mundo real son percibidos siempre como dindimices. Asi, en UML, un libro se percibe coma un objeto capar de abrirse él mismo en una pagina determinada. Todo sistema concebido en UML estd compuesto por objetos que interac- tian entre si y realizan operaciones propias de su comportamiento, Efempfoc Una manada de caballos es un sistema de objetos que interactia entre si, cada objeto posee su propio comportamiento. De esta forma, el comportamiento global de un sistema se reparte entre los diferentes objetes. En nuestro ejemplo bastard con hacer un parabelisme con e] mundo real para comprenderio, C.La abstracci6n La abstraccién es un principio muy importante en modetado. Consiste en tener en cuenta Gnicamente las propiedades pertinentes de un objeto para un problema concreto. Los objetos utilizados en UML son abstracciones del mundo real, = rr 1 Eo: EN» AV tgs Conceptos de la orientacién a objetos Siempio: Si nas inferesamos por fos cabalios en su actividad de canera, las propie~ dades aptitud, velocidad, edad, equilibria mental y casta de origen san pertinentes para dicha actividad y se tienen en cuenta, 5i nos interesamos por Ios cabalfos en su actividad de bestia de tira, fas propiedades edad, famafio, (verze y corpulencia son pevtinentes para diche actividad y se tienen en cuenta. ‘© La abstracciin es una simplificacién indispensable para el proceso de modelado, Un objeto UML es una abstraccién de un objeto de! mundo teal de acuerdo con las necesidades del sistema de Is cual s6io se tienen ven cuenta bos elamentos asancislas. D.Clases de objetos Un conjunto de objetos sierilares, es decir, con la misena estructura y com- portamiente, y constitwidas por log rmésmos siributes y méiodes, forma una clase de abjetos. La estructura y el compartamianta pueden entances defi- nirse en comin en el ambite de la clase, Todas Ios objetes de una clase, llamada también instancia de clase, se distinguan por tener una identidad propia y sus atributos les confiaren valo- res espectficas. Ejemptor €) conjunto ce cabalios consiituye Je clase Cabalio, que pasee /@ estructu- ra y el compartamienta descrites en (a figura 3.1. icacién, ejemplos ¥ ejercicios corregidas EI Figura 3.1 - La clase Caballo ES caballo Jorgelina es una Instancle de ia clase Caballo cuyos atributes y valores se ilustran en ia figure 3.2 Jorgelina: Caballo nombre = Jorgalina edad = @ L J tamafo = 1,72 peso = 550 Figura 3.2 - Ef cabatlo Jargelina El nombre de las clases se escribe en singular y esté formado siempre por un nombre precedida o seguido por uno © varios adjetives qué lo ccalifican. Dicho nombre es revelador de los objetns que farman ta clase 5 rr Beinn ENE sa ight esr Conceptos de la orfentacién a objetos E. Encapsulacién La encapsulacién consiste en ocultar los. atributos y métodos del objeto a ‘otros. objets. En efecto, algunos atributos y métodos tienen como Gnico ‘objetivo tratamientos intemos del objeto y no deben estar expuestos a los objelos exteriores. Una vez encapsulados, pasan a denominarse atributos y métodos privades de! objeto, La encapsulacién es una abstraccién, ya que se simplifica la representacién del objeto con relacién a fos objetos externos. Esta representacién simplifica- da esté fonmada por atributes y métodes pdblicos del objeto. La definicién de encapsulackin se realiza en el dmbito de ta clase. Los objets extemos a un objeto son por tanto las instancies de tas demds. clases. Ejemplo:. Al corer, Jos caballos efectian diferentes movimientos como pueden ser ‘eventar Iss patas, fevanter la cabeza o feventar le cole. Esos mavimientos Son internas af funcionamiento del animal y no tienen por qué ser conoci- dos en ef exterior, Son métedos privados. Las operaciones acceden a une parte interna def caballo: sus mdsculos, su cerebro y su vista. La parle inferna se representa en forma de alributos privados. Ef canjunto de atri- butes y métodos se ifustra en fa figura 3.3. Inicinckin, ejemplos y ejercicios corregkios: | 33] Capitulo 3 Figura 3.3 - La clase Caballo detallada © En Ja notacién UML, los atributes y métodas piiblicos aparecen precedi- dos del signo mas mientras. que los privados (encapsulades) aparecen precedidos del signa menos. F. Especializacién y generalizacién ‘Hasta el momento, cada clase de objetos se introduce de forma separada a Jas dems clases, Las clases pueden definirse tambign como subconjuntos de otras clases, pero éstos deben constituir siempre conjurtos de objetos ‘similares. Hablamos entonces de subclases de otras clases que, por tanto, constituyen especializaciones de esas otras clases. Ejomplo: La clase de fos cabalios es una subclase de (a clase de fos mamiferos. Ea UML 2 \e Eettions EM. rights ese Conceptos de la orientacién a objetos La generalizaciin es [a relacién inversa a la especializaciin. Si una clase es una especializacién de otra clase, ésta ultima es una generalizacién de la primera, Es su siiper-ciase. Efemplo: a clase ae fos mamiferos es una sdper-clase de fa clase de fos caballos. La retacién de especializacion puede aplicarse a varios niveles dando lugar a ia jeramula de clases. Efemplo: La clase de fos caballos es una subclase de Ja clase de fos mamiferos, ella misma subclase de 1a clase de fos animales. La clase de los perros es otra subclese de le clase de ios mamiferos. La jerarquia de clases correspon diente aparece representada en Ja figura 3.4. Capitulo 3 G.Herencia La herencia es la propiedad que hace que una subclase se beneficie de la estructura y del comportamiento de su sdper-clase. La herencia deriva del hecho de que las subslases son subconjuntos de las siper-clases. Sus ins- tancias. son asimismo instancias de la siperclase y, por consiguiente, ademds da la estructura y del comportamiento introducidas en la subclase, s/benefofan tarselle cls eetrucra:ysoempertarrbanke aide soeila per-ciase. Efempio: Tomames un sistema en el que fa clase Caballo es wna subeiase directa de la clase Animal. El cabailo se describe entonces mediante la combina- cide de la estructura y de! comportamiento derivados de las clases Caballo ¥ Animal, es decir, mediante Jos atributos edad, tamario, peso, nombre y casta asi como los métodos comer y corer. Esta bevencia se ilustra en la figura 3.5. ( Betaes En = ar ages serve ‘Conceptos de Is orientacién a objetos La herencia es una consecuencia de la especializacién. Sin embango, los: informéticas emplean mucho mas a menudo él términe hereda que espacia- fiza para designar la relacién entre una subclase y su siiper-clase, H.Clases abstractas y concretas ‘Si examinamos la jerarquia presentada en la figura 3.4 vernos que en ella ‘existen dos tipes de clases: = Las clases que poseen instancias, es decir, las clases Caballo y Perro, llamadas clases concretas. ~ Las clases que no poseen directamente instancias, como la clase Animal. En efecto, si bien en el mundo real existen caballos, perros, etc., el concept de animal propiamente dicho continud siendo abstracto, No- basta para definir completamente un animal. La clase Animal se llama clase abstracta, \La finalidad de las clases abstractas es poseer subclases concretas, éstas Sirven para factorizar atributes y métodos comunes a las subciases. Ejemplo. La figure 3.6 retama fa jerarquia detallando fas clases abstractes y Jas clases cancretas. En UML, e/ nombre de jas clases abstractas se escribe en carsiva, Iniclacion, ejemplos y ejercicios corregidos. | 27] lo 3 [eet Figura 3.6 - Clases abstractas y coneretas I. Polimorfismo El polimorfisma significa qué una ckase (generalmerte abstracts) representa lun conjunto formado por abjetos diferentes ya que dstos son instancias de subclases diferentes. Cuanda se llama a un método del misma nombre, esta diferencla se traduce en compertamientes distintoe (excepto en los casos en Jos que el métoda es comin y ha sido heredado de la sipar-clasa en las subcleses), Eiemaio Tomemas Js jerarquis de clases ifusteada on fa figura 2.7. EF métode acari- ciar tiene un comportamienta diferent segin si e/ cabslia es una instan- cla de CabalioSalvaje 0 de CaballoDomesticada. En a/ primar casa, ef cam- partamiento serd un recharo (que s¢ traducind en un encabritamienta), mientras que en el segundo e compartamiento serd une aceptacién. UM 2

You might also like