Diseño y Arquitectura De Productos de SW
ºEs un conjunto de sistemas de software que comparten un conjunto comun y gestionado de aspectos que satisfacen las necesidades especificas de un segmento de mercado o mision.
Beneficios
*La entrega de productos de software de una manera*Más rápida,*Económica y*Con una mejor calidad
Descomposicion Modular
El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. sus ventajas: claridad, reducción de costos y reutilizacion
Los pasos a seguir son:
1. Identificar los módulos
2. Describir cada módulo
3. Describir las relaciones entre módulos
Una descomposicion modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente válidad
1. Independencia funcional
2. Acoplamiento
3. Cohesión
4. Comprensibilidad
5. Adaptabilidad
Una descomposicion modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente válidad
1. Independencia funcional
2. Acoplamiento
3. Cohesión
4. Comprensibilidad
5. Adaptabilidad
Fuerte, MOderado, Debil
Definicion: Arquitectura de Software
“Una arquitectura de software es un conjunto de elementos arquitectónicos que tiene una determinada forma. Las propiedades restringen la elección de los elementos de la arquitectura mientras que la lógica captura la motivación de la elección de los elemetos y la forma.”
Cohesión
Un módulo coherente ejecuta una tarea sencilla en un procedimiento de sw y requiere poca interacción con procedimientos que se ejecutan en otras partes de un programa. podemos decir que un módulo coherente es aquel que intenta realizar solamente una cosa.
Comprensibilidad
Para facilitar los cambios, el mantenimiento y la reutilización de módulos es necesario que cada uno sea comprensible de forma aislada.
Arquitectura:
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 distinción entre servidores y clientes, y el sistema puede ser visto como un conjunto de objetos que interaccionan cuya localización es irrelevante. No hay distinción entre un proveedor de servicios
Para esta arquitectura no hay distinción entre servidores y clientes, y el sistema puede ser visto como un conjunto de objetos que interaccionan cuya localización es irrelevante. No hay distinción entre un proveedor de servicios y el usuario de estos servicios.
Ambas arquitecturas se usan ampliamente en la industria, La distribución soportada es, por lo tanto, intraorganizacional. También se pueden tomar dos tipos más de arquitecturas distribuidas que son más adecuadas para la distribución interorganizacional: arquitectura de sistemas peer-to-peer (p2p) y arquitecturas orientadas a servicios. Los sistemas peer-to-peer han sido usados principalmente para sistemas personales, pero están comenzando a usarse para aplicaciones de empresa.
Arquitectura Multiprocesador
Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente,
La ventaja de un sistema multiproceso reside en la operación llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.
Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo.
Se configuran dos computadoras de gran capacidad interconectados electrónicamente entre si. Esta configuración recibe el nombre de multiproceso y se caracteriza porque permite proceso de datos continuo aún en el caso de que surjan problemas de funcionamiento en alguno de las computadoras.
Ejemplo:
sistema de control de tráfico aéreo. Un conjunto de sensores distribuidos recolecta la información del flujo de tráfico y la procesa localmente antes de enviarla al cuarto de control
Ventajas
• Es económica
• El uso de componentes comúnmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento, a un precio menor que el de máquinas con procesadores especialmente diseñados (como por ejemplo las máquinas de procesadores vectoriales y de propósito específico).
• Adicionalmente, las computadoras paralelas son inherentemente escalables, permitiendo actualizarlas para adecuarlas a una necesidad creciente.
Desventajas
• En ocasiones se menciona también la limitante física; existen factores que limitan la velocidad máxima de un procesador, independientemente del factor económico.
• Barreras físicas infranqueables, tales como la velocidad de la luz, efectos cuánticos al reducir el tamaño de los elementos de los procesadores, y problemas causados por fenómenos eléctricos a pequeñas escalas, restringen la capacidad máxima de un sistema uniprocesador, dejando la opción obvia de colocar muchos procesadores para realizar cálculos cooperativamente.
Arquitectura Cliente Servidor
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor
) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras
.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores
Caracteristicaz
Remitente de una solicitud es conocido como cliente
. Sus características son:
- Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo)
. Espera y recibe las respuestas del servidor
Por lo general, puede conectarse a varios servidores a la vez
-
Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario
.
Receptor de la solicitud enviada por cliente se conoce como servidor. Sus características son:
- Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo)
. Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente
- Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
No es frecuente que interactúen directamente con los usuarios finales
«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«.
Características:
-
Concurrencia
– Esta característica de los sistemas distribuidos permite que los recursosdisponibles 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 sistemapuede 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.
Ventajas
Economia,Mayor confiabilidad, Flexibilidad, compartir recursos
Diseño de SW en Tiempo Real
El software de tiempo real esta 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 diseño del software esta conducido frecuentemente, tanto por la arquitectura del hardware como por la del software, por las características del sistema operativo, por los requisitos de la aplicación y tanto por los extras del lenguaje de programación como prospectos de diseño.