1. 首页
  2. 文档大全

第6章 详细设计

上传者:8**** 2022-05-27 15:41:07上传 PPT文件 1.42MB
第6章 详细设计_第1页 第6章 详细设计_第2页 第6章 详细设计_第3页

《第6章 详细设计》由会员分享,可在线阅读,更多相关《第6章 详细设计(97页珍藏版)》请在文档大全上搜索。

1、第第6章章 详细设计详细设计 6.1 结构程序设计结构程序设计6.2 人机界面设计人机界面设计6.3 过程设计的工具过程设计的工具6.4 面向数据结构的设计方法面向数据结构的设计方法6.5 程序复杂程度的定量度量程序复杂程度的定量度量n详细设计阶段的根本目标:详细设计阶段的根本目标:确定应该怎样确定应该怎样具体地实现所要求的系统。具体地实现所要求的系统。经过这个阶段的设计工作,应该得出对目标系经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。述直接翻译成用某种程序设计语言书写的程序。

2、n结构程序设计技术是实现上述目标的关键结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。技术,因此是详细设计的逻辑基础。 6.1 结构程序设计结构程序设计n经典定义:经典定义:如果一个程序的代码块仅仅通如果一个程序的代码块仅仅通过过顺序顺序、选择选择和和循环循环这这3种基本控制结构进种基本控制结构进行连接,并且每个代码块只有一个入口和行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。一个出口,则称这个程序是结构化的。3种基本的控制结构种基本的控制结构n为了实际使用方便起见,常常还允许使用为了实际使用方便起见,常常还允许使用DO-UNTIL和和DO-CASE

3、两种控制结构。两种控制结构。n有时需要立即从循环有时需要立即从循环(甚至嵌套的循环甚至嵌套的循环)中转中转移出来,允许使用移出来,允许使用LEAVE(或或BREAK)结构。结构。LEAVE或或BREAK结构实质上是受限制的结构实质上是受限制的GOTO语句,用于转移到循环结构后面。语句,用于转移到循环结构后面。 其他常用的控制结构其他常用的控制结构n经典的结构程序设计:经典的结构程序设计:只允许使用顺序、只允许使用顺序、IF-THEN-ELSE型分支和型分支和DO-WHILE型循型循环这环这3种基本控制结构;种基本控制结构;n扩展的结构程序设计:扩展的结构程序设计:如果除了上述如果除了上述3种基

4、种基本控制结构之外,还允许使用本控制结构之外,还允许使用DO-CASE型型多分支结构和多分支结构和DO-UNTIL型循环结构;型循环结构;n修正的结构程序设计:修正的结构程序设计:再加上允许使用再加上允许使用LEAVE(或或BREAK)结构。结构。 6.2 人机界面设计人机界面设计n人机界面(人机界面(Human Machine Interaction,简称简称HMI),是人与计算机之间传递、交),是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统换信息的媒介和对话接口,是计算机系统的重要组成部分的重要组成部分, 又称用户界面或使用者界又称用户界面或使用者界面面人机界面设计人机界面设

5、计n人机界面设计是接口设计的重要组成部分。人机界面设计是接口设计的重要组成部分。对于交互式系统来说,人机界面设计和数对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重据设计、体系结构设计及过程设计一样重要。要。n人机界面的设计质量,直接影响用户对软人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争件产品的评价,从而影响软件产品的竞争力和寿命,必须对人机界面设计给予足够力和寿命,必须对人机界面设计给予足够重视。重视。 n置用户于控制之下。置用户于控制之下。以不强迫用户进入不必要的或不希望的动作的以不强迫用户进入不必要的或不希望的动作的方式定义交互方式定

6、义交互 n减少用户记忆负担。减少用户记忆负担。减少用户对短期记忆的要求减少用户对短期记忆的要求 n保持界面一致。保持界面一致。用户应以一致的方式展示和获取信息用户应以一致的方式展示和获取信息 三条三条“黄金规则黄金规则”:6.2.1 设计问题设计问题设计人机界面过程中会遇到的设计人机界面过程中会遇到的4个问题:个问题:n系统响应时间系统响应时间n用户帮助设施用户帮助设施n出错信息处理出错信息处理n命令交互命令交互 1. 系统响应时间系统响应时间n系统响应时间指从用户完成某个控制动作,系统响应时间指从用户完成某个控制动作,到软件给出预期的响应之间的这段时间。到软件给出预期的响应之间的这段时间。系

