版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程详细设计概述软件工程学系列2022/8/252详细设计前一页 详细设计(Procedural Design)的目标是确定,并具体地实现所要求的系统,从而在编码阶段可以把该实现的描述直接翻译成用某种程序设计语言书写的程序。 详细设计的目标不仅是在逻辑上能够正确地实现每个模块的功能,还要求设计的处理过程应该尽可能简明易懂。 2022/8/253主要内容结构化程序设计 人机界面设计过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量 前一页2022/8/254结构化程序设计前一页 1965年最早由E.W.Dijkstra提出:“可以从高级语言中取消goto语句,程序的质量与程序中所
2、包含的goto语句的数量成反比”。 1966年,Bohm和Jacopini证明了,只用“顺序”(Sequence)、“选择”(Condition Select)和“循环”(Repetition)三种基本的控制结构就能实现任何单入口单出口的程序。 1972年,IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口。 2022/8/255前一页三种基本结构2022/8/256结构化程序设计经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。全面的定义:结构程序设计是尽可能少用GO TO 语句的程序
3、设计方法。最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO语句。2022/8/257结构化程序设计前一页经典的结构程序设计:只允许使用顺序、IF-THEN-ELSE型分支和DO-WHIL型循环三种基本控制结构。扩展的结构程序设计:允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构。修正的结构程序设计:允许使用LEAVE(或BREAK)结构。 2022/8/258人机界面设计人机界面设计是接口设计的一个重要的组成部分有些系统中人机界面的设计工作量占到一半人机界面设计的质量,直接影响用户对软件产品的评价2022/8/259人机界面设计遇到的4个问题:系统响应时间
4、用户帮助设施出错信息处理命令交互设计问题2022/8/2510人机界面设计系统响应时间:从用户完成某个控制动作,到软件给出预期的响应之间的时间。系统响应时间的长度易变性:系统响应时间相对于平均时间的偏差设计问题2022/8/2511人机界面设计用户帮助设施:集成的帮助设施设计在软件里面,缩短用户获得帮助的时间附加的帮助设施在系统建成后添加到软件中的集成的帮助设施优于附加的帮助设施设计过程2022/8/2512人机界面设计出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”有效的出错信息能提高交互式系统的质量,减轻用户的挫折感设计过程2022/8/2513人机界面设计命令行曾经是用户和系统
5、软件交互的常用方式许多高级用户仍偏爱命令行交互用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能设计过程2022/8/2514人机界面设计用户界面设计是一个迭代的过程先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见修改2022/8/2515详细设计的工具前一页 描述程序处理过程的工具称为详细设计的工具,分为图形、表格和语言三类。都要求能提供对设计的无歧义(无二义性)的描述。 2022/8/2516前一页详细设计的工具程序流程图 盒图(N-S图) PAD图判定表判定树 过程设计语言(PDL) 主要内容2022/8/2517详细设计的工具前一页程序流程
6、图 程序流程图又称为程序框图,是历史最悠久、使用最广泛、也是用得最混乱的一种描述软件设计的方法。总的趋势是正在逐步被淘汰 。 (1)程序流程图在本质上并不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构化程序设计的原则,随意转移控制。 (3)程序流程图不便于表示数据结构。 2022/8/2518程序流程图 缺点:(1)程序流程图在本质上并不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2)程序流程图中用箭头代表控制流,因此程序员不受任何约束
7、,可以完全不顾结构化程序设计的原则,随意转移控制。 (3)程序流程图不便于表示数据结构。 优缺点比较:优点是对控制流程的描绘很直观。2022/8/2519前一页程序流程图2022/8/2520前一页详细设计的工具盒图(N-S图) Nassi和Shneiderman提出盒图 (1)功能域(一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。 (2)不能够随意转移控制。 (3)很容易确定局部和全局数据的作用域。 (4)很容易表现嵌套关系,也可以表示模块的层次结构。 2022/8/2521前一页盒图(N-S图)2022/8/2522详细设计的工具前一页PAD图 PAD是问题分析图(Proble
8、m Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。它用二维树结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 2022/8/2523详细设计的工具前一页PAD图优点: (1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。 (2)PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主干线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。 2022/8/2524前一页PAD图 (3)用PAD图表现程序逻辑,易读、易懂
9、、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点 (4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成 (5)即可表示程序逻辑,也可描绘数据结构 (6)PAD图的符号支持自顶向下,逐步求精方法的使用 。2022/8/2525前一页PAD图基本符号2022/8/2526前一页用PAD图逐步求精2022/8/2527前一页判定表 当算法中包含多重嵌套的条件选择时,用程序流图、盒图、PDL等都难以清楚地描述。而判定表和判定树都能清晰地表示复杂的条件组合与操作之间的关系。一张判定表由四部分组成: 左上部:所有可能的条
10、件 右上部:各种条件的组合 左下部:所有可能的操作 右下部:每种组合的动作详细设计的工具2022/8/2528前一页判定表例:某航空公司规定,乘客可以免费托运不超过30公斤的行李。对超重部分:头等仓国内乘客4元/公斤;其他仓国内乘客6元/公斤;外国乘客比国内乘客多收一倍;残疾乘客比正常乘客少收一半。详细设计的工具2022/8/2529前一页123456789国内乘客TTTTFFFF头等仓TFTFTFTF残疾乘客FFTTFFTT行李W 30TFFFFFFFF免费(W-30) 2 (W-30) 3 (W-30) 4(W-30) 6(W-30) 8(W-30) 12 用判定表计算行李费2022/8/
11、2530判定表优缺点:优点:简洁又无歧义地描述处理规则缺点:不能表示顺序和重复等处理2022/8/2531前一页判定树 判定树与判定表类似,同样能够清晰地表示复杂的条件组合与操作之间的关系,但它的表达形式比判定表更直观清晰。详细设计的工具2022/8/2532前一页用判定树计算行李费2022/8/2533判定树优缺点比较:优点:形式简单,直观缺点:不如判定表简洁越接近树的叶端重复次数越多分枝的次序可能对最终画出的判定树的简洁程度有影响2022/8/2534详细设计的工具前一页过程设计语言(PDL) PDL也称为伪码,这是一个笼统的名称,类似于高级语言,现在有许多种不同的过程设计语言在使用。它是
12、用正文形式数据和处理过程的设计工具。 2022/8/2535JACKSON程序设计方法Jackson图改进的Jackson图 Jackson方法前一页主要内容2022/8/2536JACKSON程序设计方法前一页JACKSON图 虽然程序中实际使用的数据结构种类繁多,但是数据元素彼此间的逻辑关系只有顺序、选择和重复三类,因此,逻辑数据结构也只有这三类。 2022/8/2537前一页JACKSON图1.顺序结构 顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。2.选择结构 选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。3.重复结构
13、 重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。 JACKSON程序设计方法2022/8/2538前一页JACKSON图 Jackson图的优点:便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;形象直观可读性好;既能表示数据结构也能表示程序结构(因为结构程序设计也只是使用上述三种基本结构)。 JACKSON程序设计方法2022/8/2539前一页改进的JACKSON图2022/8/2540前一页JACKSON方法Jackson结构程序设计方法基本上由下述五个步骤组成 :1、分析并确定输入数据和输出数据的 逻辑结构,并用Jackson图描绘这些数据结构。 JACKS
14、ON程序设计方法2022/8/2541前一页2、找出输入数据结构和输出数据结构结构中有相对应关系的数据单元。对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元。 JACKSON方法JACKSON程序设计方法2022/8/2542前一页3、用下述三条规则从描绘数据结构 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框。 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。 JACKSON程序设计方法J
15、ACKSON方法2022/8/2543前一页4、列出所有操作和条件(包括分支和循环结束条件)并且把它们分配到程序结构图的适当位置 。JACKSON程序设计方法5、用伪码表示程序。 JACKSON方法2022/8/2544WARNIER方法前一页 由法国人J.D.Warnier提出的另一种面向数据结构的设计方法,逻辑构造程序的方法(简称LCP方法)。 Warnier方法的原理和Jackson方法类似,也是从数据结构出发设计程序,但是这种方法的逻辑更严格。北京大学计算机研究所使用Warnier方法开发汉字激光照排软件,取得了较好效果。 2022/8/2545WARNIER方法Warnier方法 W
16、arnier方法的辅助技术 主要内容前一页2022/8/2546WARNIER方法前一页WARNIER方法 Warnier程序设计方法的最终目标同样是得出对程序处理过程的详细描述。由下述五个步骤组成: 第一步,分析和确定输入数据和输出数据的逻辑结构,并用Warnier图描绘这些数据结构。 第二步,主要依据输入数据结构导出程序结构,并用Warnier图描绘程序的处理层次。 第三步,画出程序流程图并自上而下依次给每个处理框编序号。2022/8/2547前一页 第四步,分类写出伪码指令,Warnier定义了下列五类指令:输入和输出准备、分支和分支准备、计算、输出和输出准备、子程序调用。 第五步,把前一步中分类写出的指令按序号排序,从而得出描述处理过程的伪码。 WARNIER方法WARNIER方法2022/8/2548程序复杂程度的定量度量McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能灌溉系统日志分析技术应用
- 流行饰品制作工岗中安全操作考核试卷含答案
- 乙醛装置操作工技术应用考核试卷含答案
- 瓦斯抽放工岗位生产安全水平考核试卷含答案
- 2026年基建数字化高级研发师招聘笔试试卷 招录14人
- 2026年售前数字化高级顾问招聘笔试试卷 招录12人王牌题库
- 2026年安徽省界首市高三数学下册期末考试模拟试卷附答案【考试直接用】
- 2026年云南省开远市高三数学下册期末考试模拟检测卷必考附答案
- 2026届阿里地区日土县三年级数学下学期期中质量跟踪监视试题(含答案解析)
- 2026届阳江市阳春市数学三年级下学期期中学业水平测试试题含答案解析
- 山东齐鲁名校教育测评2026年10月高三年级学业质量检测地理+答案
- 2.4 光的反射现象 课件(内嵌视频)2026-2027学年科学六年级上册教科版
- 2025年中国银行总行招聘笔试试题+答案
- 2026年6月浙江高考选考技术试卷真题(含答案详解)
- 血液肿瘤相关肠梗阻护理专家共识(2026年版)
- 2026年电机学考试复习题库及答案详解
- 2026年机电工程中级职称考试《专业基础知识》考试题库及答案
- 2024年北京中考记叙文阅读专题02写 人记事散文(含答案解析)
- 柱体积配箍率计算表格
- 皖2015s209 混凝土砌块式排水检查井
- 提灌站施工组织设计方案
评论
0/150
提交评论