前 言
可视化需求模型是确认软件需求最有效的方法之一。这些模型帮助市场分析师确认,所有的项目利益相关者能够理解提出的解决方案,这些人士包括领域专家、商业利益相关者、高层管理人员和技术团队。可视化方式让项目利益相关者对项目更感兴趣,更乐于参与,其目的是找出需求方面是否存在差异。更重要的是,可视化创造了图形化的解决方案,帮助项目利益相关者理解解决方案交付什么结果和不包括什么。虽然可视化有这些优点,许多市场分析师和产品经理还是使用非可视化的电子表格或文本列出数千行条款。这些大量的文档让人吃不消,审查起来很枯燥,极不容易发现缺失的需求。这种实际状况反映当前需求专业培训有哪些问题症状,培训往往注重如何写出每条好的需求,而不注重如何分析整个解决方案。
这本书将帮助市场分析师、产品经理以及部门其他成员使用可视化模型捕获需求、建立模型和理解需求。本书描述了一种简洁而完整的语言RML(Requirements Modeling Language,需求建模语言),它用于建立软件需求的可视化模型,收集和规范了工业界中普遍使用的最佳实践模型。
谁应该读这本书
虽然这本书主要针对市场分析师和产品经理,但是我们认为项目经理、开发人员、架构师和测试人员也可以从这本书中获得巨大的价值,因为它可以帮助他们学习必要的信息标准,使他们的工作更容易。这本书通常把实际做工作的人称为“市场分析师”,在不同的部门里这个角色有着许多不同的职称。当提到“你”,我们也是指“市场分析师”。
事先告诉大家,我们的经验主要基于在现有基础架构上建设软件的项目,例如面向内部的信息技术系统(IT)、面向消费者的作为软件即服务(SaaS)的大型软件系统以及云系统。虽然我们已经在独立的软件包和嵌入式系统中使用了RML,但是这些类型的项目都不是我们的主打领域。根据我们对这些系统的有限经验,认为做这些系统工作的读者也会发现RML提供了令人难以置信的价值,我们期待着收到他们提出的改进意见。
本书的假设
本书假设你已具有编写软件需求的基础知识,因此不提供需求工作的基本信息。本书希望你对软件开发过程有些基本了解,例如,迭代方法、瀑布方法、和敏捷方法,知道它们是如何处理软件需求的。
谁不必读这本书
如果你刚刚开始做市场分析师,我们建议你在读这本书之前先阅读卡尔•魏格斯所写的《软件需求》一书,了解需求领域的全面概况。如果你正在开发独立包装出售的软件,书里的一些概念还是有意义的,不过你可能会发现商业定位不同。如果你是一个产品经理,侧重于软件产品的战略和营销而不是开发软件,这本书可能对你不合适,因为它重点集中于如何设计软件功能使其受到高端用户的认可。
本书的结构
我们组织这本书的目的是将它作为参考指南。
第Ⅰ部分先介绍一般模型的情况,然后讨论RML语言和四类模型:目标模型、人员模型、系统模型和数据模型(OPSD)。
第Ⅱ部分到第Ⅴ部分的各章讨论全部RML模型,各章有相同的结构,其中包括:
有关模型的真实故事
模型的定义
模型的模板
建议创建模型的工具
虚构的例子
解释如何创建和使用模型
学习使用模型的练习
所有这些章的练习都围绕着一个样品项目而设计。
第Ⅵ部分解释如何选择模型以及如何使用模型来产生软件需求。
附录A包含两个快速模型查找表作为模型选择指导,附录B建议创建模型的一般准则,包括所有的模型元数据和模板提示,附录C给出书中所有练习的答案。还有一个词汇表定义本书用过的术语。
阅读本书的最佳切入点
可以直接阅读全书,但对有些人来说,在深入每个模型的细节之前,从第Ⅵ部分开始阅读会更好地理解上下文。下表提供了更多的指导。
读者对象 建议步骤
总体上不熟悉需求建模或可视化建模 可以从前到后地阅读本书,看看需求模型的介绍,
了解每个模型的内容,最后把它们联系起来使用
熟悉可视化需求建模或者 建议浏览所有的章节,了解RML在可视化建模上与
是使用过类似模型的市场分析师 其他建模语言有什么不同。但是可能从第Ⅵ部分
开始了解更高级的内容更有帮助,如何选择模型
以及如何在项目中把多个模型一起使用。当项目
需要时,可以参考相关模型的章节
建模快速入门
这本书包含学习需求建模的大量信息。前景是美好的,为此我们开发了一种方法,使用尽可能少的模型但能为项目创造明显的价值。这种快速启动的方法适用于大多数IT项目。下面的流程图总结了这种方法。
如图所示,首先创建业务流程。接下来,根据流程步骤创建需求映射矩阵(RMM)。然后为流程步骤的截屏创建对应的显示-操作-响应(DAR)模型,将它们映射到业务流程步骤上。最后创建数据字典确保所有字段都包括,确认字段的验证规则。
虽然这张图没有提到很多其他有价值的模型,但给出了一系列读者容易理解的主要步骤。最后结果是,项目的需求将按照流程步骤来组织,截屏也将映射到流程步骤,以确保用户界面满足关键流程的需要。
本书约定和功能
本书使用专门的约定确保信息易于理解,易于遵循。
每章开始处用斜体字向读者讲述一个非软件的故事作为引子。
整本书中所有RML模型名称都大写。用非RML的其他建模语言建的模型名称不大写。
RML模型的模块称为元素,这些模型元素名称没有大写,以免与模型名称混淆。
这本书结尾处的词汇表列出我们认为重要的RML术语。这些术语以斜体字贯穿全书。
每个模型的模板提供工具提示的读者帮助,建议使用何种工具创建该模型。
配套内容
如果项目需要创建本书的模型时,欢迎你下载使用RML模型模板。RML模型的全套模板下载网址如下:
http://go.microsoft.com/FWLink/?Linkid=253518
压缩文件中的使用说明介绍了如何使用模板。简单步骤如下:下载压缩文件,还原文件内容放到方便的地方。每个模型有一个模板,Visio文件格式的模型包括一个模板和一个模板文件,模板正常工作需要这两个部分。其余模板均为Excel格式或Word格式。快速模型查找表也在压缩文件中。
致谢
从我们Seilevel公司的团队到在世界各地做需求工作的同事,再到多年来一直支持和帮助我们改进RML的客户,没有你们的合作,这本书是不可能出版的。
非常感谢Seilevel公司的员工帮助研究、审阅、写作、编辑和起草模型,提出很难回答的好问题,他们是乔伊斯•格雷普斯、詹姆•哈尔根、贝琪斯•托克代尔、迈克尔•刘、坎达丝•霍卡松、杰里•高尔、巴拉吉•维贾扬、马克•塔尔博特、马特•奥佛斯、阿贾伊•巴德里、杰森•菲尔德、杰拉尔丁•蒙戈尔德、凯尔•康登、克林特•格雷厄姆、大卫•莱因哈特、韦斯•埃德森、阿卜杜勒•马瑟、克里斯•蒂森索、罗布•斯巴克斯和洛瑞•威策尔。
我们诚挚地感谢许多审阅人员,他们花时间阅读书稿,给出他们的想法和批评,帮助改进本书。他们是乔伊•斯塔兹、肯特•麦当劳、莎拉•格雷戈里、列尔卡•别乌斯-杜奇、玛丽•戈若斯、卡尔•魏格斯、埃伦•戈特斯蒂讷、斯科特•赛尔豪斯特、埃维•胡克斯和安妮•哈特利。特别感谢卡尔•魏格斯和伊恩•亚历山大,他们两人提供写作指导并和我们切磋关于模型的想法。
我们衷心感谢勤奋工作和富有情趣的编辑团队,他们把这本书变成了现实。同时感谢组稿和策划编辑德文郡•马斯格雷夫和项目编辑卡罗尔•迪灵汉,他们两人都在微软出版社工作。我们还要感谢项目经理和文稿编辑凯西•克劳斯,排版人员吉恩•特雷纳里、校对海梅•奥德尔、美编珍妮•克雷沃和索引人员扬•巴德纳兹克。
最后,要感谢我们的家人一起忍受漫长的写作过程。乔伊感谢她的丈夫托尼•汉密尔顿,在整个过程中帮助她保持幽默感;感谢她的女儿斯凯,她出生在这本书的写作期间,当我们完成写作时她已经学会了一觉睡到天明。事实证明,写一本书就像有一个孩子:许多月的孕育、准备、和喂养。安东尼感谢他的妻子格洛丽亚对他的支持,还有他的女儿梅森,她可以自己愉快地玩耍让爸爸工作,但在电话会议时她变得非常安静。最后,安东尼想感谢乔伊,如果没有她全力以赴地推动这本书的写作,此书永远不会出版。
勘误和支持
我们已经尽了一切努力来确保本书和配套内容的准确性。这本书出版之后所报告的任何错误都会列在我们的微软出版社网站:
http://go.microsoft.com/FWLink/?Linkid=253517
如果发现没有列出的错误,可以通过这个网址向我们报告。
如果需要额外的支持,发电子邮件到微软出版社的书籍支持:mspinput@microsoft.com。
请注意,微软的软件产品支持不是通过上面地址提供的。
我们期待着你的意见
在微软出版社,你的满意是我们的首要任务,你的反馈是我们最宝贵的财富。请通过下面的网址告诉我们你对这本书的看法:
http://www.microsoft.com/learning/booksurvey
这项调查很简短。我们会阅读每一条意见和建议,提前谢谢你的输入。