Pihm 1
Pihm 1
Pihm 1
CHAPINGO
Profesor:
Dr. Luis Arturo Soriano Avendaño
Alumno:
Adriel Abnal Narvaez
Grado y Grupo:
6° 6
Informe escrito N. 1
31/07/2020
PÁGINA | 2
Introducción
Los patrones de diseño son una importante técnica para facilitar la construcción de software
orientado a objetos. Los medios de programación deberían incluir herramientas que faciliten el uso
de los patrones de diseño. Para poder integrar los patrones de diseño en esas herramientas es
necesario disponer de una arquitectura flexible que permita utilizarlos eficientemente.
La importancia de los patrones de diseño se encuentra en el aprovechamiento de la experiencia de
los expertos que han identificado y documentado estrategias para la solución de problemas
específicos. Sin embargo, a pesar de su aceptación, son pocos los entornos de desarrollo actuales
que dan soporte al trabajo con patrones de diseño.
Por otro lado, el concepto de arquitectura (orientado a software para este trabajo) se refiere a la
estructuración del sistema que, idealmente se crea en etapas de desarrollo. El no crear este diseño
en etapas tempranas del desarrollo puede limitar el producto final y no satisfacer las necesidades
de los clientes. Aun así, este concepto tiende a ser malentendido y la falta de compresión al respecto
de sus principios frecuentemente afecta de manera negativa en la construcción de sistemas de
software.
El objetivo de este informe es presentar como las tecnologías de diseño que interactúan con
usuarios utilizadas en la actualidad requieren de patrones de diseño de arquitectura para poder
satisfacer los atributos de calidad solicitadas por los usuarios y servir como guía de desarrollo para
nuevas tecnologías. Todo ello a través del estudio de los elementos que constituyen a las
tecnologías de diseño, así como de los modelos de arquitectura de software más empleados.
PÁGINA | 3
Desarrollo
Los patrones de diseño son una importante técnica que facilita la construcción de software
orientado a objetos. Para poder integrar los patrones de diseño es necesario conocer algunos
elementos que constituyen a las tecnologías de diseño utilizadas en la actualidad.
Tenemos a los motores de base de datos, una base de datos se define como; “Almacenamiento de
un conjunto de información organizada, para acceder a ella se necesita de programas o
aplicaciones”(1) ; entonces un motor de ellos es el servicio principal para almacenar, procesar y
proteger los datos proporcionando un acceso controlado. Los usuarios pueden interactuar con los
motores de bases de datos a través de aplicaciones que son programas informáticos diseñados
como herramientas para realizar operaciones específicas, estas pueden ser de escritorio, web o
para móvil.
Dichos programas informáticos o aplicaciones se crean a partir de lenguajes de programación, estos
podríamos decir que son cualquier notación para la descripción de algoritmos y estructuras de
datos que, generalmente, se encuentran en notación de un lenguaje de alto nivel y necesita ser
interpretado por una maquina o dispositivo que se emplea en forma de un lenguaje de bajo nivel,
esta traducción es la definición de una herramienta llamada compilador.
Como se ha mencionado, las aplicaciones pueden ser para la web como ejemplo tenemos a
Facebook, Twitter, LinkedIn, entre otras, que sirven para acceder a los recursos de conocimiento
disponibles en internet utilizando un navegador. Las tecnologías para el desarrollo de software
web se dividen en: (2)
• Frontend: son aquellas tecnologías de desarrollo web del lado del cliente, es decir, las que
corren en el navegador del usuario y que son básicamente tres: HTML, CSS y JavaScript. El
frontend se enfoca en el usuario, en todo con lo que puede interactuar y lo que ve mientras
navega.
• Backend: es aquello que se encuentra del lado del servidor y se encarga de interactuar con
bases de datos, verificar maniobras de sesiones de usuarios, montar la página en un servidor y
servir todas las vistas creadas por el desarrollador frontend.
Entre los lenguajes más utilizados tenemos (Tabla 1):
PÁGINA | 4
Patrones de diseño de arquitectura.
Podemos definir un patrón de diseño como un boceto, base o esqueleto de soluciones a problemas
comunes o recurrentes en desarrollo de software. En otras palabras, es una solución probada que
se ajusta a las necesidades de determinado tipo de sistema o aplicación. Los patrones se dividen
en distintos grupos según el tipo de problema que resuelven los cuales son (Esquema 1):
Esquema 1
PÁGINA | 5
Modelo vista controlador
El MVC es un modelo de arquitectura de software utilizada para separar el código por sus distintas
responsabilidades, manteniendo distintas capas que se encargan de hacer una tarea muy concreta.
Es usado generalmente en sistemas donde se requiere el uso de interfaces de usuario(4).
La arquitectura MVC propone la separación de los componentes de una aplicación en tres grupos
(o capas) principales: el modelo, la vista, y el controlador.
• Modelo: contiene principalmente las entidades que representan el dominio, la lógica de negocio,
y los mecanismos de persistencia de nuestro sistema.
• Vista: encontramos los componentes responsables de generar la interfaz con el exterior, por
regla general, aunque no exclusivamente, el UI de nuestra aplicación.
• Controlador: se encuentran los componentes capaces de procesar las interacciones del usuario,
consultar o actualizar el Modelo, y seleccionar las Vistas apropiadas en cada momento.
Diseño y modelo mediante UML
UML refiere a un estándar para crear esquemas, diagramas y documentación relativa a los
desarrollos de software. Una parte del UML detalla, entonces, una abstracción con significado de
un lenguaje para expresar otros modelos.
El modelado no es más que la construcción de un modelo a partir de una especificación. Un modelo
es una abstracción de algo, que se elabora para comprender ese algo antes de construirlo; el
modelo omite detalles que no resultan esenciales para la comprensión del original y por lo tanto
facilita dicha comprensión(5).
Conclusión
Aunque todos los patrones de diseño que se han definido en este informe comunican la imagen de
un sistema, no son arquitecturas en sí. El mundo de los de los desarrolladores es largo y complejo,
pero la arquitectura de los sistemas y aplicaciones es vital para su funcionamiento. La arquitectura
es quien diseña todas las entrañas del software, desde la estructura de sus datos hasta los
algoritmos permitiendo crear bases solidas para los proyectos, definir una plataforma escalable y
mejorar el rendimiento además de la calidad de los productos finales.
PÁGINA | 6
Bibliografía y referencias.
• (1) Jim, C. A., Olmos, R. S., Mel, J., Ruizdiaz, J. C., & Sarmiento, J. C. (2017, 11 mayo). Estudio
comparativo entre motores de base de datos Oracle 12C y DB2 como apoyo a los
administradores de base de datos | Investigación y desarrollo en TIC. Investigación y desarrollo
en TIC. https://revistas.unisimon.edu.co/index.php/identic/article/view/2514
• (2) (Tabla 1)Mestres, A. F. (s. f.). Introducción al frontend y backend. Tecnologías y herramientas
para el desarrollo web. Recuperado 30 de julio de 2020, de
http://cv.uoc.edu/annotation/a9c35c372dcee6e6b92afad6993cd048/620334/PID_002502
14/PID_00250214.html
• (Tabla 1)1&1 IONOS Inc. (2020, 8 julio). Lenguajes de programación web. IONOS Digital Guide.
https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/lenguajes-de-programacion-
web/
• (Esquema 1) L. (2018, 1 septiembre). Patrones de Diseño. Dominio Tic.
http://dominiotic.com/patrones-de-diseno/
• (3) Cervantes, H. (s. f.). Arquitectura de Software. SG Buzz. Recuperado 30 de julio de 2020, de
https://sg.com.mx/revista/27/arquitectura-software
• (Tabla 2) C. (2020, 27 febrero). Patrones comunes de arquitecturas de software. Conasa.
https://conasa.grupocibernos.com/blog/patrones-comunes-de-arquitecturas-de-software
• (4) Aguilar, J. M. (2019, 15 octubre). ¿Qué es el patrón MVC en programación y por qué es útil?
campusMVP.es.https://www.campusmvp.es/recursos/post/que-es-el-patron-mvc-en-
programacion-y-por-que-es-util.aspx
• (5) Krall, C. (s. f.). ¿Qué es y para qué sirve UML? Versiones de UML (Lenguaje Unificado de
Modelado). Tipos de diagramas UML. www.aprenderaprogramar.com. Recuperado 30 de julio
de 2020.
• C. (2020, 27 febrero). Patrones comunes de arquitecturas de software. Conasa.
https://conasa.grupocibernos.com/blog/patrones-comunes-de-arquitecturas-de-software
• Capdevila, J. P. (s. f.). Las Tecnologías Web. tecnoweb2.com. Recuperado 30 de julio de 2020,
de https://tecnoweb2.com/tecnologias-web
• Compiladores. (s. f.). Junta de Andalucia. Recuperado 30 de julio de 2020, de
http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdi
dactico_administrador_servidores/Content/1-so/3-AnexoCompiladores.pdf
• Cultura tecnológica: ¿Qué son las aplicaciones o programas? (s. f.). GCFGlobal.org. Recuperado
30 de julio de 2020, de https://edu.gcfglobal.org/es/cultura-tecnologica/que-son-las-
aplicaciones-o-programas/1/
• Hernández, A. R. (2000, febrero). Antología de Lenguajes de Programación. UANL.
http://eprints.uanl.mx/7605/1/1020130072.PDF
• Krall, C. (s. f.). ¿Qué es y para qué sirve UML? Versiones de UML (Lenguaje Unificado de
Modelado). Tipos de diagramas UML. www.aprenderaprogramar.com. Recuperado 30 de julio
de 2020, de
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=688:i
que-es-y-para-que-sirve-uml-versiones-de-uml-lenguaje-unificado-de-modelado-tipos-de-
diagramas-uml&catid=46&Itemid=163
PÁGINA | 7
• PATRONES DE ARQUITECTURA Y DISEÑO DE SOFTWARE. (2018, 14 agosto). Software Web &
Apps. https://www.desarrollodepaginasweb.com.mx/patrones-de-arquitectura-de-software/
• Rodriguez, G. (2013, 25 octubre). MOTORES DE BASE DE DATOS. prezi.com.
https://prezi.com/ry9ckaivktcx/motores-de-base-de-datos/?fallback=1
PÁGINA | 8