Analisi dei requisiti software con esempi

โšก Riepilogo intelligente

L'analisi dei requisiti software scompone le esigenze degli stakeholder in dichiarazioni funzionali e non funzionali, le classifica a livello aziendale, architettonico e di sistema, quindi controlla ciascuna di esse rispetto agli attributi di qualitร  per garantire un testabile, tracSpecifiche chiare e prioritarie.

  • ๐Ÿ“ Tipologie di requisiti: I requisiti aziendali, architettonici e di progettazione, nonchรฉ i requisiti di sistema e di integrazione, costituiscono i tre livelli che strutturano ogni specifica software.
  • ๐Ÿ”€ Funzionale vs. non funzionale: Le specifiche funzionali descrivono ciรฒ che il sistema deve fare, mentre le specifiche non funzionali definiscono obiettivi misurabili in termini di prestazioni, sicurezza e usabilitร .
  • ๐Ÿ“š Fonti alternative: Quando mancano brief formali, i requisiti possono essere forniti da colleghi, versioni precedenti, documenti di requisiti piรน datati, segnalazioni di bug e guide all'installazione.
  • โœ… Attributi di qualitร : Atomic, identificato in modo univoco, completo, coerente, tracDefinire le prioritร  e verificare la fattibilitร  sono i sette attributi che ogni requisito deve possedere.
  • ๐Ÿ”— Da un capo all'altro Traccapacitร : I requisiti aziendali vengono mappati sulla progettazione, la progettazione sul codice e il codice sui casi di test, in modo che l'ambito e la copertura rimangano visibili per tutta la durata del progetto.
  • ๐ŸŽฏ Formulazione verificabile: Sostituisci termini vaghi come "ogni pagina" e "tempo accettabile" con pagine specifiche e obiettivi misurabili come 5 secondi.

Analisi dei requisiti software

Un requisito software รจ un'esigenza funzionale o non funzionale che deve essere implementata nel sistema. Funzionale significa fornire un servizio specifico all'utente.

Ad esempio, nel contesto di un'applicazione bancaria, il requisito funzionale รจ che quando un cliente seleziona "Visualizza saldo" dovrebbe essere in grado di visualizzare il saldo piรน recente del proprio conto.

Un requisito software puรฒ anche essere non funzionale, come ad esempio un requisito di prestazioni. Ad esempio, un requisito non funzionale potrebbe stabilire che ogni pagina del sistema debba caricarsi per gli utenti entro 5 secondi.

Quindi in poche parole requisito software รจ a

  • Funzionale o
  • Non funzionale

bisogno che deve essere implementato nel sistema. I requisiti software sono generalmente espressi sotto forma di dichiarazioni.

Tipi di requisiti

Requisiti aziendaliQuesti sono requisiti di alto livello tratti dal business case del progetto. Ad esempio, un sistema di mobile banking fornisce servizi bancari al Sud-est asiatico. Il requisito aziendale stabilito per l'India รจ il riepilogo del conto e il trasferimento di fondi, mentre per la Cina รจ il riepilogo del conto e il pagamento delle bollette.

Paese Societร  che fornisce Funzionalitร  o servizi bancari
India Riepilogo conto e trasferimento fondi
Cina Riepilogo del conto e Bill Pagamento

Archirequisiti strutturali e di progettazioneQuesti requisiti sono piรน dettagliati dei requisiti aziendali e guidano l'architettura della soluzione. Determinano la progettazione complessiva necessaria per implementare il requisito aziendale. Per un'organizzazione educativa, i casi d'uso tipici di architettura e progettazione includono l'accesso, i dettagli del corso e l'iscrizione. Il requisito sarebbe come mostrato di seguito.

Caso d'uso bancario Requisito
Bill Pagamento Questo caso d'uso descrive come un cliente puรฒ accedere al net banking e utilizzare il servizio Bill Sistema di pagamento. Il cliente puรฒ visualizzare una dashboard con le fatture in sospeso per i fornitori registrati. Il cliente puรฒ aggiungere, modificare ed eliminare i dettagli di un fornitore. Il cliente puรฒ configurare avvisi via SMS ed e-mail per diverse azioni di fatturazione. Il cliente puรฒ visualizzare la cronologia delle fatture pagate in passato. Gli attori che avviano questo caso d'uso sono i clienti della banca o il personale di supporto.

