Está en la página 1de 47

DISEÑO DE SISTEMAS

ORIENTADOS A OBJETOS

Análisis y Diseño Orientado a Objetos


utilizando UML
5. 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
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Clasificación


 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

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Relaciones


 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

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases

 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

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 Cada clase se representa enMotocicleta


un rectángulo con tres
color
compartimientos: cilindrada
 nombre de la clase velocidad máxima

 atributos de la clase arrancar()


 operaciones de la clase acelerar()
frenar()

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 Otros ejemplos:
lista
pila

primero()
apilar()
ultimo() desapilar()
añadir() cardinalidad()
quitar()
cardinalidad()

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 Asociación: expresa una conexión bidireccional entre


objetos
 UnaUniv.
asociación es una abstracción
de Murcia : Universidad Un enlace deAntonio
la relación existente
: Estudiante
en los enlaces entre los objetos

Universidad Estudiante
Una asociación

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 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:

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

marido
casado-con
Ejemplo:
0..1
mujer
0..1 Persona Compañía
nombre * trabaja-para nombre
s.s. dirección
emplea-a *
jefe 0..1

*
Administra

empleado

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 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:

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica


 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

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Notación Gráfica

 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:

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• 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
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Ejemplos


Window
scrollbar[2] : Slider
title : Header
body : Panel
 Asociación:

Window

1 1
1

scrollbar
2 title 1 body 1
Slider Header Panel

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Ejemplos


Member-of * Committee
Person *

{ subset }
1 Chair-of *
Represents an
incorporated entity.

worker Person employee employer Company


0..1
* *
0..1

boss

{Person.employer =
Person.boss.employer}

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Ejemplos


Polígono contiene Punto
Agregación 1
{ordenado} 3..*

Persona
*
Cuenta *

*
or
Empresa
Asociación excluyente
1

Usuario está-autorizado-en Estación


* *

Clase de asociación Autorización


prioridad
privilegios

camb_privil()

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Clases y Objetos


 Diagrama de Clases y Diagramas de Objetos pertenecen
a dos vistas complementarias del modelo

 Un Diagrama de Clases muestra la abstracción de una


parte del dominio

 Un Diagrama de Objetos representa una situación


concreta del dominio

 Las clases abstractas no son instanciadas


Análisis y Diseño Orientado a Objetos
utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Permite gestionar la complejidad mediante un
ordenamiento taxonómico de clases

 Se obtiene usando los mecanismos de abstracción de


Generalización y/o Especialización

 La Generalización consiste en factorizar las propiedades


comunes de un conjunto de clases en una clase más
general

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Nombres usados: clase padre - clase hija. Otros nombres:
superclase - subclase, clase base - clase derivada

 Las subclases heredan propiedades de sus clases padre, es


decir, atributos y operaciones (y asociaciones) de la clase
padre están disponibles en sus clases hijas

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 La Generalización y Especialización son equivalentes en
cuanto al resultado: la jerarquía y herencia establecidas

 Generalización y Especialización no son operaciones


reflexivas ni simétricas pero sí transitivas

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


Vehículo

Veihículo Terrestre Vehículo Aéreo

Coche Camión Avión Helicóptero

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 La especialización es una técnica muy eficaz para la
extensión y reutilización

Coche

Funcionando Estropeado

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 La noción de clase está próxima a la de conjunto

 Dada una clase, podemos ver el conjunto relativo a las


instancias que posee o bien relativo a las propiedades de la
clase

 Generalización y especialización expresan relaciones de


inclusión entre conjuntos

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Particionamiento del espacio de objetos => Clasificación
Estática

 Particionamiento del espacio de estados de los objetos =>


Clasificación Dinámica

 En ambos casos se recomienda considerar


generalizaciones/especializaciones disjuntas

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Un ejemplo de clasificación estática

Vehículo Aéreo

Avión Helicóptero

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Un ejemplo de clasificación dinámica

