欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    软件工程06详细设计.ppt

    • 资源ID:2615198       资源大小:1.56MB        全文页数:93页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程06详细设计.ppt

    个人成果,妥善保存,请勿传播,软件工程,张康立 Email:jiangnanedu126.com,个人成果,妥善保存,请勿传播,可行性研究,需求分析,概要设计,详细设计,实 现,集成测试,确认测试,使用与维护,退役,软件定义,软件开发,软件使用与维护,软件生命周期,个人成果,妥善保存,请勿传播,软件设计的任务,从工程管理的角度来看,软件设计分两步完成 总体设计(概要设计),将软件需求转化为数据结构和软件的系统结构。 详细设计,即过程设计。通过对结构表示进行细化,得到软件详细的数据结构和算法。,个人成果,妥善保存,请勿传播,软件设计的任务,一般交互式软件系统的设计内容 体系结构设计 数据设计 接口设计 人机界面设计 过程设计,个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,详细设计的任务,Program Design Coding 为SC图的每个模块确定算法和数据结构 进行详细设计的原则 在保证正确可靠前提下,尽量提高算法可读性 采用结构化设计方法,改善控制结构,降低程序复杂度,提高可测试性和可维护性 自顶向下逐步求精; 具有单入、单出的控制结构(取消GOTO语句) 用工具无二义的描述模块算法,个人成果,妥善保存,请勿传播,详细设计的任务,详细设计过程 1.确定每个模块的算法 选择适当工具表达算法执行过程 2.确定每一个模块的数据组织 3.为每一个模块设计一组测试用例 输入数据、预期输出结果 4.编写详细设计说明书 5.设计评审,个人成果,妥善保存,请勿传播,详细设计的任务,详细设计内容 用图表列出系统的每个程序,包括每个模块和子程序名称、标识符、层出结构关系 对程序的功能、性能、输入、输出、算法、流程、接口等进行描述 内容包括 程序描述:程序简要描述,意义和特点 功能:程序应具备的功能 性能:精度、灵活性和时间特性等 输入项 输出项,个人成果,妥善保存,请勿传播,详细设计的任务,详细设计内容 内容包括 算法:具体的计算步骤和过程 接口:模块的隶属关系、调用方式和参数、与模块直接关联的数据结构(如数据库表、文件等) 存储分配(根据需要) 注释设计:程序注释说明 限制条件:程序运行中所受的限制条件,个人成果,妥善保存,请勿传播,详细设计的任务,详细设计优化 在不考虑时间因素的前提下开发并精化软件结构 选出最耗时的模块,仔细设计处理算法 孤立出大量占有处理机资源的模块 必要时重新设计或用依赖于机器的语言重写大量占有资源的模块,个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,结构程序设计,1 结构程序设计的提出 结构程序设计概念最早1965年由E.W.Dijkstra提出 “可以从高级语言中取消GOTO语句” “程序的质量与程序中所包含的GOTO语句的数量成反比” 1966年bohm和Jacopini证明了: 只用三种基本的控制结构能实现任何单入口单出口的程序 1968年人们认识要创立一种新的程序设计思想 以显著地提高软件生产率和降低软件维护代价,个人成果,妥善保存,请勿传播,结构程序设计,1 结构程序设计的提出 1971年IBM公司成功地使用了结构程序设计技术 纽约时报信息库管理系统 美国宇航局空间实验室飞行模拟系统 1972年IBM公司的Mills进一步补充了结构程序设计的规则 结构程序设计是尽可能少用GOTO语句的程序设计方法。最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句,个人成果,妥善保存,请勿传播,结构程序设计,2 结构程序设计分类 只允许使用顺序、IF-THEN-ELSE分支和DO-WHILE型循环这三种基本控制结构,称为经典的结构程序设计 还允许使用DO-CASE多分支结构和DO-UNTIL循环结构,称为扩展的结构程序设计 如果再加上允许使用LEAVE(或BREAK)结构,称为修正的结构程序设计,个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,人机界面设计,人机界面的设计四个方面 系统响应时间 用户帮助设施 出错信息处理 命令交互 1. 系统响应时间 系统响应时间指 从用户完成某个控制动作(例如,按回车键或点击鼠标),到软件给出预期响应(输出信息或做动作)之间的时间,个人成果,妥善保存,请勿传播,人机界面设计,1. 系统响应时间 系统响应时间有两个重要属性 响应长度 系统响应时间过长,用户就会感到紧张和沮丧 系统响应时间过短,会迫使用户加快操作节奏,从而可能会犯错误 易变性(系统响应时间的更重要的属性) 指系统响应时间相对于平均响应时间的偏差 响应时间易变性低也有助于用户建立起稳定的工作节奏 例如,稳定在1秒的响应时间比从0.1秒到2.5秒变化的响应时间要好,个人成果,妥善保存,请勿传播,人机界面设计,2. 用户帮助设施 常见的帮助设施可分为集成的和附加的两类 集成的帮助设施从一开始就设计在软件里面 它对用户工作内容是敏感的 可缩短用户获得帮助的时间,增加界面的友好性 附加的帮助设施是在系统建成后再添加到软件中的 实际是一种查询能力有限的联机用户手册 人们普遍认为,集成的帮助设施优于附加的帮助设施,个人成果,妥善保存,请勿传播,人机界面设计,设计帮助设施时必须解决下述问题 (1)交互期间是否在任何时候都能获得关于任何功能的帮助? 有两种选择:提供功能的帮助信息和提供全部功能的帮助信息 (2)用户怎样请求帮助? 有3种选择:帮助菜单,特殊功能键和HELP命令 (3)怎样显示帮助信息? 有3种选择:在独立的窗口中,指出参考某个文档和在屏幕固定位置显示简短提示 (4)用户怎样返回到正常的交互方式中? 有两种选择:屏幕上的返回按钮和功能键 (5)怎样组织帮助信息? 有3种选择:平面结构(所有信息都通过关键字访问),信息的层次结构(用户可在该结构中查到更详细的信息)和超文本结构,个人成果,妥善保存,请勿传播,人机界面设计,3. 出错信息处理 出错信息和警告信息 是出现问题时交互式系统给出的“坏消息” 一般说来,交互式系统给出的出错信息或警告信息,应该具有下述属性: (1)应该用用户可以理解的术语描述问题 (2)应该提供有助于从错误中恢复的建设性意见,个人成果,妥善保存,请勿传播,人机界面设计,(3)信息应该指出错误可能导致哪些负面后果 (4)信息应该伴随着听觉上或视觉上的提示 例如,在显示信息时同时发出警告铃声 或者信息用闪烁方式显示 或者用明显表示出错的颜色显示 (5)信息不能带有指责色彩 也就是说,不能责怪用户,个人成果,妥善保存,请勿传播,人机界面设计,4. 命令交互 在提供命令交互方式时,必须考虑下列设计问题 (1)是否每个菜单选项都有对应的命令? (2)采用何种命令形式? 有3种选择:控制序列(例如,Ctrl+P),功能键和键入命令。 (3)学习和记忆命令的难度有多大?忘记了怎么办? (4)用户是否可以定制或缩写命令?,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计过程 用户界面设计是一个迭代的过程 创建设计模型-再用原型实现这个设计模型-由用户试用和评估-根据用户意见进行修改 用于界面设计和原型开发的软件工具 用户界面工具箱或用户界面开发系统 用户界面的评估周期如下所述 完成初步设计之后就创建第一级原型; 用户试用并评估该原型,向设计者表述对界面的评价 设计者根据用户意见修改设计并实现下一级原型,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计过程 运用下述评估标准对设计进行早期复审: (1)系统及其界面的规格说明书的长度和复杂程度 预示了用户学习使用该系统所需要的工作量 (2)命令或动作的数量、命令的平均参数个数或动作中单个操作的个数 预示了系统的交互时间和总体效率 (3)动作、命令和系统状态的数量 预示了用户学习使用该系统时需要记忆的内容的多少 (4)界面风格、帮助设施和出错处理协议 预示了界面的复杂程度及用户接受该界面的程度,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 一般交互指南 涉及信息显示、数据输入和系统整体控制 (1)保持一致性 应该为人机界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式 (2)提供有意义的反馈 应向用户提供视觉的和听觉的反馈,以保证在用户和系统之间建立双向通信。 (3)在执行有破坏性的动作之前要求用户确认,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 1 一般交互指南 (4)允许取消绝大多数操作 UNDO或REVERSE功能曾经使众多终端用户避免了大量时间浪费。 (5)减少在两次操作之间必须记忆的信息量 不应该期望用户能记住在下一步操作中需使用的一大串数字或标识符 (6)提高对话、移动和思考的效率 应该尽量减少用户击键的次数 设计屏幕布局时应该考虑尽量减少鼠标移动的距离 应该尽量避免出现用户问“这是什么意思?”的情况,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 1 一般交互指南 (续上页) (7)允许犯错误 系统应该能保护自己不受严重错误的破坏。 (8)按功能对动作分类,并据此设计屏幕布局 设计者应该尽力提高命令和动作组织的“内聚性” (9)提供对用户工作内容敏感的帮助设施 (10)用简单动词或动词短语作为命令名,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 2 信息显示指南 (1)只显示与当前工作内容有关的信息 用户在获得有关功能的信息时,不必看到与之无关的数据、菜单和图形。 (2)不要用数据淹没用户 应该用便于用户迅速吸取信息的方式来表示数据 例如,可以用图形或图表来取代庞大的表格。 (3)使用一致标记、标准的缩写和可预知的颜色 显示的含义应该非常明确,用户无须参照其他信息源就能理解。,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 2 信息显示指南 (续上页) (4)允许用户保持可视化的语境 (5)产生有意义的出错信息 (6)使用大小写、缩进和文本分组以帮助理解 (7)使用窗口分隔不同类型的信息 (8)使用“模拟”显示表示信息,以使信息更容易被用户提取 (9)高效率地使用显示屏,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 3 数据输入指南 (1)尽量减少用户的输入动作 最重要的是减少击键次数 (2)保持信息显示和数据输入之间的一致性 显示的视觉特征(例如文字大小、颜色和位置)应与输入域一致 (3)允许用户自定义输入 (4)交互应该是灵活的,并且可调整成用户最喜欢的输入方式,个人成果,妥善保存,请勿传播,人机界面设计,人机界面设计指南 3 数据输入指南 (续上页) (5)使在当前动作语境中不适用的命令不起作用 (6)让用户控制交互流 用户应该能够跳过不必要的动作 改变所需做的动作的顺序(在应用环境允许的前提下) 以及在不退出程序的情况下从错误状态中恢复正常 (7)对所有输入动作都提供帮助 (8)消除冗余的输入 不要要求用户指定输入数据的单位 尽可能提供默认值 绝对不要要求用户提供程序可以自动获得或计算出来的信息。,个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,过程设计工具,在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。 表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类: 图形工具 表格工具 语言工具,个人成果,妥善保存,请勿传播,过程设计工具,1. 程序流程图 在40年代末到70年代中期,程序流程图一直是软件设计的工具 它以对控制流程的描绘直观、易于掌握而被设计人员青睐 依据国家标准(GB1526-89),列出有关程序流程图的基本符号,个人成果,妥善保存,请勿传播,过程设计工具,个人成果,妥善保存,请勿传播,过程设计工具,程序流程图也称为程序框图,程序流程图使用五种基本控制结构是:,个人成果,妥善保存,请勿传播,示例,个人成果,妥善保存,请勿传播,循环的标准符号 注解的使用,个人成果,妥善保存,请勿传播,多出口判断,个人成果,妥善保存,请勿传播,过程设计工具, 缺点:本质上不具备逐步求精的特点,对于提高 大型系统的可理解性作用甚微; 不易表示数据结构; 转移控制太方便。, 趋势:仃止使用, 优点:容易掌握,且历史“悠久”,使用广泛。,程序流程图,个人成果,妥善保存,请勿传播,过程设计工具,2. 盒图 (N-S图) N-S图是Nassi和Shneiderman提出来的,它体现了结构程序设计精神,是目前过程设计中广泛使用的一种图形工具。 基本符号,个人成果,妥善保存,请勿传播,过程设计工具,2. 盒图 (N-S图),个人成果,妥善保存,请勿传播,示例,a,b,x1,F,T,Case x i,F,T,x2,x3,x4,x5,c,d,e,g,h,i,x7,x8,j,f,x6,a,b,x1,x2,x5,f,c,x3,x4,d,e,g,h,i,x6,x7,x8,j,个人成果,妥善保存,请勿传播,N-S图的嵌套定义形式,个人成果,妥善保存,请勿传播,过程设计工具,N-S图的特点 优点 功能域(一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。 没有箭头不允许随意转移控制,不可能任意转移控制。 很容易确定局部和全程数据的作用域。 很容易表现嵌套关系,也可以表示模块的层次结构。 缺点 随着程序内嵌套的层数增多时,内层方框越来越小,这样不仅会增加画图的难度,还会影响图形的清晰度。,个人成果,妥善保存,请勿传播,过程设计工具,3. PAD图 PAD(Problem Analysis Diagram)问题分析图 日立公司中央研究所在1973年研究开发 使用二维树形结构图描述程序的逻辑 PAD图的优点: 程序一定是结构化的,PAD图中竖线的总条数就是程序中的层次数,既表示程序逻辑,也描绘数据结构,个人成果,妥善保存,请勿传播,过程设计工具,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,例:N-S图与PAD的转换,过程设计工具,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,过程设计工具,4 判定表 判定表能够清晰地表示复杂的条件组合与所产生的动作之前的关系。 一张判定表由四部分组成: 左上部列出所有的条件 左下部是所有可能的操作 右上部是各种条件的组合矩阵 右下部是每种条件组合对应的动作,个人成果,妥善保存,请勿传播,过程设计工具,4 判定表 一张判定表由四部分组成: 左上部列出所有的条件 左下部是所有可能的操作 右上部是各种条件的组合矩阵 右下部是每种条件组合对应的动作,个人成果,妥善保存,请勿传播,过程设计工具,4 判定表 例: 某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,头等舱国内乘客超重部分每公斤收费4元,其他舱的国内乘客超重部分每公斤收费6元,对于外国乘客超重部分每公斤收费比国内乘客多一倍,对于残疾乘客超重部分每公斤收费比正常乘客减少一半。,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,过程设计工具,5 判定树 表示复杂的条件组合与应做的动作之间的对应关系 判定树形式简单,长期以来一直受到重视 判定树的简洁性不如判定表 经常出现同一个值重复写多遍 且叶端重复次数急剧增加 由于判定树的分枝次序对于最终画出的判定树的简洁程度有较大影响 所以选择哪一个条件作为第一个分枝是至关重要的,个人成果,妥善保存,请勿传播,残疾乘客 (w-30)*2正常乘客 (w-30)*4 残疾乘客 (w-30)*3正常乘客 (w-30)*6 残疾乘客 (w-30)*4正常乘客 (w-30)*8 残疾乘客 (w-30)*6正常乘客 (w-30)*12,头等舱 其它舱 头等舱 其它舱,国内乘客 国外乘客,行李重量30公斤 行李重量30公斤,行李费算法,免费,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 是一种“混杂式语言” 采用了某种语言(如英语或自然语言)的词汇 另一种语言(某种结构化程序设计语言)的全部语法 具有数据说明、子程序、分程序、顺序控制、输入和输出结构,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 示例,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) PDL应该具有下述特点: (1)关键字的固定语法 它提供了结构化控制结构、数据说明和模块化的特点 为了使结构清晰和可读性好,通常在所有可能嵌套使用的控制结构的头和尾都有关键字,例如,if.fi(或endif)等 (2)自然语言的自由语法,它描述处理特点 (3)数据说明的手段 (4)模块定义和调用的技术,提供各种接口描述模式,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) PDL作为一种设计工具有如下一些优点: 可以作为注释直接插在源程序中间 可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。 已经有自动处理程序存在,而且可以自动由PDL生成程序代码。 PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 数据说明 它的形式为: declard数据名 as 限定词 子程序结构 它的形式为: procedure 子程序名 interface 参数表 分程序或PDL语句 return end 子程序名,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 分程序结构 begin 分程序名 PDL语句 end 分程序名 顺序控制结构 (1) 选择型 if 条件 then PDL语句 else PDL语句 end if,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 顺序控制结构 (2) WHILE型循环 loop while 条件 PDL语句 end loop (3) UNTIL型循环 loop until 条件 PDL语句组 end loop,个人成果,妥善保存,请勿传播,过程设计工具,6 伪码和过程设计语言(PDL) 顺序控制结构 (4) CASE型 case 选择因子 of 标号,标号:PDL语句 : end case (5) 输入/输出结构 一般采用 print read display input output等常见语句,个人成果,妥善保存,请勿传播,例1 是PDL的设计片断程序 begin execute process a loop until condition x8 begin execute process b if condition x1 then begin execute process f if condition x6 then loop until condition x7 execute process i end loop else begin execute process g execute process h end,a,b,x1,x2,x5,f,c,x3,x4,d,e,g,h,i,x6,x7,x8,j,个人成果,妥善保存,请勿传播,end if end else case xi of x2:loop while condition x5 execute process c end loop x3: execute process d x4: execute process e end case end if end end loop exceute process j end,a,b,x1,x2,x5,f,c,x3,x4,d,e,g,h,i,x6,x7,x8,j,个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,面向数据结构的设计方法的目标 目标是得出对程序处理过程的描述 这种方法最适合于在详细设计阶段使用 两个面向数据结构的设计方法 Jackson方法和Warnier方法,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,分析确定数据结构 数据元素彼此间的逻辑关系有 顺序、选择和重复 因此,逻辑数据结构也只有这3类 描述数据结构的工具Jackson图,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,描述数据结构的工具Jackson图 顺序结构 顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。,A,C,B,D,A seq B C D A end,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,描述数据结构的工具Jackson图 选择结构 选择结构的数据包含两个或多个数据元素,每次按一定的条件从这些数据元素中选择一个使用,具体分为:(1)选择结构,(2)可选结构,A,C,B,D,S(i),A,B,-,S(i),A select cond1 B A or cond2 C A or cond3 D A end,A select cond B A end,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,描述数据结构的工具Jackson图 重复结构 重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。,A,B*,I(i),A iter until(while) cond B Aend,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,描述数据结构的工具Jackson图,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,描述数据结构的工具Jackson图,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,Jackson方法 Jackson结构化设计方法基本上由下述五个步骤组成: 1 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构 2 找出输入数据结构和输出数据结构中有对应关系的数据单元 3 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图 按照在数据结构图中的层次,在程序结构图的相应层次,为每对有对应关系的数据单元画一个处理框,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,Jackson方法 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图相应层次分别为它们画上对应的处理框 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图相应层次分别为它们画上对应的处理框 若在构成顺序结构的元素中出现了重复或选择元素,需在Jackson图中增加一个中间层次的处理框。 4 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。 5 用伪码表示程序,个人成果,妥善保存,请勿传播,面向数据结构的设计方法,Jackson方法 应用举例 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总数。输出数据的格式为,每复制一行输入字符串后,另起一行印出这个字符串的空格数,最后印出文件中空格的总个数。,个人成果,妥善保存,请勿传播,第1步:用Jackson图描述输入/输出的数据结构,第2步:在两个图中指出有直接因果关系、可以同时处理的单元(重复的次序,次数均相同),个人成果,妥善保存,请勿传播, 经过程序处理由正文文件得到输出表格。, 每处理输入中一个字符串后就得到输出中一个串信息,二者重复次序和次数均相同。, 字符不与多字符组成的字符串对应。, 单个空格不能决定空格数。,个人成果,妥善保存,请勿传播,统计空格,分析字符*,注:顺序执行的处理中不允许混有重复执行或选择执行的处理。,第3步:Data structure Program structure,把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准),个人成果,妥善保存,请勿传播,第4步:列出所有操作条件,并分配到上幅程序结构图中,例:(部分列举,详见P.125),打开文件 读入字符串 空格总数totalsum=0 关闭文件 仃止 I 文件结束,第5步:用Pseudocode 表示程序。(详见P.125 -126),个人成果,妥善保存,请勿传播,课程内容提纲,第6章:“详细设计” 详细设计任务 结构程序设计 人机界面设计 过程设计工具 面向数据结构的设计方法 程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,McCabe方法 McCabe方法的核心是 通过定量分析程序中分支个数或循环个数,对软件测试难度进行定量度量,对软件最终的可靠性进行预测。 以下我们介绍定量度量的过程。,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,McCabe方法 流图 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 流图实质上是“退化了的程序流程图 它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,McCabe方法 流图 在流图中用圆表示结点,一个圆代表一条或多条语句 程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点 流图中的箭头线称为边,代表控制流,在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句) 由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,McCabe方法 流图 当过程设计中包含复合条件时,生成流图的方法稍微复杂一些。 所谓复合条件,就是在条件中包含了一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)。 在这种情况下,应该把复合条件分解为若干个简单条件,每个简单条件对应流图中一个结点。,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,McCabe方法 计算环形复杂度的方法 可以用下述3种方法中的任何一种来计算环形复杂度。 (1)流图中的区域数等于环形复杂度。 (2)流图G的环形复杂度V(G)E-N+2,其中,E是流图中边的条数,N是结点数。 (3)流图G的环形复杂度V(G)P+1,其中,户是流图中判定结点的数目。 例如,使用上述任何一种方法,都可以计算出图616所示流图的环形复杂度为4。,个人成果,妥善保存,请勿传播,R1,R2,R3,R4,P1,P2,P3,V(G)=11-9+2=4 (E11,N9) V(G)=R1+R2+R3+R4=4 V(G)=P1+P2+P3+1=4,个人成果,妥善保存,请勿传播,环形复杂度的用处 程序的环形复杂度取决于程序控制流的复杂程度,即取决于程序结构的复杂程度 当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。 McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序 实践表明,模块规模以V(G)10为宜,V(G)10是模块规模的一个更科学更精确的上限。,程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,Halstead方法 - Halstead方法也称为文本复杂性度量,它根据程序中运算符和操作数的总数来度量程序的复杂程度 - 运算符是通常语法中的象+,-,,if-then-else, while-do等这样一些语法元素 - 操作数是指那些变量、常量等。至于注解、说明和其他的非执行语句并不计入在内,程序复杂程度的定量度量,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,Halstead方法 程序长度N的计算 N = N1 + N2 N1 为程序中运算符出现的总次数 N2 为程序中操作符出现的总次数 Halstead方法预测程序长度H的计算 H = n1 log2n1 + n2 log2n2 n1为程序中使用不同运算符的个数 n2为程序中使用不同操作符的个数 实践表明 ,预测长度H和实际长度N很接近,个人成果,妥善保存,请勿传播,程序复杂程度的定量度量,Halstead方法 Halstead方法预测程序中错误E的个数 E = N log2(n1+n2) / 3000 误差在8%以内,个人成果,妥善保存,请勿传播,本章结束, 下一章节导读:“编码与实现”,

    注意事项

    本文(软件工程06详细设计.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开