Sunteți pe pagina 1din 25

Descomposición

modular
• La descomposición modular es un método de diseño proporciona un
mecanismo sistemático para descomponer el problema en sub problemas,
reducirá la complejidad de todo el problema consiguiendo de esta manera
una solución modular efectiva. El diseño modular propone dividir el sistema
en partes diferenciadas y definir sus interfaces.

Descomposición modular
Objetivos:

• Descomponer los problemas complejos en


problemas más sencillos
• Reutilizar el código
• Facilitar la lectura de los programas
Claridad

Ventajas

Reducción
Reutilización
de costos
Identificar los módulos
Se siguen los
siguientes pasos
para poder
realizar la Describir cada módulo
descomposición
modular:

Describir las relaciones entre


módulos
Una descomposición modular debe poseer ciertas cualidades

1 2 3 4 5
Independencia Acoplamiento Cohesión Comprensibilidad Adaptabilidad
funcional
Independencia funcional

Cada módulo debe realizar


una función concreta o un Para medir la
conjunto de funciones independencia funcional
afines. Es recomendable hay dos criterios:
reducir las relaciones entre acoplamiento y cohesión.
módulos al mínimo.
Acoplamiento
El grado de acoplamiento mide la interrelación entre dos módulos, según el tipo de conexión y la complejidad de la interface:
• FUERTE
• POR CONTENIDO (cuando desde un módulo se pueden cambiar datos locales de otro)
• COMÚN (se emplea una zona común de datos a la que tienen acceso varios módulos)
• MODERADO
• DE CONTROL (la zona común es un dispositivo externo al que están ligados los módulos, esto implica que un cambio en el formato
de datos afecta a todos estos módulos)
• POR ETIQUETA (en intercambio de datos se realiza mediante una referencia a la estructura completa de datos (vector, pila, árbol,
grafo, …)
• DÉBIL
• DE DATOS (viene dado por los datos que intercambian los módulos. Es el mejor posible)
• SIN ACOPLAMIENTO DIRECTO(es el acoplamiento que no existe)
Cohesión

• Es necesario lograr que el contenido de cada módulo tenga la máxima


coherencia. Para que el nº de módulos no sea demasiado elevado y
complique el diseño se tratan de agrupar elementos afines y relacionados
en un mismo módulo.
La descripción del
Si es una frase
comportamiento de un
compuesta y contiene
módulo permite
más de un verbo la
establecer el grado de
cohesión será MEDIA
cohesión:

Si contiene expresiones
Si la descripción no se
Grado de secuenciales (primero,
entonces, cuando…),
refiere a algo específico
(Ej. Todos los errores),
Cohesion será temporal o
secuencial
cohesión lógica

Si aparece “inicializar”,
“preparar”, “configurar”,
probablemente sea
temporal.
Para facilitar los cambios, el mantenimiento y la reutilización
de módulos es necesario que cada uno sea comprensible de
forma aislada. Para ello es bueno que posea independencia
funcional, pero además es deseable:

IDENTIFICACIÓN, el nombre debe ser adecuado y


descriptivo

Comprensibilidad
DOCUMENTACIÓN, debe aclarar todos los detalles de diseño
e implementación que no queden de manifiesto en el
propio código

SIMPLICIDAD, las soluciones sencillas son siempre las


mejores
Adaptabilidad

• La adaptación de un sistema resulta más


difícil cuando no hay independencia
funcional, es decir, con alto acoplamiento y
baja cohesión, y cuando el diseño es poco
comprensible. Otros factores para facilitar
la adaptabilidad:
• PREVISIÓN
• ACCESIBILIDAD
• CONSISTENCIA
Cliente – Servidor

• La arquitectura cliente-servidor es un modelo de aplicación distribuida en el


que las tareas se reparten entre los proveedores de recursos o servicios,
llamados servidores, y los demandantes, llamados clientes. Un cliente
realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta
idea también se puede aplicar a programas que se ejecutan sobre una sola
computadora, aunque es más ventajosa en un sistema operativo
multiusuario distribuido a través de una red de computadoras.
Cliente
• El cliente es el proceso que permite al usuario formular los
requerimientos y pasarlos al servidor, se le conoce con el término
front-end.
• El Cliente normalmente maneja todas las funciones relacionadas
con la manipulación y despliegue de datos, por lo que están
desarrollados sobre plataformas que permiten construir
interfaces gráficas de usuario (GUI), además de acceder a los
servicios distribuidos en cualquier parte de una red.
Las funciones que lleva a cabo el proceso cliente se
resumen en los siguientes puntos:

• Administrar la interfaz de usuario.


• Interactuar con el usuario.
• Procesar la lógica de la aplicación y hacer
validaciones locales.
• Generar requerimientos de bases de datos.
• Recibir resultados del servidor.
• Formatear resultados.
Servidor

• Es el proceso encargado de atender a


múltiples clientes que hacen
peticiones de algún recurso
administrado por él. Al proceso
servidor se le conoce con el término
back-end.
• El servidor normalmente maneja
todas las funciones relacionadas con
la mayoría de las reglas del negocio y
los recursos de datos.
Las funciones que lleva a cabo el proceso
servidor se resumen en los siguientes puntos:

• Aceptar los requerimientos de bases de datos


que hacen los clientes.
• Procesar requerimientos de bases de datos.
• Formatear datos para trasmitirlos a los clientes
• Procesar la lógica de la aplicación y realizar
validaciones a nivel de bases de datos.
Las características básicas de una arquitectura
Cliente/Servidor son:

1 2
Combinación de un cliente que interactúa con el Las tareas del cliente y del servidor tienen
usuario, y un servidor que interactúa con los recursos diferentes requerimientos en cuanto a
compartidos. El proceso del cliente proporciona la
interfaz entre el usuario y el resto del sistema. El recursos de cómputo como velocidad del
proceso del servidor actúa como un motor de software procesador, memoria, velocidad y
que maneja recursos compartidos tales como bases de capacidades del disco y input-output devices.
datos, impresoras, módems, etc.
Caracteristicas

Los clientes corresponden a


La relación establecida puede ser procesos activos en cuanto a que
de muchos a uno, en la que un son éstos los que hacen
servidor puede dar servicio a peticiones de servicios a los
muchos clientes, regulando su servidores. Estos últimos tienen
acceso a recursos compartidos. un carácter pasivo ya que esperan
las peticiones de los clientes.
• El paradigma de la comunicación basada en
eventos gira en torno a un modelo de
publicador-suscriptor. Un remitente difunde un
Arquitectura mensaje que uno o varios receptores capturan.
El proceso es similar a la transmisión por radio.
basada en • Las ondas de radio viajan a la velocidad de la
eventos luz, pero en los sistemas de software y
hardware basados en eventos se suele observar
determinada latencia.
• Evento
Es un cambio de estado significativo en un proceso de negocio. Por ejemplo, la generación de un pedido de compra es un evento significativo, ya que el
centro de procesamiento de pedidos espera recibir una notificación antes de procesar el pedido.
• Mensaje de evento
Es un mensaje que contiene datos sobre el evento. Se llama también notificación de evento. Por ejemplo, un mensaje de evento puede ser una
notificación de la generación de un pedido que contiene información sobre el pedido.
• Productor de eventos
Es el publicador de un mensaje de evento en un canal. Por ejemplo, puede ser una aplicación de generación de pedidos.
• Canal de eventos
Es una transmisión de eventos en la que un productor de eventos envía mensajes de eventos y los consumidores de eventos leen estos mensajes. Se
llama también bus de eventos en Salesforce.
• Consumidor de eventos
Es un suscriptor de un canal que recibe mensajes del canal. Por ejemplo, puede ser una aplicación de procesamiento de pedidos que recibe notificaciones
de nuevos pedidos.
Desde una • Su compañía ha ganado en una negociación con
un cliente. Supongamos que recurre a
plataforma a una proveedores para el envío de los productos
aplicación asociados a una oportunidad. Cada proveedor
tiene una aplicación externa que procesa los
externa: pedidos de envío. La aplicación externa escucha
procesamiento los eventos de plataforma. Cuando se cierra una
oportunidad, se activa un desencadenador, que
de pedidos en la forma parte de una aplicación de pedidos de
aplicación de un productos, y se publica un mensaje de evento
de plataforma. Cada aplicación de proveedor
proveedor recibe una notificación del evento y crea un
pedido de envío para un producto específico.
Bibliografia:

• https://ittgweb.wordpress.com/2016/05/28
/3-5-diseno-de-software-de-arquitectura-
arquitectura-cliente-servidor/
• http://itpn.mx/recursosisc/6semestre/inge
nieriadesoftware/Unidad%20III.pdf
• https://ittgweb.wordpress.com/2016/05/29
/descomposicion-modular/

S-ar putea să vă placă și