Está en la página 1de 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 2006.

Repaso - Modelo de Objetos


Análisis y Diseño de z Muestra la estructura estática de los objetos
Sistemas y sus relaciones. Se compone de:
z Diagrama de Clases. Es un esquema o molde
Dpto. Ciencias e Ingeniería de la Computación para describir muchas instancias posibles de los
Universidad Nacional del Sur
datos.
Clase 9 – Modelo Estructural – Conceptos z Diagrama de Instancias. Describe un conjunto
Avanzados particular de objetos que se relacionan unos con
Lic. María Mercedes Vitturini
otros, según lo especifica el diagrama de clases.
[mvitturi@cs.uns.edu.ar]
z Un diagrama de clases se corresponde con
1er. CUATRIMESTRE 2006
infinitos conjuntos de diagramas de
instancias. Análisis y Diseño de Sistemas - Clase 9 2

Diagrama de Clases -
Objetos y Clases Representación de clases
z Objeto: es un concepto, abstracción, o cosa
Resumen de la Notació
Notación:
con límites definidos y significado para el
contexto.
Nombre Nombre de la Clase
z Clase: reúne un conjunto de objetos con nombre_atributo_1:tipo _de_dato = valor_por_defecto
z propiedades (atributos), ...
z comportamiento común (operaciones), nombre_oper_1: (lista_argumentos) : tipo_resultado
Atributos
z relaciones con otros objetos comunes, ...
z y semántica común.
Operaciones

Análisis y Diseño de Sistemas - Clase 9 3 Análisis y Diseño de Sistemas - Clase 9 4

Asociaciones distinguidas -
Links y Asociaciones Agregación y Generalización
z Son formas de establecer relaciones: z Agregación:
z Las asociaciones establecen relaciones entre clases. z Es una relación “parte de”.
z Los links establecen relaciones entre objetos. z Los objetos que representan componentes de algo
son asociados con un objeto que representa al
objeto “ensamblado”.
z Una asociación describe un conjunto de links
potenciales, de la misma manera que una clase z Generalización:
describe un conjunto de objetos potenciales. z Es la relación entre una clase y una o más
versiones refinadas de ella.
z Generalmente aparecen como verbos en el
z La clase que refina es la superclase y la refinada es
enunciado de un problema.
la subclase.
Análisis y Diseño de Sistemas - Clase 9 5 Análisis y Diseño de Sistemas - Clase 9 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 2006.

Agregación – Ejemplo Generalización – Ejemplo


Auto Auto

Nro_Patente Nro_Patente
Color Color
Año_Fabricación Año_Fabricación

Chasis Motor Rueda


Utilitario Camión Camioneta
Nro_Chasis Nro_Motor Marca
Cilindradas Rodado Nro_Asientos Altura Peso_Máximo
Estado Tipo_Transporte Fecha_Verificación
Estado

Análisis y Diseño de Sistemas - Clase 9 7 Análisis y Diseño de Sistemas - Clase 9 8

Agregación vs. Asociación Agregación – Asociación


z La agregación es una forma especial de
asociación, que añade connotaciones
semánticas.
z Usar agregación si:
z Dos objetos están fuertemente ligados por la frase
parte-de.
z Existen algunas operaciones sobre el todo que
automáticamente se aplican a las partes.
z La relación que existe entre los objetos es anti-
simétrica, Un objeto de una clase es subordinado del
objeto de otra clase.

Análisis y Diseño de Sistemas - Clase 9 9 Análisis y Diseño de Sistemas - Clase 9 10

Agregación vs. Generalización Agregación – Generalización


z Ambas relaciones se representan con una
estructura de árbol con clausura transitiva.
z El árbol de agregación está compuesto por
instancias de objetos, partes de un objeto
compuesto.
z EL árbol de generalización está compuesto
por clases que describen a un objeto.

Análisis y Diseño de Sistemas - Clase 9 11 Análisis y Diseño de Sistemas - Clase 9 12

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 2006.

Agregación Agregaciones
z Agregación Fija:
z Existen tres tipos de agregaciones:
z Tienen una estructura fija.
z Agregación Fija
z El número de partes está predefinido.
z Agregación Variable
z Ejemplo:
z Agregación Recursiva.

Lámpara
z La agregación supone la propagación de
operaciones.
Base Cable Perilla
Análisis y Diseño de Sistemas - Clase 9 13 Análisis y Diseño de Sistemas - Clase 9 14

Tipos de agregaciones Tipos de agregaciones


