martes, 21 de octubre de 2014
Características deseables de los programas
Al finalizar el curso, los estudiantes pueden leer la siguiente lista de caracteristicas y reflexionar sobre cuales de ellas han puesto en práctica en los programas que desarrollaron. Algunas las entenderan, otras no, pero saber cuales son puede ser de gran ayuda en su futuro...
Por J. F. Díaz (jfdiaz98@hotmail.com)
Lic. en Ciencias de la Computación
La siguiente es una lista de 9 importantes características de los programas bien escritos. Deben observarse en todas las fases de desarrollo de los programas, independiente del lenguaje utilizado. Estas características hacen de un puñado de código un mejor programa y deben tenerse siempre presentes:
1. Integridad Se refiere a la exactitud de los cálculos y a la confiabilidad de los resultados. Los programas deben ser lo más exactos posible. Ningún programa tendrá aceptación si los cálculos que efectúa y los resultados que produce no son correctos. Una conversión de tipos inadvertida, el redondeo o truncamiento desafortunado de valiosos decimales, la no validación de los datos de entrada o la no verificación de los resultados calculados pueden hacer que un programa pierda credibilidad, utilidad y méritos. Esta característica es absolutamente necesaria en cualquier programa.
2. Claridad Esto hace referencia a la facilidad de lectura del programa, con particular énfasis en la lógica subyacente. Si un programa está escrito en forma clara será posible para otro programador comprenderlo sin mucho esfuerzo. También hará posible al autor original comprender su propio programa después de haberlo dejado durante algún tiempo. Uno de los objetivos al escribir programas debe ser desarrollar programas claros y de fácil lectura a través de un enfoque estructurado, ordenado y disciplinado.
Se enfatiza aquí el espaciado, la indentación y la elección de identificadores adecuados para el programa (nombres de variables, constantes, subprogramas y estructuras de datos). Es mejor invertir algo de tiempo y esfuerzo en elegir nombres autodescriptivos y escribir código claro que romperse luego la cabeza tratando de comprender un código apretado y confuso.
3. Sencillez La claridad y exactitud de un programa se suelen ver favorecidas con hacer las cosas de forma tan sencilla como sea posible. De hecho puede ser deseable sacrificar cierta cantidad de eficiencia computacional con miras a no complicar la estructura y el código del programa.
Este objetivo de sencillez puede alcanzarse si no se incluye en el programa código "sucio", algoritmos "astutos" o trucos de programación que compliquen la lógica del programa, que sean redundantes o definitivamente no sirvan para nada, como las de maquillaje excesivo de la interfaz o en las salidas de datos.
4. Eficiencia Esto está relacionado con la velocidad de ejecución y la utilización eficiente de la memoria, o sea, con la búsqueda del punto óptimo de la relación Tiempo/Espacio. Este es uno de los objetivos importantes, aunque no se debe conseguir a expensas de la pérdida de la claridad y la sencillez. Muchos programas complicados conducen a un enfrentamiento de estas características. En estos casos es necesario recurrir a la experiencia y al sentido común.
Al programar deben utilizarse las instrucciones más adecuadas, las estructuras de datos más apropiadas y los métodos de solución más rápidos y directos. Se incluye en este punto la optimización de código (reducción del número de variables y eliminación de sentencias redundantes) y la compactación y simplificación de código sin olvidar la claridad y la sencillez.
5. Modularidad Los programas pueden dividirse en pequeñas subtareas, cada una de las cuales se encargue de tareas específicas. Es buena práctica de programación implementar cada una de estas subtareas como una rutina separada, ya sea un subprograma, un módulo o un programa completo que sea llamado por otra rutina que integre a todas las partes.
El diseño modular de los programas ayuda a mejorar el desarrollo, la corrección, la sencillez y la claridad de los programas. Esta característica se relaciona estrechamente con técnicas de programación tales como el diseño Top-Down (descendente) y Down-Top (ascendente).
6. Generalidad Normalmente deseamos que los programas sean lo más general posible, dentro de unos límites razonables, lo cual reducirá las revisiones y ajustes de mantenimiento de rutina a los mismos. Por ejemplo, el uso de constantes, la lectura de valores de teclado, la validación de los datos, el uso de tipos de datos amplios y adecuados y todas las consideraciones que dicte el sentido común son algunas de las cosas que hacen a los programas más generales. Como norma se puede conseguir con muy poco esfuerzo adicional una cantidad considerable de generalidad incluyendo alguna o todas estas sugerencias.
7. Flexibilidad Los programas deben poderse adaptar a nuevas necesidades con tan sólo ligeros cambios. Esto implica diseñar los programas de una forma clara y limpia, imprimirle generalidad, utilizar funciones de bibliotecas, usar constantes e identificadores correctos y una lógica sencilla a lo largo de todo el programa.
8. Presentación Se refiere a la implementación de interfaces de usuario sencillas, claras y fáciles de utilizar para hacer más entendibles, amenos y amistosos los programas. Esto se ve estrechamente vinculado con la interactividad entre el usuario y las pantallas de captura o salida de datos.
9. Documentación Aunque se mencione como última "característica deseable" debe hacerse a la par de todo el desarrollo del programa y actualizarse con cada cambio que se realice al código. La documentación debe ser descriptiva, concisa, clara y oportuna, de tal forma que permita la rápida comprensión del código. Invertir tiempo y esfuerzo en documentar los programas resulta de gran beneficio para el propio programador y para otros, sobretodo en las fases de Prueba y Mantenimiento del Ciclo de Desarrollo de los Programas.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario