Quando si esaminano le specifiche dei requisiti, quali "peccati capitali" devono essere affrontati? [chiuso]

StackOverflow https://stackoverflow.com/questions/186716

Domanda

Quando si esaminano le specifiche dei requisiti (che includono requisiti funzionali, non funzionali, vincoli ecc.) per quanto piccoli o grandi, sono quelli che sono i "peccati capitali". impegnato dagli autori a cercare?

Si prega di elencare non più di 7 cose essenziali (in ordine decrescente di gravità) che le operazioni eseguite (o non eseguite) nelle specifiche dei requisiti hanno effetti negativi sulla qualità del prodotto software. Meno di 7 è perfettamente OK.

È stato utile?

Soluzione

OK, questo è più di 7, ma i requisiti validi hanno i seguenti attributi:

  • Unique . Ce ne sono altri requisiti simili?
  • Identificabile , può il requisito deve essere identificato in modo univoco? Può essere rintracciato durante il processo di sviluppo?
  • Completa . Manca qualcosa o dimenticato? È approfondito? Lo fa includere tutto il necessario per fare è solo?
  • Accurate . È corretto? Definisce correttamente il obbiettivo? Ci sono errori?
  • univoca . È la descrizione esatta e non vaga? C'è un'interpretazione singola? È è facile da leggere e capire?
  • Coerentemente . È la descrizione di la funzionalità scritta in modo tale che non è in conflitto con altri elementi in le specifiche?
  • Relevant . È necessaria la dichiarazione alla funzione? È extra informazioni che dovrebbero essere escluse? È riconducibile a un bisogno originale del cliente?
  • fattibile . Può essere implementato con il disponibile personale, strumenti e risorse entro il budget specificato e orario?
  • senza codice. Fa le specifiche attenersi alla definizione del prodotto e non il design del software sottostante, architettura e codice?
  • testabile . Può essere testato? È abbastanza informazioni fornite che un tester è possibile creare test per verificare che il requisito sia soddisfatto?
  • prioritario . È più o meno importante di altri requisiti?
  • Utilizza la voce attiva . Fa il specifica utilizzare la voce attiva? La voce passiva non specifica sempre chi o cosa esegue l'azione.
  • classificato . È il requisito raggruppati logicamente con simili requisiti? Possibili categorie sono: comportamentale, prestazioni, Interfaccia, Strutture dati / Elementi, Implementazione, Conformità / Qualità, Operativo (affidabilità, sicurezza, Sicurezza), derivato / progettato.

Uno strumento di tracciamento dei requisiti decente può automatizzare / applicare alcuni dei precedenti, come identificabile, prioritario, classificato, ma solo una revisione da parte del team può controllare il resto. La chiave sta nel formare il tuo team su questi attributi, farli esercitare leggendo esempi sia buoni che cattivi di requisiti e stabilendo un processo di revisione efficiente che controlli i requisiti abbastanza presto nel tuo ciclo di vita da avere un impatto sulle attività a valle.

Altri suggerimenti

Requisiti mancanti - Molto più difficile da catturare. Separare i requisiti in sezioni chiare (ad es. Sicurezza, prestazioni, stile, ecc.) Può semplificare l'individuazione.

Caratteristiche, tempo, qualità: scegli due qualsiasi. assicurati che i requisiti non impongano tutti e tre al tuo team.

Rinvia ai requisiti che cercano di controllare il tuo processo.

Richiedi una chiara definizione delle priorità dall'inizio.

Insistere su chiari criteri di accettazione per ciascun requisito.

I requisiti devono essere specifici e inequivocabili rispetto a ciò che è necessario, ma dovrebbero esserlo di meno su come soddisfare i requisiti.

Fare ipotesi: ricontrolla che tutto ciò che sembra un'ipotesi sia stato effettivamente verificato.

Requisiti che non sono facili da verificare come soddisfatti - Passa a un modulo che può essere più facilmente contrassegnato come soddisfatto o meno durante la revisione.

Il requisito non specifica chi / cosa fa la cosa.

"The invoice is reconciled to the purchase order."

Significa che il sistema fa qualcosa o l'utente?

Il peggiore che abbia mai visto su un progetto per cui ho programmato: -

The system shall interface to SAP as required.

In primo luogo, un requisito con " come richiesto " in esso è stupido. Quella linea deve essere costata $ 400k. Il cliente continuava a indicarlo e dire che dice che farai blah, blah, blah.

Più rigoroso: se possibile, specificare tolleranze pertinenti.

I requisiti ambigui sono cattivi.

I requisiti non verificabili e non quantificabili raddoppiano così.

Naturalmente, tutto ciò dipende dal tipo di requisito che si ottiene. Sono abituato alla tipica applicazione Gui o Web, processi batch e

  • Metti prima gli standar, che non devono essere definiti in ogni specifica, fai riferimento a loro
  • Rendi il più piccolo possibile - raramente puoi leggere un documento di 200 pagine e tenere a mente tutto
  • Sii specifico, misurabile, concreto
  • Fai esempi (disegni, scritture contabili)
  • Spiega lo scopo prima di descrivere la funtction
  • includono standard prestazionali, standard di resilienza, istruzioni di implementazione, documentazione per le operazioni necessarie

Ho anche un solo consiglio per il recensore: conosci la tua materia

Devi avere una conoscenza molto dettagliata del contesto del requisito, delle esigenze specifiche del cliente, dell'ambiente tecnico e forse del più importante a chi questo requisito verrà indirizzato e quale livello di comprensione globale hanno.

Ho fatto una brutta esperienza in progetti con molte persone che hanno rivisto le specifiche poiché le loro conoscenze individuali erano molto superficiali. Ottieni il feed sullo stesso livello, principalmente correzioni formali, ma le profonde carenze delle specifiche verranno scoperte solo di recente nel progetto.

Evita le "parole da donnola": qualsiasi lingua che può essere sottratta al suo contesto e fatta sembrare cattiva è cattiva.

Assicurati che tutto sia assolutamente chiaro: vague == Bad Thing (tm)

La mia raccomandazione e quello che faccio sempre prima di un nuovo progetto è ricontrollare la check list su Pagina 42,43 di Codice completo di Steve McConnell

La wiki onnisciente ha una buona sinossi per i requisiti- http: //en.wikipedia. org / wiki / Requisito Good_requirements . Direi che di questi punti, la mancanza di verificabilità è ciò che è più comune. Comprendere il quadro generale è importante nella vita, tuttavia, è necessario precisare esplicitamente le cose in base alle proprie esigenze, ad es. Il sistema deve rispondere rapidamente. Al contrario, il sistema deve rispondere a tutte le richieste in meno di 2 secondi.

  • Separazione di requisiti funzionali, architettonici, di interfaccia, non funzionali.
  • Uso di notazione inequivocabile e coerente per descrivere entità
  • Cancella i criteri di entrata e uscita per i casi d'uso
  • Diagrammi di flusso (le mappe mentali hanno lo stesso scopo di UML e sono più facili da disegnare)
  • Definire l'ambito in termini chiari, cosa è coperto e cosa non lo è e dove trovare quelli rimasti inesplorati
  • Avere una matrice di tracciabilità

Potresti prendere in considerazione la lettura di alcune delle Gestione dei requisiti e documenti CMMI .

Visita anche Elenco di controllo dei requisiti e google per " ; Criteri di buon requisito " ;.

Questi sono specificamente progettati per creare processi che aiutano lo sviluppo del software.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top