软件需求

出版社:清华大学出版社
出版日期:2004-11-1
ISBN:9787302098348
作者:(美)Karl E.Wiegers
页数:357页

章节摘录

  第1章 软件需求基础知识    “您好。是Phil么?我是人力资源部的Maria。我们使用您做的人事管理系统时遇到点问题。有位女职员想把名字改成Sparkle Starlight,可我们在系统里怎么都改不过来。能帮帮忙吗?”    “她嫁了一个姓Starlight的人么?”    “没有,她没结婚,只是改了名字。”Maria答道,“所以才有这样的麻烦。好像只有在婚姻状况改变时才能改名字。”    “是的。我从来没想过谁会无缘无故地改名字。我们讨论系统的时候您可没跟我提过这种可能。所以只能从修改婚姻状况的对话框进入修改名字的对话框。”    “谁都可以改名字。只要他愿意,随时都行,这是合法的。我以为您知道呢。”Maria说,“星期五之前必须搞定,不然Sparlkle就兑换不了支票。您能在那之前把这个错误改过来么?”    “这根本就不是错误!”Phil反驳道,“我从来不知道您需要这个功能。我正忙着做一个新的性能评估系统。而且我还要对人事管理系统进行一些修改,”(话筒里传来翻纸的声音),“对,这就有一个。月底没准能改好,这周肯定不行,抱歉。下回早点儿告诉我,麻烦把问题写下来。”    “我怎么跟Sparkle说?”Maria问,“兑不了支票她就得赊账。”    “搞清楚,Maria,这可不是我的错。”Phil抗议了,“如果您当时告诉我要能随时修改姓名,就不会有今天的事。您不能怪我没猜到您的想法。”    Maria很生气却无可奈何,只好气冲冲地说:“好了。就是这种事让我恨透了计算机。改好了马上通知我,这总可以吧。”    如果您曾经有过这种客户经历,您肯定明白这种连最基本的操作都完不成的软件多么让人烦恼。即便开发人员最终可能会帮您改好,您通常也不愿总求助于他。然而,站在开发人员的立场,如果系统完成后才从用户那里得知需要什么功能,也的确很难接受。已经完全按最初的要求实现了系统,却不得不停下手头的项目去修改系统以便满足用户的新需求,这也是件很讨厌的事。    许多软件问题都源于收集、记录、协商和修改产品需求过程中的方式不当。前面Phil和Maria的例子中就有这些方面的问题,包括信息收集方式不正规,没有明确提出想要的功能,假设是未经沟通的错误假设,需求的定义不够充分,以及未经仔细考虑进行需求变更等。

前言

  随着计算机软件项目的规模越来越大,竞争日趋激烈,软件开发组织越来越认识到软件质量的重要性,在这种情况下软件工程的理念已渐渐深入人心,人们已经从中受益。  软件需求作为软件工程的一个阶段,在软件项目开发中起着至关重要的作用。软件项目要取得成功,最重要的莫过于了解所要开发的软件需要解决哪些问题,这就是软件需求所要解决的问题,因此,软件需求为软件项目的成功奠定了基础。如果软件开发人员与客户不进行充分的交流与沟通,没有就产品的功能性需求和非功能性需求达成共识,就匆匆忙忙开始着手编写代码,其后果可想而知,很可能不能满足用户的需要,从而不得不对项目进行返工,这就造成了人力和物力的巨大浪费。如果我们在软件项日开发之前,充分地完成软件需求的相关活动,就可以避免这种情况的发生。  本书是一本非常实用的需求工程参考书,书中按照需求工程的各个阶段,即需求获取阶段、需求分析阶段、编写需求规格说明阶段、需求确认阶段和需求管理阶段组织起来,并提供了许多有效技术,这些技术为用户、开发人员和管理层之间进行交流提供了方便。本书作者卡尔•E•威格(Karl E.Wiegers)是需求工程领域的权威人士,他曾担任过软件开发人员、软件经理以及软件过程和质量改进负责人,在长期的工作中积累了丰富的经验。本书第1版曾荣获软件开发效率大奖,目前已成为参与软件开发过程的所有人员必不可少的参考书。本书第2版对第1版中所提出的最佳实践进行了许多扩充,这一版不仅在每一章中都列举了大量的实例并提供了新的案例,而且,作者还根据自己的亲身经历,为完成不同的任务提供了颇具特色的检查列表、范例文档和模板。另外,作者还从自己丰富的职业生涯中精选出了一些趣闻轶事,增加了技术书籍的趣味性。相信阅读本书之后,读者对于需求工程一定会有一个全面而透彻的理解。  参加本书翻译工作的人员还有苏正泉、米强、张颖、夏红、谷昀、江峰、徐利生、李宏为、赵琪、姬凌岩。  由于时间仓促以及水平有限,错误之处在所难免,敬请读者批评指正。

