75
Universidad Nacional Autónoma de México Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Embed Size (px)

Citation preview

Page 1: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Universidad Nacional Autónoma de MéxicoUniversidad Nacional Autónoma de MéxicoDirección General de Servicios de Cómputo AcadémicoDirección General de Servicios de Cómputo Académico

Análisis y diseño orientado a objetos con UML

Page 2: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Análisis y diseño orientado a objetos con UML

VISTA LÓGICA (MODELO ESTÁTICO Y DINÁMICO) Clases

Atributos y operaciones Responsabilidades

Relaciones Asociación

Multiplicidad Agregación Generalización Dependencia

Mecanismos comunes. Estereotipos. Paquetes. Restricciones.

Modelo Vista Controlador (MVC). Mapeo de clases a bases de datos relacionales.

VISTA LÓGICA VISTA LÓGICA

Page 3: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

• La Vista Lógica describe la estructura interna del sistema, es decir las partes que lo integran y cómo interactúan.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Vista Lógica

Los diagramas de clase de UML nos permiten modelar esta vista del sistema

Page 4: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

• Los diagramas de clase son uno de los diagramas más importantes y más utilizados de UML.

• Permiten capturar los elementos que integran la estructura interna del sistema así como su relaciones.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de clase

Cliente

+nombre+apellido paterno+apellido materno+domicilio+telefonos

Factura

+numero+fecha+monto

+emitir()

Page 5: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Una clase representa un grupo de objetos con características y comportamiento comunes.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Qué son las clases

Atributos Operaciones

Características externas y

visibles. Lo que la clase conoce.

Conjunto de acciones que

una clase realiza. Lo que la clase puede realizar.

Page 6: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Atributos

• Los atributos representan una propiedad de la clase definida en términos abstractos.

• Cada atributo puede tomar un valor en particular, determinando así el estado de un objeto en un momento determinado.

• Una clase puede tener varios atributos o ninguno.

• El conjunto de atributos definen la estructura de la clase.

Alumno

+nombre+apellido+segundo apellido+fecha nacimiento+domicilio+matricula

Page 7: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Operaciones

• Pueden ser algo hecho por o sobre la clase.

• Las operaciones de una clase pueden hacer uso de los atributos de la clase y modificar sus valores, cambiando así el estado.

• Las operaciones definidas en cada clase permiten cumplir con sus responsabilidades.

Elevador

+subir()+bajar()+detenerse()+abrirPuertas()+cerrarPuertas()+seleccionarPiso()-validarCapacidad()

Page 8: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Notación UML

Nombre de la clase

+ATRIBUTOS

+OPERACIONES()

Nombre de la clase

Page 9: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

• Las clases se pueden construir desde tres perspectivas:

– CONCEPTUAL. Representando 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.

– ESPECIFICACIÓN. Enfocados al diseño del software en su filosofía pero no en su implementación.

– IMPLEMENTACIÓN. Se expone por completo la implementación.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Perspectivas

Page 10: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Perspectiva conceptual

Conceptos del dominio que se está estudiando. No importa el software con que se implementarán Son independientes del lenguaje. Pueden ubicarse en el contexto del negocio (modelado de negocio) o del sistema.

Pago

cantidad

Venta

fechahora

Pago-por

11

Page 11: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Perspectiva de especificación

Enfocados al diseño del software en su filosofía pero no en su implementación.

Pago

cantidad: Dinero

getDevolucion(): Dinero

Venta

fecha: Fechahora: Hora

getTotal(): Dinero

Pago-por

11

Page 12: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Perspectiva de implementación

Se expone por completo la implementación. Ligada a un lenguaje de programación orientado a objetos.

Pago

+cantidad: Dinero

+getDevolucion(): Dinero

Venta

+fecha: Date+hora: Date

+getTotal(): Dinero

Pago-por

11

Dinero

+monto: double

Page 13: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Las clases surgen de la terminología del problema.

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

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.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Cómo identificar las clases

Page 14: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

• En las perspectivas de especificación e implementación, los atributos y las operaciones se definen con mayor detalle:

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Atributos y Operaciones

Clase

-atributo: Tipo = default

+Operacion(): Tipo

visibilidadAuto

