You are on page 1of 13

3 DISEO Y

ARQUITECTURA DE
PRODUCTOS DE SOFTWARE

3.1 DESCOMPOSICION MODULAR


Descomposicin modular.
El principal objetivo de la descomposicin modula es de componer los
problemas difciles en problemas sencillos de tal manera sera ms
eficiente el desarrollo del sistema. La descomposicin modular se enfoca
en reutilizar cdigo, adems debido a esta descomposicin cada mdulo
es desarrollado con un fin especfico, de esta manera los futuros
programadores comprendern fcilmente la funcin de cada mdulo.
Un ejemplo de la descomposicin se puede observar en la figura1.

Nivel 0 de
descomposicin
Nivel 1 de composicion

Nivel 2
Nivel 3 de
descomposicin

Modulo
Principal

Modulo 1

Modulo
1.1

Modulo
1.2

Modulo 2

Modulo
2.1

Modulo 3

Modulo
2.2

Modulo
2.2.1

Modulo
2.2.2

Modulo
3.1

Modulo
3.1.1

Figura1. Cabe resaltar los mdulos, que son la muestra de la descomposicin


modular del primer modulo

Las caractersticas de los mdulos son:


Tamao pequeo
Independencia modular
Abstraccin
Encapsulamiento
Mientras que los objetivos de la Descomposicin Modular son:
Descomponer los problemas complejos en problemas ms sencillos
Reutilizar el cdigo
Facilitar la lectura de los programa
El diseo modular propone dividir el sistema en partes diferenciadas y definir sus
interfaces. Las ventajas seran: la claridad, reduccin de costos y reutilizacin.

El diseo modular propone dividir el sistema en partes diferenciadas y definir sus interfaces.
Sus ventajas: Claridad, reduccin de costos y re utilizacin.

Los pasos a seguir son:

1. Identificar los mdulos


2. Describir cada mdulo
3. Describir las relaciones entre mdulos

Una descomposicin modular debe poseer ciertas cualidades mnimas para que se pueda considerar suficiente validad.
1. Independencia funcional
2. Acoplamiento
3. Cohesin
4. Comprensibilidad
5. Adaptabilidad

Independencia Funcional

Cada mdulo debe realizar una funcin concreta o un conjunto de funciones afines. Es recomendable
reducir las relaciones entre mdulos al mnimo.

Para medir la independencia funcional hay dos criterios: acoplamiento y cohesin

Acoplamiento

El acoplamiento es una medida de la interconexin entre mdulos en la estructura del programa. Se


tiende a que el acoplamiento sea lo menor posible, esto es a reducir las interconexiones entre los
distintos mdulos en que se estructure nuestra aplicacin. El grado de acoplamiento mide la
interrelacin entre dos mdulos, segn el tipo de conexin y la complejidad de la interfaces:

Fuerte:

Por contenido, cuando desde un mdulo se puede cambiar datos locales de otro.

Comn, se emplea una zona comn de datos a la que tienen acceso varios mdulos.

Moderado:

De control, la zona comn es un dispositivo externo al que estn ligados los mdulos, esto implica que un cambio en el
formato de datos los afecta a todos.

Dbil.

De datos, viene dado por los datos que intercambian los mdulos. Es el mejor.

Sin acoplamiento directo, es el acoplamiento que no existe.

Cohesin:

Un mdulo coherente ejecuta una tarea sencilla en un procedimiento y requiere poca interaccin con
procedimientos que se ejecutan en otras partes de un programa. Podemos decir que un mdulo coherente es aquel que
intenta realizar solamente una cosa.

Comprensibilidad:

Para facilitar los cambios, el mantenimiento y la reutilizacin de mdulos es necesario que cada uno sea comprensible de
forma aislada.

Para ello es bueno que posea independencia funcional, pero adems es deseable:

Identificacin, el nombre debe ser adecuado y descriptivo


Documentacin, debe aclarar todos los detalles de diseo e implementacin que no queden
de manifiesto en el propio cdigo