Coche

Funcionando Estropeado

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Extensión: Posibles instancias de una clase

 Intensión: Propiedades definidas en una clase


A
int(A)  int(B)

ext(B)  ext(A)

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Clasificación estática:

C0

ext(C0) =  ext(Ci)  completa


{ static }
ext(Ci)  ext(Cj) =   disjunta

C1 Cn

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Generalización


 Clasificación dinámica:

C0

ext(C0) =  ext(Ci)  completa


{ dinámica }
extt(Ci)  extt(Cj) =   disjunta en t
extt1(Ci)  extt2(Cj)    posiblemente
C1 Cn no disjunta en
diferentes
instantes

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos
• Diagramas de Clases - Generalización
 Ejemplo: varias especializaciones a partir de la misma
clase padre, usando discriminadores:
Comercial Militar

uso

Vehículo Aéreo

estructura

Avión Helicóptero

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Herencia Múltiple


 Se presenta cuando una subclase tiene más de una
superclase

 La herencia múltiple debe manejarse con precaución.


Algunos problemas son el conflicto de nombre y el
conflicto de precedencia

 Se recomienda un uso restringido y disciplinado de la


herencia. Java y Ada 95 simplemente no ofrecen
herencia múltiple

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Herencia Múltiple


 Ejemplo: Uso disciplinado de la herencia múltiple;
clasificaciones disjuntas con clases padre en hojas de
jerarquías alternativas Bípedo Cuadrúpedo

nro patas nro patas

Con Pelos Herbívoro

cobertura comida

Animal
Con Plumas cobertura
comida
cobertura Carnívoro

Con Escamas

Conejo

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual


 Un modelo conceptual explica los conceptos significativos en un dominio del
problema, identificando los atributos y las asociaciones, y es la herramienta más
importante del análisis orientado a objetos.

 Los casos de uso son una importante herramienta para el análisis de


requerimientos, pero realmente no están orientados a objetos. Un modelo
conceptual representa cosas del mundo real, no componentes del software. En los
diagramas UML se muestran conceptos (objetos), asociaciones entre conceptos
(relaciones) y atributos de conceptos (atributos).

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual


 La siguiente lista muestra un conjunto de conceptos idóneos para ser
incluidos en el modelo conceptual.
 Objetos físicos o tangibles
 Especificaciones, diseño o descripciones de cosas
 Lugares
 Transacciones
 Línea o renglón de un elemento de transacciones
 Rol de las personas
 Contenedores de otras cosas
 Cosas dentro de un contenedor
 Otros sistemas de cómputo o electromecánicos externos al
sistema

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual

 Organizaciones
 Eventos
 Procesos
 Reglas y políticas
 Catálogos
 Registros de finanzas, de trabajo, de contratos, de asuntos
legales
 Instrumentos y servicios financieros
 Manuales y libros

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual


 Ejemplo en desarrollo:

Modelo Conceptual
para el sistema de
Administración de
Proyectos.

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual


 Como se aprecia, la flecha que relaciona las clases asalariado y part-time
con recurso, representa una asociación de generalización (o bien, relación
“es un”).

 Sólo por simplicidad, se han omitido los atributos de cada clase. Sin
embargo, normalmente éstos se consideran en lo que se denomina
Diagrama de Clases de Alto Nivel , como por ejemplo:

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagramas de Clases - Modelo Conceptual


 Ejemplo en desarrollo:

Diagrama de Clases
de Alto Nivel para el
subsistema de
Administración de
Recursos.

Análisis y Diseño Orientado a Objetos


utilizando UML
5. Diseño de Sistemas Orientados a Objetos

• Diagrama Resumen AOO


 El siguiente diagrama resume las asociaciones entre los casos de uso,
modelo conceptual, escenarios y diagramas de secuencia:

Análisis y Diseño Orientado a Objetos


utilizando UML

También podría gustarte