后记

结语  软件项目要取得成功,最重要的莫过于要了解需要解决哪些问题,需求为项目的成功奠定了基础。如果开发团队及其客户没有就产品功能和特性达成共识,那么其结果很可能会令人很不愉快,而这是我们都不愿意看到,且应该尽量避免的。如果当前的需求实践并不能使您得到满意的结果,那么可以仔细考虑一下本书中提出的哪些技术可能会对您有所帮助,并有选择地应用这些技术。有效需求工程的重要原则包括:  客户代表尽早介入需求工程,并且要有足够的客户参与。  迭代地或增量地开发需求。  以各种方式来表示需求,以确保每个人都能理解。  确保需求对所有涉众的完整性和正确性。  控制需求变更方式。  要改变软件开发组织的工作方式并不是一件容易的事,因为我们很难证实当前的工作方式不如我们喜欢的方式好,也很难断定下一次应该尝试哪种方法。我们很难抽出时间学习新技术、开发改进的软件过程、试验并调整过程、以及将它们传达到组织的其他部门。使涉众各方确信必须进行变更也是一件很困难的事。但是,如果不改变工作方式,我们就没有理由相信当前项目将比上一个项目更好  软件过程改进的成功取决于下面几个因素:  清楚地描述组织的痛苦所在。  一次只集中改进少许领域。  目标明确,定义改进活动的计划。  描述与组织变更相关的人为因素和文化因素。  说服高级经理将过程改进视为业务成功的战略投资。  当我们定义图来改进需求工程实践并开始付诸于行动时,要牢记上述过程改进原则。保留那些适合于组织和团队的实践方法。如果我们积极地应用已知的良好实践,并依靠常识,就可以显著地改进处理项目需求的方式,并获得由此带来的全部优点和益处。另外还应记住,没有优秀的需求,软件就像是一个巧克力盒子:我们决不会知道我们将得到什么样的产品。

内容概要

威格斯(Karl E.Wiegers)是需求工程和软件过程改进领域内的顾问专家。作为Process lmpact公司的首席顾问,他曾举办过许多培训讲习班,并多次在行业大会上发表演讲。Karl曾两次荣获Software Development Productivity Award,这一奖项是专门为奖励有助于提高生产率的产品和著作而设立的。

书籍目录

