ADR vs NFR: decisioni architetturali e qualità del sistema non sono la stessa cosa

ADR vs NFR spiegati: scopri come i requisiti di qualità del sistema guidano le decisioni architetturali, come gli ADR registrano i compromessi e perché la validazione rimane separata.
Pubblicato:
Aleksandar Stajić
Aggiornato: 8 ottobre 2026 alle ore 19:31
ADR vs NFR: decisioni architetturali e qualità del sistema non sono la stessa cosa

Un requisito non funzionale (NFR) descrive una qualità, un vincolo o una condizione operativa che il sistema deve soddisfare. Un record di decisione architetturale (ADR) registra una scelta architetturalmente significativa effettuata in risposta a requisiti, vincoli, rischi e compromessi. Sono collegati, ma non intercambiabili: un NFR afferma ciò che deve essere vero; un ADR spiega cosa è stato deciso, perché e con quali conseguenze.

Qual è la differenza tra un NFR e un ADR?

La distinzione più semplice è grammaticale. Un requisito descrive una condizione che il sistema deve soddisfare. Un record di decisione descrive una scelta fatta dal team.

Ad esempio, "L'API deve restituire il 95% delle richieste di lettura entro 300 ms sotto il carico di riferimento concordato" è un requisito di qualità. "Usare una cache read-through per questo carico di lavoro perché il percorso misurato solo database non può soddisfare l'obiettivo di latenza senza un costo inaccettabile" è una decisione architetturale.

La prima affermazione rimane valida anche se l'implementazione cambia. La seconda affermazione può essere successivamente sostituita da un'altra decisione se il carico di lavoro, la tecnologia, il modello di costo o le evidenze cambiano.

NFR e ADR rispondono a domande diverse

NFR / requisito di qualitàADR / decisione architetturale
Domanda principaleWhat quality, constraint, or operating condition must the system satisfy?What architecturally significant choice did we make, and why?
Contenuto tipicoMeasurable target, scope, condition, constraint, acceptance or validation ruleContext, decision, rationale, alternatives, trade-offs, status and consequences
Ruolo nel ciclo di vitaA requirement to design for and validateA historical record of a significant decision
Cosa lo prova?Measurement, test, analysis, inspection, audit or other validation evidenceThe record proves what was decided, not that the resulting system meets the requirement
Quando cambiaWhen stakeholder need, operating conditions, policy or quality target changesWhen the decision is replaced, rejected, deprecated, or superseded

Cos'è un NFR in termini architetturali precisi?

"Requisito non funzionale" è un'etichetta industriale conveniente, ma può nascondere diversi tipi di affermazioni. Nel lavoro architetturale, la distinzione utile è tra comportamento funzionale, requisiti di qualità e vincoli.

ISO/IEC 25010:2023 fornisce un modello di qualità del prodotto con nove caratteristiche e sottocaratteristiche che possono essere utilizzate per specificare e valutare la qualità dei prodotti ICT e software. Il lavoro architetturale del SEI tratta similmente i requisiti degli attributi di qualità come principali fattori trainanti dell'architettura software.

Un NFR utile non è quindi "il sistema dovrebbe essere veloce" o "la piattaforma deve essere sicura". Queste affermazioni nominano aspirazioni. Un requisito che guida l'architettura dovrebbe rendere la proprietà attesa sufficientemente testabile affinché le alternative di progettazione e le evidenze successive possano essere valutate rispetto ad esso.

Affermazione deboleForma del requisito più utilePerché la differenza conta
L'API deve essere velocePer il carico di lavoro W, il 95% dell'operazione X si completa entro T millisecondiDefinisce carico di lavoro, operazione, metrica e soglia
Il servizio deve essere disponibileIl servizio S soddisfa un obiettivo di disponibilità concordato nella finestra di misurazione M, escludendo condizioni di manutenzione esplicitamente definiteRende la disponibilità misurabile e definisce l'ambito
I dati dei tenant devono essere sicuriUna richiesta autenticata per il tenant A non deve mai recuperare o modificare i dati del tenant B attraverso i percorsi applicativi supportatiTrasforma un obiettivo di sicurezza vago in una proprietà di isolamento
Il sistema dovrebbe scalareIl sistema supporta il carico di lavoro W con concorrenza C rispettando le soglie di latenza e tasso di erroreCollega la scalabilità a un comportamento del servizio misurabile
Abbiamo bisogno di PostgreSQLNon è un NFR di per sé; indicare prima le qualità di persistenza richieste o il vincolo esternoUna scelta tecnologica è normalmente una soluzione, non il requisito che deve soddisfare

