Herramienta de soporte a la gestión mediante mapas estratégicos según la metodología de Cuadro de Mando Integral.

Texto completo

(1)

Tesis de grado

Herramienta de soporte a la gestión mediante mapas estratégicos

según la metodología de Cuadro de Mando Integral.

Baltasar Solanilla Ferraggine, Juan Cruz Deccechis

Director: Dr. Roberto Gustavo Illescas.

Trabajo final - Ingeniería de sistemas.

Facultad de Ciencias Exactas, Universidad Nacional del Centro de la Provincia de

(2)

Índice de contenido

1. Introducción 4

¿Qué es un Cuadro de Mando Integral? 4

¿Qué es un Mapa Estratégico? 5

1.1 Motivación 5

1.2 Objetivos 6

1.3 Estructura de la tesis 7

2. Estado del Arte 8

2.1 Herramientas de Software 8

2.1.1 BSC Designer 8

2.1.2 Quickscore 12

2.1.3 BambooBSC 16

2.2 Comparaciones 21

2.3 Conclusión 23

3. Diseño e implementación 25

3.1 Requerimientos del prototipo 25

3.1.1 Requerimientos funcionales 25

3.1.1.1 Valor de un objetivo 26

Estado de semáforo 27

Cuartiles 29

3.1.1.2 Tendencia de un objetivo 32

3.1.2 Requerimientos no funcionales 33

3.2 Arquitectura 34

3.3 Base de Datos 35

3.4 Servidor 38

3.4.1 Modelo 39

3.4.1.1 Información histórica 42

3.4.2 Controlador 43

3.4.3 Unión de las partes 44

3.5 Comunicación REST 46

3.5.1 URIs expuestas 46

Prefijo: /estrategias 47

Prefijo: /perspectivas 47

Prefijo: /objetivos 48

3.5.2 Tests REST 49

3.6 Cliente 50

(3)

3.6.2 Diagramas de gauge 54

3.6.3 Diagramas históricos 55

3.6.4 Tablas de datos 56

3.6.5 Mapas estratégicos 57

3.7 Stack de tecnologías 59

4. Caso de estudio 60

4.1 Caso de estudio aplicado al prototipo 60

4.1.1 Solapa inicio 60

4.1.2 Solapa estrategias 63

4.1.3 Solapa objetivos 66

4.1.4 Solapa mapa estratégico 67

4.2 Resultado del caso de estudio 68

5. Validación de Mapas Estratégicos 69

5.1 Coeficiente de Pearson 69

5.2 Bayes 70

5.3 Delphi 71

5.4 Conclusión de validación 72

6 Conclusión 73

6.1 Trabajos futuros 73

(4)

1. Introducción

Hoy en día las empresas luchan por ser más eficientes, mejorar sus procesos, optimizar sus recursos, y sobre todo, integrarse en un mundo en que la organización y la disciplina son claves para salir adelante y seguir creciendo. Esto requiere estar actualizados en todos los ámbitos y sentidos, donde el uso de herramientas informáticas que faciliten estas tareas es fundamental.

En este marco empresarial, las organizaciones elaboranestrategias o planes estratégicos donde exponen los pasos que deben seguir para lograr su misión y alcanzar su visión. Un plan estratégico se desglosa en un conjunto de nodos, desde ahora llamados objetivos, que se encuentran relacionados entre sí exponiendo el camino que la organización debe seguir para lograr su meta; en un periodo de tiempo.

Un plan estratégico nunca va a poder ser llevado a cabo efectivamente si no es bien comprendido por toda la organización, o si la formulación del mismo es errónea. Por esta razón existen diferentes herramientas para lograr comunicar el plan estratégico, donde el desarrollo de un mapa estratégico, propuesto por el sistema administrativo Cuadro de Mando Integral, es una de las innovaciones que más valor ha aportado a las organizaciones en los últimos años. [1]

¿Qué es un Cuadro de Mando Integral?

El Cuadro de Mando Integral es un sistema administrativo que transforma la estrategia en objetivos e indicadores organizados en distintas perspectivas, como por ejemplo las propuestas por Kaplan y Norton: financiera, clientes, procesos internos, y aprendizaje y crecimiento; que junto con las interrelaciones entre objetivos, generan el mencionado cuadro de mando integral. Además proporciona un marco, una estructura y un lenguaje para comunicar la estrategia; utiliza las mediciones para informar a los empleados sobre los causantes del éxito actual y futuro. Esta herramienta debe ser utilizada principalmente como un sistema de comunicación, de información y de formación, y no como un sistema de control. 1

(5)

¿Qué es un Mapa Estratégico?

Un mapa estratégico es una representación visual de la estrategia elaborada por una organización. Éste, proporciona una vista macro de la estrategia. Su principal valor reside en comunicar la estrategia de forma efectiva entre todas las personas involucradas en ejecutarla, para alinear la organización en pos de realizar su correcta ejecución.

“La creación de un mapa estratégico obliga a una empresa a aclarar la lógica de cómo creará valor y para quién” (Kaplan R. y Norton D., 2004).

Un mapa estratégico, además, es una herramienta que desde un principio nos proporciona una comprobación de los componentes de la estrategia, exponiendo la falta o precariedad de objetivos y de interrelaciones, permitiendo identificar aquellos que lleven a una estrategia defectuosa. Asimismo es una herramienta que, asociando indicadores a los objetivos, resulta de gran utilidad para dar soporte a la comunicación, comprobación, aprendizaje, y seguimiento, de planes estratégicos.

En nuestro proyecto utilizamos la construcción de mapas estratégicos para dar soporte a la gestión; haciendo uso de una herramienta que nos provee el manejo de indicadores para2 constituir las relaciones entre estos y los objetivos. Vale la pena señalar que la construcción de mapas estratégicos consta de una estructura dinámica de perspectivas y objetivos, que es independiente del enfoque utilizado para formular la estrategia.

1.1 Motivación

La principal motivación a destacar es que nuestra tesis trabajará en conjunto con un proyecto que la facultad de Ciencias Exactas está implementando en el marco del programa PEFI para la mejora de indicadores académicos. El mismo se lleva a cabo mediante las tesis de grado en Ingeniería de Sistemas “Herramienta para la gestión por indicadores” y 3 “Herramienta integradora de fuentes de datos” . Por lo tanto nos sentimos parte de un gran4 proyecto destinado a mejorar la cantidad y calidad de alumnos formados. Para nosotros es

2“Herramienta para la gestión de Indicadores”, tesis de grado, Etchepare, J. F., Servat, A., director:

Dr. Gustavo Illescas

3 “Herramienta para la gestión de Indicadores”, tesis de grado, Etchepare, J. F., Servat, A., director:

Dr. Gustavo Illescas

4 “Herramienta Integradora de Fuentes de Datos”, tesis de grado, Figini Iris, director: Dr. Gustavo

(6)

muy gratificante la posibilidad de realizar una colaboración con la institución que nos forma como profesionales.

En la actualidad es escaso el número de herramientas open-source que dan soporte a la gestión organizacional. De forma que encontramos muy satisfactorio formar parte de los desarrolladores que extienden en robustez a las herramientas mencionadas.

Continuando, nos alienta mucho investigar y usar tecnologías web actualmente en auge, además de chocarnos con un caso que requiera un nivel de desarrollo mayor al que estamos acostumbrados en el ámbito de cursadas. Requiere tanto investigar sobre qué tecnologías y lenguajes utilizar, como la manera de realizar las conexiones entre los mismos.

Y finalmente, estamos interesados en profundizar nuestros conocimientos sobre métodos y herramientas de gestión empresarial, ya que consideramos que aprenderlo nos será de gran utilidad en nuestro desempeño como profesionales.