Requisiti di sistema e integrazioneAl livello piรน basso, abbiamo i requisiti di sistema e di integrazione. Forniscono una descrizione dettagliata di ogni requisito. Possono essere rappresentati come user story scritte nel linguaggio aziendale di tutti i giorni. I requisiti contengono molti dettagli in modo che gli sviluppatori possano iniziare a programmare. Bill L'esempio del modulo di pagamento riportato di seguito mostra i requisiti per l'aggiunta di un fornitore di servizi di pagamento.

Bill Pagamento Requisiti
Aggiungi BillERS Nome del fornitore di servizi, Numero cliente, Pagamenti automatici โ€“ Sรฌ/No, Paga per intero Bill โ€“ Sรฌ/No, limite di pagamento automatico โ€“ Non pagare se Bill รจ superiore all'importo specificato

A volte, per un progetto, potresti non ricevere requisiti o documenti su cui basarti. Anche in questi casi, esistono altre fonti di informazioni sui requisiti a cui puoi fare riferimento per la progettazione del software o dei test. Le altre fonti di requisiti a cui puoi fare riferimento sono elencate di seguito.

Altre fonti di requisiti

  • Trasferimento di conoscenze da colleghi o dipendenti che stanno giร  lavorando a quel progetto
  • Discuti il โ€‹โ€‹progetto con l'analista aziendale, il responsabile del prodotto, il responsabile del progetto e gli sviluppatori.
  • Analizzare la versione precedente del sistema giร  implementato
  • Analizzare i documenti dei requisiti piรน vecchi del progetto
  • RevConsulta le segnalazioni di bug precedenti; alcune segnalazioni di bug vengono convertite in richieste di miglioramento che potrebbero essere implementate nella versione corrente.
  • Consultare la guida all'installazione, se disponibile, per verificare quali installazioni sono necessarie.
  • Analizzare le conoscenze di dominio o di settore che il team sta cercando di implementare

Qualunque sia la fonte dei requisiti che utilizzi, documentali in un formato condiviso e falli rivedere da membri esperti del team.

Come analizzare i requisiti

Consideriamo l'esempio di un sistema software didattico in cui uno studente puรฒ iscriversi a diversi corsi.

Analizziamo come interpretare i requisiti. Ciascun requisito deve rispettare una serie di attributi di qualitร  standard, tra cui i seguenti:

  • Atomic
  • Identificato in modo univoco
  • Completato
  • Coerente e inequivocabile
  • Traccommestibile
  • Prioritized
  • Testabile

Analizzare i requisiti

La tabella seguente illustra ciascun attributo con tre colonne:

  1. La prima colonna indica- "qualitร  del requisito"
  2. La seconda colonna indica: "cattivo requisito con qualche problema"
  3. La terza colonna mostra lo stesso requisito "convertito in un buon requisito".
Requisiti Qualitร  Esempio di cattivo requisito Esempio di buon requisito
Atomic Gli studenti potranno immatricolarsi ai corsi di laurea e post laurea Gli studenti potranno iscriversi a corsi di laurea triennale. Gli studenti potranno iscriversi a corsi di laurea magistrale.
Identificato in modo univoco 1- Gli studenti potranno iscriversi a corsi di laurea triennale. 1- Gli studenti potranno iscriversi a corsi di laurea magistrale. Iscrizione ai corsi. Gli studenti potranno iscriversi ai corsi di laurea triennale. Gli studenti potranno iscriversi ai corsi di laurea magistrale.
Completato Un utente professore accederร  al sistema fornendo nome utente, password e altre informazioni pertinenti Un utente professore accederร  al sistema fornendo nome utente, password e codice dipartimento
Coerente e inequivocabile Uno studente avrร  corsi di laurea o corsi post-laurea, ma non entrambi. Alcuni corsi saranno aperti sia a studenti universitari che post-laurea Uno studente avrร  laurea o post-laurea, ma non entrambi
Traccommestibile Mantenere le informazioni sugli studenti mappate su BRD req.ID? Mantieni le informazioni sugli studenti: mappato all'ID richiesta BRD 4.1
Prioritized Studente registrato - Prioritร  1. Gestisci le informazioni utente - Prioritร  1. Iscriviti ai corsi - Prioritร  1. Visualizza la pagella - Prioritร  1 Registra studente - Prioritร  1. Gestisci informazioni utente - Prioritร  2. Iscrivi corsi - Prioritร  1. Visualizza pagella - Prioritร  3
Testabile Ogni pagina del sistema verrร  caricata in un lasso di tempo accettabile Le pagine del sistema di registrazione degli studenti e di iscrizione ai corsi verranno caricate entro 5 secondi

