第4章-需求分析XXXX0308无建筑效果版课件_第1页
第4章-需求分析XXXX0308无建筑效果版课件_第2页
第4章-需求分析XXXX0308无建筑效果版课件_第3页
第4章-需求分析XXXX0308无建筑效果版课件_第4页
第4章-需求分析XXXX0308无建筑效果版课件_第5页
已阅读5页,还剩177页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1软件工程

SoftwareEngineering2011新春版1软件工程Softwar第四章需求分析Outlines需求分析概述

软件需求重要性软件定义软件需求任务需求工程过程结构化方法第四章需求分析Outlines软件需求问题(1)软件开发现状:复杂的软件系统开发,总令人不满意美国2500亿美元/年,175,000个软件项目其中,16%按时、按预算、满足要求地交付30%左右在完成前被取消52.7%项目成本是预算成本的189%项目失败原因缺乏用户参与:13%不完整的需求规格说明:12%不断改变的需求和规格说明:21%软件需求问题(1)软件开发现状:复杂的软件系统开发,总令人不软件需求问题(2)各阶段缺陷对交付软件产品的影响

需求缺陷约占全部提交缺陷的1/3软件需求问题(2)各阶段缺陷对交付软件产品的影响需求错误的代价5需求错误的代价5什么是软件需求需求的定义(IEEE,1997)

(1)用户解决问题或达到目标所需的条件或能力。

