信息系统的敏捷生成式 GUI 建模方法
在信息系统的开发中,基于模型的系统工程(MBSE)和代码生成器为敏捷开发带来了便利,但也面临着在何处进行变更以满足不断变化的需求的问题。本文将介绍四种扩展和修改信息系统 GUI 的方法,无需修改手写代码,这些方法有助于创建灵活的领域特定语言(DSL),以适应不同领域和快速变化的需求。
1. GUI - DSL 基础
GUI - DSL 语言主要处理两个方面的内容:一是信息的图形化表示;二是为视图定义数据源,包括数据的传输方式和格式的最少信息。
- 模型(Model) :该语言的每个模型描述一个网页,结构类似于 HTML 文档。页面定义描述了一个分层视图,呈现为树状结构,叶子节点提供数据的图形表示,中间节点定义页面布局。例如,一个 GUI 模型的头部可能有一个标签(如“Accountant details”)和一个按钮,主体包含一个数据表。GUI - DSL 模型的一个显著特点是数据处理,页面定义将数据作为变量包含在内,这些变量作为 GUI 组件的输入。
- 生成器(Generator) :模型由生成器处理,生成应用程序代码。转换过程分多个步骤进行:
- 解析模型并创建抽象语法树(AST)。
- 将 AST 进一步转换为与生成代码结构相近的形式。
- 将转换后的结果交给模板引擎,逐块构建页面的视图和逻辑。
- 可选地对生成的代码进行格式化,使其更易读和分析。
为了定义一个具有简单