Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS Sesión No. 12 Nombre: Análisis y diseño orientado a objetos Contextualización Cada análisis debe contemplar elementos exclusivos del medio en que se desarrollan las aplicaciones o diseño. Cada uno de los diseños utiliza elementos únicos, ya que no todo lo que se desarrolla en el mercado cumple con las mismas funciones, los elementos de análisis que se deben tomar en cuenta dependerán de las funciones que se busquen cumplir por medio del desarrollo de las aplicaciones. Cuando un análisis no se hace correctamente el diseño de los elementos puede fallar, esto debido a que se tienen que contemplar varios elementos que aunque no parezcan importantes pueden influir en el funcionamiento final de nuestra aplicación o sistema orientado a objetos. Los sistemas orientados a objetos requieren de un cuidado especial, ya que al clasificar los elementos no se debe utilizar el mismo nombre en variables diferentes, esto puede crear errores lógicos y colapsar el sistema en que se trabaja dejando como resultado una mal ejecución del sistema e incluso puede afectar elementos externos del sistema. 1 PROGRAMACIÓN ORIENTADA A OBJETOS Introducción al Tema Después de trabajar sobre los elementos de análisis de UML podemos contar con un proyecto final, el cual es el reflejo de todo lo anterior si en este proyecto no se contemplan todos los elementos necesarios para su desarrollo y cumplimiento de funciones. Cada diseño orientado a objetos consta de elementos diferentes al igual que la estructura y sintaxis que se desea tener, los elementos pueden ser aplicados en multimedia y orientar estos códigos y sistemas a un objeto, el cual no sólo depende de las funciones determinadas en los diagramas sino también en el ingenio del programador; éstos se comprenden así debido a que cada individuo tiene una marca personal, no es necesario seguir los códigos como se muestran en un libro, la manera de codificar se determina por la lógica de cada quien y muchas veces esta manera de pensar mejora los sistemas y permite que al heredar cualquier módulo de información se tenga la posibilidad de trabajar de manera más rápida y sólida. El proyecto de aplicación de cualquier medio de análisis UML puede reflejar cualquier función, desde mostrar un mensaje hasta modificar la manera en que se registran los eventos dentro de un sistema. 2 PROGRAMACIÓN ORIENTADA A OBJETOS Explicación Análisis y diseño orientado a objetos El análisis y diseño en la programación orientada a objetos se determina como una forma de encontrar los problemas ubicados en un medio de desarrollo y planificación para alguna aplicación informática. El análisis permite comprender elementos del mundo real, los cuales pueden ser aplicados dentro del mundo virtual, esto se realiza con la finalidad de encontrar soluciones a un problema determinado. El desarrollo de los sistemas orientados a objetos se han mejorado ofreciendo herramientas capaces de soportar un análisis y diseño que contengan un enfoque en la corriente dominante. Cuando la capacidad de diseñar se combina con la de analizar se tiene un sistema de alto nivel, éste es considerado como una herramienta basada en el enfoque OOA&D, permitiendo la implementación de sistemas más complejos. Algunas características del análisis y diseño orientado a objetos son las siguientes: • El análisis se centra en la investigación del problema, no en la manera de definir la solución. • El diseño pone de relieve soluciones lógicas: es la manera en como el sistema cumple con los requerimientos. • La importancia y valor de estas actividades consta en situar el dominio de un problema y su solución lógica dentro de la perspectiva de los objetos. • Durante el análisis orientado a objetos es importante procurar identificar y describir los objetos o conceptos concernientes al problema que se trata. • Durante el diseño se debe procurar definir los objetos lógicos del software. • Durante la construcción del programa o la fase de programación se implementan componentes de diseño. 3 PROGRAMACIÓN ORIENTADA A OBJETOS • Se deben conocer los procesos de dominio y el ambiente externo, es decir los factores que puede participar en el proceso. • Los procesos pueden expresar casos de uso, los cuales son una descripción narrativa del proceso de dominio en un formato ya estructurado. Dentro del análisis orientado a objetos podemos encontrar etapas con las cuales se determina un mejor trabajo, estas etapas son: • Capa clase objeto: esta es la capa del análisis y diseño e indica las clases y objetos con que se cuenta y que se consideran para trabajar. • Capa de estructura: esta captura diversas estructuras de clases y objetos, de igual forma la manera como se relacione uno a muchos. • Capa de atributos: esta capa detalla los atributos de las clases. • Capa de servicios: indica los mensajes y comportamientos de los objetos. • Capa de tema: divide el diseño en unidades de implementación o asignación de equipos. Mediante el uso de estas capas se puede conocer qué elemento trabaja dentro del análisis y la manera en cómo esto afecta el trabajo o el diseño de manera global. De igual forma podemos comprender que dentro del análisis existen varias etapas, las cuales constan de elementos internos y que ayudan a definir desde un punto de vista diferente los elementos que trabajan en este medio. Algunos de los tipos de análisis son: • Análisis de estructuras. • Análisis de clases y objetos. • Análisis de atributos. • Análisis de servicios. 4 PROGRAMACIÓN ORIENTADA A OBJETOS Por parte del diseño orientado a objetos podemos encontrar las categorías del mismo en: • Diseño orientado a objetos. • Diseño del componente de dominio problema. • Diseño del componente de interfaz humana. • Diseño de componentes de administración de tareas y datos. Proyecto de aplicación Un proyecto de aplicación dentro de cualquier medio, es la culminación del trabajo de investigación, desarrollo, depuración, compilación, etc. Es el momento en que se debe tener un resultado en base a todos los procedimientos anteriores. Retomemos de manera rápida los procesos que se requieren para cumplir con el proyecto de aplicación: • Definición de un objetivo: es una descripción corta del proyecto, esto permite tener una idea general del mismo. • Detección de los requerimientos: es la clasificación de los requerimientos del proyecto, estos se identifican con una clave que hace referencia en los diagramas más detallados. • Definición de los casos de uso: representa la funcionalidad completa de un sistema mostrando su interacción con los agentes externos. Esta representación se realiza a través de las relaciones entre actores y casos de uso dentro del sistema. • Definición de los subcasos de uso: hacen referencia a la descomposición de los casos de uso. Se dan en la existencia de una relación entre dos casos de uso. • Descripción de los casos de uso: mediante un formato de registros se lleva a cabo una descripción para ayudar a comprender los casos y subcasos de uso. 5 PROGRAMACIÓN ORIENTADA A OBJETOS • Realización del control de proyectos: es el manejo de formatos, en los cuales se mantienen los registros necesarios para el desarrollo del proyecto, el formato puede constar de elementos como nombre, alias, actores, función, descripción, referencia, etc. • Definición de los eventos: se establecen los eventos que pueden ser generados por el actor y que serán atendidos por cada caso de uso. • Desarrollo de diagrama conceptual: éste muestra los conceptos presentes en el dominio del problema. • Desarrollo de diagrama de estructura estática: muestra una vista de la aplicación en un determinado momento. • Desarrollo de diagrama de interacción: es una cadena de mensajes enviados entre los objetos en respuesta a un evento generado por el usuario sobre la aplicación. • Definición de contratos: es un formato que describe una operación que debe ser satisfecha o lograrse. • Diagrama de estado: muestra la secuencia de los estados de un objeto durante su ciclo de vida, como parte de una respuesta a un estímulo recibido. • Diagrama de actividades: se utiliza para especificar, construir la dinámica de un conjunto de objetos o simplemente para modelar el flujo de control de una operación. 6 PROGRAMACIÓN ORIENTADA A OBJETOS Conclusión El diseño y análisis de cualquier elemento es importante, ya que con esto se pueden definir nuevas funciones en elementos o capos que requieren de una renovación o trabajo específico. Siempre que se realiza un análisis se debe tener cuidado con los datos que se consideran y lo que no, ya que esto puede marcar una diferencia entre un proyecto funcional y una pérdida de tiempo. Todo diseño debe ser fundamentado en una investigación y un análisis, además de cumplir con reglas específicas, por ejemplo, en el diseño gráfico, se cuenta con reglas sobre el uso de colores, la ubicación de textos, el uso de los tipos de letra entre otros elementos, estas reglas ayudan a determinar un mejor control de los datos y los resultados que se buscan. Dentro de cada proyecto que deseemos realizar, siempre debemos definir elementos de investigación y objetivos a seguir y cumplir, estos objetivos pueden ser tener un mejor diseño de interfaz, mayor rendimiento en las aplicaciones o cualquier otro que se tome en cuenta desde el inicio. 7 PROGRAMACIÓN ORIENTADA A OBJETOS Para aprender más El Análisis y diseño orientado a objetos Dentro de esta etapa existen elementos que se pueden considerar de importancia, éstos se definen por el diseñador de la aplicación o el programador que trabaja sobre le creación y consolidación del sistema. Algunos elementos son: • El diseño orientado a objetos, define las especificaciones lógicas del software que cumple con los requisitos funcionales. • Se asignan responsabilidades entre los objetos y se muestra cómo interactúan a través de mensajes. • El diagrama de colaboración presenta el flujo de mensajes entre las instancias y la invocación de métodos. • Para definir una clase se requiere de determinar varios elementos: o La conexión de los objetos con otros. o El uso de los métodos de una clase. El modelo de diseño no muestra gráficamente los conceptos del mundo real, describe solamente los componentes del software. Algunos de los tipos de análisis son: Ø Análisis de estructuras: dentro de éste ubicamos dos tipos de estructuras: o Estructura generalización-especialización: estas relaciones entre clases son llamadas relaciones de clasificación. o Estructura todo-partes: indica conjuntos diferentes de objetos que componen otro objeto completo. 8 PROGRAMACIÓN ORIENTADA A OBJETOS Ø Análisis de clases y objetos. Ø Análisis de atributos: definen las propiedades de un objeto de datos, se basa también en el uso de tres ideas relevantes desde el punto de vista orientado a objetos. § Los atributos son siempre más propensos al cambio de clases. § Los atributos deben ser mantenidos tan alto como sea posible en las estructuras. § Las asociaciones o relaciones entre objetos deben ser detalladas como conexiones de ocurrencia. o Conexiones de ocurrencia: no se especifican los atributos de llave primaria, sino que las referencias entre objetos, como las asociaciones y relaciones, se indican por una sola línea entre los objetos de la misma notación y cardinalidad. o Plantilla de especificación preliminar: con el uso de atributos es necesario contar con detalles de análisis adicionales para dar soporte al diagrama de capas. Ø Análisis de servicios: puede ser llamado método o procedimiento y es parte importante de los objetos como los atributos. Por parte del diseño orientado a objetos, podemos encontrar las categorías del mismo en: • Diseño orientado a objetos: éste se agrupa en componentes de la interfaz humana, el exponente de manejo de datos y el componente de manejo de tareas, todos estos expandidos en etapas. • Diseño del componente de dominio problema: es el conjunto de objetos funcionales que llega de la etapa de análisis, éste determina tres actividades: 9 PROGRAMACIÓN ORIENTADA A OBJETOS o Diseño de reúso: se puede añadir en esta etapa nuevas clases para reusar objetos que serán útiles más adelante. o Estructura de implementación: en éste podría ser necesario que al diseño se agreguen estructuras que pueden ser de Gen-Spec. o Acomodo al lenguaje: aquí se pueden corregir diseños para las estructuras que consiguen ser construidas en el lenguaje de programación seleccionado. • Diseño del componente de interfaz humana: en esta se crean menús, reportes y pantallas interactivas que usarán las personas para poder trabajar con el sistema. • Diseño de componentes de administración de tareas y datos: estos componentes están estrechamente relacionados con la tecnología de implementación. El manejo de tareas está determinado por la configuración de hardware y el manejo de datos por el software disponible en el sistema. 10 PROGRAMACIÓN ORIENTADA A OBJETOS Actividad de Aprendizaje Instrucciones Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar una actividad en la cual a través de un análisis orientado a cualquier actividad en tu vida cotidiana, descompongas en procesos primarios y secundarios esta función que realizas, puede ser cocinar, preparar pintura o cualquier otra actividad. Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como un documento de texto para subirlo a la plataforma de la asignatura. 11 PROGRAMACIÓN ORIENTADA A OBJETOS Bibliografía • Canchala L. (s.f.) UML ejemplo sencillo sobre modelado de un proyecto. Consultado en: http://msdn.microsoft.com/es-es/library/bb972214.aspx • Luna M. (2005) Análisis y diseño orientado a objetos. Consultado en: http://docentes.uni.edu.ni/fec/Giovanni.Saenz/Ingenieria_de_Software/Ana lisis_y_DisenoOO.pdf • Ramírez A., Vanpeperstraete P., Ruecket A., Odutola K., Bennet J., Tolke L., Ven der Wulp M. (2008) Análisis orientado a objetos y diseño. Consultado en: http://argouml-stats.tigris.org/nonav/documentation- es/manual-0.28/ch01.html#s2.ooad • Rossainz M. (s.f.) Diseño orientado a objetos. http://www.cs.buap.mx/~dpinto/semadoo/mario.pdf Consultado en: 12