SlideShare una empresa de Scribd logo
5
Lo más leído
13
Lo más leído
16
Lo más leído
Instituto Tecnológico Superior de Calkini en el Estado de
Campeche
Alumno:
Rodolfo Alejandro Uhu Colli
Matricula:
4266
Carrera:
Ingeniería en Sistemas Computacionales
Profesor:
Eduardo Moreno Caballero
Asignatura:
Tópicos de Programación Móvil
Ciclo Escolar 20162017N
Objetivo.
Describir el Modelo Vista, Controlador y la Programación por n capas, para
hacer una comparación de cada uno de estos modelos, conociendo sus
características y así determinar qué modelo es mejor de cierta manera
Procedimiento.
1.- Para empezar a realizar el trabajo documental lo primero fue buscar
información en diferentes fuentes de información ya sea en internet o en libros.
2.- Revise diferentes páginas, algunos artículos y libros para buscar información.
3.- De todo lo que encontré lo guardaba para luego usarlo.
4.- Después de investigar abrí la rúbrica para seguir el formato establecido.
5.- Formule el objetivo de la investigación.
6.- Lo siguiente fue leer lo investigado.
7.- Después de leer lo investigado, formule la pregunta de investigación.
8.- Lo siguiente fue resumir la información resaltando las partes importantes para
anexar como contenido a la investigación.
9.- luego de haber resumido la información investigada, lo siguientes fue
acomodar la información de acuerdo a la rúbrica establecida.
10.- Para casi terminar revise el documento hecho para quitar las faltas que
presentaba y darle el formato que pedía la rúbrica de evaluación.
11.- Al final solo saque mis conclusiones y anexe las fuentes bibliográficas.
Introducción.
Hoy en día las aplicaciones informáticas centran su atención en dos
aspectos fundamentales: cómo lograr construir mejores aplicaciones en menos
tiempo, y cómo utilizar mayor cantidad de estándares en el diseño de las
aplicaciones que permitan mayor reutilización del código y mejores
mantenimientos a los sistemas desarrollados.
La realización de Sistemas de información se ha venido desarrollando en
base a técnicas de programación, principalmente; la programación estructurada,
luego en combinación utilizando la programación por eventos, actualmente se
pudiera decir que se ha llegado a una madurez con la potencialidad de la
programación orientada a objetos por la ventaja en la reutilización de código. En
adición a ellas, se cuenta actualmente con la programación en n capas que hace
uso de la programación orientada a objetos; la cual consiste en separar el código
fuente según sea el rol, responsabilidad y funcionalidad; por ende el desarrollo es
más rápido, y resulta más fácil el darle mantenimiento al sistema.
En este trabajo se hablara de igual manera sobre el patrón de arquitectura
MVC (Modelo Vista Controlador) es un patrón que define la organización
independiente del Modelo, la Vista y el Controlador.
De esta forma, dividimos el sistema en tres capas donde, como explicare más
adelante, tenemos la encapsulación de los datos, la interfaz o vista por otro y por
último la lógica interna o controlador.
Para todo tipo de sistemas y de tecnologías (Java, Ruby, Python, Perl, Flex,
SmallTalk, .Net…)
.
¿Cuál es la finalidad de cada uno de estos modelos y cómo determinar cuál
es el mejor modelo a implementar?
Modelo Vista – Controlador MVC
El Modelo-Vista-Controlador, es considerado un patrón que se originó en la
comunidad Smalltalk para implementar interfaces de usuario en los que las
responsabilidades están bien distribuidas entre los componentes del diseño.
o Modelo
Representa la lógica de negocio de la aplicación, es decir, representa objetos y
sus interacciones del mundo real. Encapsula el modelo de una aplicación en
componentes facilita la depuración, mejora la calidad y favorece la reutilización de
código. Se refiere también a las clases que conforman el aplicativo, y por ende a
la información con la cual el sistema opera;
 Contiene el núcleo de la funcionalidad (dominio) de la aplicación.
 Encapsula el estado de la aplicación.
 No sabe nada / independiente del Controlador y la Vista.
o Controlador
El controlador es responsable de recibir los eventos, determinar el procesador del
evento, invocar al procesador y finalmente provocar la generación de la vista
apropiada. Responde a eventos o peticiones del usuario, e invoca cambios en el
modelo y muy seguramente en la vista. Es la capa central, ya que cuando
desarrollamos con Visual Studio utilizando Web From, llamamos a las vistas como
el punto de partida del aplicativo, con el modelo MVC el centro es el controlador,
ya que al ingresar una URL (Localizador Único de Registro o dirección web), el
usuario no hace referencia a una vista, sino a un controlador, quien a través de un
evento o método llama o muestra la vista indicada.
 Reacciona a la petición del Cliente, ejecutando la acción adecuada y
creando el modelo pertinente
o Vistas
Las vistas son las porciones de la aplicación que presentan salida al usuario.
Como parte de la generación la vista debe presentar al usuario el conjunto de
eventos que puede generar en ese momento concreto. Separar el modelo y la
vista permite la construcción de interfaces con diferentes apariencias.
 Es la presentación del Modelo.
 Puede acceder al Modelo pero nunca cambiar su estado.
 Puede ser notificada cuando hay un cambio de estado en el Modelo
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
 Comunicación
El modelo, la vista y el controlador deben comunicarse de una manera estable los
unos con los otros, de manera que sea coherente con las iteraciones que el
usuario realizara. Como es lógico la comunicación entre la vista y el controlador es
bastante básica pues están diseñados para operar juntos, pero los modelos se
comunican de una manera diferente, un poco más sutil
 Modelo pasivo
No es necesario para el modelo tener alguna disposición a él, simplemente basta
con tener en cuenta su existencia. El modelo no tiene ninguna responsabilidad
para comunicar los cambios a la vista porque ocurren solo por orden del usuario,
por lo que esta función la llevara a cabo el controlador porque será el que
interprete las ordenes de este usuario debido a que solo debe comunicar que algo
ha cambiado. Por esto, el modelo es se encuentra en modo inconsciente y su
participación en este caso es irrisoria.
 Unión del modelo con la vista y el controlador
Como no todos los modelos pueden ser pasivos, necesitamos algo que comunique
al controlador y a la vista, por lo que en este caso, si que necesitamos el modelo,
ya que solo este puede llevar a cabo los cambios necesarios al estado actual en el
que estos se encuentran.
Al contrario que el modelo, que puede ser asociado a múltiples asociaciones con
otras vistas y controladores, cada vista solo puede ser asociada a un único
controlador, por lo que han de tener una variable de tipo controler que notificara a
la vista cuál es su controlador o modelo asignado. De igual manera, el controlador
tiene una variable llamada Viewque apunta a la vista. De esta manera, pueden
enviarse mensajes directos el uno al otro y al mismo tiempo, a su modelo.
Al final, la vista es quien lleva la responsabilidad de establecer la comunicación
entre los elementos de nuestro patrón MVC. Cuando la vista recibe un mensaje
que concierne al modelo o al controlador, lo deja registrado como el modelo con el
cual se comunicara y apunta con la variable controller al controlador asignado,
enviándole al mismo su identificación para que el controlador establezca en su
variable viewel identificador de la vista y así puedan operar conjuntamente. El
responsable de deshacer estas conexiones, seguirá siendo la vista, quitándose a
sí misma como dependiente del modelo y liberando al controlador.
 Fortalezas
 Se presenta la misma información de distintas formas.
 Las vistas y comportamiento de una aplicación deben reflejar las
manipulaciones de los datos de forma inmediata.
 Debería ser fácil cambiar la interfaz de usuario (incluso en tiempo de
ejecución).
 Permitir diferentes estándares de interfaz de usuario o portarla a
otros entornos no debería afectar al código de la aplicación.
 Qué Ventajas trae utilizar el MVC?
 Es posible tener diferentes vistas para un mismo modelo (eg.
representación de un conjunto de datos como una tabla o como un
diagrama de barras).
 Es posible construir nuevas vistas sin necesidad de modificar el
modelo subyacente.
 Proporciona un mecanismo de configuración a componentes
complejos muchos más tratable que el puramente basado en
eventos (el modelo puede verse como una representación
estructurada del estado de la interacción).
 ¿Cuáles son los orígenes del Modelo Vista Controlador?
Basado en información histórica, puede decirse que este fue descrito por primera
vez en 1979 por Trygve Reenskaug, trabajador de Smalltalk, en unos laboratorios
de gran investigación de Xerox.
 Flujo que sigue el control en una implementación general de un MVC
Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que
sigue el control generalmente es el siguiente:
 El usuario interactúa con la interfaz de usuario de alguna forma (por
ejemplo, el usuario pulsa un botón, enlace)
 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.
 El controlador accede al modelo, actualizándolo, posiblemente