z Agregación Variable: z Agregación Recursiva:
z Tienen un número finito de niveles. z Contiene directa o indirectamente una instancia de la
misma clase de agregados.
z Tienen un número de partes variable.
z Número de niveles ilimitados. Programa
z Ejemplo:
z Ejemplo:
Empresa
Bloques
Dirección

Departamento Sentencias Sentencias


Compuestas Simples
Análisis y Diseño de Sistemas - Clase 9 15 Análisis y Diseño de Sistemas - Clase 9 16

Propagación de Operaciones Generalización


z Propagación (trigger): es la aplicación automática
z Se presentar los siguientes conceptos
de una operación a una red de objetos a partir de
un objeto inicial.
relacionados con generalización:
z Ejemplo: mover un agregado consiste en mover todas sus z Clases abstractas y concretas.
partes. z Generalización como extensión.
z El propagar comportamiento está ligado a una z Generalización como restricción.
asociación de agregación, en la cual se nota la z Sobre-escritura de operaciones.
dirección y la operación.
z Herencia múltiple.
Párrafo Oraciones
mover

Análisis y Diseño de Sistemas - Clase 9 17 Análisis y Diseño de Sistemas - Clase 9 18

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 2006.

Clases Abstractas Clases Abstractas


z No contiene instancias directas. z Organizan rasgos comunes de varias clases.
z Sus descendientes tienen instancias directas. z ¿Cómo surgen las clases abstractas?
z Una clase concreta es una clase con instancias. z Para agrupar clases que participan de una misma
asociación o agregación.
¿Abstracta o
z Representan clases que naturalmente aparecen en el
Trabajador
concreta? dominio de aplicación.
z Se crean artificialmente para promover la reutilización
de código
Panadero Confitero

Análisis y Diseño de Sistemas - Clase 9 19 Análisis y Diseño de Sistemas - Clase 9 20

Generalización como
Reutilización de Código Extensión
z Una subclase puede agregar nuevos rasgos. Esto
z Se definen clases abstractas para promover la
se conoce como extensión.
reutilización de código: z Una clase descendiente no puede omitir o suprimir un
z La clase abstracta define métodos a ser heredados por atributo de su ancestro.
las subclases. z Una operación de una clase ancestro se debe aplicar
z Las operaciones de la clase abstracta pueden definir el a todos sus descendientes.
protocolo (signatura), sin proveer el método. En este z Una clase descendiente puede volver a implementar
caso, se dice una operación abstracta. una operación por eficiencia. No puede modificar el
protocolo.
z Ejemplo:
z La clase empleado autónomo puede incorporar las
operaciones necesarias para pagar el monotributo.
Análisis y Diseño de Sistemas - Clase 9 21 Análisis y Diseño de Sistemas - Clase 9 22

Generalización como Sobre-escritura de


Restricción operaciones
z Una subclase puede restringir los valores de los z El tema es ampliamente discutido.
atributos de sus ancestros. Esto se conoce como z Razones para sobre-escribir:
restricción. La restricción puede ser:
z Extensión: la operación es la misma pero agrega
z De valores de los atributos. comportamiento que afecta atributos de la
z De asociaciones (por ejemplo de orden, multiplicidad, subclase.
subconjunto). z Ejemplo: dibujar ventana – dibujar ventana con título.
z Ejemplo: una superclase cuadrilátero, y una z Restricción: la operación restringe el protocolo.
subclase cuadrado. z Ejemplo: agregar elemento a conjunto – agregar
z ¿Qué atributos tiene la clase cuadrilátero? elemento a conjunto de enteros.
z ¿Qué restricción hace la clase cuadrado?

Análisis y Diseño de Sistemas - Clase 9 23 Análisis y Diseño de Sistemas - Clase 9 24

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 2006.

Sobre-escritura de Sobre-escritura de
operaciones operaciones
z Razones para sobre-escribir: z Se proponen las siguientes reglas:
z Optimización: para mejorar la performance. Mantiene z Todas las operaciones de consulta se heredan.
el protocolo, varía la implementación interna. z Todos los comandos se heredan.
z Ejemplo: buscar número en lista – buscar número en lista z Las operaciones de actualización de atributos
orenada. restringidos, se bloquean en una restricción.
z Conveniencia: se realiza para reusar clases. Se z Ejemplo: las operaciones de cuadrilátero y cuadrado.
sobre-escriben métodos por conveniencia. z No sobre-escribir para lograr comportamiento
Semánticamente es incorrecto. Trae problemas de distinto.
mantenimiento. z Las operaciones heredadas pueden ser refinadas
para agregar comportamiento adicional.

