Tabla de Contenidos

Arquitectura Alissta

Sobre el documento

El presente documento contiene el diseño elaborado para el proyecto POSITIVA SG-SST, el cual es producto de un análisis minucioso de los requisitos del sistema, según estos pueden ser satisfechos con las tecnologías y características discutidas con los clientes y usuarios.

El documento está organizado alrededor de tres ideas principales:

1. Las características generales del diseño.

2. Los requisitos atendidos por el diseño.

3. Los modelos y vistas que lo detallan.

Al contrario de muchas otras actividades técnicas, el desarrollo de sistemas intensivos en software dedica la mayoría de sus esfuerzos a la especificación y modelado. Los modelos son utilizados tanto para el análisis de requisitos, como para el diseño de la solución, así como para la especificación, construcción y despliegue del sistema en su ambiente de explotación. Los modelos son presentados por medio de vistas o diagramas, generalmente utilizando notaciones gráficas como el UML. Por otro lado, los programas de computadora son construidos por medio del uso de herramientas de traducción automáticas llamados compiladores, para los cuales es construida la forma final y más detallada del software del sistema: el código fuente. La última sección del documento indica la forma en que se puede obtener el código fuente del proyecto, así como las instrucciones de compilación necesarias para lograr la ejecución de los componentes que este código detalla.

Descripción General

Se entiende por arquitectura del software, como el conjunto de elementos estáticos, propios del diseño intelectual del sistema, que definen y dan forma tanto al código fuente, como al comportamiento del software en tiempo de ejecución.

Naturalmente este diseño arquitectónico ha de ajustarse a las necesidades y requisitos del proyecto. Esta sección describe en términos generales, las ideas principales detrás de la arquitectura escogida para el mismo.

El diseño será representado por medio del modelo de “4+1 Vistas” (Kruchten, vol. 12), cuyo objetivo es mostrar, en cada una de las vistas, una perspectiva o visión de un conjunto de elementos del proyecto y sus relaciones, esto desde el punto de vista de la arquitectura. En unión, las 4+1 vistas representan las decisiones de diseño y la forma como se desarrollará el proyecto. Este modelo posee un alto grado de importancia debido que está estrechamente relacionado con todos los Stakeholders según su rol dentro del desarrollo del proyecto. El modelo de divide en 4+1vistas que se describen en la Figura 1.

El modelo de vistas múltiples, organiza una descripción de la arquitectura de software utilizando cinco vistas concurrentes, las cuales permiten aproximar de manera aislada los intereses de los diferentes stakeholders de la arquitectura: los usuarios finales, los desarrolladores, entre otros; y manejar de manera separada los requerimientos funcionales y no funcionales. Se capturan las decisiones de diseño en cuatro de las vistas y utilizan la quinta vista para ilustrar y validarlas.

El modelo propone las siguientes perspectivas o vistas:

  1. Vista lógica: Ofrece soporte a los requerimientos funcionales, lo que el sistema debe proveer en términos de servicios a sus usuarios.
  2. Vista de procesos: La vista de procesos permite describir los procesos del sistema y como estos se comunican.
  3. Vista física o de despliegue: La vista física describe como es instalada la aplicación y como se ejecuta en una red de computadores. Para describir esta vista, en el presente documento se utilizó un diagrama de despliegue.
  4. Vista de desarrollo o de implementación: Esta vista se concentra en la organización en módulos del software. En el presente documento, fue representada por el diagrama de paquetes.
  5. Vista de casos de uso: La vista de casos de uso consolida las vistas anteriores, donde los escenarios se convierten en una abstracción de los requerimientos más importantes. Para describir esta vista, en el presente documento como anexo se encuentran los casos de uso.

Una vez explicadas las vistas que propone Kruchten y la forma de documentarlas, se puede apreciar que es un modelo bastante bueno para documentar la arquitectura de un sistema software “complejo”, ya que todos los stakeholders pueden entender el sistema que se está desarrollando desde diferentes perspectivas.

Posicionamiento y Alcance

Positiva SG-SST Es un sistema web que permite a las empresas asociadas a POSITIVA ARL gestionar, administrar y aplicar la norma 1072 de 2015, la resolución 0312 del 2019 y la 1401 del 2007 la cual exige a las empresas implementar un Sistema de Gestión de la Seguridad y Salud en el Trabajo (SG-SST) El sistema web se Construirá y será soportado por las tecnologías Microsoft visual estudio 2013 ultímate con una versión Microsoft .Net Framework 4.6.01586, con un motor de Base de Datos SQL SERVER 2014 management Studio respectivamente.

