HISTORIA
Para crear un programa, y que la computadora lo interprete y
ejecute las instrucciones escritas en él, debe escribirse en un lenguaje
de programación. En sus inicios las computadoras interpretaban solo
instrucciones en un lenguaje específico, del más bajo nivel, conocido
como código máquina, siendo éste excesivamente complicado para programar.
De hecho solo consiste en cadenas de números 1 y 0 (sistema binario). Para
facilitar el trabajo de programación, los primeros científicos, que trabajaban
en el área, decidieron reemplazar las instrucciones, secuencias de unos y
ceros, por palabras o abreviaturas provenientes del inglés; las
codificaron y crearon así un lenguaje de mayor nivel, que se conoce como
Assembly o lenguaje ensamblador. Por ejemplo, para sumar se podría usar la
letra A de la palabra inglesa add (sumar). En realidad escribir en
lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina,
pero las letras y palabras son bastante más fáciles de recordar y entender que
secuencias de números binarios. A medida que la complejidad de las tareas que
realizaban las computadoras aumentaba, se hizo necesario disponer de un método
sencillo para programar. Entonces, se crearon los lenguajes de alto nivel.
Mientras que una tarea tan trivial como multiplicar dos números puede necesitar
un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto
nivel bastará con solo una. Una vez que se termina de escribir un programa, sea
en ensamblador o en algunos lenguajes de alto nivel, es
necesario compilarlo, es decir, traducirlo completo a lenguaje
máquina.1 Eventualmente será necesaria otra fase denominada comúnmente link o
enlace, durante la cual se anexan al código, generado durante la compilación,
los recursos necesarios de alguna biblioteca. En algunos lenguajes de
programación, puede no ser requerido el proceso de compilación y enlace, ya que
pueden trabajar en modo intérprete. Esta modalidad de trabajo es
equivalente pero se realiza instrucción por instrucción, a medida que
es ejecutado el programa.
PROGRAMAS Y ALGORITMOS
Un algoritmo es
una secuencia no ambigua, finita y ordenada de instrucciones que han de
seguirse para resolver un problema. Un programa normalmente implementa (traduce
a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo
puede expresarse de distintas maneras: en forma gráfica, como un diagrama
de flujo, en forma de código como en pseudocódigo o un lenguaje de
programación, en forma explicativa, etc.
Los programas suelen
subdividirse en partes menores, llamadas módulos, de modo que la complejidad
algorítmica de cada una de las partes sea menor que la del programa completo,
lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y
se conoce como "refino progresivo".
Según Niklaus Wirth,
un programa está formado por los algoritmos y la estructura de
datos.
Se han propuesto
diversas técnicas de programación cuyo objetivo es mejorar tanto el
proceso de creación de software como su mantenimiento. Entre ellas,
se pueden mencionar las siguientes:
- Programación declarativa
- Programación estructurada
- Programación modular
- Programación orientada a objetos
CLICLO DE VIDA DE PROGRAMACION
El término ciclo de
vida del software describe el desarrollo de software, desde la fase
inicial hasta la fase final, incluyendo su estado funcional. El propósito es
definir las distintas fases intermedias que se requieren para validar el
desarrollo de la aplicación, es decir, para garantizar que el software cumpla
los requisitos para la aplicación y verificación de los procedimientos de
desarrollo: se asegura que los métodos utilizados son apropiados. Estos métodos
se originan en el hecho de que es muy costoso rectificar los errores que se detectan
tarde dentro de la fase de implementación (programación propiamente dicha), o
peor aun, durante la fase funcional. El modelo de ciclo de vida permite que los
errores se detecten lo antes posible y por lo tanto, permite a los
desarrolladores concentrarse en la calidad del software, en los plazos de
implementación y en los costos asociados. El ciclo de vida básico de un
software consta de, al menos, los siguientes procedimientos:
- Definición de objetivos: definir el resultado
del proyecto y su papel en la estrategia global.
- Análisis de los requisitos y su viabilidad:
recopilar, examinar y formular los requisitos del cliente y examinar
cualquier restricción que se pueda aplicar.
- Diseño general: requisitos generales de la
arquitectura de la aplicación.
- Diseño en detalle: definición precisa de cada
subconjunto de la aplicación.
- Programación (programación e implementación):
es la implementación en un lenguaje de programación para crear las
funciones definidas durante la etapa de diseño.
- Prueba de unidad: prueba individual de cada
subconjunto de la aplicación para garantizar que se implementaron de
acuerdo con las especificaciones.
- Integración: para garantizar que los
diferentes módulos y subprogramas se integren con la
aplicación. Éste es el propósito de la prueba de integración que debe
estar cuidadosamente documentada.
- Prueba beta (o validación), para garantizar
que el software cumple con las especificaciones originales.
- Documentación: se documenta con toda la
información necesaria, sea funcional final para los usuarios del software
(manual del usuario), y de desarrollo para futuras adaptaciones,
ampliaciones y correcciones.
- Mantenimiento: para todos los procedimientos
correctivos (mantenimiento correctivo) y las actualizaciones secundarias
del software (mantenimiento continuo).
El orden y la presencia de
cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen
del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de
desarrolladores.
No hay comentarios:
Publicar un comentario