lunes, 24 de mayo de 2010

viernes, 7 de mayo de 2010

jueves, 6 de mayo de 2010

La agregación es una forma especial de asociación que modela una relación todo-parte entre un agregado (el todo) y sus partes. Es usada para modelar una relación de composición (o composicional) entre los elementos de un modelo (por lo que también se conoce como relación de composición, aunque una composición, como tal, tiene un significado distinto como reseñaré más adelante). Una Institución Educativa, por ejemplo, está compuesta de Profesores, Empleados y Auxiliares o Supernumerarios. Para modelar esto, el agregado (la Institución Educativa) tiene una asociación de agregación con sus partes constituyentes (Profesores, Empleados y Auxiliares). Ver figura 8.
Por su parte, una composición es una forma de agregación con un sentido de propiedad fuerte y un ciclo de vida coincidente de la parte con el agregado. En este caso, la multiplicidad del extremo agregado no puede exceder de uno, esto es, no puede ser compartida. Por ejemplo, un Automóvil está compuesto de una carrocería, cuatro llantas y un motor, y no es un Automóvil completo si falta alguna de las partes (un auto no arranca si el motor está dañado o no tiene motor del todo, o no tiene carrocería o le falta por lo menos una llanta; recíprocamente, una carrocería no constituye un auto por sí sola, ni las cuatro llantas, ni el motor).
La generalización, de otro lado, es una relación taxonómica entre un elemento más general y un elemento más específico. Este último es completamente consistente con el primero, el más general y puede contener información adicional. En programación (orientada a objetos), esta relación se conoce comúnmente como herencia. Esta relación también es usada para Paquetes, Casos de Uso y otros elementos
La asociación modela una conexión bi-direccional semántica entre instancias. En este contexto, semántica quiere decir que esa comunicación tiene un significado único que está dado por la cardinalidad y por el papel que se le asigne a dicha relación. Realmente una asociación representa una relación estructural entre instancias de dos clases distintas; ella constituye una conexión entre objetos de dos o más clases que existen durante algún tiempo. Por ejemplo, en la expresión “John Alexander Enseña una o más Asignaturas”, “John Alexander” es una instancia de la clase Profesor y “Asignatura” es una instancia de la clase del mismo nombre; entre tanto, “Enseña” es el Rol o Papel que “John Alexander” juega con el objeto Curso (todas las instancias de Profesor tienen ese papel con los objetos de la clase Asignatura); “uno o más” se refiere a la multiplicidad o cardinalidad de ese papel “Enseña” entre los objetos de las clases citadas.