La Heurística es un método de resolver problemas utilizando técnicas de ensayo y error. El diseño heurístico de programas provee de un marco para resolver el problema en contraposición con un conjunto fijo de reglas que no pueden variar.
Estas heurísticas de diseño consisten en los siguientes pasos:
1) Evaluar la estructura de programa preliminar para reducir el acoplamiento y mejorar la cohesión. Los módulos pueden expandirse o reducirse siempre que se mejore la independencia de los módulos. A menudo se produce un módulo expandido cuando en dos o más módulos existe un componente de procesamiento común y puede redefinirse como un módulo cohesivo aparte.
2) Intentar minimizar las estructuras con alto grado de salida, fomentar un alto grado de entrada conforme aumente la profundidad.
Ejemplo:3) Mantener el efecto de un módulo dentro del ámbito de control de ese módulo.
El ámbito del efecto de un módulo m se define por todos los módulos que quedan afectados por una decisión tomada en el módulo m.
El ámbito de control del módulo m está formado por todos sus módulos subordinados.
Ejemplo:4) Evaluar los interfaces de los módulos para reducir la complejidad y la redundancia y mejorar la consistencia. Quiere decir que se debe revisar la información que se pasa en los interfaces para pasar únicamente la información necesaria.
5) Definir módulos cuyas funciones sean predecibles, para evitar módulos que sean demasiado restrictivos.
6) Fomentar módulos con entrada única y salida única, evitando las “conexiones patológicas”. El software es más fácil de comprender y mantener cuando se entra a los módulos por el principio y se sale por el final.
7) Empaquetar el software de acuerdo con las restricciones del diseño y los requisitos de portabilidad.