Domanda

Ci sono alcune domande su come misurare e provare la qualità del software qui, tuttavia, a questo punto, non c'era una definizione formale della qualità del software stesso su Stackoverflow:

Fornisci una definizione formale e comprensiva della qualità del prodotto software.

Poiché la domanda è abbastanza generica, sono felice di continuare ad accettare una definizione migliore ogni volta che viene inviata. È OK copiare l'essenza della risposta precedentemente inviata fintanto che puoi aggiungere qualcosa di prezioso ad essa.

È stato utile?

Soluzione

Ecco cosa dice Wikipedia sulla qualità del software .

L'articolo elenca diverse definizioni e viste sulla qualità del software. Il più vicino a Qualità del prodotto software è

  

Conformità ai requisiti o   specifica del programma; in relazione a   Affidabilità.

L'affidabilità è "la probabilità di un funzionamento senza errori di un programma per computer in un ambiente specifico per un periodo di tempo specificato."

Oltre alla qualità del prodotto, elenca:

  • Scalabilità
  • Correttezza
  • Completezza
  • Assenza di bug
  • Fault-tolerance
  • estensibilità
  • Maintainability
  • Documentazione

Un fattore di qualità è definito da "un requisito non funzionale per un programma software che non è richiamato dal contratto del cliente, ma è comunque un requisito desiderabile che migliora la qualità del programma software." Ecco l'elenco:

  • comprensibilità
  • Completezza
  • concisione
  • Portabilità
  • Coerenza
  • Maintainability
  • Testabilità
  • Usabilità
  • Affidabilità
  • strutturalità
  • Efficienza
  • Sicurezza

Modifica: chiarito quali fattori di qualità dovrebbero significare.

Una volta ho sentito che la qualità è come l'ossigeno. Quando è lì, lo dai per scontato. Quando non c'è, te ne accorgi e ti lamenti. Quindi potrebbe essere più semplice definire la qualità dal punto di vista di ciò che "cattiva qualità" il software è. Ad esempio, un sito Web di una banca online non sicuro sarebbe una "bassa qualità" prodotto.

Altri suggerimenti

Una definizione formale di qualità del software è in effetti disponibile sotto forma di ISO-9126 come indicato dall'articolo di Wikipedia: http://en.wikipedia.org/wiki/ISO_9126

http://www.iso.org/iso /iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22749 definisce il modello di qualità

Un prodotto software di qualità deve

  • fai quello che dovrebbe, e solo questo (nessun effetto collaterale, nessun bug)
  • utilizzabile per il pubblico previsto
  • essere gestibile per i programmatori che intendono farlo
  • non rende il sistema su cui è in esecuzione meno sicuro

EDIT: (cose come documentazione, portabilità, efficienza ecc. sono valori bonus desiderabili, ma non richiesti per renderlo "qualità", ma per renderlo comparabile, IMHO)


(fonte: codinghorror.com )

I nostri programmi sono DIVERTENTI da usare.

Le nostre istruzioni sono CHIUSE e complete.

La qualità del prodotto software è l'inverso della velocità con cui vengono rilevati i difetti del prodotto software.

Ciò non significa che se non vengono segnalati bug, si ha una buona qualità, perché potrebbe essere stato troppo difficile segnalare problemi. Inoltre, se un problema esiste, ma non viene notato attivamente, non influisce molto sulla qualità, ma se viene notato costantemente, è una grande influenza sulla qualità. Un pulsante mal allineato degrada gravemente la qualità, anche se non influisce sulla funzionalità.

Dato che è spesso l'utente a notare un difetto, non importa se qualcosa è un bug o una funzionalità secondo lo sviluppatore. Se l'utente percepisce qualcosa come un difetto, è un difetto, sia nella formazione dell'utente, nella documentazione dell'utente, nell'interfaccia utente o nella funzionalità effettiva.

Non esiste una risposta a questa e molte risposte accettate si contraddicono direttamente l'una con l'altra. Alcuni popolari includono;

"La qualità è un valore per alcune persone" - Jerry Weinberg, in Software e test di qualità, aprile 2006

"la qualità è conforme agli standard"  - Philip Crosby

" La qualità è la capacità di rimanere in affari " - Demming

Abbiamo avuto una buona discussione al riguardo su SQAforums qui . L'ampio consenso è che la qualità è in gran parte soggettiva. Personalmente, vado con Jerry Weinbergs a prenderlo.

La mia citazione preferita sulla qualità è:

La qualità non è mai un incidente; È sempre il risultato di alta intenzione, effetto sincero, direzione intelligente ed esecuzione abile; rappresenta la scelta saggia di molte alternative.

La qualità del prodotto è una moltitudine di tutte le sue caratteristiche funzionali e non funzionali. La misura della qualità varia a seconda del contesto dell'uso effettivo del prodotto.

Un prodotto software può essere caratterizzato da:

  • Attributi funzionali (o quale lavoro esegue il prodotto)

  • Attributi non funzionali (proprietà del prodotto diverse dal lavoro che esegue)

    a) Guarda e senti

    b) Usabilità e umanità

    c) Prestazioni

    d) Operativo

    e) Manutenibilità e supporto

    f) Sicurezza

    g) Culturale e politico

    h) Legale

Classificazione delle proprietà funzionali e non funzionali come suggerito da James e Suzanne Robertson http: // www .volere.co.uk

Se dovessi dare uno schiaffo a una metrica sulla qualità, penso che la migliore metrica esterna sia "quanto sono disposti a pagare le persone". Nessuno vuole pagare per prodotti scadenti.

C'è una bella presentazione PowerPoint su questo dalla Winthrop University con alcuni buoni esempi e definizioni. Potresti trovarlo utile.

La qualità del software può dipendere da due criteri come i seguenti:

  1. Risultato dell'interazione con utenti esterni
  2. Risultato dell'interazione con gli stakeholder interni

Entrambi i precedenti hanno caratteristiche che possono essere utilizzate per determinare la qualità complessiva di un software. In poche parole, potrebbe non essere una buona idea fornire una definizione generica di qualità del software. Software diversi hanno scopi diversi e possono avere requisiti di qualità diversi. Ad esempio, Google come motore di ricerca può essere definito come un software di altissima qualità in base alla pertinenza della ricerca e alla velocità con cui si ottengono i risultati della ricerca. Tuttavia, se si considera look & amp; sentire come i criteri, non è il design più bello.

Potresti voler controllare i dettagli sulla definizione della qualità del software su questo pagina .

La qualità del software è definita come conformità a requisiti funzionali e non funzionali dichiarati esplicitamente, standard di sviluppo esplicitamente documentati e caratteristiche implicite che ci si aspetta da tutto il software sviluppato professionalmente

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