06第四章179.ppt
《06第四章179.ppt》由会员分享,可在线阅读,更多相关《06第四章179.ppt(179页珍藏版)》请在三一文库上搜索。
1、4.3 软件设计方法,4.3.1 面向数据流的设计方法 (data flow-oriented design method),什么是面向数据流的设计? Beginning with a fundamental system model (requirement analysis) , information may be represented as a continuous “flow” that undergoes(经历) a series of transforms (processes) as it evolves from input to output. The data flow
2、 diagram (DFD) is used as a graphical tool to depict information flow. Data flow-oriented design defines a number of different “mappings” that transform information flow into software structure.,面向数据流的设计就是根据业务过程,不断地细化数据流图。 规划阶段的细化在表达清楚需求后终止;设计阶段的细化在可以表达清楚软件结构(可以编写程序了)时终止。 从业务过程(问题域)到数据流图(问题域的数据流表达)到
3、软件结构(问题解)的过程,就称为“映射” 的过程。 - defines a number of different “mappings”,面向数据流的设计通常又叫做结构化设计(structured design)。是目前使用最广泛的软件设计方法之一。,面向数据流设计的步骤,(1)确定数据流的类型。 (2)绘制并逐步细化数据流图(对于数据密集、关系复杂的应用问题,要建立数据字典,绘制实体-关系图)。 (3)根据数据流图,绘制并逐步细化软件结构图,直至程序结构图。 (4)将对应于数据流的软件结构进行过程化描述(绘制每个模块的流程图)。, 面向数据流设计的应用,A data flow-oriente
4、d approach to design is particularly powerful when no formal data structure exists. For example, microprocessor control applications; complex numerical analysis procedures; process control; and many engineering and scientific software applications do not require sophisticated(复杂) data structures and
5、 are difficult to model with data structure-oriented design. A data flow approach solves this difficulty nicely.,4.3.1.1 数据流的类型,对于一个应用问题,不论系统的数据流如何庞大和复杂,一般都可以分成两种类型,即 变换流(transform flow) 和 事务流(transaction flow) 很多情况下,一个大型系统常常既有变换流,又有事务流,称之为混合流。,(1)变换流,变换流的数据流图是一个线形结构,由输入、变换和输出三部分组成。全部变换过程就是把数据的外部表示逐
6、步变成内部(便于软件处理的)表示,最后再把处理结果还原成外部表示(提供分析和应用)。,(2)事务流,事务流的数据流图与变换流类似,也包括三个部分,它由输入、 事物处理和输出组成。不同的是,它是一个并行或分支结构,根据输入的特性(条件),选择一个或多个事务处理的路径,进而产生处理的结果。,(3)混合流,示例:输水道(自然河流 / 人工渠道)中水流调控的变换流和事务流,4.3.1.2 面向数据流的设计,(1) 数据字典设计 由于数据流图不足以完整地描述软件设计的对象属性和内容,所以,一般情况下数据流图必须与数据字典配套使用。,(2)绘制实体-关系图,实体-关系图(Entity-Relationsh
7、ip Diagram E-R D) 是表示数据对象及其关系的图形语言。 数据对象是现实世界中省略了功能和行为的实体。应用问题中的任何数据对象都不是孤立的,它们之间存在各种形式的关联,称之为关系。关系分为一对一、一对多、多对多等。,CASE 水利数据实体关系,E-R D在实际应用时,会根据应用领域和实际需要作适当的修改和扩充。E-R D只是描绘(depict)实体间的关系,并不显示实体的属性,为了使水利数据实体关系图有更直观的效果,在这个CASE中增加了“属性”项,用 表示。,“政区”(包括实体及属性)与其它水利实体的关系,(3)根据 E-R D 创建数据库(表),表结构 政区数据(表) 字段名
8、 标识符 数据类型及长度 可否为空值 单位 是否主键 是否外键 代码 district_code C(4) 否 是 名称 district_name C(8) 否 人口 population N(4) 万 面积 area N(5) KM2 水库数据(表) 字段名 标识符 数据类型及长度 可否为空值 单位 是否主键 是否外键 代码 reservior_code C(4) 否 是 名称 reservior_name C(8) 否 所属政区 district_code C(4) 是 容量 volume N(5) 万米3,(4) 数据流图绘制,采购子系统数据流图,采购子系统的软件结构图 (struct
9、ure chart),(6)面向数据流的设计过程,请参考 “采购子系统” 的软件结构图,将大学教材购销系统数据流图中的销售子系统数据流图转换成软件结构图。当然,也可以思考作为示例的销售子系统数据流图、采购子系统数据流图、采购子系统软件结构图是否合理,并提出修改意见。,思考题7 绘制软件结构图,4.3.2 面向数据结构的设计方法 (data structured-oriented design),面向数据结构的设计与面向数据流的设计的不同 面向数据流的设计来源于软件的模块化和功能分解概念,即软件结构对应于数据的变换或事务的处理。 面向数据结构的设计则是根据问题的数据结构定义一组映射,把问题的数据
10、结构转换为问题解的软件(或程序)结构。它着重于问题的数据结构,把软件(程序)结构设计成与问题的数据结构对应,不强调模块定义。因此,这种结构容易理解,也容易修改。,面向数据结构设计的步骤,(1)确定数据结构的特征。 (2)用顺序、选择和重复三种数据结构来描述数据的 关系。 (3)把问题的数据结构映射为软件的控制结构。 (4)细化软件的控制结构 (5)将对应于数据结构的软件控制结构进行过程化描 述(绘制模块流程图)。 请注意这里讨论的数据结构与“数据结构”课程所 讨论的数据结构的不同!?,面向数据结构设计的应用,Data structured-oriented design may be succ
11、essfully applied in applications that have a well-defined, hierarchical structure of information. Typical examples include: Business and financial applications System applications CAD/CAM In addition, applications from the engineering-scientific domain, computer-aided instruction, combinatorial prob
12、lem solving, and many other areas may be amenable(更适合) to data structured-oriented design.,4.3.2.1 Jackson 开发方法,Jackson把问题的数据结构分成三种类型,图解如下: (1)顺序结构 A B C D (2)选择结构 A B C,(3)重复结构 A B* C D,示例:磁带文件数据结构的 Jackson 图解 文件 文件头 文件体 表示文件包含两个元素 组* 表示文件体包含多个组 记录* 表示组包含多个记录 A型记录 B型记录 表示记录只能是A型或B型,4.3.2.2 Jackson方
13、法的开发过程,4.3.2.2.1 步骤 (1)研究问题环境,确定要处理问题的数据结构 (2)把数据结构转换成软件结构 (3)细化软件结构 用基本操作来定义要完成的任务,并把 每个基本操作分配到程序结构合适的元素 (模块)中去,以获得带有操作的最终程序 结构。,4.3.2.2.2 示例磁带记录处理软件,第一步:确定磁带记录的文件结构 文件 文件头 文件体 组* 记录* A型记录 B型记录,第二步:生成软件结构 处理文件 处理文件头 处理文件体 处理组* 处理记录* 处理A型记录 处理B型记录,第三步:细化并产生最终软件结构 处理文件 1,2,3,4,12 3,11 处理文件头 处理文件体 5,6
14、,7 处理组* 8 处理记录* 3 1,2,12 含义 参见教材P112 9 处理A型记录 处理B型记录 10,PROC_FILE seq open file; read file; PROC_HEADER seq display file header; read file; PROC_HEADER end PROC_BODY seq zeroise group count (GC); zeroise A count (AC); zeroise B count (BC); PROC_GROUP iter while not EOF increment GC; PROC_REC iter wh
15、ile not EOF select type A PROC_TYPEA increment AC; or type B PROC_TYPEB increment BC; read file; PROC_REC end PROC_GROUP end PROC_BODY end close file; display totals; stop; PROC_FILE end,第四步:程序流程(伪代码 pseudo code ),(1)多个数据结构的处理,例如两个磁带记录文件的合并和对一个磁带记录文件处理后输出处理结果就是多个数据结构的处理问题。以后者为例,问题域在输入数据结构的基础上增加了一个输出
16、数据结构。,4.3.2.3 特殊结构的处理*,文件摘要 组标识 类型总计 组 数* A总计 B总计,则程序结构应作出相应的调整: 处理文件 处理文件头 处理文件体 生成类型总计 处理组* 生成 生成 并给出标识 A总计 B总计 处理记录* “输出”对应的程序结构 处理A型记录 处理B型记录,(2)结构次序冲突的处理,如果从一个“卡片文件”上读入一个n*m的矩阵A然后输出一个“打印文件”,该文件是一个 m*n的矩阵B,那么这个问题就是结构次序冲突问题。 卡片文件: a11 a12 a1m . an1 an2 anm 打印文件: b11 b12 b1n . bm1 bm1 bmn 显然,这里,输入
17、结构的次序与输出结构的次序不一致(冲突),就数据处理而言,这是一个矩阵转置(重新排序)问题。,为了解决这个问题,除了建立输入和输出两个程序结构与输入,输出数据结构对应外,还要增加一个程序结构用于对输入矩阵的排序。 数据结构 程序结构 读入卡片文件 卡片文件 排序(从n*m到m*n) 打印文件 输出打印文件,(3)结构边界冲突的处理,例如:读入一条纸带上的电报电文信息,经分析后,输 出一个分析结果报告。 假定:A)纸带上的信息格式(数据结构)为: * * * EOB * * * EOB 大于12个字符为超长 组结束符 ZZZZ * * * * * ZZZZ * 一个电报结束符 EOB * * Z
18、ZZZ EOB EOF 纸带文件结束符,B)分析报告(数据结构)格式为: Telegrams Analysis 报告头 Telegram1 15 words of whole 2 oversize 电报1的分析结果 Telegram2 106 words of whole 13 oversize 电报2的分析结果 Telegram3 42 words of whole 0 oversize 电报3的分析结果 End Analysis 报告尾,这个例子中数据结构的边界冲突表现在,输入是以“组”为基本数据结构,输出则以“电报”为基本数据结构。由于“组”与“电报”之间的不对应(一个组并不一定包含整数
19、个电报;一个电报也不一定由整数个组所组成;一个电报不一定从组的起始处开始;组的起始处也不一定是一个电报的开始),因此造成了边界冲突。 第一层 第二层 第三层 第四层 纸带 组 字 字符 (1,s) (1,b) (1,r) 报告 电报 字 字符 (1,g) (1,c) (1,r) 显然,冲突是由第二层的不对应造成的!,冲突处理办法:增加中间文件,纸带 P1 中间文件 P2 报告 从纸带读入信息 从中间文件读入信息 产生中间文件 分析后产生报告 根据上述处理方法,最后生成P1和P2的程序结构,如教材 P119的图3-84和图3-85所示。,4.3.2.4 应用实例,与数据表内容无关的数据编辑界面设
20、计(方案1),通过 “数据字典” 实现数据编辑程序设计与数据表内容无关,数据表字典 字段表字典 中文含义 表文件名 中文含义 字段名 所属数据表文件名 水源表 IrrIBSource 。 泵站表 IrrBIPumpingStation 泵站编码 pump-code IrrBIPumpingStation 河流表 IrrBIReach 泵站名称 pump-name IrrBIPumpingStation 水库表 IrrBIResevoir 所在河流编码 river-code IrrBIPumpingStation 。 上级泵站编码 upperPump-code IrrBIPumpingStati
21、on 泵站类型 pumpStation-code IrrBIPumpingStation 装机容量 capacity IrrBIPumpingStation 机组台数 setnumber IrrBIPumpingStation 。,与数据表内容无关的数据编辑界面设计(方案2),思考题 8 软件设计实例 按照4.3.2.4节介绍的应用实例的要求,编制一个程序实现实例要求的数据编辑功能。 要求:1 提交源程序清单 2 提交可执行的程序 3 给出一个设计报告 4 只要定义两个数据表 5 数据表的结构、内容可以自己定义 6 其它?,把信带给加西亚,美西战争爆发后,美国必须立即与西班牙的反抗军首领加西亚
22、取得联系。人们只知道加西亚在古巴的丛林中,但是,没有人知道他在古巴的确切位置。因此无法通过信件和电话与他取得联系。怎么办呢?有个人对当时的美国总统麦金利说,有一个名叫罗文的人有办法找到加西亚。于是,麦金利总统写了一封信,亲手交给罗文。罗文拿了信,把它装进一个油布做的袋子,封好,吊在胸口,划着一艘小船,四天之后在古巴上岸,消失于丛林之中。三个星期后,罗文徒步穿越丛林,从古巴的另一边出来,他把信交给了加西亚。 这件事,几乎被世界上的所有语言所翻译。纽约中央火车站(Union Station)曾把它印刷1500万份分发给乘客。 对于这件事,要强调的只有一点,就是罗文接过麦金利总统写的信后,并没有问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 第四 179
链接地址:https://www.31doc.com/p-2913482.html