Objetivos del Diseño

A continuación se describen los objetivos de acuerdo al tipo de tecnología en la cual se soportan los módulos:

- Definir la arquitectura soportada en el sistema. - Establecer lineamientos para el uso de los recursos utilizados en el desarrollo de los componentes del sistema. - Definir lineamientos para la creación del modelo de datos que soportara el sistema.

Características Principales

SG-SST es un sistema que tiene las siguientes características principales:

• Diseño basado en módulos. • Construcción y desarrollo bajo el Paradigma POO. • Estructura de datos relacional. • Ambiente cliente/servidor. • Patrón de Diseño MVC. • Integración con sistemas operativos para dispositivos móviles Android, IOS. • Fácil de utilizar e interfaz amigable con el usuario y con la tecnología Responsive Design.

Restricciones y Limitaciones

De acuerdo a las tecnologías utilizadas en el desarrollo del sistema se presentan las siguientes restricciones y limitaciones:

• La solución de Software debe ser una sola, no se permite integración con otro desarrollo u otras aplicaciones.

• Debe de estar construida con lenguajes de programación orientados a objetos (.Net).

• La solución debe de estar construida con un motor de Base de datos SQL server 2014 o superior.

• El desarrollo para móviles debe soportar sistemas operativos Android y iOS.

• La solución contratada debe estar construida en ambiente web.

• La solución debe estar construida en capas: Presentación, Negocio y Persistencia (datos).

• La solución debe funcionar sobre los siguientes Web Browser, como mínimo: Chrome 41.x o superior.

• La solución (hardware, software, conectividad) debe tener representación y soporte tecnológico y funcional dentro del territorio colombiano, esencialmente en la ciudad de Bogotá.

• El idioma del sistema de información debe ser español (adaptado a la terminología colombiana).

• Se debe garantizar un Data-Center de Tier-3 mínimo. La empresa ADA realizará esta gestión por el periodo de un año (Renovable al término de este).

• El sistema debe utilizar el protocolo de seguridad HTTPS (Hipertexto Transfer Protocol Secure)

• El sitio web deberá contar con un certificado SSL con validación extendida por 3 años a nombre del dominio de Positiva Compañía de Seguros S.A.

Requisitos Atendidos

La motivación y el fundamento de todo lo hecho en el proyecto, no son otros sino los requisitos y necesidades, tanto del cliente como de los futuros usuarios del sistema.

Es por esto, que en esta sección se indican los requisitos atendidos por el diseño o arquitectura que se describirá en las próximas secciones.

Requisitos Suplementarios

• La aplicación app debe estar sincronizada con la versión web en todo momento. • Arquitectura en 3 capas: presentación, negocio y persistencia (datos). • Arquitectura escalable vertical y horizontalmente. • El sistema debe tener mecanismos de integración a otros sistemas de información tanto internos como de terceros utilizando el modelo y plataforma de integración SOAP y REST de la compañía. • El sistema debe garantizar la integridad en los datos y las operaciones sobre los mismos. • El sistema debe tener mecanismos de captura y manejo de errores en componentes, manejo de excepcionales. • El sistema debe integrar ayudas en línea para cada uno de los módulos del sistema en español. • El sistema debe notificar al usuario sobre todos los procesos que se ejecuten de manera exitosa o defectuosa. • El sistema debe asegurar tiempos de respuesta de máximo 2 segundos por transacción. • El sistema debe permitir cancelar procesos ejecutados en cualquier momento. • El sistema debe asegurar la consistencia, integridad y disponibilidad de la información procesada. • El sistema debe ser complementario, compatible e interoperable con las diferentes Plataformas tecnológicas con que cuenta la compañía para el soporte de los procesos de promoción y prevención. • El sistema debe contener ayudas en línea, en donde se implementen los manuales de usuario y de procedimientos que competen al manejo de esta información. • Las ayudas se refieren a cómo utilizar cada módulo del sistema cuando es utilizado por el usuario, por ejemplo ingresar información, hacer consultas, como sacar reportes, editar un ítem. Además se tendrá un manual de usuario que explicará de manera general como utilizar el sistema.

