Programación en Capas

Programación en Capas

Adan Canico Hernández, Oscar Cortés Sánchez
Instituto Tecnológico Superior de Ciudad Serdán, Puebla, México,
acanico@cdserdan.tecnm.mx, ocortes@cdserdan.tecnm.mx.

Resumen

 Los primeros sistemas de software, tal y como los conocíamos, se encontraban aislados unos de otros, cada uno de ellos se caracterizaban por contar con sus propios dispositivos de entradas y salidas, con la llegada de distintos paradigmas de desarrollo de software han venido evolucionando a través de los años y actualmente contamos con una de las técnicas que brinda mayor facilidad y beneficios, me refiero a la programación en capas, que permite dividir el trabajo en secciones modulares, haciendo más eficiente la reutilización de código fuente para otros proyectos, actualmente podemos decir que es la más utilizada por empresas de alto nivel en el desarrollo de sistemas, la implementación del modelo en capas se lleva acabo de la siguiente forma: 1) Capa de presentación; 2) Capa de negocios y; 3) Capa de datos; sin embargo, si es conveniente podemos dividir la estructura del proyecto en más capas, según se requiera.

 Resumen

The first software systems, as we knew them, were isolated from each other, each of them were characterized by having their own input and output devices, with the arrival of different software development paradigms they have been evolving to Through the years and currently we have one of the techniques that provides greater ease and benefits, I mean layered programming, which allows dividing the work into modular sections, making the reuse of source code more efficient for other projects, currently we can To say that it is the most used by high-level companies in the development of systems, the implementation of the layered model is carried out in the following way: 1) Presentation layer; 2) Business layer and; 3) Data layer; however, if it is convenient, we can divide the project structure into more layers, as required.

Introducción

 El concepto de programación hace referencia al proceso de construcción de software para su ejecución en equipos de cómputo, en el que se destaca el uso de entornos de desarrollo, compiladores que facilitarán la ejecución y gestores de base de datos. Cuando se construye el software como producto empresarial o comercial, se llevan a cabo varias técnicas de manera que el desarrollo se haga en forma ordenada para poder asegurar un avance continuo del proyecto y un producto final de calidad. Además de lograr que el hecho de realizar posteriores mejoras, sea una tarea más sencilla para los desarrolladores. Existen muchas prácticas de programación, dependiendo del tipo de software que se va a desarrollar, así como disciplina/s de programación que se utilicen. Una de las más utilizadas se llama programación por capas, lo cual consiste en dividir el código fuente según su funcionalidad principal con la intención de utilizarlo para el mismo proyecto u otros proyectos totalmente independientes al que dio origen a ese código.

En este proceso de desarrollo de software se debe lograr un mayor provecho a la programación por capas, para ello se necesita seguir una serie de pasos complejos los cuales primeramente deben ser definidos para cada proyecto en específico, luego deben ser revisados para asegurarse de que el modelo adoptado cumpla con las normas necesarias para que la aplicación sea del agrado del usuario, y por último debe ser implementado por el grupo de desarrollo encargado para tal fin, los cuales siguiendo el modelo propuesto obtienen una herramienta útil para facilitar la labor de programación dividiendo la aplicación en módulos y capas fáciles de modificar, es decir crear un sistema adaptativo.

Materiales y Métodos

Programación en N capas

El estilo arquitectural en n capas se basa en una distribución jerárquica de los roles y las responsabilidades para proporcionar una división efectiva de los problemas a resolver. Los roles indican el tipo y la forma de la interacción con otras capas mientras que las responsabilidades muestran la funcionalidad que implementan. Cuanto más se aumenta el proceso operativo de la empresa, las necesidades de proceso crecen hasta desbordar las máquinas. Es por ello que se separa la estructura de un programa en varias capas, como se muestra en la Figura 1.

Figura 1. Modelo típico de tres capas

Capa de presentación

Es la responsable de la presentación visual de la aplicación. La capa de presentación enviará mensajes a los objetos de la capa de negocios o intermedia, la cual responderá directamente o mantendrá un diálogo con la capa de datos, la cual proporcionará los datos que se enviarán como respuesta a la capa de presentación.

 Podemos decir que es la que se presenta al usuario, llamada también formulario o interfaz de presentación, está captura los datos del usuario en el formulario e invoca a la capa de negocio, trasmitiéndole los requerimientos del usuario, ya sea de almacenaje, edición, o de recuperación de la información para la consulta respectiva.

La presentación del sistema ante el usuario, debe manejar interfaces que cumplan con el objetivo principal de este componente, el cual es facilitar al usuario la interacción con la aplicación. Para esto se utilizan patrones predefinidos para cada tipo de aplicación y para cada necesidad del usuario. La interfaz debe ser amigable y fácil de utilizar, ya que el usuario final es el que se va a encargar de utilizar el sistema y de dar retroalimentación al equipo de desarrollo en caso de que haya algo que mejorar.

