You are on page 1of 3

ARQUITECTURA DE SOFTWARE

Constituye una disciplina de reciente aparicin y forma parte del paradigma de la Ingeniera de Software. Representa la versin moderna de un diseo software y es apta para describir sistemas complejos. ARQUITECTURA PARA DOMINIO ESPECFICO El reto para el diseo es disear el software y hardware para proporcionar caractersticas deseables a los sistemas distribuidos y al mismo tiempo, minimizar los problemas propios a estos sistemas. Se necesita comprender las ventajas y desventajas de las diferentes arquitecturas de sistemas distribuidos: arquitectura cliente-servidor y arquitectura de software distribuidos. ARQUITECTURA CLIENTE-SERVIDOR Este modelo es un prototipo de sistemas distribuidos que muestra como los datos y el procesamiento se distribuyen a los largo de varios procesadores. Es una forma de dividir las responsabilidades de un sistema de informacin separando la interfaz del usuario de la gestin de la informacin. El funcionamiento bsico de este modelo consiste en que un programa cliente realiza peticiones a un programa servidor, y espera hasta que el servidor de respuesta. Ambas arquitecturas se usan ampliamente en la industria, pero la distribucin de las aplicaciones generalmente tiene lugar dentro de una nica organizacin. La distribucin soportada es, por lo tanto, intraorganizacional. Tambin se pueden tomar dos tipos ms de arquitecturas distribuidas que son ms adecuadas para la distribucin interorganizacional: arquitectura de sistemas peer-to-peer (p2p) y arquitecturas orientadas a servicios.

DESCOMPOSICIN MODULAR
El diseo modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. Sus ventajas: claridad, reduccin de costos y reutilizacin. 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. Independencia funcional. Acoplamiento. Cohesin Comprensibilidad. 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: 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 interface: 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 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 adaptabilidad 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.