(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。

(3)一种反映上面(1)或(2)所描述的条件或能力的文档说明。

需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。什么是软件需求需求的定义(IEEE,1997)软件需求的层次业务需求(businessrequirement)反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(userrequirement)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。非功能需求(non-functionalrequirement)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。软件需求的层次业务需求(businessrequireme软件需求的层次(续)例:银行ATM系统业务需求系统为用户提供自助存取款服务用户需求

用户可以随时安全、快捷地进行存款和取款功能需求

允许用户从银行帐户中取款允许用户向银行帐户中存款允许用户查询从银行帐户中的余额使用8位数字密码检验用户存取的合法性软件需求的层次(续)例:银行ATM系统软件需求的层次(续)例:银行ATM系统(2)非功能需求系统在20秒内响应所有请求除了每天30分钟维护外,系统每周7天、每天24小时都可以用需求来源

客户或用户(如银行职员、管理人员、用户)行业标准、政策法规当前手工处理系统的文档咨询银行领域专家软件需求的层次(续)例:银行ATM系统(2)需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。需求分析的任务…………抽象实现改进老系统模型新模型新系统需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑需求分析的过程(1)

需求分析的过程是开发人员与用户共同协商,明确系统的全部功能、性能以及运行规格,并且使用软件开发人员和用户都能理解的语言准确地表达出来,即完成需求规格说明的过程。说白了,就是要明确“做什么?”整个过程分为以下四个阶段:

问题识别(需求获取)、需求分析(分析与综合)、编写规格说明文档、需求评审。工作产品活动需求分析的过程(1)需求分析的过程是开发人员与用户1.问题识别/需求获取:双方确定问题的综合需求,识别系统相关者的需求,使其达到共识。☻功能需求:系统必须做什么? ☻性能需求:做得怎样?例:responsetime,memory,back-upmemory,……☻环境需求:运行环境、软硬件配置等。☻用户界面需求☻可靠性、安全性、保密性、可移植性和可维护性等方面的需求。☻将来可能提出的要求需求分析的过程(2)1.问题识别/需求获取:双方确定问题的综合需求,识别系统相关2.分析与综合:

分析和整理所收集的需求,形成完整的分析模型。需求分析的过程(3)3.编写文档:以一致的、完备和无二义性的形式表达需求。☻编写需求说明书 ☻编写初步用户使用手册☻编写确认测试计划☻修改完善项目开发计划2.分析与综合:需求分析的过程(3)3.编写文档:以一致的、需求分析的过程(4)验证需求的一致性验证需求的完整性验证需求的现实性验证需求的有效性方法:

人工审查开发原型系统-探索型使用软件工具—完整性、一致性4.需求评审:确保需求说明准确、完整地表达必要的质量特点。5.需求管理:在整个软件开发过程中进行需求跟踪、变更控制、版本控制等。需求分析的过程(4)验证需求的一致性方法:4.需求评审:确保常用的分析、设计方法面向数据流的(结构化)法(SA)面向数据结构的Jackson方法(JSD)结构化数据系统开发方法(DSSD)面向对象的方法(OOA)等常用的分析、设计方法面向数据流的(结构化)法(SA)需求分析的方法结构化分析方法:由数据流和数据字典构成,适于数据处理领域问题。该方法的一个难点是确定数据流之间的变换,而且数据字典的规模也是一个问题,对数据结构的强调很少。面向对象的分析:采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。需求分析的方法结构化分析方法:由数据流和数据字典构成,适于数注意事项在需求分析时要注意用户对软件开发的了解程度,避免造成两种极端认识。需求的变动或新增是一个极为普遍的问题,既然普遍,所以软件开发人员不仅应该在心理上接受这种变动,还应该在需求分析时积极的发掘需求。需求人员与用户广泛交流,从深度和广度挖掘可能的需求,并应形成规范的需求文档,经用户确认。如果为写文档而写文档,不进行及时更新,甚至准备在软件开发完成后再补文档,这是绝对错误的观点。注意事项在需求分析时要注意用户对软件开发的了解程度,避免造成可能的错误没有足够用户参与(类型、数量)开发方与用户沟通可能处于劣势不要锦上添花,画蛇添足不要写的过于简练,过于模糊计划做需求的时间少了,导致需求不完整需求在签约前要与决策者沟通好到竞争对手那儿找不足不要被过细的不成熟的细节影响记下不明确的需求,约定期限明确,否则易遗漏可能的错误没有足够用户参与(类型、数量)需求获取(1)真正理解项目中描述的客户需求19需求获取(1)真正理解项目中描述的客户需求19需求获取(2)聆听用户的需求-与各种层次的客户进行充分的交流和沟通,包括决策领导、使用部门的领导、具体使用人员、系统维护人员等分析和整理所获取的信息-借助一些工具和方法,从用户一般性的陈述里面提取用户的真正需求,并由此确定软件的功能、性能、接口关系、约束条件等形成文档化的描述

20需求获取(2)聆听用户的需求20需求获取(3)需求的获取技术-向系统相关者进行问卷调查-主持与用户的面谈和讨论-需求专题讨论会-复查现有的报表、表格和过程描述-观察商业过程和工作流-应用用例-建立原型21需求规格说明:参见相应的模板需求获取(3)需求的获取技术21需求规格说明:参见相应的模板需求文档需求文档第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析

功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)

第四章需求分析Outlines

模型(Model)软件开发建模的重要性软件系统建模的作用:(1)便于开发人员展现系统,在建模过程中了解信息;(2)通过抽象降低复杂度,“分而治之”的方法;(3)有助于回忆所有细节、有助于与其他开发小组交流、有助于和用户交流;(4)为维护和升级提供文档;…建模的实质:对现实的简化。模型(Model)软件开发建模的重要性

软件模型系统:复杂;多个模型涵盖细节信息;模型种类:

数学模型:描述系统技术方面的一系列公式。

描述模型:对系统某一方面的描述性备忘录、报表或列表;

图形模型:图表或系统某些方面的示意性表示。软件模型系统:复杂;多个模型涵盖细节信息;

信息系统模型分析模型(逻辑模型)-详细定义了系统需求而没有局限于具体技术。(数据流图、实体关系图、数据字典、用例图、时序图、协作图、状态转换图…)设计模型(物理模型)-显示如何使用具体技术来实现系统的某些方面。(系统结构图、界面布局、程序流程图、网络图、分布图、数据库模式、…)信息系统模型分析模型(逻辑模型)结构化方法面向数据流/结构化进行需求分析的方法(60-70年代初,美国Yourdon公司提出)结构化分析方法适合于数据处理类型软件的需求分析结构化分析帮助开发人员定义系统需要什么,系统需要存储和使用哪些数据,系统需要什么样的输入和输出以及如何把这些功能结合在一起完成任务结构化分析方法按照软件内部数据传递、变换的关系,使用自顶向下逐层分解的系统分析方法来定义需求。在结构化基础上,完成系统规格说明,建立一个系统自顶向下的逻辑模型。结构化方法面向数据流/结构化进行需求分析的方法(60-70结构化方法(续1)结构化分析方法的核心是数据流图。数据流图:一种表示信息流程和信息变换过程的图解方法。数据词典:定义数据流图中的数据和加工。描述加工逻辑的工具:结构化语言、判定表、判定树等工具(详细描述数据流图中不能被再分解的每一个基本加工的处理逻辑)。结构化分析方法的实质是采用一组分层数据流图及相应的数据字典作为系统的逻辑模型,是一种依赖于数据流图的自顶向下的建模方法。结构化方法(续1)结构化分析方法的核心是数据流图。结构化方法(续2)结构化分析方法基本步骤:(1)自顶向下逐层功能分解分层DFD(2)由后向前,定义数据和加工数据字典,基本加工描述说明(3)根据需要,分析复杂数据和动态模型:E-R图,控制流图(CFD),控制说明(CSPEC),状态图(STD)(4)编写软件需求规格说明书(SRS)结构化方法(续2)结构化分析方法基本步骤:复习软件需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发的软件系统中各个有意义方面所的陈述的一个集合。需求的层次:业务需求、用户需求、功能需求、非功能需求。需求分析的过程:需求获取、需求分析加工、编写文档、需求评审、需求管理。常用需求分析方法:结构化分析、面向对象分析。结构化分析:数据流图+数据字典复习软件需求就是以一种清晰、简洁、一致且无二义性的方式,第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析

功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)

第四章需求分析Outlines数据流图(DFD,DataFlowDiagram)概念:一种描述信息系统逻辑模型的图形化工具,表示信息系统的主要需求,能综合反映出信息在系统中流动、处理和存储的情况。大型软件系统:分层数据流图(Why)分层数据流图可实现信息抽象

高层数据流图是低层数据流图的抽象表示,低层数据流图表现了高层数据流图中有关数据的处理细节。实现信息隐藏

高层次数据流图不体现低层次数据流图的细节,掩盖了低层数据处理的功能关系数据流图(DFD,DataFlowDiagram)概念分层数据流图顶层DFD仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据中间层DFD则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。底层DFD是指其加工不需再做分解的数据流图系统输入1输入n输出1输出nSF1F2F1F2基本系统模型顶层数据流图一层数据流图二层数据流图P1.1P1.2P2.1P2.2P2.1P3.1P3.2P3.3P3.3F2F1F1F2系统S的总图P1P2P3F1F2F1F2P1.1P1.2F1P2.1P2.2P2.1F2P3.1P3.2P3.3P3.3F1F2分层数据流图顶层DFD仅包含一个加工,它代表被开发系统。它的数据流图基本元素(1)外部实体(ExternalEntity)/数据源点、终点-代表系统之外的人、物或组织-它发出或接收系统的数据,其作用是提供系统和外界环境之间关系的注释性说明数据流(DataFlow)-表示DFD中过程、数据存储和外部实体之间的数据移动。-数据流不代表控制流,数据流反映处理的对象,控制流则是一种选择或用来影响过程的性质过程/加工/处理(Process)-对数据执行某种操作或变化,是把输入数据交换成输出数据的一种变换。或编号加工名外部实体外部实体或数据流图基本元素(1)外部实体(ExternalEntit数据流图基本元素(2)数据存储(DataStorage)-数据存储不一定等同于一个文件,可以表示文件、文件的一部分、数据库元素或记录的一部分等。-数据可以存储在磁盘、存储器和其他任何介质上。-指向数据存储的箭头可是是单向,也可以是双向的。修改库存商品库存检索商品信息商品目录数据名称或编号数据名称或数据流图基本元素(2)数据存储(DataStorage)修数据流图绘制步骤确定系统的外部项画出顶层图自顶向下逐层分解直到基本加工检查征求用户意见定稿复审例:学生注册课程系统

某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程(讲课教师)情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程(选课学生)情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。数据流图绘制步骤确定系统的外部项例:学生注册课程系统

某数据流图绘制实例:学生注册课程系统(1)绘制顶层DFD

将整个系统看作一个过程/加工,提供和接收数据的外部实体在系统之外,其他任何事情属于系统范围。由于数据存储属于系统内部,因此不出现在顶层DFD中。37数据流图绘制实例:学生注册课程系统(1)绘制顶层DFD37数据流图绘制实例:学生注册课程系统(2)DFD细化:用一个过程符号表示系统响应一个事件.一层DFD:38数据流图绘制实例:学生注册课程系统(2)DFD细化:用一个过数据流图绘制实例:学生注册课程系统(3)加工5的二层DFD39数据流图绘制实例:学生注册课程系统(3)加工5的二层DFD3数据流图绘制-检查(1)高质量的DFD是可读的、内部一致、准确表示系统需求的。数据流图不应反映处理的顺序。数据流图中所有元素的命名应当对客户有意义,且与用户业务相关。为便于查阅,进行层次分解是要对图进行编号。数据应通过加工进行流动,避免从一个数据存储直接流向另一个数据存储。40数据2储户处理1帐户数据1储户检查合理性取款单合理取款单帐户数据流图绘制-检查(1)高质量的DFD是可读的、内部一致、准数据终点没有输出!数据源加工没有输入!加工数据流图绘制-检查(2)

每个加工至少有一个输入数据流和一个输出数据流数据流必须要么从某个加工流出、要么流入某个加工,而不能直接从外部项流向数据存储等等。图示的几种流动都是不合理的外部实体外部实体外部实体数据存储数据终点数据存储数据存储数据存储数据终点没有输出!数据源加工没有输入!加工数据流图绘制-检查数据流图绘制-检查(3)复杂最小化:7±2规则(Miller数)-单个DFD中不应有超过7±2个加工。-单个DFD不应超过7±2个数据流进出一个加工、数据存储和数据元素。接口最小化-接口是指一个问题或描述中的一部分与其他部分的连接。-与7±2个规则相关,接口应保证最小化。-当单个过程有大量接口以致于复杂到不可以理解时,可以把这种过程分解为两个或多个过程。42数据流图绘制-检查(3)复杂最小化:7±2规则(Miller数据流图绘制-检查(4)数据流不一致问题-一个加工和它的加工分解在数据流内容中有差别。有数据流出但没有相应的数据流入有数据流入但没有相应的数据流出。平衡-进出加工的数据流与进出加工分解DFD的数据流在内容上一致。-子图代表了父图中某个过程的细节(详细描述),父图代表了子图间的接口(抽象描述),二者代表了同一个东西。-子图输入、输出数据流必须和父图中相应过程的输入、输出数据流相一致(达到“平衡”)。43数据流图绘制-检查(4)数据流不一致问题43作业:分房管理问题:住户把分房单交给房产管理员,管理员要先根据住房标准文件核准住户的住房条件,如果够标准再根据房产文件察看有无空房可以分配,如果有则分配住房并且计算房租,记录入房租文件,并将房子租金通知住户。如果不够标准或者无房可分,则不予分房,并对住户下发通知。绘制顶层及第1,2层的DFD图

作业:分房管理问题:住户把分房单交给房产管理员,管理员要先根数据字典(DataDictionary,简称DD)数据字典是用来定义DFD中各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型。数据字典的条目内容数据流、数据存储、数据项、基本加工。数据字典(DataDictionary,简称DD)数据字数据字典的符号46数据字典的符号46数据流条目

在一个数据流图上,数据按数据流为单位传输。主要内容有:数据流名称、别名及简述。数据流的来源:可能是一个外部实体、处理逻辑、数据存贮。数据流的去处。(同上)数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义。数据流的流通量:单位时间内的传输次数。数据流条目在一个数据流图上,数据按数据流为单数据流条目举例数据流的名称:销售科发货单别名:无简述:工厂对顾客办理的发货单数据流来源:“销售科”外部实体数据流去向:“核对发货单”处理逻辑数据流组成:发货单标识+顾客+配件流通量:50份/天数据流条目举例数据流的名称:销售科发货单数据存储条目

数据存储是数据结构停留或保存的场所。主要内容:数据存储的名称、别名及其简述。流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向。数据存储的组成:指它所包含的数据项或数据结构。组织方式、查询要求等。数据存储条目数据存储是数据结构停留或保存的场数据存储条目举例数据存储名称:销售历史别名:无简述:公司从月初到目前为止所有配件的销售量。流入的数据流:“顾客的发货单”,来源是“产生发货单”处理逻辑。流出的数据流:“销售量”,去向是“产生销售报表”处理逻辑。数据存贮的组成:配件编号+日期+销售量。组织方式:以配件编号为关键字建立索引。查询要求:能立即查询。数据存储条目举例数据存储名称:销售历史数据项条目

数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。主要内容有:数据项名称、别名及简述:给数据项取名时,按“顾名思义”的原则,反映该数据项的含义,易于他人理解、记忆。数据项的类型数据项的长度:指数据项所包含的字符或数字的位数。取值的范围和取值的含义数据项条目数据项也称数据元素,是“不可再分”数据项条目举例数据项名称:货物编号别名:G_No,Goods_No简述:本公司的所有货物的编号。类型:字符串长度:10取值/含义:第一位:进口/国产2~4位:类别5~7位:规格8~10:品名编号数据项条目举例数据项名称:货物编号加工条目用来说明DFD中基本加工的处理逻辑的。加工名;编号;简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的。激发条件;优先级;输入、输出;加工逻辑:描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,描述如何把输入数据流变换为输出数据流的加工规则。常用的描述方法:结构化语言、判定表及判定树。加工条目用来说明DFD中基本加工的处理逻辑的。加工条目举例加工名:确定能否供货编号:1.2简述:激发条件:接受到合格订单时优先级:普通输入:合格订单输出:可供货订单、缺货订单加工逻辑:根据库存记录IF订单项目的数量<该项目库存量的临界值THEN可供货处理ELSE此订单缺货,登记,待进货后再处理ENDIF加工条目举例加工名:确定能否供货DFD过程/基本加工描述在过程分解中,一个高层的加工可进一步分解。当加工分解到足够简单可以实现时,分解便停止。加工逻辑说明方法:-----结构化语言-----判定树(决策树)-----判定表(决策表)DFD过程/基本加工描述在过程分解中,一个高层的加工可进一步结构化语言(1)结构化语言/伪代码/过程设计语言PDL介于自然语言与计算机语言之间语句类型:顺序语句、条件语句、循环语句结构化语言的词汇表由命令动词数据词典中定义的名字有限的自定义词逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。结构化语言(1)结构化语言/伪代码/过程设计语言PDL语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:WHILE_DO或REPEAT_UNTIL结构。判定结构:IF_THEN_ELSE或

CASE_OF结构;结构化语言(2)语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语商店业务处理系统中“检查发货单”IF发货单金额超过$500THEN

IF欠款超过了60天THEN在偿还欠款前不予批准ELSE(欠款未超期)发批准书,发货单ENDIFELSE(发货单金额未超过$500)IF欠款超过60天THEN发批准书,发货单及赊欠报告ELSE(欠款未超期)发批准书,发货单ENDIFENDIF商店业务处理系统中“检查发货单”IF发货单金额超过$500判定树一种图形工具,适合描述加工中有多个策略,而且每个策略和若干条件有关的逻辑功能。判定树一种图形工具,适合描述加工中有多个策略,而且每个策略和(3)判定表(决策表)

如果判断的条件多,各条件又相互组合,使用判定表来描述比较合适60田字形结构:条件、状态、决策方案、决策规则。决策表读法:顺时针方向。(3)判定表(决策表)如果判断的条件多,各条件又相互组判定表(决策表)绘制步骤分析决策问题涉及几个条件分析每个条件有几个取值区间画出条件取值分析表,分析条件的各种可能组合分析决策问题涉及几个决策方案画出有条件组合的决策表决定各种条件组合的决策方案(填写决策规则)合并化简(相同决策方案所对应的各个条件组合是否存在无需判断的条件)。判定表(决策表)绘制步骤分析决策问题涉及几个条件(3)判定表例子画出下列职工调配决策表:若年龄不满18岁,文化程度是小学则脱产学习,文化程度是中学当电工;若年龄满18岁但不满40岁,文化程度是小学或中学,若是男性,则当钳工,若是女性,则当车工;若年龄满40岁及以上者,文化程度是小学或中学,则当材料员;凡大学毕业生,都当技术员。62(3)判定表例子画出下列职工调配决策表:62(3)判定表例子条件取值表:63(3)判定表例子条件取值表:6364判定表:若年龄不满18岁,文化程度是小学则脱产学习,文化程度是中学当电工;若年龄满18岁但不满40岁,文化程度是小学或中学,若是男性,则当钳工,若是女性,则当车工;若年龄满40岁及以上者,文化程度是小学或中学,则当材料员;凡大学毕业生都当技术员(3)判定表例子64判定表:若年龄不满18岁,文化程度是小学则脱产学习,文化判定表(决策表)绘制练习问题说明:某公司为本科以上学历的人重新分配工作,分配原则如下:1.如果年龄不满30岁,学历是本科,男性要求报考研究生,女性则担任行政工作;2.如果年龄满30岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;3.如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。请绘制本问题决策表。判定表(决策表)绘制练习问题说明:第4章_需求分析XXXX0308无建筑效果版课件第4章_需求分析XXXX0308无建筑效果版课件示例:图书订购系统DFD示例:图书订购系统DFD实例考务处理系统的功能选自郑人杰实用软件工程(1)

对考生送来的报名单进行检查;(2)

对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)

对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)

制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)

按地区进行成绩分类统计和试题难度分析,产生统计分析表。实例考务处理系统的功能选自郑人杰实用软件工程(1)对考生送根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两个主要数据流。输入的源点和输出终点是考生、考试中心和阅卷站。然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第0层数据流图。根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程顶层数据流图考生考务处理系统考试中心阅卷站不合格报名表报名表准考证考生通知单成绩单合格标准错误成绩单考生名单统计分析表顶层数据流图考考务考阅卷站不合格报名表报名表准考证考生通知单报名表准考证1登记报名表2统计成绩不合格报名表考生通知单成绩单统计分析表第0层数据流图考生名册合格标准考生名单错误成绩单报名表准考证12不合格考生通知单成绩单统计分析表第0层数据流第一层数据流图(a)1.1

检查报名表报名表准考证1.2编准考证号码不合格报名表考生名册考生名单合格报名表1.3登记考生合格报名表第一层数据流图(a)1.1报名表准考证1.2不合格考生名第一层数据流图(b)2.1检查成绩单2.2审定合格者考生名册正确成绩单2.3制作通知单2.4分析统计成绩2.5分析试题难度试题得分表考生通知单难度分析表合格标准分类统计表成绩单错误成绩单经审定的成绩单第一层数据流图(b)2.12.2考生名册正确2.32.42某银行的计算机储蓄系统:将储户填写的取款单或存款单输入系统,如果是存款,系统记录存款人姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;如果是取款,系统计算有无余款,按取款额打印付款结算单给储户。某银行的计算机储蓄系统:将储户填写的取款单或存款单DFD分层数据流程图举例教学管理数据流程顶图DFD分层数据流程图举例教学管理数据流程图教学管理数据流程图分层数据流程图举例学籍管理数据流程分层数据流程图举例第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析

