面向数据的分析方法 PPT课件_第1页
面向数据的分析方法 PPT课件_第2页
面向数据的分析方法 PPT课件_第3页
面向数据的分析方法 PPT课件_第4页
面向数据的分析方法 PPT课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

课程名称 软件工程第11讲班级 日期 教室 教学题目 第6章面向数据的分析方法 教学目的 理解Warnier图及DSSD Jackson系统开发方法 教学重点 Warnier图及DSSD Jackson系统开发方法 教学难点 Jackson系统开发方法 教具 多媒体教室 电子教案作业 1 第6章面向数据的分析方法与形式化方法 除了面向数据流的分析方法 仍有其他一些方法可供分析人员选择 这些方法包括面向数据结构的系统开发方法 DSSD Jackson系统开发方法 JSD 以及形式化软件规格说明技术 前两种统称为面向数据的需求分析方法 它们的共同特点是 1 以信息对象及其操作为核心进行需求分析 这一点与面向对象分析有相似之处 2 认为复合信息对象具有层次结构 并且可按顺序 选择 重复三种结构分解为成员信息对象 3 提供将层次信息结构映射为程序结构的机制 从而为软件设计奠定较好的基础 2 6 1面向数据结构的系统开发方法 DSSD也叫Warnier Orr方法 1974年 法国人J D Warnier提出了一种LCP LogicalConstructionofPrograms 逻辑构造程序 他利用顺序 选择 重复三种结构表示信息的层次分解 并指出可以从信息层次结构推导出程序结构 1981年KenOrr对Warnier的工作进行了扩充 使其不仅包含了Warnier的信息层次结构 还引进了数据流和处理功能 从而发展成为一种需求分析方法 本节首先介绍Warnier图 然后以此为基础阐述DSSD方法 其主要内容包括 如何创建实体图 信息过程图及Warnier Orr原型图 3 Warnier图 Warnier图又称为Warnier Orr图 可以表示数据结构和程序结构 考虑一个典型的报纸自动组版系统 报纸作为其中重要的信息对象 具有以下内容 1 首版1 标题新闻2 国内新闻3 本地新闻2 商业金融版1 股市行情2 商业新闻3 广告3 文化体育版1 文化 体育新闻2 散文3 新书评论该信息结构用Warnier图如图6 1 1所示 4 Warnier图 图6 1 1Warnier图示例 5 Warnier图 花括号内的信息条目构成顺序关系 花括号从左至右排列表示树型层次结构 符号 表示不可兼具的选择关系 表示 非 圆括号内的数字表示重复次数 1 n 表示重复结构 1 或不标次数表示顺序结构 0 1 表示选择结构 6 6 1 2DSSD方法 基于DSSD需求分析方法的主要步骤是 1 标识与应用问题有关的实体 2 创建一种类似于数据流图的信息 过程图 3 创建Warnier Orr原型图 在详细介绍DSSD的具体步骤之前 首先用数据流图描述一个基于计算机的软件专卖店管理系统 见图6 1 2 该数据流图并非DSSD的组成部分 仅用于说明后面将要用到的应用问题实例 7 图6 1 2软件专卖店管理系统的数据流图 结算系统 管理系统 客户 订单处理员接收并登录订单 邮寄员提取 包装软件产品 订单 订单编号 订单文件 订单编号客户姓名 地址预定日期支票编号 软件名称 编号作者数量单价总价 软件编号数量预定日期客户姓名 地址 邮局 邮寄品 订单编号 8 1 标识实体图 在DSSD中 与应用问题有关的实体及它们之间的信息流用实体图表示 具体地 分析人员可以通过对下述问题的回答来生成实体图 1 软件系统必须处理哪些信息项 2 信息项的生产者和消费者分别是哪些实体 在上述应用问题中 有关的实体是 客户 订单处理员 邮寄员 银行 结算员 管理员和邮局 如图6 1 3 a 所示 订单处理员的实体图如图6 1 3 b 所示 9 注 实体图中的结点表示实体 有向边表示实体之间的信息流 a 信息的生产者和消费者 b 实体图示例图6 1 3 软件名称 编号 地址 订单编号 支票编号 客户姓名 客户 邮寄员 订单处理员 银行 结算员 管理员 邮局 客户 邮寄员 结算员 订单处理员 订单编号 订单编号 10 图6 1 4组合实体图示例 当所有实体的实体图都构造完成后 将它们综合起来便形成整个目标软件系统的实体图 客户 邮寄员 软件产品库 结算员 管理员 银行 订单信息 客户姓名 地址 软件名称与编码 支票编号 邮寄品 支付 催款 软件产品 月报表 收据 存款 订单编号 订单编号 订单信息 订单编号 订单处理员 11 2 创建信息 过程图 DSSD中的信息 过程图与数据流图的作用类似 都是用来表示信息流及其处理功能的 但是 信息 过程图从每个实体的输出信息流开始 逆向寻找用于生成该输出信息的输入信息流及相应的处理功能 12 2 创建信息 过程图 图6 1 5信息 过程图示例邮寄品是由订单编号和软件产品经过邮寄品包装过程生成的 订单编号又是由客户订购信息和订单编号过程生成的 邮寄品 订单编号软件产品 邮寄品包装 订购信息 订单编号过程 13 3 创建Warnier Orr原型图 DSSD方法要求分析人员在最后以表格形式给出主要的输出信息的组成元素 见图6 1 6 a 然后将其精确地表示为Warnier Orr图 见图6 1 6 b 姓名客户信息地址电话软件编号 1 n 邮寄品单价 1 n 总价姓名客户信息地址电话 a 输出信息的表格表示 b Warnier Orr图图6 1 6 软件产品信息 14 6 2Jackson系统开发方法 1975年 英国人M A Jackson提出了软件工程领域中著名的Jackson方法 当时它只用于软件设计 1983年 Jackson又对它进行了多方面的扩充和完善 最终发展成为一种需求分析方法 其核心思想是 根据作用于数据的行为序列的结构 顺序 选择 重复 建立目标软件系统的模型 然后在软件设计阶段将模型转换为相应的程序结构 Jackson方法在需求分析阶段的主要步骤是 1 标识实体与行为 2 生成实体结构图 3 创建软件系统模型 15 6 2 1标识实体与行为 类似于面向对象分析中对象及其行为的识别 Jackson方法针对初步需求分析形成的用户需求描述进行语法分析 名词及名词短语 潜在的实体 相关的动词 构成实体的潜在行为 分析人员根据应用问题的边界及自己的理解 决定对潜在实体和行为的取舍 16 6 2 1标识实体与行为 例6 1 北华大学决定将分处两地的校园用直达交通车连接起来 在每个校园设一个站 站内配置一个按钮 学生通过按钮请求交通车搭载 交通车应尽快满足学生的请求 空闲时 交通车停在任意站等候 分析人员可从 大学 校园 交通车 车站 学生 按钮 等名词中选取与应用问题相关的实体 交通车 车站 按钮 与它们有关的行为是 到站 离站 按键 等候 和 运行 可以作为 交通车 的状态 17 6 2 2生成实体结构图 在Jackson方法中 实体结构是指实体在时间坐标系中的行为序列 这种序列以顺序 选择和重复三种结构进行复合 Jackson给出的实体结构图的表示机制如图6 2 1所示 其中的子结点既可以是行为 也可以是子实体 在后一种情况下 子实体应该继续分解 不能作为实体结构图的叶结点 顺序结构 重复结构 选择结构 图6 2 1实体结构图的图形记号 18 图6 2 2实体结构图示例 例6 1的实体结构图如图6 2 2所示 在图中 i只能取值1或2 并且 在 站 i 的重复序列中 i首先取2 然后交替变化 交通车首先停在站1 然后在两站之间反复往返运行 最后停靠在站1 为了刻画交通车在两站之间的往返穿梭 引入了虚拟的概念实体 Shuttlebody 19 6 2 3创建软件系统模型 创建目标软件系统模型的第一步 Jackson方法要求分析人员首先用图6 2 3所示的图形记号建立系统规格说明图 SystemSpecificationDiagram 数据流 DataStream 记号 表示现实世界中的过程或装置不断地向目标软件系统中的相应过程发送数据 后者以先进先出方式消费数据 两者之间的缓冲区容量是无限的 状态向量 StateVector 记号 表示在两者之间存在状态向量 发送方设置状态向量 接收方读取状态向量 20 约定 0表示现实世界中的过程或装置 1表示目标软件系统中的过程图6 2 3系统规格说明图的图形记号 过程1 DS 过程0 过程1 SV 数据流 DataStream 过程0 状态向量 StateVector 21 图6 2 4系统规格说明图示例 在前述应用问题中 站内按钮和目标软件中的按钮处理过程之间以 数据流 方式连接 交通车和交通车控制过程之间则应以 状态向量 方式连接 见图6 2 4 22 创建模型的第二步是利用Jackson给出的 结构正文 StructureText 将实体结构图和系统规格说明图综合起来 并针对目标软件系统中的每一过程用正文方式给出更为精确 更为详尽的描述 BUUTTON 1ReadButtonDown信号PUSH BODYitrwhileButtonDown 循环结构 PUSH 按键处理 ReadButtonDown信号PUSH BODYendBOTTON 1end 23 6 2 3创建软件系统模型 SHUTTLE 1seq 顺序结构 Read状态向量WAIT BODY1itrwhileWait 1 如果状态向量中等待标志置位 则循环等待 Read状态向量WAIT BODY1endTRANSIT BODY1itrwhileTransit 1 如果状态向量中运行标志置位 则一直运行 Read状态向量TRANSIT BODY1endLeave 1 控制交通车离开站1 24 SHUTTLE BODYitr 往返重复运行 STATIONseqArrive i 控制交通车减速 准备停靠站i WAIT BODYitrwhileWait i 如果状态向量中在站i的等待标志置位 则循环等待 Read状态向量WAIT BODYendLeave i TRANSIT BODYitrwhileWait i Read状态向量TRANSIT BODYendSTATIONendSHUTTLE BODYendArrive 1 SHUTTLE 1end 25 图6 2 5对应于结构正文的结构图 26 6 3形式化方法简介 前面对数据流图等语言机制并未给出数学意义上严格的语法和语义说明 因此 这些需求模型都或多或少地带有不精确性 不完整性 甚至不一致性 需求分析完成后 软件开发的正确实施仍有赖于设计人员对分析人员主观意图的揣摩 而不仅仅取决于他们对需求文档的客观理解 许多软件开发实践都希望借助于形式化方法严格地定义用户需求 并通过数学推演而不是代价昂贵的失败教训来确保需求定义的一致性和完整性 本节简要介绍形式方法的引入 主要思想 分类 优缺点以及软件形式开发方法 27 6 3 1形式化方法的引入 在传统的软件开发过程中 人们普遍采用许多非形式化的图形工具和文字符号工具 例如 数据流图 DFD 模块结构图 SC IPO图 结构化语言 类程序设计语言 判定表 判定树等 并按照一定的设计原则和有序步骤 或自上而下或循环往复逐步开发出目标软件 同时手工或辅助编写有关设计文档 软件工程的实践表明 用户需求规格说明的质量对于后续的软件开发过程是非常重要的 系统分析人员依据用户需求 为目标软件系统创建了需求规格说明 Specification 设计和编程人员根据这个需求规格说明进行系统结构和模块设计及编码 软件测试及验收人员则根据这个需求规格说明验证目标系统 28 6 3 1形式化方法的引入 若采用自然语言描述的规格说明具有模糊性和二义性 给下一步的开发工作造成理解上的困难 同时自然语言又是非形式化的 无法得到计算机的支持 使软件生成自动化几乎不可能 程序设计语言着重描述的是 如何做 Howtodo 而不是 做什么 Whattodo 的问题 因此程序设计语言并不太适合描述抽象程度较高的需求规格说明 29 6 3 1形式化方法的引入 近年来 人们正在发展一种更抽象的程序设计语言 更高级语言 VeryHighLan guage 也称为第四代语言4GL 这种语言更多地采用了过程抽象和数据抽象技术 但这种语言的出发点仍在系统的设计方面 作为需求规格的描述语言仍存在不足 20世纪80年代中期以来 一种专用于需求规格说明的形式规格说明语言应运而生 这种形式规格说明语言克服了自然语言和程序设计语言的不足 应用形式化 规范化的数学理论 严格定义软件系统 做什么 的形式语义模型 并支持自动程序转换系统将需求规格说明的语义模型转换为可执行代码 由此产生的软件形式开发方法正日益受到各国软件界的重视 30 6 3 2形式方式的主要思想 形式化需求分析方法的主要思想 是利用形式化规格说明语言严格地定义用户需求 并采用数学推演的方法证明需求定义的性质 例如一致性 实时系统的活性 liveness 和公平性 fairness 等 从某种意义上讲 形式化方法是克服需求分析阶段中主要困难 不精确性 不一致性和不完全性 的有效途径 形式化规格说明语言包括 严格的语法定义 严格的语义定义以及一系列的数学推演规则 31 6 3 2形式方式的主要思想 规格说明语言的语法一般基于集合论 数理逻辑或代数学 规格说明语言的语义是其所有语法符号的意义的数学描述 经典的语义定义方法包括指称语义 代数语义和操作语义方法 形式化规格说明语言的推演规则一般与其数学基础和语义定义方法密切相关 例如 以集合论和谓词逻辑为基础的Z语言就包含了原数学系统中有关的规则 规则必须在规格说明语言的语义系统中可证 因此 可以认为规则是派生的语义定义 它们可以直接应用于软件规格说明的性质证明并简化推演过程 32 6 3 3形式化方法的分类 形式化方法是应用严格的形式符号和数学方法定义或描述目标软件系统需求规格说明的一种方法 根据对需求规格说明的定义方式 形式方法可分为以下两大类 1 面向模型的形式方法 面向模型的形式方法又称为基于状态描述的形式方法 其基本思想是利用域 元组 集合 序列 映射 包等这些已知特性的数学抽象概念来为目标软件系统的状态特征和行为特征构造形式语义模型 语义模型就作为目标软件系统需求规格的形式说明 面向模型的形式方法的主要代表有 VDM方法 维也纳开发方法 软件工程Z方法等 2 代数构造形式方法 代数形式方法为目标软件系统的需求规格说明提供一些特殊的构造机制 并以代数构造方式描述目标系统的结构 功能 33 6 3 4软件形式开发方法 将形式化方法应用于软件开发

温馨提示

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

评论

0/150

提交评论