Dirección General de Servicios de Cómputo Académico (DGSCA) Modelado de Sistemas con UML...

66
Dirección General de Servicios de Cómputo Académico (DGSCA) Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo A. Sánchez Rodríguez

Transcript of Dirección General de Servicios de Cómputo Académico (DGSCA) Modelado de Sistemas con UML...

Page 1: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Dirección General de Servicios de Cómputo Académico (DGSCA)

Modelado de Sistemas con UML

Septiembre, 2007

Integrado por: Rebeca Núñez AlonsoEduardo A. Sánchez Rodríguez

Page 2: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Representan las características estructuralesEl diagrama de clases muestra las clases que hay en

el sistema y las relaciones estáticas (asociación y agregación) entre ellas.

Se consideran la columna vertebral de los métodos OO

DIAGRAMA DE CLASES

Page 3: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Elementos y relaciones utilizados.

• Un diagrama de Clase contiene:» Clases.» Interfaces.» Relaciones de dependencia, generalización, asociación y realización.

DIAGRAMA DE CLASES

Page 4: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clase

Una clase es una descripción de un grupo de objetos con propiedades comunes (atributos), comportamiento común (operaciones) y relaciones comunes con otros objetos (asociaciones y agregaciones)

» En análisis, representa una entidad conceptual del dominio del problema.

» En diseño, es una entidad detallada que representa una parte de la solución.

» En código, es un bloque de código

DIAGRAMA DE CLASES

Page 5: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clase

Una clase es una abstracción en la que ella:» Enfatiza características relevantes

» Suprime otras características

Una clase es una definición abstracta de un objetoDefine la estructura y comportamiento de cada objeto

en la claseSirve como una plantilla para crear objetos

DIAGRAMA DE CLASES

Page 6: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Una clase es una descripción de un grupo de objetos con Los diagramas de clases se pueden construir desde tres perspectivas:

» CONCEPTUAL. Representa los conceptos del dominio que se está estudiando. Se dibujan sin importar el software con que se implementarán por lo que son independientes del lenguaje. Pueden ubicarse en el contexto del negocio (modelado de negocio) o del sistema. (Análisis)

» ESPECIFICACIÓN. Enfocados al software en su filosofía pero no en su implementación (Semántica de acción ). (Diseño)

» IMPLEMENTACIÓN. Se expone por completo la implementación. (Código)

Perspectivas

DIAGRAMA DE CLASES

Clase

Page 7: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Cómo identificar las clases en un problema

Las clases surgen de la terminología de un área de conocimiento. Hay que prestar atención a:

» Los sustantivos (cosas, personas, hechos) ya que pueden convertirse en clases del modelo

» Los verbos que pueden ser operaciones de las clases o en clases por sí mismas

» Los atributos de una clase también se pueden identificar por sustantivos específicos que pueden tomar algún valor

DIAGRAMA DE CLASES

Clase

Page 8: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Cómo nombrar las clases

El nombre de una clase debe ser un nombre singular que caracterice de la mejor forma a la abstracción

» La dificultad en el nombramiento de una clase puede indicar que una abstracción está pobremente definida

» Los nombres deben venir directamente del vocabulario del dominio

Una guía de estilo debe dictar convenciones de nombres para clases. Ejemplo:

» Las clases se nombran usando sustantivos singulares» Los nombres de clases empiezan con una letra mayúscula (JAVA)» No se usan palabras subrayadas. Los nombres compuestos de

palabras múltiples se ponen juntas y la primera letra de cada palabra adicional se escribe en mayúscula. Ejemplo: alumno, profesor, sistemaCobro

DIAGRAMA DE CLASES

Clase

Page 9: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Notación

Una clase se comprende de tres secciones» La primera sección contiene el nombre de la clase» La segunda sección muestra la estructura (atributos)» La tercera sección muestra el comportamiento (operaciones)» Las secciones segunda y tercera pueden suprimirse si no es

