软件工程导论(第6章

合集下载

[工学]软件工程导论 张海藩第5版第6章

[工学]软件工程导论 张海藩第5版第6章
21
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版)(章节题库 第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 图(数据流图)是软件需求阶段过程中采用的工具,用于描述系统的分 解,即描述系统由哪几个部分组成,各部分之间有什么联系等等。

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程导论(第五版) 第六章

软件工程导论(第五版) 第六章

•经典的结构程序设计:只允许使用顺序、
IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
6.1.1 结构化程序
6.1.1.1 控制结构 • 流程图通常由三种结点组成: •1)函数结点 • 如果一个结点有一个入口线和
行李重量w30行李重量w30国内乘客外国乘客头等舱其他舱头等舱其他舱残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客w302w304w303w306w304w308w306w3012免费图67用判定树表示计算行李费的算法636pdl2可以使用普通的正文编辑程序或文字处理系统来完成pdl的书写和编辑工作
•定义7:由基本程序的一个固定的基集合构造出的复合
程序,称为结构化程序。
6.1.2 结构化定理 •结构化定理:任一正规程序都可以函数等价于
一 个 由基 集 合 {顺 序 , If-else-then,While-do} 产生的结构化程序。
• 实际上,只要能证明可以将任一正规程序转
换成等价的结构化程序就可以证明这个结构化 定理。
123456789 TTTTFFFF TFTFTFTF FFTTFFTT
TFFFFFFFF
×
×
×
×
×
×
×
×
×
•6.3.5 判定树
• 判定树是判定表的变种。
行李重量
国内乘客
头等舱 其他舱
残疾乘客
正常乘客 残疾乘客 正常乘客
(W-30)×2 (W-30)×4 (W-30)×3 (W-30)×6

软件工程导论 第6章 详细设计(Finished)

软件工程导论 第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章

软件工程导论第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版)

软件工程导论第6章(第4版)

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

(完整word版)软件工程导论(第6版)(word文档良心出品)

(完整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版)(课后习题 第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。

软件工程导论(第6章)

软件工程导论(第6章)
(10)用简单动词或动词短语作为命令名。过 长的命令名难于识别和记忆,也会占用过多 的菜单空间。
整理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章

软件工程导论课件第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章 详细设计ppt课件

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

张海藩《软件工程导论》(第6版)笔记和课后习题详解

张海藩《软件工程导论》(第6版)笔记和课后习题详解
第 11 章 面向对象设计................................................................................................................................ 119 11.1 复习笔记...................................................................................................................................... 119 11.2 课后习题详解...............................................................................................................................125
第 3 章 需求分析 ......................................................................................................................................... 28 3.1 复习笔记 ........................................................................................................................................ 28 3.2 课后习题详解 ................................................................................................................................. 32

软件工程导论第6章 详细设计2

软件工程导论第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型)循环

软件工程导论--第六章课后答案

软件工程导论--第六章课后答案

电脑科学与技术第六章习题答案4、图6.18给出的程序流程图代表一个非结构化的程序,问:〔1〕为什么说它是非结构化的?〔2〕设计一个等价的结构化程序。

〔3〕在〔2〕题的设计中使用附加的标志变量flag了吗?假设没有,再设计一个使用flag的程序;假设用了,再设计一个不用flag的程序。

图6.18 一个非结构化程序答:〔1〕图示程序的循环控制结构有两个出口,不符合结构程序的定义,因此是非结构化的程序。

〔2〕设计的等价结构化程序盒图如下所示:〔3〕在第〔2〕题中没有使用标志变量flag,设计使用附加的标志变量flag,将上述程序改成等价的结构化程序,如下盒图所示:7、某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。

如果交易总金额少于1000元,则等于手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。

当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。

当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。

当每股售价超过25元时,如果交易的股数零散〔即,不是100的倍数〕,则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。

要求:〔1〕用判定表表示手续费的计算方法。

〔2〕用判定树表示手续费的计算方法。

答:〔1〕用判定表表示手续费的计算方法如下所示:〔2〕用判定树表示手续费的计算方法如下所示:8、画出以下伪码程序的流图,计算它的环形复杂度。

你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE Z>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:〔1〕该伪码程序的流程图及程序流图如下:环形复杂度V(G)=流图中的边数-流图中的结点数+2=19-14+2=7=流图中的区域数=流图中判定结点数目+1=6+1=7〔2〕有问题, 算法中控制最外层循环的变量Z没有初始化,且在该循环内部未出现任何改变Z取值的语句。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构,先执行A再执行B IF_THEN_ELSE型选择(分支)结构 DO_WHILE型循环结构:
在循环控制条件成立时,重复执行特定的加工。
实际上用顺序结构和循环结构(又称 DO_WHILE结构)完全可以实现选择结构(又 称IF_THEN_ELSE结构),因此,理论上最基 本的控制结构只有两种。
第六章 详细设计
1
第一部分:结构设计,回答用什么方法进行 详细设计。
第二部分:人机界面设计 第三部分:过程设计的工具(程序流程图、
盒图、PAD图、判定表、判定树等) 第四部分:面向数据结构的设计方法(
Jackson方法) 第五部分:程序复杂程度的定量度量
2
详细设计的目标
详细设计阶段的根本目标是确定怎样具体地 实现所要求的系统,也就是说,经过这个阶 段的设计工作,应该得出对目标系统的精确 描述,从而在编码阶段可以把这个描述直接 翻译成用某种程序设计语言书写的程序。
2、附加的帮助设施是在系统建成后再添加到 软件中的,在多数情况下它实际上是一种查 询能力有限的联机用户手册。
16
具体设计帮助设施时,必须解决下述的一系 列问题
(1)在用户与系统交互期间,是否在任何时候 都能获得关于系统任何功能的帮助信息?有 两种选择;提供部分功能的帮助信息和提供 全部功能的帮助信息。
只允许使用顺序、IF_THEN_ELSE型分支和 DO_WHILE型循环这三种基本控制结构。
扩展的结构程序设计:
还允许使用DO_CASE型多分支结构和 DO_UNTIL型循环结构。
修正的结构程序设计:
再加上允许使用LEAVE(或BREAK)结构。
11
6.2 人机界面设计
人机界面设计是接口设计的一个重要的组成 部分 。
(2)用户怎样请求帮助?有3种选择:帮助菜单, 特殊功能键和HELP命令。
17
(3)怎样显示帮助信息?有3种选择,在独立的 窗口中,指出参考某个文档(不理想)和在屏 幕固定位置显示简短提示。
(4)用户怎样返回到正常的交互方式中?有两种 选择:屏幕上的返回按钮和功能键。
(5)怎样组织帮助信息?有3种选择:平面结构 (所有信息都通过关键字访问),信息的层次 结构(用户可在该结构中查到更详细的信息) 和超文本结构。
详细设计的目标: 设计出的处理过程应该尽 可能简明易懂。
3
6.1 结构程序设计
结构程序设计的概念最早由E.W.Dijkstra提出。 1965年,他在一次会议上指出:“可以从高级语
言中取消GOTO语句”,“程序的质量与程序中所 包含的GOTO语句的数量成反比”。 1966年Bohm和Jacopini证明了,只用三种基 本的控制结构就能实现任何单入口单出口的程序。 这三种基本的控制结构是“顺序”、“选择”和 “循环”。 1972年IBM公司的Mills进一步提出,程序应该 只有一个入口和一个出口,从而补充了结构程序设 计的规则。
5
三种基本的控制结构
6
结构程序设计的定义
结构程序设计是一种设计程序的技术,它采用自 顶向下逐步求精的设计方法和单入口单出口的控 制结构。
在总体设计阶段采用自顶向下逐步求精的方法:把一个 复杂问题的解法分解和细化成一个由许多模块组成的层 次结构的软件系统。
详细设计或编码阶段采用自顶向下逐步求精的方法:可 以把一个模块的功能逐步分解细化为一系列具体的处理 步骤或某种高级语言的语句。
8
扩充的控制结构
为了实际使用方便起见,常常还允许使用
DO_CASE型多分支结构和DO_UNTIL型 循环结构。
有时需要立即从循环(甚至嵌套的循环)中 转移出来,如果允许使用LEAVE(或 BREAK)结构,则不仅方便而且会使效率 提高很多。
9
扩充的控制结构
10
结构程序设计
经典的结构程序设计:
13
1.系统响应时间
定义:系统响应时间指从用户完成某个控制 动作(例如,按回车键或点击鼠标),到软件 给出预期的响应(输出信息或做动作)之间的 这段时间。
系统响应时间有两个重要属性,分别是长度 和易变性:
1、长度:如果系统响应时间过长,用户就会 感到紧张和沮丧。系统响应时间过短也不好, 这会迫使用户加快操作节奏,从而可能会犯 错误。
18
3.出错信息处理
出错信息和警告信息,是出现问题时交互式 系统给出的“坏消息”。出错信息设计得不 好,将向用户提供无用的甚至误导的信息, 反而会加重用户的挫折感。
应该具有下述属性 (1)信息应该用用户可以理解的术语描述问题。 (2)信息应该提供有助于从错误中恢复的建设
性意见。
19
(3)信息应该指出错误可能导致哪些负面后果 (例如,破坏数据文件),以便用户检查是否 出现了这些问题,并在确实出现问题时及时 解决。
14
易变性指系统响应时间相对于平均响应时间 的偏差。即使系统响应时间较长,响应时间 易变性低也有助于用户建立起稳定的工作节 奏。
15
2.用户帮助设施
常见的帮助设施可分为集成的和附加的两 类。
1、集成的帮助设施从一开始就设计在软件里 面,通常,它对用户工作内容是敏感的,因 此用户可以从与刚刚完成的操作有关的主题 中选择一个请求帮助。显然,这可以缩短用 户获得帮助的时间,增加界面的友好性。
人机界面的设计质量,直接影响用户对软件 产品的评价,从而影响软件产品的竞争力和 寿命,因此,必须对人机界面设计给予足够 重视。
12
6.2.1 设计问题
在设计人机界面的过程中,几乎总会遇到下 述4个问题:系统响应时间、用户帮助设施、 出错信息处理和命令交互。
许多设计者直到设计过程后期才开始考虑这 些问题,这样做往往导致出现不必要的设计 反复、项目延期和用户产生挫折感。最好在 设计初期就把这些问题作为重要的设计问题 来考虑,这时修改比较容易,代价也低。
7
结构程序设计的优点
1. 可以显著提高软件开发工程的成功率和生产率 。 2. 程序有清晰的层次结构,因此容易阅读和理解。 3. 开发时比较容易保证程序的正确性,即使出现错
误也比较容易诊断和纠正。 4. 源程序清晰流畅,易读易懂而且容易测试。 5. 程序清晰和模块化使得在修改和重新设计一个软
件时可以重用的代码量最大。 6. 程序的逻辑结构清晰,有利于程序正确性证明。
相关文档
最新文档