viernes, 11 de abril de 2014

UML Capítulo 1: ¿Me interesa aprender UML?

En este capítulo empezaremos haciendo una brevísima introducción sobre UML y los usos en los proyectos. Puede resultar útil o no a los versados pero que considero necesario para aquellos que quieran introducirse en este mundo y su utilidad en diferentes tipos de proyectos. ¡Y sin más preámbulos vamos al meollo!.


¿UML?, ¿y esto qué es lo qué es?


UML son las siglas en inglés de Unified Modeling Language, lo que en lengua cervantina se traduce como Lenguaje Unificado de Modelado. Fué creado por James Rumbaugh, Ivar Jacobson y Grady Booch para ofrecer un estándar de modelado en la especificación, diseño y construcción de sistemas de software complejos, y ofrecer así, una visión del sistema que todo el mundo pudiese comprender. Está pensado para su uso en la tecnología de orientación a objetos y servir de apoyo a un proceso interactivo, incremental y centrado en la arquitectura(o como gustan llamarlo en algunos entornos, proyectos vivos, aunque todos tienen fecha de finalización pero eso no quiere decir que no se cambien en el futuro o no haya mantenimiento).


¿Pero me sirve o no me sirve para mi proyecto?


En principio, y como se ha indicado en el apartado anterior, UML está orientado a grandes sistemas. Esos donde están involucrados varios equipos de desarrollo que trabajan de manera independiente y que no tienen que formar parte de la empresa (de hecho, la subcontratación de servicios en el entorno IT orientado al Software está ahí), o sí, pero son distintos equipos sin relación directa entre ellos(o con una relación indirecta a través de mandos medios o altos: jefes de proyecto, directores de proyecto,...) y todos sabemos cómo se puede desvirtuar la información por el camino. Lo que ofrece UML es una manera gráfica de entender el sistema para ayudar en su implementación final y mantenimiento.


¡Que si pesado, pero mis proyectos son medianos, o soy un autónomo/freelance sin relación con otros equipos de desarollo!. ¿Merece la pena usarlo?.


Desde mi punto de vista desde luego. Ya sé que UML está pensado para grandes sistemas. Y entiendo que como autónomo o freelance no puedas tener tiempo de hacer dicha documentación(a fin de cuentas yo me lo guiso, yo me lo como) pero creo que es bueno usarlo igualmente porque permite tener una visión de conjunto del proyecto que puede que perdamos con el tiempo(la mente nos juega malas pasadas a veces) o que el cliente prescinda de nuestros servicios, ¡o mejor aún que encontremos clientes nuevos!, y aquí el UML es crucial por lo indicado anteriormente.


Imaginaos que os contrata un cliente nuevo y os pasa un modelado del sistema en UML, ¿cuánto tiempo hemos ganado en comprender dicho sistema sin tener que navegar por el mismo para entenderlo?. ¡Bendita documentación!. ¡Usemos entonces la reciprocidad y hagámoslo!, a fin de cuentas un cliente satisfecho posiblemente no prescinda de nuestros servicios, ¡y tal vez se lo comente a otros y podamos tener más clientes!, ¡y podamos aumentar nuestro negocio y fundar una empresa!, ¡y comprar otras empresas y fundar una gran compañía internacional!... eeeh, perdón, me he emocionado y esto está tomando la forma del cuento de la lechera ;) . Bromas a parte, creo que podemos ver los beneficios de usar UML.


Muy bonito, que pena que tenga proyectos pequeños, ¿entonces para qué me sirve?


Bueno, por partes y con ejemplos:
  1. Mi proyecto son sólo cinco páginas estáticas(o unas poquitas más): En este caso con una documentación básica bastaría y no creo necesario usar UML
  2. Mi proyecto tiene una base de datos(o varias) y/o un número importante de páginas: O ambas cosas, páginas y bases de datos con su lógica. Aquí yo sí usaría UML por las razones indicadas anteriormente ya que en el futuro te ayudará a refrescar cómo está hecha y su funcionamiento, además de lo que necesites modificar si es que hay un evolutivo en el proyecto.

¡Psche!, no está mal, tal vez me interese


Si he conseguido captar tu atención para el uso del UML o porque quieres aprender sobre el mismo. Iré subiendo artículos cada poco tiempo(¡tampoco me pidáis actualizaciones diarias que uno es humano!). Para ello me basaré en diferentes textos pero sobre todo en el libro “El lenguaje Unificado de Modelado Universal” publicado en España por la editorial Pearson.

¡Gracias por leerme!.

5 comentarios:

  1. Pues ya tienes un seguidor. Estaré al tanto de tus publicaciones.

    Respecto al uso de UML para páginas sencillas tengo un par de preguntas, aunque no es necesario que me respondas ahora si pretendes profundizar en estos detalles más adelante: ¿Te refieres a diagramas de clases o de otro tipo? ¿Sería necesario incluso cuando se pretende programar sin objetos?

    ResponderEliminar
  2. Hola Romwald. Gracias por comentar. Respondiendo a tu pregunta, para páginas sencillas yo usaría en plan documentación diagramas de casos de uso para presentarle al cliente cómo será la interacción con el sistema. Y como documentación interna lo que es un caso de uso normal.

    En próximos artículos hablaré sobre los distintos tipos de diagrama.

    ResponderEliminar
  3. Me acabo de dar cuenta que te he dejado una pregunta sin responder, la segunda. Si pretendes programar sin objetos hay ciertos diagramas que no te harían falta como el diagrama de clases, al no ser que quieras representar las páginas como clases donde los atributos sean los campos a mostrar y los métodos los eventos usados en la página. Personalmente no lo haría para no desvirtuar el UML y sobre todo si tienes pensado usar Ingeniería Inversa.

    ResponderEliminar
  4. Muchas gracias. En la uni sólo me enseñaron a utilizar diagramas de clases UML pero cuando me especialicé en desarrollo para web fui dejándolo de lado porque no solía utilizar objetos.

    Espero con ganas tus próximas publicaciones.

    ResponderEliminar
  5. William Hill Betting Locations | Mapyro
    Find William poormansguidetocasinogambling.com Hill sports betting locations in goyangfc.com Maryland, West Virginia, Indiana, Pennsylvania, South 토토 Dakota, 출장마사지 West Virginia and more. https://septcasino.com/review/merit-casino/ BetRivers.com.

    ResponderEliminar