• El sistema debe soportar volúmenes de 1000 empresas con promedio de 2 usuarios por empresa para el primer año. • El sistema debe contar con una disponibilidad de mínimo 99.5% de las veces en que un usuario intente accederlo. • El sistema debe garantizar el ingreso a través de diferentes perfiles de acceso. • El sistema debe limitar las opciones de menú y submenú de cada uno de los usuarios de acuerdo al perfil. • El sistema debe permitir realizar la recuperación de contraseñas (correo electrónico, mesa de ayuda y PIN).

Vistas y Planos

Los sistemas intensivos en software, se encuentran formados por un conjunto de componentes, que no son más que los elementos listos para ser ejecutados producidos por el proyecto.

Dichos componentes se distribuyen sobre los distintos equipos según lo que se detalla en la vista de despliegue.

Por otro lado, la vista lógica presenta al sistema como un todo, indicando en términos propios de la tecnología utilizada, las partes que lo forman y las relaciones principales entre ellas.

Finalmente se presenta el llamado modelo de datos, que contiene la estructura de almacenamiento de información requerida por el sistema aquí descrito.

Resúmen de Vistas

VistaContieneSe relaciona conComentarios
Vista FísicaDiagrama de DespliegueTiene relación con las interfaces de comunicación del sistema, y artefactos que lo componen.Contiene los nodos que forman la arquitectura (Tipología).
Vista de ProcesosDiagrama de SecuenciaTiene Relación con las Clases, Objetos Modelo que componen la aplicación. Muestra la interacción de los diferentes elementos del sistema.
Vista LógicaDiagrama de ComponentesTiene relación con la aplicación en y con el funcionamiento general de los componentes integrados. Muestra el alcance de las funcionalidades que componen el sistema.
Vista De DesarrolloDiagrama de PaquetesTiene relación entre los componentes del producto y como se comunican entre si Muestra la relación de los componentes del sistema.

Vista Lógica

La vista lógica describe como está definida la estructura interna de un sistema, en otras palabras, cuales son las partes que lo componen y como es su interacción.

Los módulos que se mencionan a continuación son el objeto de este documento.

Modulo Empresa. Modulo Liderazgo Gerencial. Modulo Política. Modulo Organización. Modulo Planificación. Modulo Aplicación. Modulo Reportes e Investigación. Modulo Medición y Evaluación SG-SST Modulo Participación Trabajadores. Modulo Revisión de la Dirección. Modulo Gestión de Cambio. Modulo Inspecciones. Modulo Condiciones y actos inseguros. Modulo Acciones preventivas y correctivas. Modulo Investigación incidentes A T y EL. Modulo Ausentismo Laboral. Módulo de Gran Empresa Módulo de Gran MiPyME Módulo de Eventos Positiva Módulo de Investigación Módulo de Reclasificación Módulo de Gestión de Proveedores Módulo de Paramétricas Módulo de Carpeta digital Módulo de Comunicaciones Módulo de Reportes

Vista De Paquetes

Vista De Despliegue

Diagrama de Arquitectura

Diagrama de Componentes e Interfaces

Diagrama Infraestructura Aplicación

En el Diagrama anterior de se describe gráficamente la disponibilidad de la aplicación contiene: 2 proveedores de internet une y Media Commerce (acceso-wan) 2 swichtces cisco sg300 (distribución enlaces wan) 2 Router de Borde Meraki (firewall-puerta de acceso) 2 ms220-24 (distribución LAN) 1 cluster de vmware con 6 nodos (Aplicación, procesamiento y alta disponibilidad) 1 cluster de nas con 2 nodos (almacenamiento y alta disponibilidad) 1 vcenter administración de VMWARE (Almacenamiento Datos)

Vista de Datos

A continuación, se presenta el modelo de datos al día.

Diagrama de Clases

Diagramas de Secuencia

Se puede observar la totalidad de los diagramas de secuencia en el siguiente documento: positiva_seguros_cto_698_de_2019_alissta_f011_ing_documento_arquitectura_v1.6_actual_2_.pdf

Diagramas de Estado

A continuación se presenta el Diagrama de estados parcial al 7/7/2017.

• Acceso a la Aplicación.

• Obtener Datos Servicios Expuestos.

• Registro Información en el sistema.

• Editar información del sistema.

• Eliminar Información del Sistema.

Detalles de Implementación

La especificación de un sistema intensivo en software tiene como última representación al código fuente de los componentes. Este código indica los más finos detalles del software, por medio de un lenguaje preciso, capaz de ser traducido automáticamente a instrucciones de la máquina.

