Post on 29-Jul-2015
República bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Universidad Nacional Experimental Politécnica de la fuerza armada
Guacara – Edo. Carabobo
Bachilleres:
Jiménez Marbely C.I.: 18.167.164
Soto Yasmira C.I.: 16.772.276
Rios Jackeline C.I.: 17.990.676
Contreras Wilkins C.I.: 20.030.260
Sección: G-003
Ingeniería en Sistemas
Guacara, Julio de 2010
INTRODUCCIÓN
El diseño orientado a objetos es la estructura abstracta de lo que
queremos desarrollar. Dependiendo de la naturaleza del software se quiere
facilitar la elaboración de la aplicación, debido a que los objetos describen de
forma indefinida a los elementos del mundo en que vivimos.
Los beneficios de la tecnología orientada a objetos se fortalecen si se
usa antes y durante un proceso de desarrollo del software una metodología
de análisis y diseño orientado a objetos, de manera de obtener mejores
resultados que se deben considerar en el DOO.
La idea básica del Diseño Orientado a objetos se basa en tres
componentes y cinco capas, entre los componentes tenemos: El de ámbito
del problema, el de la interacción humana y el del manejo de tarea y datos.
Las capas son la de: Clase Objeto, la de Estructura, la de Atributos, la de
Servicios y la de Tema.
En esta investigación se destacan las fases para el desarrollo de un
diseño orientado a objeto, en el cual se define el alcance y limite del
proyecto, a su vez gestiona una comprensión preliminar mediante un
desarrollado bien claro y especifico en lo que se va a trabajar para luego
proceder a validar los resultados obtenido, además tomar decisiones
técnicas considerando arquitecturas de software/hardware de forma
específicas respecto a características de implementación, validar su correcto
funcionamiento y detectar fallas en su momento de manera que puedan ser
depuradas.
DISEÑO ORIENTADO A OBJETOS
El diseño orientado a objetos es el proceso de dividir una solución en
una cantidad determinada de objetos constituyentes y a su vez es la
estructura abstracta de lo que queremos desarrollar. Además, el DOO
combina servicios de información, e incrementa la modularidad y las
estructuras de control y datos pueden ser definidos de en una manera
integrada.
El enfoque de Coad y Yourdon, plantea que el diseño viene a ser
entonces cada vez más orientado hacia un lenguaje OO particular y a un
ambiente de desarrollo. Las actividades de diseño orientado a objetos están
asociadas en los cuatro componentes principales del sistema final, además
los mismos son expandidos a lo largo de las cinco capas con que cuenta el
diseño OO.
COMPONENTES DEL DISEÑO ORIENTADO A OBJETO
Diseño del componente de dominio problema
Es el conjunto básico de objetos funcionales que llega de la etapa de
análisis. Tales objetos directamente resuelven el problema que se pretende
ser resuelto por el sistema que se está construyendo, lo que quiere decir que
el diseño del CDP se termina en su mayor parte en la etapa de análisis,
completándose ahora con la ejecución de tres actividades, las cuales son:
Diseño de reuso: En esta etapa nuevas clases para reusar objetos
que serán útiles más adelante. Es el caso de los paquetes comerciales de
clase generalizada como las que contienen las organizaciones de
programadores OO con experiencia, ellos por lo general poseen una
biblioteca de clases desarrolladas para los objetos. Estas bibliotecas y
paquetes pueden contener clases que tienen atributos y servicios para
objetos similares a los requeridos en el diseño del sistema a desarrollarse.
Estas clases reusables pueden ser añadidas al diseño como clases bases en
una estructura Gen-Spec.
Estructura de Implementación: Debido a la implementación en un
lenguaje de programación en particular podría ser necesario que en el diseño
se agreguen estructuras que pueden ser de agregación, o Gen-Spec, este
último para permitir que varias clases de objetos compartan un protocolo o
estructura de datos. Estas estructuras usan el concepto de herencia para
hacer más fácil el enfoque de programación.
Acomodo al lenguaje: En esta sección podemos corregir (si es
necesario) el diseño para que las estructuras puedan ser construidas en el
lenguaje de programación seleccionado. Algunos lenguajes, por ejemplo,
incluyen herencia múltiple (C++), otros solamente incluyen herencia simple
(Java) y todavía otros que posiblemente no incluyen herencia. En los casos
más restrictivos, los patrones de herencia del diseño deben ser modificados
para permitir las capacidades del lenguaje de programación.
Diseño de componente de interfaz humana
En esta actividad creamos los menús, reportes y pantallas interactivas
que usarán las personas para trabajar con el sistema. Por lo general, se
puede obtener ayuda en gran forma en clases de bibliotecas para el diseño
de clases de Interfaz. Esta es un área donde la reusabilidad de las clases
Orientado a Objetos ha probado ser muy efectiva. Las clases de bibliotecas
generalmente proporcionan generalizaciones de menús, ventanas, control de
tipo de letra, y utilerías de cortar y pegar.
Los prototipos son muy útiles durante el diseño de Interfaz para hacer
más fácil la manera en que trabajarán las clases de biblioteca con los objetos
del Dominio. Por lo general, con la información obtenida en las entrevistas y
casos de uso podemos recopilar información acerca de los perfiles de
usuarios involucrados en el sistema y diseñar una interfaz correspondiente a
su perfil. Con base a estos y otros perfiles, podemos seleccionar una interfaz.
Diseño de componentes de administración de tarea y datos
Estos dos componentes están estrechamente relacionados con la
tecnología de implementación. El manejo de tareas está muy determinado
por la configuración de hardware de computación, y el manejo de datos está
muy determinado por el software de sistema disponible cuando el sistema
este de hecho en ejecución.
El componente de manejo de tareas es más importante cuando el
sistema está ejecutándose en varios procesadores o computadoras. Una
“tarea” es un conjunto de servicios relacionados que deben ejecutarse juntos
(tal vez en el mismo procesador). Las tareas son activadas por el tiempo
transcurrido o por un evento. Los objetos del manejo de tarea obedecen a
activadores de tareas, asignación de procesadores y prioridades cuando son
llamados los servicios.
EJEMPLO DE COMPONENTE DE TAREAS:
El componente de manejo de tareas se añade al paquete de diagrama
de capas existentes. Este componente es implementado y luego creando
objetos. Tarea conforme son necesarios por el sistema.
El componente de Manejo de Datos comprende, por lo general, clases
y objetos necesarios para almacenar y recuperar a los otros objetos del
sistema. El Componente de Manejo de Datos varía dependiendo de que
la tecnología de tiempo de ejecución subyacente sea una base de datos
orientada a objetos, una base de datos relacional o un sistema de archivos
“plano” ordinario. En un ambiente de Base de Datos relacional o de archivo
plano el componente de manejo de datos debe proporcionar servicios de
almacenamiento al sistema
DISEÑO DE DIAGRAMA DE MANEJO DE DATOS
Hay tres formas para diseñar el diagrama de manejo de datos:
1) Construir servicios de almacenamiento en cada Clase y Objetos en el
diseño: Esto involucra, por lo general, una cantidad considerable de
programación de diseño adicional.
2) Crear una Clase y Objeto, Servidor Objeto, que proporcione todos los
servicios de Base de Datos: Involucra un complejo objeto que sepa cómo
guardar o recuperar todos los objetos del sistema. Cualquier petición de
almacenamiento se hace por medio de mensajes a este único objeto cuyo
diseño podría ser como el que se muestra a continuación.
3) Crear una clase Almacenable es una combinación de los dos enfoques
anteriores. Cada objeto del sistema que deba ser guardado o recuperado
es conectado luego a una estructura Gen-Spec con la clase almacenable.
CAPAS CON QUE CUENTA EL DISEÑO ORIENTADO A
OBJETOS
1) Capa Clase Objeto: Esta capa indica las clases y objetos.
2) Capa de Estructura: Esta capa captura diversas estructuras de clases y
objetos, como las relaciones uno a muchos.
3) Capa de Atributos: Esta capa detalla los atributos de las clases.
4) Capa de Servicios: Esta capa indica los mensajes y comportamientos de
los objetos.
5) Capa de Tema: Esta capa divide el diseño en unidades de
implementación o asignaciones de equipos.
FASES DEL CICLO DE DESARROLLO ORIENTADO A
OBJETOS
Definición del proyecto y planificación: Define el alcance y límites
del proyecto. Se realizan los estudios de factibilidad y relaciones
costo/beneficio.
Análisis del Negocio: Es donde se modela el negocio o parte del
mismo en orden de comprender la naturaleza, como se realizan actualmente
las actividades, y como los usuarios desean que se realicen en el futuro.
Provee una comprensión preliminar de áreas específicas del negocio a ser
informatizadas. Esta etapa también es conocida como estudio del sistema
actual en otras metodologías.
Análisis de requerimientos del sistema: aquí es donde se establece
con claridad las capacidades requeridas para el nuevo sistema que se va a
desarrollar. Estas capacidades son documentadas de modo tal que los
desarrolladores tengan una especificación clara sobre lo que se va a trabajar
y para validar los resultados obtenidos.
Diseño Lógico: Es donde los desarrolladores del sistema identifican
los componentes de software/hardware necesarios para satisfacer los
requerimientos, como también especifican las relaciones arquitecturales
entre dichos componentes. El diseño lógico debe evitar detalles técnicos
específicos requeridos para mapear el diseño en un entorno de
implementación específico.
Diseño Físico: Es donde se toman decisiones técnicas considerando
arquitecturas de hardware específicas, sistemas de bases de datos,
lenguajes de programación, a su vez se toman decisiones con respecto a
características de implementación como ser arquitectura cliente/servidor,
distribución de objetos, etc.
Desarrollo: Aquí es donde un diseño físico es implementado en un
lenguaje de programación, o entorno específico de desarrollo.
Prueba: se realizan testes del software para validar su correcto
funcionamiento y detectar fallas que deban ser depuradas.
Documentación: desarrollo de documentación técnica sobre la
aplicación, manuales de usuario y manuales de procedimiento, etc.
ERRORES COMUNES EN EL DISEÑO
Clases que hacen modificaciones directas a otras clases.
Son una violación a la encapsulación. Produce ligaduras ocultas
innecesarias. Mal diseño.
Clases con demasiada responsabilidades.
Clases demasiado complejas. Delegar parte a subclases.
Clases sin responsabilidades, no o cumplen un papel importante en
nuestra aplicación. Por simplicidad pueden eliminarse.
Clases con responsabilidades que no se usan. Como resultado de
diseñar las clases sin analizar las relaciones con las demás.
Uso inadecuado de la herencia. Mal diseño al no usar adecuadamente la
relación "es un".
Funcionalidad repetida. Se duplica el código innecesariamente.
Condensar en una superclase común.
CONCLUSIÓN
El diseño orientado a objeto lo podemos definir como un proceso que
consiste en la construcción de un modelo de objetos para una solución, de
manera que obtengamos buenos resultados a la hora de diseñar el sistema.
Este tipo de diseño se encarga de describir un proceso, donde se pueda
compartir a través de una orientación de objetos, la cual va describir cada
modelo del sistema.
El diseño orientado a objetos se ha desarrollado con el objetivo de
responder a las necesidades de flexibilidad en los Sistema de información
basados en computadora.
Existen varias metodologías orientadas a objetos como: el método de
Booch, el método de Rumbaugh, y el método de Jacobson; nosotros hicimos
hincapié en la metodología de Coad y Yourdon, ya que es considerada la
más sencilla al momento de ser aplicada por analistas con poca experiencia.
A pesar de que existen varias metodologías, estas tienen diferencias entre
ellas, que a su vez trabajan con el mismo modelo o prototipo basándose en
los mismos fundamentos de modelación de objetos.
La metodología de Coad y Yourdon se basa en cinco capas que son:
la capa clase objeto, el cual indica las clases y objetos; la capa de estructura
que es la que se encarga de capturar las diferentes estructuras de clases y
objetos, como las relaciones uno a muchos; la capa de atributos que es la
que detalla los atributos de las clases; también esta la capa de servicios
que es la que nos indica los mensajes y comportamientos de los objetos y
por ultimo tenemos la capa de tema que es la que se encarga de compartir el
diseño en unidades de implementación o asignaciones de equipos.
Este tipo de diseño tiene mayor efectividad en las demandas
organizacionales para nuevos sistemas que requieran mantenimiento,
adaptación y rediseño continuos.
Por lo que podemos decir que el diseño orientado a objeto nos permite
crear un diseño más complejo de un sistema, de manera que nos facilite su
mayor visualización y comprensión, los cuales pueden diseñarse en
diferentes metodologías que nos permita obtener una mayor efectividad y
eficiencia del sistema.