LAS FASES DEL PROCESO DE PROGRAMACIÓN
A fin de poder asegurar que un sistema cumpla con el sistema
requerido por el cliente, no basta simplemente con un levantamiento
y diseño funcional, especificación de los casos de uso y descripción
de procesos. Es imprescindible la comunicación con el Equipo de
Desarrollo. Es decir, con la participación del programador.
Para Docirs, un programador debe participar del análisis de los
problemas delineados por el ingeniero de procesos en términos de
los requerimientos detallados. Desde ahí va diseñando la estrategia
a seguir en la estructura del programa. Codifica las instrucciones
implementando algoritmos en el lenguaje de programación
adecuado. Verifica la lógica del programa preparando rutinas de
prueba. Revisa, depura y corrige los programas. Evalúa y modifica
los programas existentes para tomar en cuenta los cambios
producidos en los requerimientos del sistema. Finalmente prepara el
documento base de la ayuda de usuarios.
Cualquier consideración del proceso de programación mismo debe comenzar aislando cada
una de sus fases componentes. Se identifica las siguientes cinco fases:
EL ANÁLISIS DEL PROBLEMA :
se refiere a la etapa del proceso en la que el programador toma
conocimiento del problema antes de proceder a desarrollar una
solución. Es un proceso de “introducción”, de naturaleza
cognoscitiva y muy difícil de describir. Son demasiados los
programadores que recorren esta etapa muy rápidamente, lo que
hace que entiendan mal o malinterpreten las especificaciones.
Algunos programadores prefieren devolver las especificaciones del
problema al diseñador, para reducir la posibilidad de malentendido.
Los errores que se cometen en esta etapa son con mucha
frecuencia difíciles de detectar y consumen mucho tiempo cuando
se les trata de remediar en las etapas posteriores.
EL DESARROLLO DE LA SOLUCIÓN
es eminentemente creativa. Aquí se debe hacer hincapié en la
formulación del algoritmo antes que en su codificación en un lenguaje
de programación en particular. Aunque algunos podrían argumentar que
la habilidad para resolver problemas es algo innato y que es difícil
educar o mejorar la creatividad, existe suficiente evidencia en el sentido
de que algunos enfoques sistemáticos tienen mucho valor.
También es una alternativa recurrir a desarrollos anteriores hechos para
otras soluciones (la librería propia) y desde allí comenzar el proceso de
creación. Siempre y cuando el problema central haya sido resuelto
realmente, puesto que si no es así esta situación acarreará problemas
en las fases posteriores. Otro punto de suma importancia en esta etapa,
es el definir la arquitectura del modelo de datos, las relaciones lógicas
básicas y las pautas a seguir en las transacciones con la base(s) de
datos que tendrá la aplicación. (Asumimos que en esta etapa, ya debe
estar delineado el conjunto de clases de funciones que tendrá el
sistema, y que posteriormente se transformarán en las entidades u
objetos).
LA CONSTRUCCIÓN DE LA SOLUCIÓN :
Desarrollada en forma de un programa real (o código). Considerando que la
solución ha sido bien definida, este proceso es casi directo, pues es un
proceso mental inmediato de las fases anteriores. Mediante rutinas,
funciones, script, procedimientos y reglas del lenguaje de programación, se
va ensamblando la aplicación de acuerdo con los estándares de estilo y de
estructura.
LA REVISIÓN Y CORRECCIÓN DEL PROGRAMA
sea en de Ambiente de Desarrollo o Prueba. Es inevitable realizar pruebas mientras va
construyendo las componentes de la aplicación. Todo programador experto prueba no sólo
mentalmente cada instrucción cuando la está escribiendo, sino que va ejecutando las
rutinas de cualquier módulo o sección de su programa antes de proceder a pasar a
Ambiente de Prueba, donde probarán los que establecieron el diseño funcional del
sistema. La prueba de las aplicaciones nunca es sencilla; Es natural que las pruebas
muestran la presencia de errores y nunca se puede demostrar la ausencia de ellos. Una
prueba con éxito sólo significa que no se detectaron errores bajo las circunstancias
especiales de dicha prueba; esto no significa nada frente a otras circunstancias. Aunque se
sabe, que el programado repite múltiples veces sus formas de prueba de lo que construye
y siempre dejará espacios que encontrará un tercero.
En teoría, la (única manera en que las pruebas pueden demostrar que un programa es
correcto es que se examinen todos los casos posibles (lo cual se conoce como una prueba
exhaustiva), situación que es imposible técnicamente, incluso para los programas más
simples.
Significa esto que las pruebas son inútiles? Definitivamente, no. El programador puede
hacer mucho por reducir el número de casos a probar a partir del número requerido por
una prueba exhaustiva. Tomando con mucho cuidado y seleccionando apropiadamente el
diseño de los casos de prueba, puede reducirse el número de ellos, haciendo posible una
prueba razonable con un número relativamente pequeño de casos.
EL MANTENIMIENTO DEL PROGRAMA
su importancia en el trabajo real nunca debe despreciarse. En
general, el costo de mantenimiento de un programa de uso
generalizado es del orden del 40% o más del costo de su desarrollo”.
Al contrario de lo que sucede con el mantenimiento de hardware, el
mantenimiento de los programas no se refiere a la reparación o
cambio de partes deterioradas, sino a las modificaciones que deben
hacerse a los defectos del diseño, lo cual puede incluir el desarrollo
de funciones adicionales para reunir nuevas necesidades. El tiempo
de los desarrolladores para producir nuevos programas se ve
siempre afectado por el tiempo que deben dedicar al mantenimiento
de los programas viejos. La inevitabilidad del mantenimiento debe
reconocerse y, en consecuencia, deben realizarse las acciones que
sean necesarias para reducir el tiempo que ello implica.

las fases del proceso de programacion

  • 1.
    LAS FASES DELPROCESO DE PROGRAMACIÓN
  • 2.
    A fin depoder asegurar que un sistema cumpla con el sistema requerido por el cliente, no basta simplemente con un levantamiento y diseño funcional, especificación de los casos de uso y descripción de procesos. Es imprescindible la comunicación con el Equipo de Desarrollo. Es decir, con la participación del programador. Para Docirs, un programador debe participar del análisis de los problemas delineados por el ingeniero de procesos en términos de los requerimientos detallados. Desde ahí va diseñando la estrategia a seguir en la estructura del programa. Codifica las instrucciones implementando algoritmos en el lenguaje de programación adecuado. Verifica la lógica del programa preparando rutinas de prueba. Revisa, depura y corrige los programas. Evalúa y modifica los programas existentes para tomar en cuenta los cambios producidos en los requerimientos del sistema. Finalmente prepara el documento base de la ayuda de usuarios.
  • 3.
    Cualquier consideración delproceso de programación mismo debe comenzar aislando cada una de sus fases componentes. Se identifica las siguientes cinco fases:
  • 4.
    EL ANÁLISIS DELPROBLEMA : se refiere a la etapa del proceso en la que el programador toma conocimiento del problema antes de proceder a desarrollar una solución. Es un proceso de “introducción”, de naturaleza cognoscitiva y muy difícil de describir. Son demasiados los programadores que recorren esta etapa muy rápidamente, lo que hace que entiendan mal o malinterpreten las especificaciones. Algunos programadores prefieren devolver las especificaciones del problema al diseñador, para reducir la posibilidad de malentendido. Los errores que se cometen en esta etapa son con mucha frecuencia difíciles de detectar y consumen mucho tiempo cuando se les trata de remediar en las etapas posteriores.
  • 5.
    EL DESARROLLO DELA SOLUCIÓN es eminentemente creativa. Aquí se debe hacer hincapié en la formulación del algoritmo antes que en su codificación en un lenguaje de programación en particular. Aunque algunos podrían argumentar que la habilidad para resolver problemas es algo innato y que es difícil educar o mejorar la creatividad, existe suficiente evidencia en el sentido de que algunos enfoques sistemáticos tienen mucho valor. También es una alternativa recurrir a desarrollos anteriores hechos para otras soluciones (la librería propia) y desde allí comenzar el proceso de creación. Siempre y cuando el problema central haya sido resuelto realmente, puesto que si no es así esta situación acarreará problemas en las fases posteriores. Otro punto de suma importancia en esta etapa, es el definir la arquitectura del modelo de datos, las relaciones lógicas básicas y las pautas a seguir en las transacciones con la base(s) de datos que tendrá la aplicación. (Asumimos que en esta etapa, ya debe estar delineado el conjunto de clases de funciones que tendrá el sistema, y que posteriormente se transformarán en las entidades u objetos).
  • 6.
    LA CONSTRUCCIÓN DELA SOLUCIÓN : Desarrollada en forma de un programa real (o código). Considerando que la solución ha sido bien definida, este proceso es casi directo, pues es un proceso mental inmediato de las fases anteriores. Mediante rutinas, funciones, script, procedimientos y reglas del lenguaje de programación, se va ensamblando la aplicación de acuerdo con los estándares de estilo y de estructura.
  • 7.
    LA REVISIÓN YCORRECCIÓN DEL PROGRAMA sea en de Ambiente de Desarrollo o Prueba. Es inevitable realizar pruebas mientras va construyendo las componentes de la aplicación. Todo programador experto prueba no sólo mentalmente cada instrucción cuando la está escribiendo, sino que va ejecutando las rutinas de cualquier módulo o sección de su programa antes de proceder a pasar a Ambiente de Prueba, donde probarán los que establecieron el diseño funcional del sistema. La prueba de las aplicaciones nunca es sencilla; Es natural que las pruebas muestran la presencia de errores y nunca se puede demostrar la ausencia de ellos. Una prueba con éxito sólo significa que no se detectaron errores bajo las circunstancias especiales de dicha prueba; esto no significa nada frente a otras circunstancias. Aunque se sabe, que el programado repite múltiples veces sus formas de prueba de lo que construye y siempre dejará espacios que encontrará un tercero. En teoría, la (única manera en que las pruebas pueden demostrar que un programa es correcto es que se examinen todos los casos posibles (lo cual se conoce como una prueba exhaustiva), situación que es imposible técnicamente, incluso para los programas más simples. Significa esto que las pruebas son inútiles? Definitivamente, no. El programador puede hacer mucho por reducir el número de casos a probar a partir del número requerido por una prueba exhaustiva. Tomando con mucho cuidado y seleccionando apropiadamente el diseño de los casos de prueba, puede reducirse el número de ellos, haciendo posible una prueba razonable con un número relativamente pequeño de casos.
  • 8.
    EL MANTENIMIENTO DELPROGRAMA su importancia en el trabajo real nunca debe despreciarse. En general, el costo de mantenimiento de un programa de uso generalizado es del orden del 40% o más del costo de su desarrollo”. Al contrario de lo que sucede con el mantenimiento de hardware, el mantenimiento de los programas no se refiere a la reparación o cambio de partes deterioradas, sino a las modificaciones que deben hacerse a los defectos del diseño, lo cual puede incluir el desarrollo de funciones adicionales para reunir nuevas necesidades. El tiempo de los desarrolladores para producir nuevos programas se ve siempre afectado por el tiempo que deben dedicar al mantenimiento de los programas viejos. La inevitabilidad del mantenimiento debe reconocerse y, en consecuencia, deben realizarse las acciones que sean necesarias para reducir el tiempo que ello implica.