《软件工程第6章-面向数据结构的分析与设计》由会员分享,可在线阅读,更多相关《软件工程第6章-面向数据结构的分析与设计(28页珍藏版)》请在金锄头文库上搜索。
1、软件工程软件工程第第6 6章章 面向数据结构的分析与设计面向数据结构的分析与设计复旦大学计算机科学技术学院 软件工程(第二版)面向数据结构的需求分析与设计面向数据结构的需求分析与设计主要特点: 以信息对象及其操作为核心进行需求分析 认为复合信息对象具有层次结构,并且可按顺序、 选择、重复三种结构分解为成员信息对象 提供由层次信息结构映射为程序结构的机制,从而 为软件设计奠定良好的基础 JSP:Jackson结构程序设计方法 JSD:Jackson系统开发方法2复旦大学计算机科学技术学院 软件工程(第二版)内容摘要内容摘要 JSP方法 JSD方法简介小结3复旦大学计算机科学技术学院 软件工程(第
2、二版)内容摘要内容摘要 JSPJSP方法方法 JSD方法简介小结4复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法方法 总结了COBOL事务处理程序中的开发方 法而发展起来的,特点: 重点不是自顶向下逐步求精,而是在数据结构基础 上进行构造 根据输入/输出的数据结构建立程序结构 目标:获得简单清晰的设计方案 设计原则:使程序结构与问题结构(数据 结构)相对应5复旦大学计算机科学技术学院 软件工程(第二版)数据结构和程序结构数据结构和程序结构 一般的数据处理系统处理的是具有层次结 构的数据,因而其问题结构可以用它所处 理的数据结构来表示6复旦大学计算机科学技术学院 软件工程(第二版
3、)数据结构与程序结构的表示数据结构与程序结构的表示JSP方法采用Jackson图来表示数据结 构和程序结构 Jackson图是一种从左到右阅读的树状 层次结构图 数据结构图中方框表示数据,程序结构图中方框就表示模 块(过程或函数) 底部的叶子节点称为基本元素 在底部枝干以上的节点称为结构元素 三种元素类型:顺序元素、选择元素、重复元素7复旦大学计算机科学技术学院 软件工程(第二版)顺序元素顺序元素 一个顺序元素由一个或多个从左到右的 元素组成 每个组成的元素只出现一次8复旦大学计算机科学技术学院 软件工程(第二版)选择元素选择元素 选择是“If Then Else”或“Case”的结构,而且必
4、 须有两个或多个元素 使用选择元素时根据指定的条件从这些子元素中 选择一个子元素 供选择的子元素用右上角标以小圆的矩形表示 示例:左图中A、B、C是D的可选项,而S是选择条件 如果需要一个“If A=B Then X Else do nothing”那么需要加入一个空元素 示例:右图 中空元素用一个标有连字符的矩形表示9复旦大学计算机科学技术学院 软件工程(第二版)重复元素重复元素重复元素仅由一个子元素构成,表示重 复元素由子元素重复0次或多次组成子元素用右上角标以星号的矩形表示 下图表示元素D由元素A重复0次或多次 组成,其中I是重复条件10复旦大学计算机科学技术学院 软件工程(第二版)结构
5、正文的表示形式结构正文的表示形式-1-1 结构正文又称伪码,完全与结构图相对应 分为:顺序结构正文、选择结构正文、重 复结构正文 顺序结构正文 D Seq 顺序A; 元素D是由一个元素AB; 跟随一个元素BC; 跟随一个元素C组成 D END 元素D是元素A、元素B、元素C的序列11复旦大学计算机科学技术学院 软件工程(第二版)结构正文的表示形式结构正文的表示形式-2-2 选择结构正文D Select cond1 选择A 元素D或是由一个元素AOr cond2B 或是由一个元素BOr cond3C 或是由一个元素C组成 D END cond1、cond2、cond3分别是选择A,B,C的条件1
6、2复旦大学计算机科学技术学院 软件工程(第二版)结构正文的表示形式结构正文的表示形式-3-3 重复结构正文D Iter until cond 重复A; 元素D是由1或多个元素A组成 D END 元素D 是元素A的重复 或者D Iter while cond 重复A; 元素D是由0至多个元素A组成 D END cond为循环条件13复旦大学计算机科学技术学院 软件工程(第二版)示例示例:打印表格程序的输出数据结构和对应的程序结构:打印表格程序的输出数据结构和对应的程序结构14复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-1-1例:一个正文文件
7、由若干个记录组成,每个 记录是一个字符串,要求统计每个记录中空 格个数,以及文件中空格的总数。要求输出的格式是:每复制一行输入字符串 后,另起一行输出该字符串中的空格数,最 后输出文件空格的总数15复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-2-2 第1步.分析并确定输入和输出数据结构的 逻辑结构,并用Jackson图画出16复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-3-3 第2步.找出输入数据结构与输出数据结构 中有对应关系的数据元素有对应关系是指有直接因果关系,即在程序中可以同
8、时处理的数据元素 对于表示“重复”的数据元素,只有其重复次数和次序都相同时才有对应 关系 输入/输出数据结构最高层次的两个数据元素总是有对应关系的17复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-4-4 第3步.从描述数据结构的Jackson图导出 描述程序结构的Jackson图,导出规则: 有对应关系的数据元素,按照它们在数据结构图中 的层次在程序结构图的相应层次上画一个处理框(如 果它们在输入和输出图中的层次不同,则程序结构 图中处理框层次与较低的那个对应 为输入数据结构图中剩余的每个数据元素,在程序 结构图的相应层次上画一个处理框,
9、在模块名称上 增加“分析”或“处理”或取一个具有实际含义的名称 为输出数据结构图中剩余的每个数据元素,在程序 结构图的相应层次上画上一个处理框18复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-5-5 导出的程序结构图19复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-6-6第4步.列出所有操作和条件,并将它 们分配到程序结构图的适当位置 首先从输出操作开始,再回到输入操作 加入必须的与条件有关的操作 最后把每个操作都分配到程序结构中去20复旦大学计算机科学技术学院 软件工程(第二版)JSP
10、JSP方法的分析和设计步骤方法的分析和设计步骤-7-713121113设变量sum存放一行字符串中的空格数;totalsum存放 空格总数;pointer用来指示当前分析的字符在字符串 中的位置,可列出其所有操作,并对其编号如下: 停止 打开文件 关闭文件 打印字符串 打印空格数 打印空格总数 sum:=sum+1 totalsum:=totalsum+1 读入字符串 sum:=013121113totalsum:=0pointer:=1pointer:=pointer+1 条件列表如下: I(1):文件结束 I(2):字符串结束 S(3):字符是空格 将条件与相应的循环条件关联,并将 操作按
11、次 序与相当的模块进行关联,按从左至右决定先后顺序, 关联后的程序结构图 21复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的分析和设计步骤方法的分析和设计步骤-8-8 第5步.把带有 操作的程序结 构图转换成结 构正文,同时 加入选择及迭 代条件统计空格 seq 打开文件 读入字符串 totalsum := 0 程序体 iter until 文件结束处理字符串 seq印字符串 seq打印字符串印字符串 endsum := 0pointer := 1分析字符串 iter until 字符串结束分析字符 select 字符是空格处理空格 seqsum := sum + 1poin
12、ter := pointer + 1处理空格 end分析字符 or 字符不是空格处理非空格 seqpointer := pointer + 1处理非空格 end分析字符 end分析字符串 end印空格数 seq打印空格数印空格数 endtotalsum := totalsum + 1读入字符串处理字符串 end 程序体 end 印空格总数 seq打印空格总数 印空格总数 end 关闭文件 停止 统计空格 end22复旦大学计算机科学技术学院 软件工程(第二版)JSPJSP方法的特点方法的特点 简单、易学、形象直观、可读性好 便于表示层次结构 适用于小型数据处理系统23复旦大学计算机科学技术学院
13、 软件工程(第二版)内容摘要内容摘要 JSP方法 JSDJSD方法简介方法简介 小结24复旦大学计算机科学技术学院 软件工程(第二版)JSDJSD方法方法 JSP广泛使用十多年后,Jackson把它进 行了扩充,不再局限于中小规模范围的问 题及顺序范围,新的开发方法称为JSD JSD覆盖了整个系统的分析到实现 JSD的本质:先建立一个现实模型,然后 加入功能性处理,最后阶段,逻辑系统才 转换为实际设计25复旦大学计算机科学技术学院 软件工程(第二版)JSDJSD方法步骤方法步骤 标识实体与行为建立现实的模型,列出与系统有关的实体表及活动表 生成实体结构图分析实体表中实体之间的关系,形成实体结构
14、图 创造软件系统模型根据现实世界,对实体与行为的组合建立进程模型 扩充功能性过程说明系统输出的功能,必要时在规格说明中加入附加的处理 施加时间控制开发者考虑进程调度的某些特征,这些特征可能影响系统功 能所输出的结果的正确性及时间关系 实现开发者考虑运行系统的软硬件方面的问题,采用变换技术、 调度技术、数据库定义技术等,以使系统能有效地运行26复旦大学计算机科学技术学院 软件工程(第二版)内容摘要内容摘要 JSP方法 JSD方法简介 小结小结27复旦大学计算机科学技术学院 软件工程(第二版)小结小结 面向数据结构的分析和设计方法是以数据 结构为中心,从输入/输出的数据结构导 出程序结构 由于这种方法在国内用得比较少,因此只 作了简单介绍,主要是通过一个实例来介 绍JSP方法,使读者对这种方法有一个大 致的了解28