版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ZLLBeiHua9.1面向数据设计的概念9.2Jackson系统开发方法9.3基于结构化数据的系统开发(DSSD)方法第9章面向数据的分析方法ZLLBeiHua9.1面向数据设计的概念JSD方法是Jackson于1989年对软件设计中广为使用的Jackson结构程序设计(JacksonStructuredProgramming,JSP)方法的扩展,并且在某些方面与面向对象方法有些类似。DSSD方法也称为Warnier‑Orr方法,是对Warnier程序逻辑构造(LogicalConstructionofProgram,LCP)方法的扩充,除了设计能力以外,还加强了分析能力。尽管不同的面向数据设计方法有不同的规则,但一般都包括下列任务:(1)确定数据结构特征。(2)用顺序、选择和重复三种基本形式表示数据。(3)把数据结构表示映射为软件的控制结构。(4)用与具体方法配套的设计指南进一步精化控制结构。(5)开发软件的过程性描述。ZLLBeiHua9.1Jackson系统开发方法SP技术是一种详细设计技术,它由问题所固有的数据结构导出过程的内部结构。所用的基本工具称为数据结构图,是Jackson结构图的变种,专门用于描述数据元素之间的逻辑关系。JSP方法通过综合、对照过程的输入/输出数据结构的层次关系导出对应的过程性表示,即程序。具体步骤如下:
ZLLBeiHua(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。(2)找出输入数据结构与输出数据结构中有对应关系的数据元素,即有直接因果关系者,它们在程序中可以一并处理。(3)依据下述三条规则从数据结构图导出Jackson结构图。①在Jackson结构图中,为有对应关系的每对数据元素画一个处理框,该框所处层次取这两个数据元素在各自数据结构图中层次较低者。②参照输入数据结构图中剩余的每个数据元素所处层次,在Jackson结构图的相应层次上画一个处理框。③参照输出数据结构图中剩余的每个数据元素所处层次,在Jackson结构图的相应层次上画一个处理框。(4)列出所有操作和条件(包括分支和循环条件),并把它们分配到Jackson结构图中。(5)根据Jackson结构图,产生结构正文描述。ZLLBeiHua9.2.2Jackson伪代码逻辑结构Jackson方法中使用的伪码和Jackson图是完全对应的。图9-1、图9-2和9-3分别是图6-7、图6-8和图6-9所示的顺序结构、选择结构和重复结构及其对应的伪码。其中seq、select、iter、until、while和end是关键字,cond1、cond2和cond是条件。顺序结构*重复结构°°选择结构AAABBBCCAseqBCAendAselectcond1BAorcond2CAendAiteruntil(或while)condBAendZLLBeiHua9.2.3确定输入/输出数据的逻辑结构类似于面向对象分析中对象的识别,Jackson方法针对初步需求分析形成的用户需求描述进行语法分析。名词及名词短语是潜在的实体。分析人员根据应用问题的边界及自己的理解,决定对潜在实体的取舍。通过分析形成逻辑结构。【例9.1】一个正文文件由若干个记录所组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。ZLLBeiHua正文文件字符串*
字符*
空格°
非空格°°图9-4表示输入/输出数据结构的Jackson图(左右侧分别为输入、输出数据结构)空格总数输出表格表格体串信息*字符串空格数ZLLBeiHua6.2.4找出输入/输出数据结构中有对应关系的数据单元
确定了输入/输出数据结构之后.下一步是分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。在这个例子中,输出数据总是通过对输入数据的处理而得到的,因此在输入/输出数据结构最高层次的两个单元(在这个例子中是“正文文件”和“输出表格”)总是有对应关系的。这一对单元将和程序结构图中最顶层的方框(代表程序)相对应,也就是说经过程序的处理由正文文件得到输出表格。因为每处理输入数据中一个“字符串”之后,就可以得到输出数据中一个“串信息”,它们都是重复出现的数据单元,而且出现次序和重复次数都完全相同。因此,“字符串”和“串信息”也是一对有对应关系的单元。下面我们依次考察输入数据结构中余下的每个数据单元看是否还有其他有对应关系的单元。“字符”不可能和多个字符组成的“字符串”对应,也不能和输出数据结构中的其他数据单元对应。单个空格并不能决定—个记录中包含的空格个数,因此也没有对应关系。通过类似的考察发现,输入数据结构中余下的任何一个单元在输出数据结构中都找不到对应的单元。也就是说,在这个例子中输入/输出数据结构中只有上述两对有对应关系的单元。在图9-5中用一对虚线箭头把有对应关系的数据单元连接起来,以突出表明这种对应关系。ZLLBeiHua正文文件字符串*
字符*
空格°
非空格°°图9-5表示输入/输出数据结构的Jackson图中有对应关系的数据单元空格总数输出表格表格体串信息*字符串空格数ZLLBeiHua9.2.5产生过程表示Jackson程序设计方法的第三步是从数据结构图导出程序结构图。按照前面已经讲述过的规则,这个步骤的大致过程如下。首先,在描绘程序结构的Jackson图的最顶层画一个处理框“统计空格”,它与“正文文件”和“输出表格”这对最顶层的数据单元相对应。但是接下来还不能立即画与另一对数据单元(“字符串”和“串信息”)相对应的处理框,因为在输出数据结构中“串信息”的上层还有“表格体”和“空格总数”两个数据单元。在程序结构图的第二层应该有与这两个单元对应的处理框——“程序体”和“印总数”。因此,在程序结构图的第三层才是与“字符串”和“串信息”相对应的处理框——“处理字符串”。在程序结构图的第四层似乎应该是和“字符串”、“字符”及“空格数”等数据单元对应的处理框“印字符串”、“分析字符”及“印空格数”,这三个处理是顺序执行的。但是,“字符”是重复出现的数据单元,因此“分析字符”也应该是重复执行的处理。改进的了Jackson图规定顺序执行的处理中不允许混有重复执行或选择执行的处理,所以在“分析字符”这个处理框上面又增加了一个处理框“分析字符串”。最后得到的程序结构图为图9-6所示。ZLLBeiHuaSII统计空格程序体印总数处理字符串*印字符串分析字符串印空格数分析字符*
处理空格°
处理非空格°ZLLBeiHua9.2.6列出所有操作和条件,并分配到Jackson结构图中列出统计空格个数需要的全部操作和条件如下:(1)停止(2)打开文件(3)关闭文件(4)印出字符串(5)印出空格数目(6)印出空格总数(7)sum:=sum+1(8)totalsum:=totalsum+sum(9)读入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件结束I(2)字符串结束S(3)字符是空格在上面的操作表中,sum是保存空格个数的变量,totalsum是保存空格总数的变量,而pointer是用来指示当前分析的字符在字符串中的位置的变量。ZLLBeiHua经过简单分析不难把这些操作和条件分配到程序结构图的适当位置,结果为图9-7所示。S(3)I(2)I(1)统计空格程序体印总数处理字符串*印字符串分析字符串印空格数分析字符*
处理空格°
处理非空格°13101312291175986134ZLLBeiHua9.2.7根据Jackson结构图,产生结构正文描述
Jackson方法的最后一步是用伪码标识程序处理过程。因为Jackson使用的伪码和Jackson图之间存在着简单的对应关系,所以从图9-7很容易得出下面的伪码:统计空格seq
打开文件读入字符串
totalsum:=0程序体iteruntil文件结束处理字符串seq
印字符串seq
印出字符串印字符串endsum:=0pointer:=1
分析字符串iteruntil字符串结束分析字符select字符是空格处理空格seqsum:=sum+1pointer:=pointer+1
处理空格end分析字符or字符不是空格处理非空格seqpointer:=pointer+1
处理非空格end
分析字符end
分析字符串end
印空格数seq
印出空格数目印空格数endtotalsum:=totalsum+sum
读入字符串处理字符串end
程序体end
印总数seq
印出空格总数印总数end
关闭文件停止统计空格endZLLBeiHua提出了一种LCP(逻辑构造程序)。利用顺序、选择、重复三种结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构。对Warnier的工作进行了扩充,使其不仅包含了Warnier的信息层次结构,还引进了数据流和处理功能,从而发展成为一种需求分析方法。1981KenOrr1974Warnier9.3面向数据结构的系统开发方法DSSD也叫Warnier-Orr方法ZLLBeiHuaDSSD的逻辑设计步骤主要有两个:(1)推导输出数据的逻辑结构(LogicalOutputStructure,LOS)。(2)由LOS导出处理过程的逻辑结构(LogicalProcessStructure,LPS)。按下述简化方法,LOS可以分四步导出:①从问题描述本身或其他相关需求信息中找出所有不同的原子数据项(即不可再分的数据项)。②说明每个原子数据项的出现频率。③找出那些可再分的一般数据项。④用Warnier-Orr图表示LOS。ZLLBeiHua【例9.2】产生如图9-8所示的“机器使用情况日报表”系统Daily_Machine_Tool_Usage_ReportDate:
ToolcategoryToolIDstatusNO.partsproducedTool_CATTIDSNO_PARTS
CATEGORYTOTALPARTS:CAT_TOT_PARTS
CATEGORYTOTALPARTS:TOTALPARTSPRODUCEDTHISDATE:MANUF_TOTALZLLBeiHua9.3.2推导输出数据的逻辑结构原子数据项频率细节HEADING(标题)DATE_HEAD(日期标题)DATE(日期)COLUME_HEAD(列标题)TOOL_CAT(工具类名称)TID(工具标志)S(状态)NO_PARTS(产品件数)SUB_TOTAL_HEAD(按类汇总小标题)CAT_TOT_PARTS(按类汇总)TOTAL_HEAD(按目汇总标题)MANUF_TOTAL(每日产品总计)1/报表1/报表1/报表1/报表1/工具类1/工具1/工具1/工具1/工具类1/工具类1/报表1/报表每日机器使用情况报表若干类,每类有若干种项按类汇总按目汇总ZLLBeiHua
下一步找出一般数据项,例9.2中一般数据项有“报表”(出现一次),“工具类”(每份报表中出现t次)和“工具”(每类中出现s次)。综上所述,得到如图9-10所示的Warnier‑Orr图,即例9.2的LOS。生产报表(1,t)(1,s)图9-10LOS的Warnier‑Orr图示ïïïïïïïïïí每日产品总计每日汇总标题工具类列标题日期日期标题îïï标题ìZLLBeiHua9.3.3推导处理过程的逻辑结构LPS是软件的过程性表示,可以按下述步骤导出:(1)从LOS的Warnier‑Orr图示中去掉所有原子数据项。(2)对每个一般数据项加上“·BEGIN、·END”分隔符。对于例9.2,上述两步完成后,得到图9-11。继续下面的步骤:(1,t)(1,s)ZLLBeiHua(3)定义所有初始、终止的指令或过程。(4)说明所有数值计算和非数值处理。至此,Warnier‑Orr图扩展为图9-12。生产报表置MANUF-TOTAL为0置CAT_TOTAL_PARTS为0把NO_PARTS加到CAT_TOTAL_PARTS上把CAT_TOTAL_PARTS加到MANUF_TOTAL上(1,t)(1,s)ZLLBeiHua9.3.3推导处理过程的逻辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 执业药师中药炮制学考点冲刺预测试卷及答案
- 铁路运输安全生产管理与应急处理模拟试题及答案
- 建设工程项目进度控制专项训练题库及答案
- 高级会计实务考点精讲及习题集及答案
- 药师考试药学服务与合理用药备考习题及答案
- 2026年耳鼻喉科学医师资格考试耳鼻喉科学基础知识模拟试题及答案
- 公共营养师三级考试营养学基础备考习题及答案
- 司机职业素养与操作规范考核表
- 叉车司机考试真题汇编及答案
- 产品出口合规要求说明函(3篇)
- 全球硅碳负极材料市场应用前景与投资潜力判断研究报告
- 中医适宜技术在妇科疾病中的应用指南课件
- 商场装饰装修工程验收规范
- 国聘网笔试校招题库
- 大宗贸易财经科普
- 新课堂、新课堂、新高考++2025年版《普通高中语文课程标准》解读
- 老年疾病AI管理策略
- 实验室安全培训案例课件
- 快消品特殊渠道开发课件
- 嘉庚精神代代传
- 北京大学2025年推免研究生申请个人陈述范文
评论
0/150
提交评论