软件工程导论第六章复习总结附思维导图及部分习题答案

软件工程导论第六章复习总结附思维导图及部分习题答案详细设计

0. 概述
	1. 根本目标:确定应该怎样具体地实现所要求的系统
	2. 任务还不是具体地编写程序,而是要设计出程序的“蓝图”
	3. 结构程序设计技术是详细设计的逻辑基础
1. 结构程序设计
	1. 基本结构控制Page118
		顺序、选择、循环
		顺序结构和循环结构完全可以实现选择结构、理论上最基础的控制结构只有顺序与循环
	2. 定义
		经典的结构程序设计:结构程序设计是尽可能少用GO TO语句的程序设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句
		扩展的结构程序设计:在顺序,IF_THEN_ELSE,DO_WHILE的基础上增加DO_CASE分支结构和DO_UNTIL型循环结构
		修正的结构程序设计,在扩展的基础上,增加LEAVE(BREAK)
2. 人机界面设计
	1. 设计问题
		1. 系统响应时间
		2. 用户帮助实施 Page120
		3. 出错信息处理
		4. 命令交互
	2.设计过程
	3. 人机界面设计指南
		1. 一般交互指南
			1. 保持一致性
			2. 提供有意义的反馈
			3. 在执行有较大破坏性的动作之前要求用户确认
			4. 允许取消绝大多数操作
			5. 减少在两次操作之间必须记忆的信息量
			6. 提高对话,移动和思考的效率
			7. 允许犯错误
			8. 按功能对动作分类,并据此设计屏幕布局
			9. 提供对用户工作内容敏感的帮助设施
			10. 用简单动作多动词短作为命令名
		2. 信息显示指南
			1. 只显示与当前工作内容有关的信息
			2. 不要用数据淹没用户,应该用便于用户迅速收取信息的方式表示数据
			3. 使用一致的标记,标记的缩写和可预知的颜色
			4. 允许用户保持可视化的语境
			5. 产生有意义的出错信息
			6. 使用大小写,缩进和文本分组以帮助理解
			7. 使用窗口分隔不同类型的信息
			8. 使用“模拟显示方式表达信息,以使信息更容易被用户提取”
			9. 高效率地使用显示库
		3. 数据输入指南
			1. 尽量减少用户的输入动作
			2. 保持信息显示和数据输入之间的一致性
			3. 允许用户自定义输入
			4. 交互应该是灵活的,且可调整成用户最喜欢的输入方式
			5. 使在动作语境中不适用的命令不起作用
			6. 让用户控制交互流
			7. 对所有输入动作都提供帮助
			8. 消除冗余的输入
3. 过程设计的工具
	1. 程序流程图
		1. 是程序员过早地考虑程序的控制而不去考虑程序的全局结构
		2. 箭头代表控制流,程序员可不受任何约束,不顾结构程序设计的精神,随意转移控制
		3. 不易表示数据结构
		缺点
	2. 盒图,N-(Nassi-Shneiderman)
		1. 功能域(即一个特定控制结构的作用域)明确
		2. 不可能任意转移控制
		3. 很容易确定局部和全程数据的作用域
		4. 很容易出现嵌套关系,也可以表示模块的层次结构
		不违背结构程序设计精神 Page125
	3. PAD图(Problem Analysis Diagram)P126
		1. 设计出的程序必然是结构化程序
		2. 程序结构清晰,竖线的总条数就是程序的层次数
		3. 变现程序逻辑,易读,易懂,易记
		4. 容易转换成高级语言源程序
		5. 既可表示程序逻辑,也可表示数据结构
		6. 支持自顶向下,逐步求精
	4. 判定表
		1. 左上部:列出所有条件
		2. 左下部:所有可能的动作
		3. 右上部:表示各种条件组合的一个矩阵
		4. 右下部:和每种条件组合相对应的动作
		5. 右半部:每一列实质上是一条规则,规定了与特定的条件组合相对应的动作
	5. 判定树 Page 128
	6. 过程设计语言(PDL)Page 129
4. 面向数据结构的设计方法
	0. 概述
		1. 面向数据流的设计方法,就是根据数据流确定软件结构的方法
		2. 面向数据结构的设计方法,就是根据数据结构设计程序处理过程的方法
		3. 在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程
	1. Jackson图
		顺序结构,选择结构,重复结构
		便于表示层次结构,而且是对结构进行自顶向下 分解的有力工具
		既能表示数据结构也能表示程序结构
	2. 改进的Jackson图 page 131 
		层次图表现的是调用关系,通常一个模块除了调用下级模块外,还完成其他操作
		Jackson图表现的是组成关系
	3.Jackson方法 Page 132
		1. 分解并确定输入数据和输出数据的逻辑结构
		2. 找出输入数据结构和输出数据结构中有对应关系的数据单元
		3. 用此三条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图
			1. 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框
			2. 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
			3. 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
		4. 列出所有操作和条件,并且把它们分配到程序结构图的适当位置
		5. 用伪代码表示程序
5.  程序复杂程度的定量度量
	1. McCabe Method
		1. 流图
		2. 计算环形复杂度
			1. 流图中线性无关的区域数
			2. V(G)=E-N+2,E为边数,N为结点数
			3. V(G)=P+1,P为流图中判定结点数目
		3. 环形复杂度的用途
			1. 对测试难度的一种定量度量
			2. 能对软件最终的可靠性给出某种预测
	2. Halstead Method
		1. 根据程序中运算符和操作数的总数来度量程序的复杂度
		2. N=N1+N2,N为程序长度,N1为运算符出现的总次数,N2为操作出现的总次数
		3. 预测程序长度H=n1log2n1+n2logn2,n1为不同运算符(包括关键字)的个数,n2不同操作数(变量和常量)的个数
		4. 预测程序错误数E=Nlog2(n1+n2)/3000

在这里插入图片描述

习题三
画出下列伪代码的程序流程图和合图

START
IF p THEN
		WHILE  q DO
				f
		END  DO
	ELSE
		BLOCK
			g
			n
		END BLOCK
END IF
STOP

流程图:
在这里插入图片描述
盒图:

在这里插入图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值