necesario que sean visibles en el diagrama

profesor

nombreempID

crear( )guardar( )borrar( )modificar( )

profesor

nombreempID

profesor

crear( )guardar( )borrar( )modificar( )

profesor

profesor

DIAGRAMA DE CLASES

Clase

Page 10: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Ejemplo

a + b = 10

ClaseCurso

EstructuraNombre

UbicaciónDías ofrecidos

CréditosHora inicio

Hora término

ComportamientoAgregar un alumnoBorrar un alumno

Obtener lista del cursoDeterminar si está lleno

ATRIBUTOS OPERACIONES

DIAGRAMA DE CLASES

Page 11: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

automovil

modelo = Mondeomarca = Fordplacas = 564JKNserieMotor = 676565BJN1año = 2002

encender()verificar()cargarGasolina()afinar()cambiarPropietario()vender()

Mari G. Juan H. Susy L.

DIAGRAMA DE CLASES

Page 12: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, relaciones y semántica

Un atributo es una propiedad de una clase identificada con un nombre, que describe un rango de valores que pueden tomar las instancias de la propiedad

» Una abstracción de un tipo de dato o estado que puede incluir un objeto de la clase

Una operación es la implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que muestre un comportamiento

» Es una abstracción de algo que se puede hacer a un objeto y que es compartido por todos lo objetos de la clase

DIAGRAMA DE CLASES

Clase

Page 13: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

¿Cuántas clases hay?

DIAGRAMA DE CLASES

Page 14: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Ejemplo (2)

curso

nombreubicaciondiasOfrecidoscreditoshoraIniciohoraFin

agregarAlumno()borrarAlumno()obtenerLista()estaLleno()

NOMBRE DE LA CLASE

ATRIBUTOS

OPERACIONES

DIAGRAMA DE CLASES

Notación

Page 15: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Notación

DIAGRAMA DE CLASES

NotaciónExisten dos notaciones posibles:

Page 16: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

AbstracciónOmitir las propiedades y acciones de un objeto y

dejar sólo aquellas que nos interesan» Por ejemplo: cuando se estudia el cuerpo humano podemos

abstraer diversos subsistemas (respiratorio, óseo, nervioso, etc.)

Conceptos

DIAGRAMA DE CLASES

Page 17: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clasificación de Clases.Una variante de clase, es la Clase abstracta. Ésta a diferencia de una clase

normal, no pueden ser instanciadas directamente pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación).

La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.

Una clase abstracta se denota con el nombre de la clase y de los métodos con letra "itálica" o “cursiva”.

Gráficamente se representan como una clase pero el nombre emplea letras cursivas, como se muestra en la figura de “Clase abstracta”.

DIAGRAMA DE CLASES

Page 18: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clasificación de Clases.Cuando los objetos de una clase tienen uno o más procesos o hilos que constituyen flujos de control independientes se le llama Clase Activa.

Gráficamente una Clase Activa se representa como una clase pero con los lados del rectángulo más obscurecidos

DIAGRAMA DE CLASES

Clase1

+Atributo1+Atributo2

+Operacion1()+Operacion2()

Page 19: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

ClasificaciónLos objetos con la misma estructura y

comportamiento son agrupados en clases

Conceptos

instrumentoMusical

cuerda metalpercusion

contrabajo violin corno trombon

DIAGRAMA DE CLASES - Características

Page 20: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

JerarquíaUn sistema se compone de subsistemas (más

pequeños) relacionados que tienen a su vez propios subsistemas, y así sucesivamente.

Conceptos

derbyprocesador memoria

medioTransporte

automovil

Estructural De tipos

“es un”

“es un”

computadoraPersonal

teclado“es parte de” cpu monitor

“es parte de”

DIAGRAMA DE CLASES - Características

Page 21: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

MensajesPara que los objetos de un sistema trabajen en