modificándolo de forma adecuada a la acción solicitada por el usuario (por
ejemplo, el controlador actualiza el carro de la compra del usuario). Los
controladores complejos están a menudo estructurados usando un patrón
de comando que encapsula las acciones y simplifica su extensión.
 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 (por ejemplo, produce un listado del contenido del carro de la
compra
 La interfaz de usuario espera nuevas interacciones del usuario,
comenzando el ciclo nuevamente.
Programación por “n” de Capas
La programación por capas es una arquitectura cliente-servidor en el que el
objetivo primordial es la separación de la lógica de negocios de la lógica de
diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa
de presentación al usuario.
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en
varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel
requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este
método de programación sería el modelo de interconexión de sistemas abiertos.
Además, permite distribuir el trabajo de creación de una aplicación por niveles; de
este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles,
de forma que basta con conocer la API que existe entre niveles.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas
multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le
confía una misión simple, lo que permite el diseño de arquitecturas escalables
(que pueden ampliarse con facilidad en caso de que las necesidades aumenten).
El diseño más utilizado actualmente es el diseño en tres niveles (o en tres capas).
Capas y niveles
1. Capa de presentación: es la que ve el usuario (también se la denomina "capa
de usuario"), presenta el sistema al usuario, le comunica la información y captura
la información del usuario en un mínimo de proceso (realiza un filtrado previo para
comprobar que no hay errores de formato). También es conocida como interfaz
gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar)
para el usuario. Esta capa se comunica únicamente con la capa de negocio.
2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben
las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina
capa de negocio (e incluso de lógica del negocio) porque es aquí donde se
establecen todas las reglas que deben cumplirse. Esta capa se comunica con la
capa de presentación, para recibir las solicitudes y presentar los resultados, y con
la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar
datos de él. También se consideran aquí los programas de aplicación.
3. Capa de datos: es donde residen los datos y es la encargada de acceder a los
mismos. Está formada por uno o más gestores de bases de datos que realizan
todo el almacenamiento de datos, reciben solicitudes de almacenamiento o
recuperación de información desde la capa de negocio.
Todas estas capas pueden residir en un único computador, si bien lo más usual es
que haya una multitud de computadoras en donde reside la capa de presentación
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de
datos pueden residir en el mismo computador, y si el crecimiento de las
necesidades lo aconseja se pueden separar en dos o más computadoras. Así, si el
tamaño o complejidad de la base de datos aumenta, se puede separar en varias
computadoras los cuales recibirán las peticiones del computador en que resida la
capa de negocio. Si, por el contrario, fuese la complejidad en la capa de negocio lo
que obligase a la separación, esta capa de negocio podría residir en uno o más
computadores que realizarían solicitudes a una única base de datos. En sistemas
muy complejos se llega a tener una serie de computadores sobre los cuales corre
la capa de negocio, y otra serie de computadores sobre los cuales corre la base
de datos.
Diferencia entre capas y niveles
En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan
lo mismo ni son similares.
El término "capa" hace referencia a la forma como una solución es segmentada
desde el punto de vista lógico.
Por ejemplo:
1. Presentación.
2. Lógica de Negocio.
3. Datos.
En cambio, el término "nivel" corresponde a la forma en que las capas lógicas se
encuentran distribuidas de forma física.
Por ejemplo:
A. Una solución de tres capas (presentación, lógica del negocio, datos) que
residen en una solo computadora (Presentación + lógica + datos). Se dice que la
arquitectura de la solución es de tres capas y un nivel.
B. Una solución de tres capas (presentación, lógica del negocio, datos) que
residen en dos computadores (presentación+ lógica por un lado; lógica + datos por
el otro lado). Se dice que la arquitectura de la solución es de tres capas y dos
niveles.
 Ventajas del modelo
 Desarrollos paralelos (en cada capa)
 Aplicaciones más robustas debido al encapsulamiento
 Mantenimiento y soporte más sencillo (es más sencillo cambiar un
componente que modificar una aplicación monolítica)
 Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al
sistema de nueva funcionalidad)
 Alta escalabilidad La principal ventaja de una aplicación distribuida bien
