Ingeniería del Software: Conceptos Clave

Arquitecturas de Software

Arquitecturas más comunes

  • Arquitectura Monolítica: El software se estructura en grupos funcionales ajustados.
  • Arquitectura Cliente-Servidor: El software distribuye la carga de cálculo en dos partes independientes, pero sin una clara separación de funciones.
  • Arquitectura de Tres Niveles: Especialización de la arquitectura cliente-servidor con tres capas: presentación (interfaz de usuario), lógica de negocio (donde se modela el negocio) y datos (persistencia). Cada capa solo interactúa con la adyacente.
  • Patrón MVC (Modelo-Vista-Controlador): Modelo de diseño para aplicaciones web con tres partes:
    1. Modelo: Representa la información con la que trabaja el sistema, limitándose a lo relativo a la vista y su controlador.
    2. Vista: Presenta el modelo en un formato interactivo para el usuario. Es la interfaz de usuario.
    3. Controlador: Responde a eventos (acciones del usuario) y realiza peticiones al modelo.

Compilación

La compilación traduce un programa escrito en un lenguaje de programación a una secuencia de instrucciones en código máquina. Consta de dos etapas:

  1. Análisis del programa fuente: Análisis léxico, sintáctico y semántico.
  2. Síntesis del programa objeto: Generación y optimización de código.

Etapas de la Compilación

  • Análisis Léxico: Identifica los elementos del programa (operadores, variables, etc.).
  • Análisis Sintáctico: Verifica la correcta estructura del programa según la gramática del lenguaje.
  • Análisis Semántico: Analiza el significado del código y detecta construcciones incorrectas (ej. asignar un valor de tipo cadena a una variable de tipo entero).
  • Optimización: Mejora el código intermedio generado tras el análisis para una ejecución más eficiente.
  • Generación de Código: Crea el código ejecutable final a partir del código intermedio optimizado.

Fases del Desarrollo de una Aplicación

  • Toma de Requisitos: Define las funcionalidades de la aplicación.
  • Análisis: Describe el sistema, incluyendo infraestructura, roles de usuario, arquitectura, persistencia de datos e interfaces.
  • Diseño: Detalla las funcionalidades y los componentes utilizados.
  • Programación: Implementa la aplicación, incluyendo pruebas y documentación (para el usuario final y para el mantenimiento del código).
  • Explotación: Puesta en producción del software, con posibles pruebas adicionales y formación al usuario final.
  • Mantenimiento: Corrección de errores y adición de nuevas funcionalidades.

Control de Versiones

Gestiona los cambios en un producto o configuración. Un sistema de control de versiones (SVC) facilita esta gestión. Ejemplos: CVS, Subversion.

El control de versiones del código fuente se realiza mediante sistemas de control de código fuente (SCM).

Tipos de Control de Versiones

  • Centralizados: Mayor control administrativo, menor flexibilidad. Ejemplos: CVS, Subversion. Ventajas: Control centralizado del trabajo en equipo, versiones identificadas por número.
  • Distribuidos: Cada usuario tiene su propio repositorio, sincronizado con un repositorio central. Ejemplos: Git, Mercurial. Ventajas: Menor dependencia de la red, posibilidad de trabajo offline.

Arquitecturas de Almacenamiento

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.