Cos'è un Architecture Decision Record?

Un Architecture Decision Record è una registrazione compatta di una decisione architetturale importante. La formulazione originale dell'ADR di Michael Nygard enfatizza il contesto, la decisione, il suo stato e le conseguenze risultanti.

L'oggetto importante è la decisione, non il modello. Team diversi usano formati ADR diversi. Un record più ricco può anche preservare alternative, criteri di decisione, compromessi, evidenze, collegamenti ai requisiti e la data o versione da cui la decisione si applica.

ISO/IEC/IEEE 42010:2022 è più ampio della pratica ADR: specifica i requisiti per le descrizioni architetturali e i loro concetti, mentre esplicitamente non prescrive un processo, una notazione, uno strumento, un formato o un mezzo per registrare una descrizione architetturale. Un ADR è quindi una tecnica pratica di registrazione delle decisioni, non un formato imposto da ISO 42010.

Campo ADRCosa preservaPerché è importante
ContestoIl problema, le forze, i requisiti, le assunzioni e l'ambiente che circondano la sceltaI lettori futuri possono ricostruire perché una scelta era necessaria
DecisioneLa scelta che è diventata autorevoleSepara l'opzione selezionata dalla discussione
StatoProposto, accettato, rifiutato, deprecato, sostituito o un altro stato controllatoImpedisce che le vecchie decisioni rimangano attive silenziosamente
AlternativeAltre opzioni valide considerateMostra che la soluzione selezionata non era l'unica immaginabile
Motivazione / compromessiPerché l'opzione è stata selezionata e cosa si rinunciaRende il ragionamento architetturale ispezionabile
ConseguenzeEffetti positivi e negativi attesi, lavoro successivo, rischiCollega una scelta locale all'impatto sul sistema
Data / versioneQuando la decisione è diventata validaSupporta la tracciabilità storica e la successiva sostituzione

L'esempio più semplice: requisito di latenza → decisione architetturale

Supponiamo che un product owner e un team di ingegneria concordino che un endpoint di ricerca debba restituire la prima pagina di risultati entro 400 ms al 95° percentile sotto un carico di riferimento definito.

Quel target non è un ADR. È un requisito di qualità. Il lavoro architetturale inizia chiedendosi quale design possa soddisfarlo sotto gli altri vincoli del sistema.

Dal requisito all'evidenza

1
1. Enunciare il requisito
Definire il target di qualità, il carico, l'ambito, la soglia e il metodo di validazione.
2
2. Identificare la rilevanza architetturale
Determinare se il requisito influenza materialmente la struttura, la tecnologia, il deployment, il flusso di dati o il modello operativo.
3
3. Valutare le opzioni
Confrontare alternative come indicizzazione, caching, denormalizzazione, lavoro asincrono, partizionamento o una diversa architettura di query.
4
4. Registrare la decisione
Catturare la scelta architetturale selezionata, la motivazione, le alternative, i compromessi, lo stato e le conseguenze in un ADR.
5
5. Implementare
Trasformare la decisione in codice, infrastruttura, configurazione e comportamento operativo.
6
6. Validare
Misurare il sistema reale rispetto al requisito originale. Il risultato del test valida l'NFR; il solo ADR no.

Gli NFR e gli ADR di solito hanno una relazione molti-a-molti

Un requisito di qualità può guidare diverse decisioni architetturali. Un requisito di isolamento dei tenant, ad esempio, può influenzare la propagazione dell'identità, lo scoping del database, il design dei job in background, le chiavi di cache, il logging di audit e gli strumenti amministrativi.

Una decisione architetturale può anche rispondere a diversi requisiti contemporaneamente. Scegliere un confine di elaborazione asincrona potrebbe migliorare la reattività e l'isolamento dei guasti, introducendo al contempo compromessi di consistenza, complessità, osservabilità e operatività.

Perché la relazione non è uno-a-uno