conjunto, un objeto (cliente) envía a otro un mensaje para realizar una operación y el objeto receptor (proveedor) ejecutará la operación

» Un mensaje es la petición de un servicio. Ej: Un objeto le puede mandar un mensaje a otro para que le haga un servicio.

» La invocación de una operación es el tipo de mensaje más común

Conceptos

torreControl avionmensaje

solicitaPermisoAterrizar

DIAGRAMA DE CLASES - Características

Page 22: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Mensajes (2)Un mensaje es una función de llamada (con nombre,

parámetros y un resultado)» El nombre, tipos de parámetros y tipo del resultado se denomina

firma (signature)» El conjunto de firmas de todas las operaciones sobre un objeto se

denomina protocolo

Conceptos

torreControl avion

Si/no: permisoAterrizar (idAvion: String, hora:dateTime, origen:String, ...)

DIAGRAMA DE CLASES - Características

Page 23: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

EstereotiposEstereotiposUn estereotipo es un elemento que extiende o

clasifica las característicasSe utilizan para especificar la semántica de

elementos ya definidos en UMLSon elementos generalizables (se pueden

especializar o generalizar)Se pueden especificar en una clase encima o delante

del nombre de la claseCada clase puede tener como máximo un estereotipoEstereotipos comunes (para el diseño de soluciones)

» Entity (Bussines)» Boundary» Control

DIAGRAMA DE CLASES - Características

Page 24: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Los Estereotipos se muestran en la parte donde se escribe el nombre de la clase entre << >>

Se pueden definir los estereotipos según convenga. Otros ejemplos:

» Table, Page, HTML, etc.

√ Ejemplos de estereotipos definidos por el usuario: <<controlador>>

Tomar decisión, mantener estado.

<<tener información>>Saber ciertos hechos, ejemplo: acerca de conceptos, reglas.

<<estructurar>>Organizar y presentar objetos, ejemplo: : listas, colecciones, pilas, etc.

<<coordinador>>Reaccionar a eventos, delegar.

Estereotipos (2)

DIAGRAMA DE CLASES - Características

Estereotipos (2)

Page 25: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Entity

Estereotipo <<entity>>Una clase entidad modela información y

comportamiento asociado que es generalmente de larga vida (es persistente, en algún momento va a quedar almacenado)

Se obtienen de los sustantivos del problemaSon de alto nivel (perspectiva conceptual) pero

también puede necesitarse para las tareas internas del sistema ya que corresponden a las estructuras de datos (mapeo a Base de Datos)

Definen el comportamiento para manipular esta información

DIAGRAMA DE CLASES - Características

Estereotipos (3)

Page 26: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Entity

Estereotipo <<entity>>Representan los objetos de negocio (análisis)Las operaciones se caracterizan por:

almacenar y obtener información crear y remover objetos el comportamiento cambiante si el objeto entidad cambia

Para información persistente y el comportamiento acoplado a ella

Ejemplos de clases entity (entidad) » Curso» Horario» Catalogo de Asignaturas» Producto» Cliente

DIAGRAMA DE CLASES - Características

Estereotipos (4)

Page 27: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

<<entidad>>Depositarartículo

Nombre: cadenavalor depositado: ECUTotal diario: entero

Crear ()Obtener_valor (entero)Incremento ()

<<entidad>>Lata

<<entidad>>Botella

<<entidad>>Caja

DIAGRAMA DE CLASES - Características

Estereotipos (5)

Page 28: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

DIAGRAMA DE CLASES - Características

Boundary

Estereotipo <<boundary>>Las Clases Límite se utilizan para modelar la

interacción entre el sistema y sus actores. Esta interacción a menudo implica recibir (y presentar) información y peticiones de (y hacia) los usuarios y los sistemas externos.

Un ejemplo seria el sistema VPOS de un banco que valida que la tarjeta de crédito tenga saldo disponible y registra el cobro de un producto, en este ejemplo, es un intermediario entre el actor y el sistema de ventas.

