# data[].attributes.body
En su definición más clara es "el conjunto de instrucciones que cada ordenador entiende"  (Rodríguez, 2003)

# data[].attributes.body
Los elementos que componen el lenguaje de programación son los siguientes:

*"Variables: Son datos que pueden cambiar durante la ejecución de un programa.
*Constantes: Son datos que no varían durante la ejecución de un programa
*Identificadores: Nombre que se les da a las diferentes variables para identificarlas
*Operadores: Símbolos que la aplicación de operaciones lógicas ó matemáticas
*Palabras reservadas: Palabras que dentro del lenguaje significan la ejecución de una instrucción determinada, por lo que no pueden ser utilizadas con otro fin." (EDITORIAL ETECÉ, 2022)

# data[].attributes.body
*Lenguaje Ensamblador
Sustituye al "lenguaje de máquina" y se basa por el uso de "nemotécnicos" (palabras del ingles que integran letras y números). Los programas desarrollados en este lenguaje se caracterizan por lo siguiente:

1) Ejecución Rápida
2) Mayor facilidad en diferentes programas.
3) Ocupan menor espacio de almacenamiento
4) Mayor velocidad de operación
5) No son transportables (un único microprocesador por máquina)
6) Es el lenguaje de programación más difícil de escribir y depurar, dificulta sus procesos de verificación, corrección y modificación)
(Catalinas, 2002)

# data[].attributes.headline
Clasificación de los Lenguajes de Programación

# data[].attributes.subject
Clasificación de los Lenguajes de Programación

# data[].attributes.body
Los lenguajes de programación son distintos y dependiendo con los que se trabaje poseen características propias y se clasifican de la siguiente manera:

Lenguajes de bajo nivel

Se encuentran más cercanos a la arquitectura de la maquina, englobándose a este grupo el lenguaje de maquina y el lenguaje ensamblador.
*Lenguaje de máquina: se caracteriza de los siguientes      elementos:
*Se considera el primer lenguaje de programación.
*Solamente lo entiende un ordenador.
*Se basa en el  "código binario"
*Solo lo entiende un ordenador; es decir, otra máquina no lo puede entender.

# data[].attributes.body
(López, 2020)

# data[].attributes.body
El desarrollo de los lenguajes de Programación son constantes para cumplir con el objetivo de mecanizar, desarrollar y adaptar nuestras necesidades para darles una solución más eficaz debido al proceso repetitivo.. Por ello existen distintas generaciones:

A) Primera Generación: Lenguajes que solo entiende un microprocesador.
B) Segunda Generación: Lenguajes utilizados solamente para enseñar a programar y eran utilizados para el orden científico y de ingeniería.
3)Tercera Generación: Programación estructurada y es posible que más microprocesadores de varias máquinas se puedan entender.
4)Cuarta Generación: Alto nivel de abstracción.

# data[].attributes.headline
Evolución de los Lenguajes de Programación

# data[].attributes.subject
Evolución de los Lenguajes de Programación

# data[].attributes.body
El desarrollo de los lenguajes de Programación son constantes para cumplir con el objetivo de mecanizar, desarrollar y adaptar nuestras necesidades para darles una solución más eficaz debido al proceso repetitivo.. Por ello existen distintas generaciones

A) Primera Generación: Lenguajes que solo entiende un microprocesador
B) Segunda Generación: Lenguajes utilizados solamente para enseñar a programar y eran utilizados para el orden científico y de ingeniería.
3)Tercera Generación: Programación estructurada y es posible que más microprocesadores de varias máquinas se puedan entender
4)Cuarta Generación: Alto nivel de abstracción

# data[].attributes.body
Un "paradigma" en programación es una "secuencia finita de instrucciones, que se ejecutan una tras otra" (Rodríguez, 2003)

# data[].attributes.headline
Programación imperativa y funcional (Paradigmas)

# data[].attributes.subject
Programación imperativa y funcional (Paradigmas)

# data[].attributes.body
Programación imperativa
Es una secuencia finita de instrucciones

Programación funcional
Las sentencias son funciones en el sentido matemático del término

# data[].attributes.headline
Prototipado y Espiral (Metodología de Programación)

# data[].attributes.subject
Prototipado y Espiral (Metodología de Programación)

# data[].attributes.body
Prototipado: se basa en la construcción de un prototipo de software que se construye rápidamente para que los usuarios puedan probarlo y aportar feedback. Así, se puede arreglar lo que está mal e incluir otros requerimientos que puedan surgir. Es un modelo iterativo que se basa en el método de prueba y error para comprender las especificidades del producto.

Espiral: es una combinación de los dos modelos anteriores, que añade el concepto de análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgo, desarrollo de prototipo y evaluación del cliente. El nombre de esta metodología da nombre a su funcionamiento, ya que se van procesando las etapas en forma de espiral. Cuanto más cerca del centro se está, más avanzado está el proyecto.

# data[].attributes.headline
Programación Lógica y orientada a Objetos (Paradigmas)

# data[].attributes.subject
Programación Lógica y orientada a Objetos (Paradigmas)

# data[].attributes.body
Programación Lógica
Consiste en declarar una serie de hechos y reglas y luego preguntar por un resultado.

Programación Orientada a Objetos
Puede ser tanto imperativo como funcional o lógico y posee las características siguientes:
*Clase: Es un tipo de dato con determinadas propiedades y una determinada funcionalidad (Ejemplo: clase "persona")
*Objeto: Entidad de una determinada clase con un determinado estado capaz de interactuar con otros objetos (Ejemplo: "Pedro" "Sonia")
*Herencia: Propiedad por la que es posible construir nuevas clases a partir de las ya existentes (Ejemplo: la clase "persona" se puede construir a partir de la clase "ser vivo")
(Rodríguez, 2003)

# data[].attributes.headline
Fases de la Metodología de la Programación

# data[].attributes.subject
Fases de la Metodología de la Programación

# data[].attributes.body
"El objetivo de las distintas metodologías es el de intentar organizar los equipos de trabajo para que estos desarrollen las funciones de un programa de la mejor manera posible."
(BANCO SANTANDER, 2022)

Las principales metodologías tradicionales o clasicas son:

Waterfall (cascada): es una metodología en la que las etapas se organizan de arriba a abajo, de ahí el nombre. Se desarrollan las diferentes funciones en etapas diferenciadas y obedeciendo un riguroso orden. Antes de cada etapa se debe revisar el producto para ver si está listo para pasar a la siguiente fase. Los requisitos y especificaciones iniciales no están predispuestos para cambiarse, por lo que no se pueden ver los resultados hasta que el proyecto ya esté bastante avanzado. (BANCO SANTANDER, 2022)

# data[].attributes.headline
Incremental y RAD (Metodología de Programación)

# data[].attributes.subject
Incremental y RAD (Metodología de Programación)

# data[].attributes.body
Incremental: en esta metodología de desarrollo de software se va construyendo el producto final de manera progresiva. En cada etapa incremental se agrega una nueva funcionalidad, lo que permite ver resultados de una forma más rápida en comparación con el modelo en cascada. El software se puede empezar a utilizar incluso antes de que se complete totalmente y, en general, es mucho más flexible que las demás metodologías.

Diseño rápido de aplicaciones (RAD): Desarrolla software de alta calidad en un corto periodo de tiempo. Los costes son mucho más altos y el desarrollo más flexible. El código puede contener más errores, y sus funciones son limitadas . Su objetivo es iterar el menor número posible de veces para conseguir una aplicación completa de forma rápida (BANCO SANTANDER, 2022)