第I部分   什么是软件需求?为什么要实现软件需求?哪些人应参与软件需求第1章  软件需求基础知识    1.1软件需求的定义    1.1.1对需求的不同解释    1.1.2需求的层次    1.1.3不属于需求的内容    1.2需求的开发与管理    1.2.1需求开发    1.2.2需求管理    1.3所有项目都有需求    1.4优秀的团队遇到糟糕的需求    1.4.1用户参与不足    1.4.2用户需求扩展    1.4.3有岐义的需求    1.4.4镀金问题    1.4.5过于抽象的需求    1.4.6忽略了某类用户    l.4.7不准确的计划    1.5优质需求过程的好处    1.6优秀需求的特点    1.6.1需求陈述的特点。    1.6.2需求规格说明的特点第2章  客户眼中的需求    2.1客户    2.2客户与开发人员的合作伙伴关系    2.2.1软件客户的权利法案    2.2.2软件客户的义务法案    2.3关于“签字”第3章  需求工程的推荐方法    3.1知识技能    3.2需求获取    3.3需求分析    3.4规格说明    3.5需求验证    3.6需求管理    3.7项目管理    3.8开始新实践    3.9需求开发过程第4章  需求分析员    4.1需求分析员的职责    4.1.1需求分析员的工作    4.1.2需求分析员必备的技能    4.1.3需求分析员必备的知识    4.2如何培养需求分析员    4.2.1从用户转为分析员    4.2.2从开发人员转为分析员    4.2.3主题专家    4.3营造合作的氛围    第Ⅱ部分  软件需求开发第5章  确定产品前景与项目范围    5.1通过业务需求定义前景    5.1.1相互矛盾的业务需求    5.1.2业务需求与用例    5.2前景与范围文档    5.3关联图    5.4保持范围的适度第6章  获取客户的需求    6.1需求的来源    6.2用户类    6.3寻找用户代表    6.4用户代言人    6.4.1外部的用户代言人    6.4.2对用户代言人的要求    6.4.3设置多位用户代言人    6.4.4如何让人接受用户代言人的概念    6.4.5用户代言人应避免的陷阱    6.5谁来做出决策第7章  聆听客户的需求    7.1需求获取    7.2需求获取讨论会    7.3将客户的意见归类    7.4需求获取中的注意事项    7.5寻找遗漏的需求    7.6如何判断需求获取是否已完成第8章  理解用户需求    8.1用例法    8.1.1用例与使用场景    8.1.2确定用例    8.1.3编写用例    8.1.4用例与功能性需求    8.1.5用例的好处    8.1.6使用用例时应避免的问题    8.2事件一响应表第9章  遵守规则    9.1业务的规则    9.1.1事实    9.1.2约束    9.1.3动作触发规则    9.1.4推论    9.1.5计算    9.2在文档中记录业务规则    9.3业务规则和需求第10章  编写需求文档    10.1软件需求规格说明    10.1.1需求的标识    10.1.2处理不完整性    10.1.3用户界面和软件需求规格说明    10.2软件需求规格说明模板    10.3编写需求文档的原则    10.4改进前后的需求示例    10.5数据字典第11章  一图胜千言    1 1.1需求建模    11.2从客户需求到分析模型    11.3数据流图    11.4实体一关系图    11.5状态转换图    11.6对话图    11.7类图    11.8判定表和判定树    11.9最后的提醒第12章  软件质量属性    12.1质量属性    12.2定义质量属性    12.2.1对用户重要的属性    12.2.2对开发人员重要的属性    12.3性能需求    12.4用Planguage定义非功能性需求    12.5属性的折中方案    12.6实现非功能性需求第13章  通过制作原型减少项目风险    13.1什么是原型和为什么要建立原型    13.2水平原型    13.3垂直原型    13.4废弃型原型    l 3.5演化型原型    13.6书面原型和电子原型    13.7原型评估    13.8创建原型所带来的风险    13.9原型法成功的因素第14章  设定需求优先级    14.1为什么要设定需求优先级    14.2优先级规则    14.3优先级的等级    14.4根据价值、成本和风险来    设定优先级第15章  需求确认    15.1需求评审    15.1.1审查过程    15.1.2需求评审面临的困难    15.2测试需求    15.3制定验收标准.第16章  需求开发面临的特殊难题    16.1维护项目的需求    16.1.1开始捕获信息    16.1.2亲身实践一下新的需求技术    16.1.3遵循跟踪链    16.2软件包解决方案的需求    16.2.1开发用例    16.2.2考虑业务规则    16.2.3定义质量需求    16.3外包项目的需求    16.4突发型项目的需求    16.4.1非正式用户需求规格说明    16.4.2现场客户    16.4.3尽早地而且要经常地设定优先级    16.4.4简单的变更管理第17章  超越需求开发    17.1从需求到项目规划.    17.1.1需求和预估    17.1.2需求和进度安排    17.2从需求到设计和编码    17.3从需求到测试    17.4从需求到成功    第Ⅲ部分  软件需求管理第18章需求管理的原则和实践    18.1  需求基线    18.2需求管理过程    18.3需求版本控制    18.4需求属性    18.5跟踪需求状态    1 8.6评估需求管理的工作量第19章  变更管理    19.1管理范围蔓延    19.2变更控制过程    19.2.1变更控制策略    19.2.2变更控制过程描述    19.3变更控制委员会    19.3.1 CCB的组成    19.3.2 CCB规章    19.4变更控制工具    19.5测量变更活动    19.6变更需要付出代价:影响分析    19.6.1影响分析的过程    19.6.2影响分析报告模板第20章  需求链中的联系链    20.1需求跟踪    20.2需求跟踪动机    20.3需求跟踪矩阵    20.4需求跟踪工具    20.5需求跟踪过程    20.6需求跟踪可行吗?必要吗?第21章  需求管理工具    21.1使用需求管理工具的益处    21.2需求管理工具的功能    21.3实现需求管理自动化    21.3.1选择适当的工具    21.3.2改变文化    21.3.3使需求管理工具服务于自己    第Ⅳ部分  实现需求工程第22章  改进需求过程    22.1需求与其他项目过程的联系    22.2需求和各涉众组    22.3软件过程改进的基本原则    22.4过程改进周期    22.4.1评估当前采用的方法    22.4.2规划改进活动    22.4.3建立、实验并实现新过程    22.4.4评估结果    22.5需求工程过程资产    22.5.1需求开发过程资产    22.5.2需求管理过程资产    22.6需求过程改进路线图第23章  软件需求与风险管理    23.1软件风险管理基本原理    23.1.1风险管理的要素    23.1.2编写项目风险文档    23.1.3制定风险管理计划    23.2与需求相关的风险    23.2.1需求获取    23.2.2需求分析    23.2.3编写需求规格说明    23.2.4需求确认    23.2.5需求管理    23.3风险管理是我们的好帮手附录A  当前需求实践的自我评估附录B  需求和过程改进模型    B.1软件能力成熟度模型    B.2 CMMI.SE/SW    B.2.1需求管理过程域    B.2.2需求开发过程域附录C  需求错误诊断指南    C.1根本原因分析    C.2需求问题的常见现象    C.3实现解决方案常常会遇到的障碍附录D  需求文档范例    D.1前景和范围文档    D.1.1业务需求    D.1.2解决方案的前景    D.1.3范围和局限性    D.1.4业务上下文    D.2用例    D.3软件需求规格说明.    D.3.1介绍    D.3.2总体描述    D.3.3系统特性    D.3.4外部接口需求    D.3.5其他非功能性需求    D.3.6附录A数据字典和数据模型    D.3.7附录B分析模型    D.4业务规则术语表结语

编辑推荐

需求工程的最佳实践,更多的示例,新主题,以及需求文档范例如果没有正式的可验证的软件需求及有效管理需求的系统,开发人员开发出来的程序通常会与客户需要的程序不一致。在本书中,Karl Wiegers对其获奖文章中的最佳实践进行了整理和扩充,这些实践是所有软件开发参与者的重要参考依据。《软件需求》(第2版)(Software Requirements)可以作为计算机专业及软件工程专业学生的教材使用,也非常适合作为项目经理、软件开发人员的指导性参考书。

作者简介

《软件需求》(第2版)(Software Requirements)是有关软件需求的经典教材,本书全面而深入地讲述了软件开发中一个至关重要的问题——软件需求问题。软件开发人员及用户往往容易忽略沟通的重要性,导致软件开发出来后,不能很好地满足用户的需要。返工不仅在技术上给开发人员带来巨大的麻烦,并且会造成人力、物力和资源的浪费,还使软件性能深受影响,所以在开发早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩大及需求变更来达到按计划完成预定目标,是当前软件业急需解决的问题,也是本书讨论的主要内容。
《软件需求》(第2版)(Software Requirements)介绍了贯穿整个开发周期的管理需求工程的实用技术,包括多种可以促进用户、开发人员和管理层之间有效沟通的方法。这一版对第一版进行了扩充,提供了新的实例,及作者在实际工作中遇到的各种实际案例和解决方案。此外,还添加了新的章节、需求示例文档以及故障诊断指南等。
本书对第1版的内容进行了扩展,不仅对原有的知识点进行了补充,还引入了一些新知识,以求与时代发展同步。

