Programación y los problemas

La programación comienza cuando termina la actividad de diseño. En esta fase se  involucra la escritura de instrucciones en C++, Pascal, o algún otro lenguaje de programación para implantar lo que el analista ha especificado y el diseñador ha organizado en módulos.

Como programadores se pueden enfrentar a los siguientes problemas:

  • Productividad: esto es escribir más software, más rápidamente. La principal razón de esto es la enorme cantidad de sistemas y aplicaciones que siguen en espera en las grandes organizaciones.
  • Eficiencia: la eficiencia es de gran importancia en muchos sistemas de tiempo real, y en sistemas que procesan grandes volúmenes de datos (ejemplo, sistemas en bancos, reservación en aerolíneas, compañías de bolsas y compañías de seguro). La meta de eficiencia usualmente entra en conflicto con otras metas discutidas: si se emplea mucho tiempo en la construcción de un sistema eficiente, es probable que sea menos mantenible y menos transportable, y que tenga más errores residuales sutiles, además de que tal vez reduzca la productividad de la persona que escribió el programa.
  • Corrección: se podría argumentar que esto es lo más importante. Después de todo, si el programa no funciona correctamente, no importa que tan eficiente sea. Por ejemplo, se prefieren lenguajes de programación como Ada y Pascal si la corrección es de importancia crítica, en caso de que se estuviera construyendo sistemas de la Guerra de las Galaxias o el sistema de control para un reactor nuclear, porque son de «tipos rígidos».
  • Portabilidad: en algunos ambientes esto es importante; el usuario puede desear ejecutar el mismo sistema en varios tipos distintos de computadoras. Los lenguajes de tercera generación (C, Pascal, FORTRAN, COBOL, etc.) son más portátiles que los de cuarta generación; aunque no existe un lenguaje universalmente portátil. Por ello, además del lenguaje de programación debemos preocuparnos por el estilo de programación, sí la portabilidad es un factor importante.
  • Mantenibilidad: como los sistemas viven durante mucho tiempo, por lo tanto el software debe mantenerse.

Fuente: Apunte Análisis y diseño de sistemas del ITLP.edu.mx