-marca: String-modelo: String-placa: String-transmision: String

+cargarGasolina(litros: double)+setters()+getters()

Page 15: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Todos los sistemas contienen varias clases.

Los objetos contribuyen al comportamiento del sistema colaborando unos y otros. Esta colaboración se representa a través de las relaciones

La existencia de una relación entre dos clases denota una vía de comunicación (enlace) por las que se puede enviar peticiones y mensajes entre ellas.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Relaciones

Alumno

Curso

Profesor

Aula

Page 16: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

• Existen varios tipos relaciones entre clases, los principales son:

• Dependencia• Asociación• Agregación• Composición• Herencia

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Relaciones

Page 17: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Relaciones

Dependencia

Asociación

Agregación

Composición

Herencia

Cuando los objetos de una clase trabajan temporalmente con objetos de otra clase.

Cuando los objetos de una clase trabajan con objetos de otra clase por tiempo prolongado.

Cuando una clase es propietaria del objeto pero comparte a otras clases la referencia del objeto. El objeto puede existir independiente de la clase.

Cuando una clase contiene objetos de otra clase. Los objetos no pueden existir independientes de la clase.

Cuando una clase es un tipo de otra clase.

+ d

ébil

+ f

uert

e

Page 18: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Es una relación “de uso” entre dos elementos, uno de ellos dependiente y el otro independiente (cliente

y proveedor).

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Dependencia

“ B depende de A “ es decir, B es el Cliente y A es el Proveedor.

BBAA

Page 19: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Dependencia

Teléfono Teléfono publicopublico ViajeroViajero

LíneaLíneaPuntoPunto

dibujar (inicio:Punto, fin:Punto)

Page 20: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Es una relación estructural que especifica que los objetos de un elemento están conectados con los objetos de otro.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Asociación

BBAA

Por cada instancia de uno pueden existir “n” instancias del otro.

Page 21: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Las asociaciones de representan que una instancia de A ”tiene“ instancias de B.

La asociación puede ser nombrada con algún verbo que describa de forma más precisa el tipo de relación entre dos clases, por ejemplo: vende, imparte, participa, realiza.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Asociación

Persona Revistasuscribe +revista suscrita+suscriptor

0..*0..*

Personas se suscriben a revistas.

Page 22: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

En las asociaciones además se especifica la multiplicidad,

Es decir el número instancias de una clase con respecto a la otra.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Multiplicidad

Exactamente uno

Cero o más

Uno o más

Cero o uno

Rango específico

1

0..*

1..*

0..1

2..4

Muchos*

Page 23: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Asociación

FarmaciaFarmacia

EquipoEquipo

MedicamentoMedicamentodistribuyedistribuye

*

*

PartidosPartidosjuegajuega

*

2

TrabajadorTrabajadorempleaemplea

*

1EmpresaEmpresa

EstudianteEstudiantealojaaloja

0..4

0..1DepartamentoDepartamento

Page 24: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Es una relación donde una de las clases es parte de la otra.

Si la clase contenedora es destruida, la clase contenida puede permanecer.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Agregación

BBAA

“ B es parte de A”

“ A contiene B ”

Page 25: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Agregación

VentaVenta ClienteCliente

LlantaLlantaAutoAuto

JugadoresJugadoresEquipoEquipo

Page 26: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Al igual que la agregación, es una relación de “todo-partes” pero más fuerte.

El tiempo de vida de las partes depende directamente la clase contenedora.

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Composición

BBAA

“ B es componente de A”

“ A se compone de B ”

Page 27: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Composición

CorazónCorazónPersonaPersona

LápizLápiz PuntaPunta

Libro Capítulo

Page 28: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Composición vs. Agregación

CapítuloCapítuloLibroLibro

BibliotecaBiblioteca LibroLibro

Page 29: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Representa una relación “es un”.

La subclase hereda los métodos y atributos de la superclase, además de poseer sus propios métodos y atributos

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Herencia

BB

AA

“ B es un tipo de A”

“ A se especializa en B ”

Page 30: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

ParticularParticular

TransporteTransporte

PúblicoPúblico

Herencia

DestajoDestajo

EmpleadoEmpleado

AsalariadoAsalariado HonorariosHonorarios

Page 31: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Ejercicio 7

