Was macht eine effektive Benutzeroberfläche für die Versionierung von strukturierten hierarchischen Daten anzeigen

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

  •  23-09-2019
  •  | 
  •  

Frage

Traditionelle Versionskontrollsystem angezeigten Versionsinformationen durch die Gruppierung Projekte-> Folders-> Dateien mit Baumansicht auf der linken Seite und Details zu sehen auf der rechten Seite, dann werden Sie auf jedes Element klicken für diese Konfiguration Geschichte an Revisionsgeschichte zu betrachten.

Unter der Annahme, dass ich alle historischen Versionsinformationen für ein Projekt von objektorientierter Modell Perspektive (zB Klassen -> Methoden -> Parameter und usw.), was glauben Sie, werden die effektivste Art und Weise zu präsentieren diese Informationen werden in UI, so dass Sie leicht navigieren und Zugriff auf der Snapshot-Ansicht des Projektes und auch die historischen Versionsinformationen? Versetzen Sie sich in der Position, dass Sie ein Tool wie diese jeden Tag in Ihrem Job verwenden, wie Sie gerade verwenden SVN, SS, Perforce oder ein VCS-System, was wird dazu beitragen, die Benutzerfreundlichkeit, Produktivität und Effektivität des Werkzeugs.

Ich persönlich finde die klassische Art und Weise für die Anzeige von Ordnern und Dateien wie oben ist sehr restriktiv und weniger effektiv für tief verschachtelte logische Modelle angezeigt wird. Unter der Annahme, dass dies ein Greenfield-Projekt ist und nicht durch bestimmte Technologie beschränkt, wie denken Sie, ich soll dies am besten Ansatz?

Ich suche Idee und gibt hier Werte zu meinem Forschungsprojekt hinzuzufügen. Fühlen Sie sich frei, alle Vorschläge zu machen, dass Sie denken, ist wertvoll. Nochmals vielen Dank für alle, die ihre Gedanken teilen.

EDITED: weitere Informationen zu geben, ein durchschnittliches Konfigurationselement, ein Verfahren dauern wird in etwa 6 Ebenen verschachtelt werden (Ausbau-> montage-> Modul-> namespace-> Typ-> Methode, und mehr Ebene untergeordnete Elemente darin zu navigieren), und dies ist durchweg der Fall ist, nicht wie in Ordner-Datei-Struktur, wo man gelegentlich in einem Projekt tief verschachtelte Struktur hat. Wenn Sie feststellen, dass viele Ebenen haben, wird Strukturbereich zu navigieren unbrauchbar. IMHO, Baumbereich auch weniger wirksam in diesem Szenario vorhanden Gesamtstruktur des Systems.

War es hilfreich?

Lösung

Anstatt zu versuchen, um ein Präsentationsschema für die Montage n Ebenen von Informationen in einer GUI, warum nicht lassen den Benutzer wählen, das richtige Maß an Informationen, die er / sie will oder braucht?

Perspektiven

Eclipse ist ein Beispiel (nicht die einzige) so dass für den Benutzer definieren Perspektiven .

  

Innerhalb der Werkbank der Perspektive Funktion wird verwendet, um die Sichtbarkeit von Elementen im Modell zu steuern und die Benutzeroberfläche.
  Es steuert, was Sie im Modell zu sehen (das Projekt, einen Ordner oder Dateien) und was Sie sehen in der Benutzeroberfläche (welche Aktionen oder Ansichten).
  Diese Kontrollen ermöglichen es, zu navigieren und ändern den Arbeitsbereich in einer Weise, die Klagen der Benutzer Aufgabe.

Perspectives kann leicht für jede Art von hierarchischer Informationsanzeige angepasst werden.

Perspektive

Information Filterung pro Aufgabe

Ein weiterer effektiver Weg, um komplexe Informationen anzuzeigen ist eine effektive Filterung Mechanismus vorzuschlagen, basierend auf der aktuellen Aufgabe.
Jedesmal, wenn der Benutzer Umstellung auf eine neue Aufgabe, die verschiedenen Informationen Bäume zeigen nur die relevanten Informationen.

Siehe Mylyn zum Beispiel:

  

Mylyn machen Aufgaben einen ersten Klasse Teil des IDE integriert reichen und Offline-Bearbeitung für ALM-Tools und überwacht Ihre Programmierung Aktivität einen „Task-Kontext“ zu erstellen, die Ihren Arbeitsbereich fokussiert und verbindet automatisch alle relevanten Artefakte des Aufgabe-at Boerse.
  Dies stellt die Informationen, die Sie an Ihren Fingerspitzen und verbessern die Produktivität durch eine Überfrachtung mit Informationen zu reduzieren, erleichtert Multitasking und den Austausch von Know-how zu erleichtern.

