Lo que hace que una interfaz de usuario eficaz para la visualización de versiones de datos jerárquica estructurada

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

  •  23-09-2019
  •  | 
  •  

Pregunta

El sistema de control de versiones tradicionales están mostrando la información de versiones mediante la agrupación de Proyectos-> Folders-> Archivos con la vista de árbol de la izquierda y la vista de detalles de la derecha, entonces usted va a hacer clic en cada punto para mirar la historia de revisiones para la historia de configuración.

Suponiendo que tengo toda la información histórica de versiones disponibles para un proyecto desde la perspectiva del modelo orientado a objetos (por ejemplo, clases -> métodos -> parámetros y etc), ¿qué crees que va a ser la forma más eficaz de presentar tal información en la interfaz de usuario, para que pueda navegar fácilmente y acceder a la vista instantánea del proyecto y también la información de versiones histórica? Ponte en la posición que está utilizando una herramienta como esta todos los días en su trabajo como si este momento está usando SVN, SS, Perforce o cualquier sistema VCS, lo que contribuirá a la usabilidad, la productividad y la eficacia de la herramienta.

Yo personalmente encuentro la forma clásica de carpetas y archivos como por encima de visualización son muy restrictivas y menos eficaz para la visualización de los modelos lógicos anidados de profundidad. Suponiendo que este es un proyecto de nueva creación y no se limita por la tecnología específica, ¿cómo cree que debería aproximarse mejor esto?

Busco idea y de entrada aquí para agregar valores a mi proyecto de investigación. No dude en hacer cualquier sugerencia que usted piensa que es valioso. Gracias de nuevo para cualquier persona que comparte sus pensamientos.

Editado: Para dar más información, un elemento de configuración promedio, tomar un método será anidado en alrededor de 6 niveles (Proyecto-> montaje-> módulo-> Namespace> tipo-> método, y más niveles para navegar a elementos secundarios dentro de ella) y esto es siempre el caso, no como en la estructura de carpetas de archivos en el que de vez en cuando en algún proyecto tiene la estructura profunda anidada. Cuando se tiene esa cantidad de niveles, panel de árbol se convierte en inservible para navegar. En mi humilde opinión, Árbol panel también menos efectivo en este escenario con la presente estructura general del sistema.

¿Fue útil?

Solución

En lugar de tratar de seleccionar un planificación de presentación para el montaje de n niveles de información en una interfaz gráfica de usuario, por qué no permitir al usuario elegir el nivel adecuado de detalles que él / ella quiere o necesita?

Perspectives

Eclipse es un ejemplo (no el único) que permite que el usuario definen perspectivas .

  

Dentro de la mesa de trabajo la función de la perspectiva se utiliza para controlar la visibilidad de los elementos en el modelo y la interfaz de usuario.
  Controla lo que se ve en el modelo (que proyecto, carpeta o archivos) y lo que se ve en la interfaz de usuario (qué acciones o puntos de vista).
  Estos controles permiten navegar a través y modificar el espacio de trabajo de una manera que se adapte a la tarea de usuario.

Perspectivas se puede adaptar fácilmente para cualquier tipo de visualización de información jerárquica.

Perspective

Filtrado de la información por tarea

Otra manera efectiva para mostrar informaciones complejas es proponer un mecanismo de filtrado eficaz, basándose en la tarea actual.
Cada vez que el interruptor de usuario a una nueva tarea, los diversos árboles de información mostrar sólo la información relevante.

Mylyn por ejemplo:

  

Mylyn hace que las tareas una primera parte de la clase de la IDE, integra la edición rica y fuera de línea para disfrutar de herramientas ALM, y monitores de su actividad de programación para crear un "contexto de la tarea" que se centra su espacio de trabajo y automáticamente vincula todos los objetos relevantes para la tarea -al -hand.
  Esto pone a la información que necesita a su alcance y mejora la productividad al reducir la sobrecarga de información, lo que facilita la multitarea y facilitar el intercambio de conocimientos.

Una vez más, que se puede aplicar a cualquier tipo de información.

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

Otros consejos

¿Qué tal una variación en un diagrama de tallo y hoja?

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

Este es un concepto de las estadísticas, pero que podría aumentar la estructura de árbol tradicional de añadir una lista de las versiones a la derecha de cada archivo en el árbol. Con una alineación correcta, creo que esto podría ser una solución visualmente expresiva y utilizable. Algo como esto:

* 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

El diagrama de tallo y hoja da una indicación visual de la cantidad de veces que un archivo ha sido revisado junto con un rápido acceso a la visualización (edición, etc.) y las versiones.

Es probable que esto sería sólo un punto de vista sobre los datos. Todavía estaría gravado por la estructura anidada, pero si usted tiene que vivir con eso, tal vez esto ayudaría.

Si está anidando 6 niveles, es probable que la mezcla artificialmente múltiples preocupaciones. Véase más abajo para el modelo 5D. Parece que usted debe utilizar la clase de espacio de nombres como el método modelo de navegación básica. Tiene por lo menos mezclando estructura de código con su organización en el disco (archivos y carpetas) y la asignación a las variantes. Entornos de desarrollo Smalltalk como Pharo proporcionan un conjunto de navegadores de código haciendo que la navegación fácil a lo largo de unas pocas dimensiones, y proporcionan un kit de construcción del navegador Glamour para hacer su propia para otras dimensiones de navegación.

Usted querrá echar un vistazo a la labor realizada por Richard Wettel. Algo similar a Codecity . El uso de OpenGL para crear un 4D (tiempo) de visualización de la historia del desarrollo de un proyecto de 3 y. Es parte de la investigación en el software de reingeniería ALCES .

