软件工程导论第6章 详细的设计-文档资料
[工学]软件工程导论 张海藩第5版第6章
![[工学]软件工程导论 张海藩第5版第6章](https://img.taocdn.com/s3/m/b038d67d804d2b160b4ec036.png)
6.2.3 人机界面设计指南
总结众多设计者的经验得出的设计指南, 有助于设计者设计出友好、高效的人机界面。 下面介绍3类人机界面设计指南。 1. 一般交互指南 一般交互指南涉及信息显示、数据输入 和系统整体控制,因此,这类指南是全局性 的,忽略它们将承担较大风险。下面讲述一 般交互指南。
22
(1) 保持一致性。应该为人机界面中的菜单选择、 命令输入、数据显示以及众多的其他功能,使用一 致的格式。 (2) 提供有意义的反馈。应向用户提供视觉的和听 觉的反馈,以保证在用户和系统之间建立双向通信。 (3) 在执行有较大破坏性的动作之前要求用户确认。 如果用户要删除一个文件,或覆盖一些重要信息, 或终止一个程序的运行,应该给出“您是否确实 要……”的信息,以请求用户确认他的命令。 (4) 允许取消绝大多数操作。UNDO或REVERSE功 能曾经使众多终端用户避免了大量时间浪费。每个 交互式系统都应该能方便地取消已完成的操作。
27
3. 数据输入指南
用户的大部分时间用在选择命令、键入数据 和向系统提供输入。在许多应用系统中,键盘仍然 是主要的输入介质,但是,鼠标、数字化仪和语音 识别系统正迅速地成为重要的输入手段。下面是关 于数据输入的设计指南。 (1) 尽量减少用户的输入动作。最重要的是减少击 键次数,这可以用下列方法实现:用鼠标从预定义 的一组输入中选一个;用“滑动标尺”在给定的值 域中指定输入值;利用宏把一次击键转变成更复杂 的输入数据集合。
10
6.2.1 设计问题
一、 4个设计问题
在设计人机界面的过程中,几乎总会遇到下述 4个问题:系统响应时间、用户帮助设施、出错信 息处理和命令交互。不幸的是,许多设计者直到设 计过程后期才开始考虑这些问题,这样做往往导致 出现不必要的设计反复、项目延期和用户产生挫折 感。最好在设计初期就把这些问题作为重要的设计 问题来考虑,这时修改比较容易,代价也低。下面 讨论这4个设计问题。
张海藩《软件工程导论》(第6版)(章节题库 第6章 详细设计)【圣才出品】

十万种考研考证电子书、题库视频学习平台
第 6 章 详细设计
一、选择题 1.在软件开发过程中,以下说法正确的是( )。 A.程序流程图是逐步求精的好工具 B.N-S 图不可能任意转移控制,符合结构化原则 C.判定表是一种通用的设计工具 D.程序流程图和 N-S 图都不易表达模块的层次结构 【答案】B 【解析】程序流程图本质上不是逐步求精的好工具,它会使程序员过早地考虑程序的控 制流程,而不去考虑程序的全局结构;判定表不是一种通用的设计工具,没有一种简单的方 法使用它能同时清晰地表示顺序和循环等结构;程序流程图不易表示模块的层次结构,N- S 图则可以表示模块的层次结构。
11.程序控制一般分为( )、分支、循环三种基本结构。 A.分块 B.顺序 C.循环 D.分支 【答案】B 【解析】程序控制一般分为顺序结构、分支结构也成选择结构、循环结构三种基本结构, 任何一种结构都能由这三种结构组成。
12.Jackson 方法根据( )来导出程序结构。 A.数据结构 B.数据间的控制结构
4 / 14
圣才电子书 十万种考研考证电子书、题库视频学习平台
10.对于详细设计,下面说法错误的是( )。 A.详细设计是具体地编写程序 B.详细设计是细化成很容易地从中产生程序图纸 C.详细设计的结果基本决定了最终程序的质量 D.详细设计中采用的典型方法是结构化程序设计方法 【答案】A 【解析】详细设计阶段,主要对模块内的算法和模块内的数据结构进行设计,具体编写 程序属于编码阶段的任务。
8.( )工具在软件详细设计过程中不采用。 A.判定表 B.IPO 图 C.PDL D.DFD 图 【答案】D 【解析】DFD 图(数据流图)是软件需求阶段过程中采用的工具,用于描述系统的分 解,即描述系统由哪几个部分组成,各部分之间有什么联系等等。
软件工程导论 第6章 详细设计(Finished)

第六章 详细设计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。
因此,详细设计的结果基本上决定了最终的程序代码的质量。
考虑程序代码的质量时必须注意,程序的“读者”有两个,那就是计算机和人。
在软件的生命周期中,设计测试方案、诊断程序错误、修改和改进程序等等都必须首先读懂程序。
实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长得多。
因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。
详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。
结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。
6.1 结构程序设计结构程序设计的概念最早由E.W.D ijkstra 提出。
1965年他在一次会议上指出:“可以从高级语言中取消GO TO 语句”,“程序的质量与程序中所包含的GO TO 语句的数量成反比”。
1966年Bohm 和Jacopini 证明了,只用3种基本的控制结构就能实现任何单入口单出口的程序。
这3种基 本的控制结构是“顺序”、“选择”和“循环”,它们的流程图分别为图6.1(a),6.1(b)和6.1(c)。
实际上用顺序结构和循环结构(又称DO_WHILE 结构)完全可以实现选择结构(又称IF_THEN_ELSE 结构),因此,理论上最基本的控制结构只有两种。
Bohm 和Jacopini 的证明给结构程序设计技术奠定了理论基础。
1968年Dijkstra再次建议从一切高级语言中取消GO TO语句,只使用3种基本控制结构写程序。
软件工程导论第6章

70年代初N.Wirth在Pascal语言中设置支持“顺序 结构”、“IF-THEN-ELSE选择结构”、“DO-WHILE 重复结构”或“DO-UNTIL重复结构”三种基本控制 结构语句。
25
3种基本控制结构
(1) 顺序型
A B
(2) 选择型
F P A B T
(2) 多情况选择型(case)
T T
P=1 F P=2 F P=n F
…
A1 A2
T
An
(3) 先判定型循环
后判定型循环
(do-while)
F
(do-until)
P T S
S P F
T
例1、某模块有两个输入a和b,一 个输出c,当满足条件(a>0)and(b<2) 时,c=a+b,否则c=a-b。画出该模 块的程序流程图。
a b
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题
1
详细设计阶段的根本目标:确定应该怎样具体地 实现所要求的系统。 为软件结构图中的每一个模块确定使用的算法和 块内数据结构,并用某种选定的表达工具给出清晰 的描述。
100 110
120
130 140
Eq:等于 ne:不等于 gt:大于 lt:小于 ge:大于等于 le:小于等于
例:打印A、B、C三数中最小者的程序 if (A.LT.B .AND. A.LT.C)then write(6,*) A else if (A.GE.B .AND. B.LT.C) then write(6,*) B else write(6,*) C endif endif
软件工程导论第6章(第4版)

二. 人机界面设计
人机界面设计是接口设计的一个重要的组成部 分。对于交互式系统来说,人机界面设计和数据设 计、体系结构设计及过程设计一样重要。
1.指导规则
T.Mandel在《用户界面设计要素》中,提出了3 条指导规则: 让用户驾驭软件,不是软件驾驭用户 减少用户的记忆 保持界面的一致性
2. 应该考虑的设计问题
4. 人机界面设计指南
(3) 数据输入指南 尽量减少用户的输入动作。 保持信息显示和数据输入之间的一致性。 允许用户自定义输入。 交互应该是灵活的,可调整成用户喜欢的输入方式。 使在当前动作语境中不适用的命令不起作用。 让用户控制交互流。 对所有输入动作都提供帮助。 消除冗余的输入。
三. 过程设计
1.过程设计的目的与任务 目的 确定模块采用的算法和块内数据结构,用某种 选定的表达工具给出清晰的描述。 任务:编写软件的“过程设计说明书” 为每个模块确定采用的算法 (模块的详细过程性 描述) 确定每一模块使用的数据结构 确定模块接口的细节 (包括对系统外部的接口和 用户界面,对系统内部其他模块的接口,以及关 于模块输入数据、输出数据及局部数据的全部细 节)
三. 过程设计
2.过程设计的原则与方法
清晰第一的设计风格 结构化的控制结构 结构程序设计的经典定义为: “如果一个程序的代码块仅仅通过顺序、选择和循环这3 种基本控制结构进行连接,并且每个代码块只有一个入口和 一个出口,则称这个程序是结构化的。” 结构程序设计技术是一种实现在逻辑上正确描述每个模 块的功能,并且使设计出的处理过程尽可能简明易懂的关键 技术,是过程设计的逻辑基础。 逐步细化的实现方法 例:在一组数中找出其中的最大数
(4) 命令交互 命令行现在仍然是许多高级用户偏爱的交互方式。在 多数情况下,用户既可以从菜单中选择软件功能,也可以 通过键盘命令序列调用软件功能。 在提供命令交互方式时,必须考虑下列设计问题: 是否每个菜单选项都有对应的命令? 采用何种命令形式?有3种选择:控制序列(例如Ctrl+P), 功能键和键入命令。 学习和记忆命令的难度有多大?忘记了命令怎么办? 用户是否可以定制或缩写命令? 在理想的情况下,所有应用软件都有一致的命令使用 方法。
软件工程导论class8详细设计

(1)只显示与当前工作内容有关的信息 (2)应用便于用户迅速吸取信息的方式来表示数据 (3)使用一致的标记、标准的缩写和可预知的颜色
2 信息显示指南
(4)允许用户保持可视化的语境 (5)产生有意义的出错信息 (6)使用大小写、缩进和文本分组以帮助理解 (7)使用窗口分隔不同类型的信息 (8)使用“模拟”显示方式表示信息,以使信息 更容易被用户提取 (9)高效率地使用显示屏
3. 出错信息处理
定义: 出错信息和警告信息,是出现问题时 交互式系统给出的“坏消息” 应具有的属性 信息应该用用户可以理解的术语描述问题 信息应该提供有助于从错误中恢复的建设性 意见 信息应该指出错误可能导致哪些负面后果 信息应该伴随着听觉上或视觉上的提示 信息不能带有指责色彩
6.3.2 盒图(N-S图)
N-S图的嵌套定义形式
6.3.3 PAD(problem analysis diagram)图
问题分析图 , 1973 年由日本日立公司提出 已得到一定程度的使用,它用二维树形结构 的图来表示程序的控制流,将这种图翻译成 程序代码比较容易。下面是PAD图的基本符 号
6.1 结构程序设计
定义: 如果一个程序的代码块仅仅通过顺序、 选择和循环这3种基本控制结构进行连接, 并且每个代码块只有一个入口和一个出口, 则称这个程序是结构化的 分类
经典的结构程序设计:顺序、IF-THEN-ELSE型分 支和DO-WHILE 型 扩展的结构程序设计: DO-CASE型多分支结构和 DO-UNTIL型循环结构 修正的结构程序设计:LEAVE(或BREAK)结构
6.3.6 过程设计语言(PDL)
(完整word版)软件工程导论(第6版)(word文档良心出品)

第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没有适当的文档材料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
软件配置:程序、文档和数据。
软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。
软件:是程序、数据及相关文档的集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
软件工程:指导计算机软件开发和维护的一门工程学科。
软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制4.采用现代程序设计技术。
5.结构应能清楚的审查。
6.开发小组的人员应该少而精。
7.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
张海藩《软件工程导论》(第6版)(课后习题 第6章 详细设计)【圣才出品】

第6章详细设计
1.假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF THEN ELSE操作?
答:转化如下:
K=1
DO WHILE(条件AND K EQ1)
程序块1
K=K+1
END DO
DO WHILE((NOT条件)AND K EQ1)
程序块2
K=K+1
END DO
2.假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO WHILE操作?
答:转化如下:
label:IF(条件)THEN
程序块
GOTO label
ELSE
程序块
END IF
3.画出下列伪码程序的程序流程图和盒图:
答:(1)流程图如图6-18所示。
图6-18从伪码变成的程序流程图(2)该程序的盒图如图6-19所示。
图6-19从伪码变成的程序盒图4.图6-20给出的程序流程图代表一个非结构化的程序,问:
图6-20一个非结构化程序
(1)为什么说它是非结构化的?
(2)设计一个等价的结构化程序。
(3)在(2)题的设计中使用附加的标志变量flag了吗?若没用,再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。
答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图6-21描绘了等价的结构化程序的盒图。
(a)解法1。
软件工程导论ch6

2020/11/4
18
第6章 详细设计
6.3.5 判定树
图形方式描述基本加工逻辑功能的有效工具。比较直观, 结构清晰, 容易理解,但当条件太多时,不易清楚表达整个判断的过程。它比判定表更 加直观,但不如判定表简洁
2020/11/4
图6.7用判定树表示计算行李费的算法
19
第6章 详细设计
6.3.6 过程设计语言
3.N-S图用一个大的矩形表示所描述的模块,将其内部分成不同的部 分,分别表示不同的子处理过程,这些子处理过程又可进一步分 解成更小的部分。
4.N-S图对于三种基本程序结构的表示方法如图:
2020/11/4
11
第6章 详细设计
盒图基本符号:
2020/11/4
图6.4盒图的基本符号
12
第6章 详细设计
2020/11/4
31
第6章 详细设计
考生情况文件
I
考生记录*
考分文件
I
考生记录*
准考证号 姓名 通讯地址 准考证号
1.类程序设计语言(Program Design Language)采用正文形式表示 数据结构和处理过程的设计工具。 2.PDL通常采用某种结构化的程序设计语言(如PASCAL或C)的语法控 制框架,用于定义控制结构和数据结构,另一方面它又采用某种自 然语言(如汉语和英语)的词汇,表示实际操作和判定条件,以便适 应各种工程项目的需要。 3.PDL语言的特点 (1)关键字的固定语法提供了结构化的控制结构、数据说明和模 块化手段; (2)使用自然语言的自由语法描述处理过程和判定条件;
2020/11/4
8
第6章 详细设计
6.3 过程设计的工具
6.3.1 程序流程图
软件工程导论第五版 第六章

第6章详细设计6.1结构程序设计图6.1 3种基本的控制结构图6.2其他常用的控制结构6.2人机界面设计6.2.1设计问题1. 系统响应时间2. 用户帮助设施3. 出错信息处理2软件工程导论(第五版) 4. 命令交互6.2.2设计过程6.2.3人机界面设计指南1. 一般交互指南2. 信息显示指南3. 数据输入指南6.3过程设计的工具6.3.1程序流程图6.3.2盒图图6.3程序流程图中使用的符号软件工程导论(第五版) 3图6.4盒图的基本符号6.3.3PAD图图6.5PAD图的基本符号4软件工程导论(第五版)图6.6使用PAD图提供的定义功能来逐步求精的例子6.3.4判定表6.3.5判定树6.3.6过程设计语言图6.7用判定树表示计算行李费的算法软件工程导论(第五版) 5 6.4面向数据结构的设计方法6.4.1Jackson图1. 顺序结构2. 选择结构图6.8A由B、C、D 3个元素顺序组成图6.9根据条件A是B或C或D中的某一个3. 重复结构图6.10A由B出现N次(N≥0)组成6.4.2改进的Jackson图6软件工程导论(第五版)图6.11改进的Jackson图6.4.3Jackson方法图6.12表示输入输出数据结构的Jackson图图6.13描绘统计空格程序结构的Jackson图软件工程导论(第五版) 7图6.14把操作和条件分配到程序结构图的适当位置6.5程序复杂程度的定量度量6.5.1McCabe方法1. 流图8软件工程导论(第五版)图6.15把程序流程图映射成流图软件工程导论(第五版) 9图6.16由PDL翻译成的流图图6.17由包含复合条件的PDL映射成的流图2. 计算环形复杂度的方法3. 环形复杂度的用途10软件工程导论(第五版)6.5.2 Halstead方法6.6小结习题61. 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE 操作?2. 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-W HILE操作?3. 画出下列伪码程序的程序流程图和盒图:4. 图6.18给出的程序流程图代表一个非结构化的程序,问:(1) 为什么说它是非结构化的?(2) 设计一个等价的结构化程序。
软件工程导论 第6章 详细设计1

注意:前面省略 了对变量的定义 画出下列伪码程序的流图,计算它的环形复杂度。 ! Procedure average
1 i=1; 2 total.input=total.valid=0; 3 sum=0; 4 Do while value[i]<>-999 5 and total.input<100 6 increment total.input by 1; 7 If value[i]>=minimum 8 and value[i]<=maximun 9 Then increment total.valid by 1; sum=sum+value[i]; 10 11 Endif 12 Increment i by 1; 13 Enddo 14 15 16 17 If total.valid>0 Then average=sum/total.valid; Else average=-999; Endif
4
1、流图
流图: 仅描绘程序的控制流程。
基本符号:
圆:结点,代表一条或多条语句。
箭头线:边
区域:由边和圆围成的面积。
5
基本原则:
—合并原则:以程序流程图为例,顺序处理框和菱形判定框合
并映射成流图中的一个结点、顺序处理框序列合并映射成流
图中的一个结点。
—分解原则:复合条件分解为若干个简单条件,每个简单条件 映射成流图中一个结点。
使得第7章编写的软件 易理解、易测试、 易修改和易维护
2
6.5 程序复杂程度的定量度量—McCabe方法
根据程序控制流的复杂程度
定量度量
程Hale Waihona Puke 的复杂程度(称为程序的环形复杂度)。
软件工程6 详细设计共44页文档

11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,பைடு நூலகம்有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野 人。(名 言网) 13、不怕,不悔(虽然只有四个字,但 常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。
拉
60、生活的道路一旦选定,就要勇敢地 走到底 ,决不 回头。 ——左
56、书不仅是生活,而且是现在、过 去和未 来文化 生活的 源泉。 ——库 法耶夫 57、生命不可能有两次,但许多人连一 次也不 善于度 过。— —吕凯 特 58、问渠哪得清如许,为有源头活水来 。—— 朱熹 59、我的努力求学没有得到别的好处, 只不过 是愈来 愈发觉 自己的 无知。 ——笛 卡儿
软件工程导论(第6章)

整理ppt
28
2.信息显示指南
如果人机界面显示的信息是不完整的、含糊 的或难于理解的,可以用多种不同方式“显 示”信息:用文字、图形和声音;按位置、 移动和大小;使用颜色、分辨率和省略。
关于信息显示的设计指南 (1)只显示与当前工作内容有关的信息。 (2)不要用数据淹没用户,应该用便于用户迅
1965年,他在一次会议上指出:“可以从高级语 言中取消GOTO语句”,“程序的质量与程序中所 包含的GOTO语句的数量成反比”。
1966年Bohm和Jacopini证明了,只用三种基 本的控制结构就能实现任何单入口单出口的程序。 这三种基本的控制结构是“顺序”、“选择”和 “循环”。
1972年IBM公司的Mills进一步提出,程序应该 只有一个入口和一个出口,从而补充了结构程序设 计的规则。
第六章 详细设计
整理ppt
1
第一部分:结构设计,回答用什么方法进行 详细设计。
第二部分:人机界面设计
第三部分:过程设计的工具(程序流程图、 盒图、PAD图、判定表、判定树等)
第四部分:面向数据结构的设计方法( Jackson方法)
第五部分:程序复杂程度的定量度量
整理ppt
2
详细设计的目标
应该具有下述属性 (1)信息应该用用户可以理解的术语描述问题。 (2)信息应该提供有助于从错误中恢复的建设
性意见。
整理ppt
19
(3)信息应该指出错误可能导致哪些负面后果 (例如,破坏数据文件),以便用户检查是否 出现了这些问题,并在确实出现问题时及时 解决。
(4)信息应该伴随着听觉上或视觉上的提示, 例如,在显示信息时同时发出警告铃声,或 者信息用闪烁方式显示,或者信息用明显表 示出错的颜色显示。
软件工程导论课件第6章

20
22
(五)判定树
表示复杂的条件组合与应做的动作之间的对应关系。
判定树以其形式简单,不需任何说明就能看出其含义, 易于掌握和使用等特点,长期以来一直受到人们的重视。 判定树的简洁性不如判定表,经常出现同一个值重复 写多遍,且叶端重复次数急剧增加。 由于判定树的分支次序对于最终画出的判定树的简洁 程度有较大影响,所以选择哪一个条件作为第一个分支 是至关重要的。
5
1971年IBM公司在纽约时报信息库管理系统的设 计中成功地使用了结构程序设计技术,随后在美国 宇航局空间实验室飞行模拟系统的设计中,结构程 序设计技术再次获得成功。
结构化程序设计一种比较流行的定义是:结构 化程序设计是一种设计程序的技术,它采用自顶向 下逐步求精的方法和单入口单出口的控制结构。
4
结构化程序设计的提出
结构化程序设计的概念最早是由E.W.Dijkstra提 出来的。他指出:“可以从高级语言中取消GOTO 语句”,“程序的质量与程序中所包含的goto语句 的数量成反比。 1966年,Bohm和Jacopini证明了,只用3种基本 控制结构就能实现任何单入口单出口的程序。 1972年IBM公司的Mills进一步提出,程序应该只 有一个入口和一个出口,从而补充了结构化程序设 计的规则。
17
(三)PAD图 PAD-Problem Analysis Diagram是问题分析图 的英文缩写,由日立公司中央研究所主任研究员二 村良彦等人在1973年研究开发的。
它使用二维树形结构的图来描述程序的逻辑, 是一种十分有前途的表达方法。
PAD图的优点:程序应该是结构化的。 PAD图中竖线的总条数就是程序中的层次数,既 表示程序逻辑,也描绘数据结构。
软件工程导论第6章 详细设计ppt课件

步骤Ⅱ—找出输入数据构造和输出数据构6.造4 续
的对应关系
所谓有对应关系是指有直接的因果关系,在 程序中可以同时处置的数据单元。需求留意 的是,对于反复的数据单元,必需是反复的 考生 次情况 序文与件次数都一样才考 有生新 能文件 够有对应关系。考分文件
I 考生记录*
I 考生记录*
I 考生记录*
步骤Ⅲ—确定程序构造图
步骤Ⅱ—找出输入数据构造和输出数据构6.造4 续
的对应关系
所谓有对应关系是指有直接的因果关系,在 程序中可以同时处置的数据单元。需求留意 的是,对于反复的数据单元,必需是反复的 次序与次数都一样才有能够有对应关系。
步骤Ⅲ—确定程序构造图
6.4 续
由Jackson图导出相应的程序构造图的规那么:
⑴为每对有对应关系的数据单元,按照它们 在数据构造图中所处的层次,在程序构造图 中的相应层次画一个处置框。假设这对数据
方法:
⑴McCabe方法
McCabe方法——流图
6.5 续
流图本质上是一种简化了的程序流程图,它
仅仅描画程序的控制流程,完全不表现对数 据的详细操作以及分支或循环的详细条件。
程序流程图中的各种框〔包括处置框,断定
框等〕,在流图中都被简化为一个用圆圈表 示的结点。
程序流程图中的一个顺序的处置框序列和一
称考分文件〕合并成一个新文件〔简称考生
新文件〕。考生根本情况文件和考分文件都
是由考生记录组成的。为简便起见,考生根
本情况文件中的考生记录的内容包括:准考
证号、姓名、通讯地址。考分文件中的考生
记录的内容包括:准考证号和各门考分。合
并后的考生新文件自然也是由考生记录组成,
内容包括:准考证号、姓名、通讯地址和各
软件工程导论第6章 详细设计2

2、信息显示界面设计
1)、可使用性 ① 使用简单
② 用户界面中所用术语的标准化和一致性 ③ 具有HELP功能 ④ 快速的系统响应和低的系统成本 2)、灵活性
① 提供不同的系统响应信息(多媒体)。 ② 提供根据用户需求制定和修改界面。 3)、界面的复杂性与可靠性 复杂性—界面规模及组织应该愈简单愈好。只显示与当前工作 内容相关的信息。使用窗口分隔不同类型的信息。 可靠性—用户界面应该能够保证用户正确、可靠地使用系统, 及程序、数据的安全。产生有意义的出错信息。
顺序 结构
选择 结构
Case 型多 分支 结构
While 型循环 Until 型 循环
定义
PAD图基本符号
31
使用PAD图提供的定义功能逐步求精的例子
32
例:用PAD图表示:打印50名学生中成绩在 80分以上者的学号和成绩。
开始 i=1 Until i>50 结束
gi>=80
输出ni和gi
i=i+1
使用一种语言(通常是自 然语言)的词汇,同时却 使用另一种语言(某种结 构化语言)的语法。
45
PDL的特点
PDL用正文形式表示数据和处理过程的设计工具,其外层语法是确 定的,而内层语法则不确定。
(1)PDL具有严格的关键字外部语法,用于定义控制结构和数据 结构。外层语法描述控制结构它用类似于一般程序设计语言控制结 构的关键字:
一个菱形判断框有两个出口, 而一个选择结构只有一个出口 。不要将菱形框的出口和选择 结构的出口混淆。)
选择结构二
7
循环结构的图示:
F
F
T
T
当型(While型)循环结构 直到型(Until型)循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺点:
6.4 续
改进的Jackson图
A
B
C
顺序结构
D
(B、C、D中任一个都不能使选择出现或重复出现的数据元素)
A由B、C、D 3个元素顺序组成
6.4 续
改进的Jackson图
A
S(i)
B°
C° 选择结构
D°
(S右面括号中的数字i是分支条件的编号)
根据条件A选 B或C或D中的某一个
6.4 续
6.4 续
软件所处理的信息的组织结构,相互之间存在一种或 多种特定关系的数据元素的集合。 面向数据结构的设计方法,也就是用面向数据结构作 为程序设计的基础。 重复出现的数据通常由具有循环控制结构的程序来处 理; 选择数据要用带有分支控制结构的程序来处理; 层次的数据组织通常和使用这些数据的程序的层次结 构十分相似。
6.4 续
Jackson图
⑶重复结构
重复结构的数据,根据使用时的条件由一个数据元素 出现零次或多次构成。
A由B出现N次(N≥0)组成
6.4 续
Jackson图
优点:
⑴Jackson图不仅便于表示层次结构,而且也有利于对 结构自顶向下分解; ⑵ Jackson图形象直观,可读性好; ⑶ Jackson图不仅能表示数据结构,也能表示程序结构。 ⑴在选择结构和重复结构中,选择条件或循环结束条 件不能直接在Jackson图中表示出来,影响了图形的表 达能力,也不利于直接把图翻译成程序。 ⑵框间连线为斜线,不易在行式打印机上输出。
⑴顺序结构
顺序结构的数据由一个或多个数据元素组成,每个元 素按确定次序出现一次。
(每个元素只出现一次,出现的次序依次是B、C、D)
A由B、C、D 3个元素顺序组成
6.4 续
Jackson图
⑵选择结构
选择结构的数据包含两个或多个数据元素,每次使用 这个数据时按一定条件从这些数据元素中选择一个。
根据条件A选B或C或D中的某一 个
Jackson方法设计步骤
6.4 续
⑴分析并确定输入数据和输出数据的逻辑结构, 并用Jackson图表示这些数据结构。 ⑵找出输入数据结构和输出数据结构中有对应关 系的数据单元。
⑶按一定的规则从描绘数据结构的Jackson图导出 描绘程序结构的Jackson图。
⑷列出所有操作与条件,并把它们分配到程序结 构图的适当位置。 ⑸用伪代码写出程序。
普通高校本科计算机专业特色教材精选
张海藩 编著
软件工程导论 (第4版)
主要内容
6.4 面向数据结构的设计方法
第6章 详细设计
6.5 程序复杂程度的定量度量
教学重点
Jackson图、McCabe方法。
详细设计
任务:确定怎样具体地实现用户需要的软件系统, 即把解法具体化,设计出程序的“蓝图”。 目标:逻辑上正确地实现每个模块的功能,并使 设计出的处理过程简明易懂。除了保证软件的可 靠性,还要使将来编写出来的程序可读性好、容 易理解、容易测试、容易修改和维护。 方法:采用结构程序设计技术,即采用自顶向下 逐步求精的设计方法和单入口单出口的控制结构。 工具:过程设计工具,描述程序处理过程的工具。
改进的Jackson图
A
S(i)
B° 可选结构
-°
(A或者是元素B或者不出现)
6.4 续
改进的Jackson图
A
I(i)
B*
(循环结束符号的编号为i)
重复结构
A由B出现N次 (N≥0)组成
层次图示例:
6.4 续
层次方框图示例
6.4 续
6.4 续
Jackson图
Jackson图模块;在Jackson 图中,一个方框通常只代表几个语句。 ⑵层次图表现的是调用关系;而Jackson图表现的是组 成关系。 Jackson图是对层次方框图的一种细化。
程序流程图
开始
2000→t
判 定 闰 年 的 算 法
y不能被 4整除 y不能被 100整除 打印y “是闰年”
Y N Y
打印y “不是闰年” y+1→y y不能被 400整除
N
Y
N
打印y “是闰年” 打印y “不是闰年”
N y>2500
结束
Y
盒图:判定闰年的算法
2000 =〉y 是 y/100的余数不为0 是 y/400的余数为0 打印y “是闰年” 是 否 否 打印y “非闰年” y/4的余数为0 否
Jackson图与层次方框图
6.4 续
Jackson方法
1975年,英国人M.A.Jackson提出了软件工程领域 中著名的Jackson方法,当时它只用于软件设计。 1983年,Jackson又对它进行了多方面的扩充和完 善,又应用于需求分析过程中。 核心思想:根据作用于数据的操作序列的结构 (顺序、选择、重复),建立目标软件系统的模 型,然后将其转换为相应的程序结构。
打印y “是闰年”
打印y “非闰年”
y + 1 =〉y 直到 y > 2500
判定表示例:行李托运费
规则
判定树示例:行李托运费
伪码示例:
判 定 闰 年 的 算 法
6.3 续
内 层 选 择 结 构
中 层 选 择 结 构
外 层 选 择 结 构
面向数据的分析方法
分类:
• •
6.4 面向数据结构的设计方法
Jackson方法设计示例1
6.4 续
一个正文文件由若干个记录组成,每个记录是一 个字符串。要求统计每个记录中空格字符的个数, 以及文件中空格字符的总个数。要求的输出数据 格式是,每复制一行输入字符串之后,另起一行 印出这个字符串中的空格数,最后印出文件中空 格的总个数。
步骤Ⅰ—数据结构表示
数据结构与程序结构:
方法:Jackson方法、Warnier方法
6.4 续
Warnier图示例
首 版
标题新闻 国内新闻 本地新闻 股市行情(0,1) 商业新闻 广告(1,5) 文化、体育新闻 散文 新书评论
报 纸
商业金融版
文化体育版
6.4 续
Jackson图
数据结构中,各数据元素彼此间的逻辑关系归结 起来只有顺序、选择和重复三类基本结构。
⑴面向数据流
⑵面向数据结构 特点: ⑴以信息对象及其操作为核心进行分析,与面向 对象分析有相似之处。
•
•
⑵认为复合信息对象具有层次结构,并且可按顺 序、选择、重复三种结构分解为成员信息对象。
⑶提供将层次信息结构映射为程序结构的机制, 从而为软件设计奠定较好的基础。
•
面向数据结构的设计方法
目标:得出对程序处理过程的描述。 数据结构