Tornar al Hub

Tema 86: Cicle de Vida i Enginyeria del Programari

Reproductor d'Àudio

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:

Interoperabilitat i Seguretat
  • 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ó.
Contractació i Reutilització
  • 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.
Prototip vs MVP: No s'ha de confondre un prototip (per validar) amb el Producte Mínim Viable (MVP), que ja és una versió funcional reduïda del sistema final.

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.