1.2 Objetivos

El objetivo de nuestro trabajo es extender la funcionalidad de una herramienta que da soporte a la gestión por indicadores, desarrollada por Etchepare, Juan Federico y Servat, Agustín, en la tesis de grado que hicieron en conjunto. Con esta extensión lograremos:

● Una “Solapa principal” a través de la cual podamos observar el estado de los componentes de las estrategias, y su comportamiento a lo largo del tiempo.

● Un “Administrador de Estratégias” que permita reflejar el plan estratégico de la organización, conformado por un conjunto de objetivos pertenecientes a perspectivas, y relacionados en una estructura bien definida.

● Un “Gestor de Objetivos” que brinde la funcionalidad de creación de objetivos, seleccionando los indicadores involucrados y las características particulares (amplitud de valores, estados, grado de afección, etcétera).

● Establecer una conexión con la base de datos existente, para consultar información de los indicadores. También se debe utilizar una base de datos propia, persistiendo las estructuras y relaciones constituidas.

● Una “Solapa de Mapas Estratégicos” que permita visualizar los mapas estratégicos construidos a partir de los componentes de la estrategia previamente incorporados. ● Investigar la posibilidad de crear un validador de los mapas estratégicos construidos,

(7)

1.3 Estructura de la tesis

Estructuramos el informe de nuestra tesis en seis capítulos, cuyo contenido consta de:

En el presente capítulo presentamos una breve introducción al requerimiento de apoyo en la gestión de las organizaciones, por medio de la rápida visualización del estado en que se encuentra cada estrategia planeada y de esta manera, poder anticiparse y tomar acciones correctivas cuando no se está logrando alcanzar el fin de la estrategia.

El Capítulo 2 se centra en el estudio de las diferentes herramientas existentes en el mercado que tienen funcionalidades semejantes al prototipo, y la justificación sobre el ambiente de desarrollo para la construcción del prototipo.

En el Capítulo 3 exponemos una solución al problema planteado detallando desde la selección de la arquitectura, el stack de tecnologías utilizadas en el prototipo creado y describiendo sus requerimientos y las decisiones tomadas para su diseño e implementación.

En el Capítulo 4 presentamos y detallamos un caso de estudio aplicado al prototipo desarrollado y en funcionamiento, mostrando los resultados obtenidos del funcionamiento del prototipo.

En el Capítulo 5 presentamos un análisis teórico acerca de la posibilidad de realizar validaciones a las relaciones entre objetivos, visibles en el mapa estratégico.

En el Capítulo 6 arribamos a las conclusiones, detallamos los posibles trabajos futuros y mejoras que se pueden tener en consideración e implementar.

(8)

2. Estado del Arte

El capítulo Estado del Arte presenta la información recopilada a lo largo de la investigación llevada a cabo como instancia previa al desarrollo del prototipo. Dicha investigación consiste en el análisis y comparación de aquellas aplicaciones que consideramos que ofrecen las mejores soluciones a la hora de implementar un Cuadro de Mando Integral, haciendo hincapié en los Objetivos de Negocio, KPIs y Mapas Estratégicos.

2.1 Herramientas de Software

El abanico de herramientas halladas que implementan el framework Cuadro de Mando Integral es numeroso. Por esta razón realizamos una selección de las aplicaciones que hallamos más populares y completas [A], partiendo de la funcionalidad básica, como es la creación de perspectivas, objetivos, mapas estratégicos, y extendiéndose hasta la documentación, ayudas, tutoriales ofrecidos, entre otros.

El análisis de cada de una de las herramientas abarca diferentes aspectos, dentro de los cuales hicimos énfasis en la portabilidad, usabilidad, diseño, soporte, si es de carácter libre o privativo, junto con las particularidades que la distinguen del resto.

2.1.1 BSC Designer

La herramienta BSC Designer [1-DS] brinda a las organizaciones un espacio colaborativo de trabajo para formular sus estrategias utilizando el framework Balanced Scorecard. Este sistema permite llevar a cabo la elaboración de estrategias, desde la definición y vinculación de las perspectivas, objetivos y KPIs, hasta la creación y visualización de Mapas Estratégicos; obteniendo como beneficio principal, la capacidad de “brindar a los ejecutivos la posibilidad de tomar mejores decisiones, al tiempo que se mide y mejora el rendimiento y la productividad del negocio” según palabras de sus creadores.

(9)

Hasta el día de la fecha (19/01/2018) se encuentra en la versión 8.9. El siguiente análisis se hace con base en versión mencionada.

Esta aplicación posee una versión de escritorio restringida a la familia de los OS Windows, excluyendo así a la comunidad GNU/Linux y Mac OS, y una versión web con almacenamiento en la nube que es menos robusta que la primera pero definitivamente abarca todo el abanico de funcionalidades y vistas que ofrece el primero, incluso con un diseño más amigable al usuario.

Debido a la naturaleza web del prototipo a desarrollar, llevamos a cabo el análisis de esta herramienta sobre la versión web [3-DS].

A la hora de interiorizarnos en las vistas de la aplicación, podemos destacar:

Objetivos de negocio:en esta pestaña podemos crear, modificar y visualizar la estrategia deseada. Permite crear tanto perspectivas como objetivos, y establecer los vínculos entre perspectivas, objetivos y KPIs. Además, para la estrategia en cuestión, se muestran los valores de desempeño y progreso de los KPIs sin alejarse de la pestaña. En la Figura 1 se aprecia un ejemplo de una estrategia provista por el programa.

Figura 1: Ejemplo de vista de objetivos de negocio de BSC Designer

(10)

pronóstico de los indicadores, por medio de dichos valores. Cuenta, además, con varios tipos de gráficos para cada indicador y perspectiva, que ayudan a comprender mejor los valores expuestos.

Mapas estratégicos: Permite la autogeneración de mapas estratégicos de aspecto profesional, a través de las relaciones previamente construidas entre perspectivas, objetivos y KPIs (Figura 2). Este mapa puede ser manipulado por el usuario, propagando los cambios correspondientes en las pestañas anteriores. También se pueden observar los indicadores que componen a los objetivos del mapa estratégico, mediante el uso de distintos gráficos (por ejemplo, de Gauge).

Figura 2: Ejemplo de vista de mapa estratégico de BSC Designer

(11)

En cuanto a la exportación de datos, la aplicación es muy completa. Permite la exportación de los mapas estratégicos, los objetivos del negocio y KPIs en formato PNG, Hoja de Cálculo o HTML, junto con una función de creación de informes de todos los documentos. Además, se puede compartir indicadores y proyectos entre distintos usuarios.

Una de las mejores virtudes que hallamos a la hora de utilizar BSC Designer online es la rápida curva de aprendizaje que presenta. El programa cuenta con un diseño sencillo, que resulta muy intuitivo a la hora de querer llevar a cabo una tarea. Así mismo, la numerosa cantidad de completos ejemplos editables que ofrece, brinda al usuario la libertad de inspeccionar cada rincón de la herramienta de forma rápida y sin temor alguno de perder o estropear un valioso BSC, facilitando así el aprendizaje de la aplicación.

Otra características destacable de BSC Designer Online es la disposición de una documentación muy completa para el usuario. Cuenta con manuales (en inglés, español, ruso, portugués y alemán) [4-DS] junto con videos de capacitación (en inglés y español) [5-DS].

Como se observa en la Figura 2, con el programa se logran mapas estratégicos muy completos, customizables e instintivos. En contraparte hay ciertas características innecesarias que terminan dificultando la comprensión del mismo, como por ejemplo, mostrar los indicadores que componen a los objetivos visualizados y crear temas estratégicos, entre otros. Por último, podemos señalar que el uso de los colores presentes no refleja el estado de cumplimiento de los objetivos, como una característica a mejorar.

