内容简介
本书全面闸述需求开发的三个阶段:需求捕获、需求分析、需求管理的工作过程和内容,并区别OLTP(交易)、OLAP(分析)两大类不同的需求分别给出相应的工作模板。本书内容分为概念和理念、过程及方法、模板三个主要部分,包括基本理论,需求开发的过程、模板的应用、横型的搭建,针对分析建模进行剖析,闸述与面向对象分析、设计的关系。本书还针对项目实施的具体情况给出裁剪指导,闸述基于横型的需求管理,给出一个需求开发文档的实例片段。
本书既面向需求工作人员也面向设计人员。读者如果有面向对象分析的基础,对本书的阅读理解将会很有帮助。
作者简介
于向东,目前在世界500强担任企业架构师,是信产部系统集成高级项目经理、希赛顾问团专业顾问,获北京市经济技术创新标兵,具有20多年企业应用架构设计、建设经验,对需求业务建模、流程改造有较深的体会,在OLTP、OLAP领域都成功主持过大型项目实施。
内页插图
精彩书评
★把管理形成流程和方法的意义之一在于变得可以复制和借鉴,希望本书所述的方法可以帮到中国广大面临业务与IT融合挑战的政府与企业,在需求分析与转换的最初入口上精准把脉业务、高效开发设汁、合理分配资源。
——惠普IT管理学院执行院长 陈瑞丹
★这是一本很不错的需求管理工具书,值得·读。
——彦哲研究院秘书长、信息化管理专家网创始人 李炳森
★导航式建模覆盖需求捕获、分析、管理全过程,为需求过程提供全套工作模板;开辟数字化软件过程新路线。
——长天科技集Ⅲ资深需求工程师 胡少华
目录
第1章 模型驱动基本框架
1.1 需求开发的有关概念
1.1.1 基本概念
1.1.2 模型概念
1.1.3 工程概念
1.2 模型驱动框架的方法论
1.2.1 基于岗责、表单建立捕获模型
1.2.2 基于流程、事件建立业务模型
1.2.3 基于实体、用例实现建立分析模型
1.2.4 基于界面、事件建立展示模型
1.2.5 基于接口、性能建立质量模型
第2章 模型驱动开发过程
2.1 概述
2.2 体系1:需求捕获工作过程
2.2.1 方法概述
3.2.2 第1环节:总体捕获
2.2.3 第2环节:业务捕获
2.2.4 第3环节:技术捕获
2.2.5 第4环节:工程捕获
2.2.6 第5环节:整理评估
2.3 体系2:需求分析工作过程
2.3.1 方法概述
2.3.2 第1环节:建立业务模型
2.3.3 第2环节:建立分析模型
2.3.4 第3环节:建立展示模型
2.3.5 第4环节:建立质量模型
2.4 写在后面
第3章 需求模型价值分析
3.1 优先级内容
3.2 实体内容
3.2.1 实体清册
3.2.2 实体关系
3.2.3 实体规则
3.3 状态内容
3.4 用例实现
3.4.1 本质
3.4.2 时序图
3.4.3 事件
3.4.4 其他
3.4.5 过程示例
第4章 需求管理过程
4.1 综述
4.2 第1环节:基线管理
4.2.1 起步前:基线管理的理解
4.2.2 第1步:需求评审设立基线
4.2.3 第2步:需求变更设立基线
4.3 第2环节:跟踪管理
4.3.1 起步前:跟踪管理的理解
4.3.2 第1步:用户需求到软件需求跟踪
4.3.3 第2步:软件需求内部跟踪
4.3.4 第3步:软件需求到下游成果跟踪
4.4 第3环节:变更管理
4.4.1 起步前:变更管理的理解
4.4.2 第1步:变更记录
4.4.3 第2步:需求分析
4.4.4 第3步:工作量评估
4.4.5 第4步:商务谈判
4.4.6 第5步:工作批准
4.4.7 第6步:工程实施
4.4.8 第7步:需求验证
4.4.9 第8步:产品交付
4.4.10 第9步:变更归档
第5章 项目过程裁剪指导
5.1 综述
5.2 裁剪分值说明
5.3 需求捕获过程裁剪内容说明
5.4 需求分析过程裁剪内容说明
5.5 需求管理过程裁剪内容说明
……
第6章 需求开发文档实例
第7章 需求工作变迁及展望
第8章 相关建模方法介绍
前言/序言
解锁高质量软件的基石:如何精准捕捉并驾驭需求 在当今快速变化的数字时代,软件的成功与否,很大程度上取决于其能否精确地响应用户需求。然而,现实中,软件项目因需求不清、变更失控、沟通障碍而失败的案例屡见不鲜。无数次的返工、超额的预算、延误的上市时间,甚至最终产品无人问津,这些都指向一个核心问题:我们是否真正掌握了“如何开发软件需求”的艺术? 本书并非一本浅尝辄止的入门指南,它深入探讨的是软件需求开发的本质,以及如何构建一套行之有效的、系统化的方法论,以确保我们从一开始就走在正确的道路上。我们不再满足于零散的技巧和临时的解决方案,而是致力于提供一套能够指导团队从概念到交付,全程把控需求质量的完整框架。 为何需要一套“最佳实践”? 想象一下,一位建筑师在设计摩天大楼时,如果仅仅依赖于口头沟通和零散的草图,而没有遵循严格的工程规范和设计流程,其后果不堪设想。软件开发同样如此。需求的模糊性、复杂性以及参与者的多样性,使得需求开发成为一个极其微妙且至关重要的环节。 需求的本质: 需求不仅仅是用户想要什么,更是要理解用户“为什么”需要,以及这些需求如何映射到业务价值。它连接着用户的痛点与技术的解决方案,是产品成功与否的生命线。 传统困境: 传统的“瀑布模型”或“敏捷方法”在需求捕捉方面,往往存在各自的挑战。瀑布模型可能导致需求在早期冻结,难以适应后期的变化;而纯粹的敏捷开发,如果缺乏有效的需求管理机制,也可能陷入“需求蔓延”的泥沼。 最佳实践的价值: 一套最佳实践,能够为团队提供一套共同的语言、一套可复用的流程、一套有效的工具和一系列经过验证的原则。它能帮助我们: 减少误解和歧义: 通过标准化和清晰化的表达,消除不同利益相关者之间的认知差异。 降低变更成本: 建立有效的变更管理流程,在早期发现和评估变更的影响,避免大规模的返工。 提高团队效率: 明确的流程和责任划分,能够让团队成员更专注于高质量的交付。 确保业务价值: 将需求与业务目标紧密关联,确保开发的软件真正解决用户问题并带来商业回报。 提升产品质量: 从根源上保证软件设计的合理性和功能的完整性,从而奠定高质量的基础。 本书的核心关注点:一套系统的、基于模型的驱动过程 本书的独特之处在于,它不仅仅列举零散的最佳实践,而是将它们整合成一个“基于模型驱动的需求开发过程”。这意味着,我们将利用模型作为一种核心的沟通和分析工具,贯穿需求开发的整个生命周期。 模型的力量: 可视化沟通: 模型能够将抽象的需求转化为直观的图形,大大降低理解的难度,促进团队成员、业务分析师、开发人员、测试人员以及最终用户之间的有效沟通。 结构化分析: 模型能够帮助我们系统地分析需求的各个方面,发现潜在的冲突、遗漏和不一致性。 早期验证: 通过构建模型,我们可以在编码实现之前,就对需求的合理性和可行性进行早期验证,及时修正错误。 可追溯性: 模型能够建立需求与其他项目工件(如设计、测试用例)之间的清晰链接,实现良好的可追溯性。 自动化基础: 在某些情况下,基于模型的分析甚至可以为代码生成和测试用例生成奠定基础,进一步提升效率。 “驱动过程”的含义: 流程导向: 本书将详细阐述一个端到端的需求开发流程,从最初的需求发现和收集,到需求的分析、建模、规约、验证,再到需求变更管理和最终交付。 阶段性目标: 每个阶段都有明确的目标和产出物,确保需求的质量和完整性逐步提升。 持续反馈: 强调在整个过程中不断与利益相关者进行沟通和反馈,确保需求与实际期望保持一致。 适应性: 尽管是基于模型的驱动过程,但其核心原则和方法论同样适用于不同规模和不同类型的软件项目,并能与敏捷方法论有机结合。 深入剖析:需求开发的关键环节与实践 本书将带领读者深入探讨需求开发的各个关键环节,并提供可操作的实践方法: 1. 需求发现与采集: 识别利益相关者: 如何系统地识别所有可能影响或被项目影响的个体和群体。 选择合适的技术: 访谈、问卷调查、用户故事映射、工作坊、竞品分析、原型法等多种技术的适用场景与实施要点。 挖掘潜在需求: 如何超越用户表面的陈述,去理解其深层的动机和未被表达的需求。 建立共同愿景: 如何在项目初期就建立起所有利益相关者对产品目标和关键特性的共识。 2. 需求分析与建模: 理解业务领域: 业务流程建模(BPMN)、实体关系建模(ERM)等,帮助我们理解软件所处的业务环境。 功能需求建模: 用例图、活动图、状态图、序列图等UML模型,清晰地描绘系统的功能和交互。 非功能需求建模: 性能、安全性、可用性、可维护性等非功能需求的识别、度量和建模,确保软件不仅能满足功能,更能满足质量要求。 数据建模: 识别和定义系统所需的数据结构,为数据库设计奠定基础。 原型设计: 构建低保真和高保真原型,帮助用户直观地理解和验证需求,并提供早期反馈。 3. 需求规约与文档化: 清晰、准确、完整的规约: 如何撰写易于理解、无歧义、无遗漏的需求说明。 结构化需求文档: 软件需求说明书(SRS)的组成、格式和最佳实践。 用户故事与验收标准: 在敏捷环境中,如何有效撰写用户故事,以及定义清晰的验收标准。 模型与文本的结合: 如何将模型作为需求的补充和说明,形成更全面的需求描述。 4. 需求验证与确认: 评审技术: 需求走查、需求审查会等,如何组织有效的评审活动。 原型演示与用户反馈: 如何通过原型演示收集用户反馈,并将其转化为可行动的改进项。 测试用例设计: 如何基于需求和模型设计全面的测试用例,以验证软件是否符合预期。 用户验收测试(UAT): 确保最终产品能够满足用户的实际业务需求。 5. 需求变更管理: 建立变更控制流程: 如何建立一个规范的变更请求、评估、批准和实施流程。 影响分析: 如何评估变更对项目范围、时间、成本和质量的影响。 版本控制与沟通: 如何管理需求的版本,并确保所有团队成员和利益相关者及时了解最新的需求信息。 平衡变更与稳定性: 在快速变化的环境中,如何权衡需求的灵活性与项目的稳定性。 本书的目标读者 无论您是经验丰富的项目经理,还是初出茅庐的业务分析师;无论您身处大型企业还是创业团队;无论您是专注于开发、测试还是产品管理,本书都将为您提供宝贵的指导和实用的方法。 项目经理: 掌握更有效的需求管理策略,提升项目成功率,控制风险。 业务分析师: 提升需求挖掘、分析和建模的能力,成为连接业务与技术的桥梁。 软件开发团队: 获得清晰、准确的需求输入,减少返工,提高开发效率。 测试团队: 能够基于高质量的需求和模型,设计更全面的测试用例。 产品经理: 更好地理解用户需求,定义有价值的产品特性,驱动产品成功。 企业架构师: 建立清晰的系统需求,为企业的信息化战略提供支撑。 结语 在这个竞争日益激烈的市场中,软件不再仅仅是实现功能的工具,更是连接企业与客户、驱动业务增长的核心动力。而高质量的软件,其根基,就源于对需求的深刻理解与精准驾驭。本书致力于为您提供一套系统、科学、行之有效的需求开发方法,帮助您规避陷阱,抓住机遇,构建出真正满足用户期望、创造商业价值的卓越软件。这不仅是一次学习过程,更是一次对软件开发本质的深度探索,一次对成功产品的战略投资。
这本书的阅读体验简直是让我眼前一亮,之前也看过不少关于软件需求的图书,但大多都停留在理论层面,或者是一些零散的技巧分享。这本书则完全不同,它以一种系统性的、结构化的方式,将模型驱动的需求开发过程梳理得井井有条。从最初的需求获取,到需求分析、规格说明、需求验证,再到需求管理,每一个环节都提供了清晰的步骤和实用的方法论。特别是书中关于模型驱动的阐述,让我深刻理解了如何通过各种模型(如用例图、活动图、状态机图等)来更直观、更准确地表达需求,极大地降低了沟通成本和理解偏差。作者的论述逻辑严谨,例子丰富,即使我是初学者,也能顺畅地理解并尝试应用。读完这本书,感觉自己对软件需求的理解上了一个全新的台阶,不再是零散的碎片,而是一个完整的、可执行的体系。这对我未来在实际项目中开展需求工作,将会有巨大的帮助,让我能够更有信心、更有条理地去面对复杂的项目需求。