¿Cómo crear aplicaciones con jHipster?

Cuando uno se enfrenta a la definición de un nuevo programa informático o software siempre existen una serie de condicionantes externos que afectan a la solución que se quiere diseñar. Y es que a la hora de implementar una plataforma informática una de las preguntas que debemos hacernos es, ¿cómo crear aplicaciones? Para ello, debemos tener en cuenta los siguientes aspectos o condicionantes:

  • Experiencia del equipo. ¿Qué integrantes habrá en el equipo? ¿Qué experiencia y conocimiento tendrán?
  • Plazos que cumplir. ¿Cuándo deberá ser el Go-Live? ¿Cuándo es la fecha límite? ¿Existen logros vencimientos intermedios?
  • Escenario de implantación. ¿Es una aplicación local o internacional 24x7? ¿Es on-premise o SaaS?
  • Extensibilidad. ¿Debo prestarle importancia a la personalización y funcionalidad a medio y largo plazo?
  • Escalabilidad. ¿El sistema deberá escalar en datos y número de usuarios?
  • Sostenibilidad. ¿Quién mantendrá la plataforma y cómo lo hará?
  • Presupuesto. ¿Cuál es la dotación económica para ejecutar el proyecto?

 Son una serie de factores que no son especialmente técnicos, pero que deben tenerse en cuenta como señales de que la solución informática se diseñará bajo una serie de premisas y no tendrá contratiempos durante todo su ciclo de vida. 

 

La importancia de usar aplicaciones prácticas y fiables aunque sean repetidas

 Otro error común que suelen cometer las organizaciones cuando implementan un nuevo software o aplicaciones, es tratar de reinventar la rueda. Una de las primeras acciones que se deben realizar es la reutilización.

 Por ejemplo, se debe buscar una solución en el mercado que satisfaga en un porcentaje elevado la funcionalidad a diseñar (por ejemplo, en torno a un 80%), y que además, funcione sin invertir más tiempo del necesario (o bien que sea posible adaptarse al cambio de funcionalidad restante).

 Si el sistema en su totalidad no existe en el mercado, este deberá subdividirse en otras piezas más pequeñas que serán los componentes que formarán parte del sistema final. Para cada uno de estas componentes se deberá realizar el mismo ejercicio.

 

 Las nuevas tendencias en el desarrollo de aplicaciones de negocio a medida nos llevan a sistemas basados en una capa frontend usualmente desarrollada con un framework JS/Javascript (Backbone, AngularJS, ExtJS, OpenUI5, etc.) y una capa backend que expone una serie de servicios REST en Java, Node.js, Php, etcétera.

 Esta combinación permite desacoplar la capa de visualización de la de negocio y fomenta la reutilización de servicios dentro de la organización (arquitectura SOA). De esta forma, y gracias a esta arquitectura sería posible plantear las siguientes situaciones:

  • Sustituir la capa visual dentro de X años por otra que aporte mejoras
  • Crear una aplicación móvil que consuma servicios del backend
  • Tener un equipo de desarrollo especializado en el front y un equipo de desarrollo especializado en el back

 Una de las combinaciones en el frontend/backend que están teniendo más aceptación sería para el frontend AngularJS y para el backend usar Java/Spring IO.  

¿Cómo crear aplicaciones? El ejemplo de un cliente

 A modo de ejemplo real, un cliente del sector automoción nos pidió ayuda con un nuevo proyecto en el que los condicionantes externos fueron los siguientes:

  • Poco tiempo. Existía un límite para la decisión del Go/No-Go que implicaba realizar la puesta en marcha en una determinada fecha
  • SaaS. Realizar una aplicación consumida en modo SaaS, donde además el usuario final no la iba a gestionar. Sólo utilizaría el frontoffice
  • Experiencia de usuario o UX. Realizar una aplicación que sea fácil de entender. Implicaba realizar un estudio de usabilidad y prototipado previo para realizar algo realmente intuitivo. Sin formación ni manuales.
  • Volumen elevado de datos. La aplicación se utilizaría para la visualización de grandes cantidades de información.

Ante estos problemas, vimos que debíamos invertir el tiempo en aportar valor a nuestro cliente y reducir a la mínima expresión el tiempo destinado a tareas de poco valor. Así, la búsqueda de un mejor servicio nos llevó a jHipster.

Gracias a esta tecnología pudimos crear una aplicación completa autogenerada desde un diagrama de clases UML. En menos de una semana fuimos capaces de generar una capa de servicios REST y un backoffice para gestionar las entidades (CRUD, crear, leer, actualizar y borrar).

Por si fuera poco, esta tecnología incorporó un motor de búsqueda también con servicios REST que utilizan Elasticsearch para no tener que desarrollar a medida nuevas funciones de búsqueda en los servicios y DAOs.

 De este forma, invertimos el tiempo necesario a diseñar un frontend realizado en Liferay+AngularJS que utilizaría la capa de servicios REST creada con jHipster. Posteriormente, se destinó todo el esfuerzo del proyecto en el prototipado, el diseño de usabilidad y en la carga de datos ETL (extraer, transformar y cargar) con Talend Data Integration.

 

¿Cómo crear aplicaciones con jHipster?

El proceso que debe seguirse para modelar aplicaciones con jHipster es muy simple:

  1. Toma de requerimientos con el cliente. Obtener toda la información posible funcional y no funcional que deberá satisfacer el nuevo sistema.
  2. Casos de uso y actores del sistema UML. Realizar un inventario de casos de uso que permitirá describir toda la funcionalidad del sistema y la relación con todas las partes interesadas.
  3. Diagrama de clases UML. A partir de los documentos anteriores deberemos hacer el ejercicio de identificar qué entidades de negocio se gobernarán en la aplicación y como se relacionan.
  4. Aplicación inicial en jHipster. Crear una aplicación esqueleto inicial con jHipster.
  5. Generar entidades, controladores y pantallas desde UML. Crear todas las capas técnicas (pantallas, controladores, modelo, etcétera) de forma automática con jHipster-UML. Tomar como entrada el diagrama anterior (3) para generar toda la aplicación.

En definitiva, debe analizarse muy bien qué tecnología aplicar en cada nuevo proyecto o producto porque no siempre es sota, caballo y rey. En este caso la tecnología seleccionada fue un acierto permitiéndonos aportar valor donde realmente se requería y minimizar tiempo de desarrollo en tareas de poco valor.

 

¿Quieres que hagamos lo mismo en tu organización? En Enzyme Group Advising, somos expertos en la aplicación y gestión de nuevas tecnologías para crear valor en tu empresa y acelerar el proceso de implementación digital. ¡No lo dudes y ponte en contacto con nosotros! ¡Verás cómo nos adaptamos a tus condicionantes sin problemas!

 

Más noticias

¿Cómo se ejecuta un proyecto de automatización de procesos con RPA?

La automatización de procesos con RPA es una de las tendencias en la transformación digital. La posibilidad de automatizar tareas, para que las personas puedan dedicar su tiempo y esfuerzo a tareas...

Leer másArrow 41

Explainability AI: cómo hacer nuestro modelo legible

A la hora de tomar decisiones, la inteligencia artificial se ha convertido en una herramienta muy útil en el día a día. Lo curioso es que esto es así tanto en el ámbito personal como en el laboral....

Leer másArrow 41

Inversión en tecnología: clave para hacer frente a la crisis económica

La crisis económica es una realidad palpable en la actualidad. La inflación de los precios, la poca disponibilidad de los combustibles, así como la lenta recuperación de la Covid-19, han hecho que...

Leer másArrow 41

Supply chain: tendencias y retos tecnológicos

En el mundo empresarial contemporáneo, la gestión efectiva de la cadena de suministro es fundamental para el éxito y la competitividad de las organizaciones. La cadena de suministro, o supply chain...

Leer másArrow 41

Cómo diseñar una estrategia de IA para incrementar el éxito de los proyectos de Machine Learning

En el Webinar “AI Strategy: Cómo diseñar una estrategia de IA para incrementar el éxito de los proyectos”, hemos compartido una visión acerca de aquellos problemas generales que hacen que proyectos...

Leer másArrow 41