1、第 4 讲 需求分析建模,映射,抽象 (Abstract),计算中抽象的本质和使用。 在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过对不同层次的细节和指标的抽象,能够表达一个实体和系统。 源于实验科学,主要要素是数据采集方法和假设的形式说明,模型的构造与预测实验分析结果分析。 在为可能的算法、数据结构和系统结构等构造模型时使用抽象。 抽象的结果是概念符号模型。,模型 (model),模型是对现实世界某些重要方面的抽象表示。 模型是一种抽象,从某个视点、在某种抽象层次上详细说明被建模的系统。 有时我们使用术语“抽象”来表示模型,因为我们从现实世界中抽象出对我们特别有用的东西。
2、,1 通过对现实环境的调查,获得当前系统的物理模型。,学生购买教材的实际处理流程:当前系统物理模型,需求分析的过程,需求分析的过程,2 去掉具体模型中的非本质因素: 抽取现实系统的实质,抽象出当前系统的逻辑模型。,学生购买教材的逻辑模型,需求分析的过程,3 分析当前系统与目标系统的差别,建立目标系统的逻辑模型 。,计算机教材管理系统的逻辑模型,需求分析的过程,4 对目标系统的逻辑模型进行细化、改进与优化 5 需求分析的验证,需求分析的过程,需求分析建模方法,按照信息的流向、结构、和内容三个方面可以将现有的需求分析建模方法划分为: 面向信息流向:结构化分析方法 面向信息结构:Jackson分析方
3、法 面向信息内容:面向对象分析方法 描述系统需求时可以从系统的功能、行为和信息三个方面进行,侧重点可以不一样。,结构化分析方法SA,七十年代未期 Douglas Ross提出结构化分析的术语DeMarcoDEM79 进行推广,给出分析员可以创建信息流模型的主要图形记号,建议将“数据字典”和“处理说明”作为信息流模型的补充,並提供方法应用的实例。,结构化分析方法SA,采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。 方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。 一般工具:DFD、数据字典、结构化语言等。 适用于分析大型的数据
4、处理系统。,SA的结构,结构化的分析模型,核心 数据字典 描述软件工程项目的所有数据对象 中间层 实体-关系图、数据流图、状态-变迁图实体-关系图 描述数据对象之间的关系数据流图 功能建模的基础,系统或子系统对数据实施的变换、变换的功能提供信息分析的信息状态-变迁图 行为建模的基础,系统的行为模式(称“状态”)以及状态变迁的方式,结构化的分析模型,最外层数据对象描述、加工规格说明PSPEC、控制规格说明CSPEC 数据对象 表示实体-关系图中每个数据对象的属性 加工规格说明PSPEC 描述数据流图的每个功能。 控制规格说明CSPEC 描述软件控制的附加信息,结构化分析方法,功能分析工具:DFD
5、、DD、结构化语言。 行为分析工具:状态迁移图、Petri网等。 数据分析工具:ER图或者EER(扩展ER)图。 SA主要针对数据处理领域,因此,系统分析的侧重点在于功能分析和数据分析,而行为分析使用得较少。,结构化分析,结构化分析遵循的三条基本原则: 抽象 分解 映射 三个主要目标: 描述用户需要 建立创建软件设计的基础 定义软件完成后可被确认的一组需求,导入数据流图,数据流图标记,注意事项,数据流图上只限于前述四种基本图形元素。 每个加工至少有一个输入数据流和一个输出数据流。 在数据流图中,需按层给加工编号。 父图与子图的平衡。 图上每个元素都必须有名字。 不要把控制流作为数据流。 不要混
6、淆DFD和程序流程图和业务流程图!,分层数据流图及编号规则,顶层数据流图,0层、1层数据流图,0层,1层,S,2,1,3,2.2,2.1,2.3,3.1,3.2,顶层 (不编号),0层,1层,数据流图的命名规则,加工:动词短语,而不用处理、操作这些笼统的词 数据流:名词或名词短语.数据流的名字要代表整个数据流的内容,而不仅仅是它的某些部分,不使用缺乏具体含义的名字,如数据、信息等. 文件:名词或名词短语,人 事 部 门,人事工资 管理系统,会 计 部 门,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职 工,职工基本信息,职工工资单,人事工资管理系统的顶层DFD范例,职工基本 信
7、息管理 子系统,1,2,人事工资管理系统0层DFD范例,职工出缺勤信息,职工工资管理子系统,3,职工出缺 勤管理 子系统,职工基本信息,职工工资信息,人 事 部 门,会 计 部 门,职 工,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职工基本信息,职工工资单,建立职工 出缺勤信息,3.1,人事工资管理系统1层DFD:加工3.0的分解图,职工出缺勤信息,3.2,制作职工出缺勤信息 统计表,职工基本信息,职工 出缺勤报表,职工 出缺勤信息,实例分析1,机票预定系统 旅行社把预定机票的旅客信息(姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预定系统。系统为旅客安排航班,打
8、印出取票通知单(附有应交的帐款)给旅客。旅客在飞机起飞的前一天凭取票通知等交款取票,系统检验无误,系统输出机票给旅客。,如何画数据流图?,画出系统的输入输出,即先画顶层数据流图。 找出源点、终点、加工和文件 画出顶层数据流图,如何画数据流图?,画系统内部,即画下层数据流图(子系统)。,实例分析2,营业员将储户填写的存款单或取款单键入系统,如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、利率等信息,并打印出存款单给用户;如果是取款,系统计算利息并打印利息清单给用户。,实例分析,顶层数据流图,实例练习-销售管理系统,某企业销售管理系统的功能为: (1)接受顾客的订单,检验订单,若库存有
9、货,进行供货处理,即修改库存,给仓库开备货单;若库存量不足,将缺货订单登入缺货记录. (2)根据缺货记录进行缺货统计,将缺货通知单发给采购部门,以便采购. (3)根据采购部门发来的进货单处理 进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理. (4)根据留底的订单进行销售统计,打印统计表给经理.,顶层数据流图,0层数据流图,1层数据流图,检验订单 1.1,确定可否供货 1.2,订单,合格订单,可供货订单,库存记录信息,缺货信息,分层DFD实例,一个简单的考务处理系统功能描述: (1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送
10、给阅卷站; (3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩及合格/不合格标志)送给考生; (5)按地区进行成绩分类统计和试题难度分析,产生统计分析表送给考试中心。,考 生,考务 处理系统,考 试 中 心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成 绩 清 单,合格标准,错误成绩 清单,考生名 单,统计分析表,顶层数据流图,考生 报名,报名单,准考证,1,统计成绩,2,不合格 报名单,考生通知单,统计分析表,考生名册,合 格 标 准,考生名 单,0层数据流图,成绩清单,错误成绩清单,考生信息,一层数据流图(1),检查 报名单,
11、报名单,准考证,1.1,编准考证号,1.2,不合格 报名单,考生信息,考生名单,合格 报名单,登记 考生,1.3,一层数据流图(2),检查 成绩清单,2.1,审定 合格者,2.2,考生名册,正确 成绩清单,制作 通知单,2.3,分析 统计成绩,2.4,分析 试题难度,2.5,成绩名册,考生 通知单,难度 分析表,合格 标准,分类 统计表,成绩清单,错误 成绩清单,经审定的 成绩清单,数据流图分解原则,DFD可以用来表示一个系统或软件在任何层次上的抽象.较大型软件系统DFD分成多层(子图、父图)概念。 顶层数据流图把系统或软件作为一个单一的功能来描述。 应当注意环境的输入和输出。 每个过程的每次
12、细化一般控制在34个分过程。 所有圆圈和箭头应用有意义的名称命名。一个名称只能出现一次。 每次细化时,细化部分的输入和输出必须保持一致,即保持信息流连续性,称为平衡。 沿着输入流的方向,一次最好只对一个加工细化。,数据字典,DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。 数据字典要对数据流图中出现的所有名字(数据流,加工,文件)进行定义。 数据字典的条目由三大类组成,分别是:数据流条目、数据项条目、文件条目、加工条目(小说明)。,数据字典的内容,名称 数据项或控制项、数据存储或外部实体的主要名称。
13、要求命名唯一性、一致性、“见名知义”。 别名(alias) 最早使用的另一个名称 何处用/如何用 使用数据或控制项的加工列表,以及如何使用。 内容描述 表示内容的符号。 附加信息 关于数据类型、预设值、限制或局限等信息。,操作符 含义描述 定义为 与(顺序结构). 重复n次(循环结构) 或(选择结构) “” 基本数据元素( ) 可选mn 界域 连接符,DD内容描述符号表示,F1:航班信息文件航空公司名称航班号 起点终点日期 起飞时间降落时间 航空公司名称2字母4航班号3十进制数字3字母“A”“Z”十进制数字“0”“9” 起点终点1汉字10起飞时间降落时间时分时“00”“23” 分“00”“59
14、”日期年月日年2000200120022004月“01”“12” 日“01”“31”,重复项:起点终点1汉字10航空公司名称2字母4航班号3十进制数字3 组合项:日期年月日起飞时间降落时间时分 选择项:年2000200120022004 原数据项:字母“A”“Z”十进制数字“0”“9”时“00”“23” 分“00”“59”月“01”“12” 日“01”“31”,数据流条目,给出DFD中某个数据流的定义,通常包括: 数据流标识 数据流来源 数据流去向 数据流的数据组成 流动属性描述:频率、数据量,购 书 单,发票,领书单,审查并 开发票,开领 书单,无效书单,学生,1,2,各班学生 用 书 表,
15、举例:,学生,教材存量表,数据流条目说明举例,数据流名:购书单 别名: 无 简述: 学生购书时填写的项目 来源: 学生 去向: 加工1“审查并开发票” 组成: (学号)姓名书号数量 数据流量:1000次/周 高峰值:开学期间1000次/天,数据存储条目(数据文件词条),对某个文件的定义,包括: 文件名 描述 数据结构 数据存储方式 关键码 存取频率和数据量 安全性要求,数据存储条目说明举例,文件名:库存记录 别名: 无 简述:存放库存所有可供货物的信息 组成:货物名称编号生产厂家单价库存量 组织方式:索引文件,以货物编号为 关键字 查询要求:要求能够立即查询,数据项条目(数据元素词条),不可再
16、分解的数据单位,包括: 名称 描述 数据类型 长度(精度) 取值范围及缺省值 计量单位 相关数据元素及数据结构,数据项条目说明举例,数据项名:货物编号 别名:G-No,G-num 简述:本公司的所有货物的编号 类型:字符串 长度:10 取值范围及含义:第1位:JG (进口/国产) 第24位:LB01 LB29 (类别)第57位:“A00”“A99” (规格)第810位:“001”“999”(品名编号),基本加工条目,加工条目用来说明DFD中基本加工的处理逻辑,由于下层的加工是由上层的基本加工分解而来,只要有了基本加工的说明,就可以理解其他加工。主要包括: 加工名 编号 激发条件 优先级 输入
17、输出 加工逻辑,基本加工条目说明举例,加工名:预定机票 编号:1 激发条件:接收到订票单 优先级:普通 输入:订票单 输出:取票通知单、机票信息 加工逻辑:根据预定机票的旅客信息IF 存在满足旅客要求的航班THEN 安排航班,打印取票通知单ELSE 通知旅客无满足要求的航班ENDIF,DD应具特点 (1)通过名字可方便查阅数据定义 (2)无冗余 (3)易更新修改,数据字典的特点,结构化分析实施步骤,1.确定系统边界, 画出系统环境图 2.自顶向下,画出各层数据流图 3.定义数据字典,结构化分析方法的弊病,基于功能分析和数据分析,将功能和数据分离。 以功能为主,数据只是被动的信息载体。当系统行为发生变化时,系统维护非常困难。 DFD中不涉及系统的控制信息,因此SA不适合于分析以控制信息为主的系统需求。,小结,需求分析建模的过程 需求分析建模的方法 结构化分析 面向对象分析 Jackson分析 结构化分析 数据建模 功能建模和信息流 行为建模,