Auch hier kann, dass auf jede Art von Informationen angewandt werden.

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

Andere Tipps

Wie über eine Variation auf einem Stiel und Blatt-Diagramm?

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

Dies ist ein Konzept aus der Statistik, aber man konnte die traditionelle Baumstruktur Hinzufügen eine Liste der Versionen rechts von jeder Datei in dem Baum erweitern. Mit dem richtigen Ausrichtung, ich denke, das könnte eine visuell ausdrucksstark und brauchbare Lösung sein. So etwas wie folgt aus:

* 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

Der Stiel und Blatt-Diagramm gibt eine visuelle Anzeige, wie oft eine Datei zusammen mit dem schnellen Zugriff überarbeitet wurde zu sehen (Bearbeitung, etc) und Versionen.

Es ist wahrscheinlich, dass diese nur eine Sicht auf den Daten wären. Sie würden nach wie vor durch die verschachtelte Struktur belastet werden, aber wenn Sie damit leben, vielleicht würde dies helfen.

Wenn Sie 6 Ebenen nisten, sind Sie wahrscheinlich mehrere Probleme künstlich zu mischen. Siehe unten für das 5D-Modell. Es sieht aus wie sollten Sie Namespace-Klasse-Methode als die unter Verwendung von Basis-Navigationsmodell. Sie sind zumindest Mischcodestruktur mit ihrer Organisation auf der Festplatte (Dateien und Ordner) und die Abbildung auf Varianten. Smalltalk IDEs wie Pharo bieten eine Reihe von Code-Browser-Navigation macht einfach entlang einiger Dimensionen und bieten eine Browser-Baukasten Glamour zu Ihrer eigenen für andere Navigations Dimensionen zu machen.

Sie werden einen Blick auf die Arbeit von Richard Wettel getan zu nehmen. Etwas ähnliches wie Codecity . Mit OpenGL eine 3- und 4D (Zeit) Anzeige der Entwicklungsgeschichte eines Projektes zu erstellen. Es ist Teil der Forschung in der Software-Reengineering ELCH .

Für Ihre Forschung Sie könnten das 5 dimensionale Modell für diese verwenden möchten:

  • Version (Änderungen wollen)
  • Status (Lebenszyklus: Erstellen, Testen, Bereitstellen Ruhestand)
  • Ansicht (Anforderung, Code, Test, Dokumentation)
  • Hierarchie (Modul, Klassen-, Methoden-)
  • Variante (weitgehend ähnlich, beschreibt die Unterschiede, Produktfamilien)

Die meisten Systeme nur einige dieser Dimensionen behandeln. Um alle fünf handhaben, müssen Sie (fix) Ihren Entwicklungsprozess beschreiben. Wenn Sie das tun, können Sie die Anwendungsfälle Sie beschreiben in Ihrer Benutzeroberfläche zu unterstützen. Wenn nicht, müssen Sie eine 5-dimensionale flexible Display-Engine. Das wird nicht so einfach zu bedienen sein.

Die Referenz:

Konstruktionsdaten verwalten. Die fünf Dimensionen des CAD-Frameworks, Konfigurationsmanagement und Produktdatenmanagement
van den Hamer, P. Lepoeter, K.
Philips Res, Eindhoven.

Dieses Papier erscheint in: Proceedings of the IEEE
Erscheinungsdatum: Januar 1996
Volumen: 84, Ausgabe: 1 | Auf Seite (n): 42-56
ISSN: 0018-9219
Zitierte Referenzen: 26
CODEN: IEEPAD
INSPEC Zugangsnummer: 5175049
Digital Object Identifier: 10,1109 / 5,476025
Aktuelle Version Veröffentlicht am: 2002-08-06

Hmm, würde ich mit Silo, vertikalen Zylindern, für jeden Zweig beginnen: dev, Freigabe, wird eine oder mehr hier. Sie sollten visuell Versionen platzieren, die historisch, dass Silo in sie begangen wurden. Zwischen diesen Versionen würden Sie beliebig viele andere Änderungen haben, die schließlich Schleife zurück.

