第四章[0]需求分析(精品).ppt
2 2主主 要要 内内 容容 需求及需求原因需求及需求原因 需求分析的相关人员需求分析的相关人员 不同层次的不同层次的需求需求 需求分析的活动需求分析的活动 目的目的:明确明确“做什么做什么”准确、完整和规范化的软件准确、完整和规范化的软件 需求是软件开发成功的关键需求是软件开发成功的关键n4.1 4.1 需求及需求原因需求及需求原因n 4.1.1 4.1.1 什么是什么是软件软件需求?需求?4.1.2 4.1.2 为什么需要为什么需要软件软件需求需求?4.1.3“软件需求软件需求”的作用的作用“我要一所大房子我要一所大房子”背景:我是你的建筑师,受雇佣为你设计一背景:我是你的建筑师,受雇佣为你设计一 所大房子。所大房子。问题:你的需求是什么?问题:你的需求是什么?4.1.14.1.1 什么是需求?什么是什么是“需求需求”?我要一所大房子我要一所大房子有很大的落地窗户有很大的落地窗户阳光洒在地板上阳光洒在地板上也温暖了我的被子也温暖了我的被子我要一所大房子我要一所大房子有很多很多的房间有很多很多的房间一个房间有最快的网路一个房间有最快的网路一个房间有很多的吉他一个房间有很多的吉他一个房间有我漂亮的衣服一个房间有我漂亮的衣服一个房间住着朋友和他的爱人一个房间住着朋友和他的爱人一个房间一个房间一个房间一个房间我也不知道该放些什么我也不知道该放些什么我们晚上不睡觉我们晚上不睡觉白天在床上思考白天在床上思考小狗在屋里奔跑小狗在屋里奔跑度过完美的一天度过完美的一天不同的人有不同的不同的人有不同的“需求需求”?法国人、美国人和中国人被困法国人、美国人和中国人被困在一个荒岛上,遇到了一个神仙在一个荒岛上,遇到了一个神仙神仙说:神仙说:“我可以满足你们每个人一个愿望。我可以满足你们每个人一个愿望。”法国人抢先说:法国人抢先说:“我要回家!我要回家!我要回家!我要回家!”神仙说:神仙说:“满足你的愿望。满足你的愿望。”于是把法国人送走了。于是把法国人送走了。美国人马上说:美国人马上说:“我也要回家!我也要回家!我也要回家!我也要回家!”神仙说:神仙说:“满足你的愿望。满足你的愿望。”于是美国人也被送走了。于是美国人也被送走了。最后剩下中国人,神仙问:最后剩下中国人,神仙问:“你有什么愿望?你有什么愿望?”中国人说:中国人说:“他们都走了,留下我怪寂寞的,把他们他们都走了,留下我怪寂寞的,把他们 叫回来吧。叫回来吧。”于是法国人和美国人又回来了于是法国人和美国人又回来了.“只有结婚后才可以修改姓名吗?只有结婚后才可以修改姓名吗?”PhilPhil开发了一套人力资源软件,有一天他接开发了一套人力资源软件,有一天他接 到了人力资源部到了人力资源部MariaMaria打来的电话打来的电话Maria 一个同事想把自己的名字改为一个同事想把自己的名字改为SparkleStarlight,但系统不允,但系统不允许,能帮忙吗?许,能帮忙吗?Phil 她嫁给了一个姓她嫁给了一个姓Starlight的人吗?的人吗?Maria 不,她并没有结婚,她只是想改名字而已;不,她并没有结婚,她只是想改名字而已;Phil 系统只支持在改变婚姻状况时才可以改名字。系统只支持在改变婚姻状况时才可以改名字。Maria 可是每个人只要愿意就可以随时改变自己的名字啊。可是每个人只要愿意就可以随时改变自己的名字啊。Phil 这并不是我的错!在开发系统之前,你从来没有向我提起过有这并不是我的错!在开发系统之前,你从来没有向我提起过有这种需求!这种需求!Maria 不管如何,请尽快把这个功能修改完毕,否则不管如何,请尽快把这个功能修改完毕,否则Sparkle将无法将无法支付她的银行帐单。支付她的银行帐单。Phil 如果你一开始就告诉我你要能随时改变某个人的名字,那这些如果你一开始就告诉我你要能随时改变某个人的名字,那这些就都不会发生!就都不会发生!软件需求?8 8软件需求软件需求(Software Requirements)(Software Requirements)l从系统的外部发现系统所具有满足用户的特从系统的外部发现系统所具有满足用户的特 点、功能、属性等点、功能、属性等(Alan Davis(Alan Davis 93)93)l用户所需要的并能触发一个程序或系统开发用户所需要的并能触发一个程序或系统开发 工作的说明工作的说明 (Jones 94)(Jones 94)。l用户解决问题达到目标所需要的条件或权能,用户解决问题达到目标所需要的条件或权能,系统或系统部件要满足合同、标准、规范或系统或系统部件要满足合同、标准、规范或 其他正式规定文档所具有的途径或权能其他正式规定文档所具有的途径或权能(IEEE97)(IEEE97)。9 9一个需求是一个一个需求是一个“被构造被构造”的的陈述,陈述,用以描述待开发产品(或项目)用以描述待开发产品(或项目)功能功能上的上的能力能力、性能性能参数或者其它性质参数或者其它性质(不描述领域也不不描述领域也不描述系统是如何实现的描述系统是如何实现的)。需求必须经过所有相关人员的需求必须经过所有相关人员的认可认可同意才能成为同意才能成为正式的需求,正式的需求,彻底解决客户的问题。彻底解决客户的问题。需求的集合称为需求的集合称为需求文档需求文档(requirementsdocument)概括为概括为:1010 实例实例 开发一个开发一个:学生选课系统学生选课系统 Course Registration System Course Registration System问题问题?该系统允许学生在一个学期开始之前选择该该系统允许学生在一个学期开始之前选择该学期开设的某些课程,学生注册,修改注册,它学期开设的某些课程,学生注册,修改注册,它将帮助学生学习他们认为最有兴趣、最有用的课将帮助学生学习他们认为最有兴趣、最有用的课程,并用最短时间获得学位。尽可能简单、快捷。程,并用最短时间获得学位。尽可能简单、快捷。如果如果“该系统将自动完成注册办公室的各项功该系统将自动完成注册办公室的各项功能能”,应增加什么功能,应增加什么功能?系统包括的功能:付费、打印班级列表、系统包括的功能:付费、打印班级列表、为课程分配教室。为课程分配教室。1111确定问题范围确定问题范围-想到所有子问题想到所有子问题浏览课程浏览课程教室分配教室分配注册注册考试安排考试安排费用支出费用支出浏览课程浏览课程注册注册教室分配教室分配考试安排考试安排费用支出费用支出图图 4-1 4-1 缩小项目的范围缩小项目的范围确定问题范围确定问题范围从系统高层目标考虑从系统高层目标考虑目标目标1:1:完成学生注册完成学生注册目标目标2:2:学习他们认为最有兴趣、最有用的课程学习他们认为最有兴趣、最有用的课程,并用最短时间获得学位并用最短时间获得学位.考虑填加一些功能考虑填加一些功能:1212功能功能:|学生选课注册学生选课注册|记录成绩记录成绩|打印成绩打印成绩|编辑并查询可选课程的列表编辑并查询可选课程的列表(包括说明和先包括说明和先 修课程列表修课程列表)|编辑并查询学位申请编辑并查询学位申请|编辑并查询某个学期教授的课程列表编辑并查询某个学期教授的课程列表|通过对学位要求、先修课程、时间安排和兴趣通过对学位要求、先修课程、时间安排和兴趣 爱好的分析帮助学生选择课程爱好的分析帮助学生选择课程 1313#安排讲授课程的时间表安排讲授课程的时间表#分配讲课或考试的教室分配讲课或考试的教室#支付费用及相关的会计与账务支付费用及相关的会计与账务#录取申请录取申请在补充几个在补充几个功能功能:u 学生不希望自己的学习成绩被他人查阅学生不希望自己的学习成绩被他人查阅u 老师可以使用选课系统获得选课学生的老师可以使用选课系统获得选课学生的名单,并登记学生的课程学习成绩名单,并登记学生的课程学习成绩还有需求吗还有需求吗?:以下描述是否属于需求?为什么?以下描述是否属于需求?为什么?系统通过系统通过JDBCJDBC与与OracleOracle数据库数据库CourseDBCourseDB建建立连接,并从立连接,并从CourseOfferingCourseOffering数据表中获得课数据表中获得课程的开设信息。程的开设信息。怎样获取功能怎样获取功能?需求收集需求收集,分析技术分析技术 (面谈、头脑风暴、原型、用例技术面谈、头脑风暴、原型、用例技术)后面讲述后面讲述151519791979年美国财政部对美国联邦政府开发的年美国财政部对美国联邦政府开发的9 9 个工程规模不大的软件项目进行了调查,结个工程规模不大的软件项目进行了调查,结 果为:果为:投资后投资后未能交付未能交付的软件占的软件占20-21%20-21%,交付后交付后不能使用不能使用的软件占的软件占47%47%,需要经过需要经过修改修改才能使用的占才能使用的占29%29%,交付后交付后可以使用可以使用的只占的只占3-4%3-4%。原因原因:需求没有做好需求没有做好4.1.2 4.1.2 为什么需要需求为什么需要需求?1616 Standish-GroupStandish-Group对对350350家公司的家公司的80008000个软件项目个软件项目 作过一次调查作过一次调查.其中,其中,31%31%的项目的结局是被取消。的项目的结局是被取消。引引起起这些项目失败的原因是:这些项目失败的原因是:13.1%13.1%不完整的产品要求;不完整的产品要求;12.4%12.4%缺乏用户的参与;缺乏用户的参与;10.6%10.6%缺少资源(人力、财力);缺少资源(人力、财力);9.9%9.9%不现实的期望不现实的期望;9.3%9.3%高层领导支持不足;高层领导支持不足;8.7%8.7%产品要求与指标的改变;产品要求与指标的改变;8.1%8.1%没有订计划;没有订计划;7.5%7.5%不在需要的能力不在需要的能力 其中,与产品需求有关的(其中,与产品需求有关的(1,2,4,61,2,4,6和和8 8项)占了项)占了44.1%44.1%。这些数据突出地显示了软件产品需求在软件开发中的重要性这些数据突出地显示了软件产品需求在软件开发中的重要性。4.1.3“软件需求软件需求”的作用的作用 “Requirement is the Basics of Requirement is the Basics of Quality”Quality”|充分理解现实中的业务问题,并作为软件充分理解现实中的业务问题,并作为软件 设计的基础。设计的基础。|为软件项目的成本、时间、风险估计提供为软件项目的成本、时间、风险估计提供 准确的依据。准确的依据。|减少开发工作量,避免将时间与资源浪费在减少开发工作量,避免将时间与资源浪费在 设计与实现错误的需求上。设计与实现错误的需求上。|作为顾客与开发团队之间正式作为顾客与开发团队之间正式合同的一部分。合同的一部分。|为最终的验收测试提供为最终的验收测试提供标准和依据。标准和依据。|通过提供需求文档和需求基线,有效的通过提供需求文档和需求基线,有效的管理管理 系统演化与变更。系统演化与变更。4.2 4.2 需求分析相关者需求分析相关者1919图图 4-2 需求分析相关者需求分析相关者用户用户用户用户管理人员管理人员软件开发小组软件开发小组分析人员分析人员4.2 4.2 需求分析相关者需求分析相关者n4.3 4.3 需求种类需求种类4.3 4.3 不同层次的软件需求不同层次的软件需求(需求种类需求种类)业务需求业务需求项目视图与范围文档项目视图与范围文档业务规则业务规则用例文档用例文档功能需求功能需求系统需求系统需求软件需求规格说明软件需求规格说明外部接口外部接口需求需求用户需求用户需求功能性需求功能性需求非功能性需求非功能性需求约束条件约束条件非功能需求非功能需求图图 4-3 需求分析类型需求分析类型4.3.1 4.3.1 业务需求业务需求 (Business Requirements)(Business Requirements)业务需求:客户对于系统的高层次目标要求,业务需求:客户对于系统的高层次目标要求,定义了项目的远景和范畴定义了项目的远景和范畴#业务:属于哪类业务范畴?应完成什么功能?业务:属于哪类业务范畴?应完成什么功能?为何目的?为何目的?#客户:软件为谁服务?目标客户是谁?客户:软件为谁服务?目标客户是谁?#特性:区别于其他竞争产品的特性是什么?特性:区别于其他竞争产品的特性是什么?#价值:价值体现在那些方面?价值:价值体现在那些方面?#优先级:功能特性的优先级次序是什么?优先级:功能特性的优先级次序是什么?业务需求业务需求 例例“图书资料管理系统图书资料管理系统”的业务需求的业务需求 该系统使用计算机实现图书资料的日常管理,该系统使用计算机实现图书资料的日常管理,提高工作效率和服务质量。提高工作效率和服务质量。该系统可让用户在网络上查询与浏览电子资该系统可让用户在网络上查询与浏览电子资 料,改变原有的借阅模式。料,改变原有的借阅模式。由于版权的限制,某些电子资料只能浏览由于版权的限制,某些电子资料只能浏览/打打 印,但不能下载。印,但不能下载。4.3.2 4.3.2 用户需求用户需求(User Requirements)(User Requirements)用户需求:从用户角度描述系统功能需求与非用户需求:从用户角度描述系统功能需求与非 功能需求,通常只涉及系统的外部功能需求,通常只涉及系统的外部 行为而不涉及内部特性。行为而不涉及内部特性。例例 用户可以通过用户可以通过InternetInternet随时查询图书信息和个随时查询图书信息和个 人借阅情况,并可以快速查找和浏览需要的电人借阅情况,并可以快速查找和浏览需要的电 子资料;子资料;功能需求功能需求 用户通过用户通过InternetInternet查询图书信息;查询图书信息;功能需求功能需求 用户通过用户通过InternetInternet浏览个人借阅情况;浏览个人借阅情况;功能需求功能需求 用户通过用户通过InternetInternet查找和浏览电子资料查找和浏览电子资料 非功能需求非功能需求 随时、快速。随时、快速。业务需求与用户需求的对比实例业务需求与用户需求的对比实例 Course Registration SystemCourse Registration System#业务需求业务需求由于实行学分制管理,学校领导希望用计算机管由于实行学分制管理,学校领导希望用计算机管理学生选课。理学生选课。课程信息维护、选课管理、课程成绩登记和查询课程信息维护、选课管理、课程成绩登记和查询等业务全部由手工方式改为计算机应用。等业务全部由手工方式改为计算机应用。#用户需求用户需求教务管理员希望能够增加、修改和删除学校的课教务管理员希望能够增加、修改和删除学校的课程目录,并且设置各学期课程的开设信息。程目录,并且设置各学期课程的开设信息。学生希望能够在学期开始之前查询所有开设课程学生希望能够在学期开始之前查询所有开设课程的详细信息,并能够通过校园网进行选课。的详细信息,并能够通过校园网进行选课。学生希望在选课期间系统能够学生希望在选课期间系统能够2424小时使用,系统小时使用,系统使用方便快捷。使用方便快捷。4.3.3 4.3.3 系统需求系统需求(System Requirement)(System Requirement)系统需求是对用户需求的扩展,添加了许多细系统需求是对用户需求的扩展,添加了许多细 节内容,解释如何让系统来满足用户需求;节内容,解释如何让系统来满足用户需求;“系统需求系统需求”将作为软件设计的起点,从需求阶将作为软件设计的起点,从需求阶 段过渡到设计阶段;段过渡到设计阶段;系统需求通常采用图形化的模型形式加以刻画。系统需求通常采用图形化的模型形式加以刻画。例如:例如:描述功能的输入输出信息;描述功能的输入输出信息;描述功能的前置条件和后置条件;描述功能的前置条件和后置条件;数据存储的要求。数据存储的要求。4.3.4 4.3.4 功能需求功能需求(Functional Requirements,FR)(Functional Requirements,FR)功能需求:系统应该提供的功能或服务,通常涉功能需求:系统应该提供的功能或服务,通常涉 及用户或外部系统与该系统之间的交及用户或外部系统与该系统之间的交 互,不考虑系统内部的实现细节。互,不考虑系统内部的实现细节。又又如如:系统应对所有已销售的应纳税商品系统应对所有已销售的应纳税商品计算销售税。计算销售税。系统应提供一种方法,使系统用户可根据本地利率系统应提供一种方法,使系统用户可根据本地利率 调整销售税比例调整销售税比例。系统应能够系统应能够产生月销售报表产生月销售报表。如如:#:#用户可从图书资料库中查询或者选择其中一个子集;用户可从图书资料库中查询或者选择其中一个子集;#系统可提供适当的浏览器供用户阅读馆藏文献;系统可提供适当的浏览器供用户阅读馆藏文献;#用户每次借阅图书应对应一个唯一的标识号,它被用户每次借阅图书应对应一个唯一的标识号,它被 记录到用户的账户上。记录到用户的账户上。2828 一般来说一般来说,功能需求是整个需求的主体功能需求是整个需求的主体,几乎几乎构成了由交谈和小组讨论所得到的所有构成了由交谈和小组讨论所得到的所有初始需求初始需求。在编写需求规格书时,关于功能需求应考虑在编写需求规格书时,关于功能需求应考虑以下问题:以下问题:功能源。功能源。功能共享的数据功能共享的数据 功能与外部界面的交互功能与外部界面的交互 功能所使用的计算资源功能所使用的计算资源2929 4.3.5 4.3.5 性能需求性能需求(Performance requirement):(Performance requirement):一个系统或系统构件必须具有的性能特性。一个系统或系统构件必须具有的性能特性。例如:例如:#系统应该在系统应该在5 5分钟内计算出给定季度的总销售税。分钟内计算出给定季度的总销售税。#系统应该在系统应该在1 1分钟内从分钟内从1000010000条记录中检索出一个销条记录中检索出一个销 售定单。售定单。#该应用必须支持该应用必须支持100100个个Windows 95/NTWindows 95/NT工作站的并行工作站的并行 访问访问。注意注意:性能需求隐含了一些满足功能需求的设计方案,性能需求隐含了一些满足功能需求的设计方案,经常对设计产生一些经常对设计产生一些关键关键的影响。的影响。例如:排序,例如:排序,考虑考虑时间的时间的要求要求将确定哪种算法是将确定哪种算法是 可行的。可行的。XXXXXX星务管理软件的功能:星务管理软件的功能:1.星上信息的收集、存储和转发功能星上信息的收集、存储和转发功能(1)收集系统状态信息、姿态信息和电源分系统、通信收集系统状态信息、姿态信息和电源分系统、通信 分系统、分系统、GPSGPS分系统、有效载荷分系统的遥测信息。分系统、有效载荷分系统的遥测信息。(2)按一定按一定时间间隔时间间隔将这些信息保存到固态盘中。将这些信息保存到固态盘中。(3)过地面站时将保存的信息传送给地面。过地面站时将保存的信息传送给地面。2.遥控命令的分发和执行功能遥控命令的分发和执行功能(1)在卫星过地面站时从通信控制器接收地面遥控命令。在卫星过地面站时从通信控制器接收地面遥控命令。(2)执行其中发给星务系统、姿态系统的遥控命令。执行其中发给星务系统、姿态系统的遥控命令。(3)对于发给电源分系统、通信分系统、对于发给电源分系统、通信分系统、GPSGPS分系统、有分系统、有 效载荷分系统的遥控命令则在尽可能短的时间内通过效载荷分系统的遥控命令则在尽可能短的时间内通过 星上总线可靠地分发给各分系统。星上总线可靠地分发给各分系统。3.卫星姿态的测量和控制功能卫星姿态的测量和控制功能(1)采集陀螺、太阳敏感器、星敏感器、磁强计、采集陀螺、太阳敏感器、星敏感器、磁强计、GPS 等姿态测量部件数据。等姿态测量部件数据。(2)对数据进行转换。对数据进行转换。(3)调用姿态控制算法进行姿控计算。调用姿态控制算法进行姿控计算。(4)用姿控计算结果控制磁力矩器、飞轮等姿控执行部件。用姿控计算结果控制磁力矩器、飞轮等姿控执行部件。4.系统故障的检测和处理功能系统故障的检测和处理功能5.飞行任务管理功能飞行任务管理功能(1)过地面站时接收飞行任务表。过地面站时接收飞行任务表。(2)按飞行任务表要求执行飞行任务。按飞行任务表要求执行飞行任务。(3)保存飞行任务执行结果。保存飞行任务执行结果。6.星上资源管理功能星上资源管理功能(1)固态盘存储空间的组织与使用。固态盘存储空间的组织与使用。(2)EEPROM(可擦除的只读存储器可擦除的只读存储器)的使用和更新。的使用和更新。硬件环境硬件环境设计约束设计约束XXX软件必须满足以下设计约束:软件必须满足以下设计约束:1.软件研制必须严格遵循软件工程化要求,加强对软件软件研制必须严格遵循软件工程化要求,加强对软件的管理;的管理;2.采用结构化方法进行软件需求分析和设计实现;采用结构化方法进行软件需求分析和设计实现;3.软件开发过程中必须以文档为依据,文档必须按规定软件开发过程中必须以文档为依据,文档必须按规定通过评审后才能生效;通过评审后才能生效;4.软件设计中采用防错设计和容错设计;软件设计中采用防错设计和容错设计;5.周期不超过周期不超过500ms;4.3.6 4.3.6 非功能需求非功能需求(Non-Functional Requirements,(Non-Functional Requirements,NFR)NFR)从各个角度对系统进行约束和限制,反映了从各个角度对系统进行约束和限制,反映了 客户对软件系统质量和特性的额外要求。客户对软件系统质量和特性的额外要求。如数据精度、可靠性等。如数据精度、可靠性等。例例#系统应该每周系统应该每周7 7天、每天天、每天2424小时都可使用;小时都可使用;#对一个没有经验的用户而言,经过对一个没有经验的用户而言,经过2 2小时培小时培 训即可使用系统的所有功能。训即可使用系统的所有功能。3434n 正确性正确性(correctness):(correctness):一个程序满足需求规约和实现客户任务一个程序满足需求规约和实现客户任务 目标程度目标程度(每每KLOCKLOC行代码缺陷数行代码缺陷数).).n有效性有效性(availability)(availability)在预定的启动时间中在预定的启动时间中,系统真正可用并系统真正可用并且且 完全运行时间所占的百分比。完全运行时间所占的百分比。有效性有效性=系统的平均故障时间系统的平均故障时间(MTTF)/(MTTF)/(平均故障时间平均故障时间+故障修复时间故障修复时间)功能需求功能需求 性能需求性能需求n 灵活性灵活性(flexibility)(flexibility)在产品增加新功能时或修改一个程序在产品增加新功能时或修改一个程序 时时,所需工作量的大小所需工作量的大小.3535n 高效性高效性(efficiency)(efficiency)即效率即效率 一个程序完成其功能所需的资源和代码数量。一个程序完成其功能所需的资源和代码数量。注意注意:在预计的高峰负载条件下在预计的高峰负载条件下,必须留出必须留出10%10%处理器能力和处理器能力和15%15%系统可用内存系统可用内存,以备用以备用 在定义性能、能力、效率目标时在定义性能、能力、效率目标时,考虑硬考虑硬 件的最小配置件的最小配置.n完整性完整性(integrity)(integrity)或安全性或安全性 对未授权人员访问软件的可控制程度。对未授权人员访问软件的可控制程度。(McCall)(McCall)完整性完整性=1-威胁威胁(1-安全性安全性)完整性设计考虑完整性设计考虑:身分验证、访问约束、身分验证、访问约束、用户特权级别、保护数据。用户特权级别、保护数据。3636n 互操作性互操作性(interoperability):产品与其系统交换数据和服务的难易程度。产品与其系统交换数据和服务的难易程度。n可靠性可靠性(reliability)是软件无故障执行一段时间的概率。是软件无故障执行一段时间的概率。衡量可靠性方法:衡量可靠性方法:正确执行操作所占的比例;正确执行操作所占的比例;平均故障间隔时间;平均故障间隔时间;平均故障修复时间;平均故障修复时间;准确性;准确性;最大错误或缺陷率;最大错误或缺陷率;3737n 健壮性健壮性(robustness)软件可以从发生问题的环境中完好地软件可以从发生问题的环境中完好地 恢复并且可容忍用户的错误恢复并且可容忍用户的错误.n可用性可用性(usability)描述组成用户友好的因素描述组成用户友好的因素.n可维护性可维护性(maintainability)在软件中纠正一个缺陷或做一次更改在软件中纠正一个缺陷或做一次更改的简的简 易程度易程度.根据修复根据修复(fix)一个问题所花的平一个问题所花的平均时间均时间 和修复正确的百分比来衡量可维护性。和修复正确的百分比来衡量可维护性。3838n 可移植性可移植性(portability):把软件从一种运行环境转移到另一把软件从一种运行环境转移到另一种种 运行环境所花费的工作量。运行环境所花费的工作量。n可重用性可重用性(reusability):一个软件组件被重复使用的程度。一个软件组件被重复使用的程度。n可测试性可测试性(testability):测试软件组件或集成产品时,查找缺测试软件组件或集成产品时,查找缺陷陷 的简易程度。的简易程度。非功能需求的度量非功能需求的度量NFRNFR:检验起来非常困难,一般采用一些可度量:检验起来非常困难,一般采用一些可度量 的特性进行描述。的特性进行描述。例如:例如:#即使对一个没有经验的用户,系统也应该很即使对一个没有经验的用户,系统也应该很 容易使用,且使用户错误降到最少容易使用,且使用户错误降到最少。修改为:修改为:#对一个没有经验的用户来说,经过对一个没有经验的用户来说,经过2 2个小时的个小时的 培训就应该使用系统的全部功能。在这样的培训就应该使用系统的全部功能。在这样的 培训之后,一个有经验的用户每天的出错平培训之后,一个有经验的用户每天的出错平 均数不应超过均数不应超过2 2次。次。非功能特性非功能特性度量指标度量指标速度速度每秒处理的事务每秒处理的事务用户的响应时间用户的响应时间屏幕的刷新速度屏幕的刷新速度存储空间存储空间字节数字节数RAMRAM芯片数芯片数可用性可用性培训时间培训时间帮助页面数帮助页面数可靠性可靠性平均失败时间平均失败时间系统无效的概率系统无效的概率失败发生率失败发生率容错性容错性失败后的重启次数失败后的重启次数事件引起失败的比例事件引起失败的比例失败时数据崩溃的可能性失败时数据崩溃的可能性表表4-14-1性能和非功能特性性能和非功能特性度量指标度量指标4.3.7 4.3.7 外部接口需求外部接口需求 (External Interface Requirement)(External Interface Requirement)描述系统与其所处的环境之间如何进行交互描述系统与其所处的环境之间如何进行交互,包括:包括:#与其他系统需求与其他系统需求#用户接口需求用户接口需求(UI)(UI)#硬件接口需求硬件接口需求#软件接口需求软件接口需求#通信接口需求通信接口需求4242#账户接收系统账户接收系统必须为必须为月财务状况系统月财务状况系统提供更新提供更新 信息,在信息,在“财务系统描述财务系统描述”第第x x修订版中所描述的。修订版中所描述的。#引擎控制系统引擎控制系统必须正确处理从必须正确处理从飞行控制系统飞行控制系统接接 收来的命令,符合接口控制文档收来的命令,符合接口控制文档B2-10A4B2-10A4,修订,修订 版版C C的的1 1到到8 8段的规定。段的规定。功能、性能、非功能需求功能、性能、非功能需求例如:例如:#从从 读取信号读取信号#给给 发送消息发送消息#以以 读取文件读取文件#能控制能控制#采用采用 用户界面用户界面4343接口需求可分为以下几类:接口需求可分为以下几类:系统接口系统接口(System interfaces)(System interfaces):例如,描述一个例如,描述一个应用应用如何与系统的如何与系统的其他应其他应 用用进行交互。这一描述通常在文档或系统接口进行交互。这一描述通常在文档或系统接口 需求文档中给出。需求文档中给出。用户接口用户接口(User interfaces)(User interfaces)规约了规约了软件产品和用户软件产品和用户之间接口的逻辑特之间接口的逻辑特 性。即规约对给用户所显示的数据,对用户性。即规约对给用户所显示的数据,对用户 所要求的数据以及用户如何控制该用户接口。所要求的数据以及用户如何控制该用户接口。4444硬件接口硬件接口(Hardware interfaces)(Hardware interfaces):如果如果软件系统软件系统必须必须与硬件设备与硬件设备进行交互进行交互,那么就应该说明所要求的支持和协议类型那么就应该说明所要求的支持和协议类型.如如 果必要的话,应该开发或引用一个文档。果必要的话,应该开发或引用一个文档。软件接口软件接口(Software interfaces)(Software interfaces):允许与允许与其它软件产品其它软件产品进行交互进行交互,如如,数据数据 管理系统、操作系统或数学软件包。管理系统、操作系统或数学软件包。4545通讯接口通讯接口(Communications interfaces):(Communications interfaces):规约待规约待开发系统与通讯设施开发系统与通讯设施(如,局域网如,局域网)之间的交互。如果通讯需求包含了系统必须使之间的交互。如果通讯需求包含了系统必须使 用的网络类型(用的网络类型(TCP/IPTCP/IP,WindowsNT,NovellWindowsNT,Novell),),那么有关类型的信息就应包含在需求规格说明那么有关类型的信息就应包含在需求规格说明 书中。书中。地点需求地点需求(Site adaptation requirements)(Site adaptation requirements):描述系统安装以及如何调整一个地点,以描述系统安装以及如何调整一个地点,以适应新的系统。适应新的系统。4646操作操作(Operation)(Operation):规约用户如何使系统进入正常和异常的运行规约用户如何使系统进入正常和异常的运行 以及在系统正常和异常运行下如何与系统进行以及在系统正常和异常运行下如何与系统进行 交互。交互。应该描述在用户组织中的应该描述在用户组织中的操作模式,包括操作模式,包括 :#交互模式和非交互模式;交互模式和非交互模式;#描述每一模式的数据处理支持功能;描述每一模式的数据处理支持功能;#描述有关系统备份、恢复和升级功能描述有关系统备份、恢复和升级功能 方面的需求。方面的需求。4.3.8 4.3.8 约束需求约束需求 (Constraints)(Constraints)系统设计和实现时必须满足的限制条件,系统设计和实现时必须满足的限制条件,对其进行权衡或调整是相当困难的。对其进行权衡或调整是相当困难的。例如:例如:系统必须用系统必须用C+C+或其他面向对象语言编写;或其他面向对象语言编写;系统用户接口需要菜单;系统用户接口需要菜单;任取任取1010秒,一个特定应用所消耗的可用计秒,一个特定应用所消耗的可用计 算能力平均不超过算能力平均不超过50%50%;#系统开发过程和交付文档需遵循系统开发过程和交付文档需遵循 GB/T 8567-2006 GB/T 8567-2006标准;标准;来源:法规政策、硬件来源:法规政策、硬件/资源限制、开发语言、资源限制、开发语言、等等。等等。4848u 设计约束限制了系统或系统构件的设计方案。设计约束限制了系统或系统构件的设计方案。u 就约束的本身而言,对其进行权衡或调整是相就约束的本身而言,对其进行权衡或调整是相 当困难的,甚至是不可能的。必须予以满足。当困难的,甚至是不可能的。必须予以满足。u 规划设计约束充分估计对软件项目所需要的附规划设计约束充分估计对软件项目所需要的附 加成本和工作产生直接影响。加成本和工作产生直接影响。功能、性能、非功能需求功能、性能、非功能需求4949 针对产品开发,为确定其相关的设计约束,针对产品开发,为确定其相关的设计约束,一般需要考虑以下几个方面:一般需要考虑以下几个方面:法规政策法规政策(Regulatory policies)(Regulatory policies);硬件限制硬件限制(Hardware limitations)(Hardware limitations),例如:,例如:处理速度、信号定序需求、存储容量、处理速度、信号定序需求、存储容量、通讯速度以及可用性等;通讯速度以及可用性等;与其它应用接口与其它应用接口 (Interfaces to other applications)(Interfaces to other applications)如,当外部系统处于一个特定状态时,如,当外部系统处于一个特定状态时,禁止新系统某些操作;禁止新系统某些操作;5050并发操作并发操作(Parallel operations)(Parallel operations)例如,可能要求从例如,可能要求从/自一些不同的源,并自一些不同的源,并 发地产生或接收数据。对此,必须清晰地给出发地产生或接收数据。对此,必须清晰地给出 有关时间的描述有关时间的描述 控制功能控制功能(Control functions)(Control functions):可以对系统的管理能力进行远程控制、可可以对系统的管理能力进行远程控制、可 以对其他外部软件以及内部过程进行控制。以对其他外部软件以及内部过程进行控制。5151 审计功能审计功能(Audit functions)(Audit functions)规约软件系统必须满足的数据记录准则规约软件系统必须满足的数据记录准则 或事务记录准则。或事务记录准则。如,用户察看或修改数据,就可能要求如,用户察看或修改数据,就可能要求 该系统为了以后复审,记录该系统的动作。该系统为了以后复审,记录该系统的动作。握手协议握手协议(Signal handshake protocols)(Signal handshake protocols):通常用于硬件和通讯控制软件,特别当给出通常用于硬件和通讯控制软件,特别当给出 特定的时间约束时,一般就要把特定的时间约束时,一般就要把“握手协议握手协议”作为作为 一项约束。一项约束。5252高级语言需求高级语言需求 (Higher order language requirements)(Higher order language requirements):安全考虑安全考虑 (Safety and security considerations)(Safety and security considerations)。内存约束内存约束(Memory constraints)(Memory constraints):描述易失性存储和永久性存储的特性和限制,描述易失性存储和永久性存储的特性和限制,特别应描述它们是否被用于与一个系统中其它处特别应描述它们是否被用于与一个系统中其它处 理的通讯。理的通讯。例:拼写检查器例:拼写检查器业务需求业务需求:用户能有效地纠正文档中的拼写错误。用户能有效地纠正文档中的拼写错误。用户需求:用户需求:找出文档中的拼写错误并通过一个提供找出文档中的拼写错误并通过一个提供 的替换项列表来供选择替换拼错的词。的替换项列表来供选择替换拼错的词。功能性需求:功能性需求:#找到并高亮度提示错词的操作。找到并高亮度提示错词的