Opcions d'impressió

Mida
Compacta · 9 pt Normal · 10,5 pt Gran · 12,5 pt
Els meus apunts
No imprimir-los Incloure'ls a cada paràgraf

El navegador numera les pàgines des del seu propi quadre d'imprimir: activa-ho allà si les vols.

Els requadres grisos només surten si deixes marcada la casella «Gràfics de fons» del quadre d'imprimir.

opos

Gestió de la Qualitat del Programari

Gestió de la Qualitat del Programari

Elaboració pròpia: la font és de pagament i no es reprodueix

Enunciat oficial. Gestió de la Qualitat del Programari.


1. Concepte

Qualitat del programari: grau en què un producte de programari satisfà els requisits establerts i les necessitats i expectatives implícites dels seus usuaris.

Dues vessants:

Definició de la Gestió de la Qualitat del Programari (SQM, Software Quality Management): conjunt d'activitats sistemàtiques i planificades, aplicades al llarg de tot el cicle de vida, destinades a assegurar que tant el procés de desenvolupament com el producte resultant compleixen els requisits de qualitat establerts. Comprèn la planificació de la qualitat, l'assegurament de la qualitat (SQA, Software Quality Assurance), el control de la qualitat (SQC, Software Quality Control) i la millora.

Assegurament vs control — la distinció clau:

Assegurament (SQA) Control (SQC)
Objecte els processos els productes i entregables
Naturalesa preventiva detectiva
Pregunta ho estem fent de la manera correcta? el resultat compleix els requisits?
Activitats definició d'estàndards, auditories de procés, revisió de metodologia, formació proves, inspeccions, revisions de codi, mesures

2. Què forma part i què no de la gestió de la qualitat

Activitats pròpies: planificació de la qualitat i pla de qualitat; definició d'estàndards i de criteris d'acceptació; revisions i inspeccions; proves en tots els nivells; anàlisi estàtica; mesura amb mètriques de producte i de procés; auditories; gestió de defectes; gestió de la configuració; i millora contínua.

NO forma part de la gestió de la qualitat del programari l'estimació de costos i terminis del projecte, la negociació contractual ni la gestió de recursos humans: són activitats de direcció de projectes → temes 9 i 7. Aquesta és la distractora habitual de la pregunta «quina activitat NO forma part de la gestió de la qualitat del programari».

Caixa blanca i caixa negra, com a dues maneres de dissenyar les proves de control de qualitat: la caixa negra es basa en l'especificació, sense conèixer el codi intern; la caixa blanca analitza el funcionament intern del codi. Es desenvolupen a fons a → tema 49 (Disseny i realització de proves de programari); aquí n'hi ha prou amb la distinció.


3. Aspectes fonamentals al llarg del cicle de vida

Per garantir la qualitat del programari cal incorporar activitats de qualitat en TOTES les fases, des dels requisits fins al manteniment, i no només mitjançant proves al final. En concret:

  1. Requisits clars, complets, verificables i traçables: la majoria de defectes cars neixen aquí.
  2. Disseny i arquitectura amb atributs de qualitat explícits.
  3. Estàndards de codificació i revisions de codi sistemàtiques.
  4. Proves automatitzades integrades al pipeline de CI → tema 41.
  5. Gestió de la configuració i control de versions.
  6. Mesura contínua amb mètriques objectives.
  7. Manteniment planificat i control del deute tècnic.

Cost de la correcció: el cost d'esmenar un defecte creix exponencialment com més tard es detecta. Un error de requisits detectat en producció pot costar entre 10 i 100 vegades més que si s'hagués detectat a l'anàlisi. Prevenció millor que inspecció, i inspecció millor que correcció.


4. Normes de qualitat del producte

ISO/IEC 25000 (SQuaRE)

La IEC (International Electrotechnical Commission) i la ISO publiquen conjuntament aquesta família de normes, que substitueix la ISO/IEC 9126. La més citada és la ISO/IEC 25010, que defineix el model de qualitat del producte. La edició de 2011 —la que fan servir gairebé tots els temaris i manuals— el descriu amb vuit característiques:

Característica Subcaracterístiques
Adequació funcional completesa, correcció, pertinència
Eficiència d'acompliment comportament temporal, ús de recursos, capacitat
Compatibilitat coexistència, interoperabilitat
Usabilitat reconeixibilitat, aprenentatge, operabilitat, protecció davant errors, estètica, accessibilitat
Fiabilitat maduresa, disponibilitat, tolerància a fallides, capacitat de recuperació
Seguretat confidencialitat, integritat, no-repudi, responsabilitat, autenticitat
Mantenibilitat modularitat, reusabilitat, analitzabilitat, modificabilitat, capacitat de ser provat
Portabilitat adaptabilitat, capacitat d'instal·lació, capacitat de ser reemplaçat

Adequació funcional és la característica que mesura fins a quin punt el programari fa el que li demanen els requisits i les especificacions, i és la que es pregunta per la seva definició. No s'ha de confondre amb la portabilitat (operar en diferents plataformes), la mantenibilitat (facilitat de modificar-lo) ni la fiabilitat/seguretat (robustesa i protecció del codi).

La ISO/IEC 25012 defineix el model de qualitat de les dades → tema 31.

ISO/IEC 25010:2023: la revisió que en té nou

La ISO/IEC 25010:2023 substitueix l'edició de 2011 i passa de vuit a nou característiques. Si en un examen la compta surt diferent, és per això:

Canvi 2011 2023
Nova — Safety (seguretat física: que el producte no causi dany a persones, béns o entorn)
Renom Usabilitat Interaction Capability
Renom Portabilitat Flexibility (hi absorbeix l'escalabilitat)
Renom Seguretat Security (es manté, però ara conviu amb Safety)

La distinció que compta: Security és protecció davant l'atac —confidencialitat, integritat, no-repudi—; Safety és protecció davant el dany, i entra perquè el programari governa cotxes, dispositius mèdics i indústria.

Aquest tema desenvolupa les vuit de 2011 perquè és el vocabulari dels enunciats i dels manuals d'oposició, i nomena les nou de 2023 perquè és l'edició vigent.

Altres

ISO/IEC 12207 (processos del cicle de vida del programari), ISO/IEC 15288 (sistemes), ISO/IEC 29119 (proves de programari) → tema 49, ISO 9001 (sistema de gestió de la qualitat) → tema 13.

ISO/IEC 14764: tipus de manteniment

Desenvolupa el procés de manteniment de la ISO/IEC 12207. Defineix quatre tipus de manteniment del programari, segons si esmenen un defecte o milloren el sistema:

Tipus Què fa Es dispara per
Correctiva esmena defectes ja detectats i reportats una errada operacional evidenciada
Preventiva detecta i corregeix disfuncions latents abans que esdevinguin errades anàlisi proactiva, sense incident previ
Adaptativa adapta el programari a un entorn que canvia (nova normativa, nou sistema operatiu) un canvi extern al programari
Perfectiva / evolutiva afegeix noves funcionalitats o millora el rendiment i la mantenibilitat una necessitat nova dels usuaris

La confusió habitual és preventiva ↔ correctiva: la preventiva actua abans que hi hagi errada; la correctiva, després.


5. Models de maduresa

CMMI

Capability Maturity Model Integration — model de millora de processos desenvolupat originalment per l'SEI (Software Engineering Institute) de la Universitat Carnegie Mellon, avui gestionat per l'ISACA (Information Systems Audit and Control Association).

Afirmacions certes sobre CMMI —el que es pregunta—:

Els cinc nivells de maduresa (representació per etapes):

Nivell Nom Descripció
1 Inicial processos imprevisibles, reactius, dependents de les persones. Tota organització hi és per defecte
2 Gestionat els processos es planifiquen i s'executen segons una política, per projecte; encara reactiu
3 Definit processos estandarditzats a nivell d'organització, adaptats per cada projecte a partir del conjunt estàndard; proactiu
4 Gestionat quantitativament processos mesurats i controlats estadísticament, amb objectius quantitatius
5 En optimització millora contínua basada en l'anàlisi quantitativa i la innovació

Els cinc nivells de maduresa de CMMICinc nivells acumulatius: cap nivell s'assoleix sense el de sota.5. Enoptimització4. Gestionat quantitativament3. Definit2. Gestionat1. Inicial

Els errors habituals a les preguntes: dir que CMMI és una norma ISO o una certificació de producte; dir que té quatre o sis nivells; o afirmar que és incompatible amb l'agilisme.

Altres models: ISO/IEC 33000 (successora de la 15504 / SPICE, Software Process Improvement and Capability dEtermination), TMMi (maduresa de proves), ITIL (Information Technology Infrastructure Library) i COBIT (Control Objectives for Information and Related Technology) per a serveis i govern.


6. Tècniques i eines

Revisions estàtiques (sense executar el codi): inspeccions formals de Fagan, revisions per parells (peer review), recorreguts (walkthroughs) i revisions de codi integrades al flux de treball (pull requests). Són molt eficaces: detecten defectes que les proves no troben, especialment de disseny i de mantenibilitat.

Anàlisi estàtica automatitzada (SAST, Static Application Security Testing): SonarQube, PMD (Programming Mistake Detector), Checkstyle, SpotBugs, ESLint, Semgrep, Coverity. Detecten defectes, males pràctiques, vulnerabilitats i codi duplicat, i mesuren la complexitat ciclomàtica i la cobertura.

SonarQube és, d'aquestes, l'eina enfocada únicament en la inspecció contínua de la qualitat del codi: a diferència de Jenkins o GitLab CI/CD —orquestradors del pipeline de CI/CD → tema 41— o de Maven —eina de construcció (build) i gestió de dependències—, no executa ni orquestra el pipeline: s'hi integra com un pas més.

Anàlisi de composició (SCA, Software Composition Analysis) i SBOM (Software Bill of Materials) per a les dependències de tercers → tema 41.

Signatura d'artefactes (Sigstore/cosign) i procedència verificable (SLSA, Supply-chain Levels for Software Artifacts): permeten verificar qui va signar la imatge o el paquet i sobre quin digest, i aporten atestacions sobre com es va construir. No ho garanteixen per si soles: cal una política de verificació i admissió que les comprovi abans de desplegar, i que els controls anteriors —SAST, SCA, SBOM— hagin deixat la seva pròpia atestació. Sense aquesta política, l'artefacte va signat però ningú no ho mira.

Mètriques de producte:

Mètriques de procés: temps de lliurament, taxa de fallides dels canvis, temps de resolució de defectes, DORA (DevOps Research and Assessment) → tema 41.


7. Pràctiques de construcció


8. Al sector públic


Claus d'examen


Per recordar

Fonts d'aquest tema