2010-09-11 5 views
5

Sto cercando indicazioni per aiutare la direzione della mia ricerca nel fornire asserzioni di funzionalità, usabilità o eleganza nello sviluppo del sistema.Chi sta conducendo indagini sulla misurazione della funzionalità e dell'usabilità?

Potete fornire riferimenti al lavoro svolto sulla misurazione di funzionalità, usabilità o stile di codifica? Chi (persona/organizzazione) sta lavorando in quest'area? Dove posso trovare tali riferimenti.

Ho sviluppato alcune idee sulla costruzione del sistema, che sono leggermente diverse rispetto allo sviluppo tradizionale. Il punto di partenza è una descrizione adeguata del problema. Sto sviluppando un progetto dimostrativo/proof of concept.

Nello sviluppo del mio progetto di prova del concetto, ho trovato un vantaggio inaspettato e senza prospettive. Finora, ho trovato che informazioni utili sulla completezza di un sistema possono essere raccolte prendendo una visione indiretta dello sviluppo. Questa vista indiretta si basa sulla descrizione del problema, piuttosto che sulla soluzione software.

Mi sono anche convinto, in seguito a questi sviluppi, che potrebbe essere possibile fornire indicazioni dal mio approccio allo sviluppo del sistema in altre aree, come indicazioni su come è funzionale il sistema; quanto è utilizzabile il sistema; o quanto sia elegante la soluzione.

mie esplorazioni finora hanno portato i seguenti suggerimenti, e le mie quelli inviati:

  1. programmazione Literate è elegante. - La programmazione letterale può essere elegante, ma questo sposta il problema indietro - come giudichi quanto sia letterato un programma?
  2. Che sto cercando lo sviluppo del sistema equivalente di una misura dell'estetica, vale a dire l'ineffabile - mentre apprezzo che ciò non è possibile, credo ancora che sia possibile fornire linee guida dalle informazioni disponibili durante lo sviluppo di un sistema.
  3. Ciò che sto cercando può essere valutato solo dopo che una soluzione è stata utilizzata per un po 'di tempo, e solo per confronto con altre soluzioni allo stesso problema. - Potrebbe essere così, e potrebbe davvero il rock su cui i miei fondatori di ricerca. Tuttavia, continuo a credere che sia possibile che le misure dello sviluppo possano fornire alcune indicazioni euristiche su questi aspetti del software.
  4. L'analisi dei punti di funzione è una misura della funzionalità - Vedo l'FPA più una misura della produttività che una funzionalità. Non ti dice quanta funzionalità è stata incorporata nel sistema, ma piuttosto quanto è stato incluso rispetto a una linea di base derivata dallo stesso contesto. Poiché il contesto è in continua evoluzione, ciò diminuisce l'utilità della misura.
  5. che questi concetti non possono essere misurati e non v'è alcun accordo su ciò che costituisce la funzionalità, l'usabilità, o l'eleganza e non ci può essere per ragioni analoghe alla tesi - io sono abbastanza testardo da credere che posso, almeno in parte, confuto questo suggerimento fornendo assistenza agli sviluppatori di sistemi.
  6. Che l'informazione che sto cercando esuli dallo sviluppo del sistema; nell'arena delle arti grafiche; psicologia; biologia; o altro - questo è sempre più probabile.
  7. Utilizzando gli oggetti del sistema direttamente come interfaccia utente, ciò sembra promettere una classe di sistemi progettati per facilitare la risoluzione dei problemi.
  8. Le lezioni d'arte grafica tradizionale (il layout di dati complessi) possono essere trasferiti al sistema di sviluppo - questo è bello come la via più promettente e sto cercando di stabilire la corrispondenza con un leader nella progettazione grafica. Questo può essere utile solo per i sistemi informativi, ma sembra che sia molto più ampio di quello.
  9. È stato anche suggerito di essere un "astronauta dell'architettura", fuori dalla realtà - questo potrebbe essere il caso, ma se è così, allora sono probabilmente l'ultimo a realizzarlo e un tale la prospettiva non mi dissuade dalla mia ricerca.
+0

La programmazione così alfabeta non è elegante? http://en.wikipedia.org/wiki/Literate_programming –

+5

