En el desarrollo tradicional de un sistema de información es indispensable la normalización de datos; según Martínez y sus colegas, en el artículo publicado el año 2010 con el título “Diseño de Framework Web para el Desarrollo Dinámico de Aplicaciones”, no importa cómo se manipule la información de una empresa u organización lo ideal es que esté estructurada de un modo conocido para manejarla, almacenarla, recuperarla. Para este proceso se definen modelos de datos con una determinada estructura, que habitualmente se convierte en tablas de una base de datos. Anteriormente, la única información estructurada en un sistema era la referente a “los datos”. El problema subsecuente a este es que un sistema es mucho más que datos, pues se encuentra compuesto de código fuente, bibliotecas, archivos de configuración, y otros. Todo este código generado y su orden mismo dependían directamente de los encargados de desarrollar el sistema y, desde la existencia de los primeros compiladores hasta la aparición de los primeros generadores de código comercial u orientado a “usuarios finales”, la generación de código era exclusividad de programas compiladores especializados.
Ante esta situación problemática surgen los llamados “Frameworks” o “Armazones de trabajo”, con el propósito de normalizar y estructurar el código del sistema, facilitando un esquema, un patrón, un esqueleto, para el desarrollo y la implementación de aplicaciones. Según Larman, en el libro publicado el año 2003 titulado “UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado”, el uso de armazones de trabajo para cualquier tipo de desarrollo reduce el tiempo de elaboración e implementación y ayuda a hacer una tarea mantenible y escalable, según las características del mismo.
Según Cavaness, en el libro escrito el año 2004 titulado “Programación de Jakarta Struts”, un armazón de trabajo se compone de varias clases o componentes reutilizables, cada uno de los cuales puede proporcionar una abstracción de algún concepto en particular. El armazón de trabajo define cómo estas abstracciones trabajan juntas para resolver un problema específico de software. Por su parte Bennett, en el artículo publicado el año 2009 titulado “¿Que es un framework Web y por que quisiera uno?, define a un armazón de trabajo para aplicaciones Web, como un conjunto organizado de bibliotecas y componentes personalizables e intercambiables que permite acelerar el proceso de desarrollo, reutilizando el código existente y además promoviendo buenas prácticas de ingeniería del software, tal es el caso del uso de los patrones de diseño. No existe una clasificación estándar y formal que se aplique a estas tecnologías, se habla de los orientados a la interfaz de usuario como el caso de Java Server Faces y por otra parte los orientados a la parte de control de eventos como Struts, pero es posible diferenciarlos con base en una serie de puntos comparativos.
Martínez y sus colegas, en el artículo citado anteriormente, mencionan que un armazón de trabajo agrega funcionalidad extendida a un lenguaje de programación, automatiza muchos de los patrones de programación para orientarlos a un determinado propósito, proporcionando una estructura al código, mejorándolo y haciéndolo más entendible y sostenible, y permite separar en capas la aplicación. En general, divide la aplicación en tres capas: (1) La lógica de presentación que administra las interacciones entre el usuario y el software. (2) La lógica de datos que permite el acceso a un agente de almacenamiento persistente u otros. (3) La lógica de dominio o de negocio, que manipula los modelos de datos de acuerdo a los comandos recibidos desde la presentación. Los armazones de trabajo Web pretenden facilitar el desarrollo de aplicaciones Web: Sitios Web, páginas Web, portales, intranets, etc. Actualmente, PHP es conocido por su simplicidad y es ampliamente utilizado en este campo del desarrollo de software Web. También es común el uso de otros lenguajes de “scripting” o interpretados como Perl, ASP ó JSP que permiten mayor facilidad de uso y flexibilidad para el rápido desarrollo de aplicaciones, pero al mismo tiempo tienden a producir código de difícil sostenimiento y poco eficiente. En este ámbito, los patrones de diseño más utilizados son aquellos que se centran en separar la presentación de la lógica.
No hay comentarios:
Publicar un comentario