Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los errores más perniciosos y sutiles son los errores del sistema que surgen de suposiciones
incompatibles hechas por los autores de distintos componentes. La integridad conceptual del
producto no solo facilita su uso, también facilita su construcción y lo hace menos propenso a errores.
Para reducir el número de errores en el sistema se necesita una meticulosa revisión del problema
y una cuidadosa descomposición.
Prueba de la especificación
Esta prueba se trata de entregar el algoritmo creado a un grupo de prueba externo para el escrutinio
de su completitud y claridad mucho antes de pasar a formar el código.
Diseño descendente
Las ideas de Niklaus Wirth establecidas para el diseño de programas, se aplican completamente al
diseño de sistemas complejos de programas. Brevemente, el procedimiento de Wirth es identificar el
diseño como una secuencia de pasos de refinamiento.
4Ventajas
Programación Estructurada
El enfoque de esta estructura teórica según Böhm y Jacopini es básicamente diseñar programas
cuyas estructuras de control consistan solo de lazos definidos por una declaración tal como DO
WHILE, y secciones condicionales delineadas en grupos de declaraciones marcadas con corchetes y
condicionadas por un IF ... THEN ... ELSE.
Se han hecho muchas críticas y se han elaborado estructuras de control adicionales, tales como una
bifurcación de caminos para distinguir entre muchas posibilidades, y una salida del desastre son muy
prácticas. El punto importante y vital para construir programas libres de errores, es que uno quiera
pensar acerca de las estructuras de control de un sistema como si fueran estructuras de control, no
como declaraciones individuales de bifurcación.
Depuración de Componentes
La depuración en la computadora.
En primer lugar se usó la consola ya que la cinta de entrada-salida era muy lenta. De esta manera la
depuración se diseñó para permitir tantas pruebas como fuera posible por sesión de máquina. El
programador diseñaba meticulosamente su procedimiento de depuración planificando dónde
parar, qué localidades de memoria examinar, qué encontrar ahí y qué hacer si no lo encontraba. Esta
programación meticulosa de sí mismo como una máquina de depuración bien podía durar casi la
mitad del tiempo dedicado a la escritura del programa a ser depurado. El pecado cardinal era oprimir
START audazmente sin haber segmentado el programa en secciones de prueba con paradas
planificadas. La depuración en computadora fue muy eficaz. Se ejecutaba un programa hasta que
fallaba la verificación, y entonces se volcaba toda la memoria.
Volcado de memoria
En una sesión de dos horas, se podía obtener quizá una docena de ejecuciones. Pero las
computadoras eran muy escasas, y muy costosas.
El volcado total de la memoria comenzó a ser impráctico ya que las capacidades de memorias
crecieron. Así que se desarrollaron técnicas de volcado de memoria selectivo, trazado selectivo y
para la inserción de copias del estado del sistema dentro de los programas. El OS/360 TESTRAN es
el último en esta dirección, permite insertar copias del estado del sistema dentro de un programa sin
necesidad de ensamblar o compilar nuevamente. Depuración interactiva.
Depuración interactiva
Se trata de una computadora que tendría múltiples programas en memoria listos para su
ejecución. Una terminal, controlada solo por programa, estaría asociada con cada programa en
proceso de depuración. La depuración estaría bajo control de un programa supervisor. Cuando el
programador a través de una terminal detenía su programa para examinar el avance o para hacer
cambios, el supervisor ejecutaría otro programa, manteniendo así ocupada la computadora.
Esto dicta que se debe empezar a depurar el sistema solo después de que las piezas parecen
funcionar, que el algoritmo parece estar resuelto para así obtener un mejor resultado a la hora de
depurar y no perder el tiempo en errores visibles.
Construir con abundante andamiaje.
El andamiaje son todos los programas y datos construidos con fines de depuración que nunca
pretendieron formar parte del producto final.
Control de cambios.
La programación necesita marcar los errores encontrados y que fueron solucionados para tener un
sistema de respaldo. Le hace mucha falta un control riguroso
Se mantiene el parche rápido hasta la siguiente liberación normal del componente, que debe
incorporar la reparación en forma probada y documentada.