Anda di halaman 1dari 9

ANALISIS Y DISEÑO DE SISTEMAS ORIENTADO A OBJETOS

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.

Los lenguajes Orientado a Objetos presentan las siguientes características:

• Mejoran el mantenimiento del programa.

• Grandes partes de los programas pueden ser reutilizables.

• Reduce el costo de desarrollo de los Sistemas de Información.

• Son efectivos en interfaz grafica de usuario.

• Son efectivos en bases de datos.

• Hacia el futuro mucha carga de programación se moverá hacia la O-O

• Combina aspectos de los diagramas E-R y de flujo de datos.

• Con O-O muchos productos se están fabricando cada vez mas bajo pedido o fabricados en
lotes pequeños.

• Los fabricantes buscan mayor concentración sobre la satisfacción del cliente y la


penetración de mercados nicho.

• Sistemas de Información complicados están sufriendo mantenimiento, adaptación y


rediseños continuos.

• El desarrollo O-O no fue una evolución instantánea.

• La notación de diseño O-O combina aspectos tanto de los diagramas de entidad-relación y


de flujo de datos

El concepto de Encapsulacion se toma de la idea de Ingeniería del Software de las abstracción


de datos.

El concepto de herencia se toma de la idea de base de datos e generalización y


especialización.

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

2. Describa la diferencia entre un objeto y una clase.

Clase: Es un conjunto de objetos relacionados. Ejemplo: La clase Zapato.

Objeto: Es una instancia de una clase. Ejemplo: Zapato mocasín.

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.

4. ¿Cuáles dos tipos de clases están involucrados en cualquier relación de herencia?

La “Clase base” y la “clase derivada”.

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

6. ¿Sucede únicamente el polimorfismo cuando hay herencia?

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.

7. ¿Cuáles son cinco tipos generales de objetos?


• Los que representas cosas tangibles

• Los que representan papeles actuados por personas u organizaciones.

• Los que son derivados de incidentes o eventos (vuelos, accidentes, reuniones).

• Los que indican interacciones (ventas).

• Los que detallan especificaciones. (tipos de pólizas de seguros).

• Los que pueden tener ocurrencia (Por toda la vida; plazo de vida)

8. ¿Cómo puede decirse a partir de la notación de Coad y Yourdon si una clase ha


tenido ocurrencia de objetos?

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 generalización-especialización (Gen-Spec)

• 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?

Notación cero (0)

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?”

13. ¿Cuáles son dos categorías de servicios?

• Simples. Involucran muy pocas condiciones u operaciones, y frecuentemente se aplica


a cada Clase y Objeto en un sistema. Los servicios pueden ser: Crear objeto,
almacenar objeto, recuperar objeto, conectar objeto, acceder objeto (obtener o poner
los valores de los atributos) y borrar objeto.
• Compuestos. Involucran ciclos, muchas operaciones o condiciones compuestas. Se
aplican a solamente una Clase y Objeto. Frecuentemente ocasionan servicios
“compañeros” o “privados” que son similares a los módulos de subrutinas. Son
subrutinas internas, de las cuales solo el objeto mismo sabe y puede activar.

14. ¿Cómo se indican los mensajes en la capa de servicio del diagrama de Coad y
Yourdon?

Como líneas anchas en el diagrama.

15. ¿Qué tipo de proyecto pide usualmente el uso de capas de tema?

En proyectos grandes que involucran muchas clases. Permite subdividir una especificación
compleja en unidades de trabajo lógicas.

16. ¿Cuáles cuatro componentes principales comprenden las actividades de diseño?

• Componente del problema.

• Componente de interfaz humana.

• Componente de manejo de datos.

• Componente de manejo de tareas.

17. ¿Cuáles tres actividades se realizan para completar el componente de dominio de


problema?

• Diseño de rehúso.

• Estructuras de implementación.

• Acomodo al lenguaje.

18. ¿Cuáles dos componentes de diseño están muy fuertemente enlazados a la


tecnología de implementación?

• El manejo de tareas. Esta muy determinado por la configuración de hardware de


computación.

• El manejo de datos. Esta muy determinado por el software de sistemas disponible


cuando el sistema este de hecho en ejecución.
19. Defina el termino TMC.

Componente de Manejo de Tareas.

20. ¿Cuáles son tres formas para diseñar un componente de manejo de datos?

• Construir servicios de almacenamiento en cada Clase y Objeto en el diseño.


Incluye por lo general una cantidad considerable de programación de diseño adicional.

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

PALABRAS Y CONCEPTOS IMPORTANTES.

• Clase: Es una categoría de objetos similares. Es un conjunto de objetos relacionados.


Ejemplo: La clase Zapato.

• Jerarquía de comando. Es una estructura que se planea cuidadosamente: los


comandos de mas alto nivel están dirigidos hacia los usuarios de mas bajo nivel.