Estereotipos (6)

Page 29: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

DIAGRAMA DE CLASES - Características

Boundary

Estereotipo <<boundary>>Representan a menudo abstracciones de

formularios, páneles, impresoras, sensores.Ejemplos

» frmInscripcion» formaDatosPersonales

Estereotipos (7)

Page 30: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Control

Estereotipo <<control>>Las clases de control representan coordinación, secuencia,

transacciones y control de otros objetos y se usan con frecuencia para encapsular el control de un caso de uso en concreto.

Las clases de control también se utilizan para representar derivaciones y cálculos completos, como la lógica del negocio que no pueden asociarse con ninguna información concreta, de larga duración, almacenada por el sistema

Comúnmente se utiliza una por cada caso de uso, para que controle como va a funcionar.

Para funcionalidad no necesariamente atada a otras clases

DIAGRAMA DE CLASES - Características

Estereotipos (6)

Page 31: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Control

Estereotipo <<control>>Definir el comportamiento no natural en las clases interface y

entidadFungir como “goma de pegar” entre clases en casos de usoDefinir comportamientos típicos de controlMejorar el mantenimiento del sistema

DIAGRAMA DE CLASES - Características

Estereotipos (6)

<<control>>Controlador

Verificar_validez ()Calcular_total ()Mandar_a_imprimir ()

Page 32: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Es una extensión semántica de UML, que permite añadir nuevas reglas o modificar las existentes. Gráficamente es representado entre ({…}).<<business>>

• En la figura de ejemplo, la clase <<business>> “colección” está obligada a que se ordene de manera ascendente por el indice.

<<business>>colección

obtenAtribElementos()obtenElementosDe()insertaElementoDe()

{ordenar ascendente y por el índice}

Restricciones

DIAGRAMA DE CLASES - Características

Restricciones

Page 33: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Interfaz

Una interfaz define un conjunto de especificaciones de operaciones, pero nunca un conjunto de implementación de ellas.

Gráficamente, una interfaz se representa como un círculo o una clase estereotipada con <<interface>>.

La interfaz presenta su nombre, nombre de atributos y operaciones.

<<interface>>

Interfaz2

Interfaz

DIAGRAMA DE CLASES - Características

Interfaz

Page 34: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Interfaz

La interfaz se utiliza para modelar la interacción entre el sistema y sus actores. Esta interacción a menudo implica recibir (y presentar) información y peticiones de (y hacia) los usuarios y los sistemas externos.

Las clases de interfaz modelan las partes del sistema que dependen de sus actores, lo cual implica que clarifica y reúnen los requisitos en los límites del sistema.

DIAGRAMA DE CLASES - Características

Interfaz (2)

<<interfaz>>Impresorde recibo

imprimir (recibo)

Page 35: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

InterfazDifícilmente una interfaz se encuentra aislada, generalmente suele estar conectada a la clase o componente que la realiza (se tratará la relación de realización más adelante).Contienen la funcionalidad directamente dependiente del entorno del sistemaSe centran en la interacción entre los actores y los casos de usoRepresentan a menudo abstracciones de ventanas, impresoras, terminales, etc.

DIAGRAMA DE CLASES - Características

Interfaz (2)

<<interface>>Dispositivode alarma

sonido (alarma)

Page 36: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Diferentes objetos pueden responder a un mismo mensaje de diferentes maneras. El polimorfismo permite a los objetos interactuar entre ellos sin necesidad de conocer previamente a que tipo pertenecen.

Polimorfismo

instrumento

percusion cuerda aliento

tambor violín saxofónguitarra

instrumento

percusion cuerda aliento

tambor violín saxofónguitarra

DIAGRAMA DE CLASES - Características

Page 37: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

La única forma de acceder a los datos (estructura) de un objeto es a través de las operaciones (métodos o comportamiento).

» Permite ocultar los detalles de la implementación de un objetos» Los objetos ocultan la funcionalidad interna de sus operaciones, de