Cerchiamo di comprendere ciascuno di questi attributi piรน nel dettaglio, iniziando da Atomcircuito integrato.

Atomic

Atomic

Ogni requisito deve essere atomico, ovvero deve essere al livello di dettaglio piรน basso e non puรฒ essere ulteriormente scomposto in componenti. Gli esempi seguenti confrontano requisiti atomici e non atomici.

Continuando con l'esempio del sistema del dominio dell'istruzione: in questo caso, il requisito errato รจ "Gli studenti potranno iscriversi a corsi di laurea triennale e magistrale". Questo รจ un requisito errato perchรฉ non รจ atomico, in quanto mescola due entitร  diverse, i corsi di laurea triennale e i corsi di laurea magistrale. Il requisito corretto corrispondente lo separa in due requisiti distinti. Un requisito riguarda l'iscrizione ai corsi di laurea triennale e l'altro l'iscrizione ai corsi di laurea magistrale.

Identificato in modo univoco

Identificato in modo univoco

Il prossimo attributo di qualitร  รจ l'identificazione univoca. Nell'esempio negativo, due requisiti distinti condividono lo stesso ID n. 1. Se un team fa riferimento a un requisito tramite il suo ID, non รจ chiaro a quale dei due ci si riferisca. Un buon requisito li raggruppa nella Sezione 1 - Iscrizione ai corsi, con i sottorequisiti 1.1 (iscrizione ai corsi di laurea triennale) e 1.2 (iscrizione ai corsi di laurea magistrale).

Completato

Completato

Ogni requisito deve essere completo. Ad esempio, in questo caso il requisito errato afferma che "l'utente professore accederร  al sistema fornendo il proprio nome utente, password e altre informazioni pertinenti". L'espressione "altre informazioni pertinenti" รจ vaga. Un requisito completo elenca i campi esatti, come il codice del dipartimento, che il professore deve fornire.

Coerente e inequivocabile

Coerente e inequivocabile

Ogni requisito deve essere coerente e inequivocabile. Nell'esempio negativo, un requisito afferma "Uno studente potrร  frequentare corsi di laurea triennale o corsi di laurea magistrale, ma non entrambi", mentre un altro afferma "Alcuni corsi saranno aperti sia agli studenti di laurea triennale che a quelli di laurea magistrale".

Il primo requisito implica che i corsi siano suddivisi in due categorie esclusive, ma il secondo requisito lo contraddice, aprendo alcuni corsi a entrambi i gruppi.

Il requisito corretto risolve il conflitto stabilendo chiaramente che ogni corso รจ classificato come di laurea triennale o magistrale, e che uno studente puรฒ iscriversi solo a corsi di una delle due categorie.

Traccommestibile

Traccommestibile

Ogni requisito deve essere tracrealizzabile perchรฉ i requisiti esistono a piรน livelli: aziendale, architettonico e di progettazione, e di sistema e integrazione.

Quando si converte un requisito aziendale in requisiti architettonici e di progettazione, o i requisiti architettonici e di progettazione in requisiti di sistema e di integrazione, tracLa fruibilitร  deve essere preservata. Ogni requisito aziendale dovrebbe corrispondere a uno o piรน requisiti architetturali e di progettazione. Nell'esempio errato "Gestisci le informazioni sugli studenti - mappato all'ID del requisito BRD?", manca l'ID del requisito.