Las interfaces deben ser consistentes con la información que se requiere, no se deben utilizar más campos de los necesarios, así como la información requerida tiene que ser especificada de manera clara y concisa, no debe haber más que lo necesario en cada formulario y, por último, las interfaces deben satisfacer los requerimientos del usuario, por lo cual no se debe excluir información solicitada por el usuario final y no se debe incluir información no solicitada por el mismo.

 Dentro de la parte técnica, la capa de presentación contiene los objetos encargados de comunicar al usuario con el sistema mediante el intercambio de información, capturando y desplegando los datos necesarios para realizar alguna tarea. En esta capa los datos se procesan de manera superficial, por ejemplo, en la Figura 2, se visualiza los datos que requiere capturar el usuario para poder realizar alguna de las operaciones básicas del sistema. Esta capa se comunica únicamente con la capa de Reglas de Negocio o Control.

Figura 2. Capa de presentación

Capa de negocio

Es la responsable del procesamiento que tiene lugar en la aplicación. Por ejemplo, en la Figura 2 se visualiza una clave de producto que permitirá a la capa de presentación relacionarse con los métodos de la capa de negocio para el envío de datos a la capa de procesamiento o capa de datos como se esté manejando. Esta capa intermedia contendría los objetos que corresponden con las entidades de la aplicación, la capacidad de mantenimiento y de reutilización.

 Contendrá objetos definidos por clases reutilizables que se pueden utilizar una y otra vez en otras aplicaciones. Estos objetos se suelen llamar objetos de negocios y son los que contienen la gama normal de constructores, métodos para establecer y obtener variables como se observa en la Figura 3. Atributos de la clase, además dichos métodos pueden llevar a cabo cálculos y métodos, normalmente privados en comunicación, como lo muestra la Figura 1. Modelo típico de tres capas, con la base de datos.

Figura 3. Atributos de la clase

Es en esta capa donde se reciben los requerimientos del usuario y se envían las respuestas tras el proceso, a requerimiento de la capa de presentación, se denomina capa de negocio o lógica del negocio, es aquí donde se establecen todas las reglas que deben cumplirse.

En realidad, se puede tratar de varias funciones, por ejemplo, puede controlar la integridad referencial, otro que se encargue de la interfaz, tal como abrir y cerrar ciertos formularios o funcionalidades que tengan que ver con la seguridad, menús, etc., tiene los métodos que serán llamados desde las distintas partes de la interfaz o para acceder a la capa de datos.

Esta capa interactúa con la capa de presentación para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al manejador de base de datos que realice una operación de almacenamiento, edición, eliminación, consulta de datos u otra.

Capa de datos

 Esta capa se encarga de acceder a los datos, se debe usar la capa de datos para almacenar y recuperar toda la información de sincronización del Sistema.

Es aquí donde se implementa las conexiones al servidor y la base de datos propiamente dicha, se invoca a los procedimientos almacenados los cuales reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio como se visualiza en la Figura 4. Conexión a la base de datos, en la cual se estable la comunicación con el gestor de base de datos a través de dos funciones, una que permite la conexión y un más que me permite desconectarme del gestor.

Figura 4. Conexón a la base de datos

El manejo de los datos debe realizarse de forma tal que haya consistencia en los mismos, de tal forma los datos que se ingresan, así como los que se extraen de las bases de datos, deben ser consistentes y precisos. Es en esta capa donde se definen las consultas a realizar en la base de datos, tanto las consultas simples como las consultas complejas para la generación de reportes más específicos. Esta capa envía la información directamente a la capa de negocio para que sea procesada e ingresada en objetos según se necesite, esta acción se denomina encapsulamiento.

En la Figura 5. Operaciones, se visualizas una de varias de las operaciones que puede contener un sistema y se debe de programar en la capa de Datos, dicha función se comunicará como la capa de negocio y tendrá acceso a las propiedades y constructores de dicha capa, para enviar o recibir información manipulada desde la capa de presentación.

Figura 5. Operaciones

Todas estas capas pueden residir en un único ordenador (no debería ser lo usual), pero es lo más frecuente. En sistemas complejos se llega a tener varios ordenadores sobre los cuales reside la capa de datos, y otra serie de ordenadores sobre los cuales reside la base de datos.

Se recomienda que si el crecimiento de las necesidades o complejidad aumenta se debe separar en dos o más ordenadores, los cuales recibirán las peticiones del ordenador en que resida la capa de negocio. Esta recomendación es válida para la capa de negocios.

 Resultados y Discusión

La programación en capas no es una técnica rígida que debe implementarse solamente de una forma, sino que los desarrolladores de proyectos tienen múltiples maneras de implementarla según las tecnologías y tendencias que se utilicen. La satisfacción de los requerimientos del usuario es la base para escoger el modelo de implementación a seguir, la tendencia a utilizar el modelo de programación en capas es grande cuando se trata principalmente de aplicaciones empresariales donde se deben manejar gran cantidad de subsistemas y módulos, así como generar reportes lo suficientemente complejos como para necesitar un orden estricto a la hora de desarrollar el proyecto.

