Documente Academic
Documente Profesional
Documente Cultură
Principios de
V.1.1
@josebovet
Clase anterior
Introduccin
Diagrama de actividades
Introduccin.
Introduccin
Qu es?
Qu es?
Qu es?
producto o sistema.
Quin lo hace?
Quin lo hace?
Ingenieros de Software.
Quienes llevan a cabo
las tareas del diseo.
Por qu es
importante?
10
Por qu es importante?
13
14
15
Ejemplos
16
17
equipo de software
Comprobaciones
Errores
Inconsistencias u omisiones,
18
Diseo en el contexto de la
ingeniera de software.
C. A. R. Hoare
Contexto
Modelos en el diseo.
22
Modelos en el diseo.
Diseo de la Arquitectura
Diseo de datos o clases
23
24
Diagrama de componentes
25
Diseo de la interfaz
26
Diseo de la interfaz
27
Diseo de la Arquitectura
28
29
31
El Proceso de Diseo
...escribir un fragmento inteligente de cdigo que funcione es una cosa; disear algo que d
apoyo a largo plazo a una empresa es otra muy diferente. C. Ferguson
Proceso de Diseo
Proceso de Diseo
34
35
Debe ser una gua legible y comprensible para quienes generan el cdigo y para
los que lo prueban y dan el apoyo posterior.
implementacin.
36
37
38
39
Atributos de calidad.
Funcionalidad
Usabilidad
Confiabilidad,
Rendimiento
Mantenibilidad.
FUNCIONALIDAD
La funcionalidad se califica de acuerdo con:
USABILIDAD
Se evala:
La documentacin.
42
CONFIABILIDAD
Se evala:
RENDIMIENTO
Se evala:
La eficiencia.
44
MANTENIBILIDAD
46
47
Primeros enfoques:
Programacin estructurada
Nuevos enfoques:
Orientados al aspecto.
Conceptos de diseo
50
Conceptos de Diseo.
Abstraccin
Arquitectura
Patrones
Divisin de problemas
Modularidad
Ocultamiento de informacin
Independencia funcional
Refinamiento
Aspectos
Rediseo
51
Abstraccin
La abstraccin es uno de los modos fundamentales
con los que los humanos luchamos con la
complejidad.
Grady Booch
52
Abstraccin
Arquitectura
Una arquitectura del software es el producto del trabajo de
desarrollo que tiene la rentabilidad ms alta para una inversin
en cuanto a calidad, secuencia de actividades y costo.
54
Arquitectura
Define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computacin,
sus interfaces y la comunicacin entre ellos.
Tiene que ver con el diseo y la implementacin de estructuras de software de alto nivel.
Patrones
Cada patrn describe un problema que ocurre una y otra vez
en nuestro ambiente, por lo que describe el ncleo de la
solucin de ese problema, en forma tal que puede usarse sta
un milln de veces sin repetir lo mismo ni una sola vez.
Christopher Alexander
56
Patrones
Es una mezcla con nombre propio de puntos de vista que contienen la esencia de una solucin
demostrada para un problema recurrente dentro de cierto contexto de necesidades en competencia
Brad Appleton
Dicho de otra manera, un patrn de diseo describe una estructura de diseo que resuelve un
problema particular del diseo dentro de un contexto especfico.
57
Patrones
58
Divisin de problemas
El argumento para separar los problemas puede llevarse
demasiado lejos. Si se divide un problema en un nmero muy
grande de problemas muy pequeos, ser fcil resolver cada
uno de stos, pero unificarlos en la solucin (integracin) ser
muy difcil.
59
61
Modularidad
62
Mdulos
63
Modularidad
64
Modularidad
Ocultamiento de
informacin
66
Ocultamiento de Informacin
Independencia
funcional
68
Independencia Funcional
69
Refinamiento
Existe la tendencia a pasar de inmediato a los detalles e ignorar
los pasos del refinamiento. Esto genera errores y hace que el
diseo sea mucho ms difcil de revisar.
70
Refinamiento stepwise
71
Refinamiento
Un programa se elabora por medio del refinamiento sucesivo de los detalles del
procedimiento.
72
Aspectos
Es difcil leer un libro sobre los principios de la magia sin echar
una mirada de vez en cuando a la portada para asegurarse de
que no es un texto sobre diseo de software.
73
Aspecto
74
Rediseo
75
Rediseo
76
Conceptos de diseo
orientados a objeto.
77
78
Clases de diseo
Qu tipos de clases crea el diseador?
79
Clases de diseo
Clases persistentes.
Clases de sistemas.
80
81
82
83
Clases de proceso.
84
Clases persistentes.
85
Clases de sistemas
86
Un buen diseo de
clases
87
Diseo de clases
88
Diseo de clases
Completa y suficiente
Primitivismo
Mucha cohesin.
Poco acoplamiento
89
Completa y Suficiente
Primitivismo
Mucha Cohesin
92
Poco Acoplamiento
Conceptos Clave
ABSTRACCIN, ARQUITECTURA, ASPECTOS
ATRIBUTOS DE LA CALIDAD.
BUEN DISEO, COHESIN, DISEO DE DATOS
DISEO DEL SOFTWARE, ORIENTADO A OBJETO
DIVISIN DE PROBLEMAS, INDEPENDENCIA
FUNCIONAL,
LINEAMIENTOS DE LA CALIDAD
MODULARIDAD , OCULTAMIENTO DE INFORMACIN
PATRONES, PROCESO DE DISEO, REDISEO ,
REFINAMIENTO.
94
95
El modelo de Diseo
97
98
99
100
102
104
106
Preguntas
*
* Describa en breves palabras cada uno de los cuatro elementos del modelo del
diseo.
107
Prxima clase
Principios de diseo de la
arquitectura del software.
108