diseñada es su buen escalado, es decir, que puede manejar muchas
peticiones con el mismo rendimiento simplemente añadiendo más
hardware. El crecimiento es casi lineal y no es necesario añadir más
código para conseguir esta escalabilidad.
Como tecnología, las arquitecturas de n-capas proporcionan una gran cantidad de
beneficios para las empresas que necesitan soluciones flexibles y fiables para
resolver complejos problemas inmersos en cambios constantes.
--- ---Comparación de los Modelos.-----
Como podrá observar el en la Capa Común o de Objetos del modelo a N Capas,
tendremos nuestro Modelo del Dominio (los diagramas de clases), que para el
modelo MVC, están en la Capad Modelo.
La Capa de Lógica o RN (Reglas del Negocio), del modelo a N Capas contiene la
validación de los datos a la luz de las RN. Para el modelo MVC, estas se
encuentran en la Capa del Controlador.
La Capa de Acceso a Datos del modelo N Capas, es la que posee el ORM; el cual
estará en la Capa Modelo, junto a la información del aplicativo (las clases) en el
modelo MVC.
La Capa de Vista, juega el mismo papel en ambos modelos, es decir, proporcionar
al usuario la interacción con el aplicativo.
Conclusión.
Para concluir podemos decir que por un lado, MVC es un patrón
arquitectural; define en qué bloques (o capas) estructuramos lógicamente nuestra
aplicación (Modelo, Vista y Controlador), pero además detalla las
responsabilidades exactas de cada capa y la forma que tienen de relacionarse
entre sí.
Por tanto, si programas de acuerdo al patrón MVC estarás dividiendo tu sistema
en tres capas, pero no al contrario: puedes programar en 3 capas sin necesidad
de seguir dicho patrón.
Por otro lado, el estilo de programación de n capas se basa en segmentar un
proyecto o trabajo en varias partes para realizar una programación independiente
en cada una de ellas, facilita la reutilización de capas, ayuda mucho al
programador de aplicaciones para dar mantenimiento al sistema, dado que el
problema que pudiera darse es visto en la capa respectiva.
Referencias.
1. “Modelo Vista Controlador”, disponible en: http://www.neleste.com/modelo-vista-
controlador/
2. Catalani, Exequiel.: “Arquitectura Modelo/Vista/Controlador”, disponible en:
http://exequielc.wordpress.com/2007/08/20/arquitectura-modelovistacontrolador/.
3. “Patrón Modelo-Vista-Controlador“, disponible en:
Http://www.proactiva-calidad.com/java/patrones/mvc.html
4. Figueroa, José.: “Introducción al Modelo MVC y de N Capas“, disponible
en: http://albeverry.blogspot.mx/.
5. “Modelo Vista Controlador“, disponible en:
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
6. “Lógica de Negocio“, disponible en
http://es.wikipedia.org/wiki/L%C3%B3gica_de_negocio
7. “Framework“, disponible en http://es.wikipedia.org/wiki/Framework“
8. Introducción a MVC con PHP, Primera Parte“¨, disponible en
http://www.jourmoly.com.ar/introduccion-a-mvc-con-php-primera-parte/

Más contenido relacionado

PPTX
2 2 estilos arquitectonicos
landeta_p
 
PPTX
Requerimiento funcional y no funcional
CristobalFicaV
 
PPTX
Vistas Arquitectonicas Ingenieria de Software
Roberth Loaiza
 
PPTX
Casos de Uso ejercicios
Walter Chacon
 
PPT
Modelos de dominio
Juan Pablo Bustos Thames
 
PPTX
8.1.- IPO. Estilos y paradigmas de interacción
DCU_MPIUA
 
PDF
analisis de aplicaciones web
Jose Angel Campos Alejo
 
PDF
Requisitos funcionales y no funcionales
Rene Guaman-Quinche
 
2 2 estilos arquitectonicos
landeta_p
 
Requerimiento funcional y no funcional
CristobalFicaV
 
Vistas Arquitectonicas Ingenieria de Software
Roberth Loaiza
 
Casos de Uso ejercicios
Walter Chacon
 
Modelos de dominio
Juan Pablo Bustos Thames
 
8.1.- IPO. Estilos y paradigmas de interacción
DCU_MPIUA
 
analisis de aplicaciones web
Jose Angel Campos Alejo
 
Requisitos funcionales y no funcionales
Rene Guaman-Quinche
 

La actualidad más candente (20)

PPTX
Fases del rup
MaraJosQuilcaguanoTo
 
PPTX
Aseguramiento de la Calidad del Software II
Tensor
 
PPSX
Patrones de diseño(presentación 7)
programadorjavablog
 
PPTX
Metodología RUP
Jorge Cortés Alvarez
 
PPTX
2 1 vistas arquitectonicas
landeta_p
 
PPTX
Diagramas de estados
still01
 
PPTX
Fundamentos de Calidad del Software - Modelos y Estándares
Luis Eduardo Pelaez Valencia
 
DOCX
Pruebas de sistemas y aceptacion
Abner Gerardo
 
PDF
Concepto y extensiones de negocio de Eriksson Penker
Marcos Omar Cruz Ortrega
 
DOC
Modelo componentes
martin
 
PPT
Modelamiento De Negocio
Kudos S.A.S
 
PPT
Arquitectura 3 Capas
Fani Calle
 
DOCX
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
Jesús Navarro
 
DOC
Requerimientos norma ieee830
Alexander Chaunay Paladines
 
PDF
Ingeniería de requisitos e ingeniería de requerimientos
Cesar Prado
 
PDF
Diseño de Arquitectura ACDM
Ernesto Maya
 
PDF
Sqa ejemplo
Jose Limon
 
PPTX
Modelos de software ventajas y desventajas
Edith Carreño
 
PPT
Unidad 1.3 Analisis De Requerimientos
Sergio Sanchez
 
