Concepto de programa informático

Es la parte que no se puede tocar del ordenador (intangible), el software es un elemento lógico y se define como un conjunto de órdenes e instrucciones que cuando se ejecutan sirven para realizar alguna tarea, los programas sin ejecutar son simples archivos en disco.

Código fuente, código objeto y código ejecutable; máquinas virtuales

El código fuente es el conjunto de archivos que contienen órdenes o instrucciones que forman el programa. Para hacer cambios en un programa es necesario acceder al código fuente.

Se llama código objeto al código que resulta de la compilación del código fuente. Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado.

Luego un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable.

Código objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entiende el ordenador directamente: binario o código máquina.

Provienen de la traducción de cierto código fuente, es un fragmento del programa final y es específico de la plataforma de ejecución.

Una máquina virtual es una máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial, el cual es generado por el compilador del lenguaje que estemos utilizando (por ejemplo Java).

Tipos de lenguajes de programación

El software se puede dividir en tres tipos:

  • Software de sistema
  • Software de programación. Hay diferentes lenguajes de programación, una posible clasificación por niveles es:
    • Lenguaje máquina
    • Lenguaje ensamblador
    • Lenguaje de alto nivel
  • Software de aplicación

Características de los lenguajes más difundidos

Los 10 lenguajes más difundidos son:

Jan 2021Jan 2020ChangeProgramming LanguageRatingsChange
12changeC17.38%+1.61%
21changeJava11.96%-4.93%
33Python11.72%+2.01%
44C++7.56%+1.99%
55C#3.95%-1.40%
66Visual Basic3.84%-1.44%
77JavaScript2.20%-0.25%
88PHP1.99%-0.41%
918changeR1.90%+1.10%
1023changeGroovy1.84%+1.23%

Fases del desarrollo de una aplicación: análisis, diseño, codificación, pruebas, documentación, explotación y mantenimiento, entre otras

Modelos de desarrollo de software:

  • Modelo de cascada
    • Especificación de requisitos.
    • Diseño del software.
    • Construcción o Implementación del software.
    • Integración.
    • Pruebas (o validación)
    • Despliegue (o instalación)
    • Mantenimiento.
  • Modelo de espiral
  • Desarrollo iterativo e incremental
  • Desarrollo ágil: el desarrollo ágil de software utiliza un desarrollo iterativo como base para abogar por un punto de vista más ligero y más centrado en las personas que en el caso de las soluciones tradicionales. Los procesos ágiles utilizan retroalimentación en lugar de planificación, como principal mecanismo de control. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del software.
  • Codificación y corrección
  • Orientado a la Reutilización

Proceso de obtención de código ejecutable a partir del código fuente; herramientas implicadas

Una vez que tenemos el código fuente escrito, hay que compilarlo mediante una herramienta de compilación específica para el lenguaje en el que estamos programando, entonces se genera un código objeto que puede ser en lenguaje máquina o bytecode y son entendidos por el sistema operativo.

También hay un elemento importante para considerar y es un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable.