Saturday, February 15, 2014

Weekend productivity tools (PicPick)

Weekend arrives, this spare time period you've been waiting for during the hard-working week days...

Yes, a bit of time for yourself, you expect.... Imagine the scene: you are going to read about these interesting things you've been collecting in your reading wish-list, when one of your lovely sons or daughters comes in asking for help for their homework... Let's work again!!!

As you can suppose, today's homework is influenced by new technologies: cloud platforms for distributing and collecting information and homework, word processing tools, animated presentations... ¿daddy can you help me?

It's amazing the abilities nowadays children have developed naturally for using such tools. I must say, I've seen them prepare really attractive presentations (better than mine, uhmm.., that's not very difficult ;)). Thanks good, I still can contribute with my experience (life is life) in tools, tricks and tips!!!

In these duties we were when I came across what I think is a very helpful tool: PicPick for Windows. Important advice: I strongly recommend to decline to install other applications included in the installer.

As stated in its homepage this is an “all-in-one” design tool for everyone:  Full-featured screen capture tool, Intuitive image editor, color picker, color palette, pixel-ruler, protractor, crosshair, whiteboard and more…
PicPick's feautes in tray icon menu
As far as I have tried, I can say that it’s a lightweight and very easy to use tool, which exposes all its features through a tray icon you can access quickly. You can configure it to start automatically with your session or call it when you need it.

Its first and main feature is screen capturing which can be done directly over the screen (by means of a keyboard shortcut), fencing the desired area and sending it directly to the clipboard (you must change the configuration as by default it will capture into a paint-like tool included in PicPick), avoiding the two or three steps I was used to do before (Printscreen+Paste on Paint+Cutting&Copying…).

Color Palette and Color picker are also very useful if you have to define colors in your presentations or in developing tasks in order to configure stylesheets.

Although I haven’t tried in a real situation, the Whiteboard tool seems to be a very helpful tool when you need to explain or teach something over a running application in a computer.

PicPick is a free application for home users. The price for commercial use rounds 25$.

Let me know if this post has interested you, and if you know about a similar Opensource alternative, or at least a full freeware one, please: let us know!

Sunday, February 09, 2014

Sobre herramientas de modelado con UML y otros asuntos relacionados

La necesidad de usar UML

A lo largo de los proyectos que he venido realizando en mi actividad profesional ha surgido en mayor o menor medida la necesidad de utilizar la notación UML (Unified Modeling Language) en los siguientes escenarios (principalmente):
  • Requisitos: fundamentalmente mediante diagramas de casos de uso para la captura de requisitos funcionales, diagramas de máquinas de estados y actividad para la comprensión de procesos y flujos de trabajo.
  • Diseño funcional: diagramas de paquetes para la descomposición funcional de la solución en paquetes o módulos y diagramas de casos de uso para la especificación de la funcionalidad que debería ofrecer la solución que estábamos construyendo.
Diagrama de casos de uso
  • Diseño de la solución y de su arquitectura: siendo el más importante el diagrama de clases, también otros como los diagramas de componentes, de secuencia, etc., según las necesidades concretas de uno u otro proyecto.
Diagrama de clases

Dicha necesidad se produce en proyectos con distintos enfoques sin estar reñida con el tipo de metodología aplicada en ellos: tanto en proyectos en los que se pedía un desarrollo "en cascada" o "en V", como en proyectos en los que se han aplicado metodologías ágiles en los que no se requiere un diseño completo previo al desarrollo pero en los que sin embargo el uso de UML sigue siendo válido y necesario.

Lo que he utilizado hasta la fecha...

Eran mediados de los noventa cuando the three amigos desarrollaron (integraron) sus mejores propuestas para dar lugar a la notación UML, y además la acompañaron de una metodología de desarrollo conocida como RUP (Rational Unified Process), que precisamente toma el nombre de la empresa en la que se hicieron fuertes Rational Software.

Rational Rose, fue la herramienta de referencia en aquel entonces, debido a que tenía el sello de los padres de la criatura y que ofrecía un alto grado de calidad y completitud para soportar los distintos elementos de la notación UML así como del proceso RUP.

Mi experiencia con esta herramienta es inexistente más allá de haberla abierto un par de veces o de haber leído alguna guía o tutorial sobre la misma. Esto se debe a que quizá cuando empezamos a utilizar estas técnicas no se justificaba la adquisición de una herramienta con un precio "considerable" teniendo en cuenta el uso que se le iba a dar: sólo algunos diagramas y de manera parcial, y a priori ninguno en lo relativo a RUP.

Por otra parte disponíamos de licencias de productos de ofimática y de desarrollo de Microsoft entre los que se encontraba Microsoft Visio, tanto como parte de la familia Office como con las versiones ...for enterprise architects (en su versión 2003) incluidas en las soluciones de desarrollo de Visual Studio .NET 2003 y Visual Studio 2005.

En mi opinión MS Visio es una herramienta magnífica (ya en su versión 2003 y a día de hoy también) por su versatilidad a la hora de realizar todo tipo de diagramas y por su extensibilidad (mediante un modelo de objetos COM, hoy poco apetecible).

Además parecía que era la respuesta de Microsoft para complementar sus herramientas de desarrollo Visual Studio a través de las versiones ...for enterprise architects con sus capacidades de reingeniería inversa y generación de código (no sólo en lo relativo a UML sino también para resolver el modelado de Bases de Datos mediante modelos ER físicos obtenibles por ingeniería inversa y con la posibilidad de generar implementaciones físcas mediante scripts de DDL).

Lamentablemente parecía que ésta no iba a ser la apuesta definitiva de Microsoft tal y como se vio cuando dejaron de incluirlo en las siguientes versiones de Visual Studio (¡y ya no se podía instalar salvo que mantuviésemos las versiones de VS anteriores!) o al comprobar que no se implementaban las últimas versiones de la notación UML (esta última "pega" la pudimos paliar en cierta medida gracias a las capacidades de configuración del propio Visio).

Aún así Visio es la herramienta que más he utilizado para cubrir las necesidades que comentaba al principio cuando se trataba de documentar o realizar reingeniería de código o bases de datos.

Con Visual Studio 2010 Microsoft introdujo una nueva serie de herramientas totalmente integradas en el entorno de desarrollo que ofrecen además la sincronización entre el código y componentes de la arquitectura y sus respectivos modelos. Lamentablemente estas capacidades están sólo disponibles en la versión Ultimate, algo que hace que sea totalmente inviable económicamente salvo para mantener un par de licencias (ni siquiera para cualquier empresa/organización).

Personalmente considero que las herramientas de modelado deben estar accesibles a todo el equipo de desarrollo que las ha de utilizar en mayor o menor medida según su papel en el mismo, y por la razón que comentaba veo muy difícil que la propuesta de MS sea la herramienta en la que decida aplicar mis esfuerzos...

¿Y ahora qué?

¿Sigo tirando de Visio o buscamos alguna alternativa? En la siguiente entrada trataré de dar una respuesta a esa pregunta comentando varias alternativas de Software Libre que he analizado estos días.

¡Espero vuestros comentarios!