El modelo de proceso en espiral -> Permite el desarrollo del software en versiones incrementales, y está dividido en ciclos en el que se aplican un conjunto de actividades.
El modelo en espiral, propuesto por Barry Boehm en 1988, combina las ventajas del modelo en cascada y del desarrollo iterativo.
Cada vuelta de la espiral constituye un ciclo en el que se realizan actividades como:
- Definición de objetivos.
- Análisis de riesgos.
- Desarrollo y validación.
- Planificación de la siguiente iteración.
Cada ciclo produce una versión incremental del sistema.
Desarrollo basado en métodos formales o herramientas CASE -> Permite la producción automática de diseño y código, a partir de una especificación formal de un producto software utilizando herramientas que ayuden a esta labor.
Desarrollo basado en componentes reutilizables (CBSE) -> Permite la reutilización de piezas de código ya existente (espiral de uso), que ensamblados mediante interfaces estándar reduce el ciclo de desarrollo.
¿Qué requisitos no funcionales define el cumplimiento con normativas legales? -> Requisitos externos.
Según la clasificación clásica de Software Engineering, los requisitos no funcionales se dividen en:
- Requisitos de producto
- Requisitos organizativos
- Requisitos externos
Los requisitos externos son los impuestos desde fuera del sistema, por ejemplo:
- legislación;
- normativa;
- reglamentos;
- interoperabilidad;
- privacidad;
- seguridad obligatoria.
Por tanto, el cumplimiento de normativas legales es un requisito externo.
Requisitos de rendimiento -> Son requisitos de producto (por ejemplo: tiempo de respuesta, número de usuarios, throughput…)
Requisitos organizativos -> Proceden de la organización (Ejemplos: utilizar Java, utilizar Oracle, seguir Métrica v3, usar Git…)
Requisitos de producto -> Describen propiedades del sistema (Ejemplos: disponibilidad, fiabilidad, rendimiento, usabilidad…)
Esquema muy útil para estudiar
Requisitos no funcionales
1. Producto
Cómo debe funcionar.
- Rendimiento.
- Fiabilidad.
- Seguridad.
- Usabilidad.
2. Organizativos
Impuestos por la organización.
- Lenguaje.
- Metodología.
- Herramientas.
- Estándares internos.
3. Externos
Impuestos desde fuera.
- ✅ Leyes.
- ✅ Reglamentos.
- ✅ RGPD.
- ✅ ENS.
- ✅ ENI.
- Licencias.
Truco para recordar
Externo
↓
Viene de fuera de la empresa.
↓
Leyes.
En el modelo de vista arquitectónica 4+1, la quinta vista es un pequeño conjunto de casos de uso o escenarios utilizados para ilustrar la descripción de la arquitectura, ¿cuáles son las otras cuatro? -> La vista lógica, la vista de desarrollo, la vista de proceso y la vista física
El modelo 4+1, propuesto por Philippe Kruchten, describe una arquitectura mediante cinco vistas:
- Vista física (Physical View).
- Vista lógica (Logical View).
- Vista de desarrollo (Development View).
- Vista de proceso (Process View).
- +1 Casos de uso o escenarios (Use Cases / Scenarios).
Esquema muy útil para estudiar
Modelo 4+1
Vista lógica
Describe:
- clases;
- objetos;
- funcionalidad.
Para: analistas y usuarios.
Vista de desarrollo
Describe:
- componentes;
- módulos;
- organización del código.
Para: desarrolladores.
Vista de proceso
Describe:
- concurrencia;
- procesos;
- comunicación;
- rendimiento.
Vista física
Describe:
- servidores;
- nodos;
- red;
- despliegue físico.
+1 Escenarios
Casos de uso.
Sirven para validar que la arquitectura satisface los requisitos.
Truco para recordar
Las cuatro vistas son:
- Lógica
- Desarrollo
- Proceso
- Física
Escenarios
En relación al modelo de ciclo de vida de desarrollo de prototipado incremental:
- Incorpora conceptos del Modelo en Cascada y del Modelo de Prototipos.
- El proyecto se desarrolla en capas.
- Los requisitos se conocen en su totalidad, pero su implementación se va dosificando deliberadamente
- Uno de los objetivos del prototipado incremental es entregar funcionalidad antes y obtener resultados visibles desde fases tempranas, por lo que no se caracteriza por desarrollar más lentamente.
El prototipado incremental combina ideas de ambos:
- Del modelo en cascada: planificación y desarrollo relativamente estructurado.
- Del modelo de prototipos: construcción progresiva y validación con el usuario.
Normalmente:
- Se entregan versiones parciales.
- El usuario obtiene funcionalidad antes.
- Se reduce el riesgo de descubrir errores al final del proyecto.
El desarrollo completo puede durar lo mismo o incluso más, pero el sistema empieza a aportar valor mucho antes.
El proyecto se desarrolla en capas. Más exactamente, por incrementos o capas funcionales. Cada incremento añade nuevas funcionalidades hasta completar el sistema.
Una característica del modelo incremental:
- Los requisitos están definidos desde el inicio (al menos en gran medida).
- Se decide implementar primero unas funcionalidades y después otras.
Si los requisitos fueran desconocidos o muy cambiantes, sería más apropiado un modelo de prototipos evolutivos o metodologías ágiles.
Esquema para el examen
Modelo incremental
Características:
- ✅ Requisitos generalmente conocidos.
- ✅ Desarrollo por incrementos.
- ✅ Entregas parciales.
- ✅ Incorpora funcionalidad progresivamente.
- ✅ Reduce riesgos.
- ✅ El usuario puede utilizar el sistema antes de que esté terminado.
No confundir
| Modelo | Requisitos |
|---|---|
| Cascada | Conocidos y estables |
| Prototipos | Poco conocidos |
| Incremental | Conocidos, implementación progresiva |
| Espiral | Alto riesgo |
| Scrum | Cambiantes y evolutivos |
Truco para recordar
Incremental = construir una casa planta por planta.
Sabes desde el principio cómo será la casa (los requisitos), pero:
- primero construyes la planta baja,
- luego la primera,
- después la segunda…
No esperas a terminar toda la casa para empezar a usarla.