El documento describe las etapas del desarrollo de software: 1) definición del problema y diseño de la solución, 2) codificación del programa, 3) compilación del código fuente en código ejecutable, y 4) ejecución, prueba y depuración del programa. Explica que después de entender el problema es necesario codificar la solución, compilar el código a un archivo ejecutable, y luego probar y depurar el programa hasta que funcione correctamente.
El documento describe las etapas del desarrollo de software: 1) definición del problema y diseño de la solución, 2) codificación del programa, 3) compilación del código fuente en código ejecutable, y 4) ejecución, prueba y depuración del programa. Explica que después de entender el problema es necesario codificar la solución, compilar el código a un archivo ejecutable, y luego probar y depurar el programa hasta que funcione correctamente.
El documento describe las etapas del desarrollo de software: 1) definición del problema y diseño de la solución, 2) codificación del programa, 3) compilación del código fuente en código ejecutable, y 4) ejecución, prueba y depuración del programa. Explica que después de entender el problema es necesario codificar la solución, compilar el código a un archivo ejecutable, y luego probar y depurar el programa hasta que funcione correctamente.
Definicin del problema y diseo de la solucin Desarrollar un programa, incluso para programas tan sencillos como los que se van a realizar en esta asignatura, es parte de un proceso que empieza por la definicin del problema y el diseo de una solucin. Estos pasos se abordan antes de empezar a codificar. Si el problema es grande y complicado ser necesario aplicar tcnicas que permitan descomponerlo en problemas ms pequeos cuyas soluciones puedan integrarse para resolver el problema global. Pero aunque el problema se reduzca a plantear un pequeo algoritmo, sigue siendo necesario comprender el problema y solucionarlo antes de empezar a codificar la solucin1. Aunque las soluciones se disean pensando en los trminos de las abstracciones que nos proporciona el lenguaje de programacin, la codificacin es un paso posterior al planteamiento de la solucin. Codificacin Una vez que hemos resuelto el problema podemos pasar a codificar la solucin, creando un archivo o un conjunto de archivos que contengan el cdigo fuente. Para ello se necesita un programa editor que permita escribir y guardar nuestro programa. En las prcticas se va a utilizar el editor que proporciona el entorno de desarrollo Codelite, pero vale cualquier editor que utilice el conjunto de caracteres que admite un compilador de C. Durante la codificacin es muy habitual incorporar cdigo disponible en bibliotecas software, que puede haber sido desarrollado por el propio programador o por terceros. La reutilizacin es un aspecto fundamental del desarrollo software. Los lenguajes de programacin establecen mecanismos para importar y utilizar dichas libreras aunque no estn disponibles los archivos con su cdigo fuente. Es importante, aunque no necesario para que un programa funcione, seguir unas buenas prcticas de programacin a la hora de escribir el cdigo. Las primeras buenas prcticas que debe aprender son: Utilizar nombres significativos para variables y funciones, evitando nombres que no ayuden a entender el propsito de una variable o funcin. Hilando ms fino, se recomienda utilizar sustantivos para los nombres de variables y verbos para las funciones. Documentar adecuadamente el cdigo. No se trata de documentar hasta la ltima declaracin de variable, pero s aquellos detalles que ayudan a entender por qu se ha escrito ese cdigo. La documentacin es esencial para entender o modificar cdigo fuente.
Compilacin y ensamblado del programa
El programa que hemos editado es cdigo fuente y no puede ser ejecutado directamente por ningn computador: es necesario traducirlo a cdigo mquina. Para ello necesitamos un compilador o un intrprete. Existen lenguajes de programacin, como C, en que el cdigo fuente es traducido por un compilador a cdigo mquina y se genera un archivo directamente ejecutable. La figura 2 muestra el proceso completo de generacin de un programa ejecutable en C a partir del cdigo fuente. Otros lenguajes, como Java, se compilan a un lenguaje intermedio (que en el caso de Java se denomina bytecode) que posteriormente es interpretado y ejecutado por un programa especial que se denomina intrprete. Adems, los programas habitualmente no se encuentran en un nico archivo, sino distribuidos en muchos, que deben ensamblarse para dar lugar a un programa ejecutable. La obtencin de un programa ejecutable implica, por un lado, la traduccin de los archivos en cdigo fuente a archivos con cdigo objeto y, por otro, el ensamblado de los archivos con cdigo objeto. Ejecucin, prueba y depuracin del programa Dependiendo del lenguaje y de la plataforma de ejecucin que utilicemos, para ejecutar un programa puede bastar con escribir su nombre como un comando en una consola o hacer doble clic en un icono o puede ser necesario utilizar algn programa auxiliar que lance al nuestro. En cualquier caso, que nuestro programa sea capaz de ejecutarse no significa que realice correctamente la tarea que tiene encomendada. En programacin es muy difcil acertar a la primera. Normalmente es necesario ejecutar el programa una y otra vez hasta conseguir detectar y corregir todos sus fallos. Existen tcnicas para probar los programas de forma exhaustiva y utilidades (depuradores) que ayudan a detectar y corregir los errores de programacin. Los errores de programacin se clasifican en:
Errores de compilacin (sintcticos). Detectados por el compilador cuando
el cdigo fuente no se ajusta a lenguaje C. Ejemplos: falta de de parntesis, llaves, punto y coma al final de cada lnea, utilizacin de palabras reservadas como identificadores, etc. Errores en tiempo de ejecucin (semnticos). El programa compila pero no resuelve correctamente el problema, su comportamiento no se ajusta al esperado, el programa se cuelga, etc. Estos errores son generalmente difciles de detectar, ya que el compilador no ayuda a detectarlos. Hay que recurrir al uso de tcnicas de depuracin, como la impresin de trazas del funcionamiento del programa, y al uso de programas depuradores.