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

上传人:小** 文档编号:60857772 上传时间:2018-11-19 格式:PPT 页数:70 大小:3.75MB
返回 下载 相关 举报
软件工程导论第6章 详细设计2_第1页
第1页 / 共70页
软件工程导论第6章 详细设计2_第2页
第2页 / 共70页
软件工程导论第6章 详细设计2_第3页
第3页 / 共70页
软件工程导论第6章 详细设计2_第4页
第4页 / 共70页
软件工程导论第6章 详细设计2_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《软件工程导论第6章 详细设计2》由会员分享,可在线阅读,更多相关《软件工程导论第6章 详细设计2(70页珍藏版)》请在金锄头文库上搜索。

1、第6章 详细设计,6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 程序复杂程度的定量度量,2,详细设计阶段的根本目标,子目标1: 确定应该怎样具体地实现所要求的系统。要求逻辑上正确地实现每个模块的功能。 子目标2: 使得将来编写出的程序易理解、易测试、易修改和易维护。,3,详细设计阶段的任务,详细设计阶段的任务是设计出程序的详细规格说明,而不是具体地编写程序。 在编码阶段才是写出实际的代码。,4,详细设计的任务主要有如下五点。,(1)确定每个模块的具体算法。 (2) 确定每个模块的内部数据结构及数据库的物理结构。 (3) 确定模块接口的具体细节。 (4) 为每个模块

2、设计一组测试用例。 (5) 编写文档,参加复审。,详细设计阶段的结果决定了最终的程序代码的质量。 结构程序设计技术:是实现质量要求的基本保证,是详细设计的逻辑基础。 结构程序设计定义: 一个程序的代码块仅仅通过顺序、选择和循环这三种基本的控制结构进行连接; 并且每个代码块只有一个入口和一个出口。,6.1 结构程序设计,“结构程序设计是尽可能少用GO TO语句。因为程序的质量与程序中所包含的GO TO语句的数量成反比”。 Bohm和Jacopini已证明:只用三种基本的控制结构(顺序,选择,循环)就能实现任何单入口单出口的程序。从而实现结构程序设计。,结构程序设计质量保证,7,顺序结构,选择结构

3、一,T,T,F,F,选择结构二,结构程序设计三种基本的控制结构,一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。),8,循环结构的图示:,当型(While型)循环结构,直到型(Until型)循环,9,三种基本结构的共同特点: (1)只有一个入口; (2)只有一个出口; (3)结构内的每一部分都有机会被执行到; (4)结构内不存在“死循环”(无终止的循环)。,10,结构程序设计的特点:,由三种基本结构顺序组成的,可以解决任何复杂的问题。 程序内不存在无规律的转向,只在基本结构内才允许存在分支和向前或向后的跳转。,11,课堂练习1,右图给出的程序流程图

4、代表一个非结构化的程序,请问: (1) 为什么说它是非结构化的? (2) 设计一个等价的结构化程序。 (3) 在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。,结束,12,(1)图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。,结束,13,(2)使用附加的标志变量flag,程序流程图,14,(3)不使用附加的标志变量flag,程序流程图,人机界面设计是接口设计的一个重要组成部分。近来年,人机界面在系统中占的比例越来越大,有的系统中甚至占总设计量的一半以上。 人机界面的设计

5、质量,直接影响用户对软件产品的评价。,6.2 人机界面设计,16,系统响应时间:从用户完成某个控制动作到软件给出预期的响应之间的这段时间。 2. 用户帮助设施: 集成和附加两类。 3. 出错信息处理: 如何办, 用户心理。 4. 命令交互: 用户可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能。,6.2.1 设计问题,17,用户界面设计是一个迭代的过程。过程一般如下: 1.通常先创建设计用户界面模型 2.实现该设计模型的原型 3.由用户试用和评估原型 4.根据用户意见进行修改,6.2.2 设计过程,1、一般交互指南 一致性:为人机界面中的菜单选择、命令输入、数据显示及众多其他功能,

6、使用一致的格式。 确认:在执行有较大破坏性的动作之前要求用户确认。 UNDO:允许用户取消绝大数操作。 易记:应该尽量减少记忆量。 层次:按功能对动作分类,并据此设计屏幕布局。 多媒体:应向用户提供视觉和听觉的反馈,以建立双向通信。,6.2.3 人机界面设计指南,1)、可使用性 使用简单 用户界面中所用术语的标准化和一致性 具有HELP功能 快速的系统响应和低的系统成本 2)、灵活性 提供不同的系统响应信息(多媒体)。 提供根据用户需求制定和修改界面。 3)、界面的复杂性与可靠性 复杂性界面规模及组织应该愈简单愈好。只显示与当前工作内容相关的信息。使用窗口分隔不同类型的信息。 可靠性用户界面应

7、该能够保证用户正确、可靠地使用系统,及程序、数据的安全。产生有意义的出错信息。,2、信息显示界面设计,数据输入界面,是系统的重要组成部分。主要从输入速度和减少出错率考虑。,1)尽量减少输入工作量 对相同内容输入设置默认值 自动填入 列表选择或点击选择,2)保持信息显示和数据输入之间的一致性(大小、颜色和位置)。,3)交互应该是灵活的,允许鼠标输入和键盘输入。 4)使在当前动作语境中不起作用的命令不起作用。,3、数据输入界面设计,21,复习与回顾,(1) 经典的结构化程序设计有什么特点? 采用三种基本的控制结构;单入口,单出口 (2)根据你使用和开发软件的经验,谈谈如何尽量减少用户的输入工作量?

