Title: Dise
1Diseño de Sistemas
2Que es Diseño?
- Tiene como objetivo producir modelos o
representaciones de una entidad que se construirá
posteriormente - Combina intuición, experiencia, heurísticas,
criterios de calidad y un proceso de iteración
3Definiciones
- El diseño pone de relieve una solución lógica.
- Determina como el sistema cumple con los
requerimientos. - Ejemplos De que manera el software del SI de la
Biblioteca capturara y registrara los prestamos
de libros? - Definitivamente el Diseño se implementa en
Hardware y Software.
4Diseño e Ingeniería de Software
- El diseño es el núcleo técnico del proceso de
ingeniería - Toma como base la información proporcionada por
el modelo de análisis - El diseño de software evoluciona constantemente
5La etapa de Diseño
- Se define una estructura eficaz del software
- Se especifica el detalle procedimental
- Se analiza la adecuación al hardware
- Se define la arquitectura del software
6Como es un buen Diseño?
- Implementa todos los requisitos contenidos en el
modelo de análisis - Es comprendido por quienes construyen, prueban y
mantienen el sistema - Brinda una idea completa del software, desde la
perspectiva de la implementación
7Como obtener un buen Diseño?
- Organización jerárquica de los participantes
- Partición lógica del sistema
- Abstracciones de datos y procedimientos
- Componentes con características funcionales
independientes
8Decisiones del diseñador de sistemas
- Organizar el sistema en subsistemas
- Identificar la concurrencia inherente al problema
- Asignar los subsistemas a los procesadores y
tareas. - Seleccionar una aproximación para la
administración de almacenes de datos - Manejar el acceso a recursos globales
- Seleccionar la implementación de control en
software - Manejar las condiciones de contorno
- Establecer la compensación de prioridades
91. Descomposición de un sistema en subsistemas
- Cada subsistema abarca aspectos del sistema que
comparten alguna propiedad común. - Un subsistema es un paquete de clases,
operaciones y sucesos que tienen una interfaz
razonablemente bien definida. - Se identifica por los servicios que proporciona.
- Define una forma coherente de examinar un aspecto
coherente del problema. - Se puede diseñar independientemente, sin afectar
a los demás.
10Descomposición de un sistema en subsistemas (II)
- Los subsistemas deben definirse de tal forma que
la mayoría de las interacciones se produzcan
dentro de , y no en los limites de distintos
subsistemas, para no tener dependencias. - Los subsistemas de mas bajo nivel se denominan
modulos. - La descomposición en subsistemas se puede
organizar como una secuencia de capas
horizontales o en particiones verticales.
11Descomposición de un sistema en subsistemas (III)
- Capas
- Conjunto ordenado de mundos virtuales, cada uno
construido en términos de los que tiene por
debajo y proporciona la base de la implementación
para los que están encima. - El conocimiento se transmite en un solo sentido.
- Se conocen las capas que están por debajo, pero
no se conocen las que están por encima.
12Ejemplo de Arquitectura en capas
13Descomposición de un sistema en subsistemas (IV)
- Particiones
- Dividen verticalmente un sistema en subsistemas
débilmente acoplados o independientes. - Cada uno proporciona una clase de servicio.
- Pueden tener entre ellas algún conocimiento mutuo
pero sin crear dependencias de diseño. - Todo sistema puede descomponerse en una mezcla de
capas y particiones.
14Ejemplo de particiones
Importante conocer esta transformación, pues la
información recogida de los Webs es crítica para
el canal central del negocio
15(No Transcript)
162. Identificación de la concurrencia
- Hay que identificar los objetos que deben estar
activados concurrentemente y los objetos que
tienen actividad que sea mutuamente exclusiva. - Estos objetos (mut.excl.) se pueden juntar en un
único hilo de control o tarea. - Dos objetos son concurrentes si pueden recibir
sucesos al mismo tiempo sin interactuar. - Si los sucesos no están sincronizados los objetos
no pueden plegarse a un hilo de control. - Los subsistemas independientes son deseables
porque se pueden asignar a diferentes unidades de
Hw. sin coste en comunicaciones.
17Identificación de la concurrencia (cont.)
- No necesariamente dos subsistemas que sean
concurrentes tienen que estar en unidades de Hw
distintas, se tienen las interrupciones, Sist.
Operativos para simulación en sistemas
monoprocesadores. - Un hilo de control es una vía a través de varios
diagramas de estados en la cual solo esta
activado un objeto en cada instante, se escinde
si el objeto envía un suceso y sigue funcionando - Los hilos se implementan como tareas en el CPU
183. Asignacion de subsistemas a procesadores y a
tareas
- Un subsistema concurrente debe ser asociado a CPU
de prop. general o a una unidad funcional
especializada. - Estimacion de las necesidades de rendimiento y
los recursos necesarios para satisfacerlos. - Seleccionar las implementaciones de HW o SW para
los subsistemas. - Asignar los subsistemas de SW a los CPUs para
satisfacer las necesidades de rendimiento y para
minimizar la comunicacion interprocesadores. - Determinar las conexiones de unidades fisicas que
implementan los subsistemas.
194. Administracion de DBMS
- Las bases de datos proporcionan puntos de
separacion entre subsistemas, con interfaces bien
definidas. - Puede combinar archivos, estructuras de datos en
memoria o en dispositivos secundarios. - Proporcionan compensaciones entre coste, tiempo
de acceso, capacidad y fiabilidad
20Administracion de bases de datos (ventajas)
- Hay muchas caracteristicas de infraestructura.
- Existe un interfaz comun para todas las
aplicaciones. - Un lenguaje de acceso standard.(SQL)
21Administracion de bases de datos (desventajas)
- Costes temporales en terminos de rendimiento.
- Funcionalidad insuficiente para aplicaciones
avanzadas. - Una interfaz dificultosa con los lenguajes de
programacion.
225. Manejo de recursos globales
- Se debe identificar los recursos globales
determinar mecanismos para controlar el acceso a
ellos. - Recursos globales CPU, memoria, espacio en
disco, botones de ratón, nombres de archivos, de
clases, BD - Un recurso físico se controla estableciendo un
protocolo para obtener acceso
236. Selección de una implementación de control de
software
- Generalmente se selecciona un único estilo de
control, aun cuando no haya una necesidad lógica. - Dos tipos de flujos de control externo e
interno. - El control externo es el flujo de los sucesos
externamente visibles entre los objetos del
sistema. - 3 Tipos Controlados por procedimientos, por
sucesos y los concurrentes.
246a.Sistemas controlados por procedimientos
- El control esta en el código del programa.
- Los proc. envían solicitudes de entradas
externas, y cuando llegan el control pasa a quien
hace la llamada. - Fácil de implementar mediante lenguajes de prog.
- La concurrencia de los objetos se hace
corresponder con un flujo secuencial de control. - Toda operación debe corresponder con un par de
sucesos.
256b.Sistemas controlados por sucesos
- El control reside dentro de un distribuidor.
- Este es proporcionado por el lenguaje o Sist.
Operativo. - Se asignan procs de aplicación a los sucesos, y
son invocados por el distribuidor cuando se
produce el suceso correspondiente. - Las llamadas de proc. al distribuidor envían
salidas o habilitan entradas, pero no esperan por
ellas - Todo proc devuelve el control al distrib. Y no lo
retiene.
266c.Sistemas concurrentes.
- El control esta concurrentemente en varios
objetos independientes, cada uno realiza una
tarea distinta. - Los sucesos se implementan como mensajes
unidireccionales entre objetos. - Una tarea puede esperar a una entrada y los demás
pueden seguir ejecutándose. - El S.O. proporciona una cola para los sucesos de
tal forma que no se pierda ninguno si esta
ejecutándose una tarea.
276d. Control interno.
- Las operaciones que afectan a objetos se expanden
formando otras de nivel inferior aplicables a los
mismos objetos o a otros. - Es similar a la implementación externa.
- Difieren en que las operaciones internas son
generados por objetos como parte de la
implementación, por lo tanto son predecibles. - Algunas operaciones se implementan como
procedimientos.
287. Manejo de las condiciones de entorno
- Se deben tener en cuenta las siguientes
condiciones - Iniciación.
- Terminación.
- Fallos.
298. Establecimiento de prioridades de compensación
- Prioridades que se usaran para las compensaciones
necesarias durante el diseño - Se debe escoger entre objetivos deseables pero
incompatibles. - Se debe conciliar los deseos del cliente y la
forma que deben realizar las compensaciones. - El carácter de un sistema queda afectado por las
decisiones de compensación..
30Características de una buena metodología de diseño
- Motivar la actividad pretendida
- El diseño debe ser completo
- Debe ser verificable antes de su construcción
- Debe producir productos diferenciados que son
mensurables - Debe ser fácilmente aprovechado en el producto
final