Arquitectura Integrada de Gobierno

Wiki

Atrás

Pautas para el desarrollo (MRA)

Planificación y Gestión de las Aplicaciones

Catálogo de Aplicaciones

Identifica una lista de todas las aplicaciones de la empresa. Esta lista ayuda a definir el propósito de las iniciativas de cambio que pueden impactar en los tipos de aplicaciones.

Adicionalmente a la clasificación de las entidades que el MRA define como parte del Catálogo de Aplicaciones (Interfaces, Soluciones, Aplicaciones y Servicios de aplicación), dentro de las pautas para el desarrollo se considera que las aplicaciones deben ser categorizadas de acuerdo a la siguiente taxonomía:

  • Aplicaciones de negocio: son aquellas que proveen servicios al “cliente” de la organización.
  • Aplicaciones de apoyo a negocio: son aquellas que apoyan la gestión operativa de la organización, o que proveen servicios de apoyo a los empleados de la misma.

​​​​​​​

​​​​​​​

Debería ejecutarse el ejercicio de arquitectura desde la perspectiva de negocio, esto es, tener claros los requerimientos y procesos de negocio e identificar los servicios de aplicación necesarios para asistirlos. Luego debería identificarse o especificarse las aplicaciones/soluciones que proveen estos servicios de modo de completar el diseño.

​​​​​​​

Si se está haciendo relevamiento de un panorama de arquitectura ya existente, puede adoptarse un enfoque diferente, y comenzar por identificar las aplicaciones/soluciones ya existentes, luego identificar los servicios de aplicación que proveen y mapearlos a los procesos/funciones de negocio que están siendo apoyados por los mismos.

Ciclo de Vida de las Aplicaciones

Análisis de Requerimientos

El objetivo del Análisis de Requerimientos es lograr la descripción de los servicios y restricciones de un sistema de software, esto es, lo que el software debe hacer y bajo qué condiciones debe realizarlo.

Se trata de una actividad muy relevante, dado que se ha demostrado que una causa recurrente de fracaso en proyectos de desarrollo o implantaciones de paquetes de software, se origina de una incorrecta especificación de requerimientos.

Existen distintas metodologías para el análisis de requerimientos, algunas de ellas son: Modelado de Procesos, Modelado de Dominio y Casos de Uso. Independientemente de la metodología a seguir es importante dedicar atención y esfuerzo a esta actividad.

Ambientes

Un ambiente refiere al hardware y software donde se ejecuta una aplicación. Dependiendo del proceso de desarrollo, y de la complejidad y criticidad de la aplicación, se definirá la cantidad de ambientes por los cuales se irá propagando una aplicación desde desarrollo hasta su producción. Normalmente se suele contar con tres ambientes bien diferenciados, que son: Desarrollo, Testeo y Producción.

Plan de Testeo

Debe elaborarse el plan de testeo o plan de pruebas de Software con el fin de especificar qué elementos o componentes se van a probar para que se pueda realizar el proceso de Validación y Verificación de los requerimientos funcionales y no funcionales de una aplicación.

En la ejecución del Plan de Testeo, se obtendrá información sobre los errores o fallas que tiene la aplicación, para poder luego realizar las correcciones necesarias, asegurando de esta manera el correcto funcionamiento de la aplicación, según los requerimientos que hayan sido definidos.

Estrategias de Mantenimiento y Soporte de las Aplicaciones

Según la terminología ANSI-IEEE, el mantenimiento del software es: “la modificación de un producto de software después de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno”.

El mantenimiento del software se ha convertido en el principal componente en cuanto a costo y recursos invertidos dentro del Área de TI, en las organizaciones. Las tareas de mantenimiento son las últimas en realizarse en el ciclo de vida clásico del software, sin embargo, considerando el total de la duración del ciclo de vida, la etapa de mantenimiento es la que más tiempo dura.

Definir una estrategia en este tema, es de vital importancia para optimizar recursos. Las principales recomendaciones para reducir costos son:

  1. Realizar el catálogo de aplicaciones y analizar el ciclo de vida para consolidar los eventuales proveedores de Mantenimiento y Soporte de Aplicaciones. De esta forma, se podrán requerir los servicios de menos proveedores, logrando mayor simplificación, ahorro de costos y mejora en la eficacia.
  2. Buscar la optimización continua de Mantenimiento y Soporte, a través de métricas comparadas y contratos que garanticen el servicio (SLA).

Diseño de las Aplicaciones

Estándares abiertos y software libre

Cuando se diseñen aplicaciones, debe tenerse en cuenta que los organismos del Estado deben favorecer el uso de tecnologías basadas en estándares abiertos y software libre. Adicionalmente debe distribuirse toda información en al menos un formato abierto, estándar y libre.

Apertura y reutilización de datos (para datos abiertos)

Los datos gubernamentales abiertos tienen un valor más allá de la transparencia. Los datos abiertos pueden constituir un insumo importante para promover el bien social e impulsar el crecimiento económico.
Es importante al momento de crear nuevas aplicaciones, diseñar las mismas teniendo en cuenta las características que estas deberán tener, para facilitar la publicación de los datos (dentro de la normativa vigente), que estas aplicaciones generarán.

Privacidad de datos (Privacidad por Diseño)

Las aplicaciones de software, tienen la capacidad de recabar, usar y transferir información de carácter personal. Los datos que las aplicaciones recolecten sólo deben poder ser utilizados conforme a la finalidad que originó la recolección.  Es importante que en las etapas tempranas del diseño de las aplicaciones, se contemple la protección de estos datos.

"Privacidad desde el diseño" es un enfoque en el que desde el origen mismo del diseño de las aplicaciones, se contempla la protección de la privacidad.
Desde esta perspectiva, la preocupación por la protección de los datos personales no debe ser analizada posteriormente a la finalización del desarrollo, sino que debe estar presente en todas las etapas del proceso.

Interoperabilidad

Al momento de diseñar las aplicaciones, debe tenerse en cuenta las características que éstas deben cumplir, para lograr el intercambio de datos entre distintos organismos del Estado y en particular para interactuar con la Plataforma de Interoperabilidad del Estado. Se debe tener en cuenta también, que existe un catálogo de servicios del estado, que permite a los organismos identificar qué servicios se encuentran disponibles, qué información se intercambia e integrarlos en sus procesos de negocio a través del uso de web services de manera segura y confiable.

Adicionalmente debe tenerse el compromiso de compartir herramientas de software y recursos en general que permitan la reutilización de aquellos componentes que colaboran en la interoperabilidad entre los Organismos y el desarrollo de acuerdos de colaboración.

Accesibilidad y Usabilidad

Deben tenerse en cuenta las buenas prácticas que consideran la accesibilidad, la usabilidad y las aplicaciones multi-dispositivos, con el objetivo de lograr un efecto positivo en la calidad de la relación del Organismo hacia el ciudadano. Estas buenas prácticas apoyan el modelo, donde el foco está puesto en el ciudadano reconociéndolo como destinatario de los servicios brindados por el Organismo.

Arquitecturas de Referencia para Aplicaciones

Se recomienda identificar distintas arqutiecturas de referencia según el tipo de aplicaciones que existen en la organización (aplicaciones web, aplicaciones desktop, aplicaciones ofrecidas como SaaS, aplicaciones para móviles, etc.)

Los siguientes artefactos deben ser tenidos en cuenta para lograr la definición de una correcta Arquitectura de Referencia para Aplicaciones.

  • Patrones de Diseño: Permiten describir una solución a un problema recurrente en el diseño de aplicaciones, el cual ocurre en un contexto dado.
  • Diagrama de Componentes: Se deben diagramar todos los componentes en los que está dividida la aplicación. Además se deben incluir aquellos componentes externos a la aplicación y que interactúan con ésta. Todos los componentes descritos, deben incluir las interfaces que proveen.
  • Diagrama de Secuencia: Su objetivo es mostrar la interacción de un conjunto de objetos en una aplicación a través del tiempo. Se modela para cada caso de uso.
  • Diagrama de Despliegue: Representa la forma en cómo va a estar desplegado físicamente la aplicación.
  • Distintos tipos de Guías, como ser:
    • Guías de estilo y usabilidad.
    • Guías de estándares tecnológicos asociados a bases de datos utilizadas, entornos de ejecución de aplicaciones, plataformas de desarrollo y distintos tipos de frameworks a utilizar.
    • Guías de codificación para los lenguajes de programación que se utilizarán.

Calidad y Seguridad

Entre los atributos de calidad más importantes, se encuentran:

  • Capacidad de ser mantenida: entendida como el grado de eficacia y eficiencia con el que una aplicación puede ser modificada por quienes está previsto que lo mantengan. Algunas de las subcaracterísticas de la calidad de la característica “capacidad de ser mantenida” son:
    • Modularidad: estar compuesta por componentes discretos de forma que el cambio en un componente tenga un impacto mínimo en los otros componentes
    • Reutilización: grado en el cual la aplicación puede ser utilizada por más de un sistema o en la construcción de otros activos.
  • Compatibilidad: entendida como el grado en el cual una aplicación puede intercambiar información con otros productos, sistemas o componentes, o realizar sus funciones requeridas, mientras que comparten el mismo entorno de hardware o de software. Algunas de las subcaracterísticas de la calidad de la característica “compatibilidad” son:
    • Interoperabilidad: grado en el cual dos o más aplicaciones pueden intercambiar información y utilizar la información que se ha intercambiado.
    • Coexistencia: grado en el cual una aplicación puede realizar sus funciones requeridas de manera eficiente mientras comparte un entorno y recursos comunes con otros productos, sin un impacto perjudicial en cualquier otro producto.
  • Confiabilidad: entendida como el grado en el cual una aplicación realiza funciones específicas bajo condiciones específicas por un período de tiempo determinado. Algunas de las subcaracterísticas de la calidad de la característica “confiabilidad” son:
    • Disponibilidad: grado en el cual una aplicación se encuentra en funcionamiento y es accesible cuando es requerido para su uso.
    • Capacidad de recuperación:// grado en el cual, en el caso de una interrupción o falla, una aplicación puede recuperar los datos directamente afectados y restablecer el estado deseado del sistema.

Respecto a Seguridad, se deben considerar distintos atributos que los sistemas deben respetar. Particularmente se debería hacer referencia a elementos como confidencialidad e integridad de la información, políticas de acceso a la misma, etc.