Page 32: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes

Sirven para adaptar el lenguaje a necesidades particulares, dentro de un marco ordenado respetando reglas.

Se usan para extender el lenguaje (UML) de manera controlada.

Mecanismos: •especificaciones•adornos•divisiones comunes•mecanismos de extensibilidad.

Page 33: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes - Especificaciones

Los modelos UML tienen al menos dos dimensiones: una dimensión gráfica y una textual.

Las especificaciones son descripciones textuales de la semántica de un elemento.

Explicación textual de la sintaxis y semántica de los bloques de construcción.

CuentaBancariaCuentaBancaria

Semántica plano posterior Especificación de clase

Especificación caso de uso

Especificación dependencia

Page 34: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes - Adornos

No hay necesidad de mostrarlo todo en un diagrama, es más importante que el diagrama sea claro.

Los adornos son elementos que hacen visibles aspectos de la especificación del elemento:

CuentaBancariaCuentaBancaria

CuentaBancariaCuentaBancaria

Elemento sin adornos

Elemento con adornos

{autor: Juan, estado: probado}

- numeroCuenta: long-proietario: Cliente- saldo: long

# retirar(): long# calculaInteres(): void# depositar(): void

Page 35: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Notas

Las notas, es el tipo de adorno más utilizado.

Una nota es un símbolo gráfico utilizado para contener restricciones o comentarios vinculados a un elemento o colección de elementos.

Permiten adjuntar información como: observaciones, revisiones o explicaciones.

Semaforo

+estado

+cambiar()

Un semaforo víal de tres estados

Page 36: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes – Divisiones comunes

Existen dos divisiones comunes en UML:

clasificador/instanciae

interfaz/implementación.

(…más)

Page 37: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes – Divisiones comunes Clasificador /Instancia

La noción abstracta de un tipo de elemento es un clasificador.

Los elementos específicos, concretos, las instancias.

Ejemplo:

Alumno

+nombre+apellidos+matricula+fechaNacimiento

J uan : Alumno

: Alumno

Page 38: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos comunes – Divisiones comunesinterfaz / implementación

El principio es separar qué hace algo (interfaz) de cómo lo hace (implementación).

La interfaz define un contrato que garantiza seguir implementaciones específicas.

Volador

Avión

Helicoptero

Superhéroe

Volador

+despegar()+planear()+aterrizar()

Page 39: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mecanismos de extensibilidad

Estereotipos Paquetes Notas Restricciones Valores etiquetados

Page 40: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Estereotipos

•Los estereotipos son un mecanismo de extensibilidad del UML.

•Un estereotipo amplía el vocabulario del UML, permitiendo crear nuevos tipos de bloques de construcción, derivados de los existentes y específicos para determinado problema.

•Se presentan como palabras entre paréntesis triangulares

<< estereotipo >>

•Aplican a diversos elementos de UML como: Clases, Casos de Uso, Relaciones, Actores, etc.

Page 41: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Estereotipos

Actor<<Sistema>><<Sistema>>

<<Tabla>><<Tabla>>

<<uses>><<uses>>

<<servidor><<servidor>>>

<<java>><<java>>

Page 42: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Paquetes

Un paquete es el elemento de organización básica de un modelo de sistema UML.

Puede considerarse todo el sistema como un paquete que contiene los demás paquetes, diagramas y elementos.

Un paquete puede contener paquetes subordinados, diagramas o elementos únicos,

Paquete

java

lang

Page 43: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Restricciones

Las restricciones permiten añadir especificaciones, condiciones o limitaciones más detalladas.

Condiciones que deben cumplirse para que el modelo este bien formado.

{ restricciones }{ restricciones }

Alumno

+nombre+apellidos+matricula+fechaNacimiento

{mayor de edad}

Curso

Page 44: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Valores etiquetados

Proporcionan una forma de ampliar la especificación al permitir añadir nueva información a un elemento.

Es una palabra clave que puede tener un valor anexado.

{ etiqueta1=valor1, etiqueta2=valor2 }

Servidor

{procesadores = 3}

Un valor etiquetado no es lo mismo que un atributo de clase

Más bien es un metadato que se aplica al elemento, no a sus instancias

{Autor=J uan Pérez}