Lato requisitoLato decisioneLato validazione
Un NFR → molti ADRA broad quality target can constrain several architectural boundariesSeveral coordinated decisions may be requiredEvidence may need multiple tests or measurements
Molti NFR → un ADRSeveral quality and constraint drivers can point at the same design problemOne decision may balance several driversEach requirement still needs its own acceptance evidence
ADR senza un NFR classicoThe driver may be a functional need, policy, ecosystem constraint, cost or delivery conditionThe choice can still be architecturally significantValidate against the actual driver, not an invented NFR
Requisito stabile, ADR cambiaThe target can remain unchangedA better or necessary implementation choice can supersede the old decisionThe new architecture must still be checked against the same target

Una scelta tecnologica non è automaticamente un requisito

Un errore architetturale ricorrente è scrivere una tecnologia preferita nel livello dei requisiti e poi trattare il design risultante come inevitabile.

"Il sistema deve usare PostgreSQL" può essere un vincolo legittimo se un contratto, una politica di piattaforma, un requisito di compatibilità, una regola di licenza, uno standard organizzativo o un confine operativo esistente impongono effettivamente PostgreSQL. Ma se la necessità reale è la consistenza transazionale, l'interrogazione strutturata, la familiarità operativa o un obiettivo di ripristino specifico, il requisito dovrebbe enunciare quella necessità e la selezione tecnologica dovrebbe essere registrata come decisione.

AffermazioneClassificazioneMotivo
Tutte le letture con ambito tenant devono applicare l'isolamento dei tenantRequisito / proprietà di sicurezzaDescrive una proprietà che deve valere
Usare PostgreSQL Row Level Security per tabelle selezionate con ambito tenantDecisione architetturaleSceglie un meccanismo inteso ad aiutare a soddisfare la proprietà di isolamento
Il target di deployment deve essere eseguito in un ambiente approvato operato nell'UEVincolo / condizione operativa simile a un NFRLimita dove il sistema può operare
Usare il provider X nella regione YDecisione architetturale / di deployment se non imposta esternamenteSeleziona una soluzione particolare all'interno del confine consentito
Latenza API al 95° percentile ≤ 300 ms sotto il carico WRequisito di qualitàDefinisce un comportamento prestazionale misurabile
Introdurre una cache per l'endpoint XDecisione architetturaleSeleziona una tattica intesa a migliorare il comportamento misurato

Un ADR non è prova che un NFR sia stato soddisfatto

La documentazione delle decisioni e la validazione del sistema rispondono a domande diverse. Un ADR può mostrare che prestazioni, sicurezza, resilienza o manutenibilità sono state considerate. Non può da solo dimostrare che il sistema consegnato raggiunga effettivamente quelle proprietà.

La prova deve provenire dal metodo di validazione appropriato al requisito: benchmark, test di carico, test di guasto, test di sicurezza, analisi architetturale, audit, ispezione, telemetria operativa, esercizio di ripristino, studio utente o un'altra forma di evidenza.

Quando un NFR diventa architetturalmente significativo?

Non ogni requisito non funzionale merita una decisione architetturale. Il sottoinsieme importante è costituito dai requisiti che plasmano materialmente l'architettura o forzano compromessi attraverso il sistema.

La letteratura SEI utilizza il concetto di requisiti architetturalmente significativi per i requisiti con effetto architetturale di vasta portata. Attributi di qualità come prestazioni, affidabilità, sicurezza e modificabilità sono frequenti fonti di tali driver, specialmente quando comportano un elevato valore aziendale o di missione.

Test di significatività architetturale

1
1. Chiedersi se il requisito cambia la struttura
Valori diversi forzerebbero componenti, confini, percorsi dati o topologie di deployment differenti?
2
2. Chiedersi se vincola scelte tecnologiche importanti
Elimina opzioni di implementazione altrimenti praticabili?
3
3. Chiedersi se crea comportamento trasversale
Influenza molti componenti, team, interfacce o fasi del ciclo di vita?
4
4. Chiedersi se crea un compromesso difficile
Migliorare questa proprietà influisce materialmente su un'altra qualità, costo, pianificazione, complessità o rischio?
5
5. Chiedersi se il fallimento è costoso
Mancare il requisito creerebbe un impatto materiale operativo, di sicurezza, normativo, finanziario o di prodotto?
6
6. Registrare le decisioni solo dove il ragionamento vale la pena di essere preservato
Non creare ADR per ogni scelta di codifica locale; preservare le decisioni architetturalmente significative e la loro motivazione.

