Fundamentos de Ingeniería de Software: Ciclo de Vida, Metodologías y Desarrollo

Clasificado en Informática

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

Conceptos Fundamentales de Software

El Software es el conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Clasificación por Función

  • Sistema: Permite que el ordenador funcione (SO, drivers).
  • Aplicación: Tareas específicas (ofimática, navegadores).
  • Desarrollo: Herramientas para escribir código (editores, compiladores, IDEs).

Licenciamiento

  • Software Propietario: Comercializado bajo licencia; se prohíbe su copia o distribución.
  • Software Libre: Permite usar, estudiar, modificar y distribuir el código.

Niveles de Abstracción y Ejecución

Niveles de Lenguaje

  • Bajo nivel: Lenguaje máquina (bits 0 y 1) o lenguaje ensamblador (usa mnemotécnicos).
  • Alto nivel: Cercano al lenguaje humano e independiente de la arquitectura (Java, Python, C++).

Formas de Ejecución

  • Compilados: Un software (compilador) traduce todo el código fuente globalmente de una sola vez y genera un archivo objeto. Son más rápidos de ejecutar (ej. C, C++, Rust).
  • Interpretados: Un programa (intérprete) traduce y ejecuta el código instrucción a instrucción, línea a línea, en tiempo real. Son más lentos pero más portables (ej. Python, JavaScript).
  • Java: El código fuente se compila a un código intermedio llamado bytecode y luego este se interpreta mediante la Máquina Virtual de Java.

Propósito y Paradigmas

  • Propósito general: Sirven para cualquier programa (Java, C++, Python).
  • Propósito específico: Diseñados para un área concreta (SQL para bases de datos, MATLAB).
  • Paradigmas: Estructurados (secuencias, selecciones e iteraciones), Modulares (módulos reutilizables) u Orientados a Objetos (POO) (objetos que colaboran entre sí).

Metodologías de Gestión de Proyectos

Kanban

Visualiza el flujo de trabajo para detectar cuellos de botella y solucionarlos. La Pizarra Kanban consta de 3 columnas: To Do (Por hacer), Doing (Haciendo) y Done (Hecho).

  • Limitar el trabajo en proceso (WIP): Fuerza al equipo a terminar una tarea antes de empezar la siguiente.
  • Reglas explícitas: El proceso debe ser visible para todos.

Scrum

Se basa en bloques de tiempo fijos llamados Sprints (1 a 4 semanas). Roles obligatorios: Product Owner, Scrum Master y el Team.

Modelos de Desarrollo

  • Modelo en Cascada (Clásico o Lineal): Fases ejecutadas de manera estrictamente secuencial.
  • Modelo en V: Asocia fases de desarrollo con fases de verificación o pruebas.
  • Metodologías Ágiles: Centradas en la entrega de valor continua mediante ciclos adaptativos y retroalimentación rápida.

Fases del Ciclo de Vida del Software

  1. Análisis: Comunicación con el cliente para recopilar necesidades. Se divide en Requerimientos Funcionales y No Funcionales. Se plasma en el documento ERS.
  2. Diseño: Se analiza el ERS para describir la estructura interna. Resultado: documento SDD.
  3. Codificación: Conversión del diseño en un sistema real. Estados del código: Fuente, Objeto y Ejecutable.
  4. Pruebas: Estrategia progresiva: Unitarias, de Integración, del Sistema y de Aceptación.
  5. Explotación: Instalación y puesta en funcionamiento (Beta Test).
  6. Mantenimiento: Fase más larga. Puede ser: Correctivo, Evolutivo o Perfectivo.

Traductores

Un traductor recibe código fuente y produce código objeto. El compilador traduce todo el bloque antes de ejecutar, mientras que el intérprete traduce y ejecuta línea a línea.

Entradas relacionadas: