软件需求最佳实践
2013-5
电子工业出版社
徐锋
无
在本书第1版问世时,我在前言里说过这是一本用了3年时间憋出来的,其间经历了多次的自我否定和推倒重来。而书出版后,我就着手一套书的写作规划,包括《有效需求获取》、《有效需求分析》、《有效需求管理》、《有效需求规划》和《有效需求挖掘》。有部分读者早就得到过这样的消息,可是笔者又一次重蹈覆辙,一再错过承诺的上市时间;5年了,还没有憋出来,真是没有什么可以用的借口……只能说我将穷尽力量,一定奉献出不一样的精彩。本书第1版出版以来,得到很多读者的喜爱,内心深感欣慰。但由于已经上市太久,导致近两年在所有销售渠道均已告磬,很多朋友不断问我哪里能够买到……出版社也说有不少的读者在咨询,因此建议再次印刷。但想到这是由于自己的不够努力,导致“青黄之接”,加上实在没有理由让大家对一本5年不改一字的书继续捧场,我一直没有做出这个“艰难”的决定。新的一套书又如往常一样,在经历多次自我否定、推倒重来,推出时间仍然无法最后确定之际,笔者最后还是勇敢地接受了出版社的建议,推出精致印刷、装帧的典藏版,希望大家能够理解笔者和出版社的想法。在这5年中,笔者对软件需求方法做了进一步的梳理和总结,不仅将奉献给大家一套“有效需求系列丛书”,还将带给大家一套技能养成Cookbook。在本书印刷时,“软件需求分析技能养成Cookbook”也即将出版,有关需求获取、需求管理的图书也将在年内推出,希望能够给大家带去更多的帮助。本书特点本书是一本直击需求实践中各种问题的书籍,在这里没有大量的理论和教条,有的只是翔实、生动的案例与场景;在这里没有高谈阔论般的“道法自然”,有的只是源于生活琐碎细节的“欣然顿悟”;在这里没有鹰击长空般的豪情,有的只是“撒一把土、夯实它,再撒一把土……”的务实。在全书的组织形式上,采用了简单明了的语法,段落简洁(就像写需求那样),让你能够轻松地阅读;同时贯穿了许多源于生活、源于项目实践的场景与案例,让需求艺术“源于生活、高于生活”,为全书添色增彩;穿插了许多能够令人沉思、轻松一笑的隐喻,为全书增加了一些涟漪;还埋伏了一些小提示,为全书增加了一些外延和联想;而且还罗织了大量的诫语,使全书更多一些骨架与韵味。相信所有需求实践者都能够从书中看到你工作的影子,寻找到一些“开箱即用” 的技巧和手段,同时也会有整理了一下思绪的妙味。本书讲了什么?本书的主线索是笔者在RUP(Rational统一过程)、信息工程理论、结构化分析方法、面向对象分析方法的基础上,结合长期需求分析工作的实际经验,剪裁出来的一个针对软件需求工程阶段的SERU过程框架。SERU过程框架覆盖了需求获取、需求分析、需求管理中的主要活动(其中需求定义、需求分析与建模、需求描述均属于需求分析阶段;它们和需求获取统称为需求开发),明确地定义了工作任务、介绍了工作方法、指出了工作产物、说明了产物之间的联接方法,可以帮助软件开发团队快速应用到工作中,有效提高需求工程的质量。本书一共由4个部分,12个章节组成。第1部分原理、模型与误区 第1章需求实践现状分析 归纳实践中遇到的问题,分析问题背后的原因,提出解决问题的方法,强调“业务驱动的需求过程”的重要性 2第2章不同软件项目的需求视图 指出各类软件的需求视图与线索,帮助需求人员明确工作方向 21第3章软件需求与需求工程 从需求层面的角度理解需求工作的阶段,并掌握不同需求类型的组织方法;指出实现优秀需求的核心手段,实例讲解如何保障;对需求开发和需求管理工作的任务进行概述,说明需求分析人员工作的技能要求 42第2部分需求开发 第4章需求定义最佳实践 指出需求定义的任务,介绍需求定义的操作思路,介绍常用的人文方法;介绍需求定义阶段确定系统范围的具体方法;并说明需求定义阶段的产物,核心内容为两图一纲(构件图、上下文关系图和需求大纲) 64第5章需求捕获最佳实践 从沟通的角度说明需求捕获的障碍,并结合心理学知识提升捕获能力;介绍各种需求捕获方法的使用时机、要点;能在正确地时机正确地使用 109第6章需求分析与建模最佳实践 帮助读者理解为什么要建模、什么时候要建模、如何选择模型等;学会正确理清流程分析、业务实体分析和用例分析,掌握正确的建模方法以及产物之间的关系;掌握填充用例和领域类的方法;学会有效地组织非功能需求、设计约束的方法157第7章需求描述最佳实践 介绍需求描述的主要格式、写作要点以及一些提高需求规格说明书质量的手段与技巧 307第8章需求验证最佳实践 介绍需求验证的主要手段,常见误区以及相应的解决方案 342第3部分需求管理 第9章需求基线操作实务 说明基线和迭代开发的关系,通过实例说明基线管理中估算和优先级划分两大工作任务的具体执行方法 356第10章变更管理操作实务 说明变更管理的目标与策略,并且进一步解释统一渠道、统一平台两大要点 373第11章需求跟踪操作实务 说明需求跟踪的作用、启动时机以及操作要点 384第4部分总结 第12章SERU过程框架总结SERU过程框架总结:对SERU过程框架进行概述,指出在实际项目中导入该过程框架的具体步骤和方法,强调了需求分析过程中的一些重要的原则与方法392如何进一步互动如果你发现本书中的问题,或者在实际的工作中遇到问题,都可以通过我的微博weibo.com/fjxufeng与我交流;关于软件需求技能养成工具的更多信息可通过网站了解。致谢望着这本倾注了巨大激情的书籍,不禁想起被它吞噬的日日夜夜,不由得萌生出对家人的深深歉意,没有你们的支持本书是不可能完成的;在此由衷地感谢我深爱的妻子许高芳及敬爱的母亲杨美琴,感谢你们多年来的鼓励与支持。望着这本汇聚了大量观点的书籍,不禁想起为它贡献的芸芸众生,不由得萌生出对朋友的深深谢意,没有你们的帮助本书是不可能精彩的;在此由衷地感谢我亲爱的朋友们及予以支持的学员,感谢你们一直以来的关爱与帮助。望着这本集结了众多文字的书籍,不禁想起为它纠错的双双眼睛,不由得萌生出对编辑的深深敬意,没有你们的协助本书是不可能高质的;在此由衷地感谢本书的责任编辑及所有工作人员,感谢你们尽职尽责地把好最后一关。最后,我还需要向CSAI创始人张友生博士、主要贡献者马映冰、田俊国、温昱、张华表示感谢,你们的观点让我如沐春风;向博文视点的郭立、李冰表示感谢,你们的帮助让本书最终付诸实现;向中国平安、中国工商银行、中国建设银行、中兴通讯、东软集团、用友政务、新大陆、福诺等企业中听过我的课程以及参加各期公开课的朋友们表示感谢,你们的意见、观点、建议使本书更加精彩,在我向大家分享经验的同时也收获了许多宝贵的财富。
《软件需求最佳实践:SERU过程框架原理与应用(典藏版)》内容简介:“用户说不清需求”、“需求变更频繁”……都是在软件需求实践中频繁遇到的问题。《软件需求最佳实践:SERU过程框架原理与应用(典藏版)》首先直面这些问题,从心理学、社会学的角度剖析其背后的深层原因,使大家从中获得突破的方法。
然后沿着需求开发的几大关键过程,逐一说明了需求定义、需求捕获、需求分析与建模、编写规约、需求验证等需求开发活动的任务、要点和具体手段,并提出了一个可操作性强、易于上手的SERU过程框架,能够帮助读者清晰地了解整个过程,理解各阶段的关键产物和产物之间的关系,迅速应用于实际工作中。《软件需求最佳实践:SERU过程框架原理与应用(典藏版)》还对包括需求基线、变更管理、需求跟踪在内的需求管理活动的操作要点进行了阐述,给出了具有很强实践性的具体建议。
纵观全书,语言浅显、文字生动,蕴含了许多人文、心理、交流方面的知识,即使是非技术背景的读者也能够轻松读懂大部分内容,从中受益。
《软件需求最佳实践:SERU过程框架原理与应用(典藏版)》可作为计算机软件专业本科生、研究生和软件工程硕士的软件需求分析教材,也可以作为软件工程、软件开发管理培训的教材,更是一线项目经理、需求分析人员、资深开发人员、信息系统运行管理人员、研发企业管理人员的必备参考书。
徐锋,资深IT需求咨询顾问,中国软件技术大会杰出贡献专家。主要研究领域为软件需求、产品需求,致力于推动软件工程方法论的落地应用。作者具有丰富的软件开发、信息系统运行与管理、市场规划、企业管理等领域的从业经验,善于从业务、技术两个视角审视软件开发工作。曾在《程序员》等媒体发表了《实战OO》、《项目管理三步曲》、《大话Design》等多个专栏文章,著有《UML面向对象建模基础》等多本书籍,翻译了《UML 2.0实战》、《AOSD中文版》、《Cloud to Code中文版》等多本相关技术书籍。
第1部分原理、模型与误区 第1章需求实践现状分析2 1.1软件项目失败的根源2 1.1.1CHAOSReport19942 1.1.2CHAOSReport后续版本3 1.1.3需求相关败因简要分析4 1.1.4一幅漫画带来的思考8 1.2透过表象,分析本质13 1.2.1需求变更频繁13 1.2.2上线阻力大14 1.2.3运行效果差15 1.2.4完全崩溃16 1.3方法论与需求工作17 1.3.1计算模式17 1.3.2软件工程方法论18 1.3.3开发思想19 1.4小结20 第2章不同软件项目的需求视图21 2.1信息系统的需求视图21 2.1.1信息系统的本质与分类21 2.1.2联机事务处理系统——流程电子化23 2.1.3管理信息系统——数据信息化26 2.1.4其他信息系统30 2.1.5信息系统的多维视图32 2.2嵌入式系统的需求视图34 2.2.1面向直接用户的嵌入式系统35 2.2.2面向特定设备的嵌入式系统36 2.3软件产品的需求视图37 2.4小结41 第3章软件需求与需求工程42 3.1什么是软件需求42 3.1.1需求的三个层次42 3.1.2需求的三种类型44 3.1.3优秀需求的标准47 3.2需求工程解析51 3.2.1需求工程的范畴52 3.2.2需求开发工作要点52 3.2.3需求管理工作要点57 3.2.4需求分析人员的技能组成60 3.2.5SERU模型概述61 3.3小结62 第2部分需求开发 第4章需求定义最佳实践64 4.1需求定义任务概述64 4.1.1需求定义的时机64 4.1.2需求定义的理念与策略65 4.2问题分析的五步法67 4.2.1在问题定义上达成共识67 4.2.2分析问题背后的问题73 4.2.3确定相关人员和用户77 4.2.4定义解决方案的界限78 4.2.5确定加在解决方案上的约束81 4.2.6小结81 4.3需求定义的产物与要素82 4.3.1需求定义的产物82 4.3.2需求定义的要素83 4.4定义需求范围88 4.4.1案例说明88 4.4.2划分主题域89 4.4.3确定主题域范围98 4.4.4标识业务事件与报表102 4.4.5生成需求大纲105 4.5小结108 第5章需求捕获最佳实践109 5.1需求捕获的策略109 5.1.1需求捕获应该是主动的109 5.1.2需求捕获应该是聚焦的110 5.1.3破解需求的冰山模型111 5.1.4破解阻碍需求捕获的心理现象113 5.1.5不要忽视对变更可能的捕获117 5.1.6需求协商118 5.2需求捕获的主要方法126 5.2.1用户访谈126 5.2.2用户调查138 5.2.3文档考古143 5.2.4情节串联板145 5.2.5现场观摩147 5.2.6联合开发149 5.3需求捕获的记录工具152 5.3.1工具的选择与定义152 5.3.2任务卡片152 5.3.3场景说明154 5.3.4其他工具155 5.4小结156 第6章需求分析与建模最佳实践157 6.1需求分析与建模的要点与误区分析157 6.1.1需求分析到底做什么157 6.1.2建模的目标与要点160 6.1.3选择建模工具的要点162 6.2周期一:理清框架与脉络165 6.2.1业务流程分析166 6.2.2业务实体分析192 6.2.3角色与使用场景分析218 6.2.4周期一的产物236 6.3周期二:确定需求细节252 6.3.1确定行为需求的细节253 6.3.2确定结构需求的细节274 6.3.3周期二的产物283 6.4其他需求分析296 6.4.1接口需求296 6.4.2非功能需求的追踪299 6.4.3设计约束302 6.5小结306 第7章需求描述最佳实践307 7.1需求描述的风格与格式307 7.1.1常见的描述风格与选用标准307 7.1.2典型软件需求规格说明书模板解析308 7.1.3定义模板的技巧323 7.1.4用户需求说明与软件需求规格说明331 7.2写作策略与技巧333 7.2.1文字表达的先天不足333 7.2.2需求描述的两大原则335 7.2.3不要忽视陈述需求理由的重要性338 7.2.4注意措辞339 7.3小结340 第8章需求验证最佳实践342 8.1需求验证的主要手段342 8.1.1不同正式化程度的评审342 8.1.2审查过程概述344 8.2需求验证的主要误区与解决方案346 8.2.1需求验证的5大要点347 8.2.2需求验证常见的5大问题350 8.3小结353 第3部分需求管理 第9章需求基线操作实务356 9.1需求基线的理念与策略356 9.1.1基线思想的起源356 9.1.2基线的策略358 9.2基线划定的基础:优先级评价359 9.2.1组织需求项359 9.2.2业务优先级评价360 9.2.3根据技术依赖性和项目风险调整优先级364 9.3基线划定的要素:工作量估算364 9.3.1估算的意义与要点364 9.3.2定义阶段的估算示例366 9.3.3分析一阶段的估算示例369 9.4基线划定与管理370 9.4.1划定基线370 9.4.2管理基线371 9.5小结372 第10章变更管理操作实务373 10.1变更管理的理念373 10.2变更管理要点一:统一渠道374 10.2.1CCB背后的道理374 10.2.2变更处理过程377 10.3变更管理要点二:统一平台381 10.3.1变更管理平台的选择381 10.3.2变更管理平台的应用要点382 10.4小结383 第11章需求跟踪操作实务384 11.1需求跟踪的基本概念384 11.1.1用户需求到软件需求的跟踪385 11.1.2软件需求到软件需求的跟踪385 11.1.3软件需求到下游工作产品的跟踪385 11.2需求跟踪的操作方法386 11.2.1表格法386 11.2.2链表法387 11.3小结389 第4部分总结 第12章SERU过程框架总结392 12.1SERU过程框架要点概述392 12.1.1SERU过程框架的理论基础392 12.1.2SERU过程框架全景图393 12.1.3SERU过程框架导入建议396 12.2需求实作要点概述397 12.3结语399 参考文献400
版权页: 业务规则频繁:行业法规变化大吗? 与需求变更管理相关的更多内容,我们将在“第10章变更管理操作要务”中讨论。 1.2.2上线阻力大 许多软件项目在系统上线时经常会遇到很大的阻力,有的来自于操作层、有的则来自于管理层,给软件项目带来了巨大的困难。究其原因,通常是软件项目遭遇了行政因素:而常见的行政因素无外乎两大类。 1.利益冲突 由于信息系统会对业务流程产生这样那样的影响,会提高业务数据的管控力,因此绎常会伤害到某些部门的既得利益,有时会导致新的利益冲突。 案例&场景: 某城市出租车GPS(卫星定位)系统上线之后,出租车司机群起而攻之,提出诸如价格太高、质量太差(阳光直射时屏幕上的字看不清、用久了会有外壳脱落等)……一系列问题,并且还上升到上访、请愿等形式,造成了较大的社会影响,给开发商带了巨大的压力。 而政府有关部门介入调查之后,发现真正的原因却是GPS终端中包含一个税控功能,能够将每天的营运数据发往中心,如果按这样的数据纳税,会导致税款上升30%~60%。 如果新的软件系统影响到涉众(stakeholder)的原有利益时,他们通常是无法直接地抱怨出来(例如,前面案例中的出租车司机们是不可能提出新系统的实现将提高其税款),因此总会找一些“冠冕堂皇”的理由作为阻碍系统上线的借口。而对于这种情况,如果没有准确地察觉到其真正的动机,只是简单地对他们提出的东西进行响应,那么最终的结果将是收获另外一堆意见,因此他们的目标只有一个,那就是阻碍系统的实施。 因此,这就要求我们在需求捕获的过程中细心地发现和总结潜在的行政因素(可以借助于诸如以下的问题:在针对哪些方面的需求讨论时争论最大?系统是否剥夺了某些人的决策权?),然后在系统实施之前将这些因素整理成文,直接提交给客户方的高层,这样就能够很好地减少开发团队的压力。 2.工作量增大 利益冲突的问题主要发生在管理层,对于基层(也就是操作层)而言,更常见的问题在于新系统通常会增加他们的工作量。当增大的工作量对他们日常工作产生影响时,在系统上线时就会遇到很大的阻力。针对这样的问题,实际上需要从需求阶段就开始着手解决: 提高易用性:诸如“业务申请受理”之类的场景,其具有重复性、规模大的特点;在需求阶段应该十分注意标识出此类的功能,在设计时应该充分基于业务实际场景来提高易用性、速度,否则就可能会使其成为日常工作的瓶颈。 工作量价值化:基层人员很多时候是无法理解新增的工作量有什么意义的,这样就会加大其抵触情绪;因此在需求阶段应该尽可能地标识出这些工作量对于实际业务、管理工作等方面带来了什么样的直接好处,这样也就能够更好地提高基层人员的积极性。 将数据迁移、准备工作独立出来:很多系统在刚上线时需要对历史数据进行处理,或者是录入大量的基础数据,因此在需求阶段应该标识出这些工作,以便有效地将其独立出来,不使其成为基层人员的负担。
《软件需求最佳实践:SERU过程框架原理与应用(典藏版)》编辑推荐:语言浅显、文字生动、案例真实、抽象有效,方法连贯、适用性强、深入浅出、易于实践;场景和故事中阐述工作思路;案例和分析中演示实践方法。
中国的软件产业并不缺乏软件工程理论,而是我们没有很好地运用这些理论。我给软件工程硕士讲授《需求工程》课程,使用过各种版本的教材,这些书籍的通病就是实践性不强。当我读到这本书稿时,倍感亲切,这不是一本软件需求的理论书,而是一本需求实践指导手册。 ——张友生博士(希赛网首席架构师,著名计算机教育专家) 涵盖面广,实用性强,有理有据(例),亦庄亦谐,朴实无华又非常受用,在技术类书籍中当属不可多得的佳作。 ——田俊国(用友软件股份有限公司副总裁) 这是一本足以令人拍案叫好的书。它经验密集,直击需求实践中各种问题,给出令人信服的问题解决思路。它实践体系完善,贯穿全书的SERU过程框架,详尽地覆盖了需求工作中各个环节的任务、要点及产物,脉络清晰,可操作性极强。最可贵的是,SERU过程框架漂亮地“打通了”业务工程到传统需求的“鸿沟”,而众多企业需求实践中的最大困惑恰恰常在于此。故此,郑重推荐徐锋的这本佳作! ——温昱(资深咨询顾问,软件架构高级培训讲师)
无
强烈推介,一起的风格
从需求开发和管理各方面论述,并有较详细的操作方法。推荐!
理论联系实际,举了很多的例子,分析的也很到位,而且提供了一个索引方便查阅
很实用的一本书,讲了如何作需求分析,以及需求调研时的实用方法
价格略贵,工作案头读物
看后说出了我感觉很实用
感觉这本书讲的还是不错的,不过价钱能便宜点就好了.正在学习中,