译者序
《软件需求与可视化模型》很值得认真阅读,特别对于做软件需求工作的专业人员和学计算机专业的学生是非常有帮助的。在当今重大科技产品和服务层出不穷的时代,我们接触了云计算、互联网、IOT、移动通信、智能手机、可穿戴设备、自动驾驶汽车等等,没有一样离得开软件开发和应用,人们的才能、力量和智慧通过软件赋予和控制硬件的智能行为。而全面确定软件的准确需求从根本上决定了软件项目是否成功或失败。业务分析师和产品管理经理通常是根据他们对产品的理解、对市场的调研,以及搜集利益相关者的反馈(包括外部客户和业务管理层),来确定一系列的产品需求、用户场景和主要产品特性的。他们关心的两点是:①软件需求是不是准确完整;②是否能够得到利益相关者的理解和支持。
这本软件需求的书满足了以上两个要求。它系统地介绍了需求建模语言(RML)、4大类可视化模型类别(目标、人员、系统和数据)和22种主要可视化模型。每章都有一致的组织结构:开场故事、模型介绍、创建模型、使用模型,常见错误、相关模型、以及作业。我们很喜欢每章开场的生活故事,它亲切易懂、引出主题,例如第9章首先讲述了作者为全家准备丰盛的节日晚餐的步骤和意外。第25章和第26章是全书的总结,不过需要学习了单个主要模型之后才能理解这两章的含义。无论是有经验的专业人员还是初次制定软件需求的新手,只要按照有关章节的详尽指导都应该顺利地为自己的项目创建一整套需求。
RML及可视化模型适用于多种形式的软件开发。本书介绍的RML方法可以直接应用于传统瀑布式开发的产品定义规划、总体设计和测试阶段。可视化模型比起文字描述更清晰简洁,特别是对于需要几百个团队协调的大型项目,用RML可视化模型建立起来的需求文档将会加快项目利益相关者间的沟通,便于宏观审核,最终达成一致。看了RML的建模过程和可视化模型的打印,有些人也许会担心太多的工作量,这种系统的方法是否适合敏捷开发的变化理念。当敏捷开发的项目积压和任务不多时,列表的方式还是比较方便。但是当产生了很多列表或者很长列表时,特别是多个团队有交叉协作时,可视化模型更便于有重点的交流。何况我们没有必要死板地套用书中介绍的所有模型,例如,如果项目是有关实时系统和嵌入式系统的,最可能为利益相关者创建的模型是系统流程模型。在敏捷开发SCRUM的产品列表、冲刺规划、冲刺列表和冲刺评审活动中都可以用到RML模型,确保每个冲刺忙而不乱,达到预期的效果。当然可视化模型也需要及时更新,以保证软件需求不会过时。不论哪种软件开发方式,做项目一定要和最终用户需求和企业商业价值紧密联系在一起,对于那些产生过低价值的项目和功能建议停止或缩减规模。
我们在翻译的过程中除了翻译文字外,还对章节中的概念、流程和交叉参考做了验证。这本书试图避免技术实现层面的细节但还是涉及了大量的逻辑细节,看得出来,两位作者有着丰富的实践经验,并在写书时非常严谨细致,我们只发现了个别地方值得商议。如果你选择一个实际的项目全面运用RML及模型,你所得到的收益不仅仅是项目软件需求的完整分析,你还会对该项目的逻辑实现有个全面的了解,包括商业目标、产品概念、人员角色、处理流程、系统结构和界面以及数据结构等。花些时间吧,掌握书中的精髓,把RML工具和你现有的架构流程结合在一起,确保项目高效高速高收益!