2. 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.
3. 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
4. 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
5. 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
6. 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()
7. 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:
8. 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.
9. 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
10. 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:
11. 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
12. 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:
13. 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:
14. 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:
15. 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
*
16. 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
17. 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
18. 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
19. 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:
20. 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.
21. 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..
22. 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:
23. 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
*
24. 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