结构化设计

上传人:206****923 文档编号:51643745 上传时间:2018-08-15 格式:PPT 页数:66 大小:573KB
返回 下载 相关 举报
结构化设计_第1页
第1页 / 共66页
结构化设计_第2页
第2页 / 共66页
结构化设计_第3页
第3页 / 共66页
结构化设计_第4页
第4页 / 共66页
结构化设计_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《结构化设计》由会员分享,可在线阅读,更多相关《结构化设计(66页珍藏版)》请在金锄头文库上搜索。

1、 结构化设计 软件设计的任务1从分析过渡到设计2软件设计准则3度量模块独立性的标准4启 发 规 则5软件结构的图形工具6人机界面设计8过 程 设 计9过程设计工具10面向数据结构设计方法11结构化设计实例(略)12面向数据流的设计方法78 人机界面设计u人机界面设计是接口设计的一个重要的组成部分。u对交互式系统来说,人机界面设计和数据设计、体系 结构设计、过程设计一样重要。近年来,人机界面在系 统中所占的比例越来越大。u人机界面的设计质量,直接影响用户对软件产品的评 价,从而影响软件产品的竞争力和使用寿命,因此,必 须对人机界面设计给予足够重视。u人机界面的设计结果,将对用户工作时的心情和工作

2、 效率产生重要影响。1. 系统响应时间 系统响应时间是许多交互式系统用户经常抱怨的问题 。一般说来,系统响应时间指的是从用户完成某个控制动 作(例如,按回车键或点击鼠标),到软件给出预期的响 应(输出或做预期的动作)之间的这段时间。系统响应时间有两个重要属性,分别是长度和易变性。8.1 应该考虑的设计问题2. 用户帮助设施常见的帮助设施有集成的和附加的两类。集成的帮助 设施从一开始就设计在软件里面,通常它对用户的工作内 容是敏感的,因此用户可以从与刚刚完成的操作有关的主 题中选择一个请求帮助。显然,这可以缩短用户获得帮助 所需的时间,并能增加界面的友好性。附加的帮助设施是 在系统建成后再添加到

3、软件中的,在多数情况下,它实际 上是一种查询能力有限的联机用户手册。人们普遍认为, 集成的帮助设施优于附加的帮助设施。3. 出错信息处理交互式系统给出的出错警告信息,应该具有下述属性 。 信息应该以用户可以理解的术语描述问题。 信息应该提供有助于从错误中恢复的建设性意见。 信息应该指出错误可能导致哪些负面后果(如破坏数据文件), 以便用户检查是否出现了这些问题,并在确实出现问题时予以改正。 信息应该伴随着听觉上或视觉上的提示。 信息不能带有指责色彩,也就是说,不能责怪用户。当确实出现了问题的时候,有效的出错信息能够提高 交互式系统的质量,减少用户的挫折感。4. 命令交互命令行曾经是用户和系统软

4、件交互的最常用方式, 而且也曾经广泛地用于各种应用软件中。现在,面向窗 口的、点击和拾取方式的界面已经减少了用户对命令行 的依赖,但是,许多高级用户仍然偏爱面向命令的交互 方式。在多数情况下,用户既可以从菜单中选择软件功 能也可以通过键盘命令序列调用软件功能。8.2 人机界面设计过程方法:原型法 过程:用户界面设计是一个迭代的过程,也 就是说,通常先创建设计模型,再用原型 实现这个设计模型,并由用户试用和评估 ,然后根据用户的意见进行修改。1. 一般交互指南一般交互指南涉及信息显示、数据输入和整体系统控制 ,因此,这些指南是全局性的,忽略它们将承担较大风险 。 保持一致性。为人机界面中的菜单选

5、择、命令输入、数 据显示及其他功能,使用一致的格式。 提供有意义的反馈。向用户提供视觉的和听觉的反馈, 以保证在用户和界面之间建立双向通信。 在执行有较大破坏性的动作之前要求用户确认。 允许取消绝大多数操作。每个交互式应用系统都应该能 方便地取消已完成的操作。 减少在两次操作之间必须记忆的信息量。8.3 界面设计指南 提高对话、移动和思考的效率。应该尽量减少击键次数 ,设计屏幕布局时应该考虑尽量减少鼠标移动的距离。 允许犯错误。系统应该保护自己不受致命错误的破坏。 按功能对动作分类,并据此设计屏幕布局。下拉菜单的 一个主要优点就是能按动作类型组织命令。 提供对工作内容敏感的帮助设施。 用简单动

