Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Transp Ingsw
Transp Ingsw
Programación Modular
Ingeniería en Telecomunicación
Departamento de Lenguajes y
Ciencias de la Computación
Universidad de Málaga
Contenido
Retraso en la entrega
Falta de fiabilidad
Coste excesivo
Ineficiencia
Mantenimiento problemático
Falta de adaptabilidad
Escasa portabilidad
Carencia de documentación, ...
Cliente Problema
Especificación
Diseño
Implementación Producto
parche
Construcción de Software
Planificar minuciosamente
Elegir materiales
Establecer y respetar una temporización
Inspeccionar frecuentemente la obra
Los errores son muy costosos de reparar
La dificultad depende del tamaño
En un ecosistema contaminado...
plancton radioactivo
Especificación incorrecta
Diseño inadecuado
Implementación errónea
Especificación incorrecta
del problema mal planteado
Diseño inadecuado de la
especificación incorrecta del
problema mal planteado
Cliente Problema
Requisitos Especificación
Implementación
Metodología
Diseño
Implementación Producto
En lenguaje natural
Desde el punto de vista del usuario
Sin referirse a una posible solución
La visión de la NASA
Problema:
Solución:
Problema:
Solución:
“Usando lápices...”
Problema:
Especificación:
1) ∀ i ∃ j / Y[i] = X[j]
2) 1 i N : Y[i] Y[i+1]
Problema:
Diseño:
internamente (desarrolladores)
externamente (usuarios)
Comprensible
Legible
Mantenible
Flexible
Portable
Reutilizable
Comprobable
Correcto
Preciso
Fácil de usar
Eficiente
Seguro
Robusto
Principios de Diseño
Diseño Descendente Modular
Metodología Módulo
Ocultamiento de información
Cohesión
Acoplamiento
Interfaz
Interfaz
(visible, público)
Implementación
(oculto, privado)
SDI
E
t
Do c
In LC90
Módulo = Subprograma
Cohesión
Propiedad intra-modular
Mide la relación entre los contenidos de un módulo
Diversos grados, de fuerte a débil
Objetivo: Maximizar la cohesión
Acoplamiento
Propiedad inter-modular
Mide la relación entre los módulos de un sistema
Diversos grados, de fuerte a débil
Objetivo: Minimizar el acoplamiento
TTablero tablero;
TTurno turno = {maquina, humano};
ALGORITMO Movimiento_Maquina();
ALGORITMO Movimiento_Humano();
Un Caso de Estudio
Un controlador de velocidad de un coche
On/Off
Pulso rueda
Acelerador Controlador Ajuste regulador
de
Freno
Velocidad
Aumentar/Disminuir
Pulso Reloj
Diseño Estructurado
Claves del Diseño Estructurado
Descomposición Estructurada
Controlar velocidad
Controlar velocidad
reloj
rueda
conductor velocidad
actual
velocidad regulador
deseada
freno
acelerador