diseño o.o

20
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

Upload: wilkins-contreras

Post on 29-Jul-2015

194 views

Category:

Education


0 download

TRANSCRIPT

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.

EJEMPLO DE UNA 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.