Diseño Orientado a Objetos El Análisis Orientado a Objetos, el Diseño Orientado a Objetos y la Programación Orientada a Objetos comprenden un conjunto de actividades de la Ingeniería del Software para la construcción de un sistema basado en objetos. En la actualidad al desarrollo de sistemas mediante cualquier método requiere de una herramienta para la interpretación de las ideas como la solución de un problema, para así formalizarlas en un proyecto que a su vez se piense desarrollar e implementar. Para poder modelar cualquier Sistema Orientado a Objetos es mejor el uso del estándar UML (Unified Modeling Lenguaje - Lenguaje Unificado de Modelación). Este es el lenguaje que nos permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. Es el preferido por la mayoría, debido a sus creadores Grady Booch, Ivar Jacobson y Jim Rumbaugh autores de los métodos Booch, OOSE y OMT respectivamente.
El método de Booch: Este método abarca un micro proceso de desarrollo y un marco proceso de desarrollo tanto para el análisis como para el diseño. El nivel Micro define un conjunto de tareas de análisis que se reaplican en cada etapa en el macro proceso.
El método Rambaugh: Este método mejor conocido como OMT, se utiliza para el análisis, diseño del sistema y diseli a nivel de objetos. El método Jacobson: También llamado OOSE (Object Oriented Software Engginer – Ingeniería del Software Orientada a Objetos), este método, en el análisis se diferencia de los otros por la importancia que da al caso de uso. Lo más importante del Diseño Orientado a Objetos, como su propio nombre lo dice es la orientación a los objetos, que en definitiva es esa abstracción de la realidad la que nos facilita la comprensión y la representación en papel mediante el uso de diagramas, para después diseñar cada objeto y sus relaciones. La importancia de diagramar
Tolentino Morales Juan Manuel
Página 1
Conocer las características del Diseño Orientado a Objetos ayuda a entender por qué es una herramienta de talla mundial.
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.
Dado que el diseño solo se hará una sola vez y se leerá incontables veces, lo mejor es hacerlo bien. De manera que se legible para cualquiera. Esto debido a que la orientación a objetos nos permite comprender con demasiada facilidad la complejidad de muchos tipos de sistemas. Las ventajas de usar UML como el estándar preferido permiten que casi cualquier persona entienda la arquitectura del sistema en cuestión en poco tiempo. Permitiendo a su vez, que sea más fácil el rediseño para mejorar o simplemente reciclar parte del sistema. En verdad esto resulta muy favorable para nosotros como Ingenieros y para cualquiera con conocimientos bastos en el área, pues no es cómodo perder tiempo en tratar de comprender algo casi ilegible. Se mencionan a continuación las ventajas:
Fácil 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.
La programación orientada a objetos trata de la realización del Diseño Orientado a objetos utilizando algún lenguaje de programación orientada a objetos como C++
Componentes del Diseño Orientado a Objetos La esencia del DOO consta de cuatro pasos fundamentales: a) La identificación de objetos, sus atributos y servicios b) La organización de objetos dentro de una jerarquía c) La construcción de descripciones dinámicas de objetos que muestran como se usan los servicios d) La especificación de interfaces de objetos
Tolentino Morales Juan Manuel
Página 2
Los conceptos que nos permiten comprender el diseño orientado a objetos son los siguientes. Objeto: Componente del mundo real que se hace corresponder con el software. En un Sistema de Información basado en Computador, un objeto es un producto o consumidor de información, o un elemento de información. Cuando se hace corresponder un objeto con su realización software, implementamos una estructura de datos y usa serie de procesos que pueden transformar la estructura de datos. Operaciones, métodos o servicios: Procesos a los que se le permite transformar estructuras de datos. Mensajes: Peticiones que se realizan a los objetos para que realicen alguna de sus operaciones. Las operaciones contienen construcciones procedimentales de control, que se invocan mediante un mensaje. Al definir un objeto con parte privada y proporcionar mensajes para invocar al procedimiento adecuado conseguimos el ocultamiento de información. De esta forma dejamos ocultos al resto de los elementos de programa los detalles de implementación del objeto. Los objetos con sus operaciones proporcionan una modul aridad inherente, es decir los elementos del software (datos y procesos) están agrupados con un mecanismo de interfaz bien definido, que son los mensajes.
Bertrand Meyer sugiere los siguientes criterios para poder juzgar la capacidad que poseé un método de diseño en poder lograr ciertos elementos importantes tales como la modularidad: Descomponibilidad.- Facilidad con la cual un método de diseño ayuda al diseñador a descomponer un gran problema en subproblemas más sencillos de resolver. Componibilidad.- Grado con el cual un método de diseño asegura que los componentes de un programa (módulos), una vez diseñados y construidos, pueden reusarse para crear otros sistemas. Comprensibilidad.- Facilidad de comprensión de un componente de programa sin referencia a otra información o módulos. Continuidad.- Facilidad de hacer pequeños cambios en un programa y hacer que estos se manifiesten por sí mismos en cambios correspondientes solamente en no o unos pocos módulos más. Protección.- Característica arquitectónica que reducirá la propagación de efectos colaterales si ocurre un error en un módulo dado. Éstos criterios y principios de diseño presentados por Meyer pueden aplicarse a cualquier método de diseño (incluyendo diseño estructurado), no obstante el método de diseño orientado a objetos alcanza cada uno de los principios de manera más eficiente que otros enfoques y el resultado final es una arquitectura modular que permite cumplir con todos los principios de modularidad de una manera más eficiente.
Modelos Un modelo representa a un sistema software desde una perspectiva específica. Al igual que la planta y el alzado de una figura en dibujo técnico nos muestran la misma figura vista desde distintos ángulos, cada modelo nos permite fijarnos en un aspecto distinto del sistema. Los modelos de UML que se tratan en esta parte son los siguientes: · Diagrama de Estructura Estática. · Diagrama de Casos de Uso. Tolentino Morales Juan Manuel
Página 3
· Diagrama de Secuencia. · Diagrama de Colaboración. · Diagrama de Estados. Diagramar es distribuir, organizar los elementos del mensaje bimedia (texto e imagen) en el espacio bidimensional (el papel) mediante criterios de jerarquización (importancia) buscando funcionalidad del mensaje (fácil lectura) bajo una apariencia estética agradable (aplicación adecuada de tipografías y colores). El diagrama que resultaría como descriptor total del proyecto es el diagrama de casos de uso, debido que en él es posible describir la interacción de los actores (personas u otros sistemas), pues como se menciona en el modelo 4 vistas +1, es posible visualizar el comportamiento del sistema. Se trata de la generalización de las diferentes funciones del sistema sin entrar en detalles, pues para ello se necesita el uso de los demás diagramas. Conclusiones. El diseño orientado a objetos es un diseño con ocultamiento de información. La representación puede cambiarse sin cambios muy extensos. Un objeto tiene un estado privado con un constructor asociado y operaciones de acceso. Los objetos proveen servicios (operaciones) a otros objetos. La identificación de objetos es un proceso difícil. La identificación de sustantivos y verbos en lenguaje natural es útil para identificar objetos Las interfaces de objetos deben ser precisamente definidas. Un lenguaje de programación como Ada, C++ o JAVA puede usarse para esto Documentación útil para el diseño orientado a objetos incluyen, gráficas de jerarquía de objetos y diagramas de interacción de objetos. Los objetos puede implementarse como entidades secuenciales o concurrentes. La arquitectura de diseño OO se centra más en las colaboraciones entre los objetos que con el flujo de control de datos. Es por eso que el diseño de estructurado clásico no resulta como la mejor opción.
Referencia Bibliográficas Grady Booch. Análisis y Diseño Orientado a Objetos. Prentice Hall, 1998 http://www.di.uniovi.es/~cernuda/pfc/aoo.pdf http://hanzcocchi.net/proceso-desarrollo-software- orientado-objetos/ http://profesores.fi-b.unam.mx/carlos/aydoo/uml.html Análisis y Diseño de Sistemas, 6ta Edición – Kenneth E. Kendall & Julie E. Kendall
Tolentino Morales Juan Manuel
Página 4