6、词或动词短语作为命令名。过长的命令名难于 识别和记忆,也会占据过多的菜单空间。2. 信息显示指南 只显示与当前工作内容有关的信息。用户在获得有关系 统的特定功能的信息时,不必看到与之无关的数据、菜单 和图形。 不要用数据淹没用户,应该用便于用户迅速地吸取信息 的方式来表示数据。例如,可以用图形或图表来取代巨大 的表格。 使用一致的标记、标准的缩写和可预知的颜色。显示的 含义应该非常明确,用户不必参照其他信息源就能理解。 产生有意义的出错信息。 允许用户保持可视化的语境。如果对图形显示进行缩 放,原始的图像应该一直显示着,以使用户知道当前观 察的图像部分在原图中所处的相对位置。 使用大小写、缩进

7、和文本分组以帮助理解。 使用窗口分隔不同类型的信息。利用窗口用户能够方 便地“保存”多种不同类型的信息。 使用“模拟”显示方式表示信息,以使信息更容易被 用户吸取。 高效率地使用显示屏。当使用多窗口时,应该有足够 的空间使得每个窗口至少都能显示出一部分。3. 数据输入指南用户的大部分时间用在选择命令、键入数据和向系 统提供输入。在许多应用系统中,键盘仍然是主要的输入 介质,但是,鼠标、数字化仪和语音识别系统正迅速地成 为重要的输入手段。 尽量减少用户的输入动作,重要的是减少击键次数。 保持信息显示和数据输入之间的一致性。显示的视觉 特征应该与输入一致。 允许用户自定义输入。 交互应该是灵活的,

8、并且可调整成用户最喜欢的输入 方式。 使在当前动作语境中不适用的命令不起作用。这可使 用户不去做那些肯定会导致错误的动作。 让用户控制交互流。用户应该能够跳过不必要的动作 ,改变所需做的动作的顺序,以及在不退出程序的情况 下从错误状态中恢复正常。 对所有输入动作都提供帮助。 消除冗余的输入。除非可能发生误解,否则不要要求 用户指定工程输入的单位;9 过 程 设 计过程设计应该在数据设计、体系结构设计和 接口设计完成之后进行,它是详细设计阶段应该 完成的主要任务。过程设计的任务还不是具体地编写程序,而是要设 计出程序的“蓝图”,以后程序员将根据这个蓝图写出实 际的程序代码。对于长期使用的软件系统

9、而言,人读程序 的时间可能比写程序的时间还要长得多。因此,衡量程序 的质量不仅要看它的逻辑是否正确,性能是否满足要求, 更主要的是要看它是否容易阅读和理解。过程设计的目标 不仅仅是逻辑上正确地实现每个模块的功能,更重要的是 设计出的处理过程应该尽可能简明易懂。结构程序设计技术是过程设计的逻辑基础。结构程序设计的概念最早由E.W.Dijkstra提 出。1965年他在一次会议上指出:“可以从高 级语言中取消GOTO语句”,“程序的质量与 程序中所包含的GO TO语句的数量成反比”。 1966年Bhm和Jacopini证明了,只用三种基 本的控制结构就能实现任何单入口单出口的程 序。这三种基本的控

10、制结构是“顺序”、“选 择”和“循环” 。1972年IBM公司的Mills进一步提出,程序应 该只有一个入口和一个出口,从而补充了结构程序 设计的规则。结构程序设计的经典定义如下所述:如果一个程序的代码块仅仅通过顺序、选择和 循环这三种控制结构进行连接,并且每个代码块只 有一个入口和一个出口,则称这个程序是结构化的 。三种基本的控制结构 (a)顺序结构,先执行A再执行B; (b)IF_THEN_ELSE型选择结构; (c)DO_WHILE型循环结构为了实际使用方便起见,常常还允许使用 DO_UNTIL和DO_CASE两种控制结构,如图所示。其他常用的控制结构 (a)DO_UNTIL型循环结构;

