用户界面功能建模语言?

时间:2010-02-04 14:11:52

标签: design-patterns user-interface uml

我正在寻找一种已经被接受的UI功能建模语言(类似于UML的“东西”,但对于用户界面而言)并且可能具有其设计模式并且比状态或活动图更好地处理问题。

由于发现UML及其图表在使用事件驱动的执行流程(即javascript / jQuery大项目)描述复杂的UI功能时失败,因此我想到了这个问题。

编辑: 我一直在考虑使用BPMN,但它不是为此而创建的。

5 个答案:

答案 0 :(得分:3)

也许user interface prototypesstoryboards可能会有所帮助...... 它们不是“建模语言”的一部分,但是很好地证明了设计GUI的技术......

答案 1 :(得分:3)

想到的一件事是Jesse James Garrett的Visual Vocabulary for Information Architecture.

答案 2 :(得分:2)

我认为没有任何标准可用于那个特定的目的(前几天我在想同样的事情)。我认为SysML很接近,虽然它绝对有点过分。

主要是,我的想法是,如果UML配置文件或元模型定义了核心UI组件和事件(“文本字段”,“单击”等),则不同的UI实现(HTML,Swing,AJAX)可以使用实例模型的XMI上的转换生成。除此之外,至少会有一种更清晰,更正式的方式来描述给定UI的功能。

答案 3 :(得分:2)

您可以使用传统的建模符号进行UI建模,但很快就会出现混乱和无用的模型。 您应该考虑像WebML这样的特定领域模型(很快就会成为IFML名下的OMG标准)。在这种情况下,您还可以获得一个名为WebRatio的免费建模工具,该工具提供快速原型设计和与BPMN规范的集成。

[免责声明:我与Politecnico di Milano和WebRatio,以及WebML / IFML的发明者之间]

答案 4 :(得分:1)

我只是偶然发现了你的问题,这是我认真对待的一个问题。 Here's my answer这个问题,我用了20多年的各种形式。

基本上,这是我用这种描述性语言寻求的标准:

  • 语言不应该被淡化,也不能用于访问数据或基本的控制流原语,如IF,FOR和子程序调用。我通过宏和函数定义在底层标准语言之上构建语言来实现这一目标。因此,它不需要解析器或解释器,可以直接访问应用程序数据,并且具有底层语言的控制流原语(但只有一些)。
    在描述性语言中包含流控制原语的原因在于它们的描述性效用。 IF(测试)-ELSE-END构造是一种说法,根据(test)的值显示两组控件之一。 FOR - END构造是一种表示要以多重性显示的控件集合的方式,例如线性控件数组。如果需要,可以嵌套这些以获得控件的二维矩阵。子例程(带参数)可以显示一组控件,然后可以在多个位置调用以多次复制该组。如果在DSL中没有这样的原语,那么很难指定这样的结构。

  • 语言不应要求指定UI的人必须处理仅为实现而存在的问题,例如输入事件处理,创建,删除和控件命名,以及控件之间的数据移动和应用数据。因此,例如,每个编辑,按钮或其他控件都是一行代码。处理诸如按钮单击之类的事件的代码直接写在指定按钮的代码行附近(不在单独的函数或闭包中)。控件与应用程序数据的绑定在“下面”处理,并不是UI程序员关注的问题。为了完成所有这些工作,它基于一个名为差异执行的控制结构,我在1986年偶然发现它。它基于程序的增量重新执行,以便它可以逐步更新其输出。在这种情况下,输出是窗口表面上的控件集合。这些控件会自动创建,删除,移动或以其他方式修改以响应应用程序状态的更改,而UI程序员不必考虑状态更改。

我只在桌面用户界面中使用过这个,而且我几乎没有进行任何网页开发。我很确定可以将相同的原则应用于Web UI,并且尚未完成。