7、统响应时间有两个重要属性:长度和易系统响应时间有两个重要属性:长度和易变性。变性。长度:长度:如果系统响应时间过长,用户就会感到如果系统响应时间过长,用户就会感到紧张和沮丧;系统响应时间过短会迫使用户加紧张和沮丧;系统响应时间过短会迫使用户加快操作节奏,从而可能会犯错误。快操作节奏,从而可能会犯错误。易变性:易变性:指系统响应时间相对于平均响应时间指系统响应时间相对于平均响应时间的偏差,即使系统响应时间较长,响应时间易的偏差,即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏。变性低也有助于用户建立起稳定的工作节奏。2. 用户帮助设施用户帮助设施n大多数现代软件都提供联机帮

8、助设施,用大多数现代软件都提供联机帮助设施,用户无须离开用户界面就能解决自己的问题。户无须离开用户界面就能解决自己的问题。常见的帮助设施可分为集成的和附加的两常见的帮助设施可分为集成的和附加的两类。类。集成的帮助设施集成的帮助设施设计在软件里面,它对用户工设计在软件里面,它对用户工作内容是敏感的,用户可以从与刚刚完成的操作内容是敏感的,用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。作有关的主题中选择一个请求帮助。附加的帮助设施附加的帮助设施是在系统建成后再添加到软件是在系统建成后再添加到软件中的,它实际上是一种查询能力有限的联机用中的,它实际上是一种查询能力有限的联机用户手册。户手册

9、。n集成的帮助设施优于附加的帮助设施。集成的帮助设施优于附加的帮助设施。3. 出错信息处理出错信息处理n出错信息和警告信息,是出现问题时交互出错信息和警告信息,是出现问题时交互式系统给出的式系统给出的“坏消息坏消息”。可理解性;帮助性;指出负面后果;可理解性;帮助性;指出负面后果; 听觉视觉提示;不能责怪用户听觉视觉提示;不能责怪用户4. 命令交互命令交互n多数情况下,用户既可以从菜单中选择软多数情况下,用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能,也可以通过键盘命令序列调用软件功能。件功能。n在理想的情况下,所有应用软件都有一致在理想的情况下,所有应用软件都有一致的命令

10、使用方法。的命令使用方法。 6.2.2 设计过程设计过程n用户界面设计是一个用户界面设计是一个迭代迭代的过程,也就是的过程,也就是说,通常先创建设计模型,再用原型实现说,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然这个设计模型,并由用户试用和评估,然后根据用户意见进行修改。后根据用户意见进行修改。n为了支持上述迭代过程,各种用于界面设为了支持上述迭代过程,各种用于界面设计和原型开发的软件工具应运而生。这些计和原型开发的软件工具应运而生。这些工具被称为用户界面工具箱或用户界面开工具被称为用户界面工具箱或用户界面开发系统。发系统。6.2.3 人机界面设计指南人机界面设计指南

11、n一般交互指南一般交互指南n信息显示指南信息显示指南n数据输入指南数据输入指南一般交互指南一般交互指南n保持一致性。菜单、命令输入、数据显示保持一致性。菜单、命令输入、数据显示等使用一致格式。等使用一致格式。n提供有意义的、视觉和听觉上的反馈。提供有意义的、视觉和听觉上的反馈。n执行破坏性动作前要求用户确认。如删除执行破坏性动作前要求用户确认。如删除记录。记录。n允许取消、撤销操作。允许取消、撤销操作。n尽量减少记忆量。不用记忆看到操作界面尽量减少记忆量。不用记忆看到操作界面即可进行下一步操作即可进行下一步操作。n尽量减少按键次数、减少鼠标移动的距离,尽量减少按键次数、减少鼠标移动的距离,避免

12、用户问避免用户问“这是什么意思这是什么意思”的情况。提的情况。提高行动和思考的效率。高行动和思考的效率。n允许操作员犯错误,但是可以恢复。允许操作员犯错误,但是可以恢复。n按功能对动作分类,并据此设计屏幕布局。按功能对动作分类,并据此设计屏幕布局。比如菜单,就是按动作类型组织命令。比如菜单,就是按动作类型组织命令。n提供必要帮助,包括集成实时帮助和附加提供必要帮助,包括集成实时帮助和附加帮助文件。帮助文件。n使用简单动词或动词短语作为命令名使用简单动词或动词短语作为命令名信息显示指南信息显示指南n只显示与当前工作内容有关的信息。只显示与当前工作内容有关的信息。n尽量使用图形或图表直观方式表现数

13、据。尽量使用图形或图表直观方式表现数据。n使用一致的标记、标准的缩写和可预知的使用一致的标记、标准的缩写和可预知的颜色。颜色。n产生有意义的出错信息,用户可理解的信产生有意义的出错信息,用户可理解的信息。息。n使用大小写、缩进和文本分组以帮助理解。使用大小写、缩进和文本分组以帮助理解。n使用窗口分割不同类型的信息。使用窗口分割不同类型的信息。n高效率使用显示屏。高效率使用显示屏。数据输入指南数据输入指南n尽可能减轻用户记忆,采用列表选择。尽可能减轻用户记忆,采用列表选择。n尽量减少用户输入动作,按键次数。尽量减少用户输入动作,按键次数。n使界面具有预见性和一致性。使界面具有预见性和一致性。用户

14、应能控制数据输入顺序并使操作明用户应能控制数据输入顺序并使操作明确,采用与系统环境一致风格的数据输确,采用与系统环境一致风格的数据输入界面入界面(如如Windows操作系统操作系统) 。 n防止用户出错。防止用户出错。在设计中可采取确认输入在设计中可采取确认输入(只有用户按下键,才只有用户按下键,才确认确认),明确的移动,明确的移动(使用使用TAB键或鼠标在表中键或鼠标在表中移动移动),明确的取消,已输入的数据并不删除。,明确的取消,已输入的数据并不删除。对删除必须再一次确认,对致命错误,要警告对删除必须再一次确认,对致命错误,要警告并退出。对不太可信的数据输入,要给出建议并退出。对不太可信的

15、数据输入,要给出建议信息,处理不必停止。信息,处理不必停止。n提供反馈。提供反馈。要使用户能查看已输入的内容,并提示有效的要使用户能查看已输入的内容,并提示有效的输入提示或数值范围。输入提示或数值范围。 n按用户速度输入和自动格式化。按用户速度输入和自动格式化。用户应能控制数据输入速度并能进行自动格式用户应能控制数据输入速度并能进行自动格式化,对输入的空格都能被接受。化,对输入的空格都能被接受。 n允许编辑。允许编辑。理想的情况,在输入后能允许编辑且采用风格一致的编辑格式。n数据输入界面可通过对话设计方式,若条数据输入界面可通过对话设计方式,若条件具备尽可能采用自动输入。特别是条码、件具备尽可

16、能采用自动输入。特别是条码、图像、声音输入。图像、声音输入。n消除冗余输入。尽可能提供默认值;不要消除冗余输入。尽可能提供默认值;不要求输入单位;程序可以自动计算的信息绝求输入单位;程序可以自动计算的信息绝对不要用户输入;系统自动填入用户已输对不要用户输入;系统自动填入用户已输入过的内容。入过的内容。颜色使用指南:颜色使用指南: n限制同时显示的颜色数。一般同一画面不限制同时显示的颜色数。一般同一画面不宜超过宜超过4或或5种,可用不同层次及形状来配种,可用不同层次及形状来配合颜色,增加变化。合颜色,增加变化。n画面中活动对象颜色应鲜明,而非活动对画面中活动对象颜色应鲜明,而非活动对象应暗淡。对

17、象颜色应尽量不同,前景色象应暗淡。对象颜色应尽量不同,前景色宜鲜艳一些,背景则应暗淡。宜鲜艳一些,背景则应暗淡。n尽量避免不兼容的颜色放在一起,如黄与尽量避免不兼容的颜色放在一起,如黄与蓝,红与绿等,除非作对比时用。蓝,红与绿等,除非作对比时用。n若用颜色表示某种信息或对象属性,要使若用颜色表示某种信息或对象属性,要使用户懂得这种表示,且尽量用常规准则表用户懂得这种表示,且尽量用常规准则表示。示。黄月亮和蓝月亮黄月亮和蓝月亮 怀特效应怀特效应 斯特鲁普效应斯特鲁普效应 6.3 过程设计的工具过程设计的工具6.3.1 程序流程图程序流程图n程序流程图又称为程序框图,它是历史最程序流程图又称为程序

18、框图,它是历史最悠久、使用最广泛的描述过程设计的方法。悠久、使用最广泛的描述过程设计的方法。n它的主要优点是对控制流程的描绘很直观,它的主要优点是对控制流程的描绘很直观,便于初学者掌握。便于初学者掌握。n程序流程图历史悠久,至今仍在广泛使用程序流程图历史悠久,至今仍在广泛使用着。着。程序流程图中使用的符号程序流程图中使用的符号程序流程图的主要缺点:程序流程图的主要缺点:n程序流程图本质上不是逐步求精的好工具,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。而不去考虑程序的全局结构。n程序流程图中用箭头代

19、表控制流,因此程程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。序设计的精神,随意转移控制。n程序流程图不易表示数据结构。程序流程图不易表示数据结构。 6.3.2 盒图盒图(N-S图图)盒图具有下述特点:盒图具有下述特点:n功能域明确。功能域明确。n不可能任意转移控制。不可能任意转移控制。n很容易确定局部和全程数据的作用域。很容易确定局部和全程数据的作用域。n很容易表现嵌套关系,也可以表示模块的很容易表现嵌套关系,也可以表示模块的层次结构。层次结构。盒图的基本符号盒图的基本符号ax1cx2bdFTFTTn例

20、题:例题:某程序某程序流程图如右图流程图如右图所示,请用所示,请用N-S图表示。图表示。 d b x aFTCX26.3.3 PAD图图nPAD是问题分析图是问题分析图(problem analysis diagram)的英文缩写,自的英文缩写,自1973年由日本日年由日本日立公司发明以后,已得到一定程度的推广。立公司发明以后,已得到一定程度的推广。n它用二维树形结构的图来表示程序的控制它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。流,将这种图翻译成程序代码比较容易。 PAD图的基本符号图的基本符号while C do Pif C then P1 else P2cas

21、erepeat P until C语句标号定义PAD图的主要优点如下:图的主要优点如下:n使用表示结构化控制结构的使用表示结构化控制结构的PAD符号设计符号设计出来的程序必然是结构化程序。出来的程序必然是结构化程序。nPAD图所描绘的程序结构十分清晰。图所描绘的程序结构十分清晰。nPAD图表现程序逻辑易读、易懂、易记。图表现程序逻辑易读、易懂、易记。n容易将容易将PAD图转换成高级语言源程序,这图转换成高级语言源程序,这种转换可用软件工具自动完成。种转换可用软件工具自动完成。n即可表示程序逻辑,也可描绘数据结构。即可表示程序逻辑,也可描绘数据结构。nPAD图的符号支持自顶向下、逐步求精方图的符

22、号支持自顶向下、逐步求精方法的使用。法的使用。使用def符号细化处理框P2ax1cx2bdFTFTTn例题:例题:某程序某程序流程图如右图流程图如右图所示,请用所示,请用PAD图表示。图表示。 adX1buntil x2cn例题:例题:某程序某程序流程图如右图流程图如右图所示,请分别所示,请分别用用N-S图和图和PAD图表示。图表示。 a UNTIL x8jbice WHILE x5dx1x2x3x4fgh UNTIL x7x6xi=PAD图:图:x8ajx1bTFfx6TFx7ighCASE xix2x4x3x5cdeN-S图:图:6.3.4 判定表判定表n当算法中包含当算法中包含多重嵌套的

23、条件选择多重嵌套的条件选择时,用时,用程序流程图、盒图、程序流程图、盒图、PAD图或后面即将介图或后面即将介绍的过程设计语言绍的过程设计语言(PDL)都不易清楚地描述。都不易清楚地描述。n判定表却能够清晰地表示复杂的条件组合判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。与应做的动作之间的对应关系。 一张判定表由一张判定表由4部分组成:部分组成:n左上部列出所有条件;左上部列出所有条件;n左下部是所有可能做的动作;左下部是所有可能做的动作;n右上部是表示各种条件组合的一个矩阵;右上部是表示各种条件组合的一个矩阵;n右下部是和每种条件组合相对应的动作。右下部是和每种条件组合相对应

24、的动作。 所有条件所有条件 条件组合矩阵条件组合矩阵所有动作所有动作条件组合条件组合对应的动作对应的动作例题:例题:n假设某航空公司规定,乘客可以免费托运假设某航空公司规定,乘客可以免费托运重量不超过重量不超过30kg的行李。的行李。n当行李重量超过当行李重量超过30kg时,对头等舱的国内时,对头等舱的国内乘客超重部分每公斤收费乘客超重部分每公斤收费4元,对其他舱的元,对其他舱的国内乘客超重部分每公斤收费国内乘客超重部分每公斤收费6元。元。n对外国乘客超重部分每公斤收费比国内乘对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收客多一倍,对残疾乘客超重部分每公斤收费比正常乘

25、客少一半。费比正常乘客少一半。表表6.1 用判定表表示计算行李费的算法用判定表表示计算行李费的算法123456789国内乘客国内乘客TTTTFFFF头等舱头等舱TFTFTFTF残疾乘客残疾乘客FFTTFFTT行李重量行李重量 W 30TFFFFFFFF免费免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12判定表的优点:判定表的优点:n能清晰地表示复杂的条件组合与应做的动能清晰地表示复杂的条件组合与应做的动作之间的对应关系。作之间的对应关系。判定表的缺点:判定表的缺点: n判定表的含义不是一眼就能看出来的,初判定表的含义不是一眼就能看出来的,初次接触这种工

26、具的人理解它需要有一个简次接触这种工具的人理解它需要有一个简短的学习过程。短的学习过程。n当数据元素的值多于两个时,判定表的简当数据元素的值多于两个时,判定表的简洁程度也将下降。洁程度也将下降。n判定树是判定表的变种,也能清晰地表示判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应复杂的条件组合与应做的动作之间的对应关系。关系。n多年来判定树一直受到人们的重视,是一多年来判定树一直受到人们的重视,是一种比较常用的系统分析和设计的工具。种比较常用的系统分析和设计的工具。6.3.5 判定树判定树用判定树表示计算行李费的算法用判定树表示计算行李费的算法n判定树的优点:判定树的优

27、点:它的形式简单,一眼就可以看出其含义,因它的形式简单,一眼就可以看出其含义,因此易于掌握和使用。此易于掌握和使用。n判定树的缺点:判定树的缺点:简洁性不如判定表,数据元素的同一个值往简洁性不如判定表,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复往要重复写多遍,而且越接近树的叶端重复次数越多。次数越多。画判定树时分枝的次序可能对最终画出的判画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响。定树的简洁程度有较大影响。 例题:例题:n某校制定了教师的讲课课时津贴标准。对某校制定了教师的讲课课时津贴标准。对于讲座,无论教师是什么职称,每课时津于讲座,无论教师是什么职称,每

28、课时津贴费一律是贴费一律是50元;元;n对于一般的授课,则根据教师的职称来决对于一般的授课,则根据教师的职称来决定每课时津贴费:教授定每课时津贴费:教授30元,副教授元,副教授25元,元,讲师讲师20元,助教元,助教15元。元。n请分别用判定表和判定树表示津贴标准。请分别用判定表和判定树表示津贴标准。 1520253050FFFFT讲座讲座TFFF助教助教FTFF讲师讲师FFTF副教授副教授FFFT教授教授54321判定表:判定表:课时津贴课时津贴一般授课一般授课讲座讲座教授教授副教授副教授讲师讲师助教助教3025201550判定树:判定树:6.3.6 过程设计语言过程设计语言n过程设计语言过

29、程设计语言(PDL)也称为伪码,它是用正也称为伪码,它是用正文形式表示数据和处理过程的设计工具。文形式表示数据和处理过程的设计工具。nPDL具有严格的关键字外部语法,用于定具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是表示实际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需灵活自由的,可以适应各种工程项目的需要。要。nPDL是一种是一种“混杂混杂”语言,它使用一种语语言,它使用一种语言的词汇,同时却使用另一种语言的语法。言的词汇,同时却使用另一种语言的语法。 伪代码的基本控制结构:伪代码

