Está en la página 1de 19

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. 1. 2. 3. 4. 5. 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

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 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 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 suceptibles 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

Arquitectura del software

La Arquitectura de Software(As) constituye una disciplina de reciente aparicin y forma parte del paradigma de la Ingeniera del Software. . Representa la versin moderna de un diseo software y es apta para describir sistemas complejos.

6.2 ARQUITECTURAS PARA DOMINIO ESPECIFICO

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. Es necesario comprender las ventajas y desventajas de las diferentes arquitecturas de sistemas distribuidos. Aqu se tratan dos tipos genricos de arquitecturas de sistemas distribuidos: Arquitectura cliente-servidor. En este caso el sistema puede ser visto como un conjunto de servicios que se proporcionan a los clientes que hacen uso de dichos servicios. Los servidores y los clientes se tratan de forma diferente en estos sistemas.

Arquitecturas de objetos distribuidos. Para esta arquitectura no hay distincin entre servidores y clientes, y el sistema puede ser visto como un conjunto de objetos que interaccionan cuya localizacin es irrelevante. No hay distincin entre un proveedor de servicios y el usuario de estos servicios. 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. Los sistemas peerto-peer han sido usados principalmente para sistemas personales, pero estn comenzando a usarse para aplicaciones de empresa.

6.2.1 DISEO DE SOFTWARE DE ARQUITECTURA MULTIPROCESADOR

Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, la razn es porque actualmente la mayora de las CPUs slo pueden ejecutar un proceso cada vez. La nica forma de que se ejecuten de forma simultnea varios procesos es tener varias CPUs (ya sea en una mquina o en varias, en un sistema distribuido.
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.

El multiproceso no es algo difcil de entender: ms procesadores significa ms potencia computacional. Un conjunto de tareas puede ser completado ms rpidamente si hay varias unidades de proceso ejecutndolas en paralelo. Esa es la teora, pero otra historia es la prctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como estn interconectados dichos procesadores, y la forma en que el cdigo que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al mximo sus prestaciones. Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organizacin del cdigo de las propias aplicaciones, as como los lenguajes de programacin. Se configuran dos computadoras de gran capacidad interconectados electrnicamente entre si. Esta configuracin recibe el nombre de multiproceso y se caracteriza porque permite proceso de datos continuo an en el caso de que surjan problemas de funcionamiento en alguno de las computadoras

6.2.2DISEO DE SOFTWARE DE ARQUITECTURA CLIENTE/SERVIDOR

Este modelo es un prototipo de sistemas distribuidos que muestra como los datos y el procesamiento se distribuyen a lo 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.

Caractersticas de un cliente En la arquitectura C/S el remitente de una solicitud es conocido como cliente.

Sus caractersticas son:


Es quien inicia solicitudes o peticiones,

tienen por tanto un papel activo en la comunicacin (dispositivo maestro o amo). Espera y recibe las respuestas del servidor. Por lo general, puede conectase a varios servidores a la vez. Normalmente interacta directamente con los usuarios finales mediante una interfaz grfica de usuario.

Caractersticas de un servidor En los sistemas C/S el receptor de la solicitud enviada por cliente se conoce como servidor

Sus caractersticas son:

Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempean entonces un papel pasivo en la comunicacin (dispositivo esclavo). Tras la recepcin de una solicitud, la procesan y luego envan la respuesta al cliente. Por lo general, aceptan conexiones desde un gran nmero de clientes (en ciertos casos el nmero mximo de peticiones puede estar limitado). No es frecuente que interacten directamente con los usuarios finales.

6.2.3 DISEO DE SOFTWARE DISTRIBUIDO

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS


Con respecto a Sistemas Centralizados:

Una de las ventajas de los sistemas distribuidos es la economa , pues es mucho ms barato, aadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento. El trabajo en conjunto. Por ejemplo: en una fbrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido. Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas mquinas la falla de una de ellas no afecta a las dems, el sistema sobrevive como un todo. Capacidad de crecimiento incremental. Se puede aadir procesadores al sistema incrementando su potencia en forma gradual segn sus necesidades.

Con respecto a PCs Independientes:

1.

Se pueden compartir recursos, como programas y perifricos, muy costosos. Ejemplo: Impresora Lser, dispositivos de almacenamiento masivo, etc. Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolneas.

Se logra una mejor comunicacin entre las personas. Ejemplo: el correo electrnico. Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

El principal problema es el software, es el diseo, implantacin y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:
Qu tipo de S. O., lenguaje de programacin y

aplicaciones son adecuados para estos sistemas?. Cunto deben saber los usuarios de la distribucin?. Qu tanto debe hacer el sistema y qu tanto deben hacer los usuarios?.

La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto.

Otro problema tiene que ver con las redes de comunicacin. Por ejemplo: -Perdida de mensajes, saturacin en el trfico, etc. Un problema que puede surgir al compartir datos es la seguridad de los mismos.

En general se considera que las ventajas superan a las desventajas, si estas ltimas se administran seriamente.

6.2.4 DISEO SOFTWARE TIEMPO REAL


El software de tiempo real est muy acoplado con el mundo externo, esto es, el software de tiempo real debe responder al mbito del problema en un tiempo dictado por el mbito del problema. Debido a que el software de tiempo real debe operar bajo restricciones de rendimiento muy rigurosas, el diseo del software esta conducido frecuentemente, tanto por la arquitectura del hardware como por la del software, por las caractersticas del sistema operativo, por los requisitos de la aplicacin y tanto por los extras del lenguaje de programacin como prospectos de diseo. La computadora digital se ha convertido en una maquina omnipresente en al vida diaria de todos nosotros. Las computadoras nos permiten ver juegos, as como contar el tiempo, optimizar el gasto de gasolina de nuestras ltimas generaciones de coches y programar a nuestros aparatos. Todas estas interacciones con las computadoras sean tiles o intrusivas son ejemplos de computacin de tiempo real. La computadora est controlando algo que interacta con la realidad sobre una base de tiempo de hecho, el tiempo es la esencia de la interaccin

También podría gustarte