Análisis y Diseño de Sistemas - Clase 9 25 Análisis y Diseño de Sistemas - Clase 9 26

Herencia Múltiple Herencia Múltiple


z La herencia múltiple permite a una clase Vehículo
tener más de una superclase y heredar de
todos sus padres.
z Ventajas Acuático
Terrestre
z Presenta más posibilidades de reutilización.
z Desventajas
z Es más oscura y difícil de implementar.
Auto Anfibio Barco

Análisis y Diseño de Sistemas - Clase 9 27 Análisis y Diseño de Sistemas - Clase 9 28

Agregación vs. Generalización

Agregación Generalización
Diagrama de Clases
Relaciona instancias Relaciona clases

“parte de” “clase de”. La superclase y la


subclase se refieren a las Técnicas para construir el Diagrama
propiedades de un objeto. de Clases
Relación “and” Relación “or”

Análisis y Diseño de Sistemas - Clase 9 29

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 2006.

Guía para la construcción de


un Diagrama de Clases Decisiones a tomar
z Algunas decisiones a tomar al momento de
z Identificar las clases conceptuales construir un diagrama de clases:
relacionadas con la iteración actual. z ¿Algo se representa mejor como una clase o como un
z Utilizar como guía la lista de clases conceptuales. atributo?
z ¿Es mejor representar una asociación con atributos o
z Identificar frases nominales.
definirla como una clase?
z Crear un modelo de dominio inicial. z ¿Existe la posibilidad de incluir asociaciones
z Distinguir atributos. diferenciadas como agregación o generalización?
z No existe una única respuesta. Depende 1.
z Plantear las asociaciones.
Estar dispuesto a construir un diagrama,
z Refinar. analizarlo críticamente y refinar.
Análisis y Diseño de Sistemas - Clase 9 31 Análisis y Diseño de Sistemas - Clase 9 32

Ejemplo
Un restaurante desea automatizar el proceso de reservas de Temas de la clase de hoy
mesas así como el de registro de los pedidos de consumición de
las mesas. Los clientes del restaurante a través de unos z Modelo de Clases - Conceptos Avanzados.
terminales punto de reserva (TPR) ubicados en la entrada del z Agregación, tipos de agregación y propagación de
restaurante pueden reservar una mesa. Las mesas están
separadas en fumador y no fumador y además cada una indica operaciones
la cantidad de personas que puede alojar. Cada cliente puede z Generalización, clases abstractas, generalización
elegir que mesa o mesas desea reservar. Indica sus datos como restricción y generalización como restricción.
personales y fecha y horario de la reserva. Cuando un cliente
z Guía para la construcción de un diagrama de clases.
llega al restaurante (con o sin reserva) el encargado le asigna
una mesa. Todos los pedidos de platos y bebidas que haga se z Bibliografía
asocian a la mesa. Cada plato y bebida tiene asignado un
z “Object Oriented Modeling and Design” – James
precio. Se desea poder calcular automáticamente el importe de
lo consumido al momento de cerrar la mesa. A la firma le Rumbaugh. Capítulo 3 y 4.
interesa poder obtener antes del mediodía y antes de la cena un
listado con todas las mesas reservadas ordenado por el apellido
del cliente. Análisis y Diseño de Sistemas - Clase 9 33 Análisis y Diseño de Sistemas - Clase 9 34

Anexo – Organización de Categoría de Clases


Clases Conceptuales Conceptuales
z Se presenta una lista de categorías para z Roles de gente (si se desea mantener datos):
identificar clases conceptuales: z Ejemplos: Cajero, piloto.
z Objetos tangibles o físicos: z Contenedores de cosas:
z Ejemplos: avión, asiento. z Ejemplos: Avión, LibroDeActas.
z Descripciones de las cosas: z Cosas en un contenedor:
z Ejemplos: DescripciónDeVuelo, DescripciónDeArtículo z Ejemplos: Asientos, actas.
z Transacciones:
z Hechos:
z Ejemplos: Venta, Pago, Reserva.
z Ejemplos: Venta, Vuelo, Pago.
z Renglones de Transacciones:
z Ejemplos: RenglónDeVenta. z Etc.

Análisis y Diseño de Sistemas - Clase 9 35 Análisis y Diseño de Sistemas - Clase 9 36

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.
6