INTERACCIÓN
ENTRE CLASES,
HERENCIA
FERNANDO SOLIS
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
Diseño de Sistemas Orientados a Objetos
• Diagramas de Clases
 El Diagrama de Clases es el diagrama principal para el
análisis y diseño.
 Un diagrama de clases presenta las clases del sistema con
sus relaciones estructurales y de herencia.
 La definición de clase incluye definiciones para atributos y
operaciones.
 El modelo de casos de uso aporta información para
establecer las clases, objetos, atributos y operaciones.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)
 Mecanismos de abstracción:
 Clasificación / Instanciación
 Composición / Descomposición
 Agrupación / Individualización
 Especialización / Generalización
 La clasificación es uno de los mecanismos de abstracción
más utilizados
• Diagramas de Clases - Clasificación
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 Los enlaces entre objetos pueden representarse entre las
respectivas clases
 Formas de relación entre clases:
 Asociación y Agregación (vista como un caso particular de
asociación)
 Generalización/Especialización
 Las relaciones de Agregación y Generalización forman
jerarquías de clases
• Diagramas de Clases - Relaciones
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 La clase define el ámbito de definición de un conjunto de
objetos
 Cada objeto pertenece a una clase
 Los objetos se crean por instanciación de las clases
• Diagramas de Clases
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Cada clase se representa en un rectángulo con tres
compartimientos:
 nombre de la clase
 atributos de la clase
 operaciones de la clase
Motocicleta
color
cilindrada
velocidad máxima
arrancar()
acelerar()
frenar()
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
lista
primero()
ultimo()
añadir()
quitar()
cardinalidad()
pila
apilar()
desapilar()
cardinalidad()
• Diagramas de Clases - Notación Gráfica
 Otros ejemplos:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Atributo: Generalmente son de tipos simples, ya que los
atributos de tipos compuestos se representan mediante
asociaciones de composición con otras clases.
 La sintaxis de un atributo es:
 nombre = valor_inicial {propiedad}
 donde:
nombre: si comienza con minúscula se considera un atributo de
objeto.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Asociación: expresa una conexión bidireccional entre
objetos
 Una asociación es una abstracción de la relación existente
en los enlaces entre los objetos
Universidad Estudiante
Una asociación
Univ. de Murcia : Universidad Antonio : EstudianteUn enlace
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Una asociación, en general, es una línea que une dos o más
símbolos. Pueden tener varios tipos de adornos, que
definen su semántica y características.
 Los tipos de asociaciones entre clases presentes en un
diagrama de clases son:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 Asociación binaria: se identifica como una línea sólida que une
dos clases. Representa una relación de algún tipo entre las dos
clases, que no exige dependencia existencial ni encapsulamiento.
Ejemplo:
• Diagramas de Clases - Notación Gráfica
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Asociación n-aria: es una forma de expresar una relación entre
tres o más clases. Se representa como un diamante del cual salen
líneas de asociación a las clases. Ejemplo:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Agregación: al comienzo de la línea que simboliza una
asociación se puede ubicar un rombo que simbolice una
asociación de composición o agregación compuesta (rombo
ennegrecido), lo que ocurre cuando la entidad determina la
existencia de la otra, o bien el concepto de agregación compartida
(rombo blanco), si los objetos pueden existir más allá de la
asociación. Ejemplo:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Generalización: la relación de generalización denota una
relación de herencia entre clases. Se representa dibujando un
triángulo sin rellenar en el lado de la superclase. La subclase
hereda todos los atributos y mensajes descritos en la superclase.
Ejemplo:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Ejemplo:
Compañía
nombre
dirección
Persona
nombre
s.s.
0..1
*
jefe 0..1
Administra
empleado
*
0..1
0..1
mujer
0..1
casado-con
marido
0..1
*
* trabaja-para
*emplea-a
*
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 Cada asociación puede presentar algunos elementos
adicionales que dan detalle a la relación, como son:
 Multiplicidad: describe la cardinalidad de la asociación. Cada
asociación tiene, en ambos sentidos, una multiplicidad: 1 indica
una ocurrencia; * indica 0 o más ocurrencias; 1..* señala una o
más; 1..40 indica de 1 a 40 ocurrencias; 3,5,8 indica que hay 3 ó 5
u 8 ocurrencias . Ejemplo:
• Diagramas de Clases - Notación Gráfica
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 Especificación de multiplicidad (mínima...máxima)
1 Uno y sólo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
 La multiplicidad mínima >= 1 establece una restricción de