otros objetos y del mundo exterior, pero brindan los mecanismos para accederla

Conceptos

Estructura

Comportamiento

DIAGRAMA DE CLASES- Características

Encapsulamiento

Page 38: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Visibilidad

Los objetos ocultan la funcionalidad interna de sus operaciones, de otros objetos y del mundo exterior, pero brindan los mecanismos para acceder a ella mediante permisos:Public

»Accesible a todas las clases

Protected»Accesible sólo a las subclases y a la clase misma

Private»Accesible sólo a la clase

Implementation»Accesible únicamente por la implementación del paquete

DIAGRAMA DE CLASES - Características

Encapsulamiento (2)

Page 39: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Relaciones

Todos los sistemas contienen varias clases y objetosLos objetos contribuyen al comportamiento del

sistema colaborando con unos y otros» La colaboración se realiza a través de las relaciones

La existencia de una relación entre dos clases denota una vía de comunicación (enlace) entre instancias de las clases, por las que un objeto puede enviar mensajes a otro

DIAGRAMA DE CLASES

Relaciones

Page 40: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Relaciones

Las relaciones en el diagrama de Clases son:

Asociación» Nombre, rol, multiplicidad

Agregación (pertenencia)» Relación de tipo tiene-un

Generalización (herencia)» Es un relación de “es-un-tipo-de”

Dependencia

DIAGRAMA DE CLASES

Relaciones (2)

Page 41: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Asociación

Una asociación es una conexión semántica bi-direccional entre clases

» Esto implica que hay una liga entre objetos en las clases asociadas

Las asociaciones se representan en diagramas de clase por una línea que conecta las clases asociadas

La información puede fluir en cualquier dirección o en ambas direcciones a través de la liga

cl iente<<entity >>

venta<<entity >>

DIAGRAMA DE CLASES

Asociación

Page 42: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Asociación (2)

Para clarificar su significado, se puede nombrar una asociación

El nombre se representa como una etiqueta que se pone a lo largo de la línea de asociación, a mitad de camino entre los iconos de clases

Un nombre de asociación es usualmente un verbo o una frase con verbo

cl iente<<entity >>

venta<<entity >>

realiza

DIAGRAMA DE CLASES

Asociación (2)

Page 43: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Asociación (3)

Un rol denota el propósito o capacidad en la que una clase se asocia con otra

Los nombres de roles son típicamente sustantivos o frases con sustantivo

Un nombre de rol se pone a lo largo de la línea de asociación cerca de la clase que modifica

» Uno o ambos finales de una asociación pueden tener nombres de roles

persona Maestrocurso

DIAGRAMA DE CLASES

Asociación (3)

Page 44: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Asociación (3)

DIAGRAMA DE CLASES

Asociación (4)

ciudadnombrepoblación

es capital de

Asociación simple

paísnombrepoblación

Jovennombre

Jovennombre

Jovennombre

es novio de

/es yerno de

Asociación derivada

Page 45: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

empresanombredomicilio

trabaja para

Roles

personanombre#IMSSempleador empleado

DIAGRAMA DE CLASES

Asociación (5)

Page 46: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Ejemplos de asociaciones en UML

UsuarioEstación

de trabajo autorizar en >

Autorización

prioridadesprivilegios

iniciar sesiónterminar sesión

Notación para“clase asociada”

Directorio

1

Nombre

atributos

operaciones

Atributo Operación

1

1

DIAGRAMA DE CLASES

Page 47: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Multiplicidad

Multiplicidad es el número de instancias de una clase relacionadas a UNA instancia de la otra clase

Para cada asociación, hay dos decisiones de multiplicidad que tomar: una por cada final de la asociación

» Por ejemplo, en la conexión entre “persona” jugando el rol de “maestro” con “curso”

» Para cada instancia de persona, varios cursos (cero o más) deben impartirse

» Para cada instancia curso, exactamente una “persona” es el maestro

