Utilización del Patrón Modelo ? Vista ? Controlador (MVC) en el diseño de software educativos
Enviado por Febe Ángel Ciudad Ricardo
- Resumen
- El patrón de diseño de software Modelo – Vista – Controlador (MVC)
- Una variación que acerca el patrón MVC a los software educativos cubanos
- Valoración Económica y aporte Social
- Conclusiones
- Recomendaciones
- Anexos
- Referencias Bibliográficas
RESUMEN
Hoy día en cualquier lugar del mundo los que construyen aplicaciones informáticas centran su atención en dos aspectos fundamentales: (1) ¿cómo lograr construir mejores aplicaciones en menos tiempo? y (2) ¿cómo utilizar mayor cantidad de estándares en el diseño de las aplicaciones que soporte la primera interrogante planteada y permita mayor reutilización del código y mejores mantenimientos de los sistemas desarrollados? Los software educativos no están ajenos a esta problemática, incluso por su concepción, complejidad y variabilidad en el tiempo, se pudiera decir que son el tipo de aplicaciones informáticas que mayor necesidad tienen de darle respuesta a ambas preguntas planteadas.
"La calidad de diseño de la interacción de los objetos y la asignación de responsabilidades presentan gran variación. Las decisiones poco acertadas dan origen a sistemas y componentes frágiles y difíciles de mantener y entender, reutilizar o extender. Una implementación hábil se funda en los principios cardinales que rigen un buen diseño orientado a objetos." [LAR99]
Teniendo en cuenta el creciente uso de la P.O.O. en la concepción e implementación de este tipo de software y la gran actualidad que tiene el uso de patrones internacionalmente aceptados para estas funciones, proponemos en nuestro trabajo un análisis del patrón Modelo-Vista-Controlador (MVC) y su posible utilización en el diseño de software educativos en lo relacionado al trabajo con la información en este tipo de aplicaciones.
La administración o gestión de datos engloba dos áreas distintas de interés: (1) la administración (gestión) de datos críticos para la propia aplicación, y (2) la creación de infraestructura para el almacenamiento y recuperación de los objetos. En general, la administración de datos se diseña en forma de capas o en paquetes o subsistemas. La idea es aislar de forma lógica desde el análisis y luego en el diseño, los requisitos de bajo nivel que manipulan las estructuras de datos, de los requisitos de alto nivel para manejar los atributos del sistema en desarrollo.[PRE01]
Por las razones expuestas, dedicaremos este trabajo al planteamiento de un conjunto de modificaciones sobre la base de dicho patrón y lo estandarizado para el análisis y el diseño por el Lenguaje Unificado de Modelado (UML) que permita acercar al patrón MVC a las necesidades para este tipo de sistemas informáticos. Estas mismas concepciones y modificaciones presentadas, ya han sido utilizadas en el diseño e implementación de un producto de este tipo, así como de una plataforma para la construcción de aplicaciones multimedia educativas en la UCI.
INTRODUCCIÓN
El mercado del software de computadoras personales ha germinado en las pasadas dos décadas. El procesamiento de texto, la hoja de cálculo, los gráficos por computadoras, multimedia, entretenimientos, gestión de bases de datos, aplicaciones financieras, de negocios y personales y redes o acceso a bases de datos externas son algunas de los cientos de aplicaciones existentes en la actualidad.
En el mismo período de tiempo mencionado, han aparecido un conjunto de variantes de solución al diseño y a la arquitectura de las aplicaciones de todo tipo. No obstante la aplicación de dichas variantes a los software educativos se vuelve un poco compleja y en ocasiones no compatibles con las características de este tipo de aplicaciones.
En consecuencia es preocupante al mismo tiempo la estructura que adoptarán estos tipos de software. La estructura de información representa la organización interna de los elementos de datos o de control. ¿Hay que organizar los elementos de datos o de control como una tabla de dimensión n o como una estructura jerárquica en árbol? Dentro del contexto de la estructura ¿Qué información está relacionada con otra información? ¿Está contenida toda la información en una sola estructura o se van a utilizar varias? ¿Cómo se relaciona la información de una estructura con la de otra? Estas y otras preguntas se responden mediante una valoración de la estructura de la información.
Al mismo tiempo es menester el análisis de las características del diseño de las aplicaciones multimedia educativas desde el punto de vista de sus clases y la arquitectura "¿Qué tipo de visibilidad deberían tener otros paquetes respecto a la capa de presentación? ¿Cómo deberían comunicarse con las ventanas las clases no relacionadas con ellas? Por lo regular conviene que no haya un acoplamiento directo de otros componentes con los objetos ventana porque estás se encuentran relacionadas con una aplicación en particular, mientras que (en teoría) podemos reutilizar en nuevas aplicaciones los componentes sin acceso a ellas o unirlos a una nueva interfaz. El principio que se aplica en este caso es el patrón Separación Modelo- Vista." [PRE01]
Será razón de esta ponencia realizar un análisis de estos aspectos y la presentación de una variación a uno de los patrones de arquitectura más utilizados actualmente; sobre la base de las características del software educativo cubano.
EPÍGRAFE I: El patrón de diseño de software Modelo – Vista – Controlador (MVC).
La arquitectura del software alude a "la estructura global del software y a las formas en que la estructura proporciona la integridad conceptual de un sistema". En su forma más simple, la arquitectura es la estructura jerárquica de los componentes del programa (módulos), la manera en que los componentes interactúan y la estructura de datos que van a utilizar los componentes. Sin embargo, en un sentido más amplio, los "componentes" se pueden generalizar para presentar los elementos principales del sistema y sus interacciones. [PRE01]
"El diseño arquitectónico define la relación entre los elementos estructurales principales del software, los patrones de diseño que se pueden utilizar para lograr los requisitos que se han definido para el sistema, y las restricciones que afectan a la manera en que se pueden aplicar los patrones de diseño arquitectónicos" [SHA96].
Los patrones expresan el esquema fundamental de organización para sistemas de software. Proveen un conjunto de subsistemas predefinidos; especifican sus responsabilidades e incluyen reglas y guías para organizar las relaciones entre ellos; así como ayudan a especificar la estructura fundamental de una aplicación.
El Model-View-Controller (Modelo-Vista-Controlador, en adelante MVC) fue introducido inicialmente en la comunidad de desarrolladores de Smalltalk-80. Según uno de los Sistemas de Patrones de Arquitectura más extendido en el mundo: Pattern Oriented Software Architecture, publicado por Buschmann en 1996, el patrón que se analiza en este trabajo (MVC), se sitúa en la tercera de las cuatro categorías en las cuales clasifica a los patrones: Del barro a la estructura (From mud to Structure), Sistemas Distribuidos (Distributed Systems), Sistemas Interactivos (Interactive Systems) y Sistemas Adaptables (Adaptable Systems). De igual forma si utilizamos otro de los sistemas más difundidos: Pattern of Enterprise Application Architecture, descrito recientemente por Fowler en el pasado 2003, lo ubica en la tercera de las siete categorías que se mencionan a continuación: Patrones de lógica del dominio (Domain Logia Patterns), Patrones de Mapeo a Bases de Datos Relacionales (Mapping to Relational Database Patterns), Patrones de Presentación Web (Web Presentation Patterns), Patrones de Distribución (Distribution Patterns), Patrones de Concurrencia Offline (Offline Concurrency Patterns), Patrones de Estado de Sesión (Session State Patterns) y Patrones Base (Base Patterns).
MVC divide una aplicación interactiva en 3 áreas: procesamiento, salida y entrada. Para esto, utiliza las siguientes abstracciones:
- Modelo (Model): Encapsula los datos y las funcionalidades. El modelo es independiente de cualquier representación de salida y/o comportamiento de entrada.
- Vista (View): Muestra la información al usuario. Pueden existir múltiples vistas del modelo. Cada vista tiene asociado un componente controlador.
- Controlador (Controller): Reciben las entradas, usualmente como eventos que codifican los movimientos o pulsación de botones del ratón, pulsaciones de teclas, etc. Los eventos son traducidos a solicitudes de servicio ("service requests") para el modelo o la vista.
Página siguiente |