![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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/13.jpg)
¿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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/27.jpg)
<<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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/56.jpg)
¿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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051821/5665b4231a28abb57c8f72c3/html5/thumbnails/66.jpg)
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