Logo Studenta

DMMS_U2_A1_ALMM

¡Estudia con miles de materiales!

Vista previa del material en texto

Universidad Abierta y a Distancia
de México
División de Ciencias Exactas, Ingeniería y Tecnología
Desarrollo de software
Semestre: 2023-1
Asignatura: Métodos y modelos de desarrollo de software
Unidad de aprendizaje: 2
Actividad: 1
Ciudad de México, Enero del 2023
Diseño: DL-CPL
Contenido
INSTRUCCIONES	3
INTRODUCCIÓN	3
DESARROLLO DE LA ACTIVIDAD	4
CONCLUSION	5
REFERENCIAS BIBLIOGRÁFICAS	6
INSTRUCCIONES
1. Realiza una introducción donde argumentes la relación que tienen los modelos de diseño con el concepto de arquitectura de software. Extensión mínima de 100 y máximo de 150 palabras. 
2. Investiga e identifica con apoyo de las fuentes de consulta sugeridas en el material de la unidad 2, los 4 modelos de diseño (repositorios, cliente servidor, capas y control centralizado), incluyendo lo siguiente elementos de cada uno: 
a) Definición del modelo 
b) Ventajas (mínimo 2) 
c) Desventajas (mínimo 2)
d) Ejemplo de aplicación 
3. Con la información que investigaste del punto 2, contrasta en un cuadro comparativo la definición, ventajas, desventajas y ejemplo de aplicación de cada uno de los 4 modelos de diseño, permitiendo comparar sus características más importantes. 
4. Redacta una conclusión donde argumentes ¿qué modelo de diseño consideras mejor?, ¿por qué los modelos de diseño son considerados de tipo arquitectónico? Justifica tu respuesta. En tu argumentación incluye al menos una cita textual. Extensión mínima de 200 y máximo de 250 palabras (para la extensión de palabras no se considera las citas textuales). 
5. Enuncia citas textuales que respalden el desarrollo y conclusiones de tu actividad (mínimo 1 y máximo 3 citas textuales) y sus referencias bibliográficas (mínimo 1 y máximo 3) en formato APA séptima edición. 
6. Consulta el instrumento de evaluación de la actividad. Envía el archivo a tu docente en línea para recibir retroalimentación mediante la herramienta Tarea. Espera y atiende la retroalimentación correspondiente.
INTRODUCCION
Los modelos de diseño son esenciales para el desarrollo de software, ya que establecen la estructura y organización del código de un programa. Estos modelos se relacionan con el concepto de arquitectura de software, la cual se encarga de definir la estructura del software, su comportamiento y cómo se relaciona con el hardware. Los modelos de diseño son considerados de tipo arquitectónico porque establecen la estructura básica del software y cómo se comunican sus componentes.
Existen varios modelos de diseño utilizados en el desarrollo de software, cada uno con sus propias características, ventajas y desventajas. En este caso, se utilizará un ejemplo de un software en la nube que permita a los usuarios consultar y pagar recibos de luz eléctrica en línea, para analizar los cuatro modelos de diseño más comunes: Repositorios, Cliente-Servidor, Capas y Control Centralizado.
DESARROLLO DE LA ACTIVIDAD
Modelos de diseño de software:
a) Repositorios: Es un modelo de diseño en el que un único componente centralizado se encarga de almacenar y gestionar todos los datos de la aplicación. b) Ventajas:
· Facilita la integración de diferentes módulos y equipos en el desarrollo de software.
· Permite un mayor control y seguimiento de las versiones del software. c) Desventajas:
· Depende en gran medida del servidor centralizado, lo que puede ocasionar problemas de disponibilidad y rendimiento.
· Puede ser complicado de mantener y actualizar debido a la gran cantidad de dependencias. d) Ejemplo de aplicación: El modelo de repositorio se utiliza comúnmente en sistemas de control de versiones como Git o Subversion.
a) Cliente-servidor: Es un modelo de diseño en el que un conjunto de clientes acceden a los servicios de un servidor centralizado para compartir recursos y datos. b) Ventajas:
· Permite una gestión más centralizada de la información y los recursos.
· Facilita el mantenimiento y la actualización del software al estar centralizado en un solo servidor. c) Desventajas:
· Puede generar cuellos de botella y problemas de rendimiento debido a la concentración de la carga en el servidor.
· Si el servidor falla, toda la aplicación puede verse afectada. d) Ejemplo de aplicación: Las aplicaciones web basadas en la arquitectura cliente-servidor, donde los navegadores web son los clientes y los servidores proporcionan los datos y los recursos necesarios.
a) Capas: Es un modelo de diseño en el que los diferentes componentes del software se organizan en capas lógicas, cada una de las cuales proporciona servicios a la capa superior. b) Ventajas:
· Permite una mayor modularidad y escalabilidad del software.
· Facilita la reutilización de componentes en diferentes partes de la aplicación. c) Desventajas:
· Puede generar problemas de dependencias y complejidad si las capas no están bien definidas y separadas.
· Puede haber un mayor costo de desarrollo inicial para implementar la estructura de capas. d) Ejemplo de aplicación: El modelo de capas se utiliza en muchos sistemas empresariales para separar la lógica de negocio de la interfaz de usuario y la capa de datos.
a) Control centralizado: Es un modelo de diseño en el que un único componente se encarga de coordinar y controlar todas las operaciones del software. b) Ventajas:
· Permite un mayor control y seguimiento de las operaciones y procesos del software.
· Facilita la implementación de políticas de seguridad y privacidad. c) Desventajas:
· Puede generar problemas de escalabilidad y rendimiento si el control centralizado se convierte en un cuello de botella.
· Puede ser complicado de mantener y actualizar debido a la gran cantidad de dependencias. d) Ejemplo de aplicación: El modelo de control centralizado se utiliza comúnmente en sistemas de gestión de procesos empresariales.:
	Modelo
	Definición
	Ventajas
	Desventajas
	Ejemplo de aplicación
	Repositorios
	Un único componente centralizado se encarga de almacenar y gestionar todos los datos de la aplicación.
	Facilita la integración de diferentes módulos y equipos en el desarrollo de software. Permite un mayor control y seguimiento de las versiones del software.
	Depende en gran medida del servidor centralizado, lo que puede ocasionar problemas de disponibilidad y rendimiento. Puede ser complicado de mantener y actualizar debido a la gran cantidad de dependencias.
	Sistemas de control de versiones como Git o Subversion.
	Cliente-servidor
	Un conjunto de clientes acceden a los servicios de un servidor centralizado para compartir recursos y datos.
	Permite una gestión más centralizada de la información y los recursos. Facilita el mantenimiento y la actualización del software al estar centralizado en un solo servidor.
	Puede generar cuellos de botella y problemas de rendimiento debido a la concentración de la carga en el servidor. Si el servidor falla, toda la aplicación puede verse afectada.
	Aplicaciones web basadas en la arquitectura cliente-servidor, donde los navegadores web son los clientes y los servidores proporcionan los datos y los recursos necesarios.
	Capas
	Los diferentes componentes del software se organizan en capas lógicas, cada una de las cuales proporciona servicios a la capa superior.
	Permite una mayor modularidad y escalabilidad del software. Facilita la reutilización de componentes en diferentes partes de la aplicación.
	Puede generar problemas de dependencias y complejidad si las capas no están bien definidas y separadas. Puede haber un mayor costo de desarrollo inicial para implementar la estructura de capas.
	Sistemas empresariales para separar la lógica de negocio de la interfaz de usuario y la capa de datos.
	Control centralizado
	Un único componente se encarga de coordinar y controlar todas las operaciones del software.
	Permite un mayor control y seguimiento de las operaciones y procesos del software. Facilita la implementación de políticas de seguridad y privacidad.
	Puede generar problemas de escalabilidad y rendimiento si el control centralizado se convierte en un cuello de botella. Puede ser complicado de mantener y actualizar debidoa la gran cantidad de dependencias.
	Sistemas de gestión de procesos empresariales.