existencia
• Diagramas de Clases - Notación Gráfica
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
 Nombre: describe el significado de la relación; se agrega al
nombre una punta de flecha que indica en qué sentido se debe leer
la frase para interpretarla adecuadamente. Ejemplo:
• Diagramas de Clases - Notación Gráfica
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Rol: identificado como un nombre al final de la línea, describe la
semántica de la relación en el sentido indicado. Ejemplo:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Atributos: como consecuencia de una relación puede necesitarse
almacenar cierta información de detalle. Ésta se denota como una
clase relacionada por una línea punteada a la relación. Ejemplo:
considerar una relación entre Muro y Ventana, la cual tiene como
detalle un objeto de la clase Posición; cabe notar que este objeto no
podría tomarse como atributo de ninguna de las clases anteriores,
ya que el contexto de su existencia está dado precisamente por la
relación entre las dos clases.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Notación Gráfica
 Obvservación (comentario, nota): Es un comentario dentro de un
diagrama, es decir aclaraciones a éste. Puede estar relacionado con
uno o más elementos en el diagrama mediante líneas punteadas. Se
representa mediante un rectángulo con su borde superior derecho
doblado..
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel
Slider Header
Window
1
2
1
2
scrollbar
1
1
1
1title
Panel
1
1
1
1body
 Asociación:
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Ejemplos
Person Committee** **
Member-of
1 *1 *Chair-of
{ subset }
{Person.employer =
Person.boss.employer}
Represents an
incorporated entity.
CompanyPerson
*
0..1
worker
*
boss
0..1
0..1
*
employer
0..1
employee
*
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS UTILIZANDO UML
• Diagramas de Clases - Ejemplos
Asociación excluyente
Clase de asociación
Agregación
Persona
Cuenta
*
*
*
*
Empresa
1
*
1
*
or
Polígono Punto1
3..*
1
3..*
{ordenado}
contiene
EstaciónUsuario
** **
Autorización
prioridad
privilegios
camb_privil()
está-autorizado-en