Cliente

+nombre+apellido paterno+apellido materno+domicilio+telefonos

Page 45: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

Page 46: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

La triada de clases Modelo/Vista/Controlador se uso para construir interfaces de usuario en Smalltalk 80.

Consiste en tres tipos de objetos

Modelo Es el objeto de aplicación

Vista Es su representación en pantalla

ControladorDefine el modo en que la interfaz reacciona a la entrada del usuario.

Antes de MVC las interfaces agrupaban los tres objetos en uno solo

MVC los separa para incrementar la flexibilidad y reutilización.

Page 47: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

MVC desacopla las vistas de los modelos estableciendo entre ellos un protocolo de suscripción/notificación

Cada vista debe reflejar el estado del modelo y cada vez que los datos del modelo cambian este “avisa” a las vistas que dependen de él.

En respuesta a estos “avisos” las vistas se actualizanEsto permite crear nuevas vistas sin modificar el modelo.

A = 50%B = 30%C = 20%

vistas

modelo

Page 48: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

Aplicable a un problema general: desacoplar objetos de manera que los cambios en uno puedan afectar a otros sin necesidad de que el objeto conozca los detalles de los otros. (Patrón Observer)

Observers Subject

Suscriptores Periódico

Page 49: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

MVC y una aplicación Web

Cliente

CGI / Controlador

Value object

Página / Vista

DB

Modelo / BD / lógica del negocio

4

1

2

Crea instancias dePetición HTTP

3

5 Respuesta HTTP

Page 50: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Modelo – Vista - Controlador

MVC y una aplicación Web

1 El cliente realiza una petición HTTP la cual es recibida por un CGI.

2 El CGI actúa como un controlador y procesa la petición. Es probable que realice una petición al modelo (usualmente la base de datos). El resultado de procesar la petición se estructura en la forma de un value object.

3 El controlador direcciona el control a la vista. Representada por una página web (php, asp, jsp). La responsabilidad de la página es generar la vista del modelo el cual obtiene con del value object.

4

5 La vista regresa una página al navegador vía una respuesta HTTP.

Page 51: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Page 52: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Cómo modelar un esquema

1. Identificar clases persistentes2. Crear un diagrama de clases que contenga las clases

marcadas como persistentes3. Expandir detalles estructurales de estas clases4. Centrar la atención en las relaciones que estructuran las

clases y en su cardinalidad.

Page 53: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Mapeo de clases a Base de Datos

Cada clase identificada como persistente se mapea a una tabla:

Cliente

nombre

direccion

telefono

Tabla Cliente

clienteID nombre dirección teléfono

Page 54: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Mapeo de clases a Base de Datos

Relaciones de uno a muchos

Tabla Cliente

clienteID nombre direccion telefono

Cliente

nombredirecciontelefono

Renta

fechadevuelto

0..*

11

0..* Tabla Renta

rentaID fecha devuelto clienteID

Page 55: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Mapeo de clases a Base de Datos

• Relaciones de muchos a muchos

Table ProductoIngrediente

productoID ingredienteID

Producto

Ingrediente

1..*

0..*

1..*

0..*

Page 56: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Mapeo de clases a bases de datos relacionales

Mapeo de clases a Base de Datos

Relaciones de herencia:

Cada subclase es mapeada a una tabla separada con una columna adicional por cada atributo heredado.

Todas las clases de la jerarquía son mapeadas a una única tabla, agregando columnas para todos los atributos de la jerarquía.

Page 57: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

Page 58: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

Una interacción establece el escenario para un comportamiento del sistema introduciendo todos los objetos que colaboran para realizar alguna acción. Incluyen los mensajes enviados entre objetos. La mayoría de las veces, un mensaje implica la invocación de una operación o el envío de una señal.

Las interacciones se usan para modelar el flujo de control dentro de una operación, una clase, un componente, un caso de uso o el propio sistema.

Page 59: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

Un diagrama de interacción es una representación gráfica de interacciones entre objetos. Hay dos tipos de diagramas de interacción:

1. Diagramas de secuencia

2. Diagramas de colaboración

Cada uno provee un punto de vista diferente de la misma interacción Los diagramas de secuencia están ordenados de acuerdo al tiempo Los diagramas de colaboración muestran la organización entre objetos.

