Tema 31. Ingeniería del Software y Ciclos de Vida

Skip to main content
< Todos los temas
Imprimir
1. Conceptos Generales y Contexto

La Ingeniería del Software (IS) no es solo «programar». Según el IEEE (1993), es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software.  

  • Hito histórico: El término nació en 1968 en una conferencia de la OTAN para abordar la llamada «crisis del software».  

  • Dato de examen: Diferencia bien entre «proceso» (el qué se hace) y «metodología» (el cómo se hace).


2. Etapas del Ciclo de Vida (SDLC)

Casi todos los modelos comparten estas fases:  

  1. Análisis de Requisitos: Es la fase más crítica. Se genera la ERS (Especificación de Requisitos del Sistema).  
    • Estándar clave: IEEE Std. 830-1998 para la creación de la ERS.  

    • Estimación: El modelo más famoso es COCOMO (Constructive Cost Model).  

  2. Diseño y Arquitectura: Se define el «cómo» se construirá. El Arquitecto usa diagramas (clases, secuencia, base de datos) y herramientas CASE (Computer Aided Software Engineering).  

  3. Programación/Codificación: Traducción del diseño a código fuente.  

  4. Pruebas (V&V): Verificación (¿estamos construyendo el producto correctamente?) y Validación (¿estamos construyendo el producto que el cliente quiere?).  

  5. Mantenimiento: ¡Atención aquí! Supone aproximadamente 2/3 del tiempo total del ciclo de vida. Existen 4 tipos:  

    •  Correctivo: Arreglar fallos.

    • Adaptativo: Cambios por el entorno (ej. nuevo SO).

    • Evolutivo: Nuevas funcionalidades.

    • Perfectivo: Mejora de calidad interna (refactorización).



3. Modelos de Desarrollo

Aquí es donde las oposiciones suelen profundizar más. Debes conocer las diferencias visuales y procedimentales.

  • Modelo en Cascada (Clásico): Rígido. [cite_start]Cada etapa debe terminar antes de que empiece la siguiente. [cite_start]Su mayor problema es que los errores se detectan muy tarde (en la fase de pruebas), disparando los costes de corrección.  

  • Modelo de Prototipos: Ideal cuando el cliente no tiene claros los requisitos. [cite_start]Se crea una versión rápida para obtener feedback temprano.  

  • Modelo en Espiral (Boehm, 1988): Su característica principal es el Análisis de Riesgos en cada iteración. Se divide en cuatro cuadrantes: Objetivos, Riesgos, Desarrollo y Planificación.  

  • Desarrollo Incremental: Se entrega el software por partes funcionales (incrementos).  

  • RUP (Rational Unified Process): Un marco de trabajo pesado, centrado en la arquitectura y dirigido por Casos de Uso. Se divide en 4 fases: Inicio, Elaboración, Construcción y Transición.  

  • Desarrollo Ágil: Basado en el Manifiesto Ágil (2001). Prioriza individuos e interacciones sobre procesos, y software funcionando sobre documentación extensiva.  



4. El Estándar ISO/IEC 12207

Es el estándar internacional que regula los procesos del ciclo de vida del software. Se divide en tres tipos de procesos:   

  1. Principales: Adquisición, Suministro, Desarrollo, Operación y Mantenimiento.

  2. De Apoyo: Documentación, Gestión de la Configuración, Verificación, Validación, etc.

  3. Organizativos: Gestión, Infraestructura, Mejora y Formación.