La mayor desventaja del BSC Designer radica en su carácter privativo, ya que deja de estar al alcance de todo el mundo. El sistema de pago que utiliza es por suscripción por usuario, junto con un acceso gratuito de ‘solo lectura’ para los usuarios que no requieran poder de edición. También ofrecen una prueba gratuita por un período de 30 días, a partir de la cual se pudo llevar a cabo el presente análisis [6-DS].

(12)

2.1.2 Quickscore

Quickscore es una herramienta web que permite la creación de cuadros de mando integrales de forma rápida e intuitiva [1-QS]. Este sistema ofrece un entorno colaborativo para poder dar soporte a la gestión empresarial. Los roles y responsabilidades ligados a los usuarios, junto con las diferentes funcionalidades que ofrece el programa, lo convierten en un producto muy eficaz a la hora de definir, plasmar y monitorear, las estrategias de una organización.

La compañía propietaria del software es Spider Strategies Inc., fundada en 2003 y actualmente con base en Washington DC, USA. Esta compañía lanzó su primer producto Scoreboard en 2004, pero fue en 2009 cuando se asoció con el Balanced Scorecard Institute, logrando ser la única herramienta del mercado que cuenta con certificaciones y recomendaciones del Balanced Scorecard Institute y la Universidad George Washington. Esta asociación trajo un rediseño del ya antiguo producto Scoreboard logrando así el presente Quickscore. [2-QS]

La versión 3.1 de Quickscore, el día de la fecha (03/02/2018), forma parte de una de las opciones más elegidas del mercado. El siguiente análisis se hace con base en la versión mencionada.

Quickscore está basado en la nube, ofreciendo así las grandes ventajas de portabilidad, disponibilidad y escalabilidad, que rodean a esta tecnología. Además, su diseño reactive proporciona una amigable interfaz para acceder al sistema a través de dispositivos móviles y tablets.

Por otro lado, si se requiere, la compañía también ofrece la opción de instalación del programa en un data center privado.

Entre las vistas que ofrece la herramienta, se destacan:

(13)

Figura 3: Vista de los objetivos de negocio de Quickscore

(14)

Figura 4: Ejemplo de mapa estratégico de Quickscore

(15)

Figura 5: Ventana de Presentaciones de Quickscore

La importación de datos a la aplicación web se puede hacer de forma manual o con el soporte de una aplicación web llamada “Connect” que hace más eficiente este trabajo. Connect brinda las posibilidades de importar hojas de cálculos, archivos CSV completos y hasta la integración de SOAP para utilizar servicios web. [3-QS]

Referido a la exportación de datos, el sistema ofrece las opciones de exportar cada vista en formato PDF, PowerPoint o directamente imprimirla. Además, para los mapas estratégicos, también dispone la opción de formato PNG.

(16)

La ventaja principal de Quickscore radica en la usabilidad y performance que ofrece. En primer lugar, tiene una interfaz de usuario envidiable, donde se logra crear un espacio de trabajo limpio, eficiente, intuitivo y muy agradable a la vista. Continuando, en relación a la performance, el resultado de la ejecución de las tareas es inmediato, generando al usuario una sensación de “aplicación de escritorio” aunque la misma sea web.

En relación a lo nombrado anteriormente, la curva de aprendizaje de Quickscore es otra de sus mejores virtudes. Debido a lo minimalista e intuitiva que es la herramienta, sumado a la cantidad de soporte que ofrece, permite lograr rápidamente un entendimiento completo de la misma.

Sobre la documentación, la aplicación posee un soporte más que completo. Cuenta con numerosos videotutoriales y una guía de usuario que se extiende hasta cada componente y funcionalidad que ofrece el programa. Además, una demostración online es ofrecida previo a la adquisición del producto, junto con dos sesiones online de entrenamiento una vez adquirido. [4-QS]

La página web de la herramienta ofrece un cómodo espacio colaborativo para que los usuarios puedan postear sus preguntas e ideas. Contando además con un clasificador de posteos, posts más populares, usuarios más activos, feedbacks, y otras particularidades que hacen muy rápida la búsqueda o consulta de lo que uno requiera.

La desventaja principal que hallamos en Quickscore es su carácter privativo, lo que limita el uso a aquellos usuarios que no la pueden costear. Cuenta con un modelo de suscripción estándar, con un costo mensual un tanto elevado respecto a la competencia que varía entre U$125 y U$25 por usuario de acuerdo a la cantidad de suscripciones que se adquieran. [5-QS]

Continuando, vemos negativa la forma de realizar el mapa estratégico, dado que el hecho de necesitar cambiar las imágenes de fondo ante cada cambio, es una labor tediosa.

Por último, encontramos negativo que Quickscore se puede configurar solo en los lenguajes de Inglés y Español, careciendo así de un gran abanico de lenguajes; siendo que los menús y textos propios de la herramienta son realmente cortos y sencillos.

2.1.3 BambooBSC

(17)

en los repositorios de GitHub donde se invita a los interesados a descargar o realizar un fork de la misma. [1-BB]

Detrás de BambooBSC no se encuentra una compañía, sino que la totalidad del desarrollo se le atribuye a un solo usuario de GitHub, bajo el nombre de “Bill Chen”. El mismo no ofrece información personal en su perfil de GitHub, y tampoco hemos podido localizarlo en otras fuentes, por esta razón aspectos de interés como nombre de pila, nacionalidad y estudios, entre otros, no son nombrados; no obstante, se provee un email de contacto. Hasta el día de la fecha (13/03/2018) la herramienta se encuentra en la versión 0.7.4, aún presentando actividad de su contribuyente “Bill Chen”. El análisis es llevado a cabo sobre la versión señalada.

BambooBSC, como se mencionó anteriormente, es una plataforma web y como tal ofrece un entorno de trabajo colaborativo a través de un estándar sistema de usuarios; donde se puede monitorear la actividad de un usuario, enviar mensajes entre estos, asignar responsabilidades, etc.

Este sistema carece de un sitio web de público acceso, es decir, no se encuentra deployada en un servidor al que se pueda acceder a través de un URL. En cambio, para acceder a la misma se debe descargar y montar en un servidor propio. Sin dudas esto puede resultar tedioso, pero el repositorio donde se encuentra la herramienta brinda toda la información necesaria para llevar a cabo el deployment, tanto para la plataforma GNU/Linux como Windows [2-BB], e incluso la opción de descargar una máquina virtual para correr el sistema rápidamente [3-BB].

BambooBSC también cuenta con una versión móvil de “solo lectura”, donde encontramos no más que las principales ventanas de la herramienta que son los Objetivos del Negocio, KPIs y Mapas Estratégicos . Si bien una versión móvil es un punto favorable, la versión provista por BambooBSC tiene una gran pérdida de funcionalidad; hoy en día se puede lograr soluciones más eficientes y sin pérdida de información a través de interfaces responsive.

(18)

Figura 6: Reporte de Objetivos de Negocio de BambooBSC

(19)

Figura 7: Ejemplo de mapa estratégico de BambooBSC

(20)

Figura 8: Ejemplo de vista de la región de BambooBSC

A la hora de buscar herramientas de carácter libre nos hemos encontrado con gran escasez, siendo mayormente aplicaciones que no implementan un BSC, sino un tablero de control, solo para plataformas de escritorio con una interfaz y funcionalidad despreocupada. BambooBSC es la herramienta libre más popular, cubriendo las necesidades de aquellos usuarios en busca de un sistema que cubra el framework de BSC como también un tablero de control.

La principal ventaja de esta aplicación radica en su carácter de software libre y código abierto (open source). Al ser un software libre permite un libre acceso tanto para el uso personal como comercial, derribando así las barreras económicas que puede presentar un software propietario. Respecto a su característica de código abierto, nos interesa mencionar que el repositorio donde se halla la herramienta invita a los usuarios a realizar un fork de la misma para extenderla de acuerdo a sus gustos y necesidades, si bien esto es un aspecto muy favorable de BambooBSC, no vamos a entrar en detalle ya que requeriría de una inversión de capital humano especializado por lo que dejaría de tener sentido en el marco de nuestro análisis.

(21)

la herramienta en acción sin la necesidad de descargarla. Queremos dejar en claro que para cada punto señalado nos abocamos en lo relacionado a la utilización del sistema y no en el desarrollo del mismo, donde este último punto sería de gran interés si el análisis tuviese foco en la posibilidad de extender BambooBSC.

A la hora de probar este programa debemos resaltar que posee una mala curva de aprendizaje. Es una herramienta muy poco intuitiva y de interfaz poco amigable. Factores mejorables como la excesiva extensión del menú principal, la ausencia de ayudas en las pestañas que uno abre y la constante necesidad de correr queries para visualizar datos, entre otros, hace que uno deba ir de inmediato al manual para poder realizar una simple tarea.

De igual manera, la usabilidad y performance de BambooBSC son dos de sus peores atributos. Es realmente ineficiente la cantidad de campos que se deben llenar, y clicks que hacer, para llevar a cabo cualquier actividad de interés. Además, por cada click la herramienta corre procesamientos (chequeos, carga de datos, persistencia, etc.) que generan constantes intervenciones en el flujo de trabajo donde el usuario debe esperar unos segundos a que finalicen. Continuando, respecto a la usabilidad, el sistema de carga de datos para los KPIs es realmente ineficiente. La aplicación solo provee la entrada manual de datos, lo que puede significar de un costo de tiempo importante.

Otra característica precaria es la entrada de datos para la construcción de los KPIs, donde esta aplicación solo permite la entrada de forma manual. Por otro lado, en cuanto a la exportación de datos, la herramienta propone los formatos de PNG, Hoja de cálculo y PDF. Por último, queremos mencionar que esta herramienta carece de una comunidad web o foro donde podamos compartir nuestras dudas e inquietudes. Si bien el repositorio de GitHub donde se encuentra almacenada la herramienta tiene un sector para volcar cualquier problema que se nos presente, no es una solución suficiente.

2.2 Comparaciones

(22)

BSC Designer Quickscore BambooBSC

Mapa estratégico Autogenerado,

complejo, sobre

comunicativo y editable.

Autogeneración

(objetivos),comunicativo y poco editable.

Autogenerado, sencillo, poco comunicativo y no editable.

Usabilidad Alta. Alta. Baja.

Curva de Aprendizaje

Alta. Alta. Baja.

Popularidad Alta. Alta. Media.

Certificación BSC No posee. Balanced Scorecard

Institute, Universidad George Washington.

No posee.

Tipo de herramienta

web y escritorio (Windows).

web. web.

Requerimientos del sistema Cualquier navegador moderno. Cualquier navegador moderno.

JDK8, MySQL 5.6, Chrome o Firefox.

Versión 8.9 3.1 0.7.4

Desarrolladores Kitonik s.r.o. Spider Strategies Inc. “Bill Chen”, de Github.

Importación de datos

Hoja de cálculo, queries a BD SQL externas, KPIs exportados por otros usuarios, API Restful y manual.

Hoja de cálculo, CSV, manual y SOAP Integration.

Manual.

Exportación de datos

PNG, Hoja de cálculo y HTML.

PNG, PDF y PPTX. PNG, PDF y Hoja de

cálculo.

Documentación Ejemplos,

videotutoriales y manual de usuario en múltiples idiomas.

Videotutoriales, manual de usuario,

demostraciones online y entrenamientos.

Manual de usuario y guía de instalación.

Comunidad No posee. Si. No posee.

(23)

2.3 Conclusión

Una vez analizada la información recolectada a lo largo de este capítulo podemos concluir que existen numerosos programas que ofrecen un espacio de trabajo para la construcción de planes estratégicos utilizando el framework Balanced Scorecard. No obstante, las herramientas señaladas cuentan con algunas desventajas, las cuales fuimos señalando a lo largo del análisis detallado de cada herramienta.

Nos inclinamos a realizar un prototipo de aplicación web debido a la existencia del prototipo llevado a cabo en la tesis de grado “Herramienta para la Gestión de Indicadores” [B], que nos brinda un marco sobre el cual desarrollar nuestra herramienta. De esta manera se permite la integración de los sistemas, con el fin en abarcar en conjunto, las funcionalidades de tableros de control y de cuadros de mando integral.

Continuando, destacamos los grandes beneficios que ofrece esta tecnología, destacando la portabilidad, trabajo colaborativo y remoto, y mantenibilidad. En primera instancia queremos mencionar la portabilidad. Gracias a esta tecnología basta con solo tener un navegador web para correr la herramienta, permitiendo así utilizar la misma independientemente del SO. Además, los frameworks de UI existentes nos permiten construir interfaces responsive, adaptando así la herramienta a los diferentes dispositivos como notebooks, tablets, móviles, etc. En tercer instancia, hoy en día el trabajo colaborativo y remoto es cada vez más esencial para toda organización, y la tecnología web brinda numerosas facilidades para llevar a cabo esto. Por último, siendo el mantenimiento la propiedad más costosas de cualquier aplicación, las herramientas web se encuentran desplegadas en servidores, cuya estructura conlleva rápidas actualizaciones, desacople entre el hardware del cliente y la aplicación, mayor seguridad de los datos, entre otros.

Las diferentes herramientas analizadas nos sirven para comprender lo importante que es la interfaz de usuario en este tipo de aplicaciones, donde el principal objetivo de los mapas estratégicos es lograr una comunicación rápida y efectiva de la estrategia. Por esta razón, extraemos los conceptos más valiosos llevados a cabo por BSC Designer, Quickscore y BambooBSC, para centrarnos en la construcción de una UI que resulte lo más intuitiva y agradable al usuario posible, y que reúna la mayor cantidad de bondades posibles.

(24)
(25)

3. Diseño e implementación

A lo largo de los años en la carrera “Ingeniería de Sistemas” hemos comprendido lo importante que es lograr un buen diseño del sistema para que el mismo cumpla con los requerimientos establecidos. También hemos comprendido que estos requerimientos son más que aquellos que especifican la funcionalidad del sistema, denominados funcionales, extendiéndose a otro gran conjunto denominado no funcionales, donde se hallan las restricciones del negocio y los atributos de calidad.

En el siguiente capítulo se abordan los requerimientos del prototipo de aplicación a desarrollar (tanto funcionales, como no funcionales). Posteriormente se exponen las principales decisiones tomadas para el diseño e implementación del prototipo, comprendido por numerosas tecnologías, como también estilos arquitectónicos y patrones de diseño.

3.1 Requerimientos del prototipo

Durante la investigación de la metodología de Cuadro de Mando Integral, como también del análisis de las diferentes herramientas listadas en el capítulo previo Estado del Arte, hemos capturado numerosos requerimientos funcionales y no funcionales, para nuestro prototipo a desarrollar.

3.1.1 Requerimientos funcionales

Como es señalado en el apartado de Introducción del presente documento, el carácter funcional del prototipo debe brindar soporte para la construcción de mapas estratégicos según la metodología de Cuadro de Mando Integral.

El diseño llevado a cabo consta de diferentes elementos que se resumen a continuación: ● Indicadores: Son una descripción compacta u observación, resumida de forma

cuantitativa, que reflejan la performance de diferentes tareas sobre las que interesa realizar un seguimiento exhaustivo. Tanto la lógica (creación, modificación, etc.) como los valores de los mismos, son extraídos del prototipo “Herramienta para la Gestión de Indicadores”.

(26)

actual del objetivo. Estos componentes se encuentran interrelacionados con otros objetivos.

Perspectivas: Representan áreas de la estrategia cuyo fin es servir de guía para agrupar los diferentes objetivos bajo un mismo concepto. En la metodología de Kaplan y Norton las perspectivas por defecto suelen referirse a Financiera, Clientes, Procesos Internos, y Aprendizaje y Crecimiento.

Plan estratégico: Es el plan de ejecución que traza una organización para lograr su misión y alcanzar su visión, en el tiempo. El mismo está compuesto de una serie de objetivos interrelacionados, bajo distintas perspectivas.

Mapa estratégico: Es una representación gráfica del plan estratégico elaborado, cuyo valor reside lograr una rápida y eficiente comunicación del mismo a los interesados de la organización.

● Home: Es un espacio dedicado a la visualización del plan estratégico, en este podemos explorar en detalle cada uno de los componentes previamente mencionados que componen un plan estratégico como son Perspectivas, Objetivos e Indicadores.

3.1.2 Requerimientos no funcionales

Los requerimientos no funcionales se pueden clasificar en dos grupos: restricciones del negocio y atributos de calidad. A continuación explicamos aquellos requerimientos no funcionales más significantes para el desarrollo de la aplicación.

Como ya mencionamos numerosas veces, el prototipo a desarrollar se alimenta de los indicadores construidos a partir de la tesis “Herramienta para la Gestión de Indicadores”. Esta condición establece casi el total de restricciones del negocio impuestas, dentro de las cuales se alza sobre las demás el carácter de aplicación web, más específicamente Single Page Application (SPA)[3.2 - 1] . Una SPA no es más que una herramienta web o sitio web que cabe en una sola página con el propósito de dar una experiencia más fluida a los usuarios, similar a un sistema de escritorio.

(27)

En cuanto a los atributos de calidad perseguidos, se busca un prototipo concentrado en la usabilidad, reusabilidad, escalabilidad y portabilidad.

3.2 Decisiones de diseño

Tanto el valor de un objetivo, esté compuesto por indicadores de estado de semáforo o cuartiles, como la tendencia del mismo, son dos decisiones que tuvimos que analizar y desarrollar. A continuación se adentra en cómo fue resuelto estas dos cuestiones: el valor de un objetivo y la tendencia del mismo.

3.2.1 Valor de un objetivo

El cálculo del valor de un objetivo tiene una dificultad inherente a su composición. Un objetivo no tiene valor por sí mismo, sino que el valor es obtenido a partir del grupo de indicadores que lo componen. Pero, así mismo, el valor de cada uno de estos indicadores tiene características diferentes, como son las unidades que maneja ($, horas, personas, etc.) y los umbrales en los que se mueve. Por esta razón hace falta normalizar estos valores de forma que podamos llevarlos a un mismo plano y seamos capaces de trabajar con cada uno por igual.

Antes de llevar a cabo la normalización de los indicadores, hace falta definir la estructura del valor de los objetivos. La herramienta desarrollada por nuestros compañeros permite la creación de indicadores deestado de semáforo y cuartiles , de forma que vamos a contar con estas dos estructuras para los objetivos creados. A continuación se adentra en la explicación de cómo se calcula el valor de un objetivo de estado de semáforo y cuartiles. Vale aclarar que, por cuestiones relacionadas a la extensidad de la tesis, un objetivo de estado de semáforo solo permite ser relacionado con indicadores de estado de semáforo, y de forma similar, un objetivo con estructura de cuartiles solo permite ser relacionado con indicadores cuartiles.

Estado de semáforo

(28)

Por consiguiente se construyeron los intervalos:

ALO .33

M = 0.00 =< Valoractual < 3 ︿

CEP T ABLE .66

A = 3.33 =︿< Valoractual < 6 ︿

XCELENT E = 0.00

E = 6.66 =︿< Valoractual< 1

Entonces, para calcular el valor de un objetivo lo primero que se debe hacer es normalizar el valor de los indicadores que afectan al mismo. Para llevar a cabo la normalización se plantea el mismo sistema de intervalos fijos y de igual tamaño, entre el rango de 0 a 10.

Como el indicador a normalizar utiliza el sistema de semáforo, entonces el mismo tiene tres estados posibles que se definen por dos umbrales: el umbral inferior que separa el estado ‘MALO’ de ‘ACEPTABLE’, y el umbral superior que separa el estado ‘ACEPTABLE’ de ‘EXCELENTE’. Lo que proponemos es definir el intervalo que se encuentra entre los dos umbrales como el equivalente al intervalo ( ) del medio del rango total, y a partir de este 31

definir los dos intervalos restantes.

De forma más analítica, para un indicador 工cualquiera que utilice una representación de tres estados, el estado del indicador 工 es igual a:

ALO mbral

M =V aloractual <u inferior

CEP T ABLE mbral

A =umbralinferior<=Valor

actual<u superior

XCELENT E

E =umbralsuperior <=Valoractual

Primero obtenemos el rango de valores que comprenden al estado ‘ACEPTABLE’, y posteriormente, ya que los intervalos son fijos y de igual tamaño, obtenemos los rangos de los valores que abarca el estado de ‘MALO’ y ‘EXCELENTE’. Observamos que utilizando este sistema, las unidades de cada indicador es indiferente para la definición de cada intervalo.

Para lograr un mejor entendimiento del proceso que conlleva el cálculo del valor de un objetivo de semáforo, vamos a utilizar uno de los objetivos que forman parte de nuestro caso de estudio. Elegimos el objetivo "Disminuir la deserción temprana" que está compuesto por los indicadores "% presentación a exámenes” y “% aprobados por año".

(29)

Indicador Valor actual

Umbral inferior Umbral superior

% presentación a exámenes 60% 30% 50%

% aprobados por año 40% 35% 60%

Luego trasladamos los umbrales de los dos indicadores, a los tres estados posibles. Notar que ya que estos estados deben ser fijos y de igual tamaño, tanto el intervalo inferior como superior tienen mínimo y máximo respectivamente. Si esto último resulta un poco confuso continuar de igual modo con el proceso que posteriormente se va a aclarar.

Indicador MALO ACEPTABLE EXCELENTE

% presentación a exámenes

10% < Valor < 30% 30% < Valor <= 50% 50% < Valor <= 70%

% aprobados por año 10% < Valor < 35% 35% < Valor <= 60% 60% < Valor <= 85%

Una vez definido estos tres intervalos con máximos y mínimos, y conociendo los valores actuales, podemos establecer los estados de cada indicador. En el ejemplo:

Indicador Valor actual Estado actual

% presentación a exámenes 60% Excelente

% aprobados por año 40% Aceptable

El siguiente paso es simplemente normalizar los umbrales en una escala de 0 a 10. Vale aclarar que si el indicador tiene un valor inferior al valor mínimo, o superior al valor máximo, el valor de ese indicador va a ser igual a 0 y 10 respectivamente.

(30)

Figura 9: ejemplo de escalado de indicador de semáforo de estado

Este escalado se resuelve analíticamente como:

scalado V alor Actual (I ) 10.00

E s = V alorV alormactualáximoV alorV alormmínimoínimo*

De forma analítica, el valor normalizado de un indicador de estado de semáforo Is es igual a:

= alor Normalizado (I ) V A(I )

V s =E s V alorV aloractualmáximoV alorV alor mmíínimonimo * 10.00

Finalmente, los valores resultantes de la normalización de los indicadores "% presentación a exámenes” y “% aprobados por año" corresponden a:

Indicador Valor actual

Valor mínimo

Valor máximo

Estado actual

Valor normalizado % presentación

a exámenes

60% 10% 70% Excelente 8

% aprobados por año

(31)

Retomando el cálculo del valor de un objetivo. Una vez tengamos todos los indicadores involucrados normalizados vamos a decir que el valor del objetivo es igual a la suma de los valores de cada indicador ponderados por el peso que tenga este sobre el objetivo dado. El valor actual de un objetivo queda dado por:

alor(O) alor(Indicador) P eso(Indicador , )/SP(O)) V j = ∑n

i=0

V i * ( i Oj j

P(O) eso(Indicador , ) S j = ∑n

i=0

P i Oj

= el peso de la relación entre el objetivo y el indicador . eso(Indicador , )

P i Oj Oj Indicadori

A continuación vamos a realizar el cálculo final del valor actual del objetivo "Disminuir la deserción temprana". Para esto, vamos a suponer que los indicadores “% presentación a exámenes” y “% aprobados por año” tienen relaciones de pesos iguales a 3 y 5, respectivamente.

Sin más preámbulos, calculamos:

alor(O ) alor(I ) P eso(I , )/SP(O)) V alor(I ) P eso(I , )/SP(O )) V 1 = ∑n

i=0

V 1 * ( 1 O1 j + 2 * ( 2 O1 1

P(O)

S j = 3 + 5 = 8

alor(O ) 3/8) 4 5/8) .5 ACEP T ABLE

V 1 = 8 * ( + * ( = 5 ≡

Cuartiles

Para el cálculo del valor de un objetivo que utiliza una estructura de cuartiles se definió, de manera similar a los objetivos de estado de semáforo, un rango de valores comprendido entre los valores 0 y 10. En contraste a los objetivos de estado de semáforo, dado que ahora contamos con cuatro estados posibles, se plantea un sistema de cuatro intervalos fijos y de igual tamaño, de forma que cada intervalo es de tamaño igual a del rango total.41

En consecuencia se construyeron los siguientes intervalos:

ALO .50

M = 0.00 =< Valoractual < 2

EGULAR .00

R = 2.50 =< Valoractual < 5

UENO .50

B = 5.00 =< Valoractual< 7

UY BUENO = 0.00

(32)

Luego, para calcular el valor de un objetivo de estructura de cuartiles lo primero que se debe hacer es normalizar el valor de los indicadores que afectan al mismo. Para llevar a cabo la normalización se plantea el mismo sistema de intervalos fijos y de igual tamaño, entre el rango de 0 a 10.

Los indicadores que utilizan cuartiles tienen cuatro estados posibles que se limitan por 5 umbrales: el umbral mínimo que establece el valor inicial del estado ‘MALO’, el umbral inferior que separa el estado ‘MALO’ de ‘REGULAR’, el umbral intermedio que separa el estado ‘REGULAR’ de ‘BUENO’, el umbral superior que separa el estado ‘BUENO’ de ‘MUY BUENO’, y el umbral máximo que establece el valor final del estado ‘MUY BUENO’. En esta ocasión, a diferencia del caso donde se tienen indicadores de estado de semáforo, el espacio de valores comprendido entre los umbrales no es homogéneo para los cuatro estados. Esto significa que el enfoque de normalización de indicadores de estado de semáforo no se puede trasladar a los indicadores de estado de cuartiles.

A continuación se esquematiza el problema de utilizar el mismo enfoque de normalización para un indicador cuartil:

Figura 10: ejemplo de umbrales de indicador cuartil

Para resolver este inconveniente, se propone llevar a cabo la normalización de los indicadores cuartil a partir de la adhesión de dos valores: el desplazamiento de estado actual y el escalado del valor actual.

Eldesplazamiento del estado actual es un valor positivo ligado a cada estado que puede tener un indicador cuartil (MALO, REGULAR, BUENO y MUY BUENO), y determina el desplazamiento que hay que hacer en la nueva escalada normalizada de 0 a 10, respecto al valor 0. Los desplazamientos quedan dados por:

esplazamiento Estado Actual (I )

D c = MALO: 0.00

EGULAR 2.50

R :

UENO 5.00

(33)

UY BUENO 7.50

M :

El cálculo del escalado del valor actual involucra a tres variables: el umbral inferior del estado actual, umbral superior del estado actual y valor actual. Con estos tres valores vamos a llevar a cabo un escalado. Para esto tomamos como dominio de entrada los tres valores nombrados y como rango de salida el intervalo comprendido entre el 0 y 2.50, es decir, el intervalo de valores comprendido por un estado normalizado.

Figura 11: ejemplo de umbrales de indicador cuartil

Este escalado se resuelve analíticamente de la siguiente manera:

scalado V alor Actual (I ) 2.50

E c = UmbralV aloractualsuperiorUmbralUmbralinferiorinferior *

Por último, falta realizar la suma de estos dos valores calculados para obtener el valor normalizado del cuartil.

De forma analítica decimos que el valor normalizado de un indicador cuartil es igual a:Ic

alor Normalizado (I ) EA(I ) V A(I )

V c =D c +E c

DEA = Desplazamiento de estado actual. EVA = Escalado de valor actual.

Antes de pasar al cálculo del valor del objetivo propiamente dicho, se muestra un ejemplo de cómo se normaliza un indicador cuartil.

Dado un indicador cuartil de las características:Ic Valor actual: 170.

(34)

alor Normalizado (I ) EA(I ) V A(I )

V c =D c +E c

alor Normalizado (I ) 2.50 .50 V c = + 200−120170−120* 2

alor Normalizado (I ) .50 .5625

V c = 2 + 1

alor Normalizado (I ) .0625 EGULAR

V c = 4 ≡R

Regresando al cálculo del valor de un objetivo. Una vez tengamos todos los indicadores cuartil normalizados, el cálculo del valor del objetivo es idéntico al caso de indicadores de estado de semáforo. Con la salvedad de que ahora la cantidad de estados posibles son cuatro.

El valor actual de un objetivo es igual a:

P(O) eso(Indicador , ) S j = ∑n

i=0

P i Oj

alor(O ) alor(Indicador) P eso(Indicador , )/SP(O ))

V n = ∑

n

i=0

V i * ( i On n

A continuación se muestra el mismo ejemplo utilizado para el cálculo de valor de un objetivo de estado de semáforo, para comparar el valor final obtenido.

Sea el objetivo O1, compuesto por dos indicadoresI1 y I2 de valores normalizados 5.50 y 8.25, y pesos 25% y 75%, respectivamente. Calculamos:

alor(O ) alor(I ) P eso(I , )/SP(O )) V alor(I ) P eso(I , )/SP(O )) V 1 = ∑n

i=0

