1、1第三章第三章 软件需求分析软件需求分析2022年12月24日第三章 软件需求分析2【本章引言】p 软件需求分析就是对软件计划期间建立的软件软件需求分析就是对软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,在这一步确定系统必须义阶段中的最后一步,在这一步确定系统必须完成哪些工作,也就是对目标系统提出完整、完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。准确、清晰、具体的要求。p 需求分析的结果是系统开发的基础,关系到工需求
2、分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须采用程的成败和软件产品的质量。因此,必须采用行之有效的方法对软件需求进行严格的审查验行之有效的方法对软件需求进行严格的审查验证。证。2022年12月24日第三章 软件需求分析3主要内容主要内容p 3.1 3.1 需求分析概述需求分析概述 p 3.2 3.2 面向数据流的分析方法面向数据流的分析方法 p 3.3 3.3 需求分析方法与图形工具需求分析方法与图形工具 p 3.4 3.4 实体实体关系图关系图 p 3.5 3.5 需求规格说明与评审需求规格说明与评审 p 3.6 3.6 小结小结 p 3.7 3.7 习题习题 2
3、022年12月24日第三章 软件需求分析4【本章重点【本章重点】p 需求分析的方法需求分析的方法;p 需求分析的任务和原则需求分析的任务和原则;【教学目标【教学目标】p 掌握需求分析的基本概念;掌握需求分析的基本概念;p 掌握如何使用需求获取技术来进行数据采集;掌握如何使用需求获取技术来进行数据采集;p 掌握结构化分析的思想与过程;掌握结构化分析的思想与过程;p 掌握数据流建模技术。掌握数据流建模技术。2022年12月24日第三章 软件需求分析53.1 软件需求分析概述软件需求分析概述 软件需求作为软件生命周期的第一个阶段,软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到其重要性越
4、来越突出,到20世纪世纪80年代中期,逐年代中期,逐步形成了步形成了软件工程的子领域软件工程的子领域需求工程需求工程。90年代后,需求工程成为软件界研究的重点年代后,需求工程成为软件界研究的重点之一。从之一。从1993年起,每两年举办一次需求工程国年起,每两年举办一次需求工程国际研讨会(际研讨会(ISRE),),1994年起,每两年举办一次年起,每两年举办一次需求工程国际会议(需求工程国际会议(ICRE)。一些关于需求工)。一些关于需求工程的工作小组相继成立,使需求工程的研究得到程的工作小组相继成立,使需求工程的研究得到了迅速进展。了迅速进展。2022年12月24日第三章 软件需求分析63.1
5、 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析任务任务 基本任务是准确回答基本任务是准确回答“软件必须做什么?软件必须做什么?”这这个问题个问题。确定软件的功能和性能,确定软件的设计限制及同确定软件的功能和性能,确定软件的设计限制及同其他系统元素的接口,对目标系统提出完整、准确、清其他系统元素的接口,对目标系统提出完整、准确、清晰、具体的要求。晰、具体的要求。2022年12月24日第三章 软件需求分析73.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析重要性重要性 软件需求无疑是当前软件工程中的关键问题,软件需求无疑是当前软件工程中的关键问题,没有需求就没有软
6、件没有需求就没有软件。美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目个软件项目进行跟踪调查。进行跟踪调查。分析失败的原因发现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中各占各占13%和和12%。2022年12月24日第三章 软件需求分析83.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析困难困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的过程之一:应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应用,它的实施无疑与各个应用行业的特征密切相关。行业的特征密切相关。非功能性需
7、求建模技术的缺乏非功能性需求建模技术的缺乏,及其与功能性及其与功能性需求有着错综复杂的联系,大大增加了需求工需求有着错综复杂的联系,大大增加了需求工程的复杂性。程的复杂性。沟通上的困难沟通上的困难,由于系统分析员、需求分析员由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背等各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。景,给需求工程的实施增加了人为的难度。2022年12月24日第三章 软件需求分析93.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析软件需求任务软件需求任务软软 件需件需 求求用用 户需户需 求求系系 统需统需 求
8、求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出2022年12月24日第三章 软件需求分析103.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析功能和领域需求功能和领域需求功能需求功能需求 它是对系统应该提供的服务、功能以及系统它是对系统应该提供的服务、功能以及系统在特定条件下的行为的描述。它与软件系统的类在特定条件下的行为的描述。它与软件系统的类型、使用系统的用户等相关,有时需要详细描述型、使用系统的用户等相关,有时需要详细描述系统的功能、输入系统的功能、输入/输出、异常等,有时还需要输出、异常等,有时还需要申明系统不应
9、该做什么。申明系统不应该做什么。领域需求领域需求 是由软件系统的应用领域所决定的特有的功是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束。能需求,或是对功能的约束。2022年12月24日第三章 软件需求分析113.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析非功能需求非功能需求非功能需求非功能需求产品需求产品需求机构需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全安全性需求性需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求
10、需求可移植可移植性需求性需求2022年12月24日第三章 软件需求分析123.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析传统需求分析传统需求分析 在传统软件工程生命周期中,涉及需求的阶段在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:称作需求分析。一般来说,需求分析的作用是:定义软件的范围及必须满足的约束;定义软件的范围及必须满足的约束;确定软件的功能和性能及与其他系统成分的接确定软件的功能和性能及与其他系统成分的接 口口;建立数据模型、功能模型和行为模型;建立数据模型、功能模型和行为模型;最终提供需求规格说明,并用于作为评估软件最终提供
11、需求规格说明,并用于作为评估软件 质量的依据。质量的依据。2022年12月24日第三章 软件需求分析133.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求工程的活动需求工程的活动 需求分析涉及到软件系统的目标、软件系统提供的需求分析涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。它也提供现实需求和软件能力之间的桥梁。需求分析需求分析系统目标系统目标
12、系统服务系统服务软件约束软件约束运行环境运行环境2022年12月24日第三章 软件需求分析143.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求分析的活动需求分析的活动 获取需求;获取需求;深入实际,在充分理解用户需求的深入实际,在充分理解用户需求的基础上,获取系统需求。基础上,获取系统需求。需求需求分析与建模;分析与建模;进行需求建模、对模型或原进行需求建模、对模型或原型进行分析。型进行分析。确认需求;确认需求;确保需求说明准确、完整地表达系确保需求说明准确、完整地表达系统的主要特性。统的主要特性。进化需求进化需求。客户的需要总是不断(连续)增长客户的需要总是不断(连续
13、)增长的的 ,进化需求是必要的。,进化需求是必要的。2022年12月24日第三章 软件需求分析153.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求分析的活动需求分析的活动 缺乏领域知识缺乏领域知识,应用领域的问题常常是模糊的、不精确的;应用领域的问题常常是模糊的、不精确的;存在默认的知识存在默认的知识,如难以描述的常识问题;如难以描述的常识问题;存在多个知识源存在多个知识源,且多知识源之间可能有冲突;且多知识源之间可能有冲突;客户可能的偏见客户可能的偏见,如不能提供,如不能提供或不想告知或不想告知你所需要了解的你所需要了解的事情。事情。2022年12月24日第三章 软件
14、需求分析163.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求获取方法需求获取方法 需求抽取的方法一般有:需求抽取的方法一般有:l面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。l问卷调查法问卷调查法 是对面谈法的补充。是对面谈法的补充。l需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养培养高效团队。高效团队。l观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达需求的情适用于用户无法准确表达需求的情况。况。l原型化方法原型化方法l基于用例的方法基于用例的方法 还有知识工程方法等如:场记分
15、析法、卡片分类法、分还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。类表格技术和基于模型的知识获取等。2022年12月24日第三章 软件需求分析172022年12月24日第三章 软件需求分析182022年12月24日第三章 软件需求分析192022年12月24日第三章 软件需求分析202022年12月24日第三章 软件需求分析212022年12月24日第三章 软件需求分析223.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求分析与建模需求分析与建模 需求分析和建模又包含三个层次的工作。需求分析和建模又包含三个层次的工作。1)1)需求分析需
16、求分析 2)2)需求建模(分为企业需求建模(分为企业建模建模、功能需求、功能需求建模建模和非功能需求和非功能需求建模建模等)等)3)3)需求规格说明需求规格说明不同的描述方式。不同的描述方式。主要对收集到的需求进行提炼、分析和认真审查,确主要对收集到的需求进行提炼、分析和认真审查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。建立完整的分析模型。2022年12月24日第三章 软件需求分析233.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求分析常用技术需求分析常用技术2022年12月24日第三章
17、软件需求分析243.1 软件需求分析概述软件需求分析概述1.软件需求分析软件需求分析需求的有效性验证需求的有效性验证 )由于需求是软件开发的第一阶段,直接影响后由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。面各阶段的开发。)需求的可变性必须进行验证。需求的可变性必须进行验证。2022年12月24日第三章 软件需求分析253.1 软件需求分析概述软件需求分析概述1.软件需求工程软件需求工程需求的有效性验证需求的有效性验证 指功能需求是否符合用户所提出指功能需求是否符合用户所提出的需求。的需求。系统功能描述及约束是否一致。系统功能描述及约束是否一致。是否包含所有系统用户的需求和是否包含所
18、有系统用户的需求和约束。约束。是否能设计出一组验证方法,是否能设计出一组验证方法,确定了检验的标准。确定了检验的标准。2022年12月24日第三章 软件需求分析263.1 软件需求分析概述软件需求分析概述1.软件需求工程软件需求工程需求管理需求管理 需求管理贯穿需求分析全过程,包括需求管理贯穿需求分析全过程,包括:需求管理需求管理变更控制 建议变更建议变更 分析影响分析影响 交流交流 合并合并 测量需求的稳测量需求的稳定性定性版本控制 定义需求文档定义需求文档版本版本 确定单个需求确定单个需求文档版本文档版本需求跟踪需求跟踪 定义与其他需定义与其他需求的链接求的链接 定义与其他系定义与其他系统
19、元素的链接统元素的链接需求状态跟踪需求状态跟踪 定义需求状态定义需求状态 跟踪所有需求跟踪所有需求状态状态2022年12月24日第三章 软件需求分析273.1 软件需求分析概述软件需求分析概述1.软件需求工程软件需求工程需求变更管理需求变更管理 需求管理的所有活动中,最重要的是需求管理的所有活动中,最重要的是“需求变更管理需求变更管理”,包括包括:问题分析和变问题分析和变更描述更描述变更分析和成变更分析和成本计算本计算变更实现变更实现修正后的修正后的需求需求识别出的识别出的问题问题 需求管理过程需要需求管理过程需要CASE(Computer Aided Software Engineering
20、)工具支持。工具支持。2022年12月24日第三章 软件需求分析283.2 软件需求分析方法软件需求分析方法 将系统看作若干功能模块的集合,每个功能又可将系统看作若干功能模块的集合,每个功能又可以分解为子功能以分解为子功能,子功能还可继续分解子功能还可继续分解,分解的结果即分解的结果即是系统的雏形。是系统的雏形。存在问题存在问题1.1.需要人工完成需要人工完成2.2.无法对描述的准确度进行验证。无法对描述的准确度进行验证。3.3.难以适应需求的变化。难以适应需求的变化。问题空间问题空间功能功能子功能子功能映射映射2022年12月24日第三章 软件需求分析291客房预定系统客房预定系统 2前台接
21、待系统前台接待系统 3前台收银系统前台收银系统 4账务系统账务系统 5管家系统管家系统 6电话系统电话系统 7客房系统客房系统 8合约系统合约系统 9经理系统经理系统 10总经理系统总经理系统 11密码管理系统密码管理系统 12报表系统报表系统 13账务报表账务报表2022年12月24日第三章 软件需求分析30盘存盘存/销售系统销售系统 1.0.01.0.0销售处理销售处理 1.1.01.1.0盘存处理盘存处理 1.2.01.2.0例:例:盘存盘存/销售系统,用户提出系统应有以下功能销售系统,用户提出系统应有以下功能:计算买主订单计算买主订单 准备销售报表准备销售报表 建立买主文件和应收账发票
22、建立买主文件和应收账发票 运行更新的盘存文件运行更新的盘存文件 产生托运单和包装单产生托运单和包装单 保证库存及时订货保证库存及时订货计算销售计算销售记录记录 1.1.1产生销售产生销售报表报表 1.1.2核对买主核对买主贷方金额贷方金额 1.1.3验证库存验证库存量级量级 1.2.1产生货运产生货运订单订单 1.2.2执行买主执行买主汇票汇票 1.2.3产生盘存产生盘存报表报表 1.2.42022年12月24日第三章 软件需求分析313.2 软件需求分析方法软件需求分析方法 是一种以数据、数据的封闭性为基础,从问题是一种以数据、数据的封闭性为基础,从问题空空间到某种表示的映射方法间到某种表示
23、的映射方法,由数据流图由数据流图(DFDDFD图图)表示表示。顾客出版社验证验证订单订单汇总汇总订单订单订单出版社 订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件2022年12月24日第三章 软件需求分析323.2 软件需求分析方法软件需求分析方法面向对象的分析方法面向对象的分析方法 面向对象分析方法面向对象分析方法(OOA)的关键是识别问题域内的关键是识别问题域内的对象的对象,分析它们之间的关系分析它们之间的关系,并建立起三类模型。并建立起三类模型。信息建模法信息建模法 是从数据的角度对现实世界建立
24、系统的信息模型是从数据的角度对现实世界建立系统的信息模型,基本工具是基本工具是ERER图。是由实体、属性和关系组成的网图。是由实体、属性和关系组成的网络图。络图。E-E-实体,是一个或一组对象;实体,是一个或一组对象;R-R-关系,关系,实体之间联系或交互作用。实体之间联系或交互作用。注意:信息建模与面向对象分析的区别!注意:信息建模与面向对象分析的区别!2022年12月24日第三章 软件需求分析333.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法分解:分解:对于一个复杂的系统,为对于一个复杂的系统,为了将复杂性降低到可以掌握的程了将复杂性降低到可以掌握的程度,可以把大
25、问题分解成若干小度,可以把大问题分解成若干小问题,然后分别解决(如右图)。问题,然后分别解决(如右图)。SASA法的基本思想法的基本思想“分解分解”和和“抽象抽象”。抽象:抽象:分解可以分层进行,即先考虑问题最本质的属性,暂分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是这种用最本质的属性表示一个系统的方法就是“抽象抽象”。1.11.21.3x2132.12.22.31.11.32022年12月24日第三章 软件需求分析343.2 软件需求分析方法
26、软件需求分析方法1.结构化分析方法结构化分析方法1 1、分层的数据流图、分层的数据流图(DFD(DFD图图)2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树当前系统当前系统具体模型具体模型建立建立当前系统当前系统逻辑模型逻辑模型抽象抽象目标系统目标系统逻辑模型逻辑模型建立建立完善的系统完善的系统逻辑模型逻辑模型改进改进深入调查深入调查研究研究分析用户需求分析用户需求,用用DFD图描述图描述分析系统需求分析系统需求,用用DFD图描述图描述修改完善修改完善DFD图图,增添功能增添功能2022年12月24日第三章 软件需求分析353
27、.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法图书预订系统图书预订系统顾客顾客出版社出版社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件画图步骤画图步骤 :1 1、确定外部实体及输入、输出数据流。、确定外部实体及输入、输出数据流。2 2、确定分解顶层的加工。、确定分解顶层的加工。3 3、确定使用的文件。、确定使用的文件。4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封
28、闭。2022年12月24日第三章 软件需求分析363.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法数据流图数据流图数据流图(数据流图(Data Flow Diagram,DFD)是描述系统中数)是描述系统中数据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出所需的加工处理过程。出所需的加工处理过程。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框一、数据流图的图符一、数据流图的图符基本图形
29、符号:基本图形符号:2022年12月24日第三章 软件需求分析373.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法数据流图数据流图还有一些辅助的图例还有一些辅助的图例:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*与与+或或互斥+2022年12月24日第三章 软件需求分析38X1321.11.21.41.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图分层分层D
30、FD 图图2022年12月24日第三章 软件需求分析391.结构化分析方法结构化分析方法数据流图的用途数据流图的用途(1)分析员可自顶向下分析系统信息流程)分析员可自顶向下分析系统信息流程(2)可在图上画出需要计算机处理的部分)可在图上画出需要计算机处理的部分(3)根据数据存储,做进一步数据分析,向数据库)根据数据存储,做进一步数据分析,向数据库设计过渡设计过渡(4)确定存取方式)确定存取方式(5)表达数据处理方式)表达数据处理方式2022年12月24日第三章 软件需求分析403.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法画画DFD的基本原则的基本原则加工分解的原则加
31、工分解的原则自然性:自然性:概念上合理、清晰;概念上合理、清晰;均匀性:均匀性:理想的分解是将一个问题分解成大小均匀的几个理想的分解是将一个问题分解成大小均匀的几个部分;部分;分解度:分解度:一般每一个加工每次分解最多不要超过个子加一般每一个加工每次分解最多不要超过个子加工工,分解应分解到基本加工为止。分解应分解到基本加工为止。数据守恒与数据封闭原则数据守恒与数据封闭原则 数据守恒是指加工的输入数据守恒是指加工的输入/出数据流是否匹配,出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。即每一个加工既有输入数据流又有输出数据流。数据封闭是对整个系统而言。数据封闭是对整个系统而言。202
32、2年12月24日第三章 软件需求分析413.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法画画DFD的基本原则的基本原则合理使用文件合理使用文件 当文件作为某些加工之间的交界面时,文件必当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同份画出来了,那么他同其他成份之间的联系也应同时表达出来。时表达出来。DFDDFD图不是流程图图不是流程图,不表示软件的控制流程。不表示软件的控制流程。子图与父图的子图与父图的“平衡平衡”父图中某个加工的输入输出数据流应该
33、同相应父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同的子图的输入输出相同(相对应),分层数据流图相对应),分层数据流图的这种特点称为子图与父图的这种特点称为子图与父图“平衡平衡”。2022年12月24日第三章 软件需求分析423.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法分层分层DFD的改进的改进DFD图须经过图须经过反复修改反复修改,才能获得最终的目标系统,才能获得最终的目标系统的的DFD图。从以下方面改进图。从以下方面改进DFD图:图:1)1)检查数据流的正确性检查数据流的正确性 数据数据守恒守恒 子图、父图的平衡子图、父图的平衡 文件使用是否合理。
34、特别注意输入文件使用是否合理。特别注意输入/出文件的数出文件的数据流。据流。2)改进改进DFD图的易理解性图的易理解性 简化加工之间的联系(联系越少,独立性越强,简化加工之间的联系(联系越少,独立性越强,易理解性越好)。易理解性越好)。改进分解的均匀性。改进分解的均匀性。适当命名(各成分名称无二义性,准确、具体)适当命名(各成分名称无二义性,准确、具体)2022年12月24日第三章 软件需求分析43图 a显然,图显然,图a a中子图与中子图与父图不平衡父图不平衡父父 图图1 13 3AnTBCM2 2 2 2子子 图图2.12.12.22.22.32.3NPSTQ例例1 1 考察下图中子父图的
35、平衡。考察下图中子父图的平衡。2022年12月24日第三章 软件需求分析443.13.13.23.23.33.3客户帐号数量提货单提货单子子 图图图 b3 31 12 24 436 65 5定货单定货单 提货单提货单父父 图图3 3如果有如下数据条目:如果有如下数据条目:订货单订货单=客户客户+账号账号+数量则子、父数量则子、父图平衡图平衡2022年12月24日第三章 软件需求分析452022年12月24日第三章 软件需求分析462022年12月24日第三章 软件需求分析472022年12月24日第三章 软件需求分析482022年12月24日第三章 软件需求分析49需求案例分析2022年12月
36、24日第三章 软件需求分析50在医院在医院ICU病房里,将病症监视器安置在每个病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的组合病症病床,对病人进行监护。监视器将病人的组合病症信号实时地传送到中央监护系统进行分析处理。信号实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统在中心值班室里,值班护士使用中央监护系统对病人的情况进行监控,监护系统实时地将病人的对病人的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报出现异常时,系统会立
37、即自动报警,并打印病情报告和更新病历。告和更新病历。根据医生的要求随时打印病人的病情报告,系根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。统还定期自动更新病历。案案 例例 一一 医院病房监护系统医院病房监护系统2022年12月24日第三章 软件需求分析51经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1.1.监视病人的病症监视病人的病症(血压、体温、脉搏等血压、体温、脉搏等)。2.2.定时更新病历。定时更新病历。3.3.病情出现异常情况时报警。病情出现异常情况时报警。4.4.随机地产生某一病人的病情报告。随机地产生某一病人的病情报告。医院病房监护系
38、统医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历2.2.3 实例:医院病房监护系统请分析软件请分析软件系统系统需求需求!2022年12月24日第三章 软件需求分析521.监视病员的病症监视病员的病症 采集病症信号采集病症信号(血压、体温、脉搏等血压、体温、脉搏等)。组合病症信号。组合病症信号。将模拟将模拟病症信号转换为数字信号(病症信号转换为数字信号(A/D转换)。转换)。2.定时更新病历定时更新病历 将将病症信号进行格式化并加入更新日期、时间。病症信号进行格式化并加入更新日期、时间。更新病历库中病人的信息。更新病历库中病人的信息。可人工设定更新可人工设定更新病历的时
39、间间隔。病历的时间间隔。2022年12月24日第三章 软件需求分析533.病情出现异常情况时报警病情出现异常情况时报警 根据标准病症信号库中的值,判断是否报警。根据标准病症信号库中的值,判断是否报警。将报警信号转换为各种模拟信号(将报警信号转换为各种模拟信号(D/A转换)。转换)。实时打印病情报告,立即更新病历。实时打印病情报告,立即更新病历。4.随机地产生某一病员的病情报告随机地产生某一病员的病情报告2022年12月24日第三章 软件需求分析54非功能需求非功能需求1.监视器与网络的监视器与网络的可靠性要求可靠性要求,涉及人的生,涉及人的生命安全。命安全。2.效率需求效率需求中对时间、空间的
40、需求,所采集中对时间、空间的需求,所采集的病症信号数据量大。的病症信号数据量大。3.互操作需求互操作需求如要求监视器采样频率可如要求监视器采样频率可人工调整等。人工调整等。4.对病人病历的对病人病历的隐私的要求。隐私的要求。2022年12月24日第三章 软件需求分析55病员病员护士护士护士护士病人监病人监护系统护系统病人病人日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警顶顶 层层DFD图图顶层确定了系统的范围,其外部实体为病人和顶层确定了系统的范围,其外部实体为病人和护士。护士。护士护士病人病人护士护士2022年12月24日第三章 软件需求分析56第一层第一层格式化格式化病员
41、数据病员数据生理信号生理信号极限值极限值病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员数病员数据据1324日志数据日志数据2022年12月24日第三章 软件需求分析57第二层:加工第二层:加工“中央监视中央监视”分解分解医院病房监护系统二层DFD图计算超过计算超过极限值否极限值否病人病人数据数据超过超过极限值极限值报警报警开解信号开解信号产生产生报警信息报警信息病人极限病人极限格式化格式化病人数据病人数据体温体温血压、体温血压、体温脉搏脉搏生理信号生理信号极限值
42、极限值时间时间脉搏脉搏血压血压日期日期时钟时钟格式化格式化病人数据病人数据3.13.23.23.33.33.43.4紧急报告紧急报告2022年12月24日第三章 软件需求分析58计算超过计算超过极限值否极限值否病人数据超过极限值报警开解信号开解信号产生产生报警信息报警信息病人极限病人极限格式化格式化病人数据病人数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4第二层:加工第二层:加工“中央监视中央监视”分解分解第一层第一层格式化格式化病人数据病人数据生理信号生理信号极限值极限值病人病人护士护士护士护士中央监视中央监视病人病人日
43、志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病人极限病人极限更新日志更新日志病人病人数据数据1324日志数据日志数据紧急报告紧急报告紧急报告紧急报告2022年12月24日第三章 软件需求分析593.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法数据字典数据字典 分层数据流图只是表达了系统的分层数据流图只是表达了系统的“分解分解”,为,为了完整地描述这个系统,还需借助了完整地描述这个系统,还需借助“数据词典数据词典”和和“小说明小说明”对图中的每个数据和加工给出解释。对图中的每个数据和加工给出解释。对数据流图中包含的所有元素
44、的定义的集合构对数据流图中包含的所有元素的定义的集合构成了数据词典。词典中可有以下四种类型的条目成了数据词典。词典中可有以下四种类型的条目:数据流数据流 文件文件 数据项数据项 加工加工2022年12月24日第三章 软件需求分析603.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法数据字典数据字典 A、数据流条目数据流条目给出某个数据流的定义,通常是列出该给出某个数据流的定义,通常是列出该 数据流的各组成数据项。数据流的各组成数据项。例如:报名单姓名单位名年龄性别课程名例如:报名单姓名单位名年龄性别课程名 常用符号:、()、常用符号:、()、C、数据项条目数据项条目 数据
45、项条目给出某个数据单项的定义,通常是数据项的值类型,数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。允许的取值范围。B、文件条目文件条目给出某个文件的定义,文件的定义通常是列出文件记录给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如:的组成数据流。例如:订单文件订单编号顾客名称产品名称订货数量交货日期订单文件订单编号顾客名称产品名称订货数量交货日期D、加工条目加工条目 加工类条目就是加工类条目就是“加工小说明加工小说明”。一般应该单独列出。一般应该单独列出。2022年12月24日第三章 软件需求分析612022年12月24日第三章 软件需求分析6220
46、22年12月24日第三章 软件需求分析633.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法DFD加工说明加工说明结构化语言结构化语言判定表判定表判定树判定树 对对DFD图中每一个基本加工都必须有一个图中每一个基本加工都必须有一个小说明小说明给出给出该加工的精确描述。小说明中应精确地描述加工的激发条该加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。辑是其中最基本的部分,指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式
47、:对基本加工说明有三种描述方式:2022年12月24日第三章 软件需求分析643.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法DFD结构化语言结构化语言 结构化语言是介于自然语言和形式语言之间的一种半形结构化语言是介于自然语言和形式语言之间的一种半形式语言式语言,是自然语言的一个受限制的子集。是自然语言的一个受限制的子集。一般分为两层结构:外层语法较具体,为控制结构(顺一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环)序、选择、循环),内层较灵活,表达内层较灵活,表达“做什么做什么”。例如:外层可为以下结构:例如:外层可为以下结构:1、顺序结构、顺序结构2
48、、选择结构、选择结构 IFTHEN-ELSE;CASE-OF-ENDCASE;3、循环结构、循环结构 WHILE-DO;REPEAT-UNTIL2022年12月24日第三章 软件需求分析652022年12月24日第三章 软件需求分析66例一例一 根据当前流动资金值确定贬值数。根据当前流动资金值确定贬值数。IF the CurrentCapitalValue is less then$1000 Then Set DepreciatedAmount to CurrentCapitalValue.Set CurrentCapitalValue to zero.Otherwise Set Deprec
49、iatedAmount to 10%of CurrentCapitalValue.Reduce Current Capital-Value by 10%.2022年12月24日第三章 软件需求分析673.2 软件需求分析方法软件需求分析方法1.结构化分析方法结构化分析方法DFD判定表判定表 判定表是一种二维的表格,常用于较复杂的组合条件(与判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。结构化语言比较)。条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解.不易输入计算机。不易输入计算
50、机。通常由四部分组成。通常由四部分组成。条件框条件框 条件定义。条件定义。操作框操作框 操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取值组合下所执行的操作。营业额营业额X()1000X50005000 X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N -Y N N -20 20 年年 -Y N -Y N -优优 惠惠 X X X X 正正 常常 X X X X 化简后化简后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。