Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS Sesión No. 8 Nombre: El Modelo de diseño con UML Contextualización Los modelos que podemos crear con UML son varios, por lo que debemos definir en primera instancia lo que deseamos lograr y alcanzar. Con UML se tiene una técnica de trabajo sobre los sistemas de forma específica que se considera durante todas las fases de desarrollo, cuando deseamos emplear un diseño para una aplicación, es decir la creación de un software, con UML lo podemos lograr de una manera más sencilla, se consideran elementos de desarrollo y pruebas importantes que funcionan específicamente sobre un medio dedicado. Se puede mejorar el proceso de producción, reducir los tiempos, mejorar la información que se ingresa al sistema, optimizar los modos de compilación de los datos, entre otras cosas más. Este medio de desarrollo es independiente de los métodos de análisis y diseño, de esta forma se tiene un poco más de libertad en los diseños y las creaciones, además de dar la oportunidad al desarrollador de crear varios prototipos de un mismo lenguaje o sistema que se ha aplicado para tener más opciones viables. 1 PROGRAMACIÓN ORIENTADA A OBJETOS Introducción al Tema UML es un medio de desarrollo que cuenta con varios elementos a considerar antes de la creación de cualquier aplicación, éstos se utilizan para mejorar los procesos de funcionamiento que se tienen y optimizar los resultados que se buscan. Para realizar un buen diseño se requiere tener una idea más clara, esto mediante el uso de diagramas de flujo, diagramas de clase o modelos en cascada o cualquier otro sistema o medio de ayuda a la comprensión del sistema en producción. El uso de los diagramas permite conocer el contenido de la aplicación y la forma en cómo ejecutará las instrucciones que se darán por los usuarios, cómo se tomarán las acciones en el sistema y permite encontrar errores antes de su compilación. Los diagramas ayudan a tener una mejor estructura, ya que permiten el análisis de los códigos y se adaptan las soluciones más pertinentes que puedan dar un resultado esperado. 2 PROGRAMACIÓN ORIENTADA A OBJETOS Explicación Modelo de diseño con UML ¿Qué es UML? Es un lenguaje estándar de programación utilizado para realizar planos de software, puede utilizarse para visualizar, especificar, construir y documentar todo lo que se requiere en el sistema. UML proporciona vocabularios y reglas para ser utilizados dentro de un lenguaje de modelado, esto con la finalidad de lograr una representación conceptual y física del sistema. Este lenguaje ayuda a la interpretación de grandes sistemas utilizando gráficos o texto obtenido de modelos explícitos que ayudan mejorando la comunicación durante el desarrollo de una aplicación. Las fases de diseño dentro de UML expande y detalla los modelos de análisis que se toman en cuenta para las implicaciones y restricciones técnicas. La finalidad con que cumple el diseño es la de dar soluciones, éstas deben poder trabajar y ser fácilmente convertida a un código fuente que construya una arquitectura simple y fácilmente extensible. Las clases definidas en el análisis son detalladas y añadidas a nuevas clases para manejar áreas técnicas como bases de datos, interfaz de usuario, comunicación, dispositivos, etc. UML como modelo de diseño se apoya de varios elementos, con los cuales puede determinar un mejor resultado final en el desarrollo de las aplicaciones que se desean completar, algunos de estos elementos son: • Diagramas de interacción. • Diagramas de colaboración. • Diagramas de secuencia. • Representación de clases e instancias. • Clases. 3 PROGRAMACIÓN ORIENTADA A OBJETOS • Paquetes. • Subsistemas. • Etc. Los modelos que busquemos crear mediante UML se apoyan en los diferentes tipos de diagramas, por lo que debemos comprender las diferencias de cada uno de estos y encontrar la mejor vía de aplicación para cada uno, con respeto a lo que buscamos o esperamos conseguir. Diagrama de clases Los diagramas de clase son elementos comunes que se utilizan dentro de los lenguajes de modelado orientados a objetos. Este diagrama, como lo dice su nombre, utiliza y muestra un conjunto de clases, interfaces y colaboración con las relaciones entre ellos. Este tipo de diagramas se utilizan en el diseño del modelo estático determinado para un sistema, involucra el vocabulario del sistema, el modelado de colaboraciones o modelo de esquemas. Los diagramas de clase se utilizan también como base para el uso de diagramas relacionados, conocidos como diagramas de componentes y diagramas de instalación. La importancia de estos diagramas son importantes no sólo para la visualización, especificación y documentación del modelo estructural, también es útil para la construcción de sistemas ejecutables. UML como medio de programación orientado a objetos se basa en los diagramas para tener el beneficio de un análisis anticipado de los elementos; es decir, con el uso de estas herramientas se pueden tener los detalles de lo que se desea diseñar al igual que comprender los elementos que funcionarán dentro del diseño, también se pueden realizar correcciones en esta etapa antes de compilar cualquier código o script ayudando al programador a ahorrar tiempo y código. Un diagrama de clases contiene comúnmente los siguientes elementos: 4 PROGRAMACIÓN ORIENTADA A OBJETOS • Clases. • Interfaces. • Colaboraciones. • Dependencia. • Generalización. • Relaciones de asociación. Los diagramas de clase pueden contener notas o restricciones y de igual manera contener paquetes o subsistemas de los cuales son usados para agrupar elementos de su modelo, en ocasiones se requieren instancias de lugar en el diagrama de clases, como cuando se quiere visualizar el tipo de una instancia. Algunas características más que tienen estos diagramas son el uso de medios como: • Asociaciones: éstas representan relaciones estáticas entre las clases, en donde una flecha rellena indica la dirección de la relación. • Multiplicidad: las notaciones utilizadas para señalar multiplicidad se colocan cerca del final de una asociación. • Composición y agregación: es un tipo especial de agregación que denota una fuerte posesión de la clase, ésta se grafica con un rombo lleno contra la clase que represente el todo. • Generalización: es otro nombre por el cual se conoce a la herencia, refiere una relación entre dos clases donde una es una versión especializada de la otra. 5 PROGRAMACIÓN ORIENTADA A OBJETOS Conclusión El sistema de modelado de datos UML es muy importante, gracias a sus elementos o herramientas de uso se pueden definir de mejor manera las estructuras de las aplicaciones y la programación orientada a objetos. Como sabemos, cada sistema o medio de programación tiene sus propios elementos con los cuales funciona y determina nuevas relaciones de trabajo o desarrollo de elementos, cuando no se tiene bien definido el sistema con el cual se trabajará el uso de las herramientas disponibles para realizar esto, puede fallar. La mejor manera de trabajar sobre la programación orientada a objetos es con el uso de diagramas, con éstos podemos definir una mejor relación entre los elementos y comprender de un análisis más completo en cuanto a los objetivos que se desean alcanzar y concretar. Todos los lenguajes de programación orientada a objetos tienen sus fortalezas y debilidades, por lo que cada desarrollador debe comprenderla y adaptarse a la situación de trabajo para lograr tener un mejor resultado en cuanto a rendimiento y trabajo del usuario y la aplicación. 6 PROGRAMACIÓN ORIENTADA A OBJETOS Para aprender más Modelo de diseño con UML Desde una perspectiva general, el UML se compone de tres elementos básicos que son; bloques de construcción, reglas y algunos mecanismos comunes. Estos elementos interactúan entre sí para dar al UML un medio de no-ambigüedad. Éste proporciona un conjunto de pautas al momento de realizar asociaciones entre objetos para poder conseguir modelos bien formados, UML se vale de elementos, como: • Bloques de construcción de UML. • Elementos estructurales. • Clases. • Interfaz. • Colaboración. • Casos de uso. • Nodos. • Etc. ¿A qué elementos se dirige UML? UML es un lenguaje que se especializa en la programación orientada a objetos (POO), cuenta con varios elementos que la definen y la hacen funcional a cualquier programador, podemos decir que UML se dirige a: • Visualizar: permite ver lo que queremos conseguir con el sistema, facilita la comunicación y da una representación gráfica para una mejor comprensión. • Especificar: construir modelos precisos, cubriendo decisiones en análisis diseño, implementación y funcionamiento. 7 PROGRAMACIÓN ORIENTADA A OBJETOS • Construir: permite el desarrollo de plantillas aplicables a diferentes lenguajes de programación. • Documentar: cubre con los requisitos de los medios escritos para tener algún soporte técnico y de estudio. Diagrama de clases Los diagramas de clases son elementos importantes de apoyo con los cuales se definen mejores opciones de trabajo, algunos de los usos más comunes que se tienen en este aspecto son: • Modelado del diseño estático de un sistema o Modelo del vocabulario de un sistema, éste involucra tomar decisiones acerca de las cuales son parte del sistema y quedan fuera del ambiente. o Modelado simple de colaboraciones: es la sociedad de clases, interfaces y otros elementos que trabajan juntos para proveer un comportamiento de colaboración. o Modelo lógico del esquema de la base de datos, ayuda a pensar en un esquema como la heliografía para el diseño conceptual de una base de datos. • Soporta los requerimientos funcionales de un sistema. 8 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 ensayo resaltes la importancia que tienen UML en el mundo actual y los posibles medios en que es aplicado. Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como un documento de texto con la finalidad de subirlo a la plataforma de la asignatura. 9 PROGRAMACIÓN ORIENTADA A OBJETOS Bibliografía • Ferre X., Sánchez M. (s.f.) Desarrollo orientado a objetos con UML. Consultado en: http://www.uv.mx/personal/maymendez/files/2011/05/umlTotal.pdf • González E. (s.f.) ¿Qué es UML?. Consultado en: http://www.docirs.cl/uml.htm • Hernández E. (s.f.) El lenguaje Unificado de Modelado (UML). Consultado en: http://www.disca.upv.es/enheror/pdf/ActaUML.PDF • Mendoza J. (s.f.) Diseño del sistema de tarjeta de crédito con UML. Consultado en: http://sisbib.unmsm.edu.pe/bibvirtualdata/tesis/basic/mendoza_nj/cap5.pdf • UNAM. (1999) Diagramas de clases. Consultado http://www.mcc.unam.mx/~cursos/Objetos/Cap8/cap8.html en: 10