Conceptos Clave en el Desarrollo de Software y Modelos de Programación

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,3 KB

Conceptos Fundamentales del Desarrollo de Software

El Compilador

Un compilador se encarga de traducir programas escritos en un lenguaje simbólico a código máquina. El compilador genera un código máquina que, para poder ejecutarse, requiere un proceso previo de enlazado de rutinas y funciones de biblioteca, así como la asignación de los recursos necesarios para obtener un código ejecutable.

Fases del Desarrollo de Software

  • Análisis de Requisitos

    Definición de los requisitos de la aplicación a desarrollar. Se pueden utilizar herramientas como DFD, diagramas de transición de estados, diagramas entidad-relación o diccionarios de datos.

  • Diseño del Sistema

    Determinar el funcionamiento de forma general sin entrar en detalle. Se pueden emplear diagramas de flujo, diagramas de cajas, tablas de decisión o pseudocódigo.

  • Codificación

    Traducir lo descrito en el diseño a una forma legible por la máquina. El resultado es código ejecutable.

  • Pruebas

    Comprobar si el software cumple los criterios de corrección y calidad. Garantizar el correcto funcionamiento del sistema.

  • Verificación

    Determinar si el software implementa correctamente una función específica.

  • Validación

    Determinar si el software se ajusta a los requisitos del cliente.

Tipos de Mantenimiento de Software

  • Mantenimiento General

    Corregir fallos, mejorar el rendimiento o adaptar el producto.

  • Mantenimiento Adaptativo

    Consiste en modificar el producto debido a posibles cambios que se produzcan en el entorno.

  • Mantenimiento Correctivo

    Corregir los fallos descubiertos por el cliente tras la entrega del producto.

  • Mantenimiento Perfectivo

    Incorporar funcionalidades y mejoras en el rendimiento o la mantenibilidad del producto.

  • Mantenimiento Preventivo

    Modificación del producto con el fin de mejorar y facilitar las tareas de mantenimiento futuras.

Modelos de Programación

  • Modelo de Programación Funcional

    Se basa casi exclusivamente en el empleo de funciones. Un ejemplo de lenguaje es LISP, cuyo propio código fuente está compuesto de listas. LISP es un lenguaje de programación favorito en la investigación de la IA.

  • Modelo de Programación Lógica

    Tipo de programación que consiste en la representación de un problema indicando una serie de elementos conocidos, de tal manera que se pregunta sobre el resultado y la máquina decide cómo obtenerlo por sí misma. PROLOG es un modelo de programación habitual en el campo de la IA.

  • Modelo de Flujo de Datos

    Se corresponde con una red de operadores asincrónicos interconectados entre sí por medio de un flujo de fragmentos de datos. Un ejemplo de lenguaje de programación que sigue este modelo es GPSS.

  • Modelo Imperativo

    Se basa en la arquitectura de Von Neumann. Consiste en una lista de órdenes elementales que han de ejecutarse secuencialmente tal y como aparecen en el programa. Un ejemplo de lenguaje es BASIC, una familia de lenguajes de programación de alto nivel.

  • Modelo de Programación Estructurada

    Orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa. Se basa en tres estructuras básicas: secuencia, selección e iteración. Pascal es un lenguaje que facilita el aprendizaje de la programación y está fuertemente tipado.

  • Modelo de Programación Modular

    Consiste en dividir un programa en módulos o subprogramas. Permite solucionar problemas más grandes y complejos. Se presenta como una evolución de la programación estructurada. MODULA-2 evoluciona de PASCAL e introduce los conceptos de módulo y de encapsulación.

  • Modelo Orientado a Objetos

    Supone programas compuestos por objetos en lugar de instrucciones. Ejemplo: el lenguaje JAVA, con sintaxis derivada de C y C++, cuyas aplicaciones son compiladas a bytecode.

  • Modelo de Programación Visual

    SCRATCH es un lenguaje de programación visual que permite el aprendizaje de la programación sin tener conocimientos profundos sobre el código.

Entradas relacionadas: