Professional Documents
Culture Documents
Abstraccin
Modularidad
Ocultacin de informacin
Independencia funcional
Re fabricacin
Diseo de
interfaz
Diseo al
Diseo
nivel de
arquitectni
component
co
es
El
Diseo al
Diseo de modelo
nivel de
datos de
despliegue
Diseo
Descripcin Utilizacin
de un de patrones
patrn de de diseo
diseo Diseo de
software basado
en patrones
Marcos de
trabajo
Fundamentos del Diseo
ABSTRACCIN
7
Fundamentos del Diseo
MODULARIDAD (divide y vencers)
9
Fundamentos del Diseo
JERARQUA DE CONTROL
Tambin se le conoce como estructura del
programa, y representa la organizacin
jerrquica de los mdulos de un programa e
implica una jerarqua de control. La
representacin de jerarqua se suele
representar con diagramas de rbol
10
Fundamentos del Diseo
ESTRUCTURA DE DATOS
La estructura de datos es una representacin de la
lgica que existe entre los elementos individuales de
informacin. Debido a que la estructura de la
informacin afectar de forma determinante al diseo
procedimiental, la estructura de datos es tan
importante como la estructura del programa en la
representacin de la arquitectura del software.
La estructura de datos dicta la organizacin, los
mtodos de acceso, el grado de asociatividad y las
alternativas para el tratamiento de la informacin.
Las estructuras de datos clsicas son los elementos
11 escalares, los arrays, las listas y los arboles
Fundamentos del Diseo
PROCEDIMIENTOS DEL SOFTWARE
La estructura del programa define la jerarqua
de control, independientemente de las
decisiones y secuencias de procesamiento. El
procedimiento del software se centra en los
detalles de procesamiento de cada mdulo
individual
12
Fundamentos del Diseo
OCULTAMIENTO DE INFORMACIN
El concepto de modularidad nos lleva a la pregunta: cmo
descomponer una solucin de software en el mejor conjunto de
mdulos?
El principio de ocultamiento de la informacin sugiere que los mdulos
deben especificarse de forma que la informacin (procedimientos y
datos) contenida dentro de un mdulo sea inaccesible a otros mdulos
que no necesiten tal informacin.
Por tanto se trata de definir una serie de mdulos independientes que
se comuniquen slo a travs de la informacin necesaria para realizar la
funcin de software.
El uso de ocultamiento de informacin en el diseo facilitar las
modificaciones, prueba y mantenimiento del software, ya que como la
mayora de los datos y de los procedimientos estn ocultos a otras
partes del software, ser menos probable que los errores que se
introduzcan durante la modificacin se propaguen a otros mdulos del
13 software.
Diseo Modular
Independencia Funcional
15
Diseo
16
Guas para un Diseo de Calidad
17
Guas para un Diseo de Calidad (cont.)
1. Un buen diseo debe tener una arquitectura que:
1. Se ha creado utilizando estilos o patrones reconocidos
2. Esta hecho de componentes
3. Se puede implementar de una manera evolutiva, facilitando la
implementacin y las pruebas
2. Un buen diseo es modular, es decir, puede partirse de
manera lgica en elementos o subsistemas.
3. Un buen diseo contiene representaciones
diferenciales de datos, arquitectura, interfaces y
componentes.
18
Guas para un Diseo de Calidad (cont.)
20
Atributos de Calidad en el Diseo
Funcionalidad
Usabilidad
Confiabilidad
Desempeo
Sustentabilidad y que significa todo esto??
21
Conceptos fundamentales de Diseo
1. Abstraccin
2. Refinamiento
3. Arquitectura
4. Modularidad
5. Patrones
6. Clases del diseo
22
Conceptos fundamentales de diseo:
Abstraccin y Refinamiento
1. ABSTRACCIN
La solucin a cualquier problema se presenta en
varios niveles de abstraccin. En el nivel mas alto se
presenta una solucin general. En el nivel mas bajo se
presenta una solucin que puede implementarse
directamente.
2. REFINAMIENTO
La arquitectura de un programa se desarrolla a travs
del detallado sucesivo de niveles.
23
Conceptos fundamentales de diseo:
3. Arquitectura
La arquitectura de software se refiere a la estructura
global del software y la manera en que esta estructura
proporciona integridad conceptual al sistema.
Representa los componentes que tiene el software,
como interactan y la estructura de los datos que usan
estos componentes
El uso de patrones arquitectnicos permitirn a los
diseadores reutilizar componentes
La arquitectura del diseo se puede representar
utilizando diferentes modelos: Estructurales, Plantillas,
Dinmicos, de procesos, y funcionales.
24
Conceptos fundamentales de diseo:
4. Modularidad
25
Nmero de mdulos vs. costo
COSTO O ESFUERZO
costo por
interface
Regin de
mnimo costo
26
Otras caractersticas de modularidad
COHESIN
Es la medida de la fuerza funcional de un mdulo o
clase. Se busca que la clase tenga la cohesin mas
alta posible, lo cual ocurre cuando todos sus
elementos contribuyen a la ejecucin de una misma
tarea.
ACOPLAMIENTO
Es la medida de la interdependencia relativa entre
clases. Se busca que exista el mnimo posible de
acoplamiento entre clases, lo cual sucede cuando
las clases se comunican solamente por medio de
mensajes.
27
Cohesin
Grados de Cohesin
Cohesin.
Baja cohesin.
Cohesin coincidente. El mdulo hace muchas cosas sin relacin.
Cohesin lgica. El mdulo hace muchas cosas relacionadas lgicamente.
Cohesin temporal. El mdulo hace muchas cosas relacionadas por el hecho
que deben hacerse al mismo tiempo.
Cohesin moderada.
Cohesin procedimental. El mdulo hace varias cosas relacionadas que
deben ejecutarse en cierto orden.
Cohesin de comunicacin. El mdulo hace varias cosas que trabajan sobre
una sola estructura de datos.
Alta cohesin.
Cohesin funcional. El mdulo hace una sola cosa.
Se busca una moderada o alta cohesin.
Grados de Cohesin
Funcional
30
Grados de Cohesin
Comunicacional
31
Grados de Cohesin
Procedimental
32
Grados de Cohesin
Temporal
33
Grados de Cohesin
Lgica
34
Grados de Cohesin
Coincidental
35
Acoplamiento
Grados de Acoplamiento
Grados de Acoplamiento
Grados de Acoplamiento
Grados de Acoplamiento
Tipo de acoplamiento.
Bajo acoplamiento.
Sin acoplamiento. El mdulo es independiente.
Acoplamiento de datos. El mdulo recibe una lista de argumentos de quien
lo llama.
Acoplamiento moderado.
Acoplamiento de control. El mdulo recibe una bandera de quien lo llama y
se comporta de una manera u otra dependiendo del valor de la bandera.
Alto acoplamiento.
Acoplamiento externo. El mdulo esta acoplado a un dispositivo de I/O
externo. Este tipo de acoplamiento debe limitarse a unos pocos mdulos.
Acoplamiento comn. El mdulo utiliza variables globales o comunes.
Acoplamiento de contenido. El mdulo usa datos contenidos dentro de los
lmites de otro mdulo.
Se busca un bajo o moderado acoplamiento y limitar el uso de
variables globales.
Grados de Acoplamiento
Ej.: Acoplamiento Normal
41
Grados de Acoplamiento
Ej.: Acoplamiento normal
42
Grados de Acoplamiento
Ej.: Acoplamiento por datos
43
Grados de Acoplamiento
Ej.: Acoplamiento de control
44
Grados de Acoplamiento
Ej.: como se resuelve el caso anterior
45
Conceptos fundamentales de diseo:
5. Patrones
46
Conceptos Fundamentales del diseo (cont.)
6. Clases de Diseo
Las clases generadas en el anlisis definen el dominio
del problema.
En el diseo, las clases se definen de manera que se
refinan las clases obtenidas en el anlisis a fin de que se
puedan implementar,
El diseo crea un nuevo conjunto de clases que permiten
implementar la infraestructura de software que va a
sostener la solucin.
47
Niveles de clases del diseo
48
Caractersticas de clases bien
formadas
Completa y suficiente. Una clase de diseo debe tener
todos los atributos y mtodos razonablemente esperados para
existir.
Primitividad. Los mtodos se deben enfocar en resolver UN
servicio de la clase. Una vez que se ha implementado un
servicio a travs de un mtodo, la clase no debe proveer
ninguna otra manera de hacer la misma cosa
Alta cohesin. Una clase con un diseo cohesivo tiene un
conjunto pequeo y enfocado de responsabilidades y enfoca
exclusivamente sus atributos y mtodos a cumplir esas
responsabilidades
Bajo acoplamiento. Aunque las clases tienen que colaborar
entre s, esta colaboracin debe ser lo mnimo necesario
49
El modelo de diseo
Puede verse desde 2 posibles dimensiones: proceso y
abstraccin
La dimensin del proceso indica la evolucin del modelo
confirme se van ejecutado el proceso de desarrollo de
software
La dimensin de abstraccin representa el nivel de
detalle que surge cuando cada elemento del modelo de
anlisis se va transformando en su equivalente de
diseo, y posteriormente se va refinando iterativamente
La lnea punteada en la figura indica la frontera (difusa)
entre anlisis y diseo
50
Dimensiones del modelo de diseo
[Pressman 05]
51
Elementos de diseo de datos
Crea el modelo de datos e informacin,
representado en un nivel de abstraccin alto, y
se va refinando progresivamente
En la implementacin este modelo de datos se
traduce en bases de datos, las cuales en un
futuro formarn warehouses que permitirn el
manejo de sistemas administradores de
conocimiento de la empresa
52
Elementos de diseo de arquitectura
El modelo de arquitectura se obtiene
principalmente de 3 fuentes:
1. Informacin acerca del dominio de
aplicacin del software a construirse
2. Elementos del modelo de anlisis tales
como diagramas de flujo o clases generadas
en el anlisis sus relaciones y
colaboraciones
3. Disponibilidad de patrones de arquitectura
53
Elementos de diseo de interfaz
Los elementos de diseo de interfaz describen
como la informacin fluye entrando y saliendo del
sistema, y como se comunican a travs de los
componentes definidos como parte de la
arquitectura
Hay 3 elementos importantes en el diseo de
interfaces:
1. Interfaz con el usuario
2. Interfaces externas con otros sistemas, dispositivos,
redes u otros productores o consumidores de
informacin
3. Interfaces internas entre los diferentes componentes
de diseo
54
Diseo de interfaces externas
Requiere informacin definitiva sobre la
entidad a la cual la informacin se manda
o recibe.
Debe incluir pruebas de errores y
caractersticas de seguridad
55
Diseo de interfaces internas
Est fuertemente relacionado con el diseo a nivel
componentes (diseo detallado)
En algunos casos, una interface se disea de igual
manera que una clase.
Segn la OMG una interfaz es un especificador
de operaciones externamente visibles (publicas)
de una clase, componente u otro clasificador
(incluyendo subsistemas) sin la especificacin de
una estructura interna
Una interfaz es un conjunto de operaciones que
describe alguna parte del comportamiento de un
sistema y las operaciones necesarias para
accesar esas operaciones
56
La ingeniera de diseo comienza cuando la primera
iteracin de la ingeniera de requisitos llega a su fin.
La finalidad del diseo de software es aplicar un
conjunto de principio, conceptos y practicas que
conducen al desarrollo de un sistema o producto de
calidad.
La meta del diseo es crear un modelo de software
que implemente todos los requisitos del cliente de
manera correcta y complazca a aquellos que lo usen