El desarrollo de software con método o lo que es lo mismo, bien diseñado y construido. Es necesario si se quiere que puedan ser fácilmente mantenidos y que su evolución y actualización se lleve a cabo sin problemas. Aplicando una adecuada metodología conseguiremos esto y que podamos integrar además diferentes tipos de aplicaciones y tecnologías, que aporten las ventajas que resulten óptimas en cada uso.
Tipos de aplicaciones:
Aplicaciones de escritorio:
Sistemas de información que permiten manejar la lógica de negocios en una red de área local, mediante la utilización de una interfaz de usuario con grandes posibilidades funcionales (elementos visuales avanzados con los que el usuario es capaz de manejar la información con facilidad).
Aplicaciones web:
Sistemas de información que permiten manejar la lógica de negocios con independencia de la localización geográfica del usuario, es decir, el usuario no tiene por qué estar en su oficina, o en una oficina única, para acceder a sus procesos de negocio (aunque sí delante de un ordenador). Son aplicaciones manejadas a través de un navegador.
Aplicaciones móviles:
Últimamente y como complemento a partes funcionales del negocio, se están desarrollando aplicaciones que permiten gestionar los datos desde cualquier dispositivo móvil, permitiendo que usuarios con mucha movilidad en sus trabajos puedan acceder al sistema de información con su PDA, móvil, etc.
Arquitecturas complementarias
Estos elementos funcionales o formas de acceder a la Información no tienen por qué pertenecer a sistemas dispares, sino que en muchos sistemas pueden complementarse para alcanzar finalmente los objetivos que la compañía requiere.
Un ejemplo típico de sistema de información en el que se integran las tres soluciones es el siguiente:
Aplicación de escritorio:
- Mediante este tipo de aplicaciones se desarrolla toda la lógica de negocios interna de la empresa. Imaginemos una compañía dedicada a la distribución de mercancías con una lógica de procesos muy particular que no puede ser contemplada por ERPs específicos (en todo o en parte). En este caso se desarrollaría un sistema a medida que contemplase dichos procesos, que serían gestionados mediante el uso de los equipos integrados en la propia red de la compañía.
Aplicación Web:
- De ese sistema interno de información y debido a las relaciones que la compañía tiene con sus clientes y proveedores. Se suelen exportar a Internet determinados procesos de utilidad tanto para la compañía como para estos agentes con los que la empresa colabora. De esta forma, se desarrollan aplicaciones web que permiten participar en los procesos de negocio a estos agentes, por ejemplo, en la realización de pedidos, consultas de información, etc.
Aplicaciones móviles:
- Además, y como complemento a estos dos tipos de aplicaciones, se ofrecen soluciones móviles que permiten desde cualquier localización mover los datos del usuario al servidor y viceversa. Mediante el uso de dispositivos como PDAs, móviles, etc. Como ejemplo podríamos tener la implementación de un sistema que permita en un almacén realizar el picking de la mercancía mediante dispositivos móviles del estilo de PDAs, estando completamente conectado con el sistema de información interno o ERP de la compañía. Como es de suponer, puesto que son tipos de aplicaciones diferentes, la tecnología impone diferencias en el desarrollo del software para cada una de ellas.
Pero la situación deseable para implantar un sistema de información de este tipo, en el que aparecen distintos tipos de aplicaciones. Es intentar diseñar una arquitectura en la que la parte común a los tres tipos de sistemas sea lo más amplia posible. Evitando que cuestiones relativas al manejo del negocio, iguales en sendos casos, se vean afectadas o deban ser reconstruidas ante nuevos desarrollos o cambios en los existentes.
Método y metodología
Es, por tanto, evidente pensar que el desarrollo de aplicaciones ha de seguir una adecuada metodología. Para conseguir que los sistemas estén bien diseñados y construidos, con lo que se facilite la reutilización máxima de código desarrollado. Y que los sistemas puedan ser fácilmente mantenidos y evolucionados.
Todo ello conllevará un menor coste para el cliente y mejoras en el futuro mantenimiento y actualización de los sistemas para él desarrollados. En Solusoft esta evidencia es un concepto clave. Lo que ha hecho incluso que en el Sistema de Gestión de la Calidad, certificado según la norma ISO 9001:2000, esté perfectamente integrado el uso de una metodología de trabajo en los desarrollos software.
Esta metodología es Métrica v3, impulsada por el Centro Superior de Informática del Ministerio de Administraciones Públicas, que define los siguientes procesos para la creación de un sistema de información:
- Análisis del Sistema de Información: Etapa en la que se realiza la toma de especificaciones y el estudio de las funcionalidades que se desea disponer en el sistema de información en base a la lógica de negocio particular de la empresa. Podemos decir que en esta etapa se define qué hace el sistema de información.
- Diseño del Sistema de Información: Es el puente entre la fase de análisis y la construcción y define la manera en la que debe realizarse la implantación para conseguir un producto informático. Podemos decir que define el cómo se va a realizar el sistema.
- Construcción del Sistema de Información: Fase en la que se desarrolla el sistema de información.
- Implantación del Sistema de Información: Puesta en producción del sistema de información.
Arquitectura de tres capas
El seguimiento de las distintas fases recogidas en los procesos descritos de Métrica v3 nos lleva, en el primer proceso, a la recopilación de información sobre la lógica de negocio. Y las funcionalidades que se requieren para las diferentes aplicaciones, distinguiendo qué funcionalidades son comunes o no entre las aplicaciones. Es el primer punto en el que se profundiza para ver los elementos comunes.
El segundo proceso, el del Diseño, es el punto clave para producir software con la mayoría de elementos comunes entre las diferentes aplicaciones. En primer lugar, se debe definir un modelo de datos común para los tres sistemas de información. Este modelo de datos (una vez desplegado en el correspondiente gestor de bases de datos) almacenará la información que sustenta la lógica de negocios para cualquiera de las aplicaciones.
Una vez definido el modelo de datos, se debe diseñar el software pensando en reutilizar todo lo posible entre las distintas aplicaciones. Siempre dejando aisladas y desacopladas aquellas partes dependientes de la tecnología (sobre todo la interfaz de usuario). Para conseguir estos requisitos se opta por un desarrollo basado en el diseño de, al menos, tres capas software:
Capa software de acceso a datos:
Se compone de aquellos componentes software que nos permiten acceder a la base de datos para realizar las consultas y actualizaciones necesarias.
Capa software de lógica de negocios:
Componentes software que modelan la lógica de negocio de la aplicación, que interactúa con la capa de acceso a datos. Para proporcionar una vista de interfaz de usuario (ver siguiente punto) según el dispositivo en el que se quiera mostrar la salida (navegador, escritorio Windows, PDA).
Capa software de interfaz de usuario:
Componentes software encargados de presentar la lógica de negocios en el dispositivo correspondiente (rejillas de datos, controles de fechas, etc.)
Las dos primeras capas son totalmente compartidas por los diferentes tipos de aplicaciones, dejando el desarrollo específico de software para la capa de presentación.
Conclusiones
De lo expuesto anteriormente se pueden obtener las siguientes conclusiones:
- Para desarrollar un sistema de información, por muy diferentes que sean las aplicaciones que lo integran. Se dispone actualmente de soluciones que permiten reutilizar software a gran escala.
- Con esta forma de trabajo se ahorran costes y se permite un mejor mantenimiento y ampliación de los sistemas de información.
- Un cliente no tiene por qué embarcarse en el desarrollo de los tres tipos de aplicaciones al mismo tiempo. Previa planificación se pueden utilizar los criterios de reutilización para una implantación gradual de los sistemas de información necesarios.
Si necesitas más información, contacta con nosotros.
Jorge Ruiz Magaña
Director de la Unidad de Desarrollo