30、的基本控制结构:n简单陈述句结构:避免复合语句。简单陈述句结构:避免复合语句。n判定结构:判定结构:IF_THEN_ELSE或或CASE_OF结构。结构。n选择结构:选择结构:WHILE_DO或或 REPEAT_UNTIL结构。结构。例:检查订货单例:检查订货单IF 客户订货金额超过客户订货金额超过5000元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFELSE (客户订货金额未超过客户订货金额未超过

31、5000元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIFPDL的特点:的特点:n关键字的固定语法,它提供了结构化控制关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。结构、数据说明和模块化的特点。n自然语言的自由语法,它描述处理特点。自然语言的自由语法,它描述处理特点。n数据说明的手段。应该既包括简单的数据数据说明的手段。应该既包括简单的数据结构,又包括复杂的

32、数据结构。结构,又包括复杂的数据结构。n模块定义和调用的技术,应该提供各种接模块定义和调用的技术,应该提供各种接口描述模式。口描述模式。 PDL的优点:的优点:n可以作为注释直接插在源程序中间。有助可以作为注释直接插在源程序中间。有助于保持文档和程序的一致性,提高了文档于保持文档和程序的一致性,提高了文档的质量。的质量。n可以使用普通的正文编辑程序或文字处理可以使用普通的正文编辑程序或文字处理系统,很方便地完成系统,很方便地完成PDL的书写和编辑工的书写和编辑工作。作。n已经有自动处理程序存在,而且可以自动已经有自动处理程序存在,而且可以自动由由PDL生成程序代码。生成程序代码。PDL的缺点:

33、的缺点:n不如图形工具形象直观,描述复杂的条件不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表组合与动作间的对应关系时,不如判定表清晰简单。清晰简单。 6.4 面向数据结构的设计方法面向数据结构的设计方法n面向数据结构的设计方法的最终目标是得面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。出对程序处理过程的描述。n在完成了软件结构设计之后,可以使用面在完成了软件结构设计之后,可以使用面向数据结构的设计方法来设计每个模块的向数据结构的设计方法来设计每个模块的处理过程处理过程6.4.1 Jackson图图数据结构中数据元素彼此间的逻辑关系:数据结构中数据元素彼此

34、间的逻辑关系:n顺序结构顺序结构,顺序结构的数据由一个或多个,顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现数据元素组成,每个元素按确定次序出现一次。一次。n选择结构选择结构,选择结构的数据包含两个或多,选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。条件从这些数据元素中选择一个。n重复结构重复结构,重复结构的数据,根据使用时,重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构的条件由一个数据元素出现零次或多次构成。成。 A由由B、C、D 3个元素顺序组成个元素顺序组成根据条件根据条件A

35、是是B或或C或或D中的某一个中的某一个A由由B出现出现N次次(N0)组成组成nJackson图的优点:图的优点:便于表示层次结构,而且是对结构进行自顶向便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;下分解的有力工具;形象直观可读性好;形象直观可读性好;既能表示数据结构也能表示程序结构。既能表示数据结构也能表示程序结构。nJackson图的缺点:图的缺点:表示选择或重复结构时,选择条件或循环结束表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序;达能力,也不易直接把图翻译成程序;框间

36、连线为斜线,不易在行式打印机上输出。框间连线为斜线,不易在行式打印机上输出。 6.4.2 改进的改进的Jackson图图 S(i)是分支条件A或者是B,或者不出现I(i)是循环结束条件B,C,D不能是选择或重复出现的数据元素Jackson图和层次图的区别:图和层次图的区别:Jackson图图层次图层次图作用作用描绘数据结描绘数据结构构描绘程序结描绘程序结构构描绘软件结构描绘软件结构矩形框矩形框数据元素数据元素几个语句几个语句模块模块连线连线组成关系组成关系调用关系调用关系6.4.3 Jackson方法方法Jackson结构程序设计方法由结构程序设计方法由5个步骤组成:个步骤组成:(1) 分析并

37、确定输入数据和输出数据的逻辑结分析并确定输入数据和输出数据的逻辑结构,用构,用Jackson图描绘数据结构。图描绘数据结构。(2) 找出输入数据结构和输出数据结构中有对找出输入数据结构和输出数据结构中有对应关系的数据单元。应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元序中可以同时处理的数据单元(对于重复出现的对于重复出现的数据单元必须重复的次序和次数都相同才可能数据单元必须重复的次序和次数都相同才可能有对应关系有对应关系)。 (3) 用下述规则从描绘数据结构的用下述规则从描绘数据结构的Jackson图导出描图导出描绘

38、程序结构的绘程序结构的Jackson图:图:第一,为每对有对应关系的数据单元,按照它们在数第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处据结构图中的层次在程序结构图的相应层次画一个处理框理框(层次不同时与图中层次低的那个对应层次不同时与图中层次低的那个对应);第二,根据输入数据结构中剩余的每个数据单元所处第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对的层次,在程序结构图的相应层次分别为它们画上对应的处理框;应的处理框;第三,根据输出数据结构中剩余的每个数据单元所处第三,根据输出数据结构中剩余的每个数据单

39、元所处的层次,在程序结构图的相应层次分别为它们画上对的层次,在程序结构图的相应层次分别为它们画上对应的处理框。应的处理框。n改进的改进的Jackson图规定在构成顺序结构的元素中不图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。增加中间层次的处理框。 (4) 列出所有操作和条件列出所有操作和条件(包括分支条件和循包括分支条件和循环结束条件环结束条件),并且把它们分配到程序结构,并且把它们分配到程序结构图的适当位置。图的适当位置。(5) 用伪码表示程序。用伪码表示程序。顺序结构:顺序结构:A seq B C

40、DA end选择结构:选择结构:A select cond1 BA or cond2 CA or cond3 DA end循环结构:循环结构:A iter until(或或while) cond BA end例例1:n一个正文文件由若干个记录组成,每个记一个正文文件由若干个记录组成,每个记录是一个字符串。录是一个字符串。n要求统计每个记录中空格字符的个数,以要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。及文件中空格字符的总个数。n要求的输出数据格式是,每复制一行输入要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中字符串之后,另起一行印出这个字符串中的空格

41、数,最后印出文件中空格的总个数。的空格数,最后印出文件中空格的总个数。 设计步骤如下:设计步骤如下:(1) 用用Jackson图描绘的输入输出数据结构。图描绘的输入输出数据结构。 (2) 分析确定在输入数据结构和输出数据结构分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。中有对应关系的数据单元。 (3) 从数据结构图导出程序结构图。从数据结构图导出程序结构图。 (4) 列出所有操列出所有操作和条件,作和条件,并且把它们并且把它们分配到程序分配到程序结构图的适结构图的适当位置。当位置。(5) 用伪码表示用伪码表示程序处理过程序处理过程。程。 6.5 程序复杂程度的定量度量程序复杂程度

42、的定量度量n详细设计阶段设计出的模块质量可以使用详细设计阶段设计出的模块质量可以使用软件设计的基本原理和概念进一步仔细衡软件设计的基本原理和概念进一步仔细衡量它们的质量。但是,这种衡量毕竟只能量它们的质量。但是,这种衡量毕竟只能是定性的,人们希望能进一步定量度量软是定性的,人们希望能进一步定量度量软件的性质。件的性质。定量度量程序复杂程度的作用:定量度量程序复杂程度的作用:n把程序的复杂程度乘以适当常数即可估算把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用出软件中错误的数量以及软件开发需要用的工作量;的工作量;n定量度量的结果可以用来比较两个不同的定量度量的结果可以用

43、来比较两个不同的设计或两个不同算法的优劣;设计或两个不同算法的优劣;n程序的定量的复杂程度可以作为模块规模程序的定量的复杂程度可以作为模块规模的精确限度。的精确限度。 6.5.1 McCabe方法方法1. 流图流图nMcCabe方法根据程序控制流的复杂程度定方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。果称为程序的环形复杂度。n所谓流图实质上是所谓流图实质上是“退化了的退化了的”程序流程程序流程图,它仅仅描绘程序的控制流程,完全不图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的表现对数据的具

44、体操作以及分支或循环的具体条件。具体条件。 流图的表示:流图的表示:n结点:结点:用圆表示,一用圆表示,一个圆代表一条或多条个圆代表一条或多条语句。语句。n边:边:箭头线称为边,箭头线称为边,代表控制流。在流图代表控制流。在流图中一条边必须终止于中一条边必须终止于一个结点,即使这个一个结点,即使这个结点并不代表任何语结点并不代表任何语句。句。n区域:区域:由边和结点围由边和结点围成的面积称为区域,成的面积称为区域,包括图外部未被围起包括图外部未被围起来的区域。来的区域。 映射方法:映射方法:n任何方法表示的过程设计结果,都可以翻任何方法表示的过程设计结果,都可以翻译成流图。译成流图。n对于顺序

45、结构,一个顺序处理序列和下一对于顺序结构,一个顺序处理序列和下一个选择或循环的开始语句,可以映射成流个选择或循环的开始语句,可以映射成流图中的一个结点。图中的一个结点。n对于选择结构,开始语句映射成一个结点;对于选择结构,开始语句映射成一个结点;两条分支至少各映射成一个结点;结束映两条分支至少各映射成一个结点;结束映射成一个结点。射成一个结点。n对于循环结构,开始和结束语句各映射成对于循环结构,开始和结束语句各映射成一个结点。一个结点。n当过程设计中包含复合条件时,应该把复当过程设计中包含复合条件时,应该把复合条件分解为若干个简单条件,每个简单合条件分解为若干个简单条件,每个简单条件对应流图中

46、一个结点。条件对应流图中一个结点。n所谓复合条件,就是在条件中包含了一个所谓复合条件,就是在条件中包含了一个或多个布尔运算符或多个布尔运算符(逻辑逻辑OR,AND,NAND,NOR)。2. 计算环形复杂度的方法计算环形复杂度的方法n环形复杂度定量度量程序的逻辑复杂度。环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用有了描绘程序控制流的流图之后,可以用下述下述3种方法中的任何一种来计算环形复杂种方法中的任何一种来计算环形复杂度度V(G)。V(G)=流图中的区域数流图中的区域数V(G)=E-N+2 其中其中E是流图中的边数,是流图中的边数,N是结点数是结点数V(G)=P+1

47、 其中其中P是流图中判定结点的数目是流图中判定结点的数目 nV(G)=区域数区域数 =4nV(G)=E-N+2 =11-9+2=4nV(G)=P+1 =3+1=43. 环形复杂度的用途环形复杂度的用途n定量度量程序内分支数或循环个数,即程定量度量程序内分支数或循环个数,即程序结构的复杂程度;序结构的复杂程度;n定量度量测试难度;定量度量测试难度;n能对软件最终的可靠性给出某种预测。能对软件最终的可靠性给出某种预测。n实践表明,模块规模以实践表明,模块规模以V(G)10为宜。为宜。 6.5.2 Halstead方法方法nHalstead方法根据程序中运算符和操作数的方法根据程序中运算符和操作数的

48、总数来度量程序的复杂程度。总数来度量程序的复杂程度。n令令N1为程序中运算符出现的总次数,为程序中运算符出现的总次数,N2为为操作数出现的总次数,程序长度操作数出现的总次数,程序长度N定义为:定义为:N=N1+N2n程序中使用的不同运算符程序中使用的不同运算符(包括关键字包括关键字)的个的个数数n1,以及不同操作数,以及不同操作数(变量和常数变量和常数)的个数的个数n2。预测程序长度的公式如下:预测程序长度的公式如下:H = n1 log2n1 + n2 log2n2n预测程序中包含错误的个数的公式如下:预测程序中包含错误的个数的公式如下:E = N log2 (n1+n2)/3000 练习题

49、练习题1:习题习题6.3n画出下列伪码程序的程序流程图和盒图:画出下列伪码程序的程序流程图和盒图: STARTIF p THENWHILE q DOf END DO ELSEBLOCK g nEND BLOCKEND IFSTOP练习题练习题2:用判定表和判定树表示用判定表和判定树表示“检查订货单检查订货单”程程序序IF 客户订货金额超过客户订货金额超过5000元元 THEN IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 在偿还欠款前不予批准在偿还欠款前不予批准 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 E

50、NDIFELSE (客户订货金额未超过客户订货金额未超过5000元元) IF 客户拖延未还赊欠钱款超过客户拖延未还赊欠钱款超过60天天 THEN 发批准书,发货单,并发催款通知书发批准书,发货单,并发催款通知书 ELSE (拖延未还赊欠钱款不超过拖延未还赊欠钱款不超过60天天) 发批准书,发货单发批准书,发货单 ENDIFENDIF订货金额订货金额50005000 TTFF赊欠赊欠6060天天 TFTF不予批准不予批准批准书批准书 批准,并发批准,并发催款通知书催款通知书例:某高校研究生招生系统的初选方法如下:例:某高校研究生招生系统的初选方法如下:总分总分300300(含)以上进入候选学生库,否则(含)以上进入候选学生库,否则退档;数学分数不低于退档;数学分数不低于7070分,则进入三级分,则进入三级备选库,否则进入四级备选库;在三级备备选库,否则进入四级备选库;在三级备选库的基础上,如果专业课分数高于选库的基础上,如果专业课分数高于100100分,分,则进入一级备选库,否则进入二级备选库则进入一级备选库,否则进入二级备选库 请画出对应的判定树。请计算该流图的环形复杂度


文档来源:https://www.renrendoc.com/paper/212463907.html

文档标签:

下载地址