Entlang jeder Schleife gibt es Punkte außerhalb des Silos mit x Anzahl der Änderungen. Visualisieren sie logisch abgeflacht wie Früchte hängen nach unten, wird es ein bisschen ein verworrenes Chaos von dem hohen Niveau sein, aber die Textur, Farbe, Muster, Größe der Frucht würde Sie ein Gefühl von dem, was passiert ist. Auch über die Frucht schweben liefert, was Kommentare wurden gemacht mit dem Commit.

Klicken Sie dann auf den Stamm der Frucht und hier gibt es die Ansicht drehen um in verschiedene Stile, aber anstatt die Hierarchie auf die Änderung der Navigation durch eine Änderung in der Hierarchie zu navigieren. Big Raum auf der linken Seite mit wenig hiearchy Raum auf der rechten Seite. Bewegen der Maus über Änderungen wird die Hierarchie zip um. Klicken Sie auf die Änderung und die Hierarchie ist gesperrt und dann können Sie die Hierarchie klicken und Sie gehen in das Silo Ansicht wieder, aber diesmal mit der Datei / Funktion / was auch immer das einzige, was gezeigt wird.

--- EDIT --- Hier ist eine Skizze Art, was ich dachte. Meine Idee basiert auf der Verwendung Mercurial als Quellcodeverwaltungsrepository. Für mich zumindest wäre es interessanter sein, ein Gefühl für die möglichen Änderungen in jeder Revision gemacht zu bekommen, eine Idee, die nicht mit Netz kann, was Sie drehen. Mit Blick auf die möglichen Änderungen sollte das Repository der Lage sein, zu charakterisieren und zu quantifizieren, was geändert wurde, etwas mehr wesentlich denke ich als, welche Dateien geändert wurden. Die kleinen Punkte würde nur Code werden innerhalb des Verfahrens verändert sich oder möglicherweise Zusätze von privaten Methoden einer Klasse. Wenn Sie in einer Frucht heran wird es füllt den Raum und die Stämme werden verschwinden oder verblassen zu einem schwachen Wasserzeichen oder so.

Hope diese grobe Skizze vermittelt meine Idee ein bisschen besser. alt text http://img704.imageshack.us/img704/9034/img0507h.jpg

Wenn Sie schnell in der Lage sein zu finden, wo der Code geändert wurde, können Sie eine grafische Darstellung verwenden, zu gehen die baumartige Darstellung (wie die von mcliedtk vorgelegt) nur dann, wenn ein Element auswählen, die suffisantly ist Low-Level (Namensraum oder Typ).

für jedes Element, von der unteren Ebene in dem oberen, ein Berechnung% der Änderung:

  • für eine Methode oder Eigenschaft: 100%, wenn erstellt / geändert / gelöscht, 0% sonst
  • für eine Klasse: Mittelwert aller enthaltenen Elemente (Methode oder Attribut) oder 100%, wenn erstellt / entfällt
  • Gleiche für höhere Elemente (100%, wenn erstellt / gelöscht, Mittelwert von Komponenten aus anderen Gründen).

Jetzt müssen Sie eine Darstellung erhalten, die die hierarchische Struktur zeigen.
Sie können (zum Beispiel) ein radial man verwenden: Das Projekt ist in der Mitte (dh einem Kreis). Baugruppe als ein Ring um präsentiert, wobei jeder assebly den gleichen Raum einnimmt. eine dritte Ebene, die Module repräsentieren Ring, wobei jedes Modul für seine Montage den gleichen Raum einnimmt (dh, wenn Ther 4 Baugruppe, die jeweils eine 90 ° erhalten, und wenn eine Baugruppe 3-Modul hat, wobei jedes Modul erhalten 1/3 derjenigen 90 °) , und so weiter. jedes Element eine Farbe aus seinem% der Modifikation abgebildet erhalten (0% = grün = keine Änderung,> 85% = rot = heavey Modifikation)

Ein exemple könnte wie sein http://www.neoformix.com/2006/BB_TopicRadialTreemapImages. png oder http: //www.datavisualization. ch / wp-content / uploads / 2009/04 / stacked_wedge_01.png

Auf der Pro-Seite können Sie sehen, wo quikly Änderung aufgetreten, und auf welcher Ebene.
auf der Minus-Seite, gibt diese Änderung seit einem Referenzdatum und eine Datei einmal geändert oder zweimal das gleiche ist wie eine Datei 10 Mal geändert. Sie müssen möglicherweise auch Tooltips hinzufügen Navigation zu erleichtern, wie 6-Ebene schnell unreadalble werden kann (aber dann können Sie nur die 4 von 5 höheren Ebenen anzuzeigen ...)

Viele Grüße
Guillaume

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top