En su investigación, usted podría querer usar el modelo dimensional 5 para esto:

  • Versión (querer modificar)
  • Estado (ciclo de vida: crear, probar, implementar, retirándose)
  • view (requisito, código, prueba, documentación)
  • jerarquía (módulo, clase, método)
  • variante (en gran medida similares, que describe las diferencias, las familias de productos)

La mayoría de los sistemas sólo manejar algunas de estas dimensiones. Para hacer frente a los cinco, usted tiene que describir (fijar) el proceso de desarrollo. Si lo hace, puede describir los casos de uso que desea apoyar en la interfaz de usuario. Si no es así, se necesita un motor de visualización flexible 5-dimensional. Eso no va a ser tan fácil de usar.

La referencia:

La gestión de datos de diseño:. Las cinco dimensiones de los marcos de CAD, gestión de la configuración y la gestión de datos de productos
van den Hamer, P. Lepoeter, K.
Philips Res, Eindhoven.;

Este documento se encuentra en: Proceedings of the IEEE
Fecha de publicación: Enero de 1996
Volumen: 84, Número: 1 | En la página (s): 42-56
ISSN: 0018-9219
Las referencias citadas: 26
CODEN: IEEPAD
INSPEC Número de Acceso: 5175049
Identificador de Objetos Digitales: 10.1109 / 5.476025
Versión actual Publicado: 2002-08-06

Hmm, comenzaría con el silo, cilindros verticales, para cada rama: dev, la liberación, tendrá uno o más aquí. Debe colocar visualmente versiones que se cometieron históricamente que silo en ella. Entre esas versiones que tendría cualquier número de otros cambios que volver bucle con el tiempo.

A lo largo de cada bucle hay cometer puntos fuera del silo con x número de cambios. Visualizarlos lógicamente aplanadas como las frutas colgando hacia abajo, que será un poco un lío embrollado del alto nivel pero la textura, el color, el patrón, el tamaño de la fruta podría darle una idea de lo sucedido. También se cierne sobre la fruta proporcionará lo observaciones se realizaron con la confirmación.

A continuación, haga clic en el tallo de la fruta y aquí le da la vuelta alrededor de la vista en varios estilos, pero en lugar de navegar por la jerarquía para el cambio, utiliza el cambio para navegar por la jerarquía. Gran espacio de la izquierda con poco espacio hiearchy a la derecha. Al pasar por encima cambios se pasean alrededor de la jerarquía. Haga clic en el cambio y la jerarquía se congela y luego puede hacer clic en la jerarquía y que vaya a la vista silo de nuevo, pero esta vez con el archivo / función / lo que sea lo único que se muestra.

--- --- EDITAR Aquí es un boceto de una especie de lo que estaba pensando. Mi idea se basa en el uso de Mercurial como un repositorio de control de código fuente. Para mí, al menos, sería más interesante para tener una idea de la clase de los cambios realizados en cada revisión, una idea que puede no encajar con lo que estaba disparando a. Al observar los tipos de cambios al repositorio debe ser capaz de caracterizar y cuantificar lo que se cambió, algo más esencial que creo que lo que se cambiaron los archivos. Los pequeños puntos simplemente se cambian de código dentro del método en sí mismo o posiblemente adiciones de métodos privados a una clase. Cuando se acerca una fruta que llenará el espacio y los troncos desaparecerá o se desvanecen a una marca de agua oscura o algo así.

Hope este bosquejo crudo transmite mi idea un poco mejor. texto alt http://img704.imageshack.us/img704/9034/img0507h.jpg

Si usted quiere ser capaz de encontrar rápidamente que el código ha sido modificado, se puede utilizar una representación gráfica, vaya al árbol similar a la representación (como la presentada por mcliedtk) solamente cuando se selecciona un elemento que es suffisantly de bajo nivel (espacio de nombres, o tipo).

para cada elemento, desde el nivel inferior al superior, calcular un% de modificación:

  • para un método o atributo: 100% si creada / modificada / borrado, 0% de lo contrario
  • para una clase: media de todos los elementos incluidos (método o atributo), o 100% si creado / suprimido
  • lo mismo para los elementos superiores (100% si creado / borrado, la media de los componentes de otra manera).

Ahora usted tiene que tener para obtener una representación que es mostrar la estructura jerárquica.
puedes (por exemple) utilizar una radial: el proyecto está en el centro (es decir, un círculo). montaje se presentan como una alrededor de anillo, con cada uno tomando assebly el mismo espacio. un anillo de tercer nivel representan los módulos, cada módulo teniendo el mismo espacio para su montaje (es decir, si Ther es 4 de montaje, cada uno por 90 °, y si un conjunto tiene 3 módulo, cada módulo conseguir tercio de los 90 °) , y así. cada elemento de obtener un color asignada desde su% de modificación (0% = verde = no modificación,> 85% = rojo = Heavey modificación)

Un exemple podría ser como http://www.neoformix.com/2006/BB_TopicRadialTreemapImages. png o http: //www.datavisualization. ch / wp-content / uploads / 2009/04 / stacked_wedge_01.png

En el lado profesional, se puede ver quikly los que la modificación se produjo, y en qué nivel.
En el lado negativo, esto da modificación desde una fecha de referencia, y un archivo modificado una o dos veces es lo mismo que un archivo modificado 10 veces. También puede tener que agregar información sobre herramientas para facilitar la navegación, como el 6 nivel puede convertirse rápidamente en unreadalble (pero entonces se puede mostrar sólo el 4 de 5 niveles más altos ...)

Saludos
Guillaume

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top