




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
11 1面向数据设计的概念11 2Jackson系统开发方法教学目的 了解概念 掌握Jackson系统开发方法 教学重点 JSP技术 教学难点 JSP技术 教具 多媒体教室 电子教案作业 第11章面向数据的设计方法 第11章面向数据的设计方法 面向数据的设计 datastructured orienteddesign 方法就是根据问题的数据结构定义一组映射 把问题的数据结构转换为问题解的程序结构 面向数据流的设计来源于程序的模块化和功能分解的概念 而面向数据结构的设计 则侧重于问题的数据结构 把程序结构设计成与问题的数据结构一致 不强调模块定义 模块只是设计过程的副产品 对于模块独立性原则也未过分强调 这种程序结构容易理解 也易于修改 11 1面向数据设计的概念 在许多应用领域中 信息有着清晰的层次结构 输入数据 存储信息 即数据库 及输出数据都有各自的组织形式 一般说来 顺序出现的数据可以用顺序控制结构的程序处理 选择出现的数据用分支控制结构的程序处理 重复出现的数据用循环控制结构的程序处理 因此可以根据数据的组织形式确定使用和处理这些数据的程序的组织形式 11 1面向数据设计的概念 面向数据的设计就是根据数据结构的表示获得软件表示 本章重点讨论 1 Jackson系统开发方法JacksonSystemDevelopment 简称JSD2 基于结构化数据的系统开发方法DataStructuredSystemDevelopment 简称DSSD 11 1面向数据设计的概念 JSD方法是Jackson于1989年对软件设计中广为使用的Jackson结构程序设计 JacksonStructuredProgramming 简称JSP 方法的扩展 DSSD方法 也称为Warnier Orr方法 是对Warnier程序逻辑构造 LogicalConstructionofProgram 简称LCP 方法的扩充 除了设计能力以外 还加强了分析能力 11 1面向数据设计的概念 面向数据设计方法一般都包括下列任务 1 确定数据结构特征 2 用顺序 选择和重复三种基本形式表示数据 3 把数据结构表示映射为软件的控制结构 4 用与具体方法配套的设计指南进一步精化控制结构 5 开发软件的过程性描述 11 1面向数据设计的概念 JSD和DSSD方法的软件总体结构设计与软件过程性设计的分界并不明显 都能很快地过渡到过程性描述 这也是易于理解和易于维护的重要表现之一 JSD和DSSD也是分析与设计一体化的 本章侧重于讨论与设计有关的技术 面向数据的设计方法 要求信息结构用层次图表示 在软件需求规格说明中与信息域的描述相对应 11 1面向数据设计的概念 面向数据的设计方法的适用场合具有明显的层次信息结构的应用 企事业的信息管理系统 系统软件 如操作系统 科学与工程计算 计算机辅助教学 组合问题求解等领域 例如 CAD CAE CIM类应用软件 11 2Jackson系统开发方法 用JSD方法开发一个软件的步骤 1 标识实体与动作 用与面向对象方法类似的分析技术识别出系统中的实体 包括人 对象 产生或使用信息的组织 和动作 客观世界中影响系统实体的那些事件 2 生成实体结构图 针对每一实体 将影响它的所有动作按发生的时间顺序用Jackson结构图 Jacksondiagrams 表示出来 为了描述时间约束 同一动作必须出现在多张结构图中 用JSD方法开发一个软件的步骤 3 初建系统模型 将实体和动作统一用一个过程模型表示 并定义该模型中的过程与客观世界中的过程之间的联系 所用描述工具为系统规格说明图 SystemSpecificationDiagram 简称SSD 4 扩充功能性过程 在过程模型中扩充交互型功能和信息型功能 分别产生内部输入信息和系统输出信息 5 系统定时 确定实现必须满足的时间约束 6 实现 确定系统中所有软硬件成分 形成一个完整设计方案 前三个步骤主要在需求分析阶段完成 后三步是软件设计的任务 11 2 1JSD分析技术回顾 我们曾以大学校园内直达交通车系统USS为例进行需求分析 结果得出 交通车 和 按钮 两实体及其动作对应的实体结构图如下图所示 11 2 1JSD分析技术回顾 初建系统模型后 得到USS的系统规格说明图 图7 2 4 其中后缀为 0 的过程表示客观世界中的过程 或外部过程 后缀为 1 的过程表示系统模型内的过程 或模型过程 图7 2 4USS的系统规格说明图 11 2 1JSD分析技术回顾 将实体结构图与初建系统模型 系统规格说明图 综合起来 可导出目标软件系统中每个过程内部细节的结构正文表示 如6 2 3节过程BUTTON 1和SHUTTLE 1所描述 上述结构正文也可对应地用Jackson结构图表示 图6 2 5是与模型过程SHUTTLE 1的结构正文对应的Jackson结构图 图6 2 5对应于结构正文的结构图 11 2 2扩充功能性过程 这一步骤以初建系统模型为基础 通过数据流和状态向量两种方式将新定义的功能性过程与原有的模型过程联系起来 具体考虑两类功能 1 信息型功能 informationfunction 从模型过程产生的数据流和状态向量中提取信息并生成输出信息 嵌入型功能只需在原有模型过程的结构正文中插入一些操作 2 交互型功能 interactivefunction 监视模型过程的状态向量 在输出结果的同时产生内部输入信息 反过来影响模型化过程的动作 图10 2 1两类功能性过程与系统模型的关系 11 2 2扩充功能性过程 假设在交通车上有一块发光板 专门显示车到站的信息 发光板 亮 说明车到站 暗 说明车离开 此板或亮或暗受LON i LOFF i 两命令的控制 在过程SHUTTLE 1中可嵌入一个新功能 当交通车到达站 i 时 发出命令LON i 离开站 i 时 发出命令LOFF i 交通车在两站之间往返运行过程中 输出 开关发光板 的命令数据流 图10 2 2为增加这一功能后的SSD 结构正文修改为 11 2 2扩充功能性过程 图10 2 2修改后的SSDLAMPCMDS Lampcommands Button 0 BD SV Button 1 Shuttle 0 Shuttle 1 LAMPCMDS SHUTTLE 1seqLON 1 控制发光板 亮 说明交通车正停在站1上 read状态向量WAIT BODY1itrwhileWait 1 read状态向量WAIT BODY1endLOFF 1 交通车即将离站 控制发光板 暗 LEAVE 1 TRANSIT BODY1itrwhileTransit 1 read状态向量TRANSIT BODY1end SHUTTLE BODY1itrSTATIONseqARRIVE i LON i 交通车已停靠站 i WAIT BODYitrwhileWait i read状态向量WAIT BODYendLOFF i 交通车将离开站 i LEAVE i TRANSIT BODYitrwhileTransit i read状态向量TRANSIT BODYendSTATIONendSHUTTL BODY1endARRIVE 1 SHUTTL 1end 11 2 2扩充功能性过程 第二个功能是产生关于启动 START 和关闭 STOP 发动机的命令 以此控制交通车的运行 下达STOP命令的条件是 传感器显示车已到站 而下达START命令的条件是乘客压下按钮招呼交通车并恰好交通车在某个站上等待 为此引入一个功能性过程mcontrol 它从SHUTTLE 1和BUTTON 2两过程接收数据 适时地发出START和STOP两种命令 过程SHUTTLE 1与过程mcontrol之间用数据流 S1D 连接 因此SHUTTLE 1的结构正文进一步修改为 SHUTTLE 1seqLON 1 read状态向量WAIT BODY1itrwhileWait 1 read状态向量WAIT BODY1endLOFF 1 LEAVE 1 TRANSIT BODY1itrwhileTransit 1 read状态向量TRANSIT BODY1end SHUTTLE BODY1itrSTATIONseqARRIVE i writearrivetoS1D 向mcontrol发送数据流 说明车已到站 i LON i WAIT BODYitrwhileWait i read状态向量WAIT BODYendLOFF i LEAVE i TRANSIT BODYitrwhileTransit i read状态向量TRANSIT BODYendSTATIONendSHUTTLE BODY1endARRIVE 1 writearrivetoS1D 发送数据流 说明车已到站1 SHUTTLE 1end 11 2 2扩充功能性过程 过程SHUTTLE 1执行 read状态向量 操作和过程mcontrol对 S1D 的访问都必须有足够快的频率 否则交通车将不能及时停下来 为完成USS实例 还需进一步考虑实体BUTTON模型 过程BUTTON 1是对按钮动作的精确描述 即每次压下都对应过程push的一次调用 实际上系统应把第一次压下按钮招呼交通车的动作与一次运行未开始之前乘客压下按钮招呼交通车的请求区分开来 用已有实体无法描述和区分动作之间的时间约束 常常引入额外的实体 为此设计过程BUTTON 2 结构图如图10 2 3所示 图10 2 3button 2的结构图 11 2 2扩充功能性过程 功能性过程mcontrol既负责检查BUTTON 2的状态向量 B2V 确定是否有未满足的请求 又负责把从SHUTTLE 1处 S1D 获取的信息 即交通车已到达发出请求的车站 传递给BUTTON 2 MBD流 在此定义了一个交互型功能 BUTTON 2的结构正文描述如下 BUTTON 2seqrequest no 置初值 readMBDandB1D 检查是否有未满足请求和交通车是否停在站上 BUTTON BODYitrPUSH GROUPseqEXTRA AR BODYitrwhile ARRIVAL 交通车已靠站但尚无请求 或既无请求交通车也未靠站 readMBDandB1DEXTRA AR BODYendRQ PUSHseq 首次请求到达 置请求标志 request yesreadMBDandB1DRQ PUSHend EXTRA RQ PUSHitrwhile REQUEST 因交通车尚未靠站 请求暂不满足 循环等待 readMBDandB1DEXTRA RQ PUSHendARRIVALseq 请求满足 清请求标志 request noreadMBDandB1DARRIVALendPUSHGROUPendBUTTON BODYendBUTTON 2end 11 2 2扩充功能性过程 图10 2 4给出的系统规格说明图反映了在此步骤完成的所有工作 我们在SHUTTLE 1中嵌入了一个功能 产生开 关发光板的命令 增加了一个功能性过程mcontrol 它除了负责完成BUTTON 2上的交互型功能外 还产生启动 关闭发动机的命令 至于mcontrol过程的内部结构可采用传统的JSP技术导出 关于JSP技术我们将在10 2 4和10 2 5节讨论 图10 2 4扩充功能1和2后的系统规格说明图 Button 0 BD SV Button 1 Shuttle 0 Shuttle 1 LAMPCMDS B1D Button 2 S1D MBD Mcontrol B2V MOTORCMDS 11 2 3施加时间约束 经过前几个步骤 获得一个由若干顺序过程组成的系统 它们通过数据流或状态向量进行通信 但对这些处理过程的执行速度尚未考虑 所以 对于输出流 定义输出速度和更新频率 对于输入流 要求子系统保证及时收集所有输入信息并保持它们的到达顺序不变 在USS实例中 关于时间方面的约束包括 1 停车命令允许的最大延迟时间 2 开 关发光板命令的响应时间 目前在JSD方法中 时间约束的描述仍采用非形式化的方式 一种解决办法是引入时间标志流 timemarkerstream 作为模型过程的输入 时间标志流由特定的时钟过程产生 11 2 4实现与JSP技术 实现是JSD方法的最后一个步骤 它将系统功能说明配置到给定的软硬件环境上 并满足性能方面的约束 这一步骤主要考虑 过程在多处理机上的调度 scheduling 根据SSD和Jackson结构图进行过程变换 transformation 过程状态向量的存储和访问 storageandaccessofstatevectors 以及借助JSP技术描述功能性过程 因篇幅所限 本节及下节仅讨论最后一个问题 11 2 4实现与JSP技术 JSP技术是一种详细设计技术 它由问题所固有的数据结构导出过程的内部结构 所用的基本工具称为数据结构图 是Jackson结构图的变种 专门用于描述数据元素之间的逻辑关系 例如在图10 2 5中 数据集合A由若干个B结构 表示重复 组成 而每个B由若干个C结构后跟一个D结构组成 同级分叉表示顺序 D结构或为数据项E或为F 表示选择 这种层次信息结构的表示方法同样适用于输入 输出和数据库中的数据 图10 2 5数据结构图 A B C D E F 图10 2 6信用卡记帐系统 Outstandingbal CNO主文件 YYYY1749 30 CNO DATE AMT XXXX10 1725 30XXXX10 27108 20XXXX10 3065 40YYYY10 13158 00YYYY10 28307 90 支付文件 支付记录 CNO分组 CNO CNO主文件 顾客记录 余款额 支付文件 XXXX2373 50 简化的信用卡付帐系统 如图10 2 6所示 系统的输入是支付文件和顾客主文件 支付文件的每个记录由顾客号 CNO 支付日期 DATE 和支付金额 AMT 三个数据项组成 并假定已按顾客号预先分组 顾客主文件由顾客号 CNO 和余款额 Outstandingbal 两项组成 两个文件分别对应图10 2 6中所示数据结构图 假设该系统输出报表如下图所示 AccountingReport CNODateAmtOldbalNewbalXXXXYYYYGrandtot 图10 2 7系统输出报表所对应的数据结构图 记帐报表 情况汇总 顾客数据 总付款额 总余额 CNO组 CNO 支付记录 付款总数 平帐数据 原余额 现余额 11 2 5产生过程表示 JSP方法通过综合 对照过程的输入 输出数据结构的层次关系导出对应的过程性表示 程序 具体步骤如下 1 找出输入与输出数据结构中有对应关系的数据元素 即有直接因果关系者 它们在程序中可一并处理 2 依据下述三条规则从数据结构图导出Jackson结构图 1 在Jackson结构图中 为有对应关系的每对数据元素画一个处理框 该框所处层次取这两个数据元素在各自数据结构图中层次较低者 2 参照输入数据结构图中剩余的每个数据元素所处层次 在Jackson结构图的相应层次上画一个处理框 3 参照输出数据结构图中剩余的每个数据元素所处层次 在Jackson结构图的相应层次上画一个处理框 11 2 5产生过程表示 3 列出所有操作和条件 包括分支和循环条件 并把它们分配到Jackson结构图中 4 根据Jackson结构图 产生结构正文描述 将上述第1步骤用于信用卡付帐系统发现 输入数据结构 支付文件 中的 CNO组 支付记录 分别与输出数据结构中的 CNO组 支付记录 对应 输入数据结构 顾客主文件 中的 顾客记录 与输出数据结构中的 CNO组 对应 参照上述第2步骤得到该系统的结构图 图10 2 8 图10 2 8导出Jackson结构图 程序结构 信用卡付帐系统 情况汇总 处理顾客数据 总付款额 总余额 处理CNO组 处理CNO 处理支付记录 计算顾客支付总额 平帐数据 原余额 现余额 执行完3 4两步骤后 该结构图中 处理顾客数据 一框对应的结构正文应为 PROCESS CUST DATAseqopenPAY FILE openCNO MASTER FILE PROCESSCNO GROUPitruntileof PAY FILE readPAY FILE PROCESS CNO 读顾客总文件 找出原余额 PROCESS PAY RECitruntilend CNO GROUP writereportline computertotalpayments readPAY FILE endPROCESS PAY RECCOMPUTE CUST TOTAL COMPUTE BALANCEseqPROCESS OLD BAL COMPUTE NEW BAL writereportline endCOMPUTE BALANCEendPROCESS CNO GROUPendPROCESS CUST DATA 教学目的 掌握DSSD方法 了解复杂过程逻辑的描述 教学重点 DSSD方法 教学难点 DSSD方法 教具 多媒体教室 电子教案作业 习题4 11 3DSSD方法 11 3基于结构化数据的系统开发 DSSD 方法 DSSD需求分析阶段产生的需求规格说明 将作为设计过程的输入信息 设计过程的输出为设计规格说明 具体包括输出数据结构 过程描述和设计约束三方面内容 DSSD设计分为逻辑设计和物理设计两个步骤 逻辑设计着重考虑软件的输出 界面及过程性表示 物理设计则在逻辑设计的基础上考虑如何满足性能 可维护性和其他一些设计约束 基本工具 Warnier Orr图 既可描述程序结构 又可描述数据结构 这里介绍一种简化的DSSD方法 11 3 1DSSD设计步骤 DSSD的逻辑设计步骤主要有两个 1 推导输出数据的逻辑结构 LogicalOutputStructure 简称LOS 2 由LOS导出处理过程的逻辑结构 LogicalProcessStructure 简称LPS 11 3 1DSSD设计步骤 按下述简化方法 LOS可分四步导出 1 从问题描述本身或其他相关需求信息中找出所有不同的原子数据项 即不可再分的数据项 2 说明每个原子数据项的出现频率 3 找出那些可再分的一般数据项 4 用Warnier Orr图表示LOS 例11 1 产生如图11 3 1所示的 机器使用情况日报表 系统 Daily Machine Tool Usage ReportDate DATE ToolcategoryToolIDstatusNO partsproducedTool CATTIDSNO PARTSCATEGORYTOTALPARTS CAT TOT PARTSCATEGORYTOTALPARTS TOTALPARTSPRODUCEDTHISDATE MANUF TOTAL 11 3 2推导输出数据的逻辑结构 输出数据结构表现为数据项的一种层次结构 按照LOS推导步骤 1 首先从问题描述 例11 1所给报表原型 中找出原子数据项 2 确定每个原子数据项出现的频率 图11 3 2 图11 3 2原子数据项及出现频率 11 3 2推导输出数据的逻辑结构 3 找出一般数据项 有 报表 出现一次 工具类 每报表出现t次 工具 每类出现s次 4 用Warnier Orr图表示LOS 11 3 2推导输出数据的逻辑结构 图11 3 3LOS的Warnier Orr图示 11 3 3推导处理过程的逻辑结构 LPS LPS是软件的过程性表示 推导步骤如下 1 从LOS的Warnier Orr图示中去掉所有原子数据项 生产日报表 图11 3 4去掉所有原子数据项 工具工具类 1 s 1 t 2 对每个一般数据项加上 BEGIN END 分隔符 BEGIN BEGIN工具工具类 1 s 1 t END END 生产日报表 3 定义所有初始 终止的指令或过程 4 说明所有数值计算和非数值处理 BEGIN置MANUF TOTAL为0 BEGIN置CAT TOTALPARTS为0工具类工具 1 t 1 s 把NO PARTS加到CAT TOTAL PARTS上 END END 生产日报表 把CAT TOTAL PARTS加到MANUF TOTAL上 5 说明所有输出指令或过程 6 说明所有输入指令或过程 图11 3 6完整的LPS 生产日报表 BEGIN工具类 1 t END 输出标题 日期标题 日期 列标题置MANUF TOTAL为0取一条逻辑记录 BEGIN工具 1 s END 输出TOOL CAT置CAT TOTAL PARTS为0输出TID S NO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政人员劳务合同范本
- 工厂租赁合同范本模板
- 个人贷款购房合同范本
- 产品研发合同范本模板
- 物联网服务合同范本
- 餐饮正规加盟合同范本
- 养殖鱼苗购销合同范本
- 减水剂代理合同范本
- 工装集成吊顶合同范本
- 年产24万吨环保粘合剂及1000吨锂电池正极粘结剂配套溶剂新建项目可行性研究报告模板-立项备案
- 骨质疏松诊治与中医药
- LY/T 2383-2014结构用木材强度等级
- GB/T 528-2009硫化橡胶或热塑性橡胶拉伸应力应变性能的测定
- GB/T 4950-2021锌合金牺牲阳极
- 中日关系历史
- GB/T 15171-1994软包装件密封性能试验方法
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- 信息系统运维服务方案
- 化工试生产总结报告
- 导数与原函数的对称性 微专题课件-2023届高三数学一轮复习
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
评论
0/150
提交评论