DIAGRAMA DE CLASES

Asociación (Multiplicidad)

persona Maestrocurso

0..*1

Page 48: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Multiplicidad

Cada final de una asociación contiene una multiplicidad de indicadores

» Indica el numero de objetos que participan en la relación. El cero marca la opcionalidad y el uno la obligatoriedad

Exactamente uno

Cero o más

Uno o más

Cero o uno

Rango específico

1

0..*

1..*

0..1

2..4

Muchos*

DIAGRAMA DE CLASES

Asociación (Multiplicidad)

Page 49: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Multiplicidad

La multiplicidad expone varias hipótesis ocultas acerca del problema que se está modelando

» ¿Puede estar un maestro en sabático? » ¿Puede tener un curso dos maestros?

DIAGRAMA DE CLASES

Asociación (Multiplicidad)

persona Maestrocurso

0..*1

Page 50: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Multiplicidad

La multiplicidad responde a dos preguntas» ¿La asociación es obligatoria u opcional? » ¿Cuál es el numero mínimo y máximo de instancias que pueden

ligarse a una instancia?

MaestroCurso

10..*

¿Qué le dice este diagrama?¿Qué le dice este diagrama?

DIAGRAMA DE CLASES

Asociación (Multiplicidad)

Page 51: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clase asociación

Son las tablas transitivas.Si quisiéramos rastrear los grados para todos los

cursos que un alumno ha tomado» La relación entre alumno y course es una relación de muchos-a-

muchos

¿Dónde ponemos el atributo de calificación?

student 0..*

3-10

course

DIAGRAMA DE CLASES

Clase Asociación

Page 52: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Clase asociación (2)

Crear una clase de asociación usando el icono claseConectar el icono clase a la línea de asociación

usando una línea punteadaLa clase de asociación puede incluir múltiples

propiedades de la asociaciónSólo se permite una clase de asociación por

asociación

student 1..*

3-10

course

grade

DIAGRAMA DE CLASES

Clase asociaciónClase Asociación

Page 53: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Agregación

La agregación es una forma especializada de asociación en la que un todo se relaciona con su parte o sus partes

» Agregación es conocida como “parte de” o relación que contiene

» Una agregación se representa como una asociación con un diamante al lado de la clase denotando el agregado (todo)

» La multiplicidad se representa de la misma manera que otras asociaciones. El diamante es de la clase que representa el todo y la otra es como un maestro detalle.

Auto puerta

DIAGRAMA DE CLASES

Agregación

Page 54: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Agregación (2)

¿Se usa la frase “parte de” para describir relaciones?» Una Puerta es “parte de” un Carro

¿Se aplican algunas operaciones en el todo automáticamente a sus partes?

» Mover el Carro, Mover la Puerta

¿Se propagan algunos valores de atributos del todo a todas o algunas de sus partes?

» El Carro es azul, La Puerta es azul

¿Hay una asimetría intrínseca a la relación donde una clase se subordina a la otra?

» Una Puerta Es parte de un Carro, un Carro No Es parte de una Puerta

DIAGRAMA DE CLASES

Agregación(2)

Page 55: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Se da cuando un objeto está contenido forzosamente dentro de otro. Es identificada por una relación de “Siempre contiene”. A diferencia de la agregación, la composición indica que el todo no puede existir sin sus partes.

Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye.

Gráficamente se especifica añadiendo a una asociación normal un rombo lleno en la parte del todo

Composición

DIAGRAMA DE CLASES

Page 56: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

¿Se usa la frase “siempre contiene” para describir relaciones?

» Un Auto es “siempre contiene” un Motor

Ejemplo de Composición

Auto Motor

DIAGRAMA DE CLASES

Composición

Page 57: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Generalización

La generalización permite conectar clases generales con otras más especializadas

Se conocen como subclase/superclase o hijo/padreEs un relación de “es-un-tipo-de”Una clase hija hereda las propiedades de sus clases

