Unidad 6 DISEÑO Y ARQUITECTURA DE PRODUCTOS DE SOFTWARE

6.1 Descomposición Modular El principal objetivo de la descomposición modular es descomponer los problemas complejos en problemas más sencillos para realizar de manera más eficiente el desarrollo del sistema. La descomposición modular se enfoca en la reutilización de código, además debido a esta descomposición cada módulo es desarrollado con un fin específico, esta característica ayuda a que futuros programadores comprendan fácilmente la función de cada módulo. Ejemplo de descomposición modular:

Características de Módulos: O O O O Tamaño pequeño Independencia modular Abstracción Encapsulamiento

Objetivos de la Descomposición Modular: O O O Descomponer los problemas complejos en problemas más sencillos Reutilizar el código Facilitar la lectura de los programas

Para el desarrollo de estos procesos se ocupan modelos de programación concurrente y paralela: Objetivos de la programación paralela:    Reducir el tiempo de computo Reducir la complejidad del algoritmo Aprovechar al máximo la capacidad de las computadoras multiproceso Tipos de Programación:   Multihilo Paso de mensaje Multihilo: este tipo de programación le permite a una aplicación realizar varias tareas concurrentemente.6. A continuación mencionaremos algunas de ellas: Diseño de software de arquitectura multiprocesador diseño de software Cliente/Servidor diseño de software distribuido diseño de software distribuido de tiempo real 6.2. La única forma de que se ejecuten de forma simultanea varios procesadores es tener varias CPU’s(ya sea en una maquina en o en varias.1 Diseño de software de arquitectura multiprocesador Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente.2 Arquitectura de dominio especifico Existen diversas arquitecturas de dominio especifico para el desarrollo de software. mas procesadores significa mas potencia computacional. en un sistema distribuido) El multiproceso no es algo difícil de entender. Los distintos hilos que se ejecutan comparten una serie se recursos . Un conjunto de tareas puede ser completado mas rápidamente si hay varias unidades de proceso ejecutándolas en paralelo.

Gráficamente se puede ver asi:  Estado inicial  Ejecución de los múltiples procesos   Conexión con los correspondientes nodos Envió de respuesta  Recepción de respuestas  Envió del proceso  Fin de la comunicación  Envio del proceso en multiples procesos . Pase de mensaje: MPI ("Message Passing Interface") es un estándar que define la sintaxis y la semántica de las funciones usada en programas que exploten la existencia de múltiples procesadores.tales como el espacio de emesaje. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta Componentes del software Cliente-Servidor Ejemplo Cliente-Servidor ..2.2 Diseño de software cliente servidor La arquitectura cliente-Servidor.6.

Se ha popularizado tanto en la actualidad ya que tiene como ámbito de estudio las redes como por ejemplo: Internet. pues el sistema en su conjunto continua trabajando   6.2. redes de teléfonos móviles. Está embebido en sistemas hardware maquina y debe responder. Estas computadoras interactúan directamente con dispositivos hardware. Un sistema de tiempo real duro (hard) es un sistema cuyo funcionamiento es incorrecto si los resultados no se producen de acuerdo con la especificación temporal.. Características:  Concurrencia.Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. a eventos del entorno del sistema. para el logro de un objetivo. Se puede definir un sistema de tiempo real como sigue: Un sistema de tiempo real es un sistema software cuyo correcto funcionamiento depende de los resultados producidos por el mismo y del instante del tiempo en el que se producen estos resultados. etc. Su correcto funcionamiento depende de que el sistema responda a los eventos dentro de un corto intervalo de tiempo. esta más bien distribuida a los componentes. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor.6..  .4 Diseño de software de tiempo real Las computadoras se utilizan para controlar una amplia variedad de sistemas desde maquinas domesticas sencillas hasta plantas enteras de fabricación.2. en tiempo real. se comunican y coordinan sus acciones mediante el paso de mensajes. no tienen una temporización general. Los sistemas de tiempo real embebidos son diferentes de otros tipos de sistemas de software.3 Diseño de software Distribuido Sistemas cuyos componentes hardware y software.  Un sistema de tiempo real blando (soft) es un sistema cuyo funcionamiento se degrada si los resultados no se producen de acuerdo con los requerimientos temporales especificados. redes de empresas..Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea. Fallos independientes de los componentes. que están en ordenadores conectados en red. redes corporativas. Carencia de reloj global. Esto permite el logro de las tareas con mayor efectividad. El software de dichos sistemas es software de tiempo real embebido que debe reaccionar a eventos generados por el hardware y emitir señales de control como respuesta a estos eventos.Cada componente del sistema puede fallar independientemente. con lo cual los demás pueden continuar ejecutando sus acciones.

. Ocurren a intervalos de tiempo predecibles. Estímulos aperiódicos. el sistema debe producir la correspondiente salida. Por ejemplo. Ocurren de forma regular  Los estímulos periódicos en un sistema de tiempo real son generados normalmente por sensores asociados al sistema. si el sistema debe examinar un sensor cada 50 milisegundos y realizar una acción (respuesta) dependiendo del valor de ese sensor (estímulo). por lo tanto. Los estímulos pueden pertenecer a dos clases:  Estímulos periódicos. definir el comportamiento de un sistema de tiempo real haciendo una lista de los estímulos recibidos por el sistema. Se puede. Estos proporcionan información sobre el estado del entorno del sistema. Dando un determinado estimulo de entrada.Una forma de ver un sistema de tiempo real es como un sistema de estimulo/respuesta. las respuestas asociadas y el tiempo en que dichas respuestas deben producirse.

Sign up to vote on this title
UsefulNot useful