CAPITULO 22
Los conceptos de Análisis y diseño orientado a objetos surgieron a partir de los desarrollos
de lenguajes modernos de programación.
• Con O-O muchos productos se están fabricando cada vez mas bajo pedido o fabricados en
lotes pequeños.
El análisis y diseño orientado a objetos esta muy ligado con la programación orientada a
objetos.
PREGUNTAS DE REPASO.
1. ¿Cuáles son las seis ideas básicas que caracterizan al programación orientada a
objetos?
• Objetos.
• Clases.
• Mensajes.
• Encapsulacion.
• Herencia.
• Polimorfismo
3. ¿Cómo cambia la encapsulacion la forma en que los datos son actualizados por los
programas?
Pidiéndole a un objeto, atreves de mensajes, que cambie sus propios datos, en vez de
esperar que tales datos de procesos externos cambien la naturaleza del objeto.
5. ¿La herencia múltiple significa que habrá múltiples apariciones de cualquier tipo de
clase en la relación de herencia?
Significa que se puede crear una clase derivada, de tal forma, que herede todos los
atributos y comportamientos de más de una clase base.
Clase Base Clase Base
Automóviles Bicicletas
Motocicletas
Clase Derivada
Si, ya que este es el comportamiento diferente entre clases derivadas relacionadas. Puede
haber el caso donde el comportamiento de una clase derivada es diferente del de su clase
o sus clases derivadas.
• Los que pueden tener ocurrencia (Por toda la vida; plazo de vida)
Coad y Yourdon proporcionan la notación clase y objeto para distinguir gráficamente entre
estructuras y mensajes que están orientados hacia la clase de estructuras y mensajes
orientados al objeto.
9. ¿Cuáles son los ocho criterios usados para determinar si se justifica una nueva
clase?
• Hay una necesidad de recordar el objeto. Esto es, el objeto puede ser descrito en un
sentido definido y sus atributos son relevantes para el problema.
• Hay una necesidad de determinados comportamientos del objeto. Esto es, aunque un
objeto no tenga atributos, hay servicios que debe proporcionar a estos de objetos que
deben ser llamados.
• Usualmente un objeto tendrá varios atributos. Los objetos que tienen solamente uno o
dos atributos sugieren diseños sobre analizados.
• Usualmente una clase tendrá más de una instancia de objeto, a menos que se una a
clase base.
• Usualmente los atributos tendrán siempre un valor significativo para cada objeto de
clase. Los objetos que producen un valor NULO para un atributo, o para los que no es
aplicable un atributo, por lo general implican una estructura generalización-
especialización.
• Usualmente los servicios siempre se comportaran en la misma forma para todos los
objetos de una clase. Los servicios que varían dramáticamente para algunos objetos de
una clase o que regresan sin realizar acción para algunos objetos también sugieren
una estructura generalización-especificación.
• Los objetos deben implementar requerimientos que son derivados del problema y no de
la tecnología de solución. La parte de análisis del proyecto O-O no debe llegar a ser
dependiente de una tecnología de implementación particular, tal como un sistema de
computadora especifico o un lenguaje de programación especifico. Los objetos que
atienden tales detalles técnicos no deben aparecer sino hasta muy tarde en la etapa de
diseño. Los objetos dependientes de la tecnología sugiere que el proceso de análisis
tiene fallas.
• Los objetos no deben duplicar atributos o servicios que pueden ser derivados de otros
objetos en el sistema. Por ejemplo, un objeto que guarda la edad de un empleado es
superfluo cuando existe un objeto de empleado separado que conserva el atributo
“fecha de nacimiento”. El objeto edad puede ser eliminado por un servicio edad que es
componente del objeto empleado.
10. ¿Cuáles son los dos tipos básicos de estructuras que pueden ser impuestas en
clases y objetos?
• La estructura Completo-parte.
11. ¿Cuál es el nombre de la notación usada para indicar una referencia de una clase
hacia una clase no relacionada?
12. ¿Cómo pueden ser descubiertos fácilmente los cambios de estado en los objetos?
Encontrando los atributos de cada objeto que afectan el comportamiento del objeto.
Mientras examinamos cada atributo, nos preguntamos, “Cambiara el comportamiento del
objeto cuando cambie el valor de este atributo?”
14. ¿Cómo se indican los mensajes en la capa de servicio del diagrama de Coad y
Yourdon?
En proyectos grandes que involucran muchas clases. Permite subdividir una especificación
compleja en unidades de trabajo lógicas.
• Diseño de rehúso.
• Estructuras de implementación.
• Acomodo al lenguaje.
20. ¿Cuáles son tres formas para diseñar un componente de manejo de datos?
• Crear una Clase y Objeto, Servidor-Objetos, que proporcione todos los servicios
de bases de datos. Involucra un objeto muy complejo que sepa como guardar o
recuperar todos los objetos del sistema. Cualquier petición de almacenamiento se hace
por medio de mensajes a este único objeto.
• Crear una Clase Almacenable. Es una combinación de los dos enfoques anteriores.
Incluye servicios básicos guárdame y recupérame. Cada objeto del sistema que deba
ser guardado o recuperado es conectado luego en una estructura Gen-Spec con la
clase almacenable y trabaja solamente en aquellos casos donde se disponga de
herencia múltiple.
Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen
rendimiento en la manipulación de tipos de dato complejos.
• Componentes de problema:
• Herencia múltiple. Crear una clase derivada en forma tal que herede todos los
atributos y comportamientos de mas de una clase base.
Esta definición especifica varias propiedades importantes de los objetos. En primer lugar,
un objeto no es un dato simple, sino que contiene en su interior cierto número de
componentes bien estructurados. En segundo lugar, cada objeto no es un ente aislado,
sino que forma parte de una organización jerárquica o de otro tipo.
• Plantilla de especificación. Proporcionan detalles de análisis adicional para dar
soporte al paquete de diagrama en capas. Deben proporcionar un esquema similar al
diccionario de datos. L aplantilla puede ser luego expandida y modificada conforme
continua el análisis.
• Trabajos
• Programaciones.
• Alertas
• Operadores.
• Todo-partes. Es un tipo básicos de estructura que deben ser impuestas en las clases y
objetos. Indican conjuntos de diferentes objetos que componen otro objeto completo. Son
indicadas por un triangulo que apunta hacia el objeto completo. Conectan siempre objeto
con objeto. Tienen cardinalidad, representada por uno a muchos y muchos a muchos.