Page 60: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

CBA

m1

m2

m3

m4

m5

Page 61: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Cliente AgenteBilletes AyudaPlanificacion

1<<create>>

2 : establecerItinerario()

3 : calcularRuta()

4 : ruta

5<<destroy>>

6 : notificar

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

objeto

Creación

LlamadaLlamada

(invocación local)

Retorno

Valor de retorno

Destrucción

Envío

Page 62: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

: Bank ClerkA1 : Account A2 : Account

transfer

withdraw

deposit

Page 63: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

A2 : Account : Bank Clerk

A1 : Account : Transfer

transferwithdraw

Deposit

Page 64: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de interacción

: Bank Clerk : TransferScreen : Transfer A1 : Account A2 : Account

Enter Amount

Enter Source Account

Enter Destination Account

TransferTransfer

Withdraw

Deposit

Page 65: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de colaboración

– Un diagrama de colaboración es una forma alternativa de representar los mensajes intercambiados por un conjunto de objetos

– El diagrama muestra interacciones de objeto organizadas alrededor de los objetos y sus ligas a cada uno

– Un diagrama de colaboración contiene: Objetos Ligas entre objetos Mensajes intercambiados entre objetos Flujo de datos entre objetos, si hay alguno

Page 66: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de colaboración

John : Alumno

forma de registro

forma horarioclases disponibles

1: introducir id

2: validar id

3: introducir semestre actual

4: crear nuevo horario5: desplegar

6: obtener cursos

Page 67: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de colaboración

John : Alumno

forma de registro

forma horarioclases disponibles

1: introducir id

2: validar id

3: introducir semestre actual

4: crear nuevo horario5: desplegar

6: obtener cursos

mensajeNúmero de secuencia

objetoenlace

objeto

Page 68: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

Page 69: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

Describe el comportamiento dinámico de los objetos en un cierto plazo.

Los diagramas de estado se usan para mostrar la historia de vida de una clase dada, los eventos que causan una transición de un estado a otro, y las acciones que resultan de un cambio de estado.

El estado de un objeto es una de las condiciones posibles en las que puede existir un objeto.

Page 70: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

Estado

Estado secuencial

Estado concurrente

Estado A

Estado B

Estado A

Estado B

Estado 1

do : Operación

Acción

do : Operación

Fin

Inicio

ELEMENTOS DE UN DIAGRAMA DE ESTADO

Page 71: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

EstadoUn estado es una de las condiciones posibles en las que puede existir un objeto. 

EventoEs la ocurrencia de alguna situación que sucede en un punto del tiempo; tiene una localización en tiempo y espacio.

 Ocurre en un punto en el tiempo y no tiene duración. Evento de llamada Evento de señal Evento de cambio Eventos de tiempo

Page 72: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

TransiciónUna transición es un cambio de un estado original a un estado sucesor como resultado de algunos estímulos.Las transiciones pueden ser restringidas por:o        Evento señalo        Llamadao        Cambio de eventoo       Tiempo del evento.

Page 73: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

Infancia Adolescencia

Madurez

Senectud

encendido

despegue

aterrizando

apagado

volando

Page 74: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

addStudent

Initialize

do: Initialize course object

Unassigned

do: Assign professor to course

Open

entry: Register a student

Closed

do: Report course is full

Canceled

do: Send cancellation notices

addStudent/ numStudents = 0

cancelCourse

RegistrationComplete

do: Generate class roster

cancelCourse

[ numStudents = 10 ]

cancelCourse

[date = end]

registration closed[

numStudents < 3 ]

Page 75: Universidad Nacional Autónoma de México Dirección General de Servicios de Cómputo Académico Análisis y diseño orientado a objetos con UML

Diplomado de Bases de Datos - Modelado Orientado a Objetos

Análisis y diseño orientado a objetos con UML Vista Lógica

Diagramas de estado

principal<<ventana>>

Altas<<ventana>>

"Listo/Cancelar"

"Nuevo miembro"

Impresión de credencial<<ventana>>

"Imprimir"

"Listo/Cancelar"

"Salir"

"Baja"<<ventana>>

"Terminar membresia"

"Listo/Cancelar"