Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema5 Principiosdeldisenodelsoftware 1pp PDF
Tema5 Principiosdeldisenodelsoftware 1pp PDF
Ob
l
i ve
er n i o
t en
r
Ob usua
de
el
N iv r io
a
u su
3 I.T.I.S.
Fecha de ltima modificacin: 16-10-2008
vel
r ni
Lee u ar i o
s
u
de
l
i ve
er n
t en u ar i o
s
de u
el
N ivr io
a
u su
vel
r ni o
Lee s u ar i
u
de
Resumen
Resumen
Descriptores
Bibliografa
Esquema
Introduccin
Ejercicios
Lecturas complementarias
Referencias
1. Introduccin
Concepto de diseo
Mantenimiento
Prueba
Prueba
Implementacin
Implementacin
Diseo
Con diseo
Definicin de
requisitos
Sin diseo
Diseo
Aplicacin
software
El diseo combina
Creatividad
Intuicin
Experiencia
Del ingeniero
del software
Guas
Mtodos
Heursticas
Del proceso
de diseo
Diseo Final
Criterios de calidad
Proceso iterativo
10
11
El proceso de diseo
Diseo Informal
Inicial
Diseo
Informal
Diseo
Ms Formal
Diseo
Final
12
Opciones de diseo
Los requisitos
El diseo realizado hasta el momento
La tecnologa disponible
Los principios de diseo y de las buenas prcticas
Lo que ha funcionado bien en situaciones anteriores
13
14
Diseo preliminar
Diseo preliminar
Diseo detallado
nivel
Diseo detallado
Diseo de datos
Vertiente
Tcnica
Diseo arquitectnico
Diseo procedimental
Diseo de la interfaz
15
Diseo arquitectnico
Diseo de datos
16
17
Diseo de la interfaz
Sobrecarga de la informacin
Complejidad de la tarea
Grado de control del sistema permitido al usuario
Ergonoma
18
19
20
Introduccin
21
22
Abstraccin
Refinamiento sucesivo (descomposicin)
Ocultacin de la informacin
Modularidad
Arquitectura del software
Jerarqua de control
Divisin estructural
Estructura de datos
Procedimiento de software
23
Abstraccin (i)
Definicin
24
Abstraccin (ii)
Ventajas
25
Abstraccin (iii)
Abstraccin procedimental
Abstraccin de control
26
Abstraccin (iv)
Principios
Especializacin
Descomposicin
Instanciacin
Individualizacin
27
28
29
Proceso
1.
2.
3.
4.
Objetivos
30
Tamao
y
escala
Sistema
Subsistema
Componentes/servicios
Clases
Funciones
Propsito
Sistema
31
32
33
Modularidad (i)
34
Modularidad (ii)
La modularidad facilita
35
Modularidad (iii)
Se distingue entre
36
Modularidad (iv)
Coste o esfuerzo
Coste de las
interfaces
Regin de
mnimo coste
M
Coste/mdulo
Nmero de mdulos
Universidad de Salamanca Departamento de Informtica y Automtica
37
Modularidad (v)
Son fciles de entender y explicar porque se puede estudiar cada mdulo por
separado, y adems estos mdulos tienen bien definidas las
interdependencias
Al ser ms fciles de entender y explicar, son fciles de documentar
Son ms fciles de programar porque grupos independientes pueden trabajar
en mdulos diferentes con poca comunicacin
Son ms fciles de probar porque pueden ser probados por separado, y
despus integrados y probados juntos
Cuando los mdulos son realmente independientes, son ms fciles de
mantener. Se pueden hacer cambios en algunos mdulos sin afectar al resto
del sistema
Reduce la complejidad
Aumenta la claridad
Facilita implementacin, depuracin, pruebas, documentacin y
mantenimiento del software
38
Modularidad (vi)
39
Modularidad (vii)
Descomposicin
Composicin
40
Modularidad (viii)
Comprensin
41
Modularidad (ix)
Continuidad
Proteccin
42
Modularidad (x)
Interfaces pequeas
43
Modularidad (xi)
Interfaces explcitas
Pocas interfaces
Ocultacin de la Informacin
44
Modularidad (xii)
Cohesin
Acoplamiento
45
46
3.
4.
5.
6.
7.
Buena
Funcional
Secuencial
Comunicacin
Procedural
Temporal
Lgica
Coincidencia
Mala
Caja negra
Caja gris
Caja transparente
47
Cohesin funcional
Cohesin secuencial
48
Cohesin de comunicacin
49
Cohesin procedural
Cohesin temporal
50
Cohesin lgica
Cuando existe alguna relacin entre los elementos del mdulo, aunque sea dbil
En algunos casos puede dar lugar a confusiones por no estar bien definidas
las fronteras entre los diferentes elementos del mdulo
La actividad a ejecutar se determina normalmente por un parmetro de
entrada
51
Acoplamiento mnimo
52
Conseguir que cada componente sea tan independiente como sea posible
El causado cuando los errores que se producen en un lugar del sistema se propagan
por el resto del sistema
53
54
55
Normal
De datos
Por estampado
De control
Externo
Comn
De contenido
Mejor
Bajo
Dbil
Peor
Alto
56
Acoplamiento normal
Acoplamiento de datos
B
Obtener nivel
Obtener nombre
cliente
57
Acoplamiento de control
Datos
Re sultado
o
at
at
2
O
Operar
Acoplamiento externo
58
pe
i
ac
Acoplamiento comn
Los mdulos acceden a datos en un rea de datos global (un rea de
memoria accesible por ejemplo). Comparten una estructura de datos
global
Viola los principios bsicos de encapsulamiento y modularidad
El diagnostico de problemas en estructuras con acoplamiento comn
es costoso en tiempo y difcil de realizar
Acoplamiento de contenido
Se da cuando un mdulo hace uso de datos o de informacin de
control mantenidos dentro de los lmites de otro mdulo
Un mdulo modifica algn elemento en el otro mdulo
Un mdulo utiliza una variable local del otro
Desde un mdulo se salta a otro, pero la sentencia a la que se pasa no
est definida como punto de entrada
Dos mdulos comparten los mismos contenidos
Inaceptable
59
60
En un sentido ms amplio
Esta versin sirve como estructura desde la cual llevar a cabo actividades de
diseo ms detalladas
61
P1
S2
S1
P2
P5
S3
P3
P4
Problema a resolver
S4
S5
Solucin software
62
Propiedades estructurales
Propiedades extra-funcionales
63
Modelos estructurales
Modelos de proceso
Modelos dinmicos
Se centran en el diseo del proceso tcnico de negocio que tiene que adaptar el sistema
Modelos funcionales
64
65
Grado de
Salida
Profundidad
Grado de
Entrada
Anchura
Universidad de Salamanca Departamento de Informtica y Automtica
66
Mdulos de control
Enfoque entrada/proceso/salida
Proporciona software ms fcil de probar
Lleva a un software ms fcil de mantener
Propaga menos efectos secundarios
Proporciona software ms fcil de ampliar
67
68
Funcin 1
Funcin 3
Funcin 2
Mdulo de control
69
Mdulos de
toma de decisiones
Mdulos
de trabajo
Mdulo de control
70
Estructura de datos
Elemento escalar
Vector secuencial
Espacio n-dimensional
Lista enlazada
71
72
73
Diseo
Diseo
Diseo
Diseo
arquitectnico
de datos
procedimental
de la interfaz
74
75
No introducir errores
Combinaciones de teclas estndar
Cuidado del color
76
77
78
5. Cuestiones y ejercicios
79
Cuestiones y ejercicios
80
6. Lecturas complementarias
81
Lecturas complementarias
Vienneau, R. L., Senn, R. A State of the Art Report: Software Design Methods.
http://www.dacs.dtic.mil/techs/design/Design.Title.html. March 1995
Artculo que sirve de repaso al concepto de tipo abstracto de dato y su utilizacin para el
diseo de las estructuras de datos. Tambin es un ejemplo de la idea de que la abstraccin
y el refinamiento alcanzan tanto a los procesos como a los datos de un sistema software
Artculo clsico donde, a travs del problema de las ocho reinas, Niklaus Wirth va aplicando
el principio de refinamiento sucesivo para obtener el diseo final
82
7. Referencias
83
Referencias (i)
[AECC, 1986] Asociacin Espaola para la Calidad. Glosario de Trminos de Calidad e
Ingeniera del Software. AECC, 1986
[Belady, 1990] Belady, L. A. Leonardo: The MCC Software Research Project. En Ng, P. A.,
Yeh, R. T. (Eds.). Modern Software Engineering: Foundations and Perspectives. Van
Nostrand Reinhold, 1990
[Booch, 1994] Booch, G. Object Oriented Analysis and Design with Applications. 2nd Edition.
The Benjamin/Cummings Publishing Company, 1994
[Buschmann et al., 1996] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
Stal, M. Pattern Oriented Software Architecture: A System of Patterns. John Wiley & Sons,
1996
[Coad y Yourdon, 1991] Coad, P., Yourdon, E. Object-Oriented Design. Yourdon Press,
1991
[Dahl et al., 1972] Dahl, O.-J., Dijkstra, E., Hoare, C. A. R. Structured Programming.
Academic Press, 1972
[Dennis, 1973] Dennis, J. Modularity. En Advanced Course on Software Engineering, F. L.
Bauer (Ed.). Springer-Verlag, pp. 128-192, 1973
[Gamma et al., 1995] Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns.
Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
Universidad de Salamanca Departamento de Informtica y Automtica
84
Referencias (ii)
[Garlan y Shaw, 1995] Garlan, D., Shaw, M. An Introduction to Software Architecture. En
Ambriola, V., Tortora, G. (Eds.), Advances in Software Engineering and Knowledge
Engineering, Vol. 1. World Scientific Publishing Company, 1995
[Graham, 1994] Graham, I. Object-Oriented Methods. 2nd Edition. Addison-Wesley, 1994
[IEEE, 1999] IEEE. IEEE Software Engineering Standards Collection 1999 Edition. IEEE
Computer Society Press, 1999
[Jackson, 1975] Jackson, M. A. Principles of Program Design. Academic Press, 1975
[Meyer, 1997] Meyer, B. Object Oriented Software Construction. 2nd Edition. Prentice Hall,
1997
[Myers, 1978] Myers, G. Composite/Structured Design. Van Nostrand Reinhold, 1978
[Parnas, 1972] Parnas, D. L. On the Criteria To Be Used in Descomposing Systems into
Modules. Communications of the ACM, 15(12):1053-1058. December 1972
[Pressman, 1992] Pressman, R. S. Software Engineering. A Practitioners Approach. 3rd
Edition. McGraw Hill, 1992
[Pressman, 2002] Pressman, R. S. Ingeniera del Software: Un Enfoque Prctico. 5
Edicin. McGraw-Hill. 2002
[Pressman, 2006] Pressman, R. S. Ingeniera del Software: Un Enfoque Prctico. 6
Edicin. McGraw-Hill. 2006
Universidad de Salamanca Departamento de Informtica y Automtica
85
Referencias (iii)
[RAE, 2001] Real Academia Espaola Diccionario de la Lengua Espaola. Vigsimo
segunda edicin. http://www.rae.es. [ltima vez visitado, 10-12-2007]. 2001
[Shaw y Garlan, 1995] Shaw, M., Garlan, D. Formulations and Formalisms in Software
Architecture. Volume 1000-Lecture Notes in Computer Science, Springer-Verlag, 1995
[Shaw y Garlan, 1996] Shaw, M., Garlan, D. Software Architecture: Perspectives on a
Emerging Discipline. Prentice-Hall, 1996
[Sommerville, 2005] Sommerville, I. Ingeniera del Software. 7 Edicin, Addison-Wesley.
2005
[Stevens, 1991] Stevens, W. P. Software Design: Concepts and Methods. Prentice Hall
Intenational Ltd., 1991
[Stevens et al., 1974] Stevens, W. P., Myers G. J., Constantine, L. L. Structured
Design. IBM Journal, 13(2):115-119, 1974
[Taylor, 1959] Taylor, E. S. An Interim Report on Engineering Design. Massachusetts
Institute of Technology, 1959
[Warnier, 1974] Warnier, J. Logical Construction of Programs. Van Nostrand Reinhold,
1974
[Wasserman, 1983] Wasserman, A. Information Systems Design Methodology. En
Software Design Techniques. P. Freeman, A. Wasserman (Eds.), 4th Edition. IEEE Computer
Society Press, 1983
Universidad de Salamanca Departamento de Informtica y Automtica
86
Referencias (iv)
[Wasserman, 1996] Wasserman, A. Toward a Discipline of Software Engineering. IEEE
Software, 13(6):23-31. November/December 1996
[Webster, 1988] Webster, D. E. Mapping the Design Information Representation Terrain.
Computer, 21(12), 8-23. December 1988
[Wirfs-Brock et al., 1990] Wirfs-Brock, R., Wilkerson, B., Wiener, L. Designing ObjectOriented Software. Prentice-Hall, 1990
[Wirth, 1971] Wirth, N. Program Development by Stepwise Refinement. Communication of
the ACM, 14(4): 221-227. April 1971
87
Ob
l
i ve
er n i o
t en
r
Ob usua
de
el
N iv r io
a
u su
3 I.T.I.S.
Fecha de ltima modificacin: 16-10-2008
vel
r ni
Lee u ar i o
s
u
de
l
i ve
er n
t en u ar i o
s
de u
el
N ivr io
a
u su
vel
r ni o
Lee s u ar i
u
de