字段目录 - 文档系统第一部分:简介
字段目录 - 文档系统。第一部分 - 介绍
引言
本文共分5部分,旨在介绍一个用于保存软件产品所有业务规则和信息的系统。
作为软件开发人员,无论是在开发团队、质量控制团队还是业务团队,我们经常想知道一些事情,例如:
- 屏幕上某个字段背后的业务规则是什么?
- 当点击一个按钮时,系统会执行哪些验证?
- 当我们在屏幕上进行代码更改时,我们必须执行哪些测试用例以确保我们的新代码可以提交?
- 一个字段的导航流程是什么?终端用户有多少种方式可以进入此屏幕?如果更改一个屏幕,我们必须执行多少个测试用例?
- 如果更改一条消息,哪些屏幕或字段正在使用此消息?
- 或者我们可能会问产品两个版本之间有什么不同。这个业务规则是什么时候引入的?是哪个版本?
- 以及更多问题……以找出软件产品中字段、屏幕的依赖关系或关联性。
所有上述问题都只是为了帮助开发人员在交付代码更改并更好地维护系统之前,更深入、更清晰地了解系统。产品的新开发人员或质量保证人员也需要学习这些东西。
当然,我们有很多方法可以回答问题,例如查阅现有文档、询问经验丰富的人员或自己研究。
我想到一个点子,为什么我们不拥有一个系统来帮助开发中的所有团队解决这些问题,并尽可能多地提供答案。就好像任何人想了解一个屏幕,他们来到那个系统并搜索一个屏幕,点击上面的一个控件,然后系统会提供所有与该控件相关的信息。
这就是“字段目录”的构建原因。
这篇五部分的文章将涵盖:
- 引言
- 架构
- 数据库设计
- 高层设计
- 低层设计
关于这个开源系统。
“字段目录”系统做了什么
该系统基于4个主要对象构建
- 产品
- 产品版本
- 屏幕
- 字段
根据这4个对象的命名,我想您已经可以猜到“字段目录”能做什么了。
我将介绍该产品的主要功能。
定义软件产品
例如,您可以将 Microsoft Word 定义为一款软件产品。
定义软件产品版本
例如,您可以将01.00.010定义为Microsoft Word的一个版本。
定义屏幕
例如,您可以将新建、打开、打印、页面设置定义为Microsoft Word 01.00.010版本的屏幕。
定义字段
例如,您可以将“确定”、“选项”或“取消”定义为 Microsoft Word 版本 01.00.010 打印屏幕的字段。
当我说“定义”时,意味着我们能够创建、编辑或维护它们,并链接到许多项目或信息,例如业务规则、代码、消息、标签、权限、事件、自定义字段等。
定义产品/版本/屏幕与字段之间的关系
例如,Microsoft Word 01.00.010 版本有 27 个屏幕和 539 个字段。
定义屏幕与屏幕之间的关系
例如,“打印”屏幕是主屏幕的子屏幕,同时也是“页面设置”屏幕的父屏幕。
定义字段与字段之间的关系
例如,“页面范围”字段可以改变 Microsoft Word “打印”屏幕上“手动双面打印”复选框的行为。
通过图形模式定义屏幕和字段之间的关系
例如,您可以打开一个带有截图的屏幕,然后直接在该图片上标记字段。
除了以上4个主要对象,系统还提供支持对象
- 事件
- 自定义字段
- Tag
- 组
- Message
“字段目录”可以提供更多功能。
为屏幕和字段定义动态事件
例如,您可以为“打印”按钮创建“点击”、“鼠标悬停”等事件。或者您可以为“打开”对话框定义“页面加载”事件。
为产品、屏幕和字段定义动态自定义字段
例如,您可以为“页面设置”对话框创建一个名为“技术说明”的自定义字段,以便记录您想与开发人员分享的备注。
在整个系统中尽可能多地定义标签。
例如,您可以为“打印”屏幕添加“打印”、“设置”等标签。
定义允许控制查看/编辑权限的组
例如,您可以在 Microsoft Word 01.00.010 版本中创建开发人员和质量控制组,并为这两个组分配查看权限。
为整个产品定义消息
提供搜索引擎。
例如,您可以输入任何关键词进行搜索;系统将在系统中的每一个字段上进行搜索,以找出与该关键词相关的信息,包括标签、事件、自定义字段等。
快速浏览
为了重申我上面所说的,请快速浏览一下“字段目录”的功能,然后我们才能进入第二部分,其中包含更多技术内容,包括架构、数据库设计以及高层和低层设计。
“字段目录”的初始版本部署在 RedHat 的 OpenShift 上。
http://fieldcatalog-itservicesdepot.rhcloud.com/pages/unsecure/login.xhtml
- 管理员角色 admin@itservicesdepot.com/tryme123
- 查看者角色 guest@itservicesdepot.com/tryme123
使用管理员角色尝试所有功能/权限。
以下是我想让您在第一部分中尝试的核心功能。
创建/管理产品
要创建一个产品,有4类信息可以设置。
- 主(Primary)
- 名称
- 描述
- 活动
- 基线版本
- Owner
- 生效日期
- 有效期
- 权限
这是为了授予组的查看/设计权限。
- 高级
这有助于您为产品添加关键词标签
- 自定义字段
这是一项非常强大的功能,它允许您创建为产品定制的动态信息。请参阅“自定义字段”部分中系统如何创建和生成自定义字段。
管理产品
此页面用于列出系统中的所有产品以及搜索和筛选等功能。从该页面,您可以进入:
- 产品详情页:这允许查看/编辑产品页面的详细信息。
- 产品地图:这以图形模式显示产品所属的所有屏幕/字段。
- 屏幕列表页:这用于查看属于此产品的所有屏幕。
创建屏幕
要创建一个屏幕,有5类信息(实际上是7类,稍后我将提及另外2类),您可以进行设置:
- 主(Primary)
- 名称
- 描述
- 产品
- 产品版本
- 父屏幕
注意:用于定义此屏幕与父屏幕(如果存在)之间的关系。
- 活动
- Owner
- 生效日期
- 有效期
- Image
注意:这是此屏幕的截图,以便我们稍后可以在此截图上定义字段。
- 业务规则
这用于捕获与此屏幕相关的业务规则或伪代码。搜索功能可以在这些字段上进行搜索。
- Message
这用于将所有消息链接到此屏幕。例如,如果您正在创建一个名为“登录”的屏幕,并且如果用户输入了错误的用户名/密码,系统会发出一条消息“E7612 用户名/密码不正确”,那么您将创建“登录”屏幕与消息E7612之间的链接。
- 权限
这与产品的权限相同。它用于授予组的查看/设计权限。
- 高级
这与产品的“高级”功能相同。这用于添加关键词标签。
管理屏幕
此页面用于列出系统中的所有屏幕以及搜索和筛选等功能。从该页面,您可以进入:
- 屏幕详情页:这允许查看/编辑屏幕页面的详细信息。
- 屏幕图像:此页面允许您根据屏幕截图查看/定义此屏幕的字段。使用标签功能。
- 屏幕地图:这以图形模式显示属于该屏幕的所有子屏幕/字段。
- 字段列表页:这用于查看属于此屏幕的所有字段。
创建字段
要创建一个字段,有5类信息(实际上是7类,稍后我将提及另外2类),您可以进行设置:
- 主(Primary)
- 名称
- 描述
- 产品
- 产品版本
- 屏幕
- 依赖字段
注意:用于定义此字段与其他字段(如果存在)之间的关系。
- 活动
- Owner
- 生效日期
- 有效期
- 业务规则
这与屏幕的业务规则相同。这用于捕获与此字段相关的业务规则或伪代码。
- Message
这与屏幕的消息相同。这用于将所有消息链接到此字段。
- 权限
这与产品的权限相同。它用于授予组的查看/设计权限。
- 高级
这与产品的“高级”功能相同。这用于添加关键词标签。
管理字段
此页面用于列出系统中的所有字段以及搜索和筛选等功能。从该页面,您可以进入:
- 字段详情页:这允许查看/编辑屏幕页面的详细信息。
创建屏幕与字段之间的关系
此页面用于根据屏幕截图创建字段。您可以通过“屏幕”>“管理”>“图像”进入此页面。
在此页面上,您可以右键点击来打开一个上下文菜单,您可以在屏幕上创建/分配字段。
- 创建/分配
如果您选择“创建/分配”,系统将改变鼠标光标,并允许您拖动一个矩形来定义字段区域,如下所示:
在定义矩形并释放鼠标后,系统将提示您一个带有选项的对话框。
- 如果您选择“创建”,系统将允许您创建具有最少信息的新字段。
- 如果您选择“分配”,系统将允许您链接一个现有字段。
- 如果您选择“创建”,系统将允许您创建具有最少信息的新字段。
创建/分配后,您将看到如下所示的内容
这意味着一个字段已链接到屏幕。您可以点击该矩形进入字段详情页,查看该字段的信息。
查看产品或屏幕地图
此页面旨在向您展示属于所选产品的所有屏幕/字段。如下屏幕所示,该产品有四个屏幕:新建文档、打开文档、打印文档和页面设置。
您可以通过以下方式进入此页面:
- 产品 > 产品管理 > 地图
- 屏幕 > 屏幕管理 > 地图
如果你想深入了解,例如查看一个屏幕上有多少子屏幕或多少字段,你只需点击该屏幕,就可以看到更深一层。例如,我想了解更多关于“新建文档”屏幕的信息,我点击它,看到“新建文档”屏幕有一个“插入按钮”字段。
查看屏幕或字段导航地图
如我在“新建屏幕”部分所述,我们可以为一个屏幕定义一个或多个父级。例如,在 Microsoft Word 中我们可能会遇到这种情况:在主屏幕上,点击“打开”,然后显示“打开”对话框,这意味着“打开对话框”屏幕将“主”屏幕作为父级。在这种情况下,我们可以定义如下:
之后,如果你想查看“打开对话框”屏幕的导航地图,你会看到如下所示:
如您所见,系统将显示“打开对话框”有两个父级。这有助于我们回答如果我更改“打开对话框”的代码/业务规则,我们需要覆盖“新建Microsoft Word”和“打开文档”这两种流程。
新建/管理事件
嗯,让我们想想,您想记录系统在屏幕加载或卸载时的行为。或者您想记录系统在按钮点击时做了什么。您可以说,您可以在创建屏幕或字段时,将这些内容输入到“业务规则”选项卡中。这也是正确的。
但是,如果能以某种方式将规则与加载事件或点击事件特定地链接起来,那就更好了。这就是我提供“字段目录”中事件的原因。
举个例子,如果我想支持字段的“点击”事件。我将使用“新建事件”屏幕定义一个“点击”事件。
之后,您会看到系统将为您生成更多空间,以便在每个字段上输入“点击”事件的规则。现在您可以在创建/编辑字段时看到“事件”选项卡。
同样的事情也适用于屏幕。
新建/管理自定义字段
当您创建产品/字段或屏幕时,当前系统允许您捕获名称/描述/生效日期等信息……但是您想捕获更多字段,该怎么办呢?
这就是我在“字段目录”中提供“自定义字段”的原因。
举个例子,如果我希望在创建名为“开发人员备注”的屏幕时,能捕获更多信息。
之后,您会看到系统将为您生成一个文本框,以便在每个屏幕上输入“开发人员备注”。现在您可以在创建/编辑屏幕时看到“自定义字段”选项卡。
同样的事情也适用于产品/字段。
目前,自定义字段支持以下控件类型:
摘要
我希望您能理解“字段目录”构建的原因及其目前具备的功能。总而言之,“字段目录”作用于产品、版本、屏幕和字段对象。支持核心对象,我们有事件、消息、自定义字段、标签、组和搜索。所有这些对象都有助于定义产品/屏幕和字段之间的关系,以便我们能在产品中拥有完整的地图和导航地图。
现在我们可以进入第二部分——数据库设计。