padres, especialmente sus atributos y operaciones

Generalización

DIAGRAMA DE CLASES

Page 58: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Las clases son organizadas jerárquicamente. Las clases hijas conservan la estructura y comportamiento de las clases padres

» La clase general es llamada superclase; la especialización subclase» La superclase define un comportamiento (protocolo) que todas las

subclases heredan» Las subclases pueden agregar nuevos atributos y operaciones» Las subclases pueden sobre-escribir operaciones (conservando la

firma pero proporcionando distintas implementaciones); es decir puede heredar del padre de forma distinta

Generalización(2)

DIAGRAMA DE CLASES

Page 59: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Ejemplos de generalización

medioTransporte

terrestre acuatico aereo

automovil

modelomarcaplacas

encender()verificar()cargarGasolina()afinar()cambiarPropietario()vender()

DIAGRAMA DE CLASES

Generalización(3)

Page 60: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Personal

Bibliotecario Instructor Investigador

Superclase

Subclase Subclase Subclase

Manejador

Manejadorde teclado

Manejadorde mouse

Manejadorde joystick

DIAGRAMA DE CLASES

Generalización(4)

Page 61: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Dependencia

Las dependencias son relaciones de uso Indican que un cambio en la especificación de un

elemento puede afectar a otro elemento que la utilizaSe representa con una línea discontinua dirigida

hacia el elemento del cual se dependeSe utilizan generalmente en el contexto de las clases

o entre paquetes

DIAGRAMA DE CLASES

Page 62: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Comercial

NombreDelCorto

Transmitir(CanaTV)Comenzar()Terminar()Restablecer()

CanalTV

La creación del objeto Comercial esta condicionado a la instanciación La creación del objeto Comercial esta condicionado a la instanciación proveniente desde el objeto CanalTV, es decir, el Objeto Comercial proveniente desde el objeto CanalTV, es decir, el Objeto Comercial depende del Objeto CanalTV.depende del Objeto CanalTV.

Ejemplo de Dependencia

DIAGRAMA DE CLASES

Dependencia(2)

Page 63: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Paquetes

Un paquete es un mecanismo de propósito general para organizar elementos en grupos

Se visualizan como carpetas

Nombre del paquete

DIAGRAMA DE CLASES

Page 64: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Relaciones entre paquetes

Los paquetes se relacionan unos a otros usando una relación de dependencia

Si una clase en un paquete “habla” con una clase en otro paquete entonces se agrega una relación de dependencia en el nivel de paquete

Interfaces

Business Rules

University Artifacts

DIAGRAMA DE CLASES

Page 65: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Facilita la re-utilización de la arquitectura y el códigoLos modelos reflejan de manera más cercana el

mundo realDescribe con mayor exactitud los procesos y datos

incorporadosDescomposición basada en partición natural.

Representa los objetos de una forma real, es decir una clasificación.

Más “fácil” de entender y mantenerEstableUn cambio pequeño en requerimientos no significa

cambios masivos en el sistema en desarrollo

Ventajas

DIAGRAMA DE CLASES

Page 66: Dirección General de Servicios de Cómputo Académico (DGSCA)  Modelado de Sistemas con UML Septiembre, 2007 Integrado por: Rebeca Núñez Alonso Eduardo.

Evolución del diagrama de clases en el

Análisis y DiseñoDurante el análisis:

Se establecen clases (principalmente entity) y conexiones básicas (asociaciones, agregaciones y generalizaciones)

» Estas conexiones existen debido a la naturaleza de las clases, y no debido a una implementación específica

Se hace una estimación inicial de multiplicidad para exponer hipótesis ocultas

Durante el diseño: Se consideran otros estereotipos de clase (boundary y control) Se refinan y actualizan las estimaciones de multiplicidad Se evalúan y refinan las relaciones Se detallan los tipos y firmas (signature)

DIAGRAMA DE CLASES