jueves, 4 de diciembre de 2014

UML como base para realizar los diagramas de representación de un sistema


Foro temático semana tres

Descripción: Comparta con sus compañeros las ventajas más relevantes de usar UML como base para realizar los diagramas de representación de un sistema.


Introducción

En general al producirse un requerimiento de software, surge una idea. Por ejemplo un administrador general de un negocio que compra y vende productos, observa que utilizando la informática puede mejorar sustancialmente su administración; entonces, teniendo una idea bastante clara de su necesidad, acude a especialistas en desarrollo de software.
Después de varias entrevistas, los especialistas determinan que deben cumplir con las siguientes etapas de trabajo para generar el software adecuado a los requerimientos de su cliente:
     a)    Relevamiento
     b)    Análisis
     c)    Diseño
     d)    Desarrollo   
     e)    Capacitación
     f)     Mantenimiento
El relevamiento consiste en un dialogo permanente de los especialistas y el cliente (puede incluir al personal de diferentes sectores del negocio) con el fin que los primeros identifiquen todos y cada uno de los componentes de dicho negocio y cómo interactúan. En definitiva, los especialistas deben comprender aquella idea detalladamente y mantenerla mientras se produce el software.
Para esto, los especialistas pueden hacer uso del Lenguaje Unificado de Modelado, ya que les ayudará a capturar la idea del sistema requerido, para luego comunicarla a los involucrados en el proyecto. Esta tarea se lleva a cabo en las etapas de análisis y diseño, utilizando simbología y diagramas UML con el objeto de modelar el sistema.
Modelar el sistema utilizando los diagramas de UML, significara en definitiva contar con documentos que plasman el trabajo de capturar la idea para la posterior evolución del proyecto. El cliente podrá entender el plan de trabajo de los especialistas y señalar cambios si no se captó correctamente alguna necesidad; o bien, indicar cambios sobre la marcha del proyecto. A su vez, los especialistas encargados del desarrollo generalmente trabajaran en equipo, por lo que cada uno de ellos podrá identificar su trabajo particular y el general a partir de los diagramas UML.
UML proporciona las herramientas para organizar un diseño sólido y claro, que comprendan los especialistas involucrados en las distintas etapas de la evolución del proyecto, y por qué no para documentar un anteproyecto que será entregado al cliente.
El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos.
La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. Recordemos que un modelo es una representación simplificada de la realidad; el modelo UML describe lo que supuestamente hará un sistema, pero no dice cómo implementar dicho sistema.

UML

El éxito de un proyecto depende en gran medida de un buen plan y de una buena organización. En vista de ello, se hace necesario contar con herramientas eficientes para desarrollar sistemas.
La utilización del UML como herramienta de diseño de sistemas no se trata de una aventura sin precedentes, sino por el contrario, UML es actualmente un estándar que ha llegado a hacerse popular por la aceptación que ha tenido y la efectividad que ha representado para muchos analistas y diseñadores de sistemas.
El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación.
UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real.
UML es una consolidación de muchas de las notaciones y conceptos más usados orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares.
UML preescribe una notación estándar y semánticas esenciales para el modelado de un sistema orientado a objetos. Previamente, un diseño orientado a objetos podría haber sido modelado con cualquiera de la docena de metodologías populares, causando a los revisores tener que aprender las semánticas y notaciones de la metodología empleada antes que intentar entender el diseño en sí. Ahora con UML, diseñadores diferentes modelando sistemas diferentes pueden sobradamente entender cada uno los diseños de los otros.
UML es, probablemente una de las innovaciones conceptuales en el mundo tecnológico del desarrollo de software que más expectativas y entusiasmos haya generado en muchos años, comparable a la aparición e implantación de los lenguajes COBOL, BASIC, PASCAL, C++, y más recientemente Java o XML. Además todas las expectativas se han cumplido y han generado a su vez nuevas expectativas. UML es ya un estándar de la industria, pero no solo de la industria del software sino, en general, de cualquier industria que requiera la construcción de modelos como condición previa para el diseño y posterior construcción de prototipos.
UML ha nacido como un lenguaje, pero es mucho más que un lenguaje de programación. Aunque en su génesis se parece a C++ o a Java, en realidad se ha diseñado o construido un lenguaje que ha nacido con una madurez muy acentuada si se le compara, incluso, con los últimos desarrollos de HTML, Java y XML, los lenguajes por excelencia del mundo Internet.

Ventajas

UML se ha diseñado realizando combinaciones de una gran cantidad de estándares, si bien se rige a través de tres metodologías procedentes de la colaboración de los tres creadores de UML, J. Rumbaugh, G. Booch e I. Jacobson, así como del análisis y estudio de alrededor de 20 métodos estándares que a su vez se han integrado en otro estándar, en este caso, UML; esta fue una gran iniciativa de los tres creadores que pusieron las especificaciones de UML a la consideración de la comunidad informática mundial, antes de su publicación. El diseño de UML ha sido completo desde el principio, al contrario que HTML que ha cambiado gradualmente, de forma que XML ha tratado de resolver los problemas de HTML y Java, que sigue todavía en el proceso de estandarización con la nueva versión 2.0. Al contrario que HTML/XML que son lenguajes de marcación (markup), UML es un lenguaje para modelar, que es el proceso que emplean los ingenieros de software antes de pasar a su construcción, al igual que sucede con cualquier producto manufacturado o fabricado en serie.
UML ayuda al usuario a entender la realidad de la tecnología y la posibilidad de que reflexione antes de invertir y gastar grandes cantidades en proyectos que no estén seguros en su desarrollo, reduciendo el coste y el tiempo empleado en la construcción de las piezas que constituirán el modelo.
Sin embargo desde el punto de vista puramente tecnológico, UML tiene una gran cantidad de propiedades que han sido las que, realmente han contribuido a hacer de UML el estándar de facto de la industria que es en realidad. Algunas de las propiedades de UML como lenguaje de modelado estándar son:

   ·         Concurrencia: es un lenguaje distribuido y adecuado a las necesidades de conectividad, actuales y futuras.
   ·         Ampliamente utilizado por la industria desde su adopción por OMG.
   ·         Reemplaza a decenas de notaciones empleadas con otros lenguajes.
   ·         Modela estructuras complejas.
   ·         Las estructuras más importantes que soportan tienen su fundamento en las tecnologías orientadas a objetos, tales como objetos, clase, componentes y nodos.
   ·         Emplea operaciones abstractas como guía para variaciones futuras añadiendo variables si es necesario.
  ·         Comportamiento del sistema: casos de uso, diagramas de secuencia y de colaboraciones, que sirven para evaluar el estado de las máquinas.

Algunos beneficios: Dos grandes empresas, Rational Software (empresa creadora de UML y de Rational Case) y Commerce One (líder mundial en soluciones globales de comercio electrónico) acordaron colaboración mutua para crear la especificación de la primera versión UML para la industria, que siga las especificaciones XML para el desarrollo del comercio electrónico; es decir, se han unido dos grandes empresas con el objeto de construir un método estándar que reduzca drásticamente el tiempo de desarrollo e incremente la calidad de las aplicaciones de comercio electrónico basadas en XML.
Se trata de alcanzar la máxima de que el cambio rápido de Internet ha creado una paradoja para el desarrollo del conocido como e-software para las organizaciones que requieren la entrega de software de un modo mucho más rápido pero conservando una calidad alta. La versión de UML para especificaciones XML está disponible en el sitio web de Commerce One (www.commerceone.com/xml/sox/index.html) y en el sitio web de Rational (www.rational.com/uml/index.itmpl).
Otra gran ventaja que está ofreciendo UML se refiere al desarrollo de aplicaciones globales para la web, no solo para comercio electrónico. UML está siendo utilizado por los gerentes de proyectos, desarrolladores y arquitectos de la web que aplican técnicas orientadas a objetos para construir aplicaciones web robustas, escalables y eficientes. UML permite a los desarrolladores modelar sus aplicaciones web como parte de un sistema completo y la lógica de negocios que se debe reflejar en las aplicaciones.
UML permite modelar sistemas de información, y su objetivo es lograr modelos que, además de describir con cierto grado de formalismo tales sistemas, puedan ser entendidos por los clientes o usuarios de aquello que se modela. Para ello es muy importante que el idioma en el que estén las palabras y textos que aparezcan en tales modelos sea el propio de estas personas.
En cualquier comunidad hispanohablante, leer “Pedido” aclara más que ver “Order”, y leer “Hereda de” más que “inherits”, porque los términos en español evocan directamente al lector una semántica cercana a la que se pretende con su uso en el modelo, y esa evocación es precisamente la razón por la cual fueron elegidos los términos ingleses de ese modelo. Como lenguaje de modelado y descripción, UML permite que todo el modelo se cree en español o en cualquier otro lenguaje. Sin embargo, el inglés ha sido el idioma nativo en la creación de UML, por lo que las palabras clave incorporadas en el propio UML están en inglés. Para el cliente y el equipo de desarrollo, esto no es un problema, pueden usar los términos traducidos que entenderán mejor; pero cuando se quiere usar una herramienta de ingeniería de software que entiende semántica UML, ésta esperará encontrar términos ingleses para entender lo que quiere decir, por ejemplo, esa línea o figura.

