设计原则

Gaphor已历经多年发展。这些年来,我们(Gaphor开发团队)积累了许多关于如何构建它的宝贵经验。Gaphor始终致力于既为新手用户提供易用体验,同时也为资深用户打造实用工具。

Gaphor并非普通的编辑器,而是一个建模环境。这意味着其模型底层存在特定的建模语言规范。这些语言遵循既定的规则体系,而Gaphor始终致力于严格遵循这些规范。

易用性至关重要。初次使用Gaphor时,用户应能轻松上手操作。即使仅掌握UML基础知识,也至少可以创建类图。

_images/bf6c3c3b-81b2-11ee-ad01-a85e451ea141.svg

操作引导

Gaphor应当尽可能为用户提供操作引导。

关系辅助功能

图表具有一项特性:它会将所有无法建立关系的元素显示为灰色。这项功能可帮助您直观判断关系连接的有效范围。虽然系统仍允许混合使用不同元素,但我们始终致力于简化操作流程,确保模型构建的一致性。

保持模型同步

建模的核心在于通过抽象化设计系统,并能向他人阐释这些设计。随着系统复杂度提升,以图表形式呈现设计(模型)显得尤为重要。

Gaphor 不遗余力地确保模型与图表保持同步。在此过程中,未在任何图表中显示的元素将被自动从模型中移除。

不干扰用户操作

在进行建模时,您应当专注于问题域或解决方案域,而非工具本身。Gaphor始终致力于最大程度减少对用户的干扰——它不会频繁弹出错误提示来打扰您,因为模型本身并无绝对"正确"可言。

减少对话框使用

为实现正确的设计理念并减少对用户操作的干扰,Gaphor 尽可能避免使用对话框。

Gaphor 应当让用户能够执行合理操作(参见上述原则),而不会通过各类提问打断用户的工作流程。

变更通知

当Gaphor执行非直观操作时(例如间接移除模型中的元素),系统将通过应用内通知提示用户,而不会弹出对话框中断当前操作。若需撤销变更,只需点击撤销按钮。

平衡设计

尽管Gaphor实现了UML 2规范中的大量建模功能,但并未涵盖全部内容。我们力求在功能设计上找到最佳平衡点,以同时满足资深建模师和初学者的需求。

持续演进

所创建的模型应当具备长期可用性——这正是Gaphor的核心承诺。我们高度重视版本兼容性。

向后兼容性

Gaphor具备加载历史版本模型的能力,可向下兼容至1.0版本。对建模工具而言,确保始终能够加载旧版模型至关重要。

跨平台

我们投入大量精力确保Gaphor能在所有主流平台上运行,包括Windows、macOS和Linux。当需要共享模型时,实现全平台可用性至关重要——毕竟,若因操作系统限制而无法打开模型,这样的体验实在糟糕。

目前,我们暂未支持第四大主流平台(Web端)。本地应用程序能提供更优质的用户体验(安装后即可)。不过这一情况未来可能会有所改变。

用户交互

Gaphor最初是基于Linux平台开发的,采用 GTK 作为其用户界面工具包。这意味着Gaphor遵循 GNOME Human Interface Guidelines (HIG)的设计规范。作为一款跨平台应用,我们虽力求贴近GNOME HIG标准,但会避免引入Windows和macOS平台不支持的设计概念。

用户界面组件不是自动生成出来的。我们发现,如同许多企业级建模工具那样采用UI自动生成技术,反而会带来糟糕的用户体验。我们希望用户能长期使用Gaphor,因此致力于打造一款界面美观、操作便捷的建模工具。

还有哪些原则?

在技术层面,以下原则同样适用:

  • 幂等性:允许同一操作被重复执行多次,且不会影响最终结果。

  • 事件驱动:作为用户应用程序,Gaphor通过内部事件分发机制(事件总线)响应用户操作,并将事件传递至相关组件。所有模块均具备监听事件的能力。