Vous êtes sur la page 1sur 65

Diseño de Sistemas

Conceptos Fundamentales
Etapas de las metodologías

 Análisis
 Diseño
 Implementación

Lic. Jorge Guerra Guerra 2


La etapa de Análisis

 Se obtienen los requisitos generales del sistema


 Se intenta comprender el ámbito del sistema
 Se determina la factibilidad del sistema

Lic. Jorge Guerra Guerra 3


La etapa de Implementación

 Se traducen los modelos a un lenguaje de programación


 Se depura la codificación
 Se pone en marcha el proyecto

Lic. Jorge Guerra Guerra 4


Que 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

Lic. Jorge Guerra Guerra 5


Definiciones

 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.

Lic. Jorge Guerra Guerra 6


Diseñ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

Lic. Jorge Guerra Guerra 7


La 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

Lic. Jorge Guerra Guerra 8


Como 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

Lic. Jorge Guerra Guerra 9


Como 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

Lic. Jorge Guerra Guerra 10


Diseño Orientado a Objeto (OOD)

 Se definen los objetos lógicos del SW que serán


implementados en un lenguaje OOP.
 Existen diferentes metodologías para el diseño de
sistemas OO.
 También puede decirse que el diseño decide la manera
en que debe construirse el sistema para satisfacer los
requerimientos de los usuarios.

Lic. Jorge Guerra Guerra 11


Decisiones 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

Lic. Jorge Guerra Guerra 12


1. Descomposición de un sistema en
subsistemas
 Cada subsistema abarca aspectos del sistema que compartan
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.

Lic. Jorge Guerra Guerra 13


Descomposició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.

Lic. Jorge Guerra Guerra 14


Descomposició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.
- Se presentan en 2 formas: Abierta (solo en términos
de la capa inmediatamente superior) y Cerrada
(características de cualquier capa inferior)

Lic. Jorge Guerra Guerra 15


Ejemplo de Arquitectura en capas

Lic. Jorge Guerra Guerra 16


Descomposició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.

Lic. Jorge Guerra Guerra 17


Ejemplo de particiones
Elementos
Inteligencia de
medibles del
negocio
comercio
Tangible y utilizable
electrónico
Importante conocer esta transformación, pues
la información recogida de los Webs es crítica
para el canal central del negocio

Navegadores

Servidor Web
Servidor de aplicaciones
Servidor Sistema Servidor
Servidor Servidor Servidor
colaboraci registro personaliza
catálogo publicidad comercio
ón usuarios ción

Servidor de transacciones
Base de datos
Sistema operativo
Lic. Jorge Guerra Guerra 18
Lic. Jorge Guerra Guerra 19
Lic. Jorge Guerra Guerra 20
Lic. Jorge Guerra Guerra 21
2. 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.

Lic. Jorge Guerra Guerra 22


Identificació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

Lic. Jorge Guerra Guerra 23


3. 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.

Lic. Jorge Guerra Guerra 24


4. Eleccion 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

Lic. Jorge Guerra Guerra 25


5. 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

Lic. Jorge Guerra Guerra 26


6. 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.

Lic. Jorge Guerra Guerra 27


6a.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.

Lic. Jorge Guerra Guerra 28


6b.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.

Lic. Jorge Guerra Guerra 29


6c.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.

Lic. Jorge Guerra Guerra 30


6d. 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.

Lic. Jorge Guerra Guerra 31


7. Manejo de las condiciones de entorno

 Se deben tener en cuenta las siguientes condiciones:


 Iniciación.
 Terminación.
 Fallos.

Lic. Jorge Guerra Guerra 32


8. 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..

Lic. Jorge Guerra Guerra 33


Caracterí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

Lic. Jorge Guerra Guerra 34


Principios y conceptos generales

Lic. Jorge Guerra Guerra 35


Descomposición (1).

Lic. Jorge Guerra Guerra 36


Descomposición (2)

Lic. Jorge Guerra Guerra 37


Descomposición. (3)

Lic. Jorge Guerra Guerra 38


Abstracción.

Lic. Jorge Guerra Guerra 39


Abstracción.(2)

Lic. Jorge Guerra Guerra 40


Abstracción (3).

Lic. Jorge Guerra Guerra 41


Abstracción y Clases

Lic. Jorge Guerra Guerra 42


Ocultamiento de la Información.

Lic. Jorge Guerra Guerra 43


Modularidad

Lic. Jorge Guerra Guerra 44


Modularidad (2)

Lic. Jorge Guerra Guerra 45


Criterios de Meyer para evaluar
modularidad

Lic. Jorge Guerra Guerra 46


Criterios de Meyer para evaluar modularidad (2)

Lic. Jorge Guerra Guerra 47


Criterios de Meyer para evaluar modularidad (3)

Lic. Jorge Guerra Guerra 48


Reglas de Meyer para la modularidad

Lic. Jorge Guerra Guerra 49


Reglas de Meyer para la modularidad

Lic. Jorge Guerra Guerra 50


Reglas de Meyer para la modularidad
(cont.)

Lic. Jorge Guerra Guerra 51


Reglas de Meyer para la modularidad
(cont.)

Lic. Jorge Guerra Guerra 52


Cohesión alta

Lic. Jorge Guerra Guerra 53


Cohesión. Niveles.

Lic. Jorge Guerra Guerra 54


Tipos de cohesión. Funcional

Lic. Jorge Guerra Guerra 55


Tipos de cohesión. Secuencial

Lic. Jorge Guerra Guerra 56


Tipos de cohesión. Comunicación.

Lic. Jorge Guerra Guerra 57


Tipos de cohesión. (cont.)

Lic. Jorge Guerra Guerra 58


Tipos de cohesión. (cont.)

Lic. Jorge Guerra Guerra 59


Tipos de cohesión. Cohesión de capas (layers)

Lic. Jorge Guerra Guerra 60


Cohesión. Clases.

Lic. Jorge Guerra Guerra 61


Cohesión Funcional Clases.

Lic. Jorge Guerra Guerra 62


Cohesión. Clases

Lic. Jorge Guerra Guerra 63


Cohesión. Clases. (Page-Jones)

Lic. Jorge Guerra Guerra 64


Mixed-instance cohesion (Page-Jones)

Lic. Jorge Guerra Guerra 65

Vous aimerez peut-être aussi