Al desarrollar un proyecto en capas tenemos la facilidad de reutilizar las capas en distintos proyectos modificando únicamente los atributos en los métodos de la capa de negocio y datos, solamente de se adaptaría la capa de presentación al nuevo proyecto que va estar acorde a los requerimientos del cliente, incluso la capa de negocio y de datos se pueden convertir en archivos dll para que sean genéricas a otros proyectos.

 Dentro del concepto de programación en capas, existen dos términos esenciales para el mejor entendimiento de los conceptos relativos a esta metodología, es aquí donde radica la importancia de la cohesión y el acoplamiento dentro de una aplicación generada mediante este método. Conclusiones

La programación en capas ha sido una de las últimas tendencias en cuanto a software comercial se refiere, es una tendencia que bien aplicada puede resultar en un desarrollo de software eficiente, sin embargo no todos los equipos ni empresas desarrolladoras usan un sistema rígido, ni existe una forma estricta en la que tenga que implementarse el modelo de capas, cada quién debe hacerlo según sus necesidades, alcances y lo más importante; las tendencias y nuevas tecnologías que vayan surgiendo. Es importante tener en cuenta que no importa el lenguaje de programación usado, o el tipo de implementación que se le dé al modelo; se debe buscar una alta cohesión y un bajo acoplamiento dentro de los objetos y capas para lograr que la aplicación sea fácilmente desarmable y sea más sencillo realizar mejoras y actualizaciones al sistema.

 La particularidad del desarrollo de software a través de este modelo por capas se caracteriza por dividir el sistema con la finalidad de que los cambios que sufran cualquiera de las tres capas, no afecte el resto de los módulos, esto es muy recomendable debido a que cualquier tipo de error que se genere no se propagará de forma masiva en el resto del sistema, es decir cualquier cambio que sufra nuestra capa de negocio no afectará a la capa de presentación, ni mucho menos a la capa de datos, este mismo efecto se generaría en cualquiera de las capas restantes.

 Podemos concluir que este modelo de programación nos brinda los siguientes beneficios:

• Facilita la reutilización de capas.

• Permite una mejor estandarización.

• El trabajo por parte de los analistas es complejo, pero al final se crea una arquitectura más fácil de comprender y de implementar.

• En cuanto a la seguridad este estilo de programación es más fiable.

• Se puede elaborar componentes para cada capa, avanzando en el desarrollo de manera independiente y por ende el Sistema puede desarrollarse más rápido.

• Facilita el mantenimiento al Sistema y por ende los costos de mantenimiento tienden a ser menores.

• Dado los acelerados cambios en la dinámica de los negocios este estilo de programación provee que el sistema sea escalable y adaptativo.

Recomendaciones

En el proceso de desarrollo de software se recomienda que no necesariamente se implemente el modelo de tres capas, se sugiere que se divida en n capas en base al tamaño y requerimiento que contenga el proyecto, teniendo como objetivo primordial la separación de la lógica de negocios de la lógica de diseño; la ventaja principal de este estilo es que en el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataque al nivel requerido sin tener que revisar las demás capas.

Se recomienda desarrollar las aplicaciones separando por capas; es decir, diseñar aplicaciones separando entre el modelo de datos, la lógica de aplicación, y la interfaz de usuario, si optamos por esta separación de responsabilidades, podremos compartir totalmente el modelo de datos entre todas las versiones de la aplicación y sólo tendremos que adaptar la interfaz de usuario.

Se recomienda usar la programación con 3 capas, porque es la más convencional y la programación es más ordenada y segura.

 Es importante que todas las capas estén referenciadas para no tener problemas al ejecutar y no exceder en el número de creación de capas debido a la posibilidad de que exista perdida de eficiencia.

Se recomienda la elaboración de componentes para cada una de las capas que integra el sistema, avanzando en el desarrollo de manera independiente y así poder reducir los tiempos en el proyecto.

Referencias

• De la Torre Llorente, C., Zorrilla Castro, U., Ramos Barroso, M. A., & Calvarro Nelson, J. (2010). Guía de Arquitectura en N-capas orientada al dominio con .NET. España: Krasis Consulting.

• Pérez García, V., Rico Moreno, J. L., & Gordillo Sosa, J. A. (2013). Ciencias de la Ingeniería y Tecnología. Mexico: ECORFAN.

• Pressman, R. S. (2010). Ingeniería del Sotfware “Un enfoque práctico”. México: MCGraw-Hill.

 • Vargas Del Valle, R. &. (2007). Programación en Capas. Costa Rica: Universidad de Costa Rica , Ciencias de Computación e Informática.

REVISTA LASIRC ISSN: 2711-1814 (en línea) Vol. 1. No. 15. Octubre 2020,Ingenierías y Tecnológicas Edición Especial Administrativas, Contables y Económicas Derecho, Ciencias Políticas, Sociales y Bellas Artes