Requisiti di Sistema e Software: Definizione, Classificazione e Standard di Documentazione
Classificato in Informatica
Scritto il in
italiano con una dimensione di 38,38 KB
Definizione di Requisito
Un requisito può essere definito come un attributo necessario in un sistema, che può rappresentare una capacità, una caratteristica o un fattore di qualità del sistema, in modo tale da essere utile a clienti o utenti finali.
Un requisito è la descrizione di una condizione o capacità che un sistema deve soddisfare. Esso può derivare da una necessità specifica degli utenti, o essere parte di un contratto standard, delle specifiche o di altro documento formalmente imposto nelle prime fasi del processo.
Tipi di Requisiti Software
I requisiti software possono essere suddivisi in due categorie principali: i requisiti funzionali e i requisiti non funzionali.
Requisiti Funzionali
I requisiti funzionali sono quelli che definiscono le funzioni che il sistema sarà in grado di eseguire. Essi descrivono i cambiamenti che il sistema compie sugli input per produrre i risultati desiderati.
Requisiti Non Funzionali
I requisiti non funzionali (o requisiti di qualità) sono relativi alle caratteristiche che limitano o vincolano il sistema. Esempi includono:
- Prestazioni: tempo di risposta e utilizzo delle risorse (spazio).
- Interfacce Utente.
- Affidabilità: robustezza e disponibilità.
- Manutenzione.
- Sicurezza.
- Portabilità.
- Conformità: norme e standard.
- Verificabilità e altri fattori di qualità.
Caratteristiche Essenziali di un Requisito di Qualità
È importante che i requisiti soddisfino i seguenti criteri:
- Specificato per iscritto: Deve essere formalizzato, come qualsiasi contratto o accordo tra due parti.
- Verificabile: Deve essere possibile dimostrarlo o verificarlo. Se un requisito non può essere verificato, come si può sapere se è stato soddisfatto?
- Conciso: Un requisito è conciso se è facile da leggere e capire. La formulazione deve essere semplice e chiara per coloro che lo utilizzeranno come riferimento futuro.
- Completo (o Intero): Un requisito è completo se non richiede ulteriori dettagli per iscritto, fornendo informazioni sufficienti per la comprensione.
- Coerente: Un requisito è coerente se non è in contrasto con altri requisiti definiti.
- Inequivocabile: Un requisito è univoco quando ammette una sola interpretazione. Il linguaggio utilizzato nella sua definizione non deve creare confusione per il lettore.
Standardizzazione dei Requisiti e della Documentazione
La Standardizzazione implica che i simboli convenzionali siano utilizzati in tutti i diagrammi di flusso per descrivere il sistema e che la documentazione utilizzi moduli standardizzati.
Anche se gli standard di documentazione variano da un progetto all'altro, è essenziale che all'interno di una organizzazione si utilizzi un unico metodo. L'utilizzo di procedure e documentazione standardizzate costituisce la base per una comunicazione chiara e veloce, riduce i costi di formazione del personale sui sistemi, diminuisce i costi di archiviazione (storage) e offre altri benefici.
Vantaggi della Standardizzazione
La standardizzazione apporta numerosi benefici, tra cui:
- Aiuta nella formazione del nuovo personale, sia all'interno che all'esterno dell'organizzazione.
- È utile per chi ha la responsabilità della manutenzione dei sistemi.
- Supporta analisti e progettisti di sistemi nell'integrazione dei sistemi.
- Assicura che il sistema funzioni correttamente.
- Garantisce un utilizzo efficiente delle risorse disponibili.
Requisiti della Documentazione di Base Standard
Tutta la documentazione relativa a un sistema, sia essa manualistica o informatica, semplice o complessa, deve soddisfare i seguenti requisiti:
- Dovrebbe essere chiaramente etichettata e ben organizzata, con sezioni distinte, archiviata in cartelle e indicizzata.
- Gli schemi devono essere chiari, non sovraccarichi, e la scrittura deve essere comprensibile.
- La documentazione deve essere completa.
- Deve includere una legenda e una spiegazione dei termini utilizzati.
- La documentazione deve essere sempre mantenuta aggiornata.
Elementi Chiave della Documentazione Tecnica Standard
Una buona documentazione è essenziale per la progettazione e la manutenzione efficiente dei sistemi digitali. Oltre ad essere precisa e completa, dovrebbe essere istruttiva, in modo che un tecnico di prova, un tecnico di manutenzione, o anche il progettista originale (sei mesi dopo la realizzazione del circuito), possa comprendere il funzionamento del sistema semplicemente leggendo la documentazione.
Sebbene il tipo di documentazione dipenda dalla complessità del sistema e dagli ambienti in cui si svolge la progettazione, il pacchetto di documentazione di fabbricazione deve contenere (di solito) almeno i seguenti sei elementi:
Specifiche del Circuito
Una specifica del circuito descrive esattamente ciò che il circuito o sistema è supposto fare, inclusa una descrizione di tutti gli ingressi e le uscite ("interfacce") e le funzioni da svolgere. Si noti che la "specifica" non deve necessariamente specificare come il sistema ottiene i risultati, ma solo quali risultati genera.
Diagramma a Blocchi
Un diagramma a blocchi è una descrizione informale e pittorica dei principali moduli funzionali del sistema e delle loro interconnessioni di base.
Diagramma Schematico
Un diagramma schematico è una specifica formale del sistema elettrico, delle sue interconnessioni e di tutti i dettagli necessari per costruire il sistema, inclusi i tipi di CI (Circuiti Integrati), i parametri di riferimento e i numeri di pin. Il termine "schema" è spesso usato per descrivere un disegno logico informale che non ha questo livello di dettaglio. La maggior parte dei programmi di editing schematico ha la capacità di generare una distinta materiali (BOM: Bill of Materials) dallo schema.
Diagramma Temporale
Un diagramma temporale mostra i valori logici dei diversi segnali in funzione del tempo, inclusi i ritardi tra causa ed effetto dei segnali critici.
Descrizione del Dispositivo Logico Strutturato
Una descrizione del dispositivo logico strutturato indica la funzione interna di un PLD, FPGA o ASIC. Di solito questa descrizione è scritta in un linguaggio di descrizione dell'hardware (HDL), come VHDL o ABEL, ma può essere sotto forma di equazioni logiche, tabelle di stato o diagrammi di stato. In alcuni casi è possibile utilizzare un linguaggio di programmazione convenzionale, come C, per modellare le prestazioni di un circuito o per specificare il suo comportamento.
Descrizione Narrativa del Circuito
Una descrizione del circuito è un documento narrativo che, insieme al resto della documentazione, spiega come funziona internamente il circuito. Nel caso di una macchina a stati, questa è descritta da tabelle di stato, diagrammi di stato, l'elenco delle transizioni o file di testo in un linguaggio per descrivere macchine a stati come ABEL o VHDL. La descrizione del circuito dovrebbe includere qualsiasi ipotesi e ogni potenziale punto di fallimento nella progettazione e nel funzionamento del circuito. Deve anche notare l'uso di qualsiasi "trucco" di progettazione che non sia immediatamente evidente. Una buona descrizione del circuito contiene anche le definizioni di acronimi e di altri termini specialistici e contiene riferimenti ai documenti correlati.
Approfondimento sui Diagrammi a Blocchi (Diagrammi di Flusso)
I diagrammi a blocchi (detti anche diagrammi di flusso) sono linguaggi utilizzati per la descrizione degli algoritmi. Sono riconosciuti in molta letteratura come lo strumento più universale del loro genere, il cui successo è dovuto alla capacità di ridurre notevolmente l'uso del linguaggio naturale per descrivere i passi sequenziali. Le operazioni da eseguire sono rappresentate da simboli, che contengono al loro interno i dati utilizzati in tali operazioni e le variabili che verranno impiegate. Questa sezione illustra la progettazione e la realizzazione di algoritmi tramite diagrammi a blocchi.
Disegno Schematico e Simboli Logici
I diagrammi logici e schematici sono disegnati con le porte in posizione "normale", con gli ingressi a sinistra e le uscite a destra. I simboli logici per gli elementi logici su larga scala sono anch'essi disegnati con gli ingressi a sinistra e le uscite a destra.
Diagrammi di Temporizzazione (Timing Diagrams)
Un diagramma di temporizzazione (o timing diagram) mostra il comportamento del segnale di un circuito digitale in funzione del tempo. I diagrammi di temporizzazione sono una parte cruciale della documentazione di ogni sistema digitale. Questi diagrammi possono essere utilizzati sia per spiegare il rapporto temporale tra i segnali di un sistema, sia per definire i requisiti di temporizzazione dei segnali esterni applicati al sistema.
Figura 3.5.c: Esempio di lettura della memoria con ritardo (80486).