11、(b)多分支结构如果只允许使用顺序、IF_THEN_ELSE型分支和 DO_WHILE型循环这三种基本控制结构,则称为经典 的结构程序设计;如果除了上述三种基本控制结构之外 ,还允许使用DO_CASE型多分支结构和DO_UNTIL型 循环结构,则称为扩展的结构程序设计;如果再加上允 许使用LEAVE(或BREAK)结构,则称为修正的结构 程序设计。10 过程设计的工具描述程序处理过程的工具称为过程设计的工具,它 们可以分为图形、表格和语言三类。10.1 程序流程图程序流程图又称为程序框图,它是历史最悠久使用最 广泛的描述过程设计的方法,然而它也是用得最混乱的一 种方法。在前面已经用程序流程图描

12、绘了一些常用的控制结构, 相信读者对程序流程图中使用的基本符号已经有了一些了 解。程序流程图中使用的符号(a)选择(分支); (b)注释; (c)预先定义的处理;(d)多分支; (e)开始或停止;(f)准备; (g)循环上界限;(h)循环下界限; (i)虚线;()省略符;(k)并行方式;(l)处理; (m)输入/输出;(n)连接;(o)换页连接;(p)控制流程序流程图虽然比较直观,灵活,并且比较容易掌 握,但是它的随意性和灵活性却使它不可避免地存在着 一些缺点: (1)由于程序流程图的特点,它本身并不是逐步求 精的好工具。因为它使程序员容易过早地考虑程序的具 体控制流程,而忽略了程序的全局结构

13、; (2)程序流程图中用箭头代表控制流,这样使得程 序员不受任何约束,可以完全不顾结构程序设计的精神 ,随意转移控制; (3)程序流程图在表示数据结构方面存在不足。10.2 盒图出于要有一种不允许违背结构程序设计精神的 图形工具的考虑,Nassi和Shneiderman发明了盒 图,又称为N-S图。它有下述特点: (1)功能域明确,从盒图上一眼就可看出来。 (2)不可能任意转移控制。 (3)很容易确定局部和全程数据的作用域。 (4)很容易表现嵌套关系,也可以表示模块的 层次结构。盒图的基本符号 (a)顺序; (b)IF_THEN_ELSE型分支; (c)CASE型多分支;(d)循环;(e)调用

14、子程序A10.3 PAD图PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司 发明以后,已得到一定程度的推广。它用二维树形 结构的图来表示程序的控制流,将这种图翻译成程 序代码比较容易。下面给出PAD图的基本符号。基本控制结构:(1)顺序结构 (2)选择结构A B CABTF条 件(3)循环结构(先测试循环)(后测试循环)REPEAT C UNTIL SWHILE C DO SUNTIL CSWHILE CS(4) 多分支选择型(CASE型) A1值1值2值n A2An. . .条件使用PAD图提供的定义功能来逐步求精的例子 (a)初始

15、的PAD图;(b)使用def符号细化处理框P2PAD图是面向高级程序设计语言的,为FORTRAN,COBOL和 PASCAL等每种常用的高级程序设计语言都提供了一整套相应的图形符 号。由于每种控制语句都有一个图形符号与之对应,显然将PAD图转换 成与之对应的高级语言程序比较容易。 当算法中包含多重嵌套的条件选择时,用程序流 程图、盒图、PAD图或后面即将介绍的过程设计语言 (PDL)都不易清楚地描述。此时需要用判定表或判 定树来表示。这两种工具不是和做通用的设计工具,不能表示 顺序结构和循环结构。判定表与判定树当算法中包含多重嵌套的条件选择时,判定 表能够清晰地表示复杂的条件组合与应做的动作

16、之间的对应关系。一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。 判定表右半部的每一列实质上是一条规则,规 定了与特定的条件组合相对应的动作。 10.5 判定表下面以行李托运费的算法为例说明判定表的组织方 法。假设某航空公司规定,乘客可以免费托运重量不超过 30kg的行李。当行李重量超过30kg时,对头等舱的国内 乘客超重部分每kg收费4元,对其他舱的国内乘客超重部 分每kg收费6元,对外国乘客超重部分每kg收费比国内乘 客多一倍,对残疾乘客超重部分每kg收费比正常乘客少 一半。用判定表可以清楚地表示与上述每种条件组合相对 应的动作(算法),如表所示。123456789国内乘客 TTTTFFFF头等舱 TFTFTFTF残疾乘客 FFTTFFTT行李重量W30TFFFFFFFF免费 (W30)2 (

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号