功能模型(数据流图数据与数据字典)

数据模型(实体关系图)

行为模型(状态转换图)第四章需求分析OutlinesER模型(Entity-RelationshipApproach)实体:客观世界中存在且可相互区分的事物。用矩形框代表。关系:事物间是有联系的。(1:1、1:N、M:N)用连接相关实体的菱形框表示。属性:实体或关系所具有的性质。用椭圆形或圆角矩形表示。教师学生课程教学学号职称成绩学分1NNMER模型(Entity-RelationshipAppro实体关系图(ERD)实体是客观世界中存在的且可相互区分的事务。81⑴实体

例:,

,StudentInstructorClass实体关系图(ERD)81⑴实体实体关系图(ERD)(续)客观世界中的事物彼此间往往是有联系的

*一对一(1:1):对象A的一个实例只能关联到对象B的一个实例,对象B的一个实例也只能关联到对象A的一个实例,如一个丈夫只能有一个妻子,一个妻子也只能有一个丈夫。

*一对多(1:N):对象A的一个实例可以关联到对象B的一个或多哥实例,而对象B的一个实例只能关联到对象A的一个实例,如一个母亲可以有多个孩子,而一个孩子只能有一个母亲。*多对多(M:N):对象A的一个实例可以关联到对象B的一个或多个实例,同时对象B的一个实例也可以关联到对象A的一个或多个实例,如一个叔叔可以有多个侄子,一个侄子也可以有多个叔叔。82⑵关系注册教实体关系图(ERD)(续)客观世界中的事物彼此间往往是有联系实体关系图(ERD)(续)

(3)属性属性是实体或联系所具有的性质。通常一个实体由若干个属性来刻画。例如,“学生”实体有学号、姓名、性别、系、年级83111NMN例:姓名学号实体关系图(ERD)(续)(3)属性83111NMN例:实体关系图(ERD)(续)实体关系图(Entity-RelationshipDiagram,ERD)-用来定义数据存储需求的模型。84教师学生课程教学学号职称成绩学分1NNM数据实体数据实体:系统需要存储的有关信息系统的信息.

传统方法中,数据实体与过程是分离的-数据存储需求包括数据实体、数据实体的属性以及它们之间的联系。实体关系图(ERD)(续)实体关系图(Entity-Rel关联实体-表示两个数据实体之间多对多关系的数据实体,例如学生和课程之间存在的选课信息。E-R图中表示实体联系的符号如下:85在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。实体关系图(ERD)(续)关联实体85在E-R图中,每个方框表示实体型或属性,方框之间例:“注册管理员”呢?遗漏了吗?通常多对多关系需要加入关联实体“成绩”关联实体实体关系图(ERD)(续)例:“注册管理员”呢?遗漏了吗?通常多对多关系需要加入关联状态迁移图状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。圆圈“○”表示可得到的系统状态箭头“→”表示从一种状态向另一种状态的迁移。动态分析工具:状态迁移图时序图Petri网状态迁移图状态迁移图是描述系统的状态如何相应外部的信号进行推例如,当有多个申请占用CPU运行的进程时,有关CPU分配的进程的状态迁移。例如,当有多个申请占用CPU运行的进程时,有关CPU分可得到的状态=就绪,运行,等待生成的事件=t1,t2,t3,t4

t1─

中断事件

t2─

中断已处理

t3─

分配CPU

t4─

用完CPU时间可得到的状态=就绪,运行,等待状态迁移图的优点状态之间的关系能够直观地捕捉到由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具状态迁移图的优点状态之间的关系能够直观地捕捉到演讲完毕,谢谢观看!演讲完毕,谢谢观看!92软件工程

SoftwareEngineering2011新春版1软件工程Softwar第四章需求分析Outlines需求分析概述

软件需求重要性软件定义软件需求任务需求工程过程结构化方法第四章需求分析Outlines软件需求问题(1)软件开发现状:复杂的软件系统开发,总令人不满意美国2500亿美元/年,175,000个软件项目其中,16%按时、按预算、满足要求地交付30%左右在完成前被取消52.7%项目成本是预算成本的189%项目失败原因缺乏用户参与:13%不完整的需求规格说明:12%不断改变的需求和规格说明:21%软件需求问题(1)软件开发现状:复杂的软件系统开发,总令人不软件需求问题(2)各阶段缺陷对交付软件产品的影响

需求缺陷约占全部提交缺陷的1/3软件需求问题(2)各阶段缺陷对交付软件产品的影响需求错误的代价96需求错误的代价5什么是软件需求需求的定义(IEEE,1997)

(1)用户解决问题或达到目标所需的条件或能力。

(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。

(3)一种反映上面(1)或(2)所描述的条件或能力的文档说明。

需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。什么是软件需求需求的定义(IEEE,1997)软件需求的层次业务需求(businessrequirement)反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(userrequirement)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。非功能需求(non-functionalrequirement)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。软件需求的层次业务需求(businessrequireme软件需求的层次(续)例:银行ATM系统业务需求系统为用户提供自助存取款服务用户需求

用户可以随时安全、快捷地进行存款和取款功能需求

允许用户从银行帐户中取款允许用户向银行帐户中存款允许用户查询从银行帐户中的余额使用8位数字密码检验用户存取的合法性软件需求的层次(续)例:银行ATM系统软件需求的层次(续)例:银行ATM系统(2)非功能需求系统在20秒内响应所有请求除了每天30分钟维护外,系统每周7天、每天24小时都可以用需求来源

客户或用户(如银行职员、管理人员、用户)行业标准、政策法规当前手工处理系统的文档咨询银行领域专家软件需求的层次(续)例:银行ATM系统(2)需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。需求分析的任务…………抽象实现改进老系统模型新模型新系统需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑需求分析的过程(1)

需求分析的过程是开发人员与用户共同协商,明确系统的全部功能、性能以及运行规格,并且使用软件开发人员和用户都能理解的语言准确地表达出来,即完成需求规格说明的过程。说白了,就是要明确“做什么?”整个过程分为以下四个阶段:

问题识别(需求获取)、需求分析(分析与综合)、编写规格说明文档、需求评审。工作产品活动需求分析的过程(1)需求分析的过程是开发人员与用户1.问题识别/需求获取:双方确定问题的综合需求,识别系统相关者的需求,使其达到共识。☻功能需求:系统必须做什么? ☻性能需求:做得怎样?例:responsetime,memory,back-upmemory,……☻环境需求:运行环境、软硬件配置等。☻用户界面需求☻可靠性、安全性、保密性、可移植性和可维护性等方面的需求。☻将来可能提出的要求需求分析的过程(2)1.问题识别/需求获取:双方确定问题的综合需求,识别系统相关2.分析与综合:

分析和整理所收集的需求,形成完整的分析模型。需求分析的过程(3)3.编写文档:以一致的、完备和无二义性的形式表达需求。☻编写需求说明书 ☻编写初步用户使用手册☻编写确认测试计划☻修改完善项目开发计划2.分析与综合:需求分析的过程(3)3.编写文档:以一致的、需求分析的过程(4)验证需求的一致性验证需求的完整性验证需求的现实性验证需求的有效性方法:

人工审查开发原型系统-探索型使用软件工具—完整性、一致性4.需求评审:确保需求说明准确、完整地表达必要的质量特点。5.需求管理:在整个软件开发过程中进行需求跟踪、变更控制、版本控制等。需求分析的过程(4)验证需求的一致性方法:4.需求评审:确保常用的分析、设计方法面向数据流的(结构化)法(SA)面向数据结构的Jackson方法(JSD)结构化数据系统开发方法(DSSD)面向对象的方法(OOA)等常用的分析、设计方法面向数据流的(结构化)法(SA)需求分析的方法结构化分析方法:由数据流和数据字典构成,适于数据处理领域问题。该方法的一个难点是确定数据流之间的变换,而且数据字典的规模也是一个问题,对数据结构的强调很少。面向对象的分析:采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。需求分析的方法结构化分析方法:由数据流和数据字典构成,适于数注意事项在需求分析时要注意用户对软件开发的了解程度,避免造成两种极端认识。需求的变动或新增是一个极为普遍的问题,既然普遍,所以软件开发人员不仅应该在心理上接受这种变动,还应该在需求分析时积极的发掘需求。需求人员与用户广泛交流,从深度和广度挖掘可能的需求,并应形成规范的需求文档,经用户确认。如果为写文档而写文档,不进行及时更新,甚至准备在软件开发完成后再补文档,这是绝对错误的观点。注意事项在需求分析时要注意用户对软件开发的了解程度,避免造成可能的错误没有足够用户参与(类型、数量)开发方与用户沟通可能处于劣势不要锦上添花,画蛇添足不要写的过于简练,过于模糊计划做需求的时间少了,导致需求不完整需求在签约前要与决策者沟通好到竞争对手那儿找不足不要被过细的不成熟的细节影响记下不明确的需求,约定期限明确,否则易遗漏可能的错误没有足够用户参与(类型、数量)需求获取(1)真正理解项目中描述的客户需求110需求获取(1)真正理解项目中描述的客户需求19需求获取(2)聆听用户的需求-与各种层次的客户进行充分的交流和沟通,包括决策领导、使用部门的领导、具体使用人员、系统维护人员等分析和整理所获取的信息-借助一些工具和方法,从用户一般性的陈述里面提取用户的真正需求,并由此确定软件的功能、性能、接口关系、约束条件等形成文档化的描述

111需求获取(2)聆听用户的需求20需求获取(3)需求的获取技术-向系统相关者进行问卷调查-主持与用户的面谈和讨论-需求专题讨论会-复查现有的报表、表格和过程描述-观察商业过程和工作流-应用用例-建立原型112需求规格说明:参见相应的模板需求获取(3)需求的获取技术21需求规格说明:参见相应的模板需求文档需求文档第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析

功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)

第四章需求分析Outlines

模型(Model)软件开发建模的重要性软件系统建模的作用:(1)便于开发人员展现系统,在建模过程中了解信息;(2)通过抽象降低复杂度,“分而治之”的方法;(3)有助于回忆所有细节、有助于与其他开发小组交流、有助于和用户交流;(4)为维护和升级提供文档;…建模的实质:对现实的简化。模型(Model)软件开发建模的重要性

软件模型系统:复杂;多个模型涵盖细节信息;模型种类:

数学模型:描述系统技术方面的一系列公式。

描述模型:对系统某一方面的描述性备忘录、报表或列表;

图形模型:图表或系统某些方面的示意性表示。软件模型系统:复杂;多个模型涵盖细节信息;

信息系统模型分析模型(逻辑模型)-详细定义了系统需求而没有局限于具体技术。(数据流图、实体关系图、数据字典、用例图、时序图、协作图、状态转换图…)设计模型(物理模型)-显示如何使用具体技术来实现系统的某些方面。(系统结构图、界面布局、程序流程图、网络图、分布图、数据库模式、…)信息系统模型分析模型(逻辑模型)结构化方法面向数据流/结构化进行需求分析的方法(60-70年代初,美国Yourdon公司提出)结构化分析方法适合于数据处理类型软件的需求分析结构化分析帮助开发人员定义系统需要什么,系统需要存储和使用哪些数据,系统需要什么样的输入和输出以及如何把这些功能结合在一起完成任务结构化分析方法按照软件内部数据传递、变换的关系,使用自顶向下逐层分解的系统分析方法来定义需求。在结构化基础上,完成系统规格说明,建立一个系统自顶向下的逻辑模型。结构化方法面向数据流/结构化进行需求分析的方法(60-70结构化方法(续1)结构化分析方法的核心是数据流图。数据流图:一种表示信息流程和信息变换过程的图解方法。数据词典:定义数据流图中的数据和加工。描述加工逻辑的工具:结构化语言、判定表、判定树等工具(详细描述数据流图中不能被再分解的每一个基本加工的处理逻辑)。结构化分析方法的实质是采用一组分层数据流图及相应的数据字典作为系统的逻辑模型,是一种依赖于数据流图的自顶向下的建模方法。结构化方法(续1)结构化分析方法的核心是数据流图。结构化方法(续2)结构化分析方法基本步骤:(1)自顶向下逐层功能分解分层DFD(2)由后向前,定义数据和加工数据字典,基本加工描述说明(3)根据需要,分析复杂数据和动态模型:E-R图,控制流图(CFD),控制说明(CSPEC),状态图(STD)(4)编写软件需求规格说明书(SRS)结构化方法(续2)结构化分析方法基本步骤:复习软件需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发的软件系统中各个有意义方面所的陈述的一个集合。需求的层次:业务需求、用户需求、功能需求、非功能需求。需求分析的过程:需求获取、需求分析加工、编写文档、需求评审、需求管理。常用需求分析方法:结构化分析、面向对象分析。结构化分析:数据流图+数据字典复习软件需求就是以一种清晰、简洁、一致且无二义性的方式,第四章需求分析Outlines需求分析概述结构化方法模型及其作用结构化分析

功能模型(数据流图数据与数据字典)数据模型(实体关系图)行为模型(状态转换图)

第四章需求分析Outlines数据流图(DFD,DataFlowDiagram)概念:一种描述信息系统逻辑模型的图形化工具,表示信息系统的主要需求,能综合反映出信息在系统中流动、处理和存储的情况。大型软件系统:分层数据流图(Why)分层数据流图可实现信息抽象

高层数据流图是低层数据流图的抽象表示,低层数据流图表现了高层数据流图中有关数据的处理细节。实现信息隐藏

高层次数据流图不体现低层次数据流图的细节,掩盖了低层数据处理的功能关系数据流图(DFD,DataFlowDiagram)概念分层数据流图顶层DFD仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据中间层DFD则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。底层DFD是指其加工不需再做分解的数据流图系统输入1输入n输出1输出nSF1F2F1F2基本系统模型顶层数据流图一层数据流图二层数据流图P1.1P1.2P2.1P2.2P2.1P3.1P3.2P3.3P3.3F2F1F1F2系统S的总图P1P2P3F1F2F1F2P1.1P1.2F1P2.1P2.2P2.1F2P3.1P3.2P3.3P3.3F1F2分层数据流图顶层DFD仅包含一个加工,它代表被开发系统。它的数据流图基本元素(1)外部实体(ExternalEntity)/数据源点、终点-代表系统之外的人、物或组织-它发出或接收系统的数据,其作用是提供系统和外界环境之间关系的注释性说明数据流(DataFlow)-表示DFD中过程、数据存储和外部实体之间的数据移动。-数据流不代表控制流,数据流反映处理的对象,控制流则是一种选择或用来影响过程的性质过程/加工/处理(Process)-对数据执行某种操作或变化,是把输入数据交换成输出数据的一种变换。或编号加工名外部实体外部实体或数据流图基本元素(1)外部实体(ExternalEntit数据流图基本元素(2)数据存储(DataStorage)-数据存储不一定等同于一个文件,可以表示文件、文件的一部分、数据库元素或记录的一部分等。-数据可以存储在磁盘、存储器和其他任何介质上。-指向数据存储的箭头可是是单向,也可以是双向的。修改库存商品库存检索商品信息商品目录数据名称或编号数据名称或数据流图基本元素(2)数据存储(DataStorage)修数据流图绘制步骤确定系统的外部项画出顶层图自顶向下逐层分解直到基本加工检查征求用户意见定稿复审例:学生注册课程系统

某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程(讲课教师)情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程(选课学生)情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。数据流图绘制步骤确定系统的外部项例:学生注册课程系统

某数据流图绘制实例:学生注册课程系统(1)绘制顶层DFD

将整个系统看作一个过程/加工,提供和接收数据的外部实体在系统之外,其他任何事情属于系统范围。由于数据存储属于系统内部,因此不出现在顶层DFD中。128数据流图绘制实例:学生注册课程系统(1)绘制顶层DFD37数据流图绘制实例:学生注册课程系统(2)DFD细化:用一个过程符号表示系统响应一个事件.一层DFD:129数据流图绘制实例:学生注册课程系统(2)DFD细化:用一个过数据流图绘制实例:学生注册课程系统(3)加工5的二层DFD130数据流图绘制实例:学生注册课程系统(3)加工5的二层DFD3数据流图绘制-检查(1)高质量的DFD是可读的、内部一致、准确表示系统需求的。数据流图不应反映处理的顺序。数据流图中所有元素的命名应当对客户有意义,且与用户业务相关。为便于查阅,进行层次分解是要对图进行编号。数据应通过加工进行流动,避免从一个数据存储直接流向另一个数据存储。131数据2储户处理1帐户数据1储户检查合理性取款单合理取款单帐户数据流图绘制-检查(1)高质量的DFD是可读的、内部一致、准数据终点没有输出!数据源加工没有输入!加工数据流图绘制-检查(2)

每个加工至少有一个输入数据流和一个输出数据流数据流必须要么从某个加工流出、要么流入某个加工,而不能直接从外部项流向数据存储等等。图示的几种流动都是不合理的外部实体外部实体外部实体数据存储数据终点数据存储数据存储数据存储数据终点没有输出!数据源加工没有输入!加工数据流图绘制-检查数据流图绘制-检查(3)复杂最小化:7±2规则(Miller数)-单个DFD中不应有超过7±2个加工。-单个DFD不应超过7±2个数据流进出一个加工、数据存储和数据元素。接口最小化-接口是指一个问题或描述中的一部分与其他部分的连接。-与7±2个规则相关,接口应保证最小化。-当单个过程有大量接口以致于复杂到不可以理解时,可以把这种过程分解为两个或多个过程。133数据流图绘制-检查(3)复杂最小化:7±2规则(Miller数据流图绘制-检查(4)数据流不一致问题-一个加工和它的加工分解在数据流内容中有差别。有数据流出但没有相应的数据流入有数据流入但没有相应的数据流出。平衡-进出加工的数据流与进出加工分解DFD的数据流在内容上一致。-子图代表了父图中某个过程的细节(详细描述),父图代表了子图间的接口(抽象描述),二者代表了同一个东西。-子图输入、输出数据流必须和父图中相应过程的输入、输出数据流相一致(达到“平衡”)。134数据流图绘制-检查(4)数据流不一致问题43作业:分房管理问题:住户把分房单交给房产管理员,管理员要先根据住房标准文件核准住户的住房条件,如果够标准再根据房产文件察看有无空房可以分配,如果有则分配住房并且计算房租,记录入房租文件,并将房子租金通知住户。如果不够标准或者无房可分,则不予分房,并对住户下发通知。绘制顶层及第1,2层的DFD图

作业:分房管理问题:住户把分房单交给房产管理员,管理员要先根数据字典(DataDictionary,简称DD)数据字典是用来定义DFD中各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型。数据字典的条目内容数据流、数据存储、数据项、基本加工。数据字典(DataDictionary,简称DD)数据字数据字典的符号137数据字典的符号46数据流条目

在一个数据流图上,数据按数据流为单位传输。主要内容有:数据流名称、别名及简述。数据流的来源:可能是一个外部实体、处理逻辑、数据存贮。数据流的去处。(同上)数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义。数据流的流通量:单位时间内的传输次数。数据流条目在一个数据流图上,数据按数据流为单数据流条目举例数据流的名称:销售科发货单别名:无简述:工厂对顾客办理的发货单数据流来源:“销售科”外部实体数据流去向:“核对发货单”处理逻辑数据流组成:发货单标识+顾客+配件流通量:50份/天数据流条目举例数据流的名称:销售科发货单数据存储条目

数据存储是数据结构停留或保存的场所。主要内容:数据存储的名称、别名及其简述。流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向。数据存储的组成:指它所包含的数据项或数据结构。组织方式、查询要求等。数据存储条目数据存储是数据结构停留或保存的场数据存储条目举例数据存储名称:销售历史别名:无简述:公司从月初到目前为止所有配件的销售量。流入的数据流:“顾客的发货单”,来源是“产生发货单”处理逻辑。流出的数据流:“销售量”,去向是“产生销售报表”处理逻辑。数据存贮的组成:配件编号+日期+销售量。组织方式:以配件编号为关键字建立索引。查询要求:能立即查询。数据存储条目举例数据存储名称:销售历史数据项条目

数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。主要内容有:数据项名称、别名及简述:给数据项取名时,按“顾名思义”的原则,反映该数据项的含义,易于他人理解、记忆。数据项的类型数据项的长度:指数据项所包含的字符或数字的位数。取值的范围和取值的含义数据项条目数据项也称数据元素,是“不可再分”数据项条目举例数据项名称:货物编号别名:G_No,Goods_No简述:本公司的所有货物的编号。类型:字符串长度:10取值/含义:第一位:进口/国产2~4位:类别5~7位:规格8~10:品名编号数据项条目举例数据项名称:货物编号加工条目用来说明DFD中基本加工的处理逻辑的。加工名;编号;简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的。激发条件;优先级;输入、输出;加工逻辑:描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,描述如何把输入数据流变换为输出数据流的加工规则。常用的描述方法:结构化语言、判定表及判定树。加工条目用来说明DFD中基本加工的处理逻辑的。加工条目举例加工名:确定能否供货编号:1.2简述:激发条件:接受到合格订单时优先级:普通输入:合格订单输出:可供货订单、缺货订单加工逻辑:根据库存记录IF订单项目的数量<该项目库存量的临界值THEN可供货处理ELSE此订单缺货,登记,待进货后再处理ENDIF加工条目举例加工名:确定能否供货DFD过程/基本加工描述在过程分解中,一个高层的加工可进一步分解。当加工分解到足够简单可以实现时,分解便停止。加工逻辑说明方法:-----结构化语言-----判定树(决策树)-----判定表(决策表)DFD过程/基本加工描述在过程分解中,一个高层的加工可进一步结构化语言(1)结构化语言/伪代码/过程设计语言PDL介于自然语言与计算机语言之间语句类型:顺序语句、条件语句、循环语句结构化语言的词汇表由命令动词数据词典中定义的名字有限的自定义词逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。结构化语言(1)结构化语言/伪代码/过程设计语言PDL语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示其基本控制结构有三种:简单陈述句结构:避免复合语句;重复结构:WHILE_DO或REPEAT_UNTIL结构。判定结构:IF_THEN_ELSE或

CASE_OF结构;结构化语言(2)语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语商店业务处理系统中“检查发货单”IF发货单金额超过$500THEN

IF欠款超过了60天THEN在偿还欠款前不予批准ELSE(欠款未超期)发批准书,发货单ENDIFELSE(发货单金额未超过$500)IF欠款超过60天THEN发批准书,发货单及赊欠报告ELSE(欠款未超期)发批准书,发货单ENDIFENDIF商店业务处理系统中“检查发货单”IF发货单金额超过$500判定树一种图形工具,适合描述加工中有多个策略,而且每个策略和若干条件有关的逻辑功能。判定树一种图形工具,适合描述加工中有多个策略,而且每个策略和(3)判定表(决策表)

如果判断的条件多,各条件又相互组合,使用判定表来描述比较合适151田字形结构:条件、状态、决策方案、决策规则。决策表读法:顺时针方向。(3)判定表(决策表)如果判断的条件多,各条件又相互组判定表(决策表)绘制步骤分析决策问题涉及几个条件分析每个条件有几个取值区间画出条件取值分析表,分析条件的各种可能组合分析决策问题涉及几个决策方案画出有条件组合的决策表决定各种条件组合的决策方案(填写决策规则)合并化简(相同决策方案所对应的各个条件组合是否存在无需判断的条件)。判定表(决策表)绘制步骤分析决策问题涉及几个条件(3)判定表例子画出下列职工调配决策表:若年龄不满18岁,文化程度是小学则脱产学习,文化程度是中学当电工;若年龄满18岁但不满40岁,文化程度是小学或中学,若是男性,则当钳工,若是女性,则当车工;若年龄满40岁及以上者,文化程度是小学或中学,则当材料员;凡大学毕业生,都当技术员。153(3)判定表例子画出下列职工调配决策表:62(3)判定表例子条件取值表:154(3)判定表例子条件取值表:63155判定表:若年龄不满18岁,文化程度是小学则脱产学习,文化程度是中学当电工;若年龄满18岁但不满40岁,文化程度是小学或中学,若是男性,则当钳工,若是女性,则当车工;若年龄满40岁及以上者,文化程度是小学或中学,则当材料员;凡大学毕业生都当技术员(3)判定表例子64判定表:若年龄不满18岁,文化程度是小学则脱产学习,文化判定表(决策表)绘制练习问题说明:某公司为本科以上学历的人重新分配工作,分配原则如下:1.如果年龄不满30岁,学历是本科,男性要求报考研究生,女性则担任行政工作;2.如果年龄满30岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;3.如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。请绘制本问题决策表。判定表(决策表)绘制练习问题说明:第4章_需求分析XXXX0308无建筑效果版课件第4章_需求分析XXXX0308无建筑效果版课件示例:图书订购系统DFD示例:图书订购系统DFD实例考务处理系统的功能选自郑人杰实用软件工程(1)

对考生送来的报名单进行检查;(2)

对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;(3)

对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;(4)

制作考生通知单(含成绩及合格/不合格标志)送给考生;(5)

按地区进行成绩分类统计和试题难度分析,产生统计分析表。实例考务处理系统的功能选自郑人杰实用软件工程(1)对考生送根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两个主要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论