Un modello architetturale più forte: requisito → decisione → implementazione → validazione

La connessione più utile tra NFR e ADR è la tracciabilità. Un requisito dovrebbe poter puntare alle decisioni architetturali che lo affrontano; un ADR dovrebbe identificare i driver a cui risponde; il lavoro di implementazione dovrebbe realizzare la decisione; la validazione dovrebbe ritornare al requisito originale.

Catena di tracciabilità architetturale

1
Bisogno / obiettivo aziendale
Perché la qualità o il vincolo è importante.
2
Requisito / NFR
Cosa il sistema deve raggiungere o rispettare.
3
Driver architetturali
Quali requisiti sono abbastanza significativi da plasmare il design.
4
Opzioni
Modi plausibili per affrontare il driver.
5
ADR
La scelta selezionata, la motivazione, le alternative, i compromessi e le conseguenze.
6
Implementazione
Codice, modello dati, infrastruttura, interfacce e meccanismi operativi che realizzano la decisione.
7
Evidenza di validazione
Test, misurazioni, analisi o audit che dimostrano se il requisito originale è effettivamente soddisfatto.
8
Cambiamento / sostituzione
Nuove evidenze o requisiti modificati possono attivare un nuovo ADR preservando il ragionamento storico.

Evidenza di implementazione: come separo requisiti e decisioni in SenseFlow

In SenseFlow, la Source of Truth del progetto colloca esplicitamente i requisiti non funzionali all'interno della struttura dei requisiti insieme a dipendenze, rischi, assunzioni, criteri di accettazione e un metodo di validazione. Il modello di documentazione definisce separatamente l'integrità delle decisioni per le decisioni significative.

Per le decisioni significative di SenseFlow, i campi registrati sono Decisione, Motivo, Alternative, Compromessi, Stato e Data / Versione. Le principali decisioni architetturali e di prodotto sono destinate a rimanere storicamente tracciabili anziché essere sovrascritte quando il progetto evolve.

SenseFlow assegna anche ruoli operativi diversi a Confluence e Jira. Confluence è l'ambiente strutturato di conoscenza e decisione; Jira gestisce il lavoro di delivery azionabile. Le Epic principali di Jira dovrebbero collegarsi alla documentazione di prodotto o dei requisiti pertinente. Questo preserva la catena dall'intento di prodotto attraverso requisiti e decisioni fino all'implementazione, invece di trasformare il backlog nella Source of Truth architetturale.

Livello SenseFlowCosa contieneRuolo nella separazione ADR/NFR
Struttura di prodotto / requisitiObiettivo di prodotto, capacità, epic, user story, criteri di accettazione, attività tecniche; i requisiti possono includere NFR e metodo di validazionePreserva cosa deve essere raggiunto e come verrà verificato il successo
Integrità delle decisioniDecisione, motivo, alternative, compromessi, stato, data/versionePreserva perché una scelta architetturalmente significativa è diventata autorevole
ConfluenceRequisiti, architettura, ricerca, record delle decisioni, rischi, roadmap e fonti di supportoMantiene la Source of Truth concettuale e storica
JiraIniziative/obiettivi, epic, storie, attività e stato di deliveryEsegue il lavoro approvato senza diventare la Source of Truth concettuale
Gestione del cambiamentoStato attuale → nuova evidenza → cambiamento proposto → impatto → decisioneConsente alle decisioni di evolversi senza cancellare la traccia del ragionamento
Tracciabilità end-to-endProblema → bisogno → valore → obiettivo di prodotto → requisito → implementazione → validazioneMantiene la documentazione delle decisioni connessa al prodotto reale e al ciclo di vita dell'evidenza

Contesto di progetto enterprise: i requisiti dovrebbero precedere le scelte architetturali

La stessa separazione è utile nel lavoro di progetto orientato all'enterprise. Le decisioni architetturali prese prima che requisiti, rischi, vincoli e condizioni di accettazione siano sufficientemente compresi possono trasformare le preferenze in false necessità.

Per Enterprise Aaasaasa 0.1, la lezione pertinente è metodologica piuttosto che un'affermazione su un particolare ADR: requisiti, architettura, validazione, milestone, gestione del rischio e accettazione appartengono a un sistema di delivery connesso. Una scelta architetturale dovrebbe rimanere tracciabile rispetto al requisito o vincolo che intende affrontare.