Características generales

El Lenguaje Unificado de Modelado (UML) es un lenguaje de modelado visual que se usa para especificar, visualizar y documentar artefactos de un sistema de software. Captura decisiones y conocimiento sobre los sistemas que se deben construir. Se usa para entender, diseñar, hojear, configurar, mantener y controlar la información sobre los sistemas que se deben construir. Está pensado para usarse con todos los métodos de desarrollo, etapas del ciclo de vida, dominios de aplicación y medios. El lenguaje de modelado pretende unificar la experiencia pasada sobre técnicas de modelado e incorporar las mejores prácticas actuales en un acercamiento estándar. UML incluye conceptos semánticos, notación y principios generales. Tiene partes estáticas, dinámicas, de entorno y organizativas. Está pensado para ser utilizado en herramientas interactivas de modelado visual que tengan grandes generadores de código así como generadores de informes. La especificación de UML no define un proceso estándar pero está pensado para ser útil en un proceso de desarrollo iterativo. Pretende dar apoyo a la mayoría de procesos orientados a objetos.
UML capta la información sobre la estructura estática y el comportamiento dinámico de un sistema. Un sistema se modela como una colección de objetos discretos que interactúan para realizar un trabajo que finalmente beneficia a un usuario externo. La estructura estática define los tipos de objetos importantes para un sistema y para su implementación, así como las relaciones entre los objetos. El comportamiento dinámico define la historia de los objetos en el tiempo y la comunicación entre objetos para cumplir sus objetivos. El modelar un sistema desde varios puntos de vista, separados pero relacionados, permite entenderlo para diferentes propósitos.
UML también contiene construcciones organizativas para agrupar los modelos en paquetes, lo que permite a los equipos de software dividir grandes sistemas en piezas de trabajo, para entender y controlar las dependencias entre paquetes, y para gestionar las versiones de las unidades del modelo, en un entorno de desarrollo complejo. Contiene construcciones para representar decisiones de implementación y para elementos de tiempo de ejecución en componentes.
UML no es un lenguaje de programación. Las herramientas pueden ofrecer generadores de código de UML para una gran variedad de lenguajes de programación, así como construir modelos por ingeniería inversa a partir de programas existentes. UML es un lenguaje altamente formal pensado para probar teoremas. Hay varios lenguajes de ese tipo, pero no son fáciles de entender ni de usar para la mayoría de los propósitos. UML es un lenguaje de modelado de propósito general; para dominios especializados, tales como la composición de IGU, diseño de circuitos VLSI, o inteligencia artificial basada en reglas, podría ser más apropiada una herramienta especializada con un lenguaje especial. UML es un lenguaje de modelado discreto. No se creó para modelar sistemas continuos como los basados en ingeniería y física. UML quiere ser un lenguaje de modelado universal, de propósito general, para sistemas discretos, tales como los compuestos por software, firmware o lógica digital.
El UML soporta un conjunto rico en elementos de notación gráficos. Describe la notación para clases, componentes, nodos, actividades, flujos de trabajo, casos de uso, objetos, estados y cómo modelar la relación entre esos elementos. El UML también soporta la idea de extensiones personalizadas a través elementos estereotipados.
El UML provee beneficios significativos para los ingenieros de software y las organizaciones al ayudarles a construir modelos rigurosos, trazables y mantenibles, que soporten el ciclo de vida de desarrollo de software completo.
El UML unido a una gestión de calidad, evita malos entendidos  y  entrega ciertas precauciones en la evolución y mantención de programas. Especialmente en lo referente a los requerimientos asociados al levantamiento y diseño funcional de un sistema. En efecto, por ejemplo con los Clientes Dilema, quienes nos podrán hacer pensar que el cambio que están solicitando es pequeño, cuando detrás de la petición existe una enorme cantidad de tareas relacionadas al requerimiento.

Referencias:

El lenguaje unificado de modelado. Manual de referencia.
J. Rumbaugh, I. Jacobson, G. Booch
Pearson Educación S.A., Madrid 2000

Monografías.com
Ejemplos de diagramas UML, interfaces gráficas de usuario, y usos del UML en la ingeniería inversa
Jaime Oswaldo Montoya Guzmán - webmaster@jaimemontoya.com

Modelado de Sistemas com UML
por Popkin Software and Systems

El Lenguaje de Modelado Unificado

Proyectos UML
Diagramas de clases y aplicaciones
JAVA en NetBeans 6.9.1
Ubaldo José Bonaparte
Editorial de la Universidad Tecnológica Nacional
Argentina

No hay comentarios.: