Esistono molti diversi sistemi di classificazione dei requisiti, nel mondo del software.
Uno è lo standard ISO25010. Un altro il mio sistema di classificazione, FOCUS-TBD. Qui di seguito, in sintesi, alcuni tra i più diffusi tra gli altri sistemi classificatori.
ISO 9126
La norma ISO 9126 non nasce per classificare i requisiti, è relativa agli aspetti di qualità dei prodotti sw. Ma è stata molto usata nella classificazione dei requisiti.
Dal 2011, la norma ISO 9126 è sostituita da ISO25010.
Prevede sei categorie principali, ciascuna suddivisa in sottocategorie:
Functionality – A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs.
- Suitability
- Accuracy
- Interoperability
- Compliance
- Security
Reliability – A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time.
- Maturity
- Recoverability
- Fault Tolerance
Usability – A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users.
- Learnability
- Understandability
- Operability
Efficiency – A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions.
- Time behaviour
- Resource behaviour
Maintainability – A set of attributes that bear on the effort needed to make specified modifications.
- Stability
- Analysability
- Changeability
- Testability
Portability – A set of attributes that bear on the ability of software to be transferred from one environment to another.
- Installability
- Replaceability
- Adaptability
Incose
(International Council on Systems Engineering). Il Requirements Working Group (2001) prevede le seguenti tipologie.
Functional – requisito funzionale: cosa va realizzato
Performance – in che modo le funzioni vanno realizzate
Quality Factor – altri fattori di qualità del prodotto o del processo, così dettagliati:
- Workmanship requirements – abilità tecnica, esecuzione
- Reliability, availability – affidabilità, disponibilità
- Maintainability – mantenibilità
- Supportability – modalità di supporto
- Portability – portabilità
- Flexibility – flessibilità
- Usability – usabilità
- Safety – sicurezza (assenza di danni, incolumità)
- Security – sicurezza (assenza di accessi inopportuni)
- Integrity – integrità (es. integrità referenziale)
Environment – requisiti sull’ambiente fisico (ma anche socio-politico-economico) in cui il
sistema viene eseguito, o viene effettuato il lavoro
Physical – requisiti sul formato fisico del prodotto
Interface – requisiti sulle interfacce del prodotto con l’esterno
Constraint – vincoli sulle modalità di applicazione degli altri requisiti, o su come va effettuato il lavoro
Volere
(template per la specifica dei requisiti di James e Suzanne Robertson) ha queste categorie:
Requisiti funzionali e sui dati (Functional and Data Requirements)
- Requisiti funzionali (Functional Requirements)
- Requisiti sui dati (Data Requirements)
Requisiti di aspetto e percezione (Look and Feel Requirements)
- Requisiti di aspetto del prodotto (Appearance Requirements)
- Requisiti di stile (Style Requirements)
Requisiti di usabilità e sui fattori umani (Usability and Humanity Requirements)
- Requisiti di facilità d’uso (Ease of Use Requirements)
- Requisiti di personalizzazione ed internazionalizzazione (Personalization and Internationalization Requirements)
- Requisiti di apprendimento (Learning Requirements)
- Requisiti di comprensibilità e cortesia (Understandability and Politeness Requirements)
Requisiti di prestazioni (Performance Requirements)
- Requisiti di velocità e latenza (Speed and Latency Requirements)
- Requisiti di sicurezza fisica (Safety-Critical Requirements)
- Requisiti di precisione o accuratezza (Precision or Accuracy Requirements)
- Requisiti di affidabilità e disponibilità (Reliability and Availability Requirements)
- Requisiti di robustezza o tolleranza ai malfunzionamenti (Robustness or Fault-Tolerance Requirements)
- Requisiti di capacità (Capacity Requirements)
- Requisiti di scalabilità o estensibilità (Scalability or Extensibility Requirements)
- Requisiti di longevità (Longevity Requirements)
Requisiti di operatività ed ambientali (Operational and Environmental Requirements)
- Ambiente fisico previsto (Expected Physical Environment)
- Requisiti di interazione con sistemi adiacenti (Requirements for Interfacing with Adjacent Systems)
- Requisiti di ingegnerizzazione del prodotto (Productization Requirements)
- Requisiti di rilascio (Release Requirements)
Requisiti di manutenibilità e supporto (Maintainability and Support Requirements)
- Requisiti di manutenibilità (Maintenance Requirements)
- Requisiti sul supporto (Supportability Requirements)
- Requisiti di adattabilità (Adaptability Requirements)
Requisiti di sicurezza (Security Requirements)
- Requisiti di accesso (Access Requirements)
- Requisiti di integrità (Integrity Requirements)
- Requisiti di riservatezza (Privacy Requirements)
- Requisiti di audit (Audit Requirements)
- Requisiti di immunità (Immunity Requirements)
Requisiti culturali e politici (Cultural and Political Requirements)
- Requisiti culturali (Cultural Requirements)
- Requisiti politici (Political Requirements)
Requisiti legali (Legal Requirements)
- Requisiti di conformità (Compliance Requirements)
- Requisiti sugli standard (Standards Requirements)
Migrazione al nuovo prodotto (Migration to the New Product)
- Requisiti per la migrazione al nuovo prodotto (Requirements for Migration to the New Product)
- Dati da modificare o tradurre per il nuovo sistema (Data That Has to Be Modified or Translated for the New System)
Documentazione utente e formazione (User Documentation and Training)
- Requisiti di documentazione utente (User Documentation Requirements)
- Requisiti di formazione (Training Requirements)
Vincoli imposti (Mandated Constraints)
- Vincoli alla soluzione (Solution Constraints)
- Ambiente di implementazione del sistema attuale (Implementation Environment of the Current System)
- Applicazioni partner o collaboranti (Partner or Collaborative Applications)
- Software da scaffale (Off-the-Shelf Software)
- Ambiente di operatività previsto (Anticipated Workplace Environment)
- Vincoli temporali (Schedule Constraints )
- Vincoli economici (Budget Constraints)