Ho cercato una misura quantitativa del merito artistico di una fotografia ... con la quale intendo che stai cercando l'ineffabile. Se l'eleganza fosse misurabile, una serie infinita di sessioni universitarie di livello universitario cesserebbe di esistere (e sarebbe triste). – msw

+0

@James - Non intendevo implicare che la programmazione alfabetica non fosse elegante - ho suggerito che la definizione che ho dato fosse iniziale, parziale e derivata dalla matematica. La programmazione letterale può certamente essere elegante, ma non sembra essere direttamente correlata all'eleganza: un programma può essere una qualsiasi combinazione di (non-) elegante e (non-) alfabetizzato. –

risposta

1

Delle tre cose elencate, l'usabilità è la più misurabile. Fare una ricerca per "misurare l'usabilità del codice" produrrà molti successi, per qualsiasi cosa, dai siti Web alla programmazione parallela.

Alcuni punti salienti:

standard ISO su ingegneria del software; Qui troverete gli standard per la qualità del prodotto e il ciclo di vita di sviluppo del software:
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=45086

La versione Cliff Notes delle norme ISO:)
http://www.usabilitynet.org/tools/r_international.htm

Norme per l'ergonomia del software:
http://www.iso.org/iso/catalogue_detail.htm?csnumber=52712


Da un documento ben scritto sull'usabilità del programma parallelo, trovato here :

Diverse funzionalità di un PPS ne determinano l'utilizzabilità. Tra questi sono:
1) Curva di apprendimento: quanto tempo ci vuole un programmatore parallelo esperto o inesperto per poter utilizzare il PPS in modo produttivo? Si noti che alcuni PPS rispondono specificamente alle esigenze degli esperti , mentre altri sono destinati ai neofiti; pochi sono adatti per entrambi.
2) Errori di programmazione: alcuni sistemi limitano l'uso del parallelismo per prevenire errori (ad esempio, Enterprise). Altri sistemi, come NMP e PVM, consentono all'utente di fare qualsiasi cosa, scambiando la flessibilità per una maggiore possibilità di errori di programmazione. Di solito il potenziale di errori è direttamente correlato al numero di righe del codice utente. Pertanto, i sistemi che richiedono più codice utente potrebbero essere più suscettibili agli errori.
3) Prestazioni deterministiche: il non determinismo, comune nell'implementazione di alcuni algoritmi e inerente a alcuni PPS, può aumentare significativamente il sovraccarico nel debug dell'applicazione .
4) Compatibilità con il software esistente: il software legacy non può essere ignorato. Idealmente, il PPS deve supportare l'integrazione del software esistente con il minimo sforzo.
5) Integrazione con altri strumenti: Un PPS deve essere fornito o fornire accesso a una suite completa di strumenti di sviluppo software, tra cui le funzionalità di debug, monitoraggio e valutazione delle prestazioni di .

Un articolo sulla quantificazione e la misurazione funzionalità:
http://www.computer.org/portal/web/csdl/doi/10.1109/METRIC.1999.809732

collegamenti agli studi di usabilità CUE-4 hotel in Pennsylvania, dove 17 squadre indipendenti eseguite usabilità del sito Web per Hotel Pennsylvania
http://www.dialogdesign.dk/CUE-4.htm

This Wikipedia article ha molti collegamenti a articoli relativi alla qualità del software. L'articolo stesso discute una serie di punti focali per la qualità del software, tra cui Comprensione, Concisione, Coerenza, Manutenibilità, Testabilità, Usabilità, Affidabilità ed Efficienza, tra gli altri.

http://www.drdobbs.com/windows/184405654;jsessionid=SB2LUABORKQHBQE1GHOSKHWATMY32JVN
L'autore discute delle tecniche che Microsoft utilizza per progettare e valutare l'usabilità delle proprie API.

Un altro suggerimento: visita alcune delle università più rinomate per l'ingegneria del software e cerca nella loro homepage di Computer Science articoli pubblicati sull'argomento.

Come altri hanno già detto, stabilire misure quantitative su questi principi è come inchiodare un albero a un albero ... ma non sono d'accordo sul fatto che non possano o non siano stati studiati in analisi quantificabili.

HTH!
James

+0

Questo mi sposterà in avanti, perseguendo tutti i tuoi link. Grazie. –

+0

np, grazie per il voto! (e taglie:) –

0

Tutti questi concetti non possono essere misurati. Non possono nemmeno essere oggettivamente concordati.

Oserei dire che non hanno una chiara interpretazione nel mondo fisico. Esiste solo nella mente umana. Ogni altra persona percepirà e misurerà quelli in accordo con la loro esperienza di vita, conoscenza, esperienza e attitudine al campo problematico, sviluppo dell'ingegneria, abilità artistiche e interpersonali. Evey se puoi forzare alcuni individui a "misurarlo", sarà altamente soggettivo.

Come definisci la bellezza e l'amore, la gioia e la tristezza? Usabilità ed efficienza avranno molto a che fare con quelli.

Alcune idee possono venire da studi psicologici. Ma solo alcune idee. Nella migliore delle ipotesi è possibile applicare questa conoscenza per cercare di evocare una risposta specifica nella mente degli utenti. Ma potrebbe funzionare o no.

Quando non riesci a capire con precisione il modello di risposta degli utenti, non puoi pianificare una risposta specifica. Di conseguenza, non puoi misurare il grado di una particolare caratteristica del tuo programma. Quindi non puoi definire la scala in primo luogo.

+0

Posso essere quixotico, inclinarsi a giganti immaginari, ma sto cercando di iniziare a definire la scala. Un esempio del mio approccio non è menzionato nella domanda: completezza. Prendo come dato che la valutazione della completezza è impossibile - alla fine il Teor di Incompleteness di Godel morde uno nel culo. Tuttavia, cambiando il punto di vista di una persona, non osservando la misurazione della completezza della soluzione, ma guardando le misurazioni derivanti dalla descrizione del problema, si può dire molto sulla completezza della soluzione. –

1

Penso che alcune di queste funzionalità dovrebbero essere misurate dopo che il prodotto è stato utilizzato per un certo periodo di tempo, rispetto a un'altra implementazione simile.

Considerare l'esempio di più implementazioni GUI per un software. È possibile misurare cose come il tempo impiegato da un utente per eseguire una determinata attività utilizzando un'implementazione specifica relativa allo svolgimento della stessa attività (per l'ennesima volta) sullo (quasi) stesso software utilizzando l'implementazione della GUI diversa. Ciò fornirebbe una sorta di metrica utile in termini relativi.

Seguire questo percorso può aiutare a chiarire queste idee in termini di risultati (pubblicabili?). Dalla lettura della tua descrizione originale, sembra che tu stia cercando delle metriche assolute piuttosto che relative. Tuttavia, esaminando rapidamente questa domanda e cercando di trovare una risposta interessante, utile, durante una pausa di cinque minuti dal mio lavoro, la metrica relativa è stata la migliore che potrei inventare.

Spero che questo aiuta,

Brian J. Stinar

+0

grazie. Il tuo punto sulla durata come fattore di valutazione dell'eleganza è ben preso.Le metriche assolute sarebbero buone, ma apprezzo che le metriche per molti di questi punti possano essere solo relative. Questo era il motivo per il mio riferimento all'euristica in origine. –

0

sto rispondendo alla mia domanda per dare un'indicazione di quanto ho avuto per ottenere una risposta alla mia domanda iniziale. E 'evidente che qualsiasi sistema metrico decimale dei concetti relativi a eleganza condividerà le seguenti caratteristiche:

  1. che sono suscettibili di essere euristica
  2. che sono suscettibili di essere basata su più iterazioni del processo di sviluppo
  3. è probabile che siano relativi piuttosto che assoluti
  4. è probabile che siano basati su aree di studio diverse dallo sviluppo di software/sistema, oltre a richiedere informazioni dallo sviluppo del sistema stesso.Esempi di possibili domini sono l'estetica, la psicologia, la neurolinguistica e la neuroestetica;
  5. Se il lavoro che sto facendo è di qualsiasi valore per gli sviluppatori di software, non deve basarsi su modelli complessi, matematici o statistici, ma deve offrire linee guida basate sul loro lavoro e lavoro da parte di altri sviluppatori.
  6. Eventuali linee guida sono suscettibili di essere sulla base delle risposte a domande come:
    • Qual è la frequenza di oggetti, attributi, i tipi di dati?
    • Come si confronta questa frequenza con altri progetti?
    • Questa misura di qualsiasi valore aiuta lo sviluppatore a valutare il suo progetto/vedere margini di miglioramento?

Sto ancora cercando i riferimenti al lavoro svolto in questo campo.