V 1 * ( 2 O1 1 + 2 * ( 2 O1 1

alor(O ) .5 .25 8.25 .75 .56 MUY BUENO

V 1 = 5 * 0 + * 0 = 7 ≡

3.2.2 Tendencia de un objetivo

(35)

que eventualmente el estado del objetivo pasará a 'ACEPTABLE', y posteriormente a 'MALO'.

La tendencia de un objetivo puede ser igual a uno de los siguientes tres estados: 'ALTA', 'BAJA' o 'MEDIA'. Estos estados se obtienen a partir de la diferencia entre el valor actual del objetivo y el valor inmediatamente anterior; definiendo así el período de tiempo como la última actualización. Una vez calculada la diferencia, decimos que si este valor es superior a 1 entonces el estado es ‘ALTA’ ya que hubo un notable incremento, si es inferior a -1 el estado es ‘BAJA’ debido al notable decrecimiento, y si se encuentra entre el intervalo -1 y 1, el estado es ‘MEDIA’ porque el valor no varió significativamente. Para verlo de una forma más analítica, a continuación se muestran las fórmulas definidas:

LT A V alor )

A = (V aloractualanterior > 1

EDIA V alor ) 1

M = − 1 < (V aloractualanterior <

AJA V alor )

B = (V aloractualanterior < − 1

Naturalmente, así como se eligió esta forma de definir la tendencia, se podría haber definido cualquier otra. La elección de la misma está ligada a su sencillez, ya que para el prototipo a desarrollar no se busca profundidad en alcanzar la forma más precisa de cálculo, sino lograr una base sólida (y fácil de modificar) para que pueda ser explotada en un futuro.

3.2 Arquitectura

Los estilos arquitectónicos y patrones de diseño determinan en gran medida qué atributos de calidad son beneficiados. Nuestro prototipo, como se mencionó anteriormente, es un SPA que naturalmente hace uso del estilo arquitectónico cliente-servidor. Así mismo, como es expuesto luego, tanto el cliente como el servidor implementa el patrón de arquitectura Model View Controller (MVC). A continuación se realiza un breve resumen de cada uno de los patrones mencionados (cliente-servidor y MVC) para luego proceder a la instanciación de los mismos en el prototipo a desarrollar.

(36)

responsabilidades entre los demandantes de recursos o servicios ( clientes), y sus proveedores (servidores).

En estas arquitecturas la capacidad de procesamiento está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. Este estilo arquitectónico beneficia por sobre todo a los atributos de calidad: Disponibilidad, Escalabilidad y Portabilidad.

Figura 12: arquitectura cliente-servidor

(37)

Figura 13: Model View Controller

3.3 Base de Datos

Para llevar a cabo la persistencia de las estructuras comprendidas por el prototipo, como son las estrategias, perspectivas y objetivos, entre otros, se utiliza una base de datos relacional. Se optó por este tipo de BD debido a las inherentes relaciones que existen entre los conceptos mencionados.

(38)

Figura 14: Diagrama de Entidad y Relaciones (DER) de la Base de Datos.

Entidad Objetivo

id Identificador del objetivo. Autogenerado. nombre Nombre del objetivo.

descripción Descripción del objetivo. valor Valor del objetivo.

tendencia Tendencia del valor del objetivo.

perspectiva_id Referencia a la entidad Perspectiva a la que pertenece. Tabla 2: Entidad Objetivos.

(39)

Relación ObjetivoXObjetivo

objetivo_id Parte del identificador de la relación y referencia la entidad Objetivo que representa el afectado.

objetivo_afectante _id

Parte del identificador de la relación y referencia la entidad Objetivo que representa el afectante.

Tabla 3: Relación ObjetivoXObjetivo

Relación IndicadorXObjetivo

objetivo_id Parte del identificador de la relación y referencia la entidad Objetivo que lo representa.

indicador_id Parte del identificador de la relación y referencia la entidad Indicador que lo representa.

peso Impacto generado desde el indicador representado (indicador_id) hacia el objetivo representado (objetivo_id).

Tabla 4: Relación IndicadorXObjetivo

Entidad Perspectiva

id Identificador de la perspectiva. Autogenerado. nombre Nombre de la perspectiva.

descripción Descripción de la perspectiva.

estrategia_id Referencia a la entidad Estrategia que lo representa. Tabla 5: Entidad Perspectivas

Entidad Estrategia

id Identificador de la estrategia. Autogenerado. nombre Nombre de la estrategia.

descripción Descripción de la estrategia.

(40)

Ya explicado el diagrama de entidades y relaciones realizado para lograr la persistencia de los datos, a continuación se describe la tecnología que se decidió dar uso para su implementación.

El prototipo utiliza MySQL como sistema de gestión de bases de datos relacionales (BDR), para llevar a cabo la persistencia de los datos. El principal motivo por el cual escogimos MySQL es que es el administrador de BDR de código abierto más popular del mundo y sobre todo en entornos de desarrollo web como es el de nuestro prototipo. Lo señalado se evidencia a la hora de resolver cualquier inconveniente, desde la instalación de la BD y Workbench, hasta la configuración con el servidor, donde la gran comunidad detrás de MySQL ofrece respuesta a través de foros, manuales y videotutoriales, entre otros. Además, este sistema de gestión es el elegido por la tesis “Herramienta para la Gestión de Indicadores” de forma que hacer uso del mismo gestor nos ofrece otras facilidades a la hora de integrar los prototipos. [MySQL]

3.4 Servidor

Dentro de las partes de una aplicación, el componente que recibe, procesa y responde las solicitudes del cliente, es el servidor.

Para el desarrollo del backend del sistema utilizamos un framework compatible con la tecnología JPA, de manera que nos permita llevar a cabo la lógica del negocio, manteniendo la relación con el modelo de almacenamiento de datos. Decidimos utilizar el framework Spring por diversos motivos, dentro de los que se destacan: es muy utilizado en la construcción de aplicaciones, es de código abierto, permite el completo desarrollo de herramientas, desde el frontend hasta el backend, y utiliza la plataforma Java, con la cual nos interiorizamos a lo largo de la carrera. [Spring]

(41)

Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externos, junto con el control de las versiones y el orden de construcción de los elementos. El uso de un gestor de dependencias mejora la flexibilidad y portabilidad de la aplicación. [Maven]

3.4.1 Modelo

El modelo es la fracción del sistema que define las reglas de negocio y gestiona el manejo de los datos. Su responsabilidad involucra todo lo relacionado a las acciones que podemos realizar sobre datos, como es el acceso a los mismos, modificaciones, altas, bajas, etc. El correcto desarrollo de este módulo nos permite desacoplar la aplicación del gestor de base de datos, impactando positivamente sobre la portabilidad de la aplicación.

A la hora de llevar a cabo la interacción entre la lógica del negocio y el modelo de datos existen principalmente dos tecnologías de software basadas en la persistencia de datos, estas son JPA (Java Persistence API) y JDBC (Java Database Connectivity). La diferencia principal de estas tecnologías es que JPA ofrece un mapeo objeto-relacional (ORM - Object Relational Mapping), mientras que JDBC ofrece un canal directo para realizar operaciones en la base de datos a través del dialecto SQL. Para nuestro prototipo decidimos utilizar JPA debido a su característica principal nombrada que nos ofrece no perder la ventaja de un diseño orientado a objetos al interactuar con una base de datos. Este mapeo objeto-relacional nos permite abstraer los beans de las entidades en la lógica del negocio, de las tablas en el modelo de datos. De esta forma, las clases de java se mapean con tablas en la base de datos, permitiéndonos así manejarnos siempre a nivel de objetos.

JPA es una parte de la especificación de EJB 3 ( JSR 220). Por lo tanto no existe realmente como framework, sino que es simplemente un documento en el cual se especifica los principios básicos de gestión de la capa de persistencia en el mundo de Java EE. Por esta razón debemos utilizar una tecnología que provea una implementación de JPA, dentro de las cuales se optó por la herramienta libre Hibernate. [JPA]

(42)

se nombró anteriormente, implementa como parte de su código la especificación JPA. [Hibernate]

Por último, en cuanto a la capa de acceso a los datos se refiere, es de interés nombrar que se hace uso del módulo Spring Data JPA,del proyecto Spring Data, del framework Spring. Este módulo provee soporte para la construcción de repositoriosbasados en Spring y JPA, como es el de nuestro prototipo. De forma muy resumida, este módulo agrega una capa de abstracción por encima de las especificaciones JPA, brindando un conjunto de interfaces que facilitan la labor de la definición de los repositorios, validación de queries y paginación de consultas, entre otros.

(43)

Figura 15: ejemplo de umbrales de indicador cuartil

(44)

Figura 16: ejemplo de umbrales de indicador cuartil

3.4.1.1 Información histórica

La información histórica de un objetivo, más específicamente los valores históricos del mismo, son indispensables para entender el presente y proyectar el futuro. De esta forma, por ejemplo, podemos advertir un objetivo que tenga un estado actual ‘ACEPTABLE’ pero con tendencia ‘BAJA’; y tomar acciones de prevención. Por esta razón, el prototipo a desarrollar soporta la funcionalidad de recuperar los valores históricos de un objetivo en particular durante un determinado período de tiempo.

A lo largo de la carrera hemos aprendido que para llevar a cabo la persistencia de datos históricos tenemos que trabajar a bajo nivel directamente en la base de datos a través de triggers. Esta solución resulta inadmisible para el prototipo a desarrollar, ya que atenta contra el esquema perseguido de un diseño orientado a objetos junto a un mapeo objeto-relacional. Como solución, Hibernate provee un módulo para satisfacer estas necesidades de trabajar con la persistencia y recuperación de datos históricos a un alto nivel, directamente sobre el modelo. Este módulo lleva el nombre de Hibernate Envers.

(45)

Envers nos ayuda a lograr fácilmente, a través de simples anotaciones en los beans, la funcionalidad de auditoría o datos históricos. El concepto más importante de esta librería es el de revisiones, donde básicamente una transacción es una revisión (a menos que la transacción no haya modificado ninguna entidad auditada). Posteriormente, estas revisiones son los objetos que vamos a recuperar, aplicando a las mismas diferentes restricciones o filtros para obtener los datos que sean de nuestro interés. [HIBERNATE-ENVERS]

3.4.2 Controlador

El controlador tiene un rol de intermediario (Middleware) entre la vista del cliente y el modelo, gestionando el flujo de información entre ellos junto con las transformaciones o adaptaciones de los datos a los requerimientos del modelo y la vista. Es de interés aclarar que cuando hablamos de la vista, dado las tecnologías elegidas, nos referimos a todo aquello que corre del lado del cliente. La razón de esto es que la interacción entre nuestro servidor y cliente es puramente de intercambio de objetos en formato JSON; y no elementos web como ficheros html, css, javascript, etc. Esto otorga una capa de abstracción que nos brinda la posibilidad de modificar la estructura del frontend sin afectar al backend, y viceversa; debido al desacople de ambos componentes.

Por la naturaleza de la herramienta, que cuenta con una sencilla lógica de procesamiento, el controlador resulta en un componente más bien simple. Su responsabilidad principal, más allá del rol del mismo y enfocándonos en el componente implementado, se reduce a básicamente gestionar el flujo de información. Con esto queremos hacer énfasis en que el controlador no hace ningún procesamiento complejo de los datos que recupera del modelo, como tampoco de aquellos que llegan de las peticiones web. Respecto a la interacción entre el controlador y el modelo, esta ya fue abarcada en el apartado anterior de MODELO, así que a continuación vamos a abocarnos a explicar cómo se logra la comunicación REST con el cliente, es decir, como se implementa la interfaz en el controlador que escucha y procesa aquellas peticiones HTTP que llegan del cliente.

(46)

navegador web, las procesan y devuelven una respuesta al navegador; para nuestro caso en formato JSON. [Servlet]

A pesar de manifestar que utilizamos servlets para recibir, procesar y responder las peticiones del cliente, si se mirase las clases que reciben las peticiones podría llamar la atención el hecho de que estas clases no extienden la clase javax.servlet.http.HttpServlet, o dicho de forma más acertada, no extienden explícitamente. La razón de esto es que el framework Spring nos provee la facilidad de implementar servlets utilizando la técnica de inyección de dependencias (DI), agregando anotaciones en los beans. Es decir, y de forma concisa, nosotros debemos agregar anotaciones en la clases y el framework de Spring se encarga de instanciar los objetos servlets correspondientes. De esta forma, por un lado ahorramos mucho código al deshacernos de todo el boleirplate code (código repetido) que la implementación de los servlets conlleva y, por el otro, se logra un conjunto de clases mucho más transparente a su responsabilidad.

3.4.3 Unión de las partes

(47)

Figura 17: diagrama de paquetes

Rest: este módulo tiene, como se muestra en el diagrama, toda la lógica del controlador. El mismo es el encargado de procesar las peticiones del cliente y brindarle una respuesta. Service: este módulo tiene la responsabilidad principal de iniciar una transacción para evitar conflictos de persistencia en el modelo.

Repository: el repositorio es el encargado de crear las consultas (queries) para relacionarse con la base de datos.

Model: este módulo tiene todas las clases POJO que deben ser mapeadas a tablas en la base de datos.

MySQL Server: este módulo corresponde al motor de base de datos relacional de MySQL Server.

(48)

Figura 18: flujo del servidor al eliminar estrategia

3.5 Comunicación REST

Como mencionamos en la sección de Arquitectura del sistema a desarrollar, para establecer la comunicación entre el cliente y el servidor decidimos utilizar el estilo arquitectónico REST o solo servicios REST. Esta decisión se sostiene principalmente en la simplicidad de las comunicaciones REST y la sencillez de la lógica del negocio que no se extiende mucho más que un simple CRUD [CRUD].

REST (en inglés representational state transfer) es un estilo de arquitectura de software para llevar a cabo la comunicación entre el cliente y el servidor, en sistemas hipermedia como las aplicaciones web. Los servicios REST actualmente describen cualquier interfaz entre sistemas que utilice directamente HTTP para obtener datos o indicar la ejecución de operaciones sobre los datos, en cualquier formato (XML, JSON, etc). Las operaciones más importantes relacionadas con los datos en cualquier sistema REST y la especificación HTTP son cuatro: POST (crear), GET (leer y consultar), PUT (editar) y DELETE (eliminar). Por último, cada recurso del sistema es manipulado a partir de un identificador que es una URI (en inglés Uniform Resource Identifier).

3.5.1 URIs expuestas

(49)

al inicio del cuerpo de la URI omitiendo el dominio. El sentido de este prefijo es agrupar las URIs por recursos y reducir el largo de las mismas en las tablas.

Por ejemplo, supongamos la dirección ficticia “www.bsc.com/estrategias/1”correspondiente a la URI del recurso estrategia cuyo identificador es igual a 1. A esta dirección la podemos fraccionar en dominio (“www.bsc.com”), prefijo (“/estrategias”) y cuerpo de la URI (“/{idEstrategia}”).

Prefijo: /estrategias

Descripción URI Método

HTTP JSON Enviado JSON Retornado Recuperar lista Estrategias

- GET - Lista Estrategias

Crear Estrategia

- POST Estrategia a

crear

Estrategia creada

Recuperar una Estrategia

/{idEstrategia} GET - Estrategia

Actualizar una Estrategia

/{idEstrategia} PUT Estrategia modificada

Estrategia actualizada Eliminar una

Estrategia

/{idEstrategia} DELETE Estrategia a eliminar - Recuperar lista Perspectivas afectantes /{idEstrategia}/perspectiva sAfectantes

GET - Lista

Perspectivas afectantes Agregar Perspectiva afectantes /{idEstrategia}/perspectiva sAfectantes

POST Perspectiva afectante Estrategia actualizada Eliminar Perspectiva afectantes /{idEstrategia}/perspectiva sAfectantes

PUT Perspectiva afectante

Estrategia actualizada

Tabla 7: URIs estrategias

Prefijo: /perspectivas

Descripción URI Método

HTTP JSON Enviado JSON Retornado Recuperar lista Perspectivas

- GET - Lista

Figure

Actualización...