Download - Modelos de Datos - cs.uns.edu.ar

Transcript

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