可视化需求模型(visual requirement model)是分析软件需求最有效的方法之一。它们可以帮助分析师确保所有利益相关方——包括主题专家、业务利益相关方、高管和技术团队——了解解决方案。可视化,可以使利益相关方始终有兴趣参与需求过程(这是对需求进行查漏补缺的关键)。最重要的是,可视化这种方式为解决方案创建了一个全景,可以帮助利益相关方了解解决方案要提供什么和不会提供什么。虽然可视化有这么多优点,但仍然有许多业务分析师和产品经理沿用其中列有成千上万条需求陈述的电子表格或者文档来创建非可视化的需求。这样的文件非常繁琐,云山雾罩,令人不知所措,不仅审查起来很枯燥,甚至更难分析是否有被遗漏的需求。这种实践反映出需求培训的“软肋”(通常将重点放在如何写好需求上),而不是侧重于如何对整个解决方案进行分析。
本书旨在帮助业务分析师、产品经理及其组织中的其他人使用可视化模型来征询(elicit,也称“引出”或“萃取出”)、建模(model)和理解(understand)软件需求。本书描述了一种简单而全面的软件需求可视化建模语言,称为RML(requirement modeling language,需求建模语言),业内通中常以一种“特别”或“即兴”的方式使用。
本书面向的读者
虽然本书主要面向业务分析师(business analyst,BA,也称“商业分析师”)和产品经理(product manager,PO),但我们认为,项目经理、开发人员、架构师和测试人员也能从本书中收获不小的价值,因为本书可以帮助他们理解所接收的信息的标准,使其工作变得更容易。在整本书中,我们一般将从事这项工作的人称为“分析师”,但该角色在不同组织中有许多不同的头衔。当书中提到“你”或者“我们”时,指的也是“分析师”。
事先声明,我们的经验主要来自于运行在现有基础设施上的软件项目,例如为内部开发的信息技术(IT)系统、面向消费者的大规模“软件即服务”(Software as a Service,SaaS)系统以及云系统。虽然我们在独立软件(通用软件或packaged software)以及嵌入式系统上使用过RML,但这些类型的项目并不是我们主要的关注点。不过,基于我们对这些系统的有限经验,我们仍然认为,使用这些系统的读者会从RML中发现令人难以置信的价值,而且我们期待着能从他们那里得到反馈,以便进行改进。
假设
本书不包含需求的基本信息,因此会假设你已经具备编写软件需求的基础知识。另外,本书假设你对软件开发过程(例如迭代方法、瀑布方法和敏捷方法)已经有一个基本的了解,并理解需求如何与这些方法相适应。
本书不面向的读者
如果是刚开始做业务分析师,那么可能应该在阅读本书之前阅读卡尔·魏格斯和乔伊·比蒂的《高质量软件需求》(清华大学出版社,2023年全新译本),了解需求实践的概况。如果你是一名产品经理,专注于软件产品的战略或营销,而不是软件构建,那么本书可能也不太适合你,因为它非常强调如何设计特性以获得更高的最终用户接受度和满意度。
本书的组织
本书经过高效的组织,可以作为参考指南来使用。
第Ⅰ部分从常规意义上介绍模型,然后继续讨论RML和模型的四个分类:目标模型、人员模型、系统模型和数据模型(OPSD)。
第Ⅱ部分~第Ⅴ部分中,每一章都包含一个RML模型并采用一致的布局,具体说明如下:
一个将模型和现实世界关联起来的开篇故事
模型的定义
模型模板
关于使用何种工具来创建模型的建议(工具提示)
一个虚构的示例
对如何创建和使用模型的解释
一个练习,供大家练习模型的使用
每一章的练习都基于同一个样板项目,该项目贯穿全书所有章节。
第Ⅵ部分解释如何选择模型以及如何综合使用多种模型来推导需求。
附录 A 包含两个模型速查表,供大家选择模型时参考。附录B列举创建模型的一般准则,其中包括所有模型的元数据和关于模板的提示。附录C包含书中所有练习的参考答案。书的最后还提供了一个词汇表,定义了本书使用的术语。
找到理想的起点
可以直接从头阅读本书,但对某些人来说,在深入了解每个模型的细节之前,可以先阅读第Ⅵ部分体会一下上下文。下表提供了进一步的指导。
读者画像 可遵循的步骤
初次接触需求建模或更广义的可视化建模 从头开始,一直读到本书最后,了解需求模型的常规知识,了解各种具体的模型,最后学会综合运用
熟悉可视化需求建模而且已在使用类似模型的业务分析师 建议所有章都读完,了解RML处理可视化模型的方式与其他建模语言有何不同。然而,也可能发现第Ⅵ部分更有用,可以先了解如何选择模型并在项目中综合运用。之后,在做具体的项目时,可以根据需要随时参考具体的章
模型快速入门
本书包含大量关于模型的信息。信息量有些大,可能会让大家不知所措。为此,我们开发了一种方法来方便大家快速上手,虽然尽量少用模型,但仍然可以为项目创造巨大的价值。这种快速入门的方法适合大多数基于 IT 的项目。以下过程流程图对这种方法进行了概述。
如图所示,首先创建一个过程流程。接着,根据过程流程中的步骤来创建一个需求映射矩阵(RMM)。然后,为每个屏幕都创建一个显示-操作-响应(DAR)模型,建立它们与业务过程的映射。最后创建数据字典,以确保所有字段都被覆盖,而且校验规则是已知的。
虽然其他许多模型的价值还没有被发挥出来,但采用这一系列步骤无伤大雅。其结果是,需求将按过程流程步骤组织起来,屏幕也映射到过程步骤,以确保UI可以反映关键的过程。
本书约定和特色
本书采用了一些使信息具有可读性并易于理解的约定。
每章开篇都有一个来自现实生活的故事,用楷体显示,旨在帮助读者建立应用场景。
所有RML模型名称简称都大写。采用其他建模语言做的模型则全部小写。
RML模型的基本构建单元称为“元素”,这些模型元素没有采用首字母大写,因而不会与模型名称混淆。
本书末尾的术语表包含我们认为对RML很重要的术语。
每个模型模板小节的最后,有一个“工具提示”,建议了哪些工具可以用来创建当前模型。
配套资源
欢迎下载RML模型模板。如果想在自己的项目中创建本书描述的模型,可以直接使用这些模板。通过以下网址获得一套完整的RML模型:
http://go.microsoft.com/FWLink/?Linkid=253518
在下载后的压缩包中,我们解释了如何使用这些模板。这里简要重复一下:将压缩包解压到一个方便的位置。每个模型都有一个模板。Microsoft Visio文件模型包括一个.vst文件和一个.vss文件,这两个文件是使模板正确工作的必要前提。其余模板采用Microsoft Excel或Microsoft Word格式。模型速查表也包含在压缩包中。