Adaptabilidad:

La adaptacin de un sistema resulta ms difcil cuando no hay independencia funcional, es


decir, con alto acoplamiento y baja cohesin, y cuando el diseo es poco comprensible. Otros
factores para facilitar la adaptabilidad:

Previsin, es necesario prever que aspectos del sistema pueden ser susceptibles de cambios en
el futuro, y poner estos elementos en mdulos independientes, de manera que su modificacin
afecte al menor nmero de mdulos posibles

Accesibilidad, debe resultar sencillo el acceso a los documentos de especificacin, diseo, e


implementacin para obtener un conocimiento suficiente del sistema antes de proceder a su
adaptacin

Consistencia, despus de cualquier adaptacin se debe mantener la consistencia del sistema,


incluidos los documentos afectados.

DISEO DE SOFTWARE DE LA
ARQUITECTURA MULTIPROCESADOR
Este sistema consiste de varios procesos que pueden ejecutarse sobre procesadores
diferentes (aunque no es necesario), es muy comn en sistemas grandes de tiempo real,
recolectan informacin, toman decisiones, con la afirmacin, y envan seales a los
actuadores que modifican el entorno del sistema.
El uso de mltiples procesadores mejora el rendimiento y adaptabilidad del sistema. La
distribucin de los procesos de los procesadores se puede predeterminar o puede estar bajo
el control de un despachador que decide cuales procesos ubicar en cada procesador. Los
sistemas de mltiples procesos no son necesariamente sistemas distribuidos. Si se dispone de
ms de un procesador, entonces se puede implementar la distribucin, pero los diseadores
del sistema no siempre consideran forzosamente cuestiones de distribucin mediante el
proceso de diseo.
Un ejemplo para este tipo de sistemas es un modelo simplificado de un sistema de control de
trfico. Un conjunto de sensores distribuidos recogen informacin sobre el flujo de trfico y la
procesan localmente antes de enviarla a una sala de control. Los operadores toman
decisiones usando esta informacin y dan instrucciones a un proceso de control de diversas
luces de trfico.

Los sistemas de software compuestos de procesos mltiples no necesariamente son sistemas


distribuidos. Si ms de un procesador est disponible, entonces se puede implementar la
distribucin, pero los diseadores del sistema no siempre consideran los puntos de distribucin
durante el proceso de diseo. El enfoque de diseo para este tipo de sistema es el mismo
para los de Tiempo Real.

Para el desarrollo de estos procesos se ocupan modelos de programacin concurrente y


paralela:
Los objetivos de la programacin paralela, son:

Reducir el tiempo de cmputo.

Reducir la complejidad del algoritmo,

Aprovechar al mximo la capacidad de las computadoras multiproceso.

Existen diferentes tipos de programacin:

Multihilo: El cual permite a una aplicacin realizar varias tareas concurrentemente.

Los distintos hilos que se ejecutan comparten una serie se recursos.


Pase de mensaje:

MPI ("Message Passing Interface") es un estndar que define la sintaxis y la semntica de


las funciones usada en programas que exploten la existencia de mltiples procesadores.

VENTAJAS:

La ventaja de un sistema multiproceso reside en la operacin llamada cambio de contexto. Esta operacin consiste en
quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.

Los hilos que se ejecutan comparten ciertos recursos como el espacio del mensaje, la cual permite simplificar el diseo de
una aplicacin que debe llevar a cabo distintas funciones simultneamente.

Es econmica

Las computadoras paralelas son inherentes escalables permitiendo actualizarlas para adecuarse a la necesidad.

El uso de componentes comnmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento.

DESVENTAJAS:

Puede ser limitante fsica, existen factores que limitan la velocidad mxima de un procesador independiente del factor
econmico.

Las barreras fsicas infranqueables tales como la velocidad de la luz, efectos al reducir el tamao.

Problemas causados por fenmenos elctricos a pequeas escalas restringen la capacidad mxima del sistema
multiprocesador.

You might also like