Modelos de ciclo de vida · Gestión del desarrollo · Determinación de requerimientos
La versión vigente es Métrica Versión 3 (2001). Cubre el proceso de desarrollo completo, desde la planificación hasta el mantenimiento. Está basada en el estándar ISO/IEC 12207 (ciclo de vida del software) y es compatible con estándares como ISO 9000 y CMMI.
Su objetivo es proporcionar un marco normativo que permita obtener sistemas de información de calidad, que satisfagan las necesidades de los usuarios dentro del tiempo y presupuesto previstos.
| Proceso | Acrónimo | Descripción |
|---|---|---|
| Planificación de Sistemas de Información | PSI | Define el marco de referencia tecnológico y organizativo |
| Desarrollo de Sistemas de Información | DSI | Contempla las actividades de análisis, diseño, construcción e implantación |
| Mantenimiento de Sistemas de Información | MSI | Gestión de cambios en el sistema tras su puesta en producción |
El proceso de desarrollo se articula en los siguientes subprocesos o fases:
| Fase | Sigla | Objetivo principal | Producto clave |
|---|---|---|---|
| Estudio de Viabilidad del Sistema | EVS | Analizar si el sistema es viable técnica, económica y operativamente | Informe de Viabilidad |
| Análisis del Sistema de Información | ASI | Obtener una especificación detallada del sistema | Especificación de Requisitos Software (ERS) |
| Diseño del Sistema de Información | DSI | Definir la arquitectura del sistema y sus componentes | Especificación de Diseño |
| Construcción del Sistema de Información | CSI | Desarrollar y probar el sistema | Código fuente, manuales |
| Implantación y Aceptación del Sistema | IAS | Poner en producción el sistema con aceptación del usuario | Sistema en producción |
Planifica y controla el proyecto en todas sus fases. Es transversal a todo el ciclo de vida.
Garantiza la seguridad en todos los procesos del ciclo de vida del sistema.
Control de versiones, cambios y productos generados a lo largo del proyecto.
Verifica que los productos y procesos cumplan los estándares de calidad establecidos.
| Técnica | Aplicación en Métrica |
|---|---|
| Orientación a Objetos (OO) | Utiliza UML como lenguaje de modelado en ASI y DSI |
| Estructurado | Diagramas de flujo de datos (DFD), entidad-relación en ASI y DSI |
| Casos de Uso | Para captura de requisitos funcionales en ASI |
| Prototipos | Recogida y validación de requisitos con el usuario |
| JAD / RAD | Talleres de trabajo estructurado con usuarios |
El modelo más clásico. Las fases se ejecutan de forma secuencial y lineal. Cada fase produce un entregable que sirve de entrada a la siguiente. No se avanza a la siguiente fase hasta completar la anterior.
| Característica | Descripción |
|---|---|
| Estructura | Secuencial, lineal, sin retorno |
| Ventajas | Simple, bien documentado, fácil de gestionar, claro para proyectos con requisitos estables |
| Inconvenientes | Poca flexibilidad ante cambios, el cliente no ve el producto hasta el final, errores tardíos son costosos |
| Uso recomendado | Proyectos con requisitos bien definidos y poco cambiantes |
Variante del anterior que permite retroceder a fases anteriores cuando se detectan errores o cambios. Es el modelo base de Métrica v3.
Combina el desarrollo iterativo con el análisis de riesgo. Cada ciclo de la espiral pasa por cuatro cuadrantes:
| Cuadrante | Actividad |
|---|---|
| 1. Planificación | Determinación de objetivos, alternativas y restricciones |
| 2. Análisis de riesgo | Evaluación de alternativas, identificación y resolución de riesgos |
| 3. Desarrollo y prueba | Desarrollo del producto del nivel siguiente |
| 4. Evaluación del cliente | Revisión de resultados y planificación del siguiente ciclo |
Ventaja principal: Gestión explícita del riesgo en cada iteración. Inconveniente: Complejidad de gestión y aplicable principalmente en proyectos grandes.
| Subtipo | Descripción | Diferencia clave |
|---|---|---|
| Incremental | Se construye el sistema en incrementos funcionales. Cada incremento añade nueva funcionalidad al anterior | Cada entrega es un subconjunto completo y funcional |
| Iterativo | Se desarrolla el sistema completo pero de forma refinada en cada iteración, mejorando la versión anterior | Se trabaja sobre el sistema completo desde el inicio, refinándolo |
Se construye un prototipo inicial (maqueta del sistema) para que el usuario lo evalúe y permita clarificar los requisitos antes del desarrollo definitivo.
| Tipo de prototipo | Descripción |
|---|---|
| Prototipo desechable (Throwaway) | Se construye para clarificar requisitos y luego se descarta. El sistema final se construye desde cero |
| Prototipo evolutivo | El prototipo evoluciona hasta convertirse en el sistema final. Riesgo de degradación de calidad |
| Prototipo incremental | Se construyen prototipos de distintas partes del sistema que se van integrando |
Orientado a reducir drásticamente el tiempo de desarrollo. Se basa en el uso de herramientas CASE, desarrollo en equipo paralelo y prototipos. Ciclos muy cortos (60-90 días).
| Fase RAD | Actividad |
|---|---|
| Modelado de negocio | ¿Qué información maneja el negocio? |
| Modelado de datos | Identificación de objetos de datos y sus relaciones |
| Modelado de procesos | Transformaciones para producir la información |
| Generación de aplicaciones | Construcción con herramientas automáticas (CASE, 4GL) |
| Pruebas y entrega | Verificación de nuevos componentes |
| Modelo | Requisitos | Riesgo | Participación usuario | Documentación |
|---|---|---|---|---|
| Cascada | Estables, bien definidos | Alto (se detecta tarde) | Inicio y fin | Exhaustiva |
| Espiral | Pueden evolucionar | Gestionado explícitamente | En cada ciclo | Alta |
| Incremental | Pueden añadirse | Medio | En cada incremento | Media |
| Prototipado | Difusos, cambiantes | Bajo (se valida pronto) | Continua | Baja/media |
| RAD | Bien conocidos, acotados | Bajo-medio | Muy alta (workshops) | Reducida |
El sistema debe cumplir todas las necesidades funcionales y no funcionales establecidas por los usuarios.
El software debe ser correcto, fiable, eficiente, usable, mantenible y portable (según ISO/IEC 25010).
Entregar el sistema en los tiempos acordados con el cliente/organización.
Ajustarse al presupuesto estimado. Evitar desviaciones mediante seguimiento continuo.
Identificar, analizar y mitigar los riesgos que pueden afectar al proyecto a lo largo de su ciclo de vida.
Garantizar una comunicación fluida entre todos los agentes implicados en el proyecto.
En Métrica v3, la Gestión de Proyectos (GP) es un proceso transversal con las siguientes actividades principales:
| Actividad de Gestión | Descripción | Herramientas/técnicas |
|---|---|---|
| Inicio y planificación | Definición del alcance, recursos, plazos y estructura del proyecto. Elaboración del Plan de Proyecto | WBS, diagrama de Gantt, PERT/CPM |
| Estimación | Cálculo del esfuerzo, coste y duración del proyecto | Puntos de función, COCOMO, juicio experto, Planning Poker |
| Planificación de riesgos | Identificación de riesgos, evaluación de su probabilidad e impacto, y definición de planes de contingencia | Matriz de riesgos, registro de riesgos |
| Seguimiento y control | Comparación entre lo planificado y lo real. Detección y corrección de desviaciones | Informes de seguimiento, valor ganado (EVM) |
| Gestión de recursos humanos | Asignación de roles, responsabilidades y perfiles al equipo de proyecto | Matriz RACI, organigrama del proyecto |
| Gestión de la comunicación | Definición de los flujos de información entre interesados (stakeholders) | Plan de comunicación, actas de reunión |
| Gestión de cambios | Control formal de las solicitudes de cambio sobre alcance, requisitos o diseño | Formularios de cambio, registro de cambios |
| Cierre del proyecto | Aceptación formal, lecciones aprendidas y archivo de documentación | Acta de cierre, informe final |
El desarrollo en fases permite dividir el proyecto en etapas claramente delimitadas, cada una con entradas, salidas (productos o entregables) y criterios de finalización definidos.
Métrica v3 define claramente los participantes (agentes) del proceso de desarrollo, sus roles y sus responsabilidades:
| Agente | Rol en Métrica | Responsabilidades principales |
|---|---|---|
| Jefe de Proyecto | Dirección y coordinación | Planificación del proyecto, seguimiento y control, gestión de riesgos, comunicación con los interesados, toma de decisiones ejecutivas |
| Consultor | Asesoramiento técnico/metodológico | Apoya en la elección de técnicas y herramientas, revisa la aplicación de la metodología, propone mejoras de proceso |
| Analista | Análisis y especificación | Obtención y especificación de requisitos, modelado funcional y de datos, elaboración de la ERS, validación con usuarios |
| Analista-Programador | Análisis técnico y desarrollo | Diseño técnico detallado, desarrollo de componentes complejos, pruebas de integración |
| Programador | Construcción del software | Codificación de componentes, pruebas unitarias, corrección de defectos en construcción |
| Técnico de Sistemas | Infraestructura y entorno | Definición del entorno tecnológico, instalación y configuración de herramientas, soporte al equipo de desarrollo |
| Técnico de Comunicaciones | Redes y comunicaciones | Diseño de la arquitectura de red, seguridad de comunicaciones, integración con otros sistemas |
| Responsable de Seguridad | Seguridad del sistema | Definición de políticas de seguridad, revisión de controles, análisis de riesgos de seguridad |
| Responsable de Calidad (CAL) | Aseguramiento de calidad | Planificación y seguimiento del plan de calidad, revisiones e inspecciones, auditorías de proceso |
| Responsable de Implantación | Despliegue del sistema | Coordinación de la puesta en marcha, migración de datos, formación, pruebas de aceptación |
| Usuario Experto | Representante del cliente/usuario | Aporta conocimiento del negocio, valida requisitos, participa en pruebas de aceptación, aprueba entregables |
| Directivo Responsable del Sistema | Patrocinio y supervisión | Aprueba el Plan de Proyecto, asigna recursos, resuelve conflictos de alto nivel, acepta el sistema final |
| Tipo | Descripción | Ejemplos |
|---|---|---|
| Funcionales | Definen qué debe hacer el sistema (funciones, comportamientos) | El sistema debe permitir registrar un nuevo usuario |
| No funcionales | Definen cómo debe ser el sistema (calidad del servicio) | El tiempo de respuesta debe ser <2 segundos |
| De información | Datos que el sistema debe almacenar y gestionar | El sistema almacenará nombre, NIF y dirección del cliente |
| De restricción | Limitaciones impuestas al sistema (tecnología, normativa) | Debe cumplir el RGPD; solo se usará Oracle como SGBD |
La entrevista es la técnica más utilizada para la obtención de requisitos. Consiste en una conversación estructurada entre el analista y el usuario o experto del dominio.
| Tipo de entrevista | Descripción | Cuándo usarla |
|---|---|---|
| Estructurada | Preguntas predefinidas, orden fijo, respuestas cerradas | Cuando se necesita información comparable entre entrevistados |
| No estructurada | Conversación libre, abierta, guiada por el entrevistado | Para explorar el dominio y descubrir problemas latentes |
| Semiestructurada | Combinación: preguntas base + libertad para explorar | Situación más habitual en proyectos reales |
| Ventajas | Inconvenientes |
|---|---|
|
|
Consiste en obtener los requisitos del nuevo sistema analizando el sistema o sistemas que actualmente se utilizan (manuales o automatizados) para realizar las mismas funciones.
| Técnica | Descripción |
|---|---|
| Ingeniería inversa | Análisis del código existente para deducir la funcionalidad y el diseño del sistema actual |
| Reingeniería | Análisis y transformación del sistema actual para mejorar su calidad sin cambiar su funcionalidad |
| Análisis de documentos | Revisión sistemática de manuales, formularios, organigramas y procedimientos |
| Observación (shadowing) | El analista observa directamente cómo el usuario trabaja con el sistema actual |
| Ventajas | Inconvenientes |
|---|---|
|
|
JAD (Joint Application Development) es una técnica de trabajo en grupo estructurado en el que usuarios, directivos y analistas se reúnen en sesiones de trabajo (workshops) para definir conjuntamente los requisitos del sistema.
| Participante JAD | Rol |
|---|---|
| Facilitador (Líder) | Dirige y modera la sesión. Experto en técnicas de grupo y metodología |
| Patrocinador | Directivo con autoridad para tomar decisiones |
| Usuarios clave | Expertos en el negocio, los que más conocen las necesidades |
| Analistas | Recogen y documentan los requisitos identificados |
| Representante de TI | Aporta perspectiva técnica y de viabilidad |
Un prototipo es una versión preliminar, simplificada o parcial del sistema que se construye para que el usuario interactúe con él y pueda identificar sus verdaderas necesidades y validar los requisitos.
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Maqueta de interfaz (Mockup) | Representación visual estática de las pantallas del sistema, sin funcionalidad real | Wireframes en papel o herramientas como Figma/Balsamiq |
| Prototipo funcional horizontal | Cubre muchas funcionalidades pero de forma superficial (sin lógica de negocio profunda) | Navegación completa pero sin cálculos reales |
| Prototipo funcional vertical | Cubre una funcionalidad concreta de forma completa (de principio a fin) | Módulo de altas completo pero no los demás módulos |
| Prototipo desechable | Se construye solo para validar requisitos; después se descarta y se construye el sistema desde cero | Prototipo de interfaz para confirmar flujo de trabajo |
| Prototipo evolutivo | Se construye el prototipo y evoluciona hasta convertirse en el sistema final | Aplicaciones web desarrolladas iterativamente |
| Ventajas del Prototipado | Riesgos e Inconvenientes |
|---|---|
|
|
| Técnica | Participación usuario | Coste/tiempo | Mejor para | Riesgo principal |
|---|---|---|---|---|
| Entrevistas | Media-alta (1 a 1) | Medio | Explorar el dominio, requisitos complejos | Información sesgada por el entrevistado |
| Cuestionarios | Baja (asíncrona) | Bajo | Muchos usuarios dispersos | Respuestas superficiales, baja tasa de respuesta |
| Derivación (sistema existente) | Baja (indirecta) | Medio-alto | Sustitución o renovación de sistemas | Heredar defectos del sistema actual |
| JAD / Talleres | Muy alta (grupo) | Alto puntual, bajo total | Proyectos con muchos stakeholders, consenso urgente | Dificultad de coordinar agendas |
| Prototipos | Muy alta (iterativa) | Medio-alto | Requisitos difusos, interfaces de usuario | Confundir prototipo con sistema final |
| Observación directa | Pasiva | Bajo-medio | Procesos en los que el usuario no verbaliza bien sus necesidades | El usuario cambia comportamiento al ser observado |
Una vez obtenidos, los requisitos deben ser validados para garantizar su calidad:
| Criterio de calidad | Descripción |
|---|---|
| Correcto | Refleja fielmente la necesidad del usuario |
| Completo | Cubre todas las necesidades sin omisiones |
| Consistente | No hay contradicciones entre requisitos |
| No ambiguo | Tiene una única interpretación posible |
| Verificable | Puede comprobarse si el sistema lo cumple o no |
| Trazable | Puede seguirse desde su origen hasta su implementación |
| Priorizable | Se puede determinar su importancia relativa |