doo

7
El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia con otros métodos de diseño, el DOO produce un diseño que interconecta objetos de datos y operaciones de procesamiento para esos objetos, de forma que se modulariza la información y el procesamiento, en lugar de aislar el procesamiento. Todos los métodos de diseño intentan desarrollar software basándose en: • Abstracción, Ocultamiento de información, Modularidad. El DOO proporciona un mecanismo que permite al diseñador consigue estas tres características sin dificultad. Características principales del Diseño Orientado a Objetos: Los objetos son abstracciones del mundo real o entidades del sistema que se administran entre ellas mismas Los objetos son independientes y encapsulan el estado y la representación de información La funcionalidad del sistema se expresa en términos de servicios de los objetos Las áreas de datos compartidas son eliminadas. Los objetos se comunican mediante paso de parámetros Los objetos pueden estar distribuidos y pueden ejecutarse en forma secuencial o en paralelo Ventajas del Diseño Orientado a Objetos: Fácil de mantener, los objetos representan entidades auto- contenidas Los objetos son componentes reutilizables

Upload: yureyny-madera

Post on 30-Sep-2015

213 views

Category:

Documents


1 download

DESCRIPTION

Diseño Orientado a Objetos, Concepto, Características

TRANSCRIPT

El Diseo Orientado a los Objetos (DOO) crea una representacin del problema del mundo real y la hace corresponder con el mbito de la solucin, que es el software. A diferencia con otros mtodos de diseo, el DOO produce un diseo que interconecta objetos de datos y operaciones de procesamiento para esos objetos, de forma que se modulariza la informacin y el procesamiento, en lugar de aislar el procesamiento. Todos los mtodos de diseo intentan desarrollar software basndose en: Abstraccin, Ocultamiento de informacin, Modularidad.El DOO proporciona un mecanismo que permite al diseador consigue estas tres caractersticas sin dificultad.

Caractersticas principales del Diseo Orientado a Objetos: Los objetos son abstracciones del mundo real o entidades del sistema que se administran entre ellas mismas Los objetos son independientes y encapsulan el estado y la representacin de informacin La funcionalidad del sistema se expresa en trminos de servicios de los objetos Las reas de datos compartidas son eliminadas. Los objetos se comunican mediante paso de parmetros Los objetos pueden estar distribuidos y pueden ejecutarse en forma secuencial o en paralelo Ventajas del Diseo Orientado a Objetos:Fcil de mantener, los objetos representan entidades auto-contenidas Los objetos son componentes reutilizables Para algunos sistemas, puede haber un mapeo obvio entre las entidades del mundo real y los objetos del sistema. Reusabilidad del software Mayor flexibilidad para realizar mantenimiento y modificaciones del software Disminuye el gap semntico proveyendo una representacin consistente en todo el ciclo de vida Mejor interaccin entre el usuario/analista/diseador. Ms apropiado para abordar problemas ms complejos.

Modularidad: La idea es resolver un problema complejo separndolo en partes ms pequeas, que se puedan disear, desarrollar, probar y modificar de manera sencilla y lo ms independientemente posible. Al usar nombres genricos estamos en presencia de mdulos.En el diseo orientado a objetos la modularizacin esencial se da a nivel de clases, que son entidades del dominio del problema. Por lo tanto no modularizamos la solucin, sino primero el problema (en el anlisis) y luego, partiendo de esas clases conceptuales, del dominio del problema, modularizamos la solucin (diseo).La POO tiene mdulos funcionales, que seran los mtodos u operaciones de las clases y tambin paquetes que son importantes para agrupar clases en el diseo de aplicaciones medianas.Cohesin: Cada mdulo del sistema debe referirse a un nico proceso o entidad. A mayor cohesin el mdulo en cuestin ser ms sencillo de disear, programar, probar y mantener.Con los mtodos se logra alta cohesin cuando cada mdulo realiza una nica tarea trabajando sobre una sola estructura de datos. Las clases tendrn alta cohesin cuando se refieran a una nica entidad. Podemos garantizar una fuerte cohesin disminuyendo al mnimo las responsabilidades de una clase.En los paquetes no es usual analizar cohesin, pero podemos aplicarle los mismos tests que a las clases. Lo crucial en los paquetes es el acoplamiento.Acoplamiento: mide el grado de relacionamiento de un mdulo con los dems. Para tener un mejor acoplamiento debemos lograr una independencia para que la relacin entre los mtodos, clases y paquetes sea mnima.El acoplamiento mide el grado de relacionamiento de un mdulo con los dems. A menor acoplamiento, mejor: el mdulo en cuestin ser ms sencillo de disear, programar, probar y mantener.En el diseo estructurado, se logra bajo acoplamiento reduciendo las interacciones entre procedimientos y funciones, reduciendo la cantidad y complejidad de los parmetros y disminuyendo al mnimo los parmetros por referencia y los efectos colaterales.De nuevo, el diseo orientado a objetos nos complica las cosas con sus tres tipos de mdulos. A los mtodos, como pas con la cohesin, podemos analizarlos con los mismos criterios que a los mdulos del diseo estructurado.

CAJA NEGRAEn este tipo de mtodo, se considera que el diseador es capaz de producir resultados en los que confa y que a menudo tienen xito ms no es capaz de explicar cmo lleg a tal resultado.Las caractersticas de este mtodo de diseo son:1. El diseo final est conformado por las entradas (in puts) ms recientes procedentes del problema, as como por otras entradas que proceden de experiencias anteriores.2. Su produccin se ve acelerada mediante el relajamiento durante cierto periodo de las inhibiciones a la creatividad.3. La capacidad para poder producir resultados relevantes depende de la disponibilidad de tiempo suficiente para que el diseador asimile y manipule imgenes que representen la estructura del problema.4. A lo largo de esta manipulacin, repentinamente se percibe una nueva manera de estructurar el problema de tal manera que se resuelven los conflictos.5. El control consciente de las distintas maneras en que se estructura un problema, incrementa a posibilidades de obtener buenos resultados.

Es un sistema cerrado del que no conocemos su funcionamiento.Una caja negra ofrece una interfaz con el exterior, que permite usarla. A trves de dicha interfaz los usuarios pueden operar la caja y recibir los resultados de dicha operacionObjeto? Un objeto es una entidad que tiene un estado y un conjunto definido de operaciones que operan sobre este estado. ?? El estado se representa mediante un conjunto de atributos del objeto. ?? Las operaciones asociadas con el objeto proveen servicios a otros objetos (clientes) que requieren estos servicios cuando necesitan realizar alguna actividad de cmputo. ?? Los objetos se crean de acuerdo a una definicin de la clase objeto. ?? La definicin de la clase objeto sirve como template para los objetos. Esta incluye las declaraciones de todos los atributos y servicios los cuales deben estar asociados con un objeto de esta clase.

Mensajes El nombre del servicio requerido por algn objeto que llama. Copias de la informacin requerida para ejecutar el servicio y el nombre de quien tiene esta informacin. uEn la practica, los mensajes se implementan a menudo mediante llamadas de procedimientos Nombre = nombre de procedimiento. Informacin = lista de parmetros.

Identidad del ObjetoLaidentidadexpresa que aunque dos objetos sean exactamente iguales en sus atributos, son distintos entre s. De esta forma incluso una serie de Objetos coches, recin fabricados son distintos los unos de los otros.La afirmacin anterior, aunque parece obvia, tiene importancia cuando descendemos al nivel de programacin. En este mbito cada uno de los objetos tiene un controlador pro el cual se identifica. Este puede ser una variable, unaestructura de datos, una cadena de caracteres, etc. El controlador ser distinto para cada uno de los objeto, aunque las referencias a stos sean uniformes e independientes del contenido, permitiendo crear agrupaciones de objetos con el mismo tratamiento.

El encapsulamiento de variables y mtodos en un componente de software ordenado es, todava, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: Modularidad, esto es, el cdigo fuente de un objeto puede ser escrito, as como darle mantenimiento, independientemente del cdigo fuente de otros objetos. As mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta. Ocultamiento de la informacin, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con l. Pero el objeto puede mantener informacin y mtodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.Encapsulamiento: Tambin llamado "ocultacin de la informacin". Cada objeto est aislado del exterior, y expone una interfaz a otros objetos que especifica cmo pueden interactuar entre ellos. El aislamiento protege las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a ste

Polimorfismo: El trmino polimorfismo se refiere a comportamientos alternos entre clases derivadas relacionadas. Cuando varias clases heredan atributos y comportamientos, pude haber casos en donde el comportamiento de una clase derivada debe ser diferente del de su clase base o de sus clases derivadas parientes.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, pero se utilizar el comportamiento correspondiente al objeto en uso. Algunos lenguajes proporcionan medios ms estticos de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia Punto de vista 1. Identificar la jerarqua de herencias es una parte fundamental del diseo orientado a objetos. Obviamente esto solo puede implementarse utilizando lenguajes de programacin orientados a objetos. Punto de vista 2. La herencia es un concepto til para implementacin que permite reusar los atributos y las operaciones. La identificacin de la jerarqua de herencias en la fase de diseo pone muchas restricciones en la implementacin. Herencia: las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes.