RETO MES DE ABRIL .............................docx
Programación: Definición y Ciclo de Vida
1.
2. La programación informática, acortada como programación, es el proceso de
diseñar, codificar, depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un lenguaje de programación. El
propósito de la programación es crear programas que exhiban un comportamiento
deseado. El proceso de escribir código requiere frecuentemente conocimientos en
varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos
especializados y lógica formal. Programar no involucra necesariamente otras
tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código),
aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Del proceso de programación surge lo que comúnmente se conoce como software
(conjunto de programas), aunque estrictamente este último abarca mucho más
que sólo la programación.
3. Historia
Para crear un programa, y que la computadora lo intérprete y ejecute las
instrucciones escritas en él, debe usarse un lenguaje de programación. En sus inicios
las computadoras interpretaban sólo 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 sólo 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 letras 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 usa la letra A de la palabra inglesa add (sumar).
4. 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
5. Ciclo de vida del software
Artículo principal: Proceso para el desarrollo de software
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).