INTERACCIÓN ENTRE CLASES, HERENCIAS

  • 1.
  • 2.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML Diseño de Sistemas Orientados a Objetos • Diagramas de Clases  El Diagrama de Clases es el diagrama principal para el análisis y diseño.  Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia.  La definición de clase incluye definiciones para atributos y operaciones.  El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones.
  • 3.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  El mundo real puede ser visto desde abstracciones diferentes (subjetividad)  Mecanismos de abstracción:  Clasificación / Instanciación  Composición / Descomposición  Agrupación / Individualización  Especialización / Generalización  La clasificación es uno de los mecanismos de abstracción más utilizados • Diagramas de Clases - Clasificación
  • 4.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  Los enlaces entre objetos pueden representarse entre las respectivas clases  Formas de relación entre clases:  Asociación y Agregación (vista como un caso particular de asociación)  Generalización/Especialización  Las relaciones de Agregación y Generalización forman jerarquías de clases • Diagramas de Clases - Relaciones
  • 5.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  La clase define el ámbito de definición de un conjunto de objetos  Cada objeto pertenece a una clase  Los objetos se crean por instanciación de las clases • Diagramas de Clases
  • 6.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Cada clase se representa en un rectángulo con tres compartimientos:  nombre de la clase  atributos de la clase  operaciones de la clase Motocicleta color cilindrada velocidad máxima arrancar() acelerar() frenar()
  • 7.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML lista primero() ultimo() añadir() quitar() cardinalidad() pila apilar() desapilar() cardinalidad() • Diagramas de Clases - Notación Gráfica  Otros ejemplos:
  • 8.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Atributo: Generalmente son de tipos simples, ya que los atributos de tipos compuestos se representan mediante asociaciones de composición con otras clases.  La sintaxis de un atributo es:  nombre = valor_inicial {propiedad}  donde: nombre: si comienza con minúscula se considera un atributo de objeto.
  • 9.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Asociación: expresa una conexión bidireccional entre objetos  Una asociación es una abstracción de la relación existente en los enlaces entre los objetos Universidad Estudiante Una asociación Univ. de Murcia : Universidad Antonio : EstudianteUn enlace
  • 10.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Una asociación, en general, es una línea que une dos o más símbolos. Pueden tener varios tipos de adornos, que definen su semántica y características.  Los tipos de asociaciones entre clases presentes en un diagrama de clases son:
  • 11.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  Asociación binaria: se identifica como una línea sólida que une dos clases. Representa una relación de algún tipo entre las dos clases, que no exige dependencia existencial ni encapsulamiento. Ejemplo: • Diagramas de Clases - Notación Gráfica
  • 12.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Asociación n-aria: es una forma de expresar una relación entre tres o más clases. Se representa como un diamante del cual salen líneas de asociación a las clases. Ejemplo:
  • 13.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Agregación: al comienzo de la línea que simboliza una asociación se puede ubicar un rombo que simbolice una asociación de composición o agregación compuesta (rombo ennegrecido), lo que ocurre cuando la entidad determina la existencia de la otra, o bien el concepto de agregación compartida (rombo blanco), si los objetos pueden existir más allá de la asociación. Ejemplo:
  • 14.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Generalización: la relación de generalización denota una relación de herencia entre clases. Se representa dibujando un triángulo sin rellenar en el lado de la superclase. La subclase hereda todos los atributos y mensajes descritos en la superclase. Ejemplo:
  • 15.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Ejemplo: Compañía nombre dirección Persona nombre s.s. 0..1 * jefe 0..1 Administra empleado * 0..1 0..1 mujer 0..1 casado-con marido 0..1 * * trabaja-para *emplea-a *
  • 16.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  Cada asociación puede presentar algunos elementos adicionales que dan detalle a la relación, como son:  Multiplicidad: describe la cardinalidad de la asociación. Cada asociación tiene, en ambos sentidos, una multiplicidad: 1 indica una ocurrencia; * indica 0 o más ocurrencias; 1..* señala una o más; 1..40 indica de 1 a 40 ocurrencias; 3,5,8 indica que hay 3 ó 5 u 8 ocurrencias . Ejemplo: • Diagramas de Clases - Notación Gráfica
  • 17.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  Especificación de multiplicidad (mínima...máxima) 1 Uno y sólo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)  La multiplicidad mínima >= 1 establece una restricción de existencia • Diagramas de Clases - Notación Gráfica
  • 18.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML  Nombre: describe el significado de la relación; se agrega al nombre una punta de flecha que indica en qué sentido se debe leer la frase para interpretarla adecuadamente. Ejemplo: • Diagramas de Clases - Notación Gráfica
  • 19.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Rol: identificado como un nombre al final de la línea, describe la semántica de la relación en el sentido indicado. Ejemplo:
  • 20.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Atributos: como consecuencia de una relación puede necesitarse almacenar cierta información de detalle. Ésta se denota como una clase relacionada por una línea punteada a la relación. Ejemplo: considerar una relación entre Muro y Ventana, la cual tiene como detalle un objeto de la clase Posición; cabe notar que este objeto no podría tomarse como atributo de ninguna de las clases anteriores, ya que el contexto de su existencia está dado precisamente por la relación entre las dos clases.
  • 21.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Notación Gráfica  Obvservación (comentario, nota): Es un comentario dentro de un diagrama, es decir aclaraciones a éste. Puede estar relacionado con uno o más elementos en el diagrama mediante líneas punteadas. Se representa mediante un rectángulo con su borde superior derecho doblado..
  • 22.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Ejemplos Window scrollbar[2] : Slider title : Header body : Panel Slider Header Window 1 2 1 2 scrollbar 1 1 1 1title Panel 1 1 1 1body  Asociación:
  • 23.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Ejemplos Person Committee** ** Member-of 1 *1 *Chair-of { subset } {Person.employer = Person.boss.employer} Represents an incorporated entity. CompanyPerson * 0..1 worker * boss 0..1 0..1 * employer 0..1 employee *
  • 24.
    ANÁLISIS Y DISEÑOORIENTADO A OBJETOS UTILIZANDO UML • Diagramas de Clases - Ejemplos Asociación excluyente Clase de asociación Agregación Persona Cuenta * * * * Empresa 1 * 1 * or Polígono Punto1 3..* 1 3..* {ordenado} contiene EstaciónUsuario ** ** Autorización prioridad privilegios camb_privil() está-autorizado-en