Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura de Software
Definicin: La Arquitectura de Software es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes segn se la percibe desde el resto del sistema y las formas en que los componentes interactan y se coordinan para alcanzar la misin del sistema. La vista arquitectnica es una vista abstracta, aportando el ms alto nivel de comprensin y la supresin o diferimiento del detalle inherente a la mayor parte de las abstracciones.
Unidad 3. Arquitectura de Software. 3. Dbil: De datos, viene dado por los datos que intercambian los mdulos. Es el mejor. Sin acoplamiento directo, es el acoplamiento que no existe c) 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. d) 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: 1. Identificacin. El nombre debe ser adecuado y descriptivo 2. Documentacin. Debe aclarar todos los detalles de diseo e implementacin que no queden de manifiesto en el propio cdigo. e) 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: 1. 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 2. 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. 3. Consistencia. Despus de cualquier adaptacin se debe mantener la consistencia del sistema, incluidos los documentos afectados
Unidad 3. Arquitectura de Software. Estandarizar el modo en que se realiza el diseo. Facilitar el aprendizaje de las nuevas generaciones de diseadores condensando conocimiento ya existente. No pretenden: Imponer ciertas alternativas de diseo frente a otras. Eliminar la creatividad inherente al proceso de diseo. No es obligatorio utilizar los patrones, solo es aconsejable en el caso de tener el mismo problema o similar que soluciona el patrn, siempre teniendo en cuenta que en un caso particular puede no ser aplicable. "Abusar o forzar el uso de los patrones puede ser un error". Estructuras o plantillas de patrones: Para describir un patrn se usan plantillas, de forma que se expresen uniformemente y puedan constituir efectivamente un medio de comunicacin entre diseadores. La plantilla ms comn consta de los siguientes apartados: Nombre del patrn: nombre estndar del patrn por el cual ser reconocido en la comunidad (normalmente se expresan en ingls). Clasificacin del patrn: creacional, estructural o de comportamiento. Intencin: Qu problema pretende resolver el patrn? Tambin conocido como: Otros nombres de uso comn para el patrn. Motivacin: Escenario de ejemplo para la aplicacin del patrn. Aplicabilidad: Usos comunes y criterios de aplicabilidad. Estructura: Diagramas de clases oportunos para describir las clases que intervienen en el patrn. Participantes: Enumeracin y descripcin de las entidades abstractas (y sus roles) que participan en el patrn. Colaboraciones: Explicacin de las interrelaciones que se dan entre los participantes. Consecuencias: Consecuencias positivas y negativas en el diseo derivadas de la aplicacin del patrn. Implementacin: Tcnicas o comentarios oportunos de cara a la implementacin del patrn. Cdigo de ejemplo: Ejemplo de implementacin del patrn (cdigo fuente). Usos conocidos: Sistemas reales que usan el patrn. Patrones relacionados: Referencias cruzadas con otros patrones. Existen varios patrones de diseo popularmente conocidos, los cuales se clasifican como se muestra a continuacin: a) Patrones Creacionales: Inicializacin y configuracin de objetos. b) Patrones Estructurales: Separan la interfaz de la implementacin. Se ocupan de cmo las clases y objetos se agrupan, para formar estructuras ms grandes. c) Patrones de Comportamiento: Ms que describir objetos o clases, describen la comunicacin entre ellos.
Existen dos modelos de dominio especfico: 1. Modelos genricos: Son abstracciones de varios sistemas reales que encapsulan las caractersticas principales de estos sistemas. Se pueden utilizar directamente en el diseo. Se derivan de forma ascendente a partir de los sistemas existentes. Pocos modelos genricos estn disponibles al pblico; las organizaciones que desarrollan estos modelos los ven como una propiedad intelectual necesaria para el desarrollo de futuros sistemas. Ejemplo: Un modelo de Compilador es un ejemplo conocido a travs de otros modelos que existen en dominios de aplicaciones especializadas 2. Modelos de referencia: Son modelos abstractos. Proveen un medio de informacin acerca de cada clase de sistema y permiten comparar diversas arquitecturas. Se utilizan para comunicar conceptos del dominio y comparar las posibles arquitecturas. Se derivan de forma descendente. Algunos patrones de diseo se consideran como arquitecturas de referencia que proporcionan un vocabulario para realizar comparaciones Ejemplo: El modelo OSI (Interconexin de Sistemas Abiertos) es un modelo en capas para sistemas de comunicacin
Unidad 3. Arquitectura de Software. Se emplea un algoritmo de inteligencia artificial de la familia Minimax. La fuerza de juego de estos programas de juego automtico es mayor cuanto mayor sea la profundidad (nmero de movimientos futuros) hasta la que llega la exploracin, y por tanto mayor el nmero de nodos. El sistema saca su fuerza de juego principalmente en la fuerza bruta que calcula el sistema central. Era una potencia paralela, de 30 nodos, RS/6000, SP-based el sistema informtico realzado (mejorado) con 480 VLSI con el objetivo especial de jugar al ajedrez. Era capaz de calcular 200 millones de posiciones por segundo, dos veces ms rpido que la versin de 1996. En junio de 1997, Deep Blue era el 259 superordenador ms poderoso, capaz de calcular 11.38 gigaflops, aunque toda esta potencia no estaba pensada en realidad para jugar al ajedrez.
SUPER COMPUTADORA CRAY La supercomputadora Cray XD1 combina sistemas avanzados de interconexin, administracin y tecnologa computacional reconfigurable que satisface de manera confiable las demandas de procesamiento de alto rendimiento. Diseada para cumplir con los requerimientos de cmputo de alto rendimiento (HPC) en reas que van del diseo de productos, a prediccin del clima, e investigaciones cientficas. La Cray XD 1 es una poderosa herramienta para cientficos e ingenieros que les permite simular y analizar problemas de mayor complejidad de forma rpida. La Cray XD 1 est basada en la arquitectura de "Conexin Directa entre Procesadores (DCP)" lo que permite interconectar muchos procesadores como uno solo, optimizando las aplicaciones que hacen uso del envo de mensajes, enlazando un bloque de procesadores al siguiente a travs de interconexiones (propietarias) de alto desempeo, eliminando la contencin de la memoria compartida y de los cuellos de botella en los dispositivos PCI. Las caractersticas del equipo son las siguientes: 216 Procesadores AMD Opteron 275, x8664, 2.2 GHzz 216 Gbytes DDR 400 registered ECC de memoria RAM Total 4 Tbytes de almacenamiento principal 1 Tbyte de registros de memoria accesibles por procesador Interconexion tipo Rapid Array Interconnect 1.7 s Latencia MPI entre procesadores Rendimiento Terico Pico 0.95TFlops
Unidad 3. Arquitectura de Software. Cliente: En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Caractersticas: 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. Servidor: Caractersticas de un servidor en los sistemas C/S el receptor de la solicitud enviada por cliente se conoce como servidor. Caractersticas: 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. Ventajas del Diseo de Software de Arquitectura Cliente-Servidor: Centralizacin del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda daar el sistema. Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Se reduce el trfico de red considerablemente. Idealmente, el cliente se comunica con el servidor utilizando un protocolo de alto nivel de abstraccin como por ejemplo SQL. Desventajas del Diseo de Software de Arquitectura Cliente-Servidor: La congestin del trfico (a mayor nmero de clientes, ms problemas para el servidor). El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware especfico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentar el costo
Unidad 3. Arquitectura de Software. La plataforma de proceso. Una vez diseado el sistema, es el elemento encargado de proporcionar los recursos fsicos y el software de base para ejecutarlo. Est formado por los Mainframe, PCs, PDAs, telfonos, etc Los elementos de la conectividad. Son los encargados se proporcionar el transporte para comunicar e integrar los elementos de la plataforma de proceso. Son bsicamente las redes y las comunicaciones. El almacenamiento de datos, formado por los datos en s y los gestores donde se localizan. Los elementos de software, donde se incluyen las aplicaciones, los servicios que ayudan a crearlas y las interfaces que ayudan a usarlas. En este componente se integran las arquitecturas posibles para crearlas: centralizada, Batch, transaccional, cliente/servidor basado en sistema operativo, cliente/servidor basada en Internet y aplicaciones Web Internet. Los sistemas distribuidos que se diseen y construyan deben estar alineados con los objetivos de negocio de la empresa, aumentar la eficacia y eficiencia operacional de la compaa y permitir el mayor rendimiento con el menor coste en las estructuras informticas que dan soporte.