传统的版本控制系统通过将“项目”->“文件夹”->“文件”分组来显示版本控制信息,左侧为树形视图,右侧为详细信息视图,然后您将单击每个项目来查看该配置历史记录的修订历史记录。

假设我从面向对象模型的角度拥有项目可用的所有历史版本控制信息(例如类 -> 方法 -> 参数等),您认为在 UI 中呈现此类信息的最有效方式是什么,以便您可以轻松导航和访问项目的快照视图以及历史版本控制信息?假设您每天在工作中使用这样的工具,就像您当前使用 SVN、SS、Perforce 或任何 VCS 系统一样,这将有助于该工具的可用性、生产力和有效性。

我个人发现像上面这样的显示文件夹和文件的经典方法非常有限,并且对于显示深层嵌套逻辑模型效率较低。假设这是一个全新项目并且不受特定技术的限制,您认为我应该如何最好地处理这个问题?

我在这里寻找想法和意见,为我的研究项目增加价值。欢迎提出任何您认为有价值的建议。再次感谢任何分享想法的人。

编辑: 为了提供更多信息,一个平均配置项,采用一个方法将嵌套在大约 6 个级别(项目->程序集->模块->命名空间->类型->方法,以及更多级别以导航到其中的子项)并且情况始终如此,与文件夹文件结构不同,在文件夹文件结构中,您偶尔在某些项目中具有深层嵌套结构。当您有这么多级别时,树窗格将无法导航。恕我直言,树窗格在这种情况下也不太有效地呈现系统的整体结构。

有帮助吗?

解决方案

而不是试图选择的一个的拟合n的一个GUI信息的水平演示方案,为什么不能让用户选择他/她想要的细节或需要的合适的水平?

透视

Eclipse是一个示例(不是唯一的),允许用户限定角度的。

  

在工作台中的视角特性被用于控制在模型和用户界面项的可见性。结果   它控制你的模型(该项目,文件夹或文件),你看看在用户界面中看到(其行为或观点)。结果   这些控制使人们有可能通过浏览和修改工作空间中的方式,其适合用户的任务。

视角可以容易地适用于任何类型的分层信息的显示器。

“视角”

信息每个任务

过滤

要显示复杂信息的另一种有效的方法是提出一种有效的过滤机制,基于当前的任务。结果 每当用户切换到一个新的任务,则各种信息树木仅显示相关的信息。

请参阅 Mylyn的 例如:

  

的Mylyn使得任务的IDE的第一类部分,集成了丰富的离线编辑,便于ALM工具和监控你的编程活动来创建,专注您的工作空间,并自动将“任务上下文”链接所有相关文物的任务,在 - 手。结果   这让你需要在你的指尖,并通过减少信息过载,有利于多任务处理和缓解专业知识的共享提高了生产效率的信息。

同样,这可以应用到任何类型的信息的。

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

其他提示

如何在茎和叶的情节的变化?

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

这是从统计的概念,但你可以增加传统的树状结构将版本的列表,以树中的每个文件的权利。有了适当的调整,我认为这可能是一个视觉表现力和可用的解决方案。是这样的:

* 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

在茎和叶图给出的多少次文件已被快速访问沿订正的视觉指示,以查看(编辑等)和版本。

有可能这将是对数据仅一个视图。您将仍然由嵌套结构缠身,但如果你要住在一起,也许这将有助于。

如果您嵌套 6 层,则可能人为地混合了多个关注点。5D 模型见下文。看来您应该使用命名空间级 - 方法作为基本导航模型。您至少将代码结构与其在磁盘上的组织(文件和文件夹)以及到变体的映射混合在一起。Smalltalk IDE,例如 法罗 提供一组代码浏览器,使导航在几个维度上变得容易,并提供浏览器构建工具包 魅力 为其他导航维度制作您自己的。

您会想看看理查德·韦特尔 (Richard Wettel) 所做的工作。类似的东西 代码城. 。使用 OpenGL 创建项目开发历史的 3D 和 4D(时间)显示。它是软件再工程研究的一部分 驼鹿.

对于您的研究,您可能需要使用 5 维模型:

  • 版本(想要更改)
  • 状态(生命周期:创建、测试、部署、退役)
  • 查看(需求、代码、测试、文档)
  • 层次结构(模块、类、方法)
  • 变体(基本相似,描述差异,产品系列)

大多数系统仅处理其中的几个维度。要处理所有五个问题,您必须描述(修复)您的开发过程。如果这样做,您可以描述您想要在 UI 中支持的用例。如果没有,你需要一个5维柔性显示引擎。那就不那么容易使用了。

参考资料:

管理设计数据:CAD框架、配置管理和产品数据管理的五个维度。
范登哈默,P.勒珀特,K.
飞利浦水库,埃因霍温;

本文出现在: IEEE 会刊
发布日期:1996年1月
体积:84、问题:1
在页面上:42-56
国际刊号:0018-9219
引用的参考文献:26
代码:IEEPAD
INSPEC 入藏号:5175049
数字对象标识符:10.1109/5.476025
当前发布的版本:2002-08-06

嗯,我会仓,垂直油缸开始,每个分支:开发,发布,将有一个或多个在这里。你应该视觉地方,在历史上犯下的筒仓它的版本。这些版本之间,你会拥有任意数量的其他变化,最终环回。

沿着每个环有外提交与变化的x个筒仓点。它们可视化逻辑变平果垂了下来,这将是一个有点从高电平但质地,颜色,图案糊涂混乱的,果实的大小会给你发生了什么感觉。此外悬停在水果将提供作了任何意见与承诺。

然后点击水果干,在这里你身边翻转角度为几种风格,但不是导航层次结构的变化,利用变化来导航的层次结构。左侧与右侧小hiearchy空间大的空间。鼠标悬停在变化将拉链的层次结构。点击变化和层次是冷冻,然后你可以点击层次,你再去仓的看法,但这次与任何正在显示的唯一文件/功能/。

--- --- EDIT 这是什么样的我想的草图。我的想法是基于使用水银作为源代码控制库。至少对我来说这将是更有趣,以获得各种各样的每个版本所做的更改的意识,一个想法,可能与你在拍的网。通过观察各种变化的仓库应该能够表征及定量什么改变了,什么更重要我觉得比什么文件被改变。小点也只是代码的方法本身或可能的私有方法的一类补充内改变。当你在一个水果放大它将填补的空间和树干会消失或褪色暗淡的水印或一些这样的。

希望这粗草图传达我的想法好一点。 替代文字http://img704.imageshack.us/img704/9034/img0507h.jpg

如果您希望能够快速找到代码被修改的位置,您可以使用图形表示,仅在选择足够低级别的元素时才转到树状表示(例如 mcliedtk 提供的表示) (命名空间或类型)。

对于每个元素,从下层到上层,计算修改的百分比:

  • 对于方法或属性:如果创建/修改/删除则为 100%,否则为 0%
  • 对于一个类:所有包含的元素(方法或属性)的平均值,如果创建/删除则为 100%
  • 对于更高的元素也是如此(如果创建/删除则为 100%,否则为组件的平均值)。

现在你必须得到一个显示层次结构的表示。
你可以(例如)使用径向的:该项目位于中心(即圆圈)。组件呈现为一个环,每个组件占据相同的空间。第三层环代表模块,每个模块为其组件占用相同的空间(即,如果有 4 个组件,则每个组件获得 90°,如果组件有 3 个模块,则每个模块获得这些 90° 的 1/3) , 等等。每个元素都会根据其修改百分比映射颜色(0% = 绿色 = 无修改,>85% = 红色 = 大量修改)

一个例子可能是这样的 http://www.neoformix.com/2006/BB_TopicRadialTreemapImages.png 或者 http://www.datavisualization.ch/wp-content/uploads/2009/04/stacked_wedge_01.png

从专业角度来看,您可以快速查看修改发生的位置以及级别。
不利的一面是,这给出了自参考日期以来的修改,修改一次或两次的文件与修改 10 次的文件相同。您可能还需要添加工具提示以方便导航,因为 6 级可能很快就会变得难以阅读(但随后您只能显示 5 级更高级别中的 4 级...)

问候
纪尧姆

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top