PPTX
Ventajas y desventajas de moprosoft
Chuyito Alvarado
 
Fases del rup
MaraJosQuilcaguanoTo
 
Aseguramiento de la Calidad del Software II
Tensor
 
Patrones de diseño(presentación 7)
programadorjavablog
 
Metodología RUP
Jorge Cortés Alvarez
 
2 1 vistas arquitectonicas
landeta_p
 
Diagramas de estados
still01
 
Fundamentos de Calidad del Software - Modelos y Estándares
Luis Eduardo Pelaez Valencia
 
Pruebas de sistemas y aceptacion
Abner Gerardo
 
Concepto y extensiones de negocio de Eriksson Penker
Marcos Omar Cruz Ortrega
 
Modelo componentes
martin
 
Modelamiento De Negocio
Kudos S.A.S
 
Arquitectura 3 Capas
Fani Calle
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
Jesús Navarro
 
Requerimientos norma ieee830
Alexander Chaunay Paladines
 
Ingeniería de requisitos e ingeniería de requerimientos
Cesar Prado
 
Diseño de Arquitectura ACDM
Ernesto Maya
 
Sqa ejemplo
Jose Limon
 
Modelos de software ventajas y desventajas
Edith Carreño
 
Unidad 1.3 Analisis De Requerimientos
Sergio Sanchez
 
Ventajas y desventajas de moprosoft
Chuyito Alvarado
 
Publicidad

Similar a Modelo vista controlador vas Programacion por n capas (20)

PPTX
modelo MVC.pptx
Ram Vazquez
 
ODP
Arquitectura Mvc
Lupita Lopez Glez
 
PDF
modelo vista controlador
com2merwil
 
PPTX
Modelo vista controlador
Emilio Sarabia
 
PPTX
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
Luis Fernando Aguas Bucheli
 
PDF
patrón MVC.pdf
German Zarza
 
PPTX
S6-PD2-Modelo Vista Controlador
Luis Fernando Aguas Bucheli
 
PPTX
MVC - (Spanish)
Senior Dev
 
PPTX
MODELO VISTA CONTROLADOR
René Pilataxi
 
PPTX
Modelo vistacontrolador
René Pilataxi
 
PPTX
Modelo vistacontrolador
René Pilataxi
 
PPTX
2-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
PDF
Modelo vista controlador #ihcpfgigs_Diseñoweb
Pierina G. Abad
 
PDF
PPT Crear tablas y utilizar marquesinas.pdf
aldairjosue147
 
PPTX
S6-PD2-3.2. MVC
Luis Fernando Aguas Bucheli
 
PDF
Modelo, vista, controlador
Cecy Villalta
 
modelo MVC.pptx
Ram Vazquez
 
Arquitectura Mvc
Lupita Lopez Glez
 
modelo vista controlador
com2merwil
 
Modelo vista controlador
Emilio Sarabia
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
Luis Fernando Aguas Bucheli
 
patrón MVC.pdf
German Zarza
 
S6-PD2-Modelo Vista Controlador
Luis Fernando Aguas Bucheli
 
MVC - (Spanish)
Senior Dev
 
MODELO VISTA CONTROLADOR
René Pilataxi
 
Modelo vistacontrolador
René Pilataxi
 
Modelo vistacontrolador
René Pilataxi
 
2-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Pierina G. Abad
 
PPT Crear tablas y utilizar marquesinas.pdf
aldairjosue147
 
Modelo, vista, controlador
Cecy Villalta
 
Publicidad

Último (10)

PPTX
Algoritmos de localizacion de Robots móviles
yrosascunam
 
PPTX
Evaluación de la arquitectura de software.pptx
DanielMartinez382863
 
PPT
Cap. 2.DeSistemasOperativosMonopuestoppt
davidperez4125081
 
PPTX
Taller de ROBOTICA- clase sobre arduino - 1.pptx
sotosanmartinfrancis
 
PPTX
QUINTO BÁSICO 5 DE MAYO- clases de algoritmos.pptx
sotosanmartinfrancis
 
PPTX
La Inteligencia Artificial en la Vida Cotidiana
Romeo Santos
 
PPTX
Los Atributos de calidad del software.pptx
DanielMartinez382863
 
PDF
UML (Lenguaje unificado Modelado) como estandar para proyectos
somespark13
 
PDF
Descargar Micromundos Pro y proceso de instalación
AngelitoDeLaNoche
 
PPT
Cap. 1DESistemasOperativosMonopuesto.ppt
davidperez4125081
 
Algoritmos de localizacion de Robots móviles
yrosascunam
 
Evaluación de la arquitectura de software.pptx
DanielMartinez382863
 
