Modelos de Datos - cs.uns.edu.ar
Transcript of Modelos de Datos - cs.uns.edu.ar
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
1
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Mg. María Mercedes Vitturini [[email protected]]
Dpto. Cs. e Ingeniería de la Computación
Universidad Nacional del Sur
Primer cuatrimestre 2012
ANÁLISIS Y DISEÑO DE SISTEMAS
Clase 7: Modelos Estructurales – Diagrama de Clases
AyDS2012 - Clase 7- MMV 2
Vistas de un Sistema- Repaso
– Vista del usuario: representa un sistema (producto) desde la vista
del usuario (actor).
– Vista estructural: modela la estructura estática
(clases, objetos y relaciones). – Vista del comportamiento: representa los aspectos dinámicos o de
comportamiento del sistema. Muestra las interacciones entre los
elementos estructurales.
– Vista de implementación: representa cómo se implementa el
sistema.
– Otras
• Un modelo es la representación abstracta de un problema.
• Los modelos de IS representan distintas vistas de un problema:
Modelos de Datos
Clasificación según el nivel de abstracción
• Modelos Conceptuales: de mayor abstracción. Se
usan en la etapa de Análisis y están orientados a
representar los elementos del problema y sus
relaciones.
• Modelos Lógicos: de abstracción intermedia.
Están orientados a las operaciones. Manejan
estructuras simples.
• Modelos Físicos: de menor abstracción. Son
estructuras de datos a bajo nivel usadas en la
implementación
AyDS2012 - Clase 7- MMV 3
+
-
Modelos de Datos Conceptuales
Características
• Está orientado a la descripción de las
organización de los datos y restricciones de
integridad.
• Se usa en la etapa de análisis del problema.
• Busca representaciones abstractas para los
elementos del mundo real que intervienen en el
problema.
• Se abstrae de consideraciones y limitaciones de
implementación.
4 AyDS2012 - Clase 7- MMV
Métodos y Técnicas para MDC
MDC tradicionales:
• Existen distintas opciones en modelos de datos
– En análisis orientados a objetos: diagramas de
clases y sus variantes.
– En área de bases de datos: diagramas entidad
relación.
• Los MDC, según el caso, en general se usan
como medio de comunicación entre expertos.
• Pueden resultar complejos para usuarios y
clientes que no están adiestrados en el uso de
abstracciones.
AyDS2012 - Clase 7- MMV 5
MDC Orientados a Objetos • El modelado datos conceptual de las metodologías
Orientadas a Objetos muestra la estructura estática de los
objetos y sus relaciones. Incluye:
– El diagrama de Conceptos de Negocio.
– El diagrama de Clases, como un esquema o molde para
describir todas las instancias posibles de los datos.
– El diagrama de Instancias o Diagrama de Objetos.
Describe un conjunto particular de objetos que se
relacionan según lo especifica el diagrama de clases.
• Un diagrama de clases se corresponde con infinitos
conjuntos de diagramas de instancias.
AyDS2012 - Clase 7- MMV 6
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
2
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
El Diagrama de Clases
Herramienta de UML que sirve para
modelar la Vista Estructural OO
Diagrama de Clases (DC)
• Modela la vista estática del sistema, no modela
comportamiento en el tiempo.
• El DC describe el caso general.
• Provee una notación gráfica que permite representar
las clases y sus relaciones.
• En un diagrama de clase se pueden reunir:
Únicamente conceptos del dominio,
así como aquellos que forman parte del diseño o implementación.
Modelos de dominio.
Modelos de diseño.
ANALISIS
DISEÑO
AyDS2012 - Clase 7- MMV 8
AyDS2012 - Clase 7- MMV
Ejemplo #1
Película
Número
Título
Genero
Duración
Estado
darNúmero ()
darEstado ()
Socio
Número
Apellido
Nombres
Domicilio
Estado
darNúmero ()
darApellido y Nombres ()
alquila
Diagrama de Clases del Dominio – vista parcial
* *
9 AyDS2012 - Clase 7- MMV
Ejemplo #2
Película
Número
Título
Genero
Duración
Estado
darNúmero ()
darEstado ()
Socio
Número
Apellido
Nombres
Domicilio
Estado
darNúmero ()
darApellido y Nombres ()
Diagrama de Clases del Dominio – Vista parcial refinada
*
10
Alquiler
Alq_número
Alq_Fecha
Alq_FechaDevol
Alq_Tipo
aTérmino ()
darTipo ()
*
Diagrama de Objetos (DO)
• El diagrama de objetos o diagrama de
instancias muestra objetos individuales y sus
relaciones.
• Se puede usar para:
– Discutir con los usuarios.
– Plantear casos de prueba.
• Un diagrama de clases se corresponde con
infinitos diagramas de objetos.
AyDS2012 - Clase 7- MMV 11
Diagrama de Objetos
Diagrama de Objetos o Diagrama de Instancias
Objetos
AyDS2012 - Clase 7- MMV 12
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
3
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Objetos y Clases
Objeto – Es un concepto, abstracción, o cosa con
identidad y significado para el contexto de la
aplicación.
Clase – Reúne a un grupo de objetos con iguales:
– propiedades (atributos),
– comportamiento común (operaciones),
– tipos de relaciones con otros objetos comunes,
– y semántica común.
AyDS2012 - Clase 7- MMV 13
Representación Gráfica
Persona
nombre: string,
fecha_nac: date()
darNombre ()
darEdad ()
nombre
atributos
operaciones
Clase
Mario, (“24 /10/1985”): Persona
: Persona
Mario: Persona
Objetos
AyDS2012 - Clase 7- MMV
Mario: Persona
14
Clases
• Una clase del diagrama puede representar:
– Un concepto del mundo real (modelo del conceptual)
– Un concepto de implementación (modelo de diseño).
• El nombre de la clase debe identificar claramente
a los objetos que representa.
• Las clases conceptuales se nombran con un
sustantivo extraído del vocabulario del dominio
de la aplicación.
• Los objetos se agrupan en clases, para abstraer un problema. En la
abstracción radica el poder del modelado.
AyDS2012 - Clase 7- MMV 15
Atributos y Valores • Un atributo es una propiedad de la clase que tiene un
nombre y que describe el valor que mantiene cada objeto
dicha clase.
• El nombre de atributo es único en la clase.
• El valor que puede tomar un atributo está definido por el
dominio del atributo.
• Un atributo debe ser un valor de dato no un objeto.
• Los atributos pueden ir acompañado de más detalles como
tipo, valor por defecto, etc.
Persona
nombre: string,
edad: integer
Mario:Persona
nombre= Mario
edad= 22
Clase con atributos Objeto con valores
16 AyDS2012 - Clase 7- MMV
Operaciones
• Operación: es una función o transformación que se
puede aplicar a, o por objetos en una clase.
• El comportamiento de la operación depende de la
clase de su destino.
• La misma operación se puede aplicar a varias clases.
Una operación se dice polimórfica si se implementa
de diferentes maneras en distintas clases.
• En UML las operaciones se listan en la tercer parte
de la caja.
AyDS2012 - Clase 7- MMV 17
Operaciones - Ejemplos
Ventana
abrir()
cerrar()
mover()
dibujar()
manejarEvento()
Transacción
commit()
rollback()
tuvoExito()
PelículaVideo
reproducir()
iniciar()
parar()
rebobinar()
AyDS2012 - Clase 7- MMV 18
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
4
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Métodos
Método – es la implementación de una operación
en una clase.
• Si la misma operación tiene distintos métodos
en diferentes clases, debe tener la misma
signatura, esto es, número y tipo de argumentos
y tipo de resultado.
• Cada operación puede ir acompañada de
detalles adicionales como tipo de los
argumentos y tipo del resultado.
AyDS2012 - Clase 7- MMV 19
Representación de clases
Nombre de la Clase
nombre_atributo_1: tipo_de_dato = valor_por_defecto
...
nombre_oper_1: (lista_argumentos) : tipo_resultado
...
Resumen de la Notación Gráfica para Clases:
AyDS2012 - Clase 7- MMV 20
Links y Asociaciones
• Son formas de establecer relaciones o vínculos:
– Las asociaciones establecen relaciones entre
clases.
– Los links establecen relaciones entre objetos.
• Una asociación describe un conjunto de links
potenciales, de la misma manera que una clase
describe un conjunto de objetos potenciales.
• Generalmente aparecen como verbos en el
enunciado de un problema.
AyDS2012 - Clase 7- MMV 21
Asociaciones
Asociación: describe un grupo de links con
estructura común y semántica común.
• Las asociaciones son inherentemente bidireccionales (forward o inversa).
• Las asociaciones pueden tener nombre, que en general se lee en una dirección.
• No necesariamente se implementan ambas.
• Ejemplo
– trabaja en (emplea a)
AyDS2012 - Clase 7- MMV 22
Links
Link: formalmente un link es una conexión conceptual o física entre instancias de objetos.
• Un link es una instancia de una asociación.
• Matemáticamente es una “tupla” o lista ordenada de instancias de objetos.
AyDS2012 - Clase 7- MMV 23
• Multiplicidad: determina cuántas instancias de
una clase se pueden relacionar con una instancia
de otra clase.
• Ejemplos: – 3 – 5
– 2, 4, 6
– Muchos
– Uno
Multiplicidad de una asociación
Empleado
Cargos
1-2
AyDS2012 - Clase 7- MMV 24
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
5
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Multiplicidad • La mayoría de las veces las asociaciones son a
“1” o a muchos ó muchos a muchos.
• En UML se especifica la multiplicidad como un
intervalo al final de cada extremo de la
asociación:
– “1..*” indica 1 a muchos,
– “3..5”, entre 3 y 5, “
– “*” en forma reducida indica 0 ó muchas.
– Cuando no se especifica, se toma como
exactamente uno.
AyDS2012 - Clase 7- MMV 25
0 ..*
AyDS2012 - Clase 7- MMV 26
Notación UML
Multiplicidad
• Una instancia de A se asocia con “muchas” instancias de B.
• Una instancia de A se asocia con “1 o ninguna” instancias de B.
• Una instancia de A se asocia con exactamente “1” instancias de B.
AyDS2012 - Clase 7- MMV 27
Ejercicios
• Establecer la multiplicidad de las siguientes
asociaciones entre clases.
– Es capital entre CIUDAD y PROVINCIA.
– Pertenece entre CIUDAD y PROVINCIA.
– Cursa entre MATERIA y ALUMNO.
– Escrito por entre AUTOR y LIBRO.
– Reserva entre ESPECTADOR y TICKET.
– Padre entre PERSONA Y PERSONA.
AyDS2012 - Clase 7- MMV 28
IMPORTANTE
• Durante el modelado conceptual, NO deben
usarse punteros u otra clase de referencia de
objetos dentro de las clases como atributos. En
cambio debe modelarse como asociación, para
indicar que la información que contiene no está
subordinada a ninguna clase.
AyDS2012 - Clase 7- MMV 29
Asociaciones con Atributos • Una asociación puede tener unos o más atributo/s
de asociación que la describen o aportan datos
relacionados con la asociación.
• Se representa como una caja, enlazada a la
asociación por una línea punteada, y se dice que
representan una clase de asociación.
Carrera Persona
Alumno
Fecha_ingreso,
Estado
estudia 0..* 0..*
AyDS2012 - Clase 7- MMV 30
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
6
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Asociaciones vs Clases • No confundir clases con atributos de asociación.
Una clase, tiene identidad propia.
Materia Alumno
Cursado
Nro_Acta
Año
Cuatrimestre
Resultado
Examen
nota
fecha
0..* 0..*
0..*
AyDS2012 - Clase 7- MMV 31
Roles
• Una asociación además de la multiplicidad en los
extremos puede tener asignado un rol.
• Una asociación binaria tiene dos roles, cada uno
de los cuales tiene un nombre.
• Un nombre de rol es un nombre que
unívocamente identifica un extremo de la
asociación.
• Es necesario definir roles para asociaciones
entre objetos de la misma clase.
AyDS2012 - Clase 7- MMV 32
Roles - Ejemplo
AyDS2012 - Clase 7- MMV 33
Calificación
• Una asociación calificada es una asociación en
la cual un atributo llamado el calificador quita
ambigüedad a una asociación que en su
extremo era un muchos.
• El calificador es un atributo especial que reduce
la multiplicidad de una asociación.
• Se pueden calificar las asociaciones 1-m o m-m.
Archivo Directorio Nombre archivo 1
0..1
AyDS2012 - Clase 7- MMV 34
Calificación
• El calificador distingue entre el conjunto de
objetos del lado muchos de la asociación.
• La calificación sirve para:
– Mejorar la exactitud de la semántica.
– Aumentar la visibilidad de los caminos de
navegación.
• La calificación se incluye en modelos de clases
más refinados.
AyDS2012 - Clase 7- MMV 35
Asociaciones N-Arias
• Generalmente las asociaciones entre clases son
binarias.
• Ocasionalmente se pueden necesitar
asociaciones n-arias, entre n-clases.
• Casi siempre se puede encontrar una
representación de una asociación n-aria a
través de varias relaciones binarias.
• A nivel conceptual es más claro en ciertos casos
modelar como asociación n-aria.
AyDS2012 - Clase 7- MMV 36
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
7
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Ejemplo – Asociación N-Aria
AyDS2012 - Clase 7- MMV
Persona Lenguaje_de_Programación
Proyecto
Persona
Lenguaje_de_Programación
Proyecto
Recurso_Proyecto
Representación de relación n-aria
Resolución con relaciones binarias
*
* *
*
*
*
37
Generalización - Especialización
• Es la relación entre una clase y una o más
versiones refinadas de ella.
• La clase que refina es la superclase y la
refinada es la subclase.
• Es transitiva y antisimétrica.
• Los atributos y operaciones comunes a las
subclases son asociados a la superclase y
compartidos por las subclases.
• Es una relación “es un”, ya que cada instancia
de la subclase es una instancia de la
superclase. AyDS2012 - Clase 7- MMV 38
Generalización • Discriminador: es un atributo de tipo enumerado
que indica la propiedad del objeto que se abstrae
en una relación de generalización.
Empleado
Docente No_Docente
Tipo de empleado
Discriminador
AyDS2012 - Clase 7- MMV 39
Generalización
• Conceptos relacionados con el uso de
generalización en la etapa de modelado:
– Clases abstractas y concretas.
– Generalización como extensión.
– Generalización como restricción.
– Sobre-escritura de operaciones.
– Herencia múltiple.
AyDS2012 - Clase 7- MMV 40
Generalización y herencia • Las generalización es una construcción útil tanto
para el modelado conceptual como para la
implementación:
– Estructura las clases, agrupando similitudes y
diferencias.
– La herencia de operaciones es útil durante la
implementación como un medio para reutilizar
código.
AyDS2012 - Clase 7- MMV 41
Clases Abstractas
• No contiene instancias directas.
• Sus descendientes tienen instancias directas.
• Una clase concreta es una clase con instancias.
Trabajador
Confitero Panadero
¿Abstracta o
concreta?
AyDS2012 - Clase 7- MMV 42
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
8
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Clases Abstractas • Organizan rasgos comunes de varias clases.
• ¿Cómo surgen las clases abstractas?
– Para agrupar clases que participan de una misma
asociación o agregación.
– Representan clases que naturalmente aparecen
en el dominio de aplicación.
– Se crean artificialmente para promover la
reutilización de código
• Aspectos relacionados con la implementación. No
usar en la etapa de modelado del análisis.
AyDS2012 - Clase 7- MMV 43
Generalización como Extensión
Extensión: cuando una subclase agrega nuevos
rasgos (atributos y/o operaciones).
– Una subclase no puede omitir un atributo de su ancestro.
– La operación del ancestro se debe aplicar a todos sus descendientes.
– La subclase puede volver a implementar una operación por eficiencia respetando el protocolo.
Ejemplo
– La clase empleado autónomo puede incorporar las operaciones necesarias para pagar el monotributo.
AyDS2012 - Clase 7- MMV 44
Generalización como Restricción
Restricción: Una subclase puede restringir rasgos
de sus ancestros. La restricción puede ser:
– De valores de los atributos.
– De asociaciones (por ejemplo de orden,
multiplicidad, subconjunto).
Ejemplo:
• La superclase cuadrilátero, y una subclase
cuadrado.
– ¿Qué atributos tiene la clase cuadrilátero?
– ¿Qué restricción hace la clase cuadrado?
AyDS2012 - Clase 7- MMV 45
Agregación • Es un tipo especial de asociación.
• Representa un tipo de relación fuerte: parte de,
en la cual los objetos que representan
componentes de algo son asociados con un
objeto que representa al objeto ensamblador.
• La agregación es transitiva y antisimétrica.
• El agregado es un objeto semánticamente
extendido que en ciertas operaciones es tratado
como una unidad.
• Notación:
AyDS2012 - Clase 7- MMV 46
Agregación – Ejemplo
Auto
Chasis Motor Rueda
5
Párrafo Documento Oración * *
AyDS2012 - Clase 7- MMV 47
Agregación vs. Asociación
• La agregación es una forma especial de asociación, que añade connotaciones semánticas.
• Usar agregación si:
– Dos objetos están fuertemente ligados por la frase parte-de.
– Existen algunas operaciones sobre el todo que automáticamente se aplican a las partes.
– La relación que existe entre los objetos es esencialmente antisimétrica, un objeto de una clase es subordinado del objeto de otra clase.
AyDS2012 - Clase 7- MMV 48
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
9
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Ejemplo: Agregación – Asociación
Empresa Departamento Sección
Proveedor
* *
*
AyDS2012 - Clase 7- MMV 49
Agregación vs Generalización
• Agregación:
– Es una relación “parte de”.
– Los objetos que representan componentes de algo
son asociados con un objeto que representa al
objeto “ensamblado”.
• Generalización:
– Es la relación entre una clase y una o más
versiones refinadas de ella.
– La clase que refina es la superclase y la refinada es
la subclase.
AyDS2012 - Clase 7- MMV 50
Agregación – Ejemplo
Auto
Nro_Patente
Color
Año_Fabricación
Motor
Nro_Motor
Cilindradas
Chasis
Nro_Chasis
1 1 5
AyDS2012 - Clase 7- MMV
Rueda
Marca
Rodado
Estado
51
Generalización – Ejemplo
Auto
Nro_Patente
Color
Año_Fabricación
Camión
Altura
Tipo_Transporte
Utilitario
Nro_Asientos
Camioneta
Peso_Máximo
Fecha_Verificación
Estado
AyDS2012 - Clase 7- MMV 52
Agregación vs. Generalización
• Ambas relaciones se representan con una
estructura de árbol con clausura transitiva y
relación antisimética.
• Sin embargo,
– El árbol de agregación está compuesto por
instancias de objetos, partes de un objeto
compuesto.
– EL árbol de generalización está compuesto por
clases que describen a un objeto.
AyDS2012 - Clase 7- MMV 53
Agregación – Generalización
AyDS2012 - Clase 7- MMV 54
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
10
Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2012.
Agregación vs. Generalización
Agregación Generalización
Relaciona instancias Relaciona clases
“parte de” “clase de”. La superclase y la
subclase se refieren a las
propiedades de un objeto.
Relación “and” Relación “or”
55 AyDS2012 - Clase 7- MMV
• Un tipo enumerado es un tipo de datos que tiene
un conjunto finito de valores.
• No confundir con generalización.
• Las clases enumeradas se marcan con el
estereotipo <<enumeration>>
• Ejemplo:
– Sería incorrecto generalizar la clase Carta en
CartaEspada, CartaBasto, etc.
Clases de Enumerados
AyDS2012 - Clase 7- MMV 56
Temas de la clase de hoy
• Modelo de Objetos.
– Diagrama de Clases
• Clases, atributos, operaciones
• Relaciones, asociación, generalización.
– Diagrama de Objetos
• Bibliografía – “Object Oriented Modeling and Design with UML” –
James Rumbaugh. Capítulo 3.
• Lecturas sugeridas.
– “El Lenguaje Unificado de Modelado” – Booch, Jacobson, Rumbaugh. Capítulos 4 y 5.
AyDS2012 - Clase 7- MMV 57