Diagrama de Clases Ingeniería de Software 2007-01 Andrés Felipe Muñetón Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín Sam Pippin ¿Qué Qué tienen en comú común Merry, Sam, Frodo y Pippin? Merry Frodo Mhhh….¿qué características tienen en común? Son pequeños, tienen orejas puntiagudas, tiene grandes pies, tienen el pelo rizado, hablan Hobbítico… LOS CUATRO SON HOBBITS!!! Arwen Légolas ¿Qué Qué tienen en comú común Légolas, golas, Arwen y Galadriel? Galadriel Los tres son inmortales, no envejecen, son bellos….. LOS TRES SON ELFOS Clase Descripción de un conjunto de objetos que comparten los mismos atributos, operaciones y relaciones. ¿Atributos? ¿conjunto de Objetos? ¿Relaciones? ¿Operaciones? ¿Recuerda a Merry, Frodo, Pippin y Frodo? Conjunto Son pequeños, tienen orejas puntiagudas, tienen grandes pies, el pelo rizado, hablan Hobbítico Objetos que comparten atributos ¡Y las operaciones y las relaciones qué! Más adelante las veremos. veremos. Por ahora, ahora, notemos que Merry, Frodo, Pippin y Frodo se ajustan al concepto de Clase Así se representa una clase: ac l e d e Nombr lase Atributos de la clase Clase: un rectángulo dividido en 3 partes Ope r clas aciones e d La representación de una clase es un rectángulo dividido en 3 segmentos. En el primero se ubica el nombre de la clase, en el segundo los atributos o propiedades y en el tercero las operaciones de la clase. e la ¿Recuerda a Merry, Frodo, Pippin y Frodo? Conjunto de Hobbits Clase Hobbit ¿Por qué la clase se llama Hobbit y no Hobbits? ¿De dónde salieron esos atributos?, no son los mismos que dijimos antes: pelo rizado, pies grandes, etc. Se acostumbra que el nombre de la clase sea en singular, singular a pesar de que represente a un conjunto de elementos. La clase Hobbit funciona como una fábrica de Hobbits. A partir de ella se pueden crear diferentes hobbits con diferentes características: diferente nombre, color de pelo, largo de pelo, estatura y tamaño de pies (el idioma ya tiene un valor, el Hobbitico). ¿Podríamos crear diferentes Hobbits si la clase Hobbit tuviera como atributos: pelo rizado, orejas puntiagudas, etc.? Pero en algún lado debe ir esto!!!, o sino, ¿cómo sabré que se trata de un hobbit? Qué tal si agregamos una operación a la clase Hobbit! La operación dibujarme() dibuja Hobbits de acuerdo al valor de cada característica de la clase Hobbit. Hobbit hobbitJeremy = (‘Jeremy’, ‘café’,’mediano’,’1 mt’,’grandes’,’Hobbitico’) objeto Nombre del Hobbit hobbitJeremy.dibujarme() Dibuja un Hobbit con las características indicadas. dibujame() dibuja un Hobbit de acuerdo al lenguaje de programación que se esté utilizando. Otros ejemplos de Clases ¿? Conjunto de Articulos Con título, tema y resumen Conjunto de Autores con identificación y nombre RELACIONES Se decidió que estos eran los únicos atributos que nos interesaban para los elfos. La clase Elfo tiene algunos atributos que vimos en la clase Hobbit. Su operación también es la misma. Cuando hablábamos de objetos con caracerísticas similares, los integramos en una clase. ¿Podemos hacer lo mismo en este caso?, ¿Podemos buscar una clase que integre las características comunes de los Hobbits y los Elfos? Relación de GENERALIZACIÓN Clase General Las características comunes ahora están en una clase General llamada HabitanteTierraMedia; las características particulares permanecen en las clases Especí Específicas. ficas. Símbolo de la generalización Clase Específica Espera, ¿por qué la operación dibujarme está en todas las clases? La característica tamañoPies de los hobbits, permanece en la clase Hobbit. R:// POLIMORFISMO!! (Programación Orientada a Objetos) Relaciones - Generalización • La clase especializada comparte la estructura y comportamiento de la clase general. • La clase especializada puede incluir nuevos atributos y operaciones. • La clase general puede ser reemplazada por la especializada, pero la clase especializada no puede ser reemplazada por la general… Esta relación también es conocida ¿por qué? como Herencia: ClaseEspecializada hereda los atributos y operaciones de ClaseGeneral RELACIÓN DE ASOCIACIÓN Entre los elementos que conforman un sistema debe existir relaciones!!! ¿Qué otras clases hay en el señor de los anillos? RELACIÓN DE ASOCIACIÓN * muchos asociación asociación * Tanto los Elfos como los Hobbits pueden tener muchas armas. Tanto los Elfos como los Hobbits tiene uno sólo vestido. Los Elfos pueden tener muchos caballos. Actividad 1. Ingrese a www.eltiempo.com 2. Navegue a través de las diferentes secciones e ingrese a algunos artículos. 3. Regístrese como usuario (parte superior derecha de la pantalla). 4. Haga algún comentario en uno de los artículos. 5. Califique los comentarios de otras personas que hayan participado con sus comentarios. 6. Diseñe un diagrama de clases para www.eltiempo.com