1. Conceptes Bàsics i Marc Jurídic
El cicle de vida sorgeix de la "crisi del programari" (anys 70) i és un marc de referència de processos, activitats i tasques (desenvolupament, explotació, manteniment) per garantir fiabilitat i planificació.
Pel que fa al marc jurídic aplicable a l'Administració Pública:
- RD 4/2010 (ENI): Integrat en tot el cicle (Arts. 5 i 26).
- RD 311/2022 (ENS): Mesures de "protecció de les aplicacions" des del disseny i acceptació.
- Llei 9/2017 (LCSP): Prog. estàndard = Subministrament. A mida = Serveis.
- Llei 40/2015: Obligatori consultar el directori per solucions reutilitzables.
- RGPD i Propietat: Incorporar privacitat en tot el cicle.
2. Estàndards Internacionals i S-SDLC
A nivell d'estàndards internacionals, trobem tres grans famílies ISO rellevants:
| Estàndard | Descripció i Classificació |
|---|---|
| ISO/IEC 12207:2017 | Cicle de Vida del Programari. Processos: Primaris (adquisició, desenvolupament, manteniment), Suport (QA, configuració), Organitzatius (RRHH, infraestructura). |
| ISO/IEC 15288:2015 | Cicle de Vida del Sistema (general, no només programari). 25 processos. |
| ISO/IEC 15504 (SPICE) | Avaluació de la maduresa. Nivells del 0 (incomplet) al 5 (optimització). |
L'enginyeria del programari es compon de fases (definició, desenvolupament, manteniment). Aquí la seguretat juga un rol essencial:
- Entorns Separats i Dades: Desenvolupament, preproducció i producció. L'RGPD i el SEPD recomanen dades sintètiques o anonimitzades per a proves.
- S-SDLC (Desenvolupament Segur): Integra controls en disseny (requisits segurs), implementació (codi segur), desplegament i operacions. Models de maduresa: OWASP SAMM o ISO 33000.
3. Models de Cicle de Vida (Tradicionals i Iteratius)
Passem ara a analitzar els models orientats a projecte.
Seqüencials
- Cascada: Clar però rígid. El pas de fase requereix documentació tancada.
- Model en V: Branca descendent (desenvolupament) i ascendent (proves previstes des de l'inici).
Prototips i Incremental
- Prototipat ràpid: Validació ràpida i després es llença.
- Prototipat evolutiu: Evoluciona amb l'usuari (requisits incerts).
- Incremental: Es coneixen els requisits i es lliuren versions parcials i útils de forma primerenca.
Altres Models
- Espiral: Iteratiu dirigit per l'anàlisi de riscos.
- Basat en components: Reutilització de peces.
- Mètodes formals: Matemàtica (complex/costós).
- Unificat: Iteratiu, casos d'ús i objectes.
4. Models de Cicle de Vida Àgil
Finalment, arribem al model àgil, basat en etapes curtes i solapades (cicle iteratiu/incremental) i alta participació del client (tot i que genera menys documentació).
1. Kanban
- Centrat en el flux continu de tasques.
- Limita el treball en progrés (WIP limits).
2. Scrum
- Centrat en iteracions tancades de temps fix.
- Cicles curts de treball anomenats 'sprints'.
3. Programació Extrema (XP)
- Requisits = Històries d'usuari.
- Proves abans d'escriure el codi (TDD).
- Refactorització contínua i lliuraments petits.