Story Transcript
Prof. Mariano Mancuso
Sistemas de información y control – diagrama de clases
UML ¿Qué son los modelos? ¿Para qué sirven los modelos? ¿Cuáles son los modelos de UML? ¿Se usan todos...?
¿Qué son los modelos? Un modelo es una representación que capta los aspectos más importantes de lo que estamos modelando y simplifica u omiten el resto Un modelo de un sistema software está construido en un lenguaje de modelado. Tiene semántica y notación. Incluye gráficos y texto
¿Para qué sirven los modelos?
• Para pensar el diseño de un sistema La simplicidad de crear y de modificar modelos permite un pensamiento creativo e innovación a bajo precio
• Para explorar económicamente múltiples soluciones • Para trabajar con sistemas complejos
Tipos de modelos y perspectivas Usando la misma notación (UML) se pueden considerar tres perspectivas: • Esencial o conceptual: los diagramas describen cosas del mundo real o dominio de interés • De especificación: los diagramas describen abstracciones software independientes de la implantación • De implantación: los diagramas describen implementaciones software en un lenguaje particular
UML (lenguaje de modelado unificado) es un lenguaje para especificar, construir, visualizar y documentar los objetos de un sistema de software.
Diagrama UML
Use Case Use Case Diagramas de Diagrams Diagrams Secuencia
Use Case Use Case Diagramas de Diagrams Diagrams Casos de Uso
Scenario Scenario Diagramas de Diagrams Diagrams Colaboración Scenario Scenario Diagramas de Diagrams Diagrams Estados
State State Diagramas de Diagrams Diagrams Clases
Modelo
Diagramas de Actividad
State State Diagramas de Diagrams Diagrams Objetos State State Diagramas de Diagrams Diagrams Componentes
Component Component Diagrams Diagramas Diagrams de
Distribución
Diagrama de Casos de Uso
Reintegro Cuenta Corriente
Verificar Operación
Cliente
Reintegro Cuenta de Crédito
Muestra las distintas operaciones que se esperan de un sistema y cómo se relacionan con su entorno
Diagrama de clases
Muestra las distintas las clases atributos, métodos y relaciones entre ellas
Diagramas de Secuencia (objetos) : Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
prestar(video, socio) verificar situación socio verificar situación video
registrar préstamo entregar recibo
Muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo
Diagrama de Colaboración (objetos) :Socio
:Video 2: verificar situación socio
1: prestar(video, socio)
3: verificar situación video :WInPréstamos
5: entregar recibo : Encargado
4: registrar préstamo
:Préstamo
Muestra la forma de representar interacciones entre objetos,
Diagrama de Estados alta
baja
sin préstamos
prestar
número_préstamos = 0
devolver[ número_préstamos = 1 ]
número_préstamos > 0 con préstamos prestar
devolver[ número_préstamos > 1 ]
Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación, junto con los cambios que permiten pasar de un estado a otro
Diagrama de Actividad Buscar Bebida
[ no hay café ]
[ no zumo ]
[ hay café ] [ hay zumo ] Poner café en filtro
Añadir agua al depósito
Coger taza Coger zumo
Poner filtro en máquina
Encender máquina / cafetera.On Café en preparación indicador de fin Servir café
Beber
Muestran transiciones internas, sin hacer mucho énfasis en transiciones o eventos externos.
Diagrama de Componentes Interfaz de Terminal
Gestión de Cuentas
Rutinas de conexión
Control y Análisis
Acceso a BD
Muestra las dependencias lógicas entre componentes software
Diagrama de Despliegue Servidor Central
Control y Análisis Comment
Acceso a BD Comment
Rutinas de Coneccion Comment
Terminal de Consulta Rutinas de Coneccion Comment
Punto de Venta
Interfaz de Terminal Comment
Rutinas de Coneccion Comment
Gestión de Cuentas Comment
Interfaz de Terminal Comment
Muestran la organización de los componentes del sistema
Modelo y Metamodelo • Para la definición y formalización de UML, los diferentes conceptos se han modelado, a su vez, con UML. • Esta definición recursiva de denomina Metamodelo • El metamodelo describe de manera formal los elementos de modelado, la sintaxis y la semántica asociados a ellos
Extracto del Metamodelo Clase
instancia de
Objeto *
* enlaza
Relacion *
Diagrama de Clases
enlaza
instancia de
Enlace *
Diagrama de Objetos
Diagrama de clases
Diagrama de Clases
Las clases representan los bloques de construcción más importantes de cualquier sistema orientado a objetos. Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.
Diagramas de clases UML (-) visibilidad privada (#) visibilidad protegida (+) visibilidad pública atributo Visibilidad nombre : tipo = valor inicial ejemplo
- temperatura : numérico = 0
operación Visibilidad nombre (lista parámetros ) : tipo de expr retornada ejemplo
+BuscarValor (n:int) : int
Asociaciones Son relaciones entre clases que indica alguna conexión significativa que deseamos preservar durante algún tiempo Tipo de asociaciones: Unarias, Binarias, n-arias Clases asociación
Cada instancia de una asociación (enlace) es una tupla de referencias a objetos
Asociación y Enlace asociación empleado
empleado
empleador
empresa
trabaja para
1..*
1
(emp1, em)
enlace em : empresa
emp1 : empleado
(emp3, em)
emp2 : empleado
emp3 : empleado
(emp2, em)
Nombre de rol
Banco
Asociación binaria
0..1 0..* cliente Persona esCasado : Booleano esDesocupado : Booleano fechaDeNacimiento : Fecha edad : Entero nombre : Literal apellido : Literal sexo : enum{ masculino, femenino } ingresos(Fecha) : Entero esposo
gerente
empleado 0..* esposa 0..1
0..*
Compañía compañíasGerenciadas nombre : Literal cantidadDeEmpleados : Entero empleador
valorAcción()
0..*
Multiplicidad
0..1
Asociación unaria
Matrimonio lugar : Literal fecha : Fecha
Trabajo cargo : Literal fechaDeInicio : Fecha salario : Entero
Clase asociación
Multiplicidad Multiplicidad: define cuantas instancias de una clase A pueden asociarse con una instancia de una clase B una tienda tiene muchos artículos
tienda
1
articulo * Un artículo se vende en una tienda
El valor de la multiplicidad indica cuántas instancias se pueden asociare con otras en un momento concreto
Tipos de multiplicidad *
Cero o más
1..* Uno o más 1..40 5
De uno a 40 Exactamente 5
3,5,8 Exactamente 3, 5 u 8
Agregación y Composición agregación
composición
Agregación • Una clase forma parte de otra clase • Es un tipo de asociación más fuerte • Relación no simétrica entre clases donde uno de los extremos cumple un rol dominante
Composición
• Dependencia existencial. El elemento dependiente desaparece al destruirse el que lo contiene • Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene
• Los objetos contenidos no son compartidos
Clase Asociación Una asociación puede representarse por medio de una clase para añadir, por ejemplo, atributos y operaciones
Asociación n-aria
Generalización relación “es-un-tipo-de”
Herencia es el mecanismo mediante el cual los elementos más específicos incorporan la estructura y el comportamiento de elementos mas generales
Lista de categorías de clases La identificación de clases del dominio del problema tiene “mucho de arte” • • • • • • •
Objetos tangibles o físicos (personas) Lugares (escuela) Roles de la gente (gerente) Contenedores (tienda) Cosas de un contenedor (artículos) Organizaciones (departamento de ventas) Hechos (venta, pago)
Algunos puntos a tener en cuenta.... Comenzar con el modelo del dominio
▫ Identificar las clases y sus asociaciones ▫ Incluir los atributos más importantes ▫ No preocuparse inicialmente por las operaciones ▫ No pensar en jerarquías (al principio...)
Seguimos con el caso práctico...
Diagrama de clases
Refinamiento del Diagrama de Clases
Incluimos: Relaciones de jerarquía Patrones de diseño (opcional) Agregaciones y composiciones Restricciones OCL (opcional) Algunas operaciones evidentes
Seguimos con el ejemplo...