Acompaña al código, las llamadas previsiones de compilación, constituidos por todos los elementos de soporte necesarios para realizar la construcción de los componentes a partir del conjunto de códigos.

Esta sección detalla la obtención y uso del paquete de código fuente para el proyecto. De manera de facilitar el uso de este, para la futuras ampliaciones o correcciones del sistema.

Plataformas y Lenguajes

Se requiereVersiónDebido aComentarios
Sistema Operativo Windows 7 en adelante preferiblemente, para un mejor rendimiento de la aplicación.Versión 7 Professional, Enterprise, Ultímate, Home en todas sus versiones. Se requiere un sistema operativo para la administración y gestión de los módulos del software.
Microsoft Visual Studio Ultimate 2013 Versión 12.0.31101.00 Update 4 IDE de desarrollo que permite construir las clases, métodos y funciones para el funcionamiento del software.
Microsoft SQL Server Management Studio,2014.12.0.2000.8Gestor que permite realizar las transacciones de los datos entre el sistema y la base de datos.
Lenguaje de programación C#No se especificaLenguaje utilizado para realizar el desarrollo de métodos del lado servidor.
Visual SVNNo se especificaPara el control y administración de versiones.

Instrucciones de Compilación

El sistema de Gestión para la Seguridad y salud en el Trabajo se ejecuta en un navegador web, el usuario ingresa mediante una URL a la aplicación, por tal motivo la herramienta no requiere ninguna instrucción de compilación, tampoco requiere un archivo ejecutable para su funcionamiento, y utilizando como medio una conexión a internet.

Estructuras de Implementación

Controladores

Es un intermediario entre las capas Modelo y Vista, el cual es responsable de actualizar el Modelo cuando el usuario manipula la Vista. También se puede entender que el Controlador lee o recolecta los datos desde la vista y se los envía al modelo.

Modelo

El Modelo administra los datos de la aplicación. Estos datos son los que el programa usará. En la mayoría de los casos, se trata de una base de datos. En este caso se encargaría de recuperar o almacenar datos. Se incluye el código que permite acceder a la base de datos de la aplicación.

Vista

Contienen el código de nuestra aplicación que va a producir la visualización de las interfaces de usuario, o sea, el código que nos permitirá renderizar los estados de nuestra aplicación en HTML.

Anexos

En el presente documento se anexan los casos de uso de los Módulos.

1. Modulo Empresa. 2. Modulo Liderazgo Gerencial. 3. Modulo Política. 4. Modulo Organización. 5. Modulo Planificación. 6. Modulo Aplicación. 7. Modulo Reportes e Investigación. 8. Modulo Medición y Evaluación SG-SST 9. Modulo Participación Trabajadores. 10.Modulo Revisión de la Dirección. 11.Modulo Gestión de Cambio. 12.Modulo Inspecciones. 13.Modulo Condiciones y actos inseguros. 14.Modulo Acciones preventivas y correctivas. 15.Modulo Investigación incidentes A T y EL. 16.Modulo Ausentismo Laboral.

Historial de Documentos

• Versión 1.0 Enero 26 de 2017 Creación del documento.

• Versión 1.1 Marzo 12 de 2017 Edición del documento se agrega Diagrama de Clases

• Versión 1.2 Abril 17 de 2017 Edición del documento se agrega Diagrama de Secuencia.

• Versión 1.3 Julio 07 de 2017 Adición Diagrama de Infraestructura y Disponibilidad, Maquinas de Estados.

• Versión 1.4 Julio 13 de 2017 Adición Descripción de Tablas y Campos en el Diccionario de Datos.

• Versión 1.5 Julio 20 de 2017 Adición Diagrama de Componentes e Interfaces, Aclaración de la Disponibilidad de la infraestructura de la aplicación.

• Versión 1.6 Abril 14 de 2020: Actualización del paquetes de librerías, Requerimientos, Diccionario de datos y Modelo de datos.

Glosario de Términos

Base de datos: Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red, ya que se debe poder compartir esta información.

Librerías: Una librería es un conjunto de recursos (algoritmos) prefabricados, que pueden ser utilizados por el programador para realizar determinadas operaciones. Las declaraciones de las funciones utilizadas en estas librerías, junto con algunas macros y constantes predefinidas que facilitan su utilización, se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos.

Frameworks: es una estructura conceptual y tecnológica de soporte definido, normalmente, con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.

Clase: En informática, una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.