Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.
Vistas de un Sistema- Repaso
ANÁLISIS Y DISEÑO DE SISTEMAS
• Un modelo es la representación abstracta de un problema. • Los modelos de IS representan distintas vistas de un mismo problema: – Vista del usuario: representa un sistema (producto) desde la vista del usuario (actor).
Clase VII: Modelado Estructural I
– 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
Primer Cuatrimestre 2013
Mg. María Mercedes Vitturini [
[email protected]] Dpto. Cs. e Ing. de la Computación Universidad Nacional del Sur
2
AyDS2013 - Clase 7- MMV
La vista estructural
Modelos de Datos
Ejemplo – Venta Electrónica de Material Bibliográfico • La funcionalidad será de uso público, pero se requiere que los clientes se previamente se registren. • Al registrar a un nuevo usuario se le solicitará nombre y apellido, dirección de correo electrónico, la que servirá como identificación del usuario, fecha de nacimiento, sexo y opcionalmente un teléfono de contacto. Además se requerirá que ingrese y confirme una clave a elección y copie el texto variable que se muestra en pantalla. • Al confirmar la registración, el sistema controlará si el usuario existe, en cuyo caso notificará la situación. • También se dará la opción de solicitar recuperar la contraseña para los casos de olvido. Identificar que corresponde a la vista de datos en este enunciado AyDS2013 - Clase 7- MMV
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. Manejan estructuras simples que se usan a nivel de desarrollo. • Modelos Físicos: de menor abstracción. Son estructuras de datos a bajo nivel usadas en la implementación
+•
-
3
Modelo de Datos Conceptual
AyDS2013 - Clase 7- MMV
Métodos y Técnicas para MDC
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.
MDC tradicionales: • Existen distintas opciones en modelos de datos
5
AyDS2013 - Clase 7- MMV
AyDS2013 - Clase 7- MMV
4
– 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 con expertos del dominio. • Pueden resultar complejos para usuarios y clientes que no están adiestrados en el uso de abstracciones. 6
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 2013.
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 Clases
– El diagrama de Conceptos de Negocio.
Herramienta de UML que sirve para modelar la Vista Estructural OO
– 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. 7
AyDS2013 - Clase 7- MMV
Diagrama de Clases (DC)
Ejemplo #1
• 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.
9
Socio Película Número Apellido Nombres Domicilio Estado
ANALISIS
DISEÑO
* darNúmero () darApellido y Nombres ()
Película
aTérmino () darTipo ()
*
Número Título Genero Duración Estado darNúmero () darEstado ()
10
AyDS2013 - Clase 7- MMV
Diagrama de Objetos (DO)
Socio
Alq_número Alq_Fecha Alq_FechaDevol Alq_Tipo
*
Diagrama de Clases del Dominio (vista parcial)
Ejemplo #2
Alquiler
alquila
darNúmero () darApellido y Nombres ()
AyDS2013 - Clase 7- MMV
Número Apellido Nombres Domicilio Estado
*
Número Título Genero Duración Estado darNúmero () darEstado ()
• 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.
Diagrama de Clases del Dominio Refinado (vista parcial) 11
AyDS2013 - Clase 7- MMV
12
AyDS2013 - Clase 7- MMV
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 2013.
Diagrama de Objetos
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: – – – –
Objetos Diagrama de Objetos o Diagrama de Instancias 13
AyDS2013 - Clase 7- MMV
14
Representación Gráfica nombre
Clase
Objetos
Persona Mario: Persona
nombre: string,
atributos
darNombre ()
Mario, (“24 /10/1985”): Persona
darEdad () : Persona
• 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.
operaciones
15
AyDS2013 - Clase 7- MMV
16
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 AyDS2013 - Clase 7- MMV
17
AyDS2013 - Clase 7- MMV
Clases
Mario: Persona
fecha_nac: date()
propiedades (atributos), comportamiento común (operaciones), tipos de relaciones con otros objetos comunes, y semántica común.
Clase con atributos
Mario:Persona nombre= Mario
AyDS2013 - Clase 7- MMV
Operaciones Operación: es una función o transformación que se puede aplicar a, o por objetos de 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.
edad= 22 Objeto con valores
18
AyDS2013 - Clase 7- MMV
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 2013.
Operaciones - Ejemplos
Métodos Método – es la implementación de una operación en una clase.
Ventana
abrir() cerrar() mover() dibujar() manejarEvento()
Transacción
PelículaVideo
commit() rollback() tuvoExito()
reproducir() iniciar() parar() rebobinar()
19
• 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.
AyDS2013 - Clase 7- MMV
20
Representación de clases Resumen de la Notación Gráfica para Clases:
Asociaciones y Links Asociaciones y Links: son formas de establecer relaciones o vínculos. – Las asociaciones establecen relaciones entre clases. – Los links establecen relaciones entre objetos.
Nombre de la Clase nombre_atributo_1: tipo_de_dato = valor_por_defecto ... nombre_oper_1: (lista_argumentos) : tipo_resultado ...
21
AyDS2013 - Clase 7- MMV
• 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. 22
Asociaciones
AyDS2013 - Clase 7- MMV
Links
Asociación: describe un grupo de links con estructura común y semántica común. • Las asociaciones son inherentemente bidireccionales (forward o inversa). • La asociación puede tener nombre, que en general se lee en una dirección. • No necesariamente se implementan ambas. • Ejemplo – trabaja en (emplea a) 23
AyDS2013 - Clase 7- MMV
AyDS2013 - Clase 7- MMV
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.
24
AyDS2013 - Clase 7- MMV
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 2013.
Multiplicidad de asociación
Multiplicidad
• Multiplicidad: determina cuántas instancias de una clase se relacionan con una instancia de otra clase. • Ejemplos:
Empleado
– 3–5 – 2, 4, 6 – Muchos
1-2
• Generalmente las asociaciones son a “1” o a muchos. • En UML la multiplicidad se especifica como un intervalo a los extremos de la asociación:
– “1..*” indica 1 a muchos,
Cargos
– “3..5”, entre 3 y 5, “ – “*” en forma reducida indica 0 ó muchas. – Si no se especifica, se por convención se considera exactamente uno.
– Uno
25
AyDS2013 - Clase 7- MMV
26
Notación UML
Multiplicidad
AyDS2013 - Clase 7- MMV
0 ..*
• Una instancia de A se asocia con “ cero o varias” 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. AyDS2013 - Clase 7- MMV
27
28
Ejercicios
IMPORTANTE
• Establecer la multiplicidad para las siguientes asociaciones. – 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. – Alquilado_por entre AUTO Y CLIENTE 29
AyDS2013 - Clase 7- MMV
AyDS2013 - Clase 7- MMV
• En 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.
30
AyDS2013 - Clase 7- MMV
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 2013.
Asociaciones con Atributos
Asociaciones vs Clases
• 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.
• No confundir clases con atributos de asociación. Una clase, tiene identidad propia.
0..*
posee
Cursado
Materia
0..*
Cliente
Nro_Acta Año 0..* Cuatrimestre Resultado
Alumno
0..*
Cuenta Solicitud
0..*
Fecha 31
AyDS2013 - Clase 7- MMV
32
Roles
Examen nota fecha AyDS2013 - Clase 7- MMV
Roles - Ejemplo
• La asociación además de la multiplicidad en los extremos puede tener el 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.
33
AyDS2013 - Clase 7- MMV
34
Calificador
Calificador
• 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 “a 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. 0..1
Archivo
35
1
Nombre archivo
AyDS2013 - Clase 7- MMV
• 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.
Directorio
AyDS2013 - Clase 7- MMV
36
AyDS2013 - Clase 7- MMV
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 2013.
Asociaciones N-Arias • Generalmente las asociaciones entre clases son binarias. • Ocasionalmente, se necesita de asociaciones n-arias. • Casi siempre se puede encontrar la 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.
Ejemplo – Asociación N-Aria Persona
* Lenguaje_de_Programación
*
* Proyecto
Persona
*
Representación de relación n-aria
Recurso_Proyecto * * Proyecto
37
AyDS2013 - Clase 7- MMV
39
AyDS2013 - Clase 7- MMV
AyDS2013 - Clase 7- MMV
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
Discriminador
Tipo de empleado
Docente
40
Generalización
No_Docente
AyDS2013 - Clase 7- MMV
Generalización y herencia
• Conceptos relacionados con el uso de generalización en la etapa de modelado:
• Las generalización es una construcción útil tanto para el modelado como para la implementación:
– Clases abstractas y concretas. – Generalización como extensión. – Generalización como restricción. – Sobre-escritura de operaciones. – Herencia múltiple.
41
Resolución con relaciones binarias
38
Generalización - Especialización • Es la asociación entre una clase y una o más versiones refinadas de ella. • La clase que se refina es la superclase y la refinada es la subclase. • La generalización-especialización es un tipo de asociación 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.
Lenguaje_de_Programació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.
AyDS2013 - Clase 7- MMV
42
AyDS2013 - Clase 7- MMV
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 2013.
Clases Abstractas
Clases Abstractas
• No contiene instancias directas. • Sus descendientes tienen instancias directas. • Una clase concreta es una clase con instancias.
¿Abstracta o concreta?
• 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
Trabajador
Panadero
• Tip! No usar conceptos relacionados con la implementación en la etapa de modelado del dominio.
Confitero
43
AyDS2013 - Clase 7- MMV
44
Agregación
Agregación – Ejemplo
• Es un tipo distinguido de asociación. • Es 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: 45
AyDS2013 - Clase 7- MMV
Ejemplo: Agregación – Asociación Empresa
* Departamento
AyDS2013 - Clase 7- MMV
*
Auto
5
Motor
Documento
46
Chasis
*
Párrafo
Rueda
*
Oración
AyDS2013 - Clase 7- MMV
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”.
Sección
• 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.
Proveedor
47
AyDS2013 - Clase 7- MMV
48
AyDS2013 - Clase 7- MMV
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 2013.
Generalización – Ejemplo
Agregación – Ejemplo Auto
Auto
Nro_Patente Color Año_Fabricación
Nro_Patente Color Año_Fabricación
5
1
1
Chasis
Motor
Rueda
Nro_Chasis
Nro_Motor Cilindradas
Marca Rodado Estado
49
AyDS2013 - Clase 7- MMV
Utilitario
Camión
Camioneta
Nro_Asientos
Altura Tipo_Transporte
Peso_Máximo Fecha_Verificación Estado
50
Agregación vs. Generalización
AyDS2013 - Clase 7- MMV
Agregación – 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.
51
AyDS2013 - Clase 7- MMV
52
Clases de Enumerados
Agregación vs. Generalización Agregación
53
Generalización
Relaciona instancias
Relaciona clases
“parte de”
“clase de”.
Relación “and”
Relación “or”
La superclase y la subclase se refieren a las propiedades de un objeto.
AyDS2013 - Clase 7- MMV
AyDS2013 - 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 • Ejemplo: – Sería incorrecto generalizar la clase Carta en CartaEspada, CartaBasto, etc.
54
AyDS2013 - Clase 7- MMV
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 2013.
Temas de la clase de hoy • Vista Estructural – 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. 55
AyDS2013 - Clase 7- MMV
Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
10