1. REPÚBLICA BOLIVARIANA DE VENEZUELA.
MINISTERIO DEL PODER POPULAR PARA
LA EDUCACIÓN UNIVERSITARIA
UNIVERSIDAD ALEJANDRO DE HUMBOLDT
FACULTAD DE INGENIERÍA EN INFORMÁTICA Y MANTENIMIENTO DE
OBRAS
CÁTEDRA: INGENIERÍA DEL SOFTWARE
SECCIÓN DCN604IIV1
PATRON MVC
Profesor: Integrantes:
Luís Piña Ana Maldonado C.I. 14 021 550
Juan Carrasco C.I. 24 888 172
Sergio Ortiz C.I. 82 137 379
Caracas, 8 de junio de 2016.
2. II
ÍNDICE
ÍNDICE .........................................................................................................................II
INTRODUCCIÓN .......................................................................................................III
EL PATRÓN MVC.......................................................................................................4
La Capa del Modelo..................................................................................................4
Responsabilidad de la capa del modelo ................................................................5
La Capa de La Vista..................................................................................................5
Responsabilidad de la capa de la vista..................................................................6
La Capa del Controlador...........................................................................................6
Responsabilidad de la capa del controlador..........................................................7
Flujo en MVC ...........................................................................................................7
VARIANTES DE MVC............................................................................................8
Variante I: (Figura 1) ............................................................................................8
Variante II: (Figura 2)...........................................................................................8
Variante III: (Figura 3)..........................................................................................9
CONCLUSIÓN...........................................................................................................10
REFERENCIAS BIBLIOGRÁFICAS........................................................................11
3. III
INTRODUCCIÓN
En este trabajo vamos a estudiar el patrón MVC, antes de esto tenemos que
saber que un patrón de diseño constituye una solución a un problema de diseño
recurrente en programación. Los patrones de facilitan el diseño de software al tener
una guía para el desarrollador de cómo debe funcionar de forma general el software.
Otro punto importante de los patrones es que en ellos se encuentran la experiencia de
varios años de trabajo y buenas prácticas.
El patrón MVC es un patrón que tiene muchos años en el mundo del
desarrollo y en gran medida se usa en el diseño de aplicaciones WEB. En este trabajo
vamos a encontrar los 3 elementos que lo componen, también las diferentes
variaciones que se pueden encontrar actualmente de este patrón.
4. q
t
e
d
n
v
w
J
A
m
d
n
Mod
que separa lo
tres compon
en aplicacio
datos dinám
negocio, y e
vista.
Actu
web integran
Java, Ruby
ASP.NET M
manejador d
disponible p
El m
negocio. E
elo Vista C
os datos de u
nentes distint
ones web, do
micos a la pá
el controlado
ualmente, la
n este patró
onRails par
MVC para la
de contenido
para realizar
modelo repre
Esto signific
EL
ontrolador (
una aplicació
tos. El estilo
onde la vista
ágina. El mo
or es el respo
mayoría de
ón de diseño
ra Ruby, Ze
a familia de l
o Joomla! tie
nuevas exten
La C
esenta la par
ca que es
PATRÓN M
(MVC) es u
ón, la interfa
o de llamada
a es la págin
odelo es el
onsable de r
los framewo
o, entre ellos
nd Framewo
lenguajes re
ene incluida
nsiones a esa
Capa del M
rte de la apl
s responsab
MVC
un patrón de
az de usuario
y retorno M
na HTML y
que gestiona
recibir los ev
orks para el
s Struts, Stru
ork, Symfon
ecientes del a
una implem
a herramient
Modelo
licación que
ble de la
e arquitectur
o, y la lógica
MVC, se ve fr
y el código q
a los datos
ventos de en
desarrollo d
uts 2 y Spri
ny y CakePH
ambiente .N
mentación de
ta.
e implement
recuperació
ra de softwa
a de control
frecuentemen
que provee
y la lógica
ntrada desde
de aplicacion
ing MVC pa
HP para PH
NET. Incluso
el patrón MV
ta la lógica
ón de dat
4
are
en
nte
de
de
la
nes
ara
HP,
el
VC
de
tos
5. 5
convirtiéndolos en conceptos significativos para la aplicación, así como su
procesamiento, validación, asociación y cualquier otra tarea relativa a la
manipulación de dichos datos.
A primera vista los objetos del modelo puede ser considerado como la primera
capa de la interacción con cualquier base de datos que podría estar utilizando tu
aplicación. Pero en general representan los principales conceptos en torno a los cuales
se desea implementar un programa.
En el caso de una red social, la capa de modelo se haría cargo de tareas tales
como guardar datos del usuario, el almacenamiento de asociaciones con amigos, el
almacenamiento y la recuperación de fotos de los usuarios, encontrar sugerencias de
nuevos amigos, etc. Mientras que los objetos del modelo pueden ser considerados
como “Amigo”, “Usuario”, “Comentario” y “Foto”.
Responsabilidad de la capa del modelo
Administrar los datos de la aplicación y proveer los servicios asociados.
Proveer un acceso a los datos y los servicios para las vistas y los
controladores.
Registrar, como observadores, las vistas y los controladores que dependan de
la actualización del modelo.
Notificar a los observadores en caso de actualización.
La Capa de La Vista
La vista hace una presentación de los datos del modelo estando separada de
los objetos del modelo. Es responsable del uso de la información de la cual dispone
para producir cualquier interfaz de presentación de cualquier petición que se presente.
Por ejemplo, como la capa de modelo devuelve un conjunto de datos, la vista
los usaría para hacer una página HTML que los contenga. O un resultado con formato
XML para que otras aplicaciones puedan consumir.
6. 6
La capa de la Vista no se limita únicamente a HTML o texto que represente
los datos, sino que puede ser utilizada para ofrecer una amplia variedad de formatos
en función de sus necesidades tales como videos, música, documentos y cualquier
otro formato que puedas imaginar.
Responsabilidad de la capa de la vista
Mostrar la información al usuario.
Actualizar la representación gráfica en caso de producirse alguna
actualización del modelo.
Buscar los datos del modelo.
Ofrecer posibilidades de manipulación de representación gráfica para el
controlador asociado a la vista.
Crear e inicializar el controlador asociado.
La Capa del Controlador
La capa del controlador gestiona las peticiones de los usuarios. Es responsable
de responder la información solicitada con la ayuda tanto del modelo como de la
vista. Los controladores pueden ser vistos como administradores cuidando de que
todos los recursos necesarios para completar una tarea se deleguen a los trabajadores
más adecuados. Espera peticiones de los clientes, comprueba su validez de acuerdo a
las normas de autenticación o autorización, delega la búsqueda de datos al modelo y
selecciona el tipo de respuesta más adecuado según las preferencias del cliente.
Finalmente delega este proceso de presentación a la capa de la Vista.
Para entender cómo funciona nuestro patrón Modelo vista controlador, se
debe entender la división a través del conjunto de estos tres elementos y como estos
componentes se comunican unos con los otros y con otras vistas y controladores
externos al modelo principal. Para ello, es importante saber que el controlador
interpreta las entradas del usuario (tanto teclado como el ratón), enviado el mensaje
de acción al modelo y a la vista para que se proceda con los cambios que se
consideren adecuados.
7. 7
Responsabilidad de la capa del controlador
Administrar los eventos que provienen del usuario.
Traducir los eventos en consultas para el modelo o para la vista (manipulación
de la representación gráfica).
Adaptar, si fuera necesario, los distintos componentes del controlador cuando
se produce alguna actualización en el modelo.
Flujo en MVC
Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo
que sigue el control generalmente es el siguiente:
1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo,
el usuario pulsa un botón, enlace)
2. El controlador recibe (por parte de los objetos de la interfaz-vista) la
notificación de la acción solicitada por el usuario. El controlador gestiona el
evento que llega, frecuentemente a través de un gestor de eventos (handler) o
callback.
3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo
de forma adecuada a la acción solicitada por el usuario. Los controladores
complejos están a menudo estructurados usando un patrón de comando que
encapsula las acciones y simplifica su extensión.
4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz
de usuario. La vista obtiene sus datos del modelo para generar la interfaz
apropiada para el usuario donde se refleja los cambios en el modelo (si se
utiliza la variante 2 descrita anteriormente, de lo contrario lo obtiene a través
del Controlador). El modelo no debe tener conocimiento directo sobre la vista,
sin embargo, el patrón de observador puede ser utilizado para proveer cierta
comunicación entre el modelo y la vista, permitiendo al modelo notificar a los
interesados de cualquier cambio. Un objeto vista puede registrarse con el
modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin
saber nada de la vista. El controlador no pasa objetos de dominio (el modelo)
8. 8
a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En
algunas implementaciones la vista no tiene acceso directo al modelo, dejando
que el controlador envíe los datos del modelo a la vista, según lo descrito en la
segunda variante.
5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el
ciclo nuevamente.
VARIANTES DE MVC
Se han desarrollado a lo largo de los años, desde la presentación de este patrón
a la comunidad científica 3 variantes fundamentales, que se presentan brevemente a
continuación.
Variante I: (Figura 1)
Variante en la cual no existe ninguna comunicación entre el Modelo y la Vista y esta
última recibe los datos a mostrar a través del Controlador.
Figura 1: Variante inicial del Patrón MVC.
Variante II: (Figura 2)
Variante en la cual se desarrolla una comunicación entre el Modelo y la Vista,
donde esta última al mostrar los datos, la busca directamente en el Modelo, dada una
indicación del Controlador, disminuyendo el conjunto de responsabilidades de este
último.
9. 9
Figura 2: Variante Intermedia del Patrón MVC.
Variante III: (Figura 3)
Variante en la cual se diversifica las funcionalidades del Modelo teniendo en
cuanta las características de las aplicaciones multimedia, donde tienen un gran peso
las medias utilizadas en estas.
Figura 3: Variante modificada para Aplicaciones Multimedia del MVC, conocida como
MVCMM. (Tomado de [STE04])
10. 10
CONCLUSIÓN
Modelo vista controlador (MVC) es un patrón de diseño que separa los datos,
la lógica de negocios y las interfaces de usuario. Como ya su nombre lo dice está
separado en tres componentes: modelo, controlador y vista. Cuando se habla de
modelo este es la capa encargada de los datos, es decir tiene mecanismos para acceder
a la información y también para actualizar su estado, mientras que el controlador es la
capa que sirve de enlace entre vista y el modelo y vista se trata del código que nos
permitirá presentar los datos que el modelo nos proporciona.
Este separa por capas la aplicación en modelos, vistas y controladores hace
que su aplicación sea además muy ligera de entender. Es importante saber que MVC
es un patrón enfocado en separar las responsabilidades dentro de una aplicación y es
muy utilizado en la web por su enfoque y las ventajas que ofrece respectos algunas
otras formas o patrones de desarrollo de aplicaciones web.
11. 11
REFERENCIAS BIBLIOGRÁFICAS
Debrauwer, L. (2013). Patrones de diseño en Java [Libro en línea]. Ediciones ENI.
Disponiblehttps://books.google.co.ve/books?id=x8wRTkfnU4kC&pg=PA302
&dq=patron+mvc+-asp&hl=es&sa=X&ved=0ahUKEwi0ov2
KsZfNAhWK5CYKHeJyCZIQ6AEIGjAA#v=onepage&q=patron%20mvc%2
0-asp&f=false [Consulta: 2016, junio 5]
MVC y su importancia en la WEB [Página Web en línea] Disponible:
(http://michelletorres.mx/mvc-y-su-importancia-en-la-web/) [Consulta: 2016,
junio 5]
Patrón de arquitectura Modelo Vista Controlador (MVC) [Página Web en línea]
Disponible: (http://www.lab.inf.uc3m.es/~a0080802/RAI/mvc.html)
[Consulta: 2016, junio 5]