(2.6)--06章 详细设计软件工程.ppt
《(2.6)--06章 详细设计软件工程.ppt》由会员分享,可在线阅读,更多相关《(2.6)--06章 详细设计软件工程.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6章章 详细设计详细设计软件工程导论(第软件工程导论(第6版)版)第第6 6章章 详细设计详细设计根本目标:确定应该怎样具体地实现所要求的系统。详细设计阶段的任务不是具体地编写程序,而是要设计出程序的“蓝图”。详细设计的结果基本上决定了最终的程序代码的质量。章节目录章节目录 6.1 6.1 结构程序设计结构程序设计 6.2 6.2 人机界面设计人机界面设计 6.3 6.3 过程设计的工具过程设计的工具 6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 主 要内 容 6.1 6.1 结构程序设计结构程序设计 6.2
2、 6.2 人机界面设计人机界面设计 6.3 6.3 过程设计的工具过程设计的工具 6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量6.1 结构程序设计结构程序设计1965年结构程序设计的概念最早由E.W.Dijkstra提出:程序的质量与程序中所包含的GO TO 语句的数量成反比。1966年Bohm和Jacopini证明了只用“顺序”、“选择”和“循环”控制结构就能实现任何单入口单出口的程序。6.1 结构程序设计结构程序设计实际上用顺序结构和循环结构(又称DO-WHILE结 构)完全可以实现选择结构(又称IF-THEN-
3、ELSE结构)。因此,理论上最基本的控制结构只有两种。1968年Dijkstra再次建议从一切高级语言中取消GO TO语句,只使用3种基本控制结构写程序。学界认识到不是简单地去掉GO TO 语句的问题,而是要创立一种新的程序设计思想、方法和风格;1971年IBM公司在纽约时报信息库管理系统的设计中成功地使用了结构程序设计技术;1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,补充了结构程序设计的规则。结构程序设计经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。结构程序设计更
4、全面的定义:结构程序设计是尽可能少用GO TO语句的程序设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句。6.1 结构程序设计结构程序设计 从理论上说只用上述3种基本控制结构就可以实现任何单入口单出口的程序,但是为了实际使用方便起见,常常还允许使用DO-UNTIL和DO-CASE两种控制结构。6.1 结构程序设计结构程序设计如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结构程序设计;如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构
5、程序设计;如果再允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计。6.1 结构程序设计结构程序设计1、为什么要用结构化程序设计2、结构化程序设计的几种结构类型本节小结本节小结主 要内 容 6.1 6.1 结构程序设计结构程序设计 6.2 6.2 人机界面设计人机界面设计 6.3 6.3 过程设计的工具过程设计的工具 6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量系统响应时间。用户帮助设施。出错信息处理。命令交互。6.2 人机界面设计人机界面设计6.2.1 设计问题设计问题6.2 人机界面设计人机界面设计
6、系统响应时间。系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或做动作)之间的这段时间。系统响应时间有两个重要属性,分别是长度和易变性。1)长度:时间过长,用户就会感到紧张,过短,加快用户操作节奏,可能会犯错误2)易变性:系统响应时间相对于平均响应时间的偏差即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏。6.2 人机界面设计人机界面设计用户帮助设施。常见的帮助设施可分为集成的和附加的两类。具体设计帮助设施时,必须解决下述的一系列问题。(1)在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?有两种选择:
7、提供部分功能的帮助信息和提供全部功能的帮助信息。(2)用户怎样请求帮助?有3种选择:帮助菜单,特殊功能键和HELP命令。6.2.1 设计问题设计问题6.2 人机界面设计人机界面设计(3)怎样组织帮助信息?有3种选择:平面结构,信息的层次结构和超文本结构。(4)用户怎样返回到正常的交互方式中?有两种选择:屏幕上的返回按钮和功能键。(5)怎样组织帮助信息?有3种选择:平面结构,信息的层次结构和超文本结构。6.2.1 设计问题设计问题6.2 人机界面设计人机界面设计出错信息处理。出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”。一般说来,交互式系统给出的出错信息或警告信息,具有下述属性。(
8、1)用用户可以理解的术语描述问题。(2)提供有助于从错误中恢复的建设性意见。(3)指出错误可能导致哪些负面后果(例如,破坏数据文件),以便用户检查是否出现了这些问题,并在确实出现问题时及时解决。(4)伴随着听觉上或视觉上的提示(5)不能带有指责色彩,不能责怪用户。6.2.1 设计问题设计问题6.2 人机界面设计人机界面设计命令交互。许多高级用户仍然偏爱面向命令行的交互方式在提供命令交互方式时,必须考虑下列设计问题。(1)是否每个菜单选项都有对应的命令?(2)采用何种命令形式?有3种选择:控制序列(例如,Ctrl+P),功能键和输入命令。(3)学习和记忆命令的难度有多大?忘记了命令怎么办?(4)
9、用户是否可以定制或缩写命令?在越来越多的应用软件中,人机界面设计者都提供了“命令宏机制”。在理想的情况下,所有应用软件都有一致的命令使用方法。6.2.1 设计问题设计问题6.2 人机界面设计人机界面设计6.2.2 设计过程设计过程用户试用并评估该原型,直接向设计者表述对界面的评价设计者根据用户意见修改设计并实现下一级原型完成初步设计之后就创建第一级原型用户界面的评估周期用户界面设计是一个迭代的过程,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见进行修改。建立起用户界面的原型,就必须对它进行评估,评估可以是非正式的也可以使正式的。创建了用户界面的设计模型之后,
10、可以运用下述评估标准对设计进行早期复审。(1)系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统所需要的工作量。(2)命令或动作的数量、命令的平均参数个数或动作中单个操作的个数,预示了系统的交互时间和总体效率。(3)设计模型中包含的动作、命令和系统状态的数量,预示了用户学习使用该系统时需要记忆的内容的多少。(4)界面风格、帮助设施和出错处理协议,预示了界面的复杂程度及用户接受该界面的程度。6.2 人机界面设计人机界面设计6.2.2 设计过程设计过程一般交互指南:一般交互指南:涉及信息显示、数据输入和系统整体控制(1)保持一致性。(2)提供有意义的反馈。(3)在执行有较大破坏性的
11、动作之前要求用户确认。(4)允许取消绝大多数操作。(5)减少在两次操作之间必须记忆的信息量。6.2 人机界面设计人机界面设计6.2.3 人机界面设计指南人机界面设计指南(6)提高对话、移动和思考的效率。(7)允许犯错误。(8)按功能对动作分类,并据此设计屏幕布局。(9)提供对用户工作内容敏感的帮助设施(10)用简单动词或动词短语作为命令名。6.2 人机界面设计人机界面设计6.2.3 人机界面设计指南人机界面设计指南(5)产生有意义的出错信息。(6)使用大小写、缩进和文本分组以帮助理解。(7)使用窗口分隔不同类型的信息。(8)使用“模拟”显示方式表示信息,以使信息更(9)容易被用户提取。(10)
12、高效率地使用显示屏。6.2 人机界面设计人机界面设计6.2.3 人机界面设计指南人机界面设计指南数数据据输入入指指南南:用户的大部分时间用在选择命令、输入数据和向系统提供输入。(1)尽量减少用户的输入动作。(2)保持信息显示和数据输入之间的一致性。(3)允许用户自定义输入。(4)交互应该是灵活的,并且可调整成用户最喜欢的输入方式。6.2 人机界面设计人机界面设计6.2.3 人机界面设计指南人机界面设计指南(5)使在当前动作语境中不适用的命令不起作用。(6)让用户控制交互流。(7)对所有输入动作都提供帮助。(8)消除冗余的输入。(9)高效率地使用显示屏。6.2 人机界面设计人机界面设计6.2.3
13、 人机界面设计指南人机界面设计指南1、设计问题2、设计过程3、人机界面设计指南本节小结本节小结主 要内 容 6.1 6.1 结构程序设计结构程序设计 6.2 6.2 人机界面设计人机界面设计 6.3 6.3 过程设计的工具过程设计的工具 6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量6.3 过程设计的工具过程设计的工具6.3.1 程序流程图程序流程图程程序序流流程程图又又称称为程程序序框框图,它是使用最广泛的描述过程设计的方法。程序流程图中使用的符号(a)选择(分支);(b)注释;(c)预先定义的处理;(d)多分支;(
14、e)开始或停止;(f)准备;(g)循环上界限;(h)循环下界限;(i)虚线;(j)省略符;(k)并行方式;(l)处理;(m)输入输出;(n)连接;(o)换页连接;(p)控制流。6.3 过程设计的工具过程设计的工具6.3.1 程序流程图程序流程图总的趋势是越来越多的人不再使用程序流程图了。程序流程图的主要缺点如下:(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。(3)程序流程图不易表示数据结构。6.3 过程设计的工具过程设计的工具6
15、.3.2 盒图盒图右图给出了结构化控制结构的盒图表示,也给出了调用子程序的盒图表示方法。其中:基 本 符 号(a)顺 序;(b)IF_THEN_ELSE型分支;(c)CASE型多分支;(d)循环;(e)调用子程序A6.3 过程设计的工具过程设计的工具6.3.3 PAD图图PAD是问题分析图(problem analysis diagram)的英文缩写,用二维树形结构的图来表示程序的控制流。基本符号(a)顺序(先执行P1后执行P2);(b)选择(IF C THEN P1 ELSE P2);(c)CASE型多分支;(d)WHILE型循环(WHILE C DO P);(e)UNTIL型循环(REPE
16、AT P UNTIL C);(f)语句标号;(g)定义6.3 过程设计的工具过程设计的工具6.3.3 PAD图图6.3 过程设计的工具过程设计的工具6.3.3 PAD图图PAD图的主要优点如下:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。(2)PAD图所描绘的程序结构十分清晰。(3)用PAD图表现程序逻辑,易读、易懂、易记。6.3 过程设计的工具过程设计的工具6.3.3 PAD图图(4)容易将PAD图转换成高级语言源程序,这种转换可 用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。(5)即可用于表示程序逻辑,也可用于描绘数据结构。(
17、6)PAD图的符号支持自顶向下、逐步求精方法的使用。6.3 过程设计的工具过程设计的工具6.3.3 PAD图图(a)初始的PAD图;(b)使用def符号细化处理框P2例子6.3 过程设计的工具过程设计的工具6.3.3 PAD图图练习:某商场在“五一”期间,顾客购物时付款有4种情况:普通顾客一次购物累计少于100元,按A类标准付款(不打折),一次购物累计多于或等于100元,按B类标准付款(打9折);会员顾客一次购物累计少于1000元,按C类标准付款(打8折),一次购物累计等于或多于1000元,按D类标准付款(打7折)。请使用流程图PAD图PDL来设计付款算法。6.3 过程设计的工具过程设计的工具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2.6-06章 详细设计软件工程 2.6 06 详细 设计 软件工程
限制150内