1、3第三 章 对系统应该提供的服务和所受到的约束进行理对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程解、分析、建立文档、检验的过程需求工程需求工程1.1.什么是软件需求工程?什么是软件需求工程?2.2.软件需求工程的任务是什么?软件需求工程的任务是什么?3.3.需求工程过程需求工程过程4.4.软件需求分析方法软件需求分析方法软件需求的重要性软件需求的重要性 软件需求无疑是当前软件工程中的关键问题,软件需求无疑是当前软件工程中的关键问题,。 美国于美国于1995年开始对全国范围内的年开始对全国范围内的8000个软件项目个软件项目进行跟踪调查。进行跟踪调查。 分析失败的原因发
2、现,分析失败的原因发现,与需求过程相关的原因占了与需求过程相关的原因占了45%,而其中,而其中各占各占13%和和12%。 未完成未完成完成未实施完成未实施软件需求的困难软件需求的困难软件需求是软件工程中最复杂的过程之一:软件需求是软件工程中最复杂的过程之一:1. 应用领域的广泛性应用领域的广泛性,它的实施无疑与各个应用,它的实施无疑与各个应用行业的特征密切相关。行业的特征密切相关。2. 非功能性需求建模技术的缺乏,非功能性需求建模技术的缺乏,及其与功能性及其与功能性需求有着错综复杂的联系,大大增加了需求工需求有着错综复杂的联系,大大增加了需求工程的复杂性。程的复杂性。3. 沟通上的困难,沟通上
3、的困难,由于系统分析员、需求分析员由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背等各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。景,给需求工程的实施增加了人为的难度。软软 件需件需 求求用用 户需户需 求求系系 统需统需 求求功能功能需求需求非功能非功能需求需求领域领域需求需求由客户管理员、由客户管理员、用户等提出用户等提出软件需求的内容软件需求的内容一、软件需求内容一、软件需求内容非功能需求非功能需求产品需求产品需求机构需求机构需求外部需求外部需求互操作互操作需求需求道德道德需求需求立法立法需求需求性能性能需求需求空间空间需求需求交付交付需求
4、需求实现实现需求需求标准标准需求需求隐私隐私需求需求安全安全性需求性需求可用性可用性需求需求效率效率需求需求可靠性可靠性需求需求可移植可移植性需求性需求传统需求分析传统需求分析 在传统软件工程生命周期中,涉及需求的阶段在传统软件工程生命周期中,涉及需求的阶段称作需求分析。一般来说,需求分析的作用是:称作需求分析。一般来说,需求分析的作用是:定义软件的范围及必须满足的约束;定义软件的范围及必须满足的约束; 确定软件的功能和性能及与其他系统成分的接确定软件的功能和性能及与其他系统成分的接 口口; 建立数据模型、功能模型和行为模型;建立数据模型、功能模型和行为模型; 最终提供需求规格说明,并用于作为
5、评估软件最终提供需求规格说明,并用于作为评估软件 质量的依据。质量的依据。 需求工程是系统工程和软件工程的一个交叉分支,需求工程是系统工程和软件工程的一个交叉分支,涉涉及到软件系统的目标、软件系统提供的服务、软件系统的及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。它也提供现实需精确规格说明以及系统进化之间的关系。它也提供现实需求和软件能力之间的桥梁。求和软件能力之间的桥梁。系统目标系统目标系统服务系统服务软件约束软件约束运行环境运行环境 获取需求获取需求;
6、深入实际,在充分理解用户需求的深入实际,在充分理解用户需求的基础上,获取系统需求。基础上,获取系统需求。需求需求分析与建模;分析与建模;进行需求建模、对模型或原进行需求建模、对模型或原型进行分析。型进行分析。 确认需求确认需求;确保需求说明准确、完整地表达系确保需求说明准确、完整地表达系统的主要特性。统的主要特性。 进化需求进化需求。客户的需要总是不断(连续)增长。客户的需要总是不断(连续)增长的的 ,进化需求是必要的。,进化需求是必要的。 缺乏领域知识缺乏领域知识, ,应用领域的问题常常是模糊的、不应用领域的问题常常是模糊的、不精确的;精确的; 存在默认的知识存在默认的知识, ,如难以描述的
7、常识问题;如难以描述的常识问题; 存在多个知识源存在多个知识源, ,且多知识源之间可能有冲突;且多知识源之间可能有冲突; 客户可能的偏见客户可能的偏见,如不能提供,如不能提供或不想告知或不想告知你所需你所需要了解的事情。要了解的事情。非常困难,主要原因有:非常困难,主要原因有:需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷调查法问卷调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养
8、高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法 还有知识工程方法等如:场记分析法、卡片分还有知识工程方法等如:场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。类法、分类表格技术和基于模型的知识获取等。需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专
9、题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利 于于 培养高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法需求获取技术需求获取技术 需求抽取的方法一般有:需求抽取的方法一般有:1.1.面谈法面谈法 重要而直接,简单的重要而直接,简单的需求获取技术。需求获取技术。2. 问卷法调查法问卷法调查法 是对面谈法的补充。是对面谈法的补充。3.3.需求专题讨论会需求专题讨论会 最有力的最有力的需求获取技术。有利需求获取技术。有利
10、于于 培养高效团队。培养高效团队。4. 观察用户的工作流程观察用户的工作流程 适用于用户无法准确表达适用于用户无法准确表达需求的情况。需求的情况。5. 原型化方法原型化方法6. 基于用例的方法基于用例的方法需求分析与建模需求分析与建模 需求分析和建模又包含三个层次的工作。需求分析和建模又包含三个层次的工作。1 1、需求分析、需求分析 2 2、需求建模(分为企业、需求建模(分为企业建模建模、功能需求、功能需求建模建模和非和非功能需求功能需求建模建模等)等)3 3、需求规格说明需求规格说明不同的描述方式。不同的描述方式。 主要对收集到的需求进行提炼、分析和认真审主要对收集到的需求进行提炼、分析和认
11、真审查,确保所有参加人员取得一致共识。找出错误、查,确保所有参加人员取得一致共识。找出错误、遗漏和不足,建立完整的分析模型。遗漏和不足,建立完整的分析模型。 三、需求的有效性验证三、需求的有效性验证 . 由于需求是软件开发的第一阶段,直接影响后由于需求是软件开发的第一阶段,直接影响后面各阶段的开发。面各阶段的开发。 . 需求的可变性必须进行验证。需求的可变性必须进行验证。三、需求的有效性验证三、需求的有效性验证 指功能需求是否符合用户所提出指功能需求是否符合用户所提出的需求。的需求。系统功能描述及约束是否一致。系统功能描述及约束是否一致。是否包含所有系统用户的需求和是否包含所有系统用户的需求和
12、约束。约束。是否能设计出一组验证方法,是否能设计出一组验证方法,确定了检验的标准。确定了检验的标准。 四、需求管理四、需求管理 需求管理贯穿需求分析全过程,包括需求管理贯穿需求分析全过程,包括:四、需求管理四、需求管理 需求管理的所有活动中,最重要的是需求管理的所有活动中,最重要的是 “需求变更管理需求变更管理”,包括包括:问题分析和变问题分析和变更描述更描述变更分析和成变更分析和成本计算本计算变更实现变更实现修正后的修正后的需求需求识别出的识别出的问题问题 需求管理过程需要需求管理过程需要CASE (Computer Aided Software Engineering) 工具支持。工具支持
13、。 可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡 将系统看作若干功能模块的集合,每个功能又可将系统看作若干功能模块的集合,每个功能又可以分解为子功能以分解为子功能, ,子功能还可继续分解子功能还可继续分解, ,分解的结果即分解的结果即是系统的雏形。是系统的雏形。存在问题存在问题1. 1. 需要人工完成需要人工完成2. 2. 无法对描述的准确度进行验证。无法对描述的准确度进行验证。3. 3. 难以适应需求的变化。难以适应需求的变化。问题空间问题空间功能功能子功能
14、子功能映射映射1客房预定系统客房预定系统 2前台接待系统前台接待系统 3前台收银系统前台收银系统 4帐务系统帐务系统 5管家系统管家系统 6电话系统电话系统 7客历系统客历系统 8合约系统合约系统 9经理系统经理系统 10总经理系统总经理系统 11密码管理系统密码管理系统 12报表系统报表系统 13帐务报表帐务报表盘存盘存/ /销售系统销售系统 1.0.01.0.0销售处理销售处理 1.1.01.1.0盘存处理盘存处理 1.2.01.2.0例:例:盘存盘存/销售系统,用户提出系统应有以下功能销售系统,用户提出系统应有以下功能: 计算买主订单计算买主订单 准备销售报表准备销售报表 建立买主文件和
15、应收帐发票建立买主文件和应收帐发票 运行更新的盘存文件运行更新的盘存文件 产生托运单和包装单产生托运单和包装单 保证库存及时订货保证库存及时订货计算销售计算销售记录记录 1.1.1产生销售产生销售报表报表 1.1.2核对买主核对买主贷方金额贷方金额 1.1.3验证库存验证库存量级量级 1.2.1产生货运产生货运订单订单 1.2.2执行买主执行买主汇票汇票 1.2.3产生盘存产生盘存报表报表 1.2.4 是一种以数据、数据的封闭性为基础,从问题是一种以数据、数据的封闭性为基础,从问题空空间到某种表示的映射方法间到某种表示的映射方法, ,由数据流图由数据流图( (DFDDFD图图) )表示表示。顾
16、客出版社验证验证订单订单汇总汇总订单订单订单出版社 订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件面向对象的分析方法面向对象的分析方法 面向对象分析方法面向对象分析方法( (OOA) )的关键是识别问题域内的关键是识别问题域内的对象的对象, ,分析它们之间的关系分析它们之间的关系, ,并建立起三类模型。并建立起三类模型。信息建模法信息建模法 是从数据的角度对现实世界建立系统的信息模型是从数据的角度对现实世界建立系统的信息模型, ,基本工具是基本工具是ERER图。是由实体、属性和关系组成的网图。是由实体
17、、属性和关系组成的网络图。络图。 E-E-实体,是一个或一组对象;实体,是一个或一组对象; R-R-关系,关系,实体之间联系或交互作用。实体之间联系或交互作用。注意:信息建模与面向对象分析的区别!注意:信息建模与面向对象分析的区别!分解:分解:对于一个复杂的系统,对于一个复杂的系统,为了将复杂性降低到可以掌为了将复杂性降低到可以掌握的程度,可以把大问题分握的程度,可以把大问题分解成若干小问题,然后分别解成若干小问题,然后分别解决(如右图)。解决(如右图)。“分解分解”和和“抽象抽象”。抽象:抽象:分解可以分层进行,即先考虑问题最本质的分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去属性
18、,暂把细节略去, ,以后再逐层添加细节,直至涉以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系及到最详细的内容,这种用最本质的属性表示一个系统的方法就是统的方法就是“抽象抽象”。1.11.21.3x2132.12.22.31.11.3 基本思想与步骤基本思想与步骤1 1、分层的数据流图、分层的数据流图(DFD(DFD图图) )2 2、数据词典、数据词典3 3、描述加工逻辑的结构化语言、判定表及判定树、描述加工逻辑的结构化语言、判定表及判定树当前系统当前系统具体模型具体模型建立建立当前系统当前系统逻辑模型逻辑模型抽象抽象目标系统目标系统逻辑模型逻辑模型建立建立完善的系统完
19、善的系统逻辑模型逻辑模型改进改进深入调查深入调查研究研究分析用户需求分析用户需求,用用DFD图描述图描述分析系统需求分析系统需求,用用DFD图描述图描述修改完善修改完善DFD图图,增添功能增添功能顾客顾客出版社出版社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件画图步骤画图步骤 : 1 1、确定外部实体及输入、输出数据流。、确定外部实体及输入、输出数据流。 2 2、确定分解顶层的加工。、确定分解顶层的加工。 3 3、确定使用的文
20、件。、确定使用的文件。 4 4、用数据流将各部分连接起来,形成数据封闭。、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。注意:标注各加工框及数据流名称。例一例一 图书预定系统(顶层图书预定系统(顶层DFDDFD图)图)数据流图(数据流图(Data Flow Diagram,DFD)是描述)是描述系统中数据流程的图形工具,它描述了将系统的逻辑系统中数据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出所需的加工处理过程。输入转换为逻辑输出所需的加工处理过程。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体
21、名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框还有一些辅助的图例还有一些辅助的图例: :一、数据流图的图符一、数据流图的图符基本图形符号:基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 与与 + 或或互斥+X1321.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图分层DFD 图需求案例分析需求案例分析在医院在医院ICU病房里,
22、将病症监视器安置在每个病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的组合病症病床,对病人进行监护。监视器将病人的组合病症信号实时地传送到中央监护系统进行分析处理。信号实时地传送到中央监护系统进行分析处理。 在中心值班室里,值班护士使用中央监护系统在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报出现异常时,系统会立即自动报警,并打印病情报告和更新病历。告和更新病历。
23、根据医生的要求随时打印病人的病情报告,系根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。统还定期自动更新病历。案案 例例 一一 医院病房监护系统医院病房监护系统经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症、监视病员的病症( (血压、体温、脉搏等血压、体温、脉搏等) )。2 2、定时更新病历。、定时更新病历。3 3、病情出现异常情况时报警。、病情出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。例2:医院病房监护系统产生产生病情报告病情报告监视病情监视病情更新病历更新病历2.2.3 实例:
24、医院病房监护系统请分析软件请分析软件系统系统需求需求!1、监视病员的病症、监视病员的病症 采集病症信号采集病症信号( (血压、体温、脉搏等血压、体温、脉搏等) )。 组合病症信号。组合病症信号。 将模拟将模拟病症信号转换为数字信号(病症信号转换为数字信号(A-D转换)。转换)。2、定时更新病历、定时更新病历 将将病症信号进行格式化并加入更新日期、时间。病症信号进行格式化并加入更新日期、时间。 更新病历库中病人的信息。更新病历库中病人的信息。 可人工设定更新可人工设定更新病历的时间间隔。病历的时间间隔。3、病情出现异常情况时报警、病情出现异常情况时报警 根据标准病症信号库中的值,判断是否报警。根
25、据标准病症信号库中的值,判断是否报警。 将报警信号转换为各种模拟信号(将报警信号转换为各种模拟信号(D-A转换)。转换)。 实时打印病情报告,立即更新病历。实时打印病情报告,立即更新病历。4、随机地产生某一病员的病情报告、随机地产生某一病员的病情报告非功能需求1、监视器与网络的、监视器与网络的可靠性要求可靠性要求,涉及人的生命安,涉及人的生命安全。全。2、效率需求效率需求中对时间、空间的需求,所采集的病中对时间、空间的需求,所采集的病症信号数据量大。症信号数据量大。3、互操作需求互操作需求如要求监视器采样频率可人工调如要求监视器采样频率可人工调整等。整等。4、对病人病历的、对病人病历的隐私的要
26、求。隐私的要求。病员病员护士护士护士护士病员监病员监护系统护系统病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警顶顶 层层DFD图图顶层确定了系统的范围,其外部实体为病员和护士顶层确定了系统的范围,其外部实体为病员和护士护士护士病员病员护士护士第一层:第一层:病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员数据病员数据格式化格式化病员数据病员数据生理信号生理信号极限值极限值1324日志数据日志数据日志数据日志数据医院病房监护系统顶层医院病房
27、监护系统顶层DFDDFD图图紧急报告紧急报告第二层:加工第二层:加工“中央监视中央监视”分解分解医院病房监护系统二层医院病房监护系统二层DFDDFD图图计算超过计算超过极限值否极限值否病员病员数据数据超过超过极限值极限值报警报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温体温血压、体温血压、体温脉搏脉搏生理信号生理信号极限值极限值时间时间脉搏脉搏血压血压日期日期时钟时钟格式化格式化病员数据病员数据3.13.23.23.33.33.43.4紧急报告紧急报告计算超过计算超过极限值否极限值否病员数据超过极限值报警开解信号开解信号产生产生报警信息报警信息病员
28、极限病员极限格式化格式化病员数据病员数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4第二层:加工第二层:加工“中央监视中央监视”分解分解第一层第一层格式化格式化病员数据病员数据生理信号生理信号极限值极限值病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员病员数据数据1324日志数据日志数据紧急报告紧急报告紧急报告紧急报告加工分解的原则加工分解的原则自然性自然性:概念上合理、清晰;概念上合理、清晰;
29、 均匀性均匀性:理想的分解是将一个问题分解成大小均:理想的分解是将一个问题分解成大小均匀的几个部分;匀的几个部分;分解度:分解度:一般每一个加工每次分解最多不要超过一般每一个加工每次分解最多不要超过个子加工个子加工, ,分解应分解到基本加工为止。分解应分解到基本加工为止。数据守恒与数据封闭原则数据守恒与数据封闭原则 数据守恒是指加工的输入数据守恒是指加工的输入/ /出数据流是否匹配,出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。即每一个加工既有输入数据流又有输出数据流。 数据封闭是对整个系统而言。数据封闭是对整个系统而言。合理使用文件合理使用文件 当文件作为某些加工之间的交界面时
30、,文件必当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同份画出来了,那么他同其他成份之间的联系也应同时表达出来。时表达出来。DFDDFD图不是流程图图不是流程图, ,不表示软件的控制流程。不表示软件的控制流程。子图与父图的子图与父图的“平衡平衡”父图中某个加工的输入输出数据流应该同相应父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同的子图的输入输出相同( (相对应),分层数据流图相对应),分层数据流图的这种特点称为子图与父图的这种特点称为子图与父图“平衡平衡”
31、。五、 分层DFD图的改进 DFD图须经过图须经过反复修改反复修改,才能获得最终的目标系统,才能获得最终的目标系统的的DFD图。从以下方面改进图。从以下方面改进DFD图:图: 1 1、检查数据流的正确性检查数据流的正确性 数据数据守恒守恒 子图、父图的平衡子图、父图的平衡 文件使用是否合理。特别注意输入文件使用是否合理。特别注意输入/ /出文件的数出文件的数据流。据流。2、改进、改进DFD图的易理解性图的易理解性 简化加工之间的联系(联系越少,独立性越强,简化加工之间的联系(联系越少,独立性越强,易理解性越好)。易理解性越好)。 改进分解的均匀性。改进分解的均匀性。 适当命名(各成分名称无二义
32、性,准确、具体)适当命名(各成分名称无二义性,准确、具体) 分层数据流图只是表达了系统的分层数据流图只是表达了系统的“分解分解”,为,为了完整地描述这个系统,还需借助了完整地描述这个系统,还需借助“数据词典数据词典”和和“小说明小说明”对图中的每个数据和加工给出解释。对图中的每个数据和加工给出解释。 对数据流图中包含的所有元素的定义的集合构对数据流图中包含的所有元素的定义的集合构成了数据词典。词典中可有以下四种类型的条目成了数据词典。词典中可有以下四种类型的条目: 数据流数据流 文件文件 数据项数据项 加工加工 A、 数据流条目数据流条目给出某个数据流的定义,通常是列出该给出某个数据流的定义,
33、通常是列出该 数据流的各组成数据项。数据流的各组成数据项。 例如:报名单姓名单位名年龄性别课程名例如:报名单姓名单位名年龄性别课程名 常用符号:、()、常用符号:、()、C、数据项条目数据项条目 数据项条目给出某个数据单项的定义,通常是数据项的数据项条目给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。值类型,允许的取值范围。 B、文件条目、文件条目给出某个文件的定义,文件的定义通常是列给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如:出文件记录的组成数据流。例如: 订单文件订单编号顾客名称产品名称订货数量订单文件订单编号顾客名称产品名称订货数量交货日期交货日期D
34、、加工条目加工条目 加工类条目就是加工类条目就是“加工小说明加工小说明”。一般应该单独列出。一般应该单独列出。nm.结构化语言结构化语言判定表判定表判定树判定树 对对DFD图中每一个基本加工都必须有一个图中每一个基本加工都必须有一个小说小说明明给出该加工的精确描述。小说明中应精确地描述给出该加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,指用出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。户对这个加工的逻辑要求。 对基本加工说明有三种描述方式:对基本加工说明有
35、三种描述方式: 结构化语言是介于自然语言和形式语言之间的结构化语言是介于自然语言和形式语言之间的一种半形式语言一种半形式语言, ,是自然语言的一个受限制的子集。是自然语言的一个受限制的子集。 一般分为两层结构:外层语法较具体,为控制一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环)结构(顺序、选择、循环), ,内层较灵活,表达内层较灵活,表达“做做什么什么”。例如:外层可为以下结构:例如:外层可为以下结构:1、顺序结构、顺序结构2、选择结构、选择结构 IFTHEN-ELSE; CASE-OF-ENDCASE;3、循环结构、循环结构 WHILE-DO; REPEAT-UNTIL 判
36、定表是一种二维的表格,常用于较复杂的组合判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。条件(与结构化语言比较)。 条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解. .不易输入计不易输入计算机。算机。通常由四部分组成。通常由四部分组成。条件框条件框 条件定义。条件定义。操作框操作框 操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作在各条件取值组合下所执行的操作。例如例如: : 对商店每天的营业额所收
37、税率对商店每天的营业额所收税率营业额营业额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 XX X 正正 常常 X XX X 化简后化简后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N NY Y N N Y Y N N 20 20 年年 Y N Y N Y N Y NY N Y N Y N Y N
38、优优 惠惠 X X XX X X正正 常常 X X X X XX X X X XY-Y-满足条件满足条件 N-N-不满足条件不满足条件 X-X-选中判定的结论选中判定的结论特点特点: :描述一般组合条件较清晰,易理解。不易输入描述一般组合条件较清晰,易理解。不易输入计算机。计算机。营业额营业额 10001000元元 1000 1000元元 正常处理正常处理好的支付信誉好的支付信誉 优惠处理优惠处理坏的支付信誉坏的支付信誉 20 20年年 优惠处理优惠处理 20 20年年 正常处理正常处理如上例如上例面向对象的软件工程面向对象的软件工程(OOSE)。 采用采用来来获取获取从外部的角度来看系统功能
39、,建立系统的从外部的角度来看系统功能,建立系统的描述外部执行者描述外部执行者(Actor)所理解的系统功能。所理解的系统功能。即待开发系统的功能需求。即待开发系统的功能需求。 用例用例 表示一个子系统,或者系统一个独立的表示一个子系统,或者系统一个独立的功能。功能。 角色角色 表示外部的表示外部的“执行者执行者”。描述方法:描述方法: 用例用例 : 角色:角色: 连接:连接:用例用例查询确认用户信息自动取款机储蓄用户出示身份信息出纳员验证身份 定义系统、确定执行者和用例、描述用例、定义系统、确定执行者和用例、描述用例、定定义用例间的关系、确认模型。义用例间的关系、确认模型。案例案例3 网网 上
40、上 拍拍 卖卖 系系 统统 随着随着 Internet 技术的发展和互联网的日益普及技术的发展和互联网的日益普及,互联网用户中约互联网用户中约 1/4 的用户使用的用户使用 Internet 进行互联网进行互联网通信或经贸活动。电子商务总额每年可达到通信或经贸活动。电子商务总额每年可达到 6 万亿美万亿美元。元。 网上拍卖系统就是一个在互联网上模拟拍卖环网上拍卖系统就是一个在互联网上模拟拍卖环境的典型的范例。可实现从展示产品、相互竞价到境的典型的范例。可实现从展示产品、相互竞价到最后产品成交等一系列功能最后产品成交等一系列功能;用户可以轻松实现在线用户可以轻松实现在线商品的拍卖和竞标商品的拍卖
41、和竞标 。 建立系统的建立系统的USE CASE模型。模型。 系统需求1. 执行者执行者用户用户 系统是通过网络提供给商品的销售者和购买者系统是通过网络提供给商品的销售者和购买者一个交易平台,因此所有上网用户都是本系统的用一个交易平台,因此所有上网用户都是本系统的用户,具体又分为户,具体又分为商品购买者商品购买者和和商品销售者、系统管商品销售者、系统管理员理员。 考虑到一般用户既可能是商品购买者也可能是商考虑到一般用户既可能是商品购买者也可能是商品销售者,所以将用户分为品销售者,所以将用户分为:非会员用户和会员用户非会员用户和会员用户. 非会员非会员_未注册的用户未注册的用户,只能在网站上浏览
42、商品,只能在网站上浏览商品,不能参与竞标,也不能提供物品出售。不能参与竞标,也不能提供物品出售。 会员会员_已注册的用户已注册的用户,可以直接参与拍卖或竞标可以直接参与拍卖或竞标. 系统需求2.用例用例 分析系统功能分析系统功能提供高效的内容丰富的提供高效的内容丰富的 Web 拍卖商业服务拍卖商业服务;展示产展示产品、相互竞价品、相互竞价 、产品成交、产品成交 。实现拍卖商品种类的更新和消息的发布。实现拍卖商品种类的更新和消息的发布。实现个人物品流通和网上信息发布、留言。实现个人物品流通和网上信息发布、留言。初步确定以下功能:初步确定以下功能: 1)会员注册会员注册 2)会员天地会员天地 3)
43、商品分类浏览商品分类浏览 4)查找商品查找商品 5)拍卖商品拍卖商品 6) 购买商品购买商品 7) 网上支付网上支付系统需求进一步确定以下功能:进一步确定以下功能: 1) 会员注册会员注册 (填写用户帐号(填写用户帐号,用户名用户名,密码密码,Email等等) 2) 会员天地会员天地(查看并修改个人信息(查看并修改个人信息,交易记录交易记录,收邮件收邮件,信用评价等信用评价等) 3) 商品分类浏览商品分类浏览(浏览、更新、最新商品推荐等(浏览、更新、最新商品推荐等 ) 4) 查找商品查找商品(按关键字查找、输出打印商品信息)(按关键字查找、输出打印商品信息) 5) 拍卖商品拍卖商品(提供商品信
44、息提供商品信息:商品名商品名称、类别、图片、称、类别、图片、,起拍价格、新旧程度、使用时起拍价格、新旧程度、使用时间间 等,及等,及) 6) 购买商品购买商品 () (通过银行网络系统进行交易,(通过银行网络系统进行交易,) 建立Use Case模型买商品卖商品非功能需求非功能需求 3. 故障处理能力要求故障处理能力要求 当出现错误时,要求以界面形式向用户说明,并当出现错误时,要求以界面形式向用户说明,并用一览表方式列出,各类可能的错误或故障出现时,用一览表方式列出,各类可能的错误或故障出现时,系统的处理方法和补救措施。系统的处理方法和补救措施。 4. 灵活性灵活性 需求需求 要求当用户需求,如操作方式,运行环境,结果要求当用户需求,如操作方式,运行环境,结果精度,数据结构及其他软件接口等发生变化时,增加精度,数据结构及其他软件接口等发生变化时,增加新模块时,不会修改原有的模块。新模块时,不会修改原有的模块。 5.安全性安全性 采用用户名及密码,对用户授权使用。支付过程采用用户名及密码,对用户授权使用。支付过程中的安全性由银行网上支付系统进行保证。中的安全性由银行网上支付系统进行保证。商品类别管理交易管理公告栏管理系统管理员会员管理会员空间会员注册银行会员非会员收藏商品拍卖商品支付分类浏览搜索商品出错处理买商品改进的Use Case模型