Modalità di fallimento comuni quando ADR e NFR vengono mescolati

Modalità di fallimentoCosa succedeConseguenza
Tecnologia mascherata da requisitoUna soluzione preferita viene scritta come "deve usare X" senza stabilire il bisogno sottostanteLe alternative non vengono mai valutate e l'architettura diventa prematuramente fissa
NFR nascosto solo all'interno di un ADRLa decisione menziona un obiettivo di prestazioni/sicurezza assente dalla baseline dei requisitiL'obiettivo è difficile da validare, prioritizzare o gestire in modo indipendente
ADR trattato come provaSi presume che una scelta documentata significhi che il requisito è soddisfattoL'intento architetturale sostituisce la misurazione o la verifica
NFR vagoParole come veloce, scalabile, sicuro o manutenibile non hanno ambito misurabileStakeholder diversi possono credere che lo stesso requisito significhi cose diverse
Nessuna alternativa registrataIl team registra solo la tecnologia selezionataI futuri manutentori non possono ricostruire perché un'altra opzione è stata rifiutata
Nessun modello di sostituzioneI vecchi ADR vengono modificati o eliminati quando l'architettura cambiaIl ragionamento storico scompare e le decisioni obsolete possono rimanere ambigue
Ogni dettaglio implementativo diventa un ADRIl repository si riempie di record di scarso valoreLe scelte architetturali importanti diventano difficili da trovare
Il backlog diventa la fonte di verità dell'architetturaLe attività Jira vengono trattate come l'unica spiegazione del sistemaLo stato di consegna sopravvive, ma la motivazione architetturale e i driver di qualità vanno persi

Il framework decisionale ADR–NFR

Quando un team incontra una nuova preoccupazione architetturale, la seguente sequenza aiuta a determinare cosa appartiene ai requisiti, cosa appartiene a un ADR e cosa appartiene alle prove.

Test di classificazione ADR–NFR

1
1. Si tratta di una proprietà richiesta o di un vincolo esterno?
Se sì, scrivi o fai riferimento al requisito prima di scegliere un meccanismo.
2
2. Può essere validato?
Definisci l'ambito, la condizione, la metrica, la regola di accettazione, il metodo di analisi o altre prove necessarie.
3
3. È architetturalmente significativo?
Identifica se il requisito modella materialmente struttura, tecnologia, dati, distribuzione o compromessi trasversali.
4
4. Esistono alternative significative?
Confronta tattiche o opzioni architetturali valide invece di saltare direttamente a una tecnologia preferita.
5
5. Una scelta è diventata autorevole?
Crea o aggiorna l'ADR con contesto, decisione, motivazione, alternative, compromessi, stato e conseguenze.
6
6. La decisione è implementata?
Traccia l'ADR in progettazione, attività, codice, configurazione e operazioni.
7
7. Il requisito è soddisfatto?
Raccogli prove di validazione rispetto al requisito stesso.
8
8. Le condizioni sono cambiate?
Rivaluta il requisito e, quando necessario, sostituisci l'ADR senza cancellare la storia.

Cosa non sono ADR e NFR

Errori di categoria comuni

ConcettoNon èMotivo
NFR / requisito di qualitàA required quality, constraint or operating conditionA technology shopping listRequirements should preserve the need independently from one implementation when possible
ADRA record of an architecturally significant decisionThe complete architecture descriptionArchitecture also needs views, interfaces, models, responsibilities and other documentation
Prova di validazioneEvidence that checks whether a requirement is satisfiedThe ADR itselfDocumented intent is different from measured or analyzed system behavior
Elemento del backlogActionable delivery workA durable substitute for architecture rationaleTask state answers what is being delivered, not necessarily why the architecture exists
VincoloA condition that restricts the solution spaceAlways an internally chosen architecture decisionSome constraints come from regulation, contracts, existing platforms or organizational boundaries

Cosa cambierebbe questa risposta?

La terminologia può evolvere. ISO/IEC/IEEE 29148:2018 rimane lo standard pubblicato corrente di ingegneria dei requisiti all'8 ottobre 2026, ma ISO elenca un Draft International Standard destinato a sostituirlo. Se la nuova edizione cambia la terminologia o le linee guida sui requisiti pertinenti, i riferimenti specifici per versione in questo articolo dovrebbero essere aggiornati.

Anche i template ADR possono evolvere senza cambiare la distinzione centrale. Il template minimale di Michael Nygard, MADR, template specifici dell'organizzazione, strumenti di conoscenza architetturale o database decisionali strutturati possono tutti registrare decisioni. La domanda duratura è se il record preserva abbastanza contesto e motivazione per comprendere una scelta architetturalmente significativa.

La distinzione collasserebbe solo se un'organizzazione scegliesse deliberatamente un artefatto combinato che memorizza sia i dati del requisito che quelli della decisione in un unico documento. Anche in quel caso, i ruoli semantici rimangono diversi: un campo enuncia il risultato o il vincolo richiesto; un altro registra la risposta scelta.

Limitazioni

Questo articolo usa NFR come abbreviazione pratica. Alcuni metodi di ingegneria preferiscono termini come requisito di attributo di qualità, requisito di qualità, qualità del sistema, vincolo, obiettivo di livello di servizio o requisito architetturalmente significativo. Questi termini non sono perfettamente intercambiabili e la terminologia del progetto dovrebbe essere esplicita.

Non ogni requisito può essere ridotto a una singola soglia numerica. Sicurezza, safety, manutenibilità, interoperabilità, usabilità, spiegabilità, portabilità e governance possono richiedere combinazioni di scenari, regole strutturali, analisi, controlli di processo e prove qualitative. "Misurabile" dovrebbe significare verificabile abbastanza per la decisione, non artificialmente numerico.

Non ogni decisione architetturale necessita di un ADR formale. Il costo di documentazione dovrebbe essere proporzionale alla significatività architetturale, longevità, incertezza, complessità dei compromessi e al costo di perdere la motivazione.

Conclusione

ADR e NFR appartengono a livelli diversi del lavoro architetturale. L'NFR definisce un obiettivo di qualità, un vincolo o una condizione operativa. L'ADR registra una risposta architetturale significativa a uno o più driver.

Mantenere separati questi livelli rende l'architettura più facile da ragionare. I requisiti possono essere validati indipendentemente dalla tecnologia. Le decisioni possono essere sostituite senza riscrivere la storia. Le alternative e i compromessi rimangono visibili. Il lavoro di consegna può essere tracciato fino all'intento architetturale. Le prove possono mostrare se il sistema risultante soddisfa effettivamente il requisito.

La catena più forte quindi non è “NFR → ADR → fatto.” È bisogno → requisito → driver architetturali → opzioni → decisione → implementazione → validazione → cambiamento. Quella catena trasforma la documentazione architetturale da scartoffie statiche in un registro verificabile del perché il sistema ha la forma che ha.

FAQ

ADR vs NFR

Un ADR è un requisito non funzionale?

No. Un NFR enuncia una qualità, un vincolo o una condizione operativa richiesti. Un ADR registra una scelta architetturalmente significativa fatta in risposta a requisiti, vincoli, rischi e compromessi.

Ogni NFR dovrebbe avere un ADR?

No. Solo i requisiti che influenzano materialmente l'architettura necessitano di decisioni a livello architetturale che valga la pena preservare. Un NFR può anche guidare diversi ADR, e un ADR può rispondere a diversi requisiti.

“Usare PostgreSQL” può essere un NFR?

Solo quando PostgreSQL è genuinamente imposto come vincolo esterno. Altrimenti il bisogno sottostante dovrebbe essere espresso prima, e selezionare PostgreSQL dovrebbe normalmente essere trattato come una decisione architetturale.

Un ADR dimostra che un requisito di prestazioni o sicurezza è soddisfatto?

No. Un ADR registra intento e ragionamento. Il requisito è validato attraverso evidenze appropriate come test, misurazione, analisi, audit o telemetria operativa.

Cosa dovrebbe contenere un ADR?

Come minimo, un ADR dovrebbe rendere chiari il contesto e la decisione. Le strutture comuni includono anche stato e conseguenze. I team possono aggiungere alternative, motivazioni, compromessi, collegamenti ai requisiti, evidenze, responsabili, date e relazioni di sostituzione.

Cosa rende un NFR architetturalmente significativo?

Un requisito è architetturalmente significativo quando plasma materialmente la struttura del sistema, la tecnologia, i flussi di dati, il deployment, il comportamento trasversale o compromessi di qualità difficili, specialmente quando il fallimento comporta un elevato impatto aziendale o mission-critical.

Un vecchio ADR dovrebbe essere eliminato quando l'architettura cambia?

Di solito no. Una decisione sostitutiva dovrebbe normalmente sostituire il vecchio record in modo che il ragionamento storico rimanga tracciabile.

Glossario

Termini architetturali fondamentali

NFR
Requisito non funzionale: abbreviazione pratica per una qualità, un vincolo o una condizione operativa richiesti del sistema; la terminologia esatta varia a seconda del metodo e dello standard.
Requisito di attributo di qualità
Un requisito che descrive una proprietà di qualità che il sistema dovrebbe mostrare in condizioni definite, come prestazioni, disponibilità, sicurezza, affidabilità o modificabilità.
Architecture Decision Record (ADR)
Un registro durevole di una decisione architetturalmente significativa e del contesto sufficiente per comprendere perché la scelta è stata fatta e quali conseguenze ne derivano.
Requisito architetturalmente significativo (ASR)
Un requisito con un impatto architetturale sufficientemente ampio da influenzare materialmente il design del sistema.
Vincolo
Una condizione che restringe lo spazio delle soluzioni, inclusi policy esterne, regolamentazioni, piattaforme, compatibilità, confini contrattuali o organizzativi.
Compromesso
Una relazione di design in cui migliorare un obiettivo, una proprietà o una dimensione di costo può peggiorarne un'altra.
Validazione
Lavoro che produce evidenze utilizzato per determinare se il sistema implementato soddisfa il requisito dichiarato nelle condizioni rilevanti.
ADR sostituito
Un registro decisionale storico che è stato sostituito da una decisione autorevole più recente pur rimanendo disponibile per la tracciabilità.

Fonti primarie ed evidenze di implementazione

Questo articolo separa gli standard attuali dalle evidenze di implementazione del progetto. ISO/IEC/IEEE 29148:2018 rimane attuale all'8 ottobre 2026 ma è contrassegnato per revisione; ISO/IEC 25010:2023 e ISO/IEC/IEEE 42010:2022 sono edizioni pubblicate attuali. SenseFlow è evidenza originale del progetto per il modello di tracciabilità e integrità decisionale descritto sopra.

ISO/IEC/IEEE 29148:2018 — Ingegneria dei requisiti

Standard attuale pubblicato di ingegneria dei requisiti. ISO afferma che l'edizione 2018 è stata riesaminata e confermata nel 2024 e si prevede che sarà sostituita dal DIS attualmente in sviluppo.

ISO/IEC/IEEE DIS 29148 — Ingegneria dei requisiti

Draft International Standard attualmente in sviluppo e destinato a sostituire ISO/IEC/IEEE 29148:2018.

ISO/IEC 25010:2023 — Modello di qualità del prodotto

Modello attuale di qualità del prodotto con nove caratteristiche di qualità utilizzate per specificare, misurare e valutare la qualità dei prodotti ICT e software.

ISO/IEC/IEEE 42010:2022 — Descrizione dell'architettura

Standard attuale di descrizione dell'architettura. Specifica i concetti di descrizione dell'architettura e i requisiti di conformità senza prescrivere un formato di registrazione, una notazione, un processo o uno strumento.

Michael Nygard — Documentare le decisioni architetturali

Articolo originale influente sugli ADR che descrive registri leggeri incentrati su contesto, decisione, stato e conseguenze, con le decisioni sostituite conservate per la comprensione storica.

SEI — Collegare gli obiettivi di business ai requisiti architetturalmente significativi

Rapporto SEI che spiega come i requisiti di attributi di qualità e gli obiettivi di business guidano l'architettura software e perché i requisiti architetturalmente significativi necessitano di elicitazione esplicita.

SEI — Definire le qualità non funzionali del sistema

Panoramica SEI che collega attributi non funzionali/di qualità con architettura, scenari, compromessi e valutazione oggettiva del sistema.

SEI — Raccolta del metodo Attribute-Driven Design

Metodo di progettazione architetturale basato su requisiti funzionali, requisiti di attributi di qualità e vincoli, con tattiche e pattern architetturali selezionati per soddisfare scenari di qualità.

SEI — Raccolta Views and Beyond

Guida alla documentazione architetturale che enfatizza le viste rilevanti e la registrazione delle decisioni di design necessarie come parte del lavoro architetturale.