• Componente de manejo de datos. Comprende por lo general clases y objetos


necesarios para almacenar y recuperar a los otros objetos del sistema. Proporciona
mecanismos para la recuperación, almacenamiento de objetos, clases y estados del
sistema.

• Encapsulacion. Ocultamiento del estado, es decir de los datos miembro, de un objeto


de manera que solo se puede cambiar mediante las operaciones definidas para ese
objeto. Debido a que todos los datos internos del objeto están aislados de otros objetos
por procedimientos internos predefinidos, se dice que los objetos encapsulan sus datos.

• Generalización-especializacion. Es un tipo básicos de estructura que deben ser


impuestas en las clases y objetos. Son indicadas por un semicírculo con su lado redondo
hacia la clase generalizada. Siempre conectan clases a clases. Son típicamente de forma
jerárquica el intercambio entre las computadoras del sistema y las personas que utilizan el
sistema.

• Componente de interfaz humana. Menús, ventanas, control del mouse, iconos,


control del tipo de letra y utilerías de cortar y pegar. Pantallas interactivas y reportes que
representan
• Base de datos orientada a objetos. La información se representa mediante objetos como
los presentes en la programación orientada a objetos. Cuando se integra las
características de una base de datos con las de un lenguaje de programación orientado a
objetos, el resultado es un Sistema Gestor de Base de Datos Orientada a Objetos
(ODBMS: Object Database Management System). Las bases de datos orientadas a
objetos se diseñan para trabajar bien en conjunción con lenguajes de programación
orientados a objetos como Java, C#, Visual Basic .NET y C++. Los ODBMS usan
exactamente el mismo modelo que estos lenguajes de programación.

Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen
rendimiento en la manipulación de tipos de dato complejos.

• Polimorfismo. En programación orientada a objetos se denomina polimorfismo a la


capacidad que tienen objetos de diferentes clases de responder al mismo mensaje.
Comportamientos alternos entre clases derivadas relacionadas. Permite que una clase
base tome la forma de cualquiera de sus clases derivadas cuando las circunstancias así lo
demandan.

• Componentes de problema:

• Prototipo. Un prototipo es un modelo (representación, demostración o simulación)


fácilmente ampliable y modificable de un sistema planificado, probablemente incluyendo
su interfaz y su funcionalidad de entradas y salidas.

• Servicio. Es el comportamiento de los objetos. Son métodos o procedimientos, que


llegan a ser parte de los objetos, en forma muy similar a los atributos. Involucran
frecuentemente cambios en el estado de un objeto. Son mas comúnmente analizados y
diseñados usando diagramas de estado.

• Herencia. Habilidad de crear nuevas clases (derivadas) basadas en parte en clases


antiguas (base)

• Conexiones de ocurrencia. Las asociaciones o relaciones entre objetos deben ser


detalladas como conexiones de ocurrencia. Estas relaciones suceden siempre entre
objetos y no entre clases. Ejemplo: Existe una conexión de instancia entre los objetos
“Propietario” y “Vehículo”. Un propietario puede estar relacionado con cero, uno o más
vehículos, pero un vehículo siempre debe estar relacionado con un solo propietario.

• Mensaje. Es la forma en que los objetos se comunican entre si.

• Herencia múltiple. Crear una clase derivada en forma tal que herede todos los
atributos y comportamientos de mas de una clase base.

• Objeto. Es una representación en computadora de alguna cosa o evento del mundo


real.

• Orientado a objetos. Un lenguaje orientado a objetos tiene tres características


básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de
clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen
los tres. La barrera más difícil de sortear es usualmente la herencia.

El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos


definir un objeto como un conjunto complejo de datos y programas que poseen estructura
y forman parte de una organización.

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.

• Diagrama de estado. Los diagramas de estados muestran el comportamiento de un


objeto, es decir, el conjunto de estados por los cuales pasa un objeto durante su vida,
junto con los cambios que permiten pasar de un estado a otro. Ilustraremos lo anterior con
el siguiente ejemplo:

La figura anterior muestra una porción de un diagrama de clases en el cual se puede


apreciar la relación existente entre la clase Documento y la clase Revisión. Pues bien, lo
que se da a entender con la asociación entre estas 2 clases es que un documento en
particular puede pasar por uno o mas procesos de revisión. Además este escenario
plantea controlar el estado del proceso de revisión asociado a un documento, por lo que
debemos agenciarnos de un mecanismo que nos permita representar los estados por los
que puede transitar un proceso de revisión durante su ciclo de vida.

• Tema. Un tema es un conjunto de valores de propiedad que permiten definir la apariencia


de las páginas y de los controles y, a continuación, aplicar esa apariencia de manera
coherente a las páginas de una aplicación Web, en toda una aplicación Web o en todas
las aplicaciones Web de un servidor.

• Componentes de administración de tareas.

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

Anda mungkin juga menyukai