Cap. 2.DeSistemasOperativosMonopuestoppt
davidperez4125081
 
Taller de ROBOTICA- clase sobre arduino - 1.pptx
sotosanmartinfrancis
 
QUINTO BÁSICO 5 DE MAYO- clases de algoritmos.pptx
sotosanmartinfrancis
 
La Inteligencia Artificial en la Vida Cotidiana
Romeo Santos
 
Los Atributos de calidad del software.pptx
DanielMartinez382863
 
UML (Lenguaje unificado Modelado) como estandar para proyectos
somespark13
 
Descargar Micromundos Pro y proceso de instalación
AngelitoDeLaNoche
 
Cap. 1DESistemasOperativosMonopuesto.ppt
davidperez4125081
 

Modelo vista controlador vas Programacion por n capas

  • 1. Instituto Tecnológico Superior de Calkini en el Estado de Campeche Alumno: Rodolfo Alejandro Uhu Colli Matricula: 4266 Carrera: Ingeniería en Sistemas Computacionales Profesor: Eduardo Moreno Caballero Asignatura: Tópicos de Programación Móvil Ciclo Escolar 20162017N
  • 2. Objetivo. Describir el Modelo Vista, Controlador y la Programación por n capas, para hacer una comparación de cada uno de estos modelos, conociendo sus características y así determinar qué modelo es mejor de cierta manera
  • 3. Procedimiento. 1.- Para empezar a realizar el trabajo documental lo primero fue buscar información en diferentes fuentes de información ya sea en internet o en libros. 2.- Revise diferentes páginas, algunos artículos y libros para buscar información. 3.- De todo lo que encontré lo guardaba para luego usarlo. 4.- Después de investigar abrí la rúbrica para seguir el formato establecido. 5.- Formule el objetivo de la investigación. 6.- Lo siguiente fue leer lo investigado. 7.- Después de leer lo investigado, formule la pregunta de investigación. 8.- Lo siguiente fue resumir la información resaltando las partes importantes para anexar como contenido a la investigación. 9.- luego de haber resumido la información investigada, lo siguientes fue acomodar la información de acuerdo a la rúbrica establecida. 10.- Para casi terminar revise el documento hecho para quitar las faltas que presentaba y darle el formato que pedía la rúbrica de evaluación. 11.- Al final solo saque mis conclusiones y anexe las fuentes bibliográficas.
  • 4. Introducción. Hoy en día las aplicaciones informáticas centran su atención en dos aspectos fundamentales: cómo lograr construir mejores aplicaciones en menos tiempo, y cómo utilizar mayor cantidad de estándares en el diseño de las aplicaciones que permitan mayor reutilización del código y mejores mantenimientos a los sistemas desarrollados. La realización de Sistemas de información se ha venido desarrollando en base a técnicas de programación, principalmente; la programación estructurada, luego en combinación utilizando la programación por eventos, actualmente se pudiera decir que se ha llegado a una madurez con la potencialidad de la programación orientada a objetos por la ventaja en la reutilización de código. En adición a ellas, se cuenta actualmente con la programación en n capas que hace uso de la programación orientada a objetos; la cual consiste en separar el código fuente según sea el rol, responsabilidad y funcionalidad; por ende el desarrollo es más rápido, y resulta más fácil el darle mantenimiento al sistema. En este trabajo se hablara de igual manera sobre el patrón de arquitectura MVC (Modelo Vista Controlador) es un patrón que define la organización independiente del Modelo, la Vista y el Controlador. De esta forma, dividimos el sistema en tres capas donde, como explicare más adelante, tenemos la encapsulación de los datos, la interfaz o vista por otro y por último la lógica interna o controlador. Para todo tipo de sistemas y de tecnologías (Java, Ruby, Python, Perl, Flex, SmallTalk, .Net…) .
  • 5. ¿Cuál es la finalidad de cada uno de estos modelos y cómo determinar cuál es el mejor modelo a implementar? Modelo Vista – Controlador MVC El Modelo-Vista-Controlador, es considerado un patrón que se originó en la comunidad Smalltalk para implementar interfaces de usuario en los que las responsabilidades están bien distribuidas entre los componentes del diseño. o Modelo Representa la lógica de negocio de la aplicación, es decir, representa objetos y sus interacciones del mundo real. Encapsula el modelo de una aplicación en componentes facilita la depuración, mejora la calidad y favorece la reutilización de código. Se refiere también a las clases que conforman el aplicativo, y por ende a la información con la cual el sistema opera;  Contiene el núcleo de la funcionalidad (dominio) de la aplicación.  Encapsula el estado de la aplicación.  No sabe nada / independiente del Controlador y la Vista. o Controlador El controlador es responsable de recibir los eventos, determinar el procesador del evento, invocar al procesador y finalmente provocar la generación de la vista apropiada. Responde a eventos o peticiones del usuario, e invoca cambios en el modelo y muy seguramente en la vista. Es la capa central, ya que cuando
  • 6. desarrollamos con Visual Studio utilizando Web From, llamamos a las vistas como el punto de partida del aplicativo, con el modelo MVC el centro es el controlador, ya que al ingresar una URL (Localizador Único de Registro o dirección web), el usuario no hace referencia a una vista, sino a un controlador, quien a través de un evento o método llama o muestra la vista indicada.  Reacciona a la petición del Cliente, ejecutando la acción adecuada y creando el modelo pertinente o Vistas Las vistas son las porciones de la aplicación que presentan salida al usuario. Como parte de la generación la vista debe presentar al usuario el conjunto de eventos que puede generar en ese momento concreto. Separar el modelo y la vista permite la construcción de interfaces con diferentes apariencias.  Es la presentación del Modelo.  Puede acceder al Modelo pero nunca cambiar su estado.  Puede ser notificada cuando hay un cambio de estado en el Modelo 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  Comunicación El modelo, la vista y el controlador deben comunicarse de una manera estable los unos con los otros, de manera que sea coherente con las iteraciones que el usuario realizara. Como es lógico la comunicación entre la vista y el controlador es bastante básica pues están diseñados para operar juntos, pero los modelos se comunican de una manera diferente, un poco más sutil
  • 7.  Modelo pasivo No es necesario para el modelo tener alguna disposición a él, simplemente basta con tener en cuenta su existencia. El modelo no tiene ninguna responsabilidad para comunicar los cambios a la vista porque ocurren solo por orden del usuario, por lo que esta función la llevara a cabo el controlador porque será el que interprete las ordenes de este usuario debido a que solo debe comunicar que algo ha cambiado. Por esto, el modelo es se encuentra en modo inconsciente y su participación en este caso es irrisoria.  Unión del modelo con la vista y el controlador Como no todos los modelos pueden ser pasivos, necesitamos algo que comunique al controlador y a la vista, por lo que en este caso, si que necesitamos el modelo, ya que solo este puede llevar a cabo los cambios necesarios al estado actual en el que estos se encuentran. Al contrario que el modelo, que puede ser asociado a múltiples asociaciones con otras vistas y controladores, cada vista solo puede ser asociada a un único controlador, por lo que han de tener una variable de tipo controler que notificara a la vista cuál es su controlador o modelo asignado. De igual manera, el controlador tiene una variable llamada Viewque apunta a la vista. De esta manera, pueden enviarse mensajes directos el uno al otro y al mismo tiempo, a su modelo. Al final, la vista es quien lleva la responsabilidad de establecer la comunicación entre los elementos de nuestro patrón MVC. Cuando la vista recibe un mensaje que concierne al modelo o al controlador, lo deja registrado como el modelo con el cual se comunicara y apunta con la variable controller al controlador asignado, enviándole al mismo su identificación para que el controlador establezca en su variable viewel identificador de la vista y así puedan operar conjuntamente. El responsable de deshacer estas conexiones, seguirá siendo la vista, quitándose a sí misma como dependiente del modelo y liberando al controlador.
  • 8.  Fortalezas  Se presenta la misma información de distintas formas.  Las vistas y comportamiento de una aplicación deben reflejar las manipulaciones de los datos de forma inmediata.  Debería ser fácil cambiar la interfaz de usuario (incluso en tiempo de ejecución).  Permitir diferentes estándares de interfaz de usuario o portarla a otros entornos no debería afectar al código de la aplicación.  Qué Ventajas trae utilizar el MVC?  Es posible tener diferentes vistas para un mismo modelo (eg. representación de un conjunto de datos como una tabla o como un diagrama de barras).  Es posible construir nuevas vistas sin necesidad de modificar el modelo subyacente.  Proporciona un mecanismo de configuración a componentes complejos muchos más tratable que el puramente basado en eventos (el modelo puede verse como una representación estructurada del estado de la interacción).  ¿Cuáles son los orígenes del Modelo Vista Controlador? Basado en información histórica, puede decirse que este fue descrito por primera vez en 1979 por Trygve Reenskaug, trabajador de Smalltalk, en unos laboratorios de gran investigación de Xerox.  Flujo que sigue el control en una implementación general de un MVC Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:  El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace)
  • 9.  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.  El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.  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 (por ejemplo, produce un listado del contenido del carro de la compra  La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente. Programación por “n” de Capas La programación por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería el modelo de interconexión de sistemas abiertos. Además, permite distribuir el trabajo de creación de una aplicación por niveles; de este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles,
  • 10. de forma que basta con conocer la API que existe entre niveles. En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten). El diseño más utilizado actualmente es el diseño en tres niveles (o en tres capas). Capas y niveles 1. Capa de presentación: es la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio. 2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina
  • 11. capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación. 3. Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. Todas estas capas pueden residir en un único computador, si bien lo más usual es que haya una multitud de computadoras en donde reside la capa de presentación (son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo computador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o más computadoras. Así, si el tamaño o complejidad de la base de datos aumenta, se puede separar en varias computadoras los cuales recibirán las peticiones del computador en que resida la capa de negocio. Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la separación, esta capa de negocio podría residir en uno o más computadores que realizarían solicitudes a una única base de datos. En sistemas muy complejos se llega a tener una serie de computadores sobre los cuales corre la capa de negocio, y otra serie de computadores sobre los cuales corre la base de datos. Diferencia entre capas y niveles En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan lo mismo ni son similares. El término "capa" hace referencia a la forma como una solución es segmentada
  • 12. desde el punto de vista lógico. Por ejemplo: 1. Presentación. 2. Lógica de Negocio. 3. Datos. En cambio, el término "nivel" corresponde a la forma en que las capas lógicas se encuentran distribuidas de forma física. Por ejemplo: A. Una solución de tres capas (presentación, lógica del negocio, datos) que residen en una solo computadora (Presentación + lógica + datos). Se dice que la arquitectura de la solución es de tres capas y un nivel. B. Una solución de tres capas (presentación, lógica del negocio, datos) que residen en dos computadores (presentación+ lógica por un lado; lógica + datos por el otro lado). Se dice que la arquitectura de la solución es de tres capas y dos niveles.  Ventajas del modelo  Desarrollos paralelos (en cada capa)  Aplicaciones más robustas debido al encapsulamiento  Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una aplicación monolítica)  Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad)
  • 13.  Alta escalabilidad La principal ventaja de una aplicación distribuida bien diseñada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más hardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta escalabilidad. Como tecnología, las arquitecturas de n-capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cambios constantes. --- ---Comparación de los Modelos.----- Como podrá observar el en la Capa Común o de Objetos del modelo a N Capas, tendremos nuestro Modelo del Dominio (los diagramas de clases), que para el modelo MVC, están en la Capad Modelo. La Capa de Lógica o RN (Reglas del Negocio), del modelo a N Capas contiene la validación de los datos a la luz de las RN. Para el modelo MVC, estas se encuentran en la Capa del Controlador.
  • 14. La Capa de Acceso a Datos del modelo N Capas, es la que posee el ORM; el cual estará en la Capa Modelo, junto a la información del aplicativo (las clases) en el modelo MVC. La Capa de Vista, juega el mismo papel en ambos modelos, es decir, proporcionar al usuario la interacción con el aplicativo.
  • 15. Conclusión. Para concluir podemos decir que por un lado, MVC es un patrón arquitectural; define en qué bloques (o capas) estructuramos lógicamente nuestra aplicación (Modelo, Vista y Controlador), pero además detalla las responsabilidades exactas de cada capa y la forma que tienen de relacionarse entre sí. Por tanto, si programas de acuerdo al patrón MVC estarás dividiendo tu sistema en tres capas, pero no al contrario: puedes programar en 3 capas sin necesidad de seguir dicho patrón. Por otro lado, el estilo de programación de n capas se basa en segmentar un proyecto o trabajo en varias partes para realizar una programación independiente en cada una de ellas, facilita la reutilización de capas, ayuda mucho al programador de aplicaciones para dar mantenimiento al sistema, dado que el problema que pudiera darse es visto en la capa respectiva.
  • 16. Referencias. 1. “Modelo Vista Controlador”, disponible en: http://www.neleste.com/modelo-vista- controlador/ 2. Catalani, Exequiel.: “Arquitectura Modelo/Vista/Controlador”, disponible en: http://exequielc.wordpress.com/2007/08/20/arquitectura-modelovistacontrolador/. 3. “Patrón Modelo-Vista-Controlador“, disponible en: Http://www.proactiva-calidad.com/java/patrones/mvc.html 4. Figueroa, José.: “Introducción al Modelo MVC y de N Capas“, disponible en: http://albeverry.blogspot.mx/. 5. “Modelo Vista Controlador“, disponible en: http://es.wikipedia.org/wiki/Modelo_Vista_Controlador 6. “Lógica de Negocio“, disponible en http://es.wikipedia.org/wiki/L%C3%B3gica_de_negocio 7. “Framework“, disponible en http://es.wikipedia.org/wiki/Framework“ 8. Introducción a MVC con PHP, Primera Parte“¨, disponible en http://www.jourmoly.com.ar/introduccion-a-mvc-con-php-primera-parte/