8
8
DEL SOFTWARE
Ing. Gabriela Murguia Torrez
Arquitectura del software
Patrón Arquitectónico
Su fundamento es la separación del código en tres capas diferentes, acotadas por su responsabilidad, en lo que se
llaman Modelos, Vistas y Controladores, o lo que es lo mismo, Model, Views & Controllers, si lo prefieres en inglés.
MVC es un "invento" que ya tiene varias décadas y fue presentado incluso antes de la aparición de la Web. No
obstante, en los últimos años ha ganado mucha fuerza y seguidores gracias a la aparición de numerosos frameworks de
desarrollo web que utilizan el patrón MVC como modelo para la arquitectura de las aplicaciones web.
Arquitectura del software
Ventajas
1.Al principio, en el HTML se mezclaba tanto el contenido como la
presentación. Es decir, en el propio HTML tenemos etiquetas como "font" que
sirven para definir las características de una fuente, o atributos como "bgcolor"
que definen el color de un fondo. El resultado es que tanto el contenido como
la presentación estaban juntos y si algún día pretendíamos cambiar la forma
con la que se mostraba una página, estábamos obligados a cambiar cada uno
de los archivos HTML que componen una web, tocando todas y cada una de las
etiquetas que hay en el documento. Con el tiempo se observó que eso no era
práctico y se creó el lenguaje CSS, en el que se separó la responsabilidad de
aplicar el formato de una web.
Modelos
Es la capa donde se trabaja con los datos, por tanto contendrá mecanismos para acceder a la información y también para
actualizar su estado. Los datos los tendremos habitualmente en una base de datos, por lo que en los modelos tendremos
todas las funciones que accederán a las tablas y harán los correspondientes selects, updates, inserts, etc.
No obstante, cabe mencionar que cuando se trabaja con MCV lo habitual también es utilizar otras librerías como PDO o
algún ORM como Doctrine, que nos permiten trabajar con abstracción de bases de datos y persistencia en objetos. Por
ello, en vez de usar directamente sentencias SQL, que suelen depender del motor de base de datos con el que se esté
trabajando, se utiliza un dialecto de acceso a datos basado en clases y objetos.
Arquitectura del software
Partes
Vistas
Las vistas, como su nombre nos hace entender, 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. En las vistas nada más tenemos los códigos HTML y PHP que nos permite mostrar la salida.
En la vista generalmente trabajamos con los datos, sin embargo, no se realiza un acceso directo a éstos. Las vistas
requerirán los datos a los modelos y ellas se generará la salida, tal como nuestra aplicación requiera.
Arquitectura del software
Partes
Controladores
1.- El usuario realiza una solicitud a nuestro sitio web. Generalmente estará
desencadenada por acceder a una página de nuestro sitio. Esa solicitud le llega
al controlador.
2.- El controlador comunica tanto con modelos como con vistas. A los modelos
les solicita datos o les manda realizar actualizaciones de los datos. A las vistas
les solicita la salida correspondiente, una vez se hayan realizado las operaciones
pertinentes según la lógica del negocio.
Arquitectura del software
Forma de trabajo
Hay un concepto que se usa mucho cuando se explica el MVC que es la "lógica de negocio". Es un conjunto de reglas que se
siguen en el software para reaccionar ante distintas situaciones. En una aplicación el usuario se comunica con el sistema por
medio de una interfaz, pero cuando acciona esa interfaz para realizar acciones con el programa, se ejecutan una serie de
procesos que se conocen como la lógica del negocio. Este es un concepto de desarrollo de software en general.
Arquitectura del software
Lógica de negocio / Lógica de la
aplicación
La lógica del negocio, aparte de marcar un comportamiento cuando ocurren cosas dentro de un software, también tiene
normas sobre lo que se puede hacer y lo que no se puede hacer. Eso también se conoce como reglas del negocio. Bien, pues
en el MVC la lógica del negocio queda del lado de los modelos. Ellos son los que deben saber cómo operar en diversas
situaciones y las cosas que pueden permitir que ocurran en el proceso de ejecución de una aplicación.
Por ejemplo, pensemos en un sistema que implementa usuarios. Los usuarios pueden realizar comentarios. Pues si en un
modelo nos piden eliminar un usuario nosotros debemos borrar todos los comentarios que ha realizado ese usuario también.
Eso es una responsabilidad del modelo y forma parte de lo que se llama la lógica del negocio.
Arquitectura del software
Lógica de aplicación
Sin embargo existe otro concepto que se usa en la terminología del MVC que es la "lógica de aplicación", que es algo que
pertenece a los controladores. Por ejemplo, cuando me piden ver el resumen de datos de un usuario. Esa acción le llega al
controlador, que tendrá que acceder al modelo del usuario para pedir sus datos. Luego llamará a la vista apropiada para
poder mostrar esos datos del usuario. Si en el resumen del usuario queremos mostrar los artículos que ha publicado dentro
de la aplicación, quizás el controlador tendrá que llamar al modelo de artículos, pedirle todos los publicados por ese usuario y
con ese listado de artículos invocar a la vista correspondiente para mostrarlos. Todo ese conjunto de acciones que se realizan
invocando métodos de los modelos y mandando datos a las vistas forman parte de la lógica de la aplicación.
Ejemplo: Tenemos un sistema para borrar productos. Cuando se hace una solicitud a una página para borrar un producto de
la base de datos, se pone en marcha un controlador que recibe el identificador del producto que se tiene que borrar.
Entonces le pide al modelo que lo borre y a continuación se comprueba si el modelo nos responde que se ha podido borrar
o no. En caso que se haya borrado queremos mostrar una vista y en caso que no se haya borrado queremos mostrar otra.
Este proceso también está en los controladores y lo podemos denominar como lógica de la aplicación.