Você está na página 1de 6

Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.

1
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de
Sistemas
Dpto. Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
Clase 9 Modelo Estructural Conceptos
Avanzados
Lic. Mara Mercedes Vitturini
[mvitturi@cs.uns.edu.ar]
1er. CUATRIMESTRE 2006
Anlisis y Diseo de Sistemas - Clase 9 2
Repaso - Modelo de Objetos
Muestra la estructura esttica de los objetos
y sus relaciones. Se compone de:
Diagrama de Clases. Es un esquema o molde
para describir muchas instancias posibles de los
datos.
Diagrama de Instancias. Describe un conjunto
particular de objetos que se relacionan unos con
otros, segn lo especifica el diagrama de clases.
Un diagrama de clases se corresponde con
infinitos conjuntos de diagramas de
instancias.
Anlisis y Diseo de Sistemas - Clase 9 3
Objetos y Clases
Objeto: es un concepto, abstraccin, o cosa
con lmites definidos y significado para el
contexto.
Clase: rene un conjunto de objetos con
propiedades (atributos),
comportamiento comn (operaciones),
relaciones con otros objetos comunes,
y semntica comn.
Anlisis y Diseo de Sistemas - Clase 9 4
Diagrama de Clases -
Representacin 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 Resumen de la Notaci n: n:
Nombre
Atributos
Operaciones
Anlisis y Diseo de Sistemas - Clase 9 5
Links y Asociaciones
Son formas de establecer relaciones:
Las asociaciones establecen relaciones entre clases.
Los links establecen relaciones entre objetos.
Una asociacin 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.
Anlisis y Diseo de Sistemas - Clase 9 6
Asociaciones distinguidas -
Agregacin y Generalizacin
Agregacin:
Es una relacin parte de.
Los objetos que representan componentes de algo
son asociados con un objeto que representa al
objeto ensamblado.
Generalizacin:
Es la relacin entre una clase y una o ms
versiones refinadas de ella.
La clase que refina es la superclase y la refinada es
la subclase.
Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.
2
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de Sistemas - Clase 9 7
Agregacin Ejemplo
Auto
Nro_Patente
Color
Ao_Fabricacin
Motor
Nro_Motor
Cilindradas
Chasis
Nro_Chasis
Rueda
Marca
Rodado
Estado
Anlisis y Diseo de Sistemas - Clase 9 8
Generalizacin Ejemplo
Auto
Nro_Patente
Color
Ao_Fabricacin
Camin
Altura
Tipo_Transporte
Utilitario
Nro_Asientos
Camioneta
Peso_Mximo
Fecha_Verificacin
Estado
Anlisis y Diseo de Sistemas - Clase 9 9
Agregacin vs. Asociacin
La agregacin es una forma especial de
asociacin, que aade connotaciones
semnticas.
Usar agregacin si:
Dos objetos estn fuertemente ligados por la frase
parte-de.
Existen algunas operaciones sobre el todo que
automticamente se aplican a las partes.
La relacin que existe entre los objetos es anti-
simtrica, Un objeto de una clase es subordinado del
objeto de otra clase.
Anlisis y Diseo de Sistemas - Clase 9 10
Agregacin Asociacin
Anlisis y Diseo de Sistemas - Clase 9 11
Agregacin vs. Generalizacin
Ambas relaciones se representan con una
estructura de rbol con clausura transitiva.
El rbol de agregacin est compuesto por
instancias de objetos, partes de un objeto
compuesto.
EL rbol de generalizacin est compuesto
por clases que describen a un objeto.
Anlisis y Diseo de Sistemas - Clase 9 12
Agregacin Generalizacin
Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.
3
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de Sistemas - Clase 9 13
Agregacin
Existen tres tipos de agregaciones:
Agregacin Fija
Agregacin Variable
Agregacin Recursiva.
La agregacin supone la propagacin de
operaciones.
Anlisis y Diseo de Sistemas - Clase 9 14
Agregaciones
Agregacin Fija:
Tienen una estructura fija.
El nmero de partes est predefinido.
Ejemplo:
Lmpara
Cable Base Perilla
Anlisis y Diseo de Sistemas - Clase 9 15
Tipos de agregaciones
Agregacin Variable:
Tienen un nmero finito de niveles.
Tienen un nmero de partes variable.
Ejemplo:
Empresa
Direccin
Departamento
Anlisis y Diseo de Sistemas - Clase 9 16
Tipos de agregaciones
Agregacin Recursiva:
Contiene directa o indirectamente una instancia de la
misma clase de agregados.
Nmero de niveles ilimitados.
Ejemplo:
Programa
Bloques
Sentencias
Compuestas
Sentencias
Simples
Anlisis y Diseo de Sistemas - Clase 9 17
Propagacin de Operaciones
Propagacin (trigger): es la aplicacin automtica
de una operacin a una red de objetos a partir de
un objeto inicial.
Ejemplo: mover un agregado consiste en mover todas sus
partes.
El propagar comportamiento est ligado a una
asociacin de agregacin, en la cual se nota la
direccin y la operacin.
Prrafo
Oraciones
mover
Anlisis y Diseo de Sistemas - Clase 9 18
Generalizacin
Se presentar los siguientes conceptos
relacionados con generalizacin:
Clases abstractas y concretas.
Generalizacin como extensin.
Generalizacin como restriccin.
Sobre-escritura de operaciones.
Herencia mltiple.
Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.
4
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de Sistemas - Clase 9 19
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?
Anlisis y Diseo de Sistemas - Clase 9 20
Clases Abstractas
Organizan rasgos comunes de varias clases.
Cmo surgen las clases abstractas?
Para agrupar clases que participan de una misma
asociacin o agregacin.
Representan clases que naturalmente aparecen en el
dominio de aplicacin.
Se crean artificialmente para promover la reutilizacin
de cdigo
Anlisis y Diseo de Sistemas - Clase 9 21
Reutilizacin de Cdigo
Se definen clases abstractas para promover la
reutilizacin de cdigo:
La clase abstracta define mtodos a ser heredados por
las subclases.
Las operaciones de la clase abstracta pueden definir el
protocolo (signatura), sin proveer el mtodo. En este
caso, se dice una operacin abstracta.
Anlisis y Diseo de Sistemas - Clase 9 22
Generalizacin como
Extensin
Una subclase puede agregar nuevos rasgos. Esto
se conoce como extensin.
Una clase descendiente no puede omitir o suprimir un
atributo de su ancestro.
Una operacin de una clase ancestro se debe aplicar
a todos sus descendientes.
Una clase descendiente puede volver a implementar
una operacin por eficiencia. No puede modificar el
protocolo.
Ejemplo:
La clase empleado autnomo puede incorporar las
operaciones necesarias para pagar el monotributo.
Anlisis y Diseo de Sistemas - Clase 9 23
Generalizacin como
Restriccin
Una subclase puede restringir los valores de los
atributos de sus ancestros. Esto se conoce como
restriccin. La restriccin puede ser:
De valores de los atributos.
De asociaciones (por ejemplo de orden, multiplicidad,
subconjunto).
Ejemplo: una superclase cuadriltero, y una
subclase cuadrado.
Qu atributos tiene la clase cuadriltero?
Qu restriccin hace la clase cuadrado?
Anlisis y Diseo de Sistemas - Clase 9 24
Sobre-escritura de
operaciones
El tema es ampliamente discutido.
Razones para sobre-escribir:
Extensin: la operacin es la misma pero agrega
comportamiento que afecta atributos de la
subclase.
Ejemplo: dibujar ventana dibujar ventana con ttulo.
Restriccin: la operacin restringe el protocolo.
Ejemplo: agregar elemento a conjunto agregar
elemento a conjunto de enteros.
Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.
5
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de Sistemas - Clase 9 25
Sobre-escritura de
operaciones
Razones para sobre-escribir:
Optimizacin: para mejorar la performance. Mantiene
el protocolo, vara la implementacin interna.
Ejemplo: buscar nmero en lista buscar nmero en lista
orenada.
Conveniencia: se realiza para reusar clases. Se
sobre-escriben mtodos por conveniencia.
Semnticamente es incorrecto. Trae problemas de
mantenimiento.
Anlisis y Diseo de Sistemas - Clase 9 26
Sobre-escritura de
operaciones
Se proponen las siguientes reglas:
Todas las operaciones de consulta se heredan.
Todos los comandos se heredan.
Las operaciones de actualizacin de atributos
restringidos, se bloquean en una restriccin.
Ejemplo: las operaciones de cuadriltero y cuadrado.
No sobre-escribir para lograr comportamiento
distinto.
Las operaciones heredadas pueden ser refinadas
para agregar comportamiento adicional.
Anlisis y Diseo de Sistemas - Clase 9 27
Herencia Mltiple
La herencia mltiple permite a una clase
tener ms de una superclase y heredar de
todos sus padres.
Ventajas
Presenta ms posibilidades de reutilizacin.
Desventajas
Es ms oscura y difcil de implementar.
Anlisis y Diseo de Sistemas - Clase 9 28
Herencia Mltiple
Vehculo
Terrestre
Acutico
Auto Anfibio
Barco
Anlisis y Diseo de Sistemas - Clase 9 29
Agregacin vs. Generalizacin
Relacin or Relacin and
clase de. La superclase y la
subclase se refieren a las
propiedades de un objeto.
parte de
Relaciona clases Relaciona instancias
Generalizacin Agregacin
Diagrama de Clases
Tcnicas para construir el Diagrama
de Clases
Estas transparencias proveen slo una referencia a los temas. Para su estudio debe remitirse a la bibliografa.
6
Universidad Nacional del Sur Departamento de Ciencias e Ingeniera de la Computacin
Anlisis y Diseo de Sistemas 1er.Cuatrimestre de 2006.
Anlisis y Diseo de Sistemas - Clase 9 31
Gua para la construccin de
un Diagrama de Clases
Identificar las clases conceptuales
relacionadas con la iteracin actual.
Utilizar como gua la lista de clases conceptuales.
Identificar frases nominales.
Crear un modelo de dominio inicial.
Distinguir atributos.
Plantear las asociaciones.
Refinar.
Anlisis y Diseo de Sistemas - Clase 9 32
Decisiones a tomar
Algunas decisiones a tomar al momento de
construir un diagrama de clases:
Algo se representa mejor como una clase o como un
atributo?
Es mejor representar una asociacin con atributos o
definirla como una clase?
Existe la posibilidad de incluir asociaciones
diferenciadas como agregacin o generalizacin?
No existe una nica respuesta. Depende .
Estar dispuesto a construir un diagrama,
analizarlo crticamente y refinar.
Anlisis y Diseo de Sistemas - Clase 9 33
Ejemplo
Un restaurante desea automatizar el proceso de reservas de
mesas as como el de registro de los pedidos de consumicin de
las mesas. Los clientes del restaurante a travs de unos
terminales punto de reserva (TPR) ubicados en la entrada del
restaurante pueden reservar una mesa. Las mesas estn
separadas en fumador y no fumador y adems cada una indica
la cantidad de personas que puede alojar. Cada cliente puede
elegir que mesa o mesas desea reservar. Indica sus datos
personales y fecha y horario de la reserva. Cuando un cliente
llega al restaurante (con o sin reserva) el encargado le asigna
una mesa. Todos los pedidos de platos y bebidas que haga se
asocian a la mesa. Cada plato y bebida tiene asignado un
precio. Se desea poder calcular automticamente el importe de
lo consumido al momento de cerrar la mesa. A la firma le
interesa poder obtener antes del medioda y antes de la cena un
listado con todas las mesas reservadas ordenado por el apellido
del cliente. Anlisis y Diseo de Sistemas - Clase 9 34
Temas de la clase de hoy
Modelo de Clases - Conceptos Avanzados.
Agregacin, tipos de agregacin y propagacin de
operaciones
Generalizacin, clases abstractas, generalizacin
como restriccin y generalizacin como restriccin.
Gua para la construccin de un diagrama de clases.
Bibliografa
Object Oriented Modeling and Design J ames
Rumbaugh. Captulo 3 y 4.
Anlisis y Diseo de Sistemas - Clase 9 35
Anexo Organizacin de
Clases Conceptuales
Se presenta una lista de categoras para
identificar clases conceptuales:
Objetos tangibles o fsicos:
Ejemplos: avin, asiento.
Descripciones de las cosas:
Ejemplos: DescripcinDeVuelo, DescripcinDeArtculo
Transacciones:
Ejemplos: Venta, Pago, Reserva.
Renglones de Transacciones:
Ejemplos: RenglnDeVenta.
Anlisis y Diseo de Sistemas - Clase 9 36
Categora de Clases
Conceptuales
Roles de gente (si se desea mantener datos):
Ejemplos: Cajero, piloto.
Contenedores de cosas:
Ejemplos: Avin, LibroDeActas.
Cosas en un contenedor:
Ejemplos: Asientos, actas.
Hechos:
Ejemplos: Venta, Vuelo, Pago.
Etc.

Você também pode gostar