Anda di halaman 1dari 6

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 Tamaño pequeño

O Independencia modular

O Abstracción

O Encapsulamiento

Objetivos de la Descomposición Modular:

O Descomponer los problemas complejos en problemas más sencillos

O Reutilizar el código

O Facilitar la lectura de los programas


6.2 Arquitectura de dominio especifico

Existen diversas arquitecturas de dominio especifico para el desarrollo de software. A


continuación mencionaremos algunas de ellas:

Diseño de
software de
arquitectura
multiprocesador

diseño de diseño de
software software
Cliente/Servidor distribuido

diseño de
software
distribuido de
tiempo real

6.2.1 Diseño de software de arquitectura multiprocesador

Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de


forma concurrente. 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, en un sistema
distribuido)

El multiproceso no es algo difícil de entender, mas procesadores significa mas potencia


computacional. Un conjunto de tareas puede ser completado mas rápidamente si hay varias
unidades de proceso ejecutándolas en paralelo.

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. Los distintos hilos que se ejecutan comparten una serie se recursos
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.

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.

Gráficamente se puede ver asi:


 Ejecución de los múltiples procesos
 Estado inicial

 Envió de respuesta

 Conexión con los correspondientes nodos

 Recepción de respuestas

 Envió del proceso

 Fin de la comunicación

 Envio del proceso en multiples procesos


6.2.2 Diseño de software cliente servidor

La arquitectura cliente-Servidor.- 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
6.2.3 Diseño de software Distribuido

Sistemas cuyos componentes hardware y software, que están en ordenadores conectados


en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro
de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un
esquema cliente-servidor.

Se ha popularizado tanto en la actualidad ya que tiene como ámbito de estudio las redes
como por ejemplo: Internet, redes de teléfonos móviles, redes corporativas, redes de
empresas, etc.

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.
 Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes
entre los diferentes componentes para la realización de una tarea, no tienen una
temporización general, esta más bien distribuida a los componentes.
 Fallos independientes de los componentes.- Cada componente del sistema puede
fallar independientemente, con lo cual los demás pueden continuar ejecutando sus
acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema
en su conjunto continua trabajando

6.2.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. Estas computadoras
interactúan directamente con dispositivos hardware. 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. Está embebido en
sistemas hardware maquina y debe responder, en tiempo real, a eventos del entorno del
sistema.

Los sistemas de tiempo real embebidos son diferentes de otros tipos de sistemas de
software. Su correcto funcionamiento depende de que el sistema responda a los eventos
dentro de un corto intervalo de tiempo. 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.

 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.
 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.
Una forma de ver un sistema de tiempo real es como un sistema de estimulo/respuesta.
Dando un determinado estimulo de entrada, el sistema debe producir la correspondiente
salida. Se puede, por lo tanto, definir el comportamiento de un sistema de tiempo real
haciendo una lista de los estímulos recibidos por el sistema, las respuestas asociadas y el
tiempo en que dichas respuestas deben producirse.

Los estímulos pueden pertenecer a dos clases:

 Estímulos periódicos. Ocurren a intervalos de tiempo predecibles. Por ejemplo, si el


sistema debe examinar un sensor cada 50 milisegundos y realizar una acción
(respuesta) dependiendo del valor de ese sensor (estímulo). Estímulos aperiódicos.
Ocurren de forma regular

 Los estímulos periódicos en un sistema de tiempo real son generados normalmente


por sensores asociados al sistema. Estos proporcionan información sobre el estado
del entorno del sistema.

Anda mungkin juga menyukai