CONCLUSION
Los modelos de diseño son una parte fundamental del proceso de desarrollo de software, ya que establecen una estructura clara y organizada que permite una mayor eficacia y eficiencia en el desarrollo y mantenimiento del software. Cada modelo de diseño presenta ventajas y desventajas específicas, lo que hace que la elección del modelo adecuado dependa en gran medida del tipo de aplicación y los requisitos específicos del proyecto.
Después de analizar los cuatro modelos de diseño (repositorios, cliente-servidor, capas y control centralizado), considero que el modelo de diseño de capas es el mejor debido a su modularidad y escalabilidad. Aunque puede requerir un mayor costo de desarrollo inicial, este modelo permite una mayor flexibilidad y es más fácil de mantener y actualizar debido a la separación clara de las diferentes capas.
En cuanto a la razón por la que los modelos de diseño se consideran de tipo arquitectónico, es porque establecen la estructura fundamental y la organización del software, similar a la arquitectura de un edificio. Como señala Pressman (2014), "la arquitectura de software es la estructura fundamental del software que comprende elementos de software, las propiedades externas visibles de esos elementos y las relaciones entre ellos" (p. 153). Por lo tanto, los modelos de diseño son esenciales para el proceso de desarrollo de software y proporcionan la base para un software bien estructurado y organizado.
REFERENCIAS BIBLIOGRÁFICAS
1. Pressman, R. S. (2014). Ingeniería del software: Un enfoque práctico (7ª ed.). McGraw Hill Education.
2. Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012). Systems analysis and design in a changing world (6th ed.). Cengage Learning.
3. Sommerville, I. (2011). Ingeniería de software (9ª ed.). Pearson.

Continuar navegando