Il requisito corretto registra la stessa dichiarazione ma mappa esplicitamente al requisito BRD ID 4.1. Ogni requisito deve essere accompagnato da un tracmappa dell'accessibilitร pingI requisiti di sistema e di integrazione devono inoltre essere mappati al codice che li implementa e ai casi di test che li verificano.

TracLa facilitร  d'uso รจ quindi un aspetto che permea l'intero progetto.

Prioritized

Ogni requisito deve essere prioritarizzato in modo che il team sappia cosa implementare per primo e cosa puรฒ aspettare. Nell'esempio negativo, Registrazione studente, Gestione informazioni utente, Iscrizione ai corsi e Visualizzazione pagella sono tutti impostati come prioritร  1. Non tutto puรฒ avere prioritร  1, quindi i requisiti devono essere classificati in modo realistico. Nell'esempio positivo, Registrazione studente e Iscrizione ai corsi hanno la prioritร  piรน alta (1), Gestione informazioni utente (2) e Visualizzazione pagella (3).

Testabile

Ogni requisito dovrebbe essere testabile. L'esempio negativo, "ogni pagina del sistema si caricherร  in un lasso di tempo accettabile", non รจ testabile per due motivi. In primo luogo, "ogni pagina" puรฒ significare decine di pagine, il che aumenta esponenzialmente lo sforzo di test. In secondo luogo, "lasso di tempo accettabile" non รจ definito: accettabile per chi e rispetto a quale parametro di riferimento? Il requisito corretto risolve entrambi i problemi specificando le pagine interessate ("pagine di registrazione studenti e iscrizione ai corsi") e fissando un obiettivo misurabile di 5 secondi.

DOMANDE FREQUENTI

Gli strumenti di intelligenza artificiale raggruppano il feedback degli stakeholder, segnalano il linguaggio ambiguo e rilevano requisiti duplicati o mancanti in baseline di grandi dimensioni. Gli analisti aziendali verificano comunque ogni suggerimento rispetto alla documentazione di raccolta prima che venga inserito nel set di requisiti approvato.

GitHub Copilot e GPT redigono storie utente, criteri di accettazione e regole aziendali da brevi prompt. Un analista aziendale esamina ogni output rispetto ad attributi di qualitร  come atomico, testabile e tracdisponibile prima che diventi un requisito approvato.

Una specifica dei requisiti software (SRS) รจ un documento formale che elenca i requisiti funzionali, i requisiti non funzionali, le interfacce e i vincoli del sistema. Gli standard IEEE 830 e ISO 29148 sono quelli che la maggior parte dei team segue nella stesura di una SRS.

La raccolta dei requisiti, o elicitazione, consiste nel raccogliere le esigenze grezze dagli stakeholder. L'analisi dei requisiti, quindi, organizza, affina e verifica tali esigenze rispetto ai sette attributi di qualitร , in modo che il team di sviluppo riceva dichiarazioni chiare e verificabili.

Utilizza tecniche come MoSCoW (Must, Should, Could, Would), l'analisi di Kano, il punteggio ponderato o il costo del ritardo. Combina il valore aziendale con l'impegno e il rischio di realizzazione, quindi concorda l'ordine con lo sponsor e il responsabile del prodotto prima dell'inizio dello sviluppo.

Requisiti TracLa matrice di fattibilitร  collega ogni requisito al suo elemento di progettazione, componente di codice e caso di test. Fornisce informazioni in avanti, all'indietro e bidirezionali. tracfacilitร  d'uso, in modo che nulla venga trascurato, sovradimensionato o spedito senza un test corrispondente.

Formulazione ambigua, arretrati non prioritari, mancante tracLa scarsa flessibilitร , la tendenza a mescolare idee di soluzione con le esigenze aziendali e il congelamento dell'ambito del progetto senza un controllo delle modifiche sono gli errori che causano la maggior parte delle rilavorazioni, dei ritardi e dei difetti in produzione.

Tra gli strumenti piรน diffusi figurano Jama Connect, IBM PORTE, Modern Requirements per Azure DevOps, Jira con Xray, Visure Requirements ALM e Blueprint. I team scelgono una piattaforma in base alle esigenze normative, alle dimensioni del team e alla profonditร  di tracรจ richiesta la capacitร .

Riassumi questo post con: