Ciò che rende un efficace interfaccia utente per la visualizzazione di controllo delle versioni di un processo strutturato di dati gerarchici

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

  •  23-09-2019
  •  | 
  •  

Domanda

Tradizionale sistema di controllo di versione sono la visualizzazione delle informazioni di versione dal raggruppamento di Progetti->Cartelle->File con vista ad Albero sulla sinistra e dettagli vedi sulla destra, poi si clicca su ciascuna voce di guardare la cronologia delle revisioni che configurazione storia.

Supponendo che io sono lo storico di tutte le informazioni di controllo delle versioni disponibili per un progetto da Object-oriented punto di vista del modello (ad es.classi -> metodi -> parametri ecc...), cosa pensi che sarà il modo più efficace per presentare tali informazioni nell'interfaccia utente, in modo che si può facilmente navigare e accedere alla visualizzazione istantanea del progetto e anche lo storico delle informazioni di versione?Metti nella posizione che si sta utilizzando uno strumento come questo ogni giorno nel vostro lavoro come si sta attualmente utilizzando SVN, SS, per Forza o qualsiasi VCS sistema, che contribuirà alla semplicità di utilizzo, la produttività e l'efficacia dello strumento.

Personalmente trovo il modo classico per la visualizzazione di cartelle e file, come sopra sono molto restrittive e meno efficace per la visualizzazione di profonda nidificati modelli logici.Supponendo che questo è un progetto greenfield e non è limitato da una tecnologia specifica, come pensi che dovrei approccio migliore di questo?

Sto cercando idea di input e di qui per aggiungere i valori per il mio progetto di ricerca.Sentitevi liberi di fare qualsiasi suggerimento che si pensa è prezioso.Grazie ancora per qualcuno che condivide i propri pensieri.

A CURA: Per dare più info, una media di un elemento di configurazione, prendere un metodo di essere nidificati in circa 6 livelli (progetto->assemblea->module->namespace->tipo->metodo, e più livelli per passare al bambino gli elementi all'interno di esso), e questo è coerente, non come in cartella-file struttura dove di tanto in tanto in qualche progetto ha una profonda struttura nidificata.Quando hai a disposizione molti livelli, albero riquadro diventa inutilizzabile per navigare.IMHO, nel riquadro Albero anche meno efficace in questo scenario, per presentare la struttura complessiva del sistema.

È stato utile?

Soluzione

Piuttosto che cercare di selezionare una schema di presentazione per il montaggio di n livelli di informazioni in una GUI, perché non lasciare all'utente di scegliere il giusto livello di dettagli che lui / lei vuole o ha bisogno?

Prospettive

Eclipse è un esempio (non l'unico) che consente all'utente di definiscono prospettive .

  

All'interno del banco di lavoro la funzione di prospettiva è utilizzato per controllare la visibilità degli oggetti nel modello e l'interfaccia utente.
  Esso controlla ciò che si vede nel modello (che di progetto, cartella o file) e quello che si vede nell'interfaccia utente (quali azioni o vista).
  Questi controlli consentono di navigare attraverso e modificare l'area di lavoro in modo che si adatta il compito dell'utente.

Perspectives può essere facilmente adattato per qualsiasi tipo di informazione visualizzata gerarchica.

prospettiva

Informazioni filtraggio per task

Un altro modo efficace per visualizzare informazioni complesse è quello di proporre un meccanismo di filtraggio efficace, in base all'attività corrente.
Ogni volta che l'interruttore utente a un nuovo compito, i vari alberi di informazione visualizzare solo le informazioni rilevanti.

Mylyn per esempio:

  

Mylyn fa compiti una parte di prima classe del IDE, integra l'editing ricco e offline per strumenti ALM, e controlla l'attività di programmazione per creare un "contesto compito" che si concentra l'area di lavoro e collega automaticamente tutti gli artefatti pertinenti al compito-at -hand.
  Questo mette le informazioni necessarie a portata di mano e migliora la produttività riducendo il sovraccarico di informazioni, facilitando il multitasking e facilitando la condivisione delle competenze.

Ancora una volta, che può essere applicato a qualsiasi tipo di informazione.

http://www.tasktop.com/sites/default/files/images/part1-overview.jpg

Altri suggerimenti

Che ne dite di una variazione su un terreno stelo e foglia?

http://en.wikipedia.org/wiki/Stemplot

Questo è un concetto dalle statistiche, ma si potrebbe aumentare la struttura ad albero tradizionale aggiunta di un elenco delle versioni a destra di ogni file nella struttura. Con un corretto allineamento, io che questo potrebbe essere una soluzione visivamente espressivo ed utilizzabile. Qualcosa di simile a questo:

* Root Directory
    * Sub Directory A
        * File A.A     | 1 2 3
        * File A.B     | 1 2
    * File A           | 1 2 3 4 5 6 7 8 9
    * File B           | 1 2 3 4 5

La trama stelo e foglia fornisce un'indicazione visiva di quante volte un file è stato modificato, con accesso rapido alla visualizzazione (editing, ecc) e le versioni.

E 'probabile che questo sarebbe solo una visualizzazione dei dati. Si potrebbe ancora essere gravati dalla struttura annidata, ma se si deve vivere con quella, forse questo sarebbe di aiuto.

Se siete alla nidificazione 6 livelli, probabilmente stai artificialmente mescolando più preoccupazioni. Vedi sotto per il modello 5D. Sembra che si dovrebbe usare namespace classe metodo come il modello di navigazione di base. Si sono almeno mescolando struttura del codice con la sua organizzazione su disco (file e cartelle) e la mappatura alle varianti. IDE Smalltalk come Pharo forniscono un insieme di browser di codice rendendo la navigazione facile lungo un paio di dimensioni, e fornire un kit di costruzione del browser Glamour per fare il vostro proprio per altre dimensioni di navigazione.

Ti consigliamo di dare uno sguardo al lavoro svolto da Richard Wettel. Qualcosa di simile a Codecity . Usando OpenGL per creare un 4D (tempo) di visualizzazione della storia dello sviluppo di un progetto a 3 e. E 'parte della ricerca nel software reengineering ALCI .

Per la vostra ricerca si potrebbe desiderare di utilizzare il modello dimensionale 5 per questo:

  • Versione (voler cambiare)
  • Stato (ciclo di vita: la creazione, testing, la distribuzione, di andare in pensione)
  • vista (requisito, codice, di test, documentazione)
  • gerarchia (modulo, classe, metodo)
  • variante (in gran parte simile, che descrive le differenze, famiglie di prodotti)

La maggior parte dei sistemi gestiscono solo pochi di queste dimensioni. Per gestire tutti e cinque, si deve descrivere (risolvere) il processo di sviluppo. Se lo fai, è possibile descrivere i casi d'uso che si desidera supportare nella vostra interfaccia utente. In caso contrario, è necessario un motore di visualizzazione flessibile 5-dimensionale. Che non sarà così facile da usare.

Il riferimento:

Gestione dei dati di progettazione:. Le cinque dimensioni dei quadri CAD, la gestione della configurazione e la gestione dei dati di prodotto
van den Hamer, P. Lepoeter, K.
Philips Res, Eindhoven.;

Questo documento appare in: Atti del IEEE
Data di pubblicazione: Gennaio 1996
Volume: 84, Issue: 1
A pagina (s): 42-56
ISSN: 0018-9219
Riferimenti citati: 26
CODEN: IEEPAD
Numero adesione INSPEC: 5175049
Digital Object Identifier: 10,1109 / 5,476,025 mila
Current Version Pubblicato: 2002/08/06

Hmm, direi di cominciare con silo, cilindri verticali, per ogni ramo:dev, rilascio, avrà uno o più qui.Si dovrebbe visivamente luogo versioni che sono state storicamente impegnata a silo in esso.Tra queste versioni si dovrebbe avere un numero qualsiasi di altre modifiche che alla fine loop.

Lungo ogni ciclo ci sono commit punti al di fuori del silo con x il numero di modifiche.Visualizzare loro logicamente appiattita come frutto che pende verso il basso, si sarà un po ' confuso pasticcio dal livello elevato, ma la consistenza, il colore, il modello, le dimensioni del frutto, vi darà un senso di ciò che è accaduto.Anche con il mouse sopra la frutta fornirà qualsiasi commenti sono stati fatti con il commit.

Quindi fare clic sul gambo del frutto e qui si ribalta la vista, in diversi stili, ma piuttosto che l'esplorazione della gerarchia per il cambiamento, usare il cambio per passare la gerarchia.Grande spazio sulla sinistra con un po ' di hiearchy spazio sulla destra.In bilico su modifiche zip lungo la gerarchia.Fare clic su modifica e la gerarchia è congelato e quindi è possibile fare clic sulla gerarchia e si va verso il silo di vista, ma questa volta con il file/funzione/quello-che-essendo l'unica cosa che mostrato.

---EDIT--- Qui è un disegno del tipo di quello che stavo pensando.La mia idea si basa sull'utilizzo di Mercurial come fonte repository di controllo.Almeno per me sarebbe più interessante per ottenere un senso del tipo di modifiche apportate in ogni revisione, un'idea che non può mesh con quello che stavano sparando per.Guardando il tipo di modifiche repository dovrebbe essere in grado di caratterizzare e quantificare cosa è cambiato, qualcosa di più essenziale penso di quali file sono stati modificati.Puntini sarebbe sufficiente modificare il codice all'interno del metodo stesso o, eventualmente aggiunte di metodi privati di una classe.Quando si ingrandisce un frutto riempirà lo spazio e i tronchi scompaiono o fade to dim filigrana o qualcosa del genere.

Spero che questo grezzo schizzo trasmette la mia idea un po ' meglio.il testo alt http://img704.imageshack.us/img704/9034/img0507h.jpg

Se si vuole essere in grado di trovare rapidamente dove il codice è stato modificato, è possibile utilizzare una rappresentazione grafica, andando alla rappresentazione ad albero (come quella presentata da mcliedtk) solo quando si seleziona un elemento che è suffisantly basso livello (namespace, o tipo).

per ogni elemento, dal livello inferiore a quello superiore, calcolare una% di aggiornamento:

  • per un metodo o un attributo: 100% se creato / modificato / cancellato, 0% altrimenti
  • per una classe: media di tutti inclusi elementi (metodo o attributo), o 100% se creato / cancellato
  • stessa cosa per gli elementi più elevate (100% se creato / cancellato, media dei componenti in caso contrario).

ora si deve avere per ottenere una rappresentazione che è mostrare la struttura gerarchica.
è possibile (per Esempio) utilizzare un radiale uno: il progetto è al centro (ad esempio un cerchio). assemblaggio sono presentati come un anello intorno, con ogni assebly prendendo lo stesso spazio. un terzo anello livello rappresentano i moduli, ogni modulo prendendo lo stesso spazio per il montaggio (cioè se è ther 4 assemblaggio, ognuno ottiene 90 °, e se un gruppo ha modulo 3, ciascun modulo ottenere 1/3 di quelle 90 °) , e così via. ciascun elemento ottenere un colore mappato dalla sua% di modificazione (0% = verde = nessuna modifica,> 85% = rosso = modifica heavey)

Un esempio potrebbe essere come http://www.neoformix.com/2006/BB_TopicRadialTreemapImages. png o http: //www.datavisualization. ch / wp-content / uploads / 2009/04 / stacked_wedge_01.png

Sul pro-side, si può vedere dove quikly modifica si è verificato, ea quale livello.
sul lato negativo, questo dà modifica da una data di riferimento, e un file modificato una o due volte è lo stesso come un file modificato 10 volta. Si può anche essere necessario aggiungere i suggerimenti per facilitare la navigazione, come 6 livello può diventare rapidamente unreadalble (ma poi è possibile visualizzare solo il 4 su 5 livelli più alti ...)

Saluti
Guillaume

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