图书封面


 软件需求下载 更多精彩书评



发布书评

 
 


精彩书评 (总计3条)

  •     最近因为要考试,把这本书作为教材很细致地读了一遍内容总体来说还可以,不过和其它需求书相比,没有什么让人惊艳的地方融入了作者很多的经验之谈,应该还算实用至于翻译的质量,很一般,有些地方译的有点不知所云校正的也一般,我发现了的错别字都有个十几个了,不过也可能我要求有点高另,蛮喜欢里面讲“需求测试”的部分~
  •     最近继续在看《软件需求》,觉得自己做了将近10年的需求分析,但是并没有很系统的学习和整理过关于需求的方法和理论。只是根据自己的经验和实践,通过直觉来做事情。也没有很深刻的想过为什么这样做会很有效果,那样做会事倍功半。计划在这个月结束这本书,然后来做笔记的整理和更详细的分享。
  •     很多书在介绍需求分析的方法(比如UML,各种case和story的编写)等等,却忽略了其基础理论知识。只有知晓基础后,才能更好的理解和理会其他方法论。推荐这本书。可以买来收藏并时常温故知新。。。。。。。。。。已经加入到我的书单中了,期待其他需求分析爱好者大家一起交流。。。。。。。。。。。。。。。。。。。。。。。。

精彩短评 (总计34条)

  •     内容编排比较浅显,适合初学者。
  •     应试。。。
  •     书写的真不错,真在读。。。。
  •     很不错的压缩袋
  •     挺好的书,获益匪浅,赞一个
  •     纸质一般,部分内容有错误
  •     书是很久以前的
  •     逻辑清晰,理论性较强。适合软件需求的入门。
  •     是指虽然一般,但内容不错,翻译的水平也可以。
  •     软降需求工程详细讲解
  •     个人感觉不错
  •     软件需求分析,外国人的中文译本。
  •     工具书。
  •     别人买的,说是不错
  •     质量还好,基本属于入门书籍
  •     boss推荐的经典书籍,帮助梳理知识体系,很好。
  •     听说amazon的评价特别牛
  •     比较全面讲到需求过程的东西
  •     软件需求
  •     有经验、方法论、工具及模板,所以我认为这本书要比一些通常意义上的软件工程实用得多。
  •     发货速度挺快,服务也不错,书也很好,正在看。就是书的纸张质地,太毛糙了,感觉像是盗版的,或者放了好久以后的样子。。。汗了。。。不过,好在是书籍不影响阅读。
  •     终于读完了,。。。。
  •     纸张和印刷质量太差,翻开全是刺鼻的味道,让人喉咙难受,本来是一本好书,结果却不想阅读还是清华大学出版社的 正版不应该是这样的吧 亚马逊卖出这样质量的书 真是台令人失望了
  •     很不错的一本书啊,其实互联网也是从软件行业发展而来的~
  •     难得见到单把需求就讲得这么细致的,好书
  •     BA觉得精读的书!!!
  •     层次分明,讲解详尽,适合入门。
  •     不错,适合软件开发人员
  •     适合初级的。只是了解节本知识用。
  •     唉,这年头的正版书质量还不如盗版。
  •     还行,重点阅读了需求的图形化分析章节,个别地方感觉比较老,但是整体思想还是不错的,值得反复学习。需求工程是一门需要训练的学问。
  •     这本书不错,原著外国作者,但此书翻译得比较好,符合东方人语言习惯。全书内容很全面而且详细,并配合案例说明,其中还附有标准的需求文档模板。
  •     经典读物,偶尔参考。
  •     这本书是从代码大全2的介绍中了解到的,特地买了一本。看了前两章还不错,虽说是外国人写的需求方面的,但国内的情况也是非常相近的。只是觉得知道这本书有点晚,早几年估计不会像现在这样做项目那么痛苦了。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024