【文档说明】软件工程课件第二章软件需求.ppt,共(64)页,1.263 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45038.html
以下为本文档部分文字说明:
软件需求工程SoftwareRequirementsEngineering2第二章软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到20世纪80年代中期,逐步形成了软件工程的子领域——需求工程。90年代后,需求工程成
为软件界研究的重点之一。从1993年起,每两年举办一次需求工程国际研讨会(ISRE),1994年起,每两年举办一次需求工程国际会议(ICRE)。一些关于需求工程的工作小组相继成立,使需求工程的研究得到了迅速进展。2.1软件需求工程的基本概念对系统应该提供的服务和所受到的约束进行理解、分析
、建立文档、检验的过程——需求工程1.什么是软件需求工程?2.软件需求工程的任务是什么?3.需求工程过程4.软件需求分析方法软件需求的重要性软件需求无疑是当前软件工程中的关键问题,没有需求就没有软件。美国于1995年开始对全国范围内的8000个软件项目
进行跟踪调查。完成并实施完成未实施未完成分析失败的原因发现,与需求过程相关的原因占了45%,而其中缺乏最终用户的参与以及不完整的需求又是两大首要原因,各占13%和12%。未完成完成未实施完成软件需求的困难软件需求是软件工程中最复杂的过程之一:1.应用领域的广泛性,它
的实施无疑与各个应用行业的特征密切相关。2.非功能性需求建模技术的缺乏及其与功能性需求有着错综复杂的联系,大大增加了需求工程的复杂性。3.沟通上的困难,由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。软件需求用户需求系统需求
功能需求非功能需求领域需求由客户管理员、用户等提出软件需求的内容一、软件需求内容功能需求它是对系统应该提供的服务、功能以及系统在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述系统的功能、输入/输出、异常等,有时还需要申明系统不应该做什么。领域
需求是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。非功能需求产品需求机构需求外部需求互操作需求道德需求立法需求性能需求空间需求交付需求实现需求标准需求隐私需求安全性需求可用性需求效率需
求可靠性需求可移植性需求传统需求分析在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:●定义软件的范围及必须满足的约束;●确定软件的功能和性能及与其他系统成分的接口;●建立数据模型、功能模型和行为模型;●最终提供需求规格说明,并
用于作为评估软件质量的依据。二、需求工程的活动需求工程是系统工程和软件工程的一个交叉分支,涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需
求和软件能力之间的桥梁。需求工程系统目标系统服务软件约束运行环境需求工程的基本活动包括:●获取需求;深入实际,在充分理解用户需求的基础上,获取系统需求。●需求分析与建模;进行需求建模型、对模型或原型进行分析。●确认需求;确保需求说明准确、完整地表达系统的主要特性。●进化需求。客户的需要总是不
断(连续)增长的,进化需求是必要的。一、需求获取(requirementelicitation)是需求工程的主体。●缺乏领域知识,应用领域的问题常常是模糊的、不精确的;●存在默认的知识,如难以描述的常识问题;●存在多个知识源,且多知识源之间可能有冲突;●客户可能的偏见,
如不能提供或不想告知你所需要了解的事情。——非常困难,主要原因有:需求获取技术需求抽取的方法一般有:1.面谈法重要而直接,简单的需求获取技术。2.问卷法调查法是对面谈法的补充。3.需求专题讨论会最有力的需求获取技术。有利于培养高效团队
。4.观察用户的工作流程适用于用户无法准确表达需求的情况。5.原型化方法6.基于用例的方法还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。面谈的对象主要有用户和领域专家:1)面谈前的准备
要充分;2)面谈后注意认真分析总结;3)注意掌握面谈的人际交流技能。需求获取技术需求抽取的方法一般有:1.面谈法重要而直接,简单的需求获取技术。2.问卷法调查法是对面谈法的补充。3.需求专题讨论会最有力的需求获取技术。有利于培养高效团队。4.观察用户的工作
流程适用于用户无法准确表达需求的情况。5.原型化方法6.基于用例的方法是从多个用户中收集需求信息的有效方式,一般问卷设计形式:1)多项选择问题;2)评分问题;3)排序问题。需求获取技术需求抽取的方法一般有:1.面谈法重要而直接,简单的需求
获取技术。2.问卷法调查法是对面谈法的补充。3.需求专题讨论会最有力的需求获取技术。有利于培养高效团队。4.观察用户的工作流程适用于用户无法准确表达需求的情况。5.原型化方法6.基于用例的方法由开发方和用户方共同召开,操作步骤:①开发方根据双方
制定的《需求调研计划》召开相关需求主题沟通会;②会后开发方整理出《需求调研记录》提交给用户方确认;③如果此主题还有未明确的问题则再次沟通,否则开始下一主题;④所有需求都沟通清楚后,开发方根据历次《需求调研记录》整理出《用户需求说明书
》,提交给用户方确认签字。因此系统应该具备以下功能:⑴基本数据维护功能⑵基本业务功能⑶数据库管理功能⑷信息查询功能例1:有一个大学图书管理系统,该系统除了一般的图书管理功能外,还能够为学生和教工从其他图书馆借阅图书和文献资料提供服务。1.功能需求⑴基本数
据维护功能:提供使用者录入,修改并进行维护基本数据的途径。基本数据包括读者的信息、图书资料的相关信息,可以对这些信息进行修改,更新。⑵基本业务功能:读者借、还书籍的登记管理功能,随时根据读者借、还书籍的情况更新数据库系统,如果书籍已经借出,可以进
行预留操作,书籍的编目、入库、更新等操作。⑶数据库管理功能:对所有图书信息及读者信息进行统一管理维护的功能,对书籍的借还也要进行详细的登记,以便协调整个图书馆的运作。⑷信息查询功能:提供对各类信息的查询功能,如对本图书馆的用户借书信息,还书的信息,书籍源信息,预留信息等进行查询,对其他
图书馆的书籍、资料源信息的查询功能。2.非功能需求①系统安全性需求:为保证系统安全性,对本图书馆的各项功能进行分级、分权限操作,对各类用户进行确认。对其它图书馆借阅图书和文献资料服务控制访问范围:如限IP、限用户
等。②对系统可用性的需求:为了方便使用者,要求对所有交互操作提供在线帮助功能。③对系统查询速度的需求:要求系统在20S之内响应查询服务请求。④对系统可靠性的需求:要求系统失败发生率小于1%。3.领域需求例如:对“大学图书管理
系统”,提出一些与图书管理的业务相关的需求:⑴图书编目要求按照《中国图书馆分类法》进行;⑵由于版权限制,某些文献资料只能在图书馆规定的阅览室阅读,并限制复制和打印。第一条需求是对遵循我国图书管理的规定,执行对图书的分类管理的标准。而第二条需求则是版权法对图书馆文献资料的保护的需
要,描述了对一类文献资料有限制的使用和服务。二、需求分析与建模需求分析和模拟又包含三个层次的工作。1、需求分析2、需求建模(分为企业建模、功能需求建模和非功能需求建模等)3、需求规格说明—不同的描述方式。主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人
员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。三、需求的有效性验证(一)需求验证的重要性1.由于需求分析是软件开发的第一阶段,直接影响后面各阶段的开发。2.需求的可变性必须进行验证。(二)需求验证的内容1.有效性检
查—指功能需求是否符合用户所提出的需求。2.一致性检查—系统功能描述及约束是否一致。3.完备性检查—是否包含所有系统用户的需求和约束。4.可检验性检查—是否能设计出一组验证方法。四、需求管理需求管理贯穿
需求分析全过程,包括:需求管理变更控制•建议变更•分析影响•交流•合并•测量需求的稳定性版本控制•定义需求文档版本•确定单个需求文档版本需求跟踪•定义与其他需求的链接•定义与其他系统元素的链接需求状态跟踪•定义需求状态•跟踪所有需求状态四、需求管理需求管理的所有活动中,最重
要的是——―需求变更管理”,包括:问题分析和变更描述变更分析和成本计算变更实现修正后的需求识别出的问题需求管理过程需要CASE(ComputerAidedSoftwareEngineering)工具支持。1.传统的变化管理基本内容包括软件配置、软件基线和变
化审查。2.新的管理方法⑴软件家族法。即软件产品线方法,该方法是源于工业界产品线的概念,关注于一个软件企业如何组织一组具有共性特征的,相似产品的生产,并应用软件复用的相关原理与技术。⑵多视点方法。它可以用于管理不一致性并进行关于变化的推理。是从
多个视点出发在软件工具的协助下对需求描述,进行自动需求建模,从而提高需求模型的完整性。需求变更管理方法需求工程过程可行性研究需求导出和分析需求描述需求有效性验证可行性报告系统模型用户需求和系统需求需求文挡2.2需求分析方法功能分解方法将系统看作若干功能模块的集合,每个功能
又可以分解为子功能,子功能还可继续分解,分解的结果即是系统的雏形。问题1.需要人工完成2.无法对描述的准确度进行验证。3.难以适应需求的变化。问题空间功能子功能映射1.客房预定系统2.前台接待系统3.前台收银系统4.帐务系统5
.管家系统6.电话系统7.客历系统8.合约系统9.经理系统10.总经理系统11.密码管理系统12.报表系统13.帐务报表酒店管理系统例:按照功能分解为以下子系统:盘存/销售系统1.0.0销售处理1.1.0盘存处理1.2.0例:盘存/销售系统,用户提出,系统应具有以下功能:①
计算买主订单②准备销售报表③建立买主文件和应收帐发票④运行更新的盘存文件⑤产生托运单和包装单⑥保证库存及时订货计算销售记录1.1.1产生销售报表1.1.2核对买主贷方金额1.1.3验证库存量级1.2.1产生货运订单1.2.2执行买主汇票1.2.3产生盘存报表1.2.42.2需求分析方法结构化分析
方法是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。顾客出版社验证订单汇总订单订单出版社订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件2.2需求分析方法面向对
象的分析方法面向对象的分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系,并建立起三类模型。信息建模法是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。是由实体、属性和关系组成的网络图。E-实体,是一个或一组对象;R-关系,实
体之间联系或交互作用。注意:信息建模与面向对象分析的区别!2.2.1结构化分析方法分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决(如右图)。一、SA法的基本思想——―分解”和“抽象”。抽象:分解可以分层进行,即先
考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。1.11.21.3x2132.12.22.31.11.3基本思想与步骤三、SA法的描述方法1、分层的数据流图(DFD图)2、数据词典3
、描述加工逻辑的结构化语言、判定表及判定树二、SA法的步骤当前系统具体模型建立当前系统逻辑模型抽象目标系统逻辑模型建立完善的系统逻辑模型改进深入调查研究分析用户需求,用DFD图描述分析系统需求,用DFD
图描述修改完善DFD图,增添功能顾客出版社验证订单汇总订单订单出版社订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使
用的文件。4、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。例一图书预定系统(顶层DFD图)三、数据流图数据流图(DataFlowDiagram,DFD)是描述系统中数据流程的图形工具,它描述了将系统的逻辑输入转
换为逻辑输出所需的加工处理过程。数据存储数据源点或终点加工加工名数据流数据流名文件名实体名箭头圆或椭圆单或双杠矩形框还有一些辅助的图例:一、数据流图的图符基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*与+或互斥+X1321.11.21.4
1.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶层中间层底层先全局后局部,先整体后细节,先抽象后具体.0图1图2图1.1图2.1图2.2图分层DFD图经过初步的
需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病情出现异常情况时报警。4、随机地产生某一病员的病情报告。例2:医院病房监护系统产生病情报告监视病情更新病历2.2.3实例:医院病房监护系统请
分析软件系统需求!1、监视病员的病症♦采集病症信号(血压、体温、脉搏等)。♦组合病症信号。♦将模拟病症信号转换为数字信号(A-D转换)。2、定时更新病历♦将病症信号进行格式化并加入更新日期、时间。♦更新病历库中病人的信息。♦可人工设定更新病历的
时间间隔。3、病情出现异常情况时报警♦根据标准病症信号库中的值,判断是否报警。♦将报警信号转换为各种模拟信号(D-A转换)。♦实时打印病情报告,立即更新病历。4、随机地产生某一病员的病情报告系统功能需求—局部监视—更新日志—产生病情报告
非功能需求1、监视器与网络的可靠性要求,涉及人的生命安全。2、效率需求中对时间、空间的需求,所采集的病症信号数据量大。3、互操作需求—如要求监视器采样频率可人工调整等。4、对病人病历的隐私的要求。病员护士护
士病员监护系统病员日志要求报告病症报告报警顶层医院病房监护系统分层DFD图顶层确定了系统的范围,其外部实体为病员和护士护士病员护士图2.14第一层:病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日
志数据日志数据医院病房监护系统顶层DFD图紧急报告第二层:加工“中央监视”分解医院病房监护系统二层DFD图计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期
时钟格式化病员数据3.13.23.33.4紧急报告计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系
统分层DFD图图2..15第一层格式化病员数据生理信号极限值病员护士护士中央监视病员日志病症报告局部监视生成报告病员极限更新日志病员数据1324日志数据图2..16紧急报告紧急报告加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一个问题分
解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过7个子加工,分解应分解到基本加工为止。四、画分层DFD图的基本原则数据守恒与数据封闭原则数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。数据封闭是对整个系统而言。合理使用文件当文件作
为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同时表达出来。DFD图不是流程图,不表示软件的控制流程。四、画分层DFD图的基本原则子图与父图的“平衡”父图中某个加工的
输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。五、分层DFD图的改进DFD图须经过反复修改,才能获得最终的目标系统的DFD图。从以下方面改进DFD图:1、检查数据流的正确性①
数据守恒②子图、父图的平衡③文件使用是否合理。特别注意输入/出文件的数据流。2、改进DFD图的易理解性①简化加工之间的联系(联系越少,独立性越强,易理解性越好)。②改进分解的均匀性。③适当命名(各成分名称无二义性,准确、具体)分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“
数据词典”和“小说明”对图中的每个数据和加工给出解释。对数据流图中包含的所有元素的定义的集合构成了数据词典。词典中可有以下四种类型的条目:六、数据词典(DD)数据流文件数据项加工A、数据流条目给出某个数据流的定义,通常是列出该数据流的各组成数据项。例如:
报名单=姓名+单位名+年龄+性别+课程名常用符号:=、+、[|]、{}、()、C、数据项条目数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。B、文件条目给出某个文件的定义,同数据流一样,文件的定义通常是列出文件记录的组成数据流例如某销售系统的订
单文件:订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期D.加工条目加工类条目就是“加工小说明”。一般应该单独列出。nm{...}七、加工说明结构化语言判定表判定树对DFD图中每一个基本加工都必须有一个小说明给出g该加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑
、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式:结构化语言是介于自然语言和形式语言之间的一种半形式语言,是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺
序、选择、循环),内层较灵活,表达“做什么”。(一)结构化语言例如:外层可为以下结构:1、顺序结构2、选择结构IF–THEN-ELSE;CASE-OF-ENDCASE;3、循环结构WHILE-DO;REPEAT-U
NTIL判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。条件框条件条目操作框操作条目(二)判定表特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。通常由四部分组成。条件框—条件定义。操作框—操作的定
义。条件条目—各条件的取值及组合。操作条目—在各条件取值组合下所执行的操作。例如:对商店每天的营业额所收税率营业额X(¥)1000≤X<50005000≤X<10000X≥10000税率5%8%10%例:一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的营业
额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。1234>1000元YYYN信誉好YNN->20年-YN-优惠XX正常XX化简后12345678>1000元YYYYNNNN信誉好YYNNYYNN>20年YNYNYNYN优惠XX
X正常XXXXXY-满足条件N-不满足条件X-选中判定的结论判定表应用举例特点:描述一般组合条件较清晰,易理解。不易输入计算机。营业额>1000元≤1000元正常处理好的支付信誉优惠处理坏的支付信誉>20年优惠处理<20年正常处理如上例(三)判定树2.2.2面向对象的分析方法(OOA)案例3网上
拍卖系统随着Internet技术的发展和互联网的日益普及,互联网用户中约1/4的用户使用Internet进行互联网通信或经贸活动。电子商务总额每年可达到6万亿美元。网上拍卖系统就是一个在互联网上模拟拍卖环境的典型的范例。可实现从展示产品、相互竞价到最后产
品成交等一系列功能;用户可以轻松实现在线商品的拍卖和竞标。建立系统的USECASE模型。系统需求一、需求获取采用“基于用例的方法”—识别和获取需求的首选工具。是从外部的角度来看系统功能。用例—表示一个子系统,或者系统一个独立的功能。“外部”—即是“角色
”或者“执行者”。描述方法:用例:角色:连接:用例系统需求1.执行者—用户系统是通过网络提供给商品的销售者和购买者一个交易平台,因此所有上网用户都是本系统的用户,具体又分为商品购买者和商品销售者、系统
管理员。考虑到一般用户既可能是商品购买者也可能是商品销售者,所以将用户分为:非会员用户和会员用户.非会员_未注册的用户,只能在网站上浏览商品,不能参与竞标,也不能提供物品出售。会员_已注册的用户,可以直接参与拍卖或
竞标.系统需求2.用例—分析系统功能⑴提供高效的内容丰富的Web拍卖商业服务;展示产品、相互竞价、产品成交。⑵实现拍卖商品种类的更新和消息的发布。⑶实现个人物品流通和网上信息发布、留言。进一步确定以下功能:1)会员注
册2)会员天地3)商品分类浏览4)查找商品5)拍卖商品6)购买商品7)网上支付系统需求具体可确定以下功能:1)会员注册(填写用户帐号,用户名,密码,Email等)2)会员天地(查看并修改个人信息,交易记录,收邮件,
信用评价等)3)商品分类浏览(浏览、更新、最新商品推荐等)4)查找商品(按关键字查找、输出打印商品信息)5)拍卖商品(提供商品信息:商品名称,类别,图片,起拍价格、新旧程度、使用时间等)6)购买商品(超级搜索查找商品、填写竞价、登记需购商品等)7)网上支付(
通过银行系统进行交易)建立UseCase模型买商品卖商品非功能需求1.时间特性要求系统采用JDBC连接数据库,保证较快的响应时间和更新处理时间,采用JSP,Servlet技术,以满足用户对数据的转换和传送时间要求。2.灵活性和精度需求要求当用户需求,如操作方式,
运行环境,结果精度,数据结构及其他软件接口等发生变化时,增加新模块时,不会修改原有的模块,。非功能需求3.故障处理能力要求当出现错误时,要求以界面形式向用户说明,并用一览表方式说明,各类可能的错误或故障出现
时,系统的处理方法和补救措施。改进UseCase模型买商品卖商品出错处理需求工程小结软件需求工程,是软件开发人员与用户密切配合,充分交换意见,获得对需求一致意见的过程。在开发者一方,参与工作的主要角色是系统分析员和系统工程师等,负责沟通用户和开发人员的认识和见解,起着桥梁作用。需求工程阶段的最
终任务是要完成目标系统的需求规格说明,确定系统的功能、非功能需求和性能,为后阶段的开发打下基础。本阶段常用的有SA法,原型法,OOA法等。软件开发技术课程设计平台http://202.115.21.138/wlxt/ncourse/SE/web/new/default.asp