版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 需求验证与评审,软件需求验证与评审概述 软件需求评审过程 软件需求评审问题与困难 如何做好软件需求评审,8.1软件需求验证与评审概述 在需求开发阶段发现的一个错误,平均仅需要花30分钟修复,但是在系统测试时发现的错误需要花517个小时来修复。 一、需求验证概述 、需求验证的活动如下: 软件需求规格说明正确描述了预期的系统行为和特征。 从系统需求或其它来源中得到软件需求。 需求是完整的和高质量的。 所有对需求的看法是一致的。 需求为继续进行产品设计、构造和测试提供了足够的基础。,、需求验证的目的 需求符合需求陈述( requirement statement)的良好特征(完整的、正确的、
2、灵活的、必要的、具有优先级的、无二义行及可验证的)。 符合需求规格说明的良好特性(完整的、一致的、易修改的、可跟踪的)。 只能验证那些已编写成文档的需求 ,而那些存在于用户或开发者思维中的没有表露的、含蓄的需求则不予验证。,二、需求验证概述 例: 一个来自四个用户代表的软件需求规格说明的评审工作正在进行。一个用户提出了一个灾难性的问题:它将使需求做重大更改。会后,需求分析员和项目经理很恼火,因为在前两个月的定义需求会议上,该用户也在场,但她却没有提出这一问题。经过一些调查之后才发现该用户已经反复提出了这个问题,但都被忽略了。在评审过程中,当许多用户一致认为这是一个严重的问题时,分析员和项目经理
3、意识到,他们再也不能忽略这一问题了。,需求评审即技术评审。 需求文档的评审是一项精益求精的技术,它可以发现那些二义性的或不确定的需求、那些由于定义不清而不能作为设计基础的需求,还有那些实际上是设计规格说明的所谓的“需求”。 技术评审分为正式评审和非正式评审。,()正式评审: 遵循预先定义好的一系列步骤过程。 正式评审内容需要记录在案,它包括确定材料、评审员、评审小组对产品是否完整或是否需要进一步工作的判定,以及对所发现的错误和所提出的问题的总结。 正式评审小组的成员对评审的质量负责,而开发者则最终对他们所开发的产品的质量负责。正式技术评审的最好类型叫作审查。,()非正式评审 非正式评审的方法包
4、括: 把工作产品分发给许多其它的开发人员粗略看看,或者走过场似地检查一遍(walkthrough) ,执行者描述产品,且征求意见。非正式评审对于培养其他人对产品的认识并获得反馈是有利的,但非正式评审是非系统化的,不彻底的。 非正式评审不需要记录备案。非正式评审可以根据个人爱好的方式进行评审。,软件需求评审过程 一、软件需求评审计划 确定评审范围和评估对象 确定评审参与者(审查组中的审查人员应限制在7个人左右或者更少,但不要少于4人) 确定评审时间 确定评审议程和所需要的信息,二、评审参与人员一般由以下人员组成: 审查参与者必须代表以下几个方面的观点: a. 产品的开发者及其可能的同组成员。 b
5、. 先前产品的开发者或正在评审的项目的规格说明编写者。 c. 客户或者用户代表。这类人群可以保证需求规格说明能正确和完整地描述他们的需求。 d. 要根据正在审查的文档来开展工作的人们。包括 设计人员,测试人员和项目经理。 审查组中的审查人员应限制在7个人左右或者更少。,审查中每个成员扮演的角色: 作者: 创建和编写正在被审查的SRS的人。系统分析员只能听取其他审查员得评论并做解释回答,不能参与讨论。 调解者: 审查的调解人与主持人,一般为项目总负责人。与作者一起制定审查计划,协调审查期间各种活动。 读者: 审查人员。审查SRS的内容,并提出问题以及自己的理解。 记录员: 以标准的形式与格式记录
6、在审查中提出的问题和缺陷。,记录员,组长,作者,用户 代表,技术 人员,三、需求评审过程,、根据如下因素调整审查速度: 一页中的文字数量 规格说明的复杂性 待审查的材料对项目成功的重要程度 以前的审查数据 软件需求规格说明作者的经验水平,、评审过程 ()理解评审流程 ()理解评审员的角色 作者(介绍员) 调解者(主持者) 读者(评审员) 记录员 ()指定协调员 ()评审(保持简短) ()确定问题,而不是解决问题,规划(Planning): 由作者和调节者对审查进行规划,决定所有参与人员,审查人员应该收到的材料,日程如何安排。 总体会议(Overview Meeting): 为审查员提供了解会议
7、的信息:待审查的材料背景,作者所作的假设和审查目标。 准备(Preparation): 每个审查员以典型缺陷(defect)审查清单为指导,检查SRS中可能出现的问题,并且提出问题。,审查会议(Inspection Meeting): 在会议过程中,读者通过SRS来指导审查小组,一次解释一次需求。当审查员提出可能的错误或其它的错误时,记录员须记录下这些内容。会议的目的是尽可能发现SRS中的重要缺陷和错误。 重定、重写(Rework): 当发现SRS中出现问题时,应在会后安排时间重写与修改。 重审(Follow Up): 审查的最后一步,重新审查重写的SRS,确保提出的所有问题都得到解决,退出审
8、查。,、进入和退出审查的标准 ()SRS进入审查的标准: 文档符合标准模板。 文档已经做过拼写检查和语法检查。 作者已经检查了文档在版面安排上所存在的错误。 已经获得了审查员所需要的先前或参考文档,例如系统需求规格说明。 在文档中打印了行序号以方便在审查中对特定位置的查阅。 所有未解决的问题都被标记为T B D(待确定)。 包括了文档中使用到的术语词汇表。,(2)关于需求文档的退出标准: 已经明确阐述了审查员提出的所有问题。 已经正确修改了文档。 修订过的文档已经进行了拼写检查和语法检查。 所有T B D的问题已经全部解决,或者已经记录下每个待确定问题的解决过程,目标日期和提出问题的人。 文档
9、已经登记入项目的配置管理系统。 检查是否已将审查过的资料送到有关收集处。,4、需求审查清单,为了使审查员警惕他们所审查的产品中的习惯性错误,对你的公司所创建的每一类型的需求文档建立一份清单。这些清单可以提醒审查员以前经常发生的需求问题。 研究结果表明: 赋予审查员特定的查错责任,向他们提供结构化思维过程或情节以帮助他们寻找特定类型的错误,这比仅仅向审查员发放一份清单所产生的效果要好得多,()组织和完整性 所有对其它需求的内部交叉引用是否正确? 所有需求的编写在细节上是否都一致或者合适? 需求是否能为设计提供足够的基础? 是否包括了每个需求的实现优先级? 是否定义了所有外部硬件、软件和通信接口?
10、 是否定义了功能需求内在的算法? 软件需求规格说明中是否包括了所有客户代表或系统的需求? 是否在需求中遗漏了必要的信息?如果有的话,就把它们标记为待确定的问题。 是否记录了所有可能的错误条件所产生的系统行为?,()正确性 是否有需求与其它需求相冲突或重复? 是否简明、简洁、无二义性地表达每个需求的? 是否每个需求都能通过测试、演示、审查得以验证或分析? 是否每个需求都在项目的范围内? 是否每个需求都没有内容上和语法上的错误? 在现有的资源限制内,是否能实现所有的需求? 是否任一个特定的错误信息都具有唯一性和明确的意义,()可行性 需求定义是否使软件的设计、实现、操作和维护都可行? 所规定的模式
11、、数值方法和算法是否对待解问题合适?是否能够在相应的限制条件下实现? 是否能够达到关于质量的要求?,()易修改性: 对需求定义的描述是否易于修改?例如是否采用良好的结构和交叉引用表等等? 是否有冗余的信息?是否一个需求被定义多次? ()健壮性: 是否有容错的需求? ()易理解性: 是否每一个需求都只有一种解释? 功能性需求是不是以模块方式描述的,是否明确地标识出其功能?,是否使用了形式化或半形式化的语言? 语言是否有歧义性? 需求定义是否只包含了必要的实现细节而不包含不必要的实现细节?是否过分细致了? 需求定义是否足够清楚和明确使其已能够作为开发设计规约和功能性测试数据基础? 需求定义的描述是
12、否将对程序的需求和所提供的其它信息分离开来?,()易测试性和可验证性: 需求是否可以验证? 是否对每一个需求都指定了验证过程? 数学函数的定义是否使用了精确定义的语法和语法符号? ()完备性: 规定的需求定义所应该包含的所有内容? 需求定义是否包含了有关功能、性能、限制、目标、质量等方面的所有需求? 功能性需求是否覆盖了所有非正常情况的处理? 是否已对各种操作模式(如正常、非正常、有干扰等)下的环境条件都作规定? 是否识别出了所有与时间因素有关的功能?它们的时间准则是否都明了?时间准则的最大、最小执行时间是否都定义了?,是否识别定义了在将来可能会变化的需求? 是否定义了系统的所有输入? 是否标
13、识清楚了系统输入的来源? 是否识别了系统的输出? 是否说明了系统输入、输出的类型? 是否说明了系统输入、输出的值域、单位、格式等? 是否说明了如何进行系统输入的合法性检查? 是否定义了系统输入、输出的精度? 在不同负载情况下,系统的生产率如何? 在不同的情况下,系统的响应时间如何? 系统对软件、硬件或电源故障必须作什么样的反应? 是否充分定义了关于人机界面的需求?,()一致性: 各个需求之间是否一致?是否有冲突和矛盾 所规定的模型、算法和数值方法是否相容? 是否使用了标准术语和定义形式? 需求是否与其软硬件操作环境相容? 是否说明了软件对其系统和环境的影响? 是否说明了环境对软件的影响? ()
14、质量属性 是否合理地确定了性能目标? 是否合理地确定了安全与保密方面的考虑? 在确定了合理的折衷情况下,是否详实地记录了其它相关的质量属性?,使用实例文档审查清单:,使用实例是否是独立的分散任务? 使用实例的目标或价值度量是否明确? 使用实例给操作者带来的益处是否明确? 使用实例是否处于抽象级别上,而不具有详细的情节? 使用实例中是否不包含设计和实现的细节? 是否记录了所有可能的可选过程? 是否记录了所有可能的例外条件? 是否存在一些普通的动作序列可以分解成独立的使用实例? 是否简明书写、无二义性和完整地记录了每个过程的对话? 使用实例中的每个操作和步骤是否都与所执行的任务相关? 使用实例中定
15、义的每个过程是否都可行? 使用实例中定义的每个过程是否都可验证?,软件需求评审问题与困难 一、几个案例,案例一 某领域专家A先生就某企业的成本管理系统做用户需求报告的评审工作,在评审会开始时间不长,就被在场的企业的一位副总B先生打断,认为A先生提出的方案不适合本企业,A先生提出的管理改进方案在企业中无法实施。该副总提完意见后,与会的用户方人员纷纷跟随B先生的提出了他们的反对意见,致使评审会无法再进行下去,最终该报告被用户否决。,案例二 某软件公司内部举行产品的需求评审会,主要是公司内部的领域专家参加,在评审会开始后不久,某领域专家就对需求报告中的某个具体问题提出了自己的不同意见,于是,与会人员
16、纷纷就该问题发表自己的意见,大家争执不下,结果,致使会议出现了混乱状况,主持人无法控制局面,会议大大超出了计划评审时间。,案例三 某软件公司为某公司A做业务流程管理系统的需求评审会,当项目组人员在会议上宣读多达上百页的需求报告时,用户明确提出听不懂,致使会议不得不改日进行。 案例四 某软件公司在用户处开完物资管理系统的需求评审会后,与会人员离开会议室时,纷纷摇头,认为本次会议没有多少实际效果,完全是在走过场。,案例五 某软件公司在公司内部举行产品的需求评审会时,需求报告的执笔人与产品策划主要策划人员的想法差别很大,致使需求评审会没有必要继续进行下去。,二、需求评审中常见的问题是: 需求报告很长
17、,短时间内评审者根本就不能把需求报告读懂,想清楚; 没有作好前期准备工作,需求评审的效率很低; 需求评审的节奏无法控制; 找不到合格的评审员,与会的评审员无法提出深入的问题; ,1)大型的需求文档 2) 庞大的审查小组 用以下的方法处理庞大的审查小组: 确保每个参与者都是为了寻找错误,而不是为了解软件需求规格说明中的内容或者为了维护行政上的位置。如果一些参与者只是想大概了解审查的内容,那么就邀请他们去参加总体会议,而不是参加审查会。 理解审查员所代表的观点(例如客户、开发者或测试者),并且委婉地拒绝以相同的观点看待问题的参与者。在准备阶段,你可能要收集持有同样观点的反馈人的信息,但只要派其中的
18、一个作为代表参加会议。,三、需求评审的困难,把审查组分成若干小组并行地审查软件需求规格说明,并把他们发现的错误集中起来,剔除重复的部分。研究表明:多个审查小组比起单一的大组而言,可以发现需求文档中更多的错误。审查小组总是发现错误的不同子集,所以并行审查的结果是追加的,而不是冗余的。 3) 审查员在地域上的分散,四、需求评审技术细节上的常见错误 根本不进行需求评审,而是让程序员随心所欲地写程序 。 用例不能符合所需的系统行为 。 不使用任何GUI原型来帮助验证系统行为 。 用例高度抽象,让不懂技术的客户如坠迷雾中。 概念模型不能准确地反映真实世界的概念性对象 。 用例建模没有参考概念模型 。 对
19、不包含任何分支流程的用例不提出疑义 。,如何做好软件需求评审,建议一:分层次评审 一般而言,需求可以分成如下的层次: 目标性需求:定义了整个系统需要达到的目标; 功能性需求:定义了整个系统必须完成的任务; 操作性需求:定义了完成每个任务的具体的人机交互; 目标性需求是企业的高层管理人员所关注的,功能性需求是企业的中层管理人员所关注的,操作性需求是企业的具体操作人员所关注的。,对不同层次的需求,其描述形式是有区别的,参与评审的人员也是不同的。如果让具体的操作人员去评审目标性需求,可能会很容易地导致“捡了芝麻,丢了西瓜”的现象,如果让高层的管理人员也去评审那些操作性需求,无疑是一种资源的浪费或者就
20、会出现案例三的情形。,建议二:正式评审与非正式评审结合,正式评审是指通过开评审会的形式,而非正式的评审并没有这种严格的组织形式,一般也不需要将人员集合在一起评审,而是通过电子邮件、文件汇签甚至是网络聊天等多种形式对需求进行评审。往往非正式的评审比正式的评审效率更高,更容易发现问题。因此在评审时,应该更灵活地利用这2种方式。,建议三:分阶段评审,在需求形成的过程中进行分阶段的评审,而不是在需求最终形成后再进行评审。分阶段评审可以将原本需要进行的大规模评审拆分成各个小规模的评审,降低了需求返工的风险,提高了评审的质量。 比如,可以在形成目标性需求后进行一次评审,在形成系统的初次概要需求后进行一次评
21、审,当对概要需求细分成几个部分,对每个部分进行各个评审,最终再对整体的需求进行评审。,建议四:精心挑选评审员,需求评审可能涉及的人员包括:需方的高层管理人员、中层管理人员、具体操作人员、IT主管、采购主管;供方的市场人员、需求分析人员、设计人员、测试人员、质量保证人员、实施人员、项目经理以及第三方的领域专家等等。在这些人员中由于大家所处的立场不同,对同一个问题的看法是不相同的。 需要精心挑选评审员。首先要保证使不同类型的人员的都要参与进来,其次在不同类型的人员中要选择那些真正和系统相关的,对系统有足够了解的人员参与进来。,建议五:对评审员进行培训,在很多情况下,评审员是领域专家而不是进行评审活动的专家,他们没有掌握进行评审的方法、技巧、过程等,因此需要对评审员进行进行培训或指导,以便于参与评审的人员能够紧紧围绕评审的目标来进行,提高评审效率,避免发生案例一和案例二中出现的现象。,建议六:充分利用需求评
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南玉溪市华宁县宁州街道招聘社区人员2人笔试模拟试题及答案详解
- 2026年西安市第四十二中学教师及行政人员招聘考试参考题库及答案详解
- 2026湖南益阳沅江市第一批就业见习岗位108人考试参考题库及答案详解
- 2026西安工业大学附属中学招聘笔试模拟试题及答案详解
- 2026浙江温州市洞头人才发展招聘2人笔试模拟试题及答案详解
- 2026四川广安嘉和建设投资有限公司武胜县公办养老机构招聘工作人员20人考试模拟试题及答案详解
- 2026沈阳航空产业集团有限公司所属子企业招聘2人笔试参考题库及答案详解
- 2026年温州市瓯海区第三人民医院面向社会招聘工作人员5人考试模拟试题及答案详解
- 2026浙江宁波市鄞州区公立学校招聘编外员工2人考试模拟试题及答案详解
- 2026新疆可克达拉市国有资本投资运营有限责任公司市场化招聘(1人)考试参考题库及答案详解
- 输电线路污秽度监测与评估
- 批发药品管理法培训课件
- 偏瘫患者抗痉挛体位摆放技术评分标准
- HG∕T 2972-2017 工业用一甲胺
- GB/T 25849-2024移动式升降工作平台设计、计算、安全要求和试验方法
- 2023年广州番禺区小升初六年级英语期末试卷及答案(含听力原文)
- 绿色食品生产记录表黄瓜
- 课本剧林教头风雪山神庙剧本
- “减负、增效、提质”理念下基于学科核心素养的小学英语作业设计优化策略研究 论文
- GB/T 26081-2022排水工程用球墨铸铁管、管件和附件
- GB/T 4851-2014胶粘带持粘性的试验方法
评论
0/150
提交评论