UML: Diagramas de flujo para el desarrollo de una plataforma a gran escala
La necesidad de plasmar las ideas por escrito nos ha perseguido por miles de años, desde la invención de la escritura e incluso más allá en tiempos de los petroglifos de la pre-historia. Manifestar nuestros pensamientos es una necesidad humana, y cuando los humanos debemos organizarnos o trabajar en equipo es necesario hacernos entender claramente y evitar los “malos entendidos” que puedan provocar el desastre.
En tiempos más recientes y aproximándonos al desarrollo creciente y organizado de las grandes compañías que dieron inicio a la revolución informática en el siglo XX. La necesidad de organizar pasó al plano de lo vital; imposible surgir si no organizamos las ideas y plasmamos por escrito el comportamiento e interacción de la información que vamos a manipular.
Diagramas de flujo:
Nacieron los diagramas de flujo, que a base de rombos, líneas y rectángulos dieron forma a los primeros sistemas. Tenga en cuenta amigo lector que los sistemas no sólo se encasillan a la informática, el software y los bit. Hasta un plomero podría ver muy útil un diagrama de flujo en aquellos tiempos.
El visualizar en forma de diagrama el flujo de la información representó un gran avance respecto a la evolución de la “eficiencia en el desarrollo”, acelerando el cumplimiento de los objetivos y reduciendo los errores durante el proceso.
En tiempos de BASIC, FORTRAN y COBOL, los diagramas de flujo estuvieron siempre presentes aún cuando no hubiese algún otro programador echando mano al código. Sino por la necesidad de organizar las ideas.
Lenguaje de Modelado Unificado (UML):
Pero los tiempos cambian y las necesidades también. El trabajo colaborativo, el apego a los estándares, las grandes masas de información, y los infinitos niveles de jerarquía en cualquier organización empezaron a dar fin a viejo Diagrama de Flujo el cual al fin y al cabo sólo eran rombos, líneas y rectángulos.
Satisfacer estas necesidades condujo a la creación de un estándar internacional para el año 2005, el Lenguaje de Modelado Unificado (Unified Modeling Language), o mejor conocido como UML.
No es muy difícil de comprender a que viene el UML, técnicamente son los mismos “diagramas de flujo” pero llevados a un lenguaje que represente en forma de código lo que solíamos ver en forma de imágenes. Evidentemente que el UML va mucho más allá de la bidimenionalidad a la que estábamos acostumbrados con los viejos diagramas de flujo, pero el objetivo es el mismo: organizar y representar.
¿Vale la pena implementar UML en mi trabajo?
En mi opinión personal hay un gran “depende de”, pero vayamos a lo concreto: evidentemente un lápiz y un papel serán mucho más efectivos que un complejo diagrama UML si lo que vas es a planificar como preparar un emparedado teniéndote como único involucrado.
Pero si hablamos de planificar la estructura, desarrollo de una plataforma a gran escala, con cientos de módulos que interactúan entre sí, decenas de programadores responsables involucrados, complejos modelos de datos y donde cada dependencia tenga determinado nivel de acceso a este gran mega diagrama. Entonces sin UML no podrías sobrevivir.
En países donde los estándares y la calidad son premiados (USA, Japón y Canadá por ejemplo), es notorio como las demandas de empleo incluyen el dominio de UML dentro de sus requerimientos; y es que hablamos de: trabajar en equipo, reducir el tiempo de desarrollo, reducir los errores y por sobre todo: dejar en claro el mensaje: “esto es lo que el sistema debe hacer”.
¡Diagramemos!
Existen muchas aplicaciones que nos ayudarán a crear diagramas UML, la lista es muy extensa así que mejor nos saltamos esa parte y exploramos por nuestra cuenta en esta lista publicada en Wikipedia.
Pero hay una aplicación en particular que me ha resultado muy simple pero a la vez atractiva y fácil de usar (además de ser la que he venido usando últimamente), sumado a la singularidad de estar basada en la web: yuml.me merece la pena echar una mirada a esta interesante aplicación.
Como bien acuñó en su tiempo Edward Bulwer-Lytton:
“La pluma es más fuerte que la espada”
Lo que es lo mismo: Dejemos las cosas por escrito y no nos caigamos en desentendidos.
Como habrán notado evito dejar el tecnicismo a un lado; este análisis ha tenido por objetivo quitar la venda de los ojos a quienes piensan que UML es un lenguaje para establecer contacto con los OVNIS e invitarles a investigar sobre el tema, bien sea por apegarnos a las buenas prácticas o por mera curiosidad como buenos hambrientos de conocimiento que somos.
[…] Les presento mi primer artículo: UML: Diagramas de flujo para el desarrollo de una plataforma a gran escala […]
Muy bien! Desde mi punto de vista, el modelado de un sistema con UML a mí me ha permitido tener una vista general o “superior” de todo el producto. Ayuda a plantear los posibles alcances que se lograrán y a planear el desarrollo con base en ellos.
Hace realmente poco tiempo que he empezado a experimentar que todas las herramientas que la Web te ofrece y lo que hago ahora es diseñar y plantearme las ideas de cada proyecto sobre papel, en este caso, sitios web que ayudan a generar mapas mentales, que por cierto, hay un tema aquí en maestrosdelweb que habla de eso y en verdad es bastante útil en ese proceso de diseño y planeación de un proyecto, para mí.
Saludos 😉
Pues en la gran mayoría de desarrollos que realizo, empiezo por diagramar lo que va a ser el desarrollo. Ayuda a entender el proyecto global, se separan las diferentes partes que van a interactuar entre ellas y, facilita la programación por parte de diferentes desarrolladores. Es como el ¡Divide y vencerás!
En lo pesonal, siempre es necesario hacer un UML sea pequeño o grande tu sistema, y esto para llevar un buen orden y hacer que tus proyectos sean o no mas grandes y escalables, creo que no debemos de pensar en pequeño, o simple, sino en algo concreto y con escalable.
Saludos
Gildus
La herramienta es muy practica a la hora de un modelar un sistema prolijo y comprensible.
Modelar un sistemas o algun proyecto en general, debe inicarse con prolijidad,UML ayuda a eso.
Ayuda a “departamentalizar ” tareas dentro del sistema.
Saludos
GS Desarrollo Digital
Buenas noches, ustedes podrían ayudarme dandome Bibliografías..que me permitan estudiar el tema de manera detallada.
Se los agradecería.