8、 1)对相同内容输入设置默认值 2)自动填入 3)列表选择或点击选择 (3)你认为应如何减少界面的复杂度? 1)显示与当前工作内容相关的信息。 2)使用窗口分隔不同类型的信息。 3),22,新课导入,请问: 详细设计阶段的根本目标是什么? 引入:算法设计的工具,6.3 过程设计的工具 (1)过程设计是设计模块的详细步骤(算法),是详细设计阶段应完成的主要工作。 (2)过程设计的工具描述程序处理过程的工具。,描述工具,详细设计阶段的描述工具,24,美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号:,25,例:用流程图

9、表示:打印50名学生中成绩在80分以上者的学号和成绩。,26,程序流程图的优缺点:,主要优点:对控制流程的描绘很简明直观、易于理解,便于初学者掌握。 主要缺点: 本质上不是逐步求精的好工具。 -改进:PAD图 用箭头代表控制流,描述程序时可以随意跳转。 -改进:N-S图 不易表示数据结构。 -改进:PAD图 嵌套的条件选择表示不清。 -判定树、判定表,为了避免流程图在描述程序时的随意跳转,提出了N-S图代替流程图。N-S图由而且仅由顺序、选择、循环三种基本结构组成。,6.3.2 NS图,图6.4 NS图,28,例:用N-S图表示:打印50名学生中成绩在80分以上者的学号和成绩。,N-S图,29

10、,盒图(N-S图)特点,1)形象直观,可读性强; 2)限制了随意的控制转移; 3)特定的控制结构的作用域明确; 4)很容易确定局部和全程数据; 5)很容易表现嵌套和模块的层次结构。 其缺点是:修改算法比较困难。,6.3.3 PAD图,PAD (Problem Analysis Diagram)是问题分析图。 PAD图除了自上而下外,还有从左向右的展开,是使用二维树型结构图表示程序的控制流。,31,PAD图基本符号,顺序结构,选择结构,Case型多分支结构,While型循环,Until 型循环,定义,32,使用PAD图提供的定义功能逐步求精的例子,33,例:用PAD图表示:打印50名学生中成绩在

11、80分以上者的学号和成绩。,PAD图,34,PAD图的特点,1)能展现算法的层次结构; 2)表示形式直观易懂; 3)既可用于表示程序逻辑,又可用于描述数据结构; 4)支持自顶向下,逐步求精的过程。,35,6.3.4 判定表,当算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图等都不易清楚地描述,然而,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。,36,判定表举例行李托运费的算法,假设某航空公司规定:乘客可以免费托运不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公

12、斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 用判定表可以清楚地表示与上述每种组合相对应的计算行李费的算法。,37,一张判定表由4部分组成:,左上部列出所有条件,左下部是所有可能做的动作,右上部表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。,判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。,38,以“检查发货单”为例:,39,判定表的优缺点,优点:判定表能够简洁而无歧义地描述处理规则。可以对判定表进行校验或化简。 缺点:并不适于作为一种通用的设计工具,直观性不够。,40,判定树是用来表达加工逻辑的一种工具。比判定表更直观,是

13、一种常用的系统分析和设计工具。,6.3.5 判定树,41,图6.7用判定树表示计算行李费的算法,数据元素的同一个值往往要写多次,画判定树的次序对叶子结点有较大影响。,42,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发出批准书、发货单,欠款60天,发出批准书、发货单及赊欠报告,欠款60天,发出批准书、发货单,以“检查发货单”为例:,43,判定树的优缺点,优点:比判定表更直观。 缺点: (1)不够简洁,数据元素重复多次地写。 (2)画判定树时分枝的次序对简洁程序有影响。,44,PDL: 是一种非形式化、比较灵活的混杂语言。也称为伪码。 用于描述模块内部过

14、程的具体算法,以便在开发人员之间比较精确的进行交流。 例子,6.3.6 PDL(Program Design Language)程序设计语言,45,商店业务处理系统中“检查发货单”的伪码,if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书、发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书、发货单及赊欠报告 else (欠款未超期) 发批准书、发货单,使用一种语言(通常是自然语言)的词汇,同时却使用另一种语言(某种结构化语言)的语法。,46,PDL用正文形式表示数据和处理过程的

15、设计工具,其外层语法是确定的,而内层语法则不确定。 (1)PDL具有严格的关键字外部语法,用于定义控制结构和数据结构。外层语法描述控制结构它用类似于一般程序设计语言控制结构的关键字: 如 : IF-THEN-ELSE DO WHILE REPEAT- UNTIL DO CASE 等表示。 有时还用关键字反排,表示控制结构结束: DO - OD IF - FI (2)PDL表示实际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需要。,PDL的特点,47,PDL的优缺点,优点: 可以作为注释直接插入到源程序中。有利于PDL和源程序保持一致性。 PDL编写方便。 可以由自动处理程序将

16、PDL生成程序代码。 缺点: (1)不如图形工具形象直观。 (2)描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。,48,思考题,详细设计的算法与概要设计中的模块有什么关系?,49,第五章:总体设计通常采用结构图或HIPO图来描述软件的层次结构。 第六章:详细设计可采用程序流程图、N-S图、PAD图或PDL语言等手段进行描述,描述第五章结构图或HIPO图中模块的算法。,50,51,6.4 程序复杂程度的定量度量,用途: 可估算出软件中错误的数量以及软件开发需要用的工作量。 比较两个不同的设计或两个不同算法的优劣。 作为模块规模的精确限度。,53,6.4.1 McCabe方法,基本步骤: (1)将程序流程图或PDL等简化为流图。 (2)基于流图计算环形复杂度,以定量度量程序的复杂程度。,54,McCabe的流图,定义: 仅仅描绘程序的控制

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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