第六章详细设计_第1页
第六章详细设计_第2页
第六章详细设计_第3页
第六章详细设计_第4页
第六章详细设计_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程,1,软件工程第6章详细设计,软件工程,2,详细设计工作,1。确定要在每个模块中使用的算法、选择相应工具表示算法的进程以及模块的详细进程说明。2.确定每个模块要使用的数据结构,为以后的程序编写做好充分准备。3.确定模块接口的详细信息,包括系统外部的接口和用户界面、系统内部其他模块的接口、模块输入数据、输出数据和本地数量、软件工程、3、整体详细信息。4.要为每个模块设计一系列测试用例,以便在编码阶段对模块代码(即程序)进行预定义测试,模块的测试用例是软件测试计划的重要组成部分,通常需要包含输入数据、预期输出等。6.1结构编程,结构编程的概念最初由E.W.Dijkstra提出。(1)1965年的一次会议上,他指出:“高级语言中可以取消GOTO语句”,“程序的质量与程序中包含的GOTO语句数成反比。”(2) Bohm和Jacopini在1966年证明,只有3、软件工程、4种基本控制结构可以实现任何单入口出口程序。这三种基本控制结构是由图6.1(a)、6.1(b)和6.1(c)中的流程图组成的顺序、选择和循环。软件工程,5,图6.13个基本控制结构,软件工程,6,(3)1968年,Dijkstra再次建议取消所有高级语言中的GOTO语句,仅使用3个基本控制结构写入程序。他的建议引起了激烈的争论,经过讨论,人们意识到,不仅要消除哥特语问题,还要创建一种新的程序设计理念、方法和风格,大大提高软件生产率,降低软件维护费用。(4)1971年,IBM在纽约时报信息库管理系统设计中,结构编程技术、软件工程、7、手术、后NASA宇宙实验室飞行模拟系统设计中,结构编程技术再次取得了圆满成功。(5)1972年,IBM公司的米尔斯进一步提出程序只能有一个入口和一个出口,作为结构编程的补充。软件工程、8、结构化编程程序的代码块仅通过顺序、选择和循环三种基本控制结构连接,并且每个代码块只有一个入口和一个出口,则此程序称为结构化程序。(经典定义)上述经典定义太窄,结构编程本质上不是没有GOTO语句的编程方法,而是使程序代码易于阅读和理解的编程方法。软件工程、9,6.2人机界面设计、人机界面设计是界面设计的重要组成部分。对于交互式系统,人机界面设计与数据设计、体系结构设计和流程设计一样重要。近年来,人机界面在系统中所占的比例越来越大,在各个系统中,人机界面的设计工作量占总设计容量的一半以上。在设计人机界面的设计质量、软件产品的竞争力和寿命、软件工程、10、人机界面的过程中,几乎总是遇到系统响应时间、用户支持设施、错误信息处理和命令交互四个问题。1.系统响应时间系统响应时间是许多交互式系统用户经常抱怨的问题。通常,系统响应时间是从用户完成控制操作(如按enter键或鼠标单击)到软件提供预期响应(输出信息或操作)之间的时间。软件工程、11、系统响应时间的特点:分别为长度和可变性。(1)系统响应时间长会使用户紧张和沮丧。但是,当用户操作速度由人机界面确定时,系统响应时间太短或不好,可以强制用户加快操作速度,从而导致错误。(2)可变性表示系统响应时间与平均响应时间的偏差。软件工程,12,在大多数情况下,是系统响应时间的更重要属性。即使系统响应时间长,响应时间可变性低也能使用户建立稳定的工作节奏。2.2 .用户帮助设施几乎交互式系统中的每个用户都需要帮助,在遇到复杂问题时还需要查看用户手册以寻找答案。大多数最新软件都提供了联机帮助设施,用户无需退出用户界面即可解决问题。软件工程、13、常用帮助设施可分为集成和附加两类。(1)集成的帮助设施从一开始就在软件中设计,通常对用户的工作内容很敏感,因此用户可以从与刚完成的工作相关的主题中请求帮助。功能缩短用户获得帮助的时间,提高界面的熟悉度。软件工程,14,(2)附加帮助设施是系统构建后添加到软件中的,大多数情况下实际上是查看能力有限的联机用户手册,一般评价是集成帮助设施优于附加帮助设施。软件工程,15,3。错误信息处理错误和警告信息是交互式系统在出现问题时提供的“坏消息”。(1)错误的信息设计会给用户提供无用、甚至误导的信息,反而会加重用户的挫败感。4.命令交互命令行是用户和系统软件交互的最常用方法,广泛用于各种应用程序、软件工程、16和。(1)面向窗口、点击和选择的界面减少了用户对命令行的依赖,但是许多高级用户仍然喜欢面向命令行的交互。大多数情况下,您可以从菜单中选择软件功能,或通过键盘命令序列调用软件功能。软件工程,17,软件工程,18,(1)用户界面设计是迭代过程。这意味着通常先创建设计模型,然后将其实施为原型,由用户测试和评估,最后根据用户的意见进行修改。(2)为了支持上述迭代过程,出现了用于接口设计和原型开发的各种软件工具。这些工具称为使用者介面工具箱或使用者介面开发系统,提供各种常式、6.2.2设计程序、软体工程、19或物件,以轻松建立视窗、选单、装置互动、错误资讯、指令和互动环境的许多其他元素。这些工具提供基于语言和基于图形的功能。(3)一旦建立了用户界面的原型,就必须对其进行评估,以确保满足用户的要求。评价可以是非正式的。例如,用户可以即时提出一些意见。评价也可以是正式的。例如,可以统计评价全体最终用户填写的调查表。(4)用户界面的评估周期如下:初始设计完成后,将生成第一级原型。用户对该原型进行测试和评估,直接向设计者提供界面的评估。软件工程,20,设计者根据用户意见修改设计并实施下一级原型。上述评估过程将继续进行,直到用户满意,不再需要修改界面设计。6.2.3人机界面设计指南,下面介绍了三种类型的人机界面设计指南。1.常规交互指南常规交互指南涵盖信息显示、数据输入和总体系统控制,因此,这些指南是全局的,忽略它们会带来很大风险。(1)保持一致性。必须对人机界面的菜单选择、命令输入、数据显示和许多其他功能使用一致的格式。软件工程,21,软件工程,22,(2)提供有意义的反馈。必须向用户提供视觉和听觉的反馈,以确保用户和系统之间的双向通信。(3)在执行更具破坏性的动作之前,要求用户确认。如果要删除文件、复盖某些重要信息或终止程序执行,则必须提供信息以要求用户确认命令。软件工程、23、(4)可以取消大多数操作。UNDO或REVERSE功能防止了许多最终用户浪费大量时间。每个交互式系统必须能够轻松地取消已完成的操作。(5)减少两项工作之间需要记住的信息量。不应期望用户记住下一步要使用的数字或标识符的大列表。要最小化记忆量。软件工程,24,(6)提高对话、移动和思维的效率。用户键击次数应最小化,设计屏幕布局时应考虑将鼠标移动距离最小化,用户会问“这是什么意思?”的问题。(7)允许失误。系统应该能保护自己免受严重错误的伤害。(8)按功能分类动作,并相应地设计屏幕布局。下拉菜单的主要优点之一是可以按动作类型组织命令。实际上,设计者应使用命令和动作组织的“凝聚力”、软件工程、25、(9)提供对用户工作内容敏感的帮助设施(10)简单动词或动词短语作为命令名。命令名太长,难以识别和记住时,菜单空间占用太多。2.信息显示指南(1)仅显示与当前工作内容相关的信息。用户在获取有关系统特定功能的信息时,无需查看无关的数据、菜单和图形。(2)不要用数据压倒用户,要用用户能够迅速拉出信息的方式表达数据。例如,可以用图形或图表替换大表。软件工程,26,(3)使用一致的标记、标准缩写和可预测的颜色。显示的含义必须非常明确,以便用户无需参考其他信息源即可理解。(4)用户可以维护可视上下文。缩放显示的图形时,原始图像必须始终以缩小的形式显示在显示边缘。这样,您就可以看到当前可见的图像部分位于原始图像中的相对位置。(5)生成有意义的错误消息(6)为了帮助理解,请使用大小写、缩进和文本分组。人机界面显示的信息大部分是文字。软件工程,27,(7)使用窗口区分不同类型的信息。窗口用户可以轻松地“存储”各种类型的信息。(8)为了便于用户提取信息,使用“模拟”标记来表示信息。(9)高效使用显示器。如果使用多个窗口,请确保至少有足够的空间显示每个窗口的一部分。软件工程、28,3数据输入指南、(1)最小化用户的输入行为。(2)保持信息显示和数据输入之间的一致性。(3)用户可以自定义输入。(4)交互必须灵活,并且可以按照用户首选的输入方式进行调整。(5)在当前动作的上下文中,使不适用的命令不起作用。软件工程,29,(6)让用户控制交互流。(7)帮助完成所有输入任务。(8)消除重复输入。软件工程、30、流程设计工具描述流程的工具称为流程设计工具,可分为图形、表单和语言3类。基本要求是对设计提供模糊的说明。也就是说,在编码阶段,必须明确控制过程、处理功能、数据组织和其他实施细节,以便将设计的说明直接翻译成程序代码。6.3流程设计工具、软件工程、31,6.3.1程序流程图、也称为方块图的程序流程图是描述流程设计的最古老、最广泛使用的方法,但也是最混乱的方法。程序流程图中使用的符号参照教材125页也是6.3 缺点,(1)程序流程图本质上不是细化的好工具,引导程序员考虑程序的控制流、软件工程、32、过程,无论程序的全球结构如何,都过早。(2)在程序流程图中用箭头表示控制流,因此程序员可以不受任何限制,不管结构编程的精神如何,随意转移控制。(3)程序流程图不容易表示数据结构。软件工程,33 .Nassi和Shneiderman建议使用框图(也称为N-S图),以禁止违反结构编程精神的图形工具。特征:(1)功能区域(特定控制结构的范围)在框图中一览无遗。(2)控制不能任意转移。(3)轻松确定本地和整个数据的范围。6.3.2方框图(N-S图)、软件工程、34、(4)可以轻松表示嵌套关系或表示模块的层次结构。软件工程,35,图6.4方框图的基本符号,软件工程,36,PAD是自1973年日本日立公司发明以来,相当一般化的问题分析图(problemanalysisdiagram)的英文缩写。将程序的控制流表示为二维树状结构的示意图,将此图翻译为程序代码更容易。图6.5显示了地基图的基本符号。PAD图、软件工程、37、图6.5PAD图的基本符号、PAD图的优点以及(1)使用表示结构化控制结构的PAD符号设计的程序必须是结构化程序。(2)垫图中描述的程序结构非常明确。(3)使用衬垫图表达易于阅读、理解、易于记忆的程序逻辑。(4)可以轻松地将pad图转换为高级语言源程序,这种转换自动作为软件工具完成,无需手动编码,有助于提高软件可靠性和软件生产率。软件工程,38,(5)可用于表示程序逻辑,也可用于表示数据结构。(6)垫图的符号支持。由上而下,逐步细化方法的使用。软件工程,39,6.3.4决策表算法包含多个嵌套条件选择时,很难用程序流程图、方框、垫图或稍后介绍的过程设计语言(PDL)明确地描述。但是,判定表清楚地显示了复杂的条件组合和必须采取的措施之间的对应关系。软件工程、40、判断表的组成)一个判断表由四部分组成,左上列出所有条件,左下包含所有可能的操作,右上包含表示不同条件组合的一个矩阵,右下包含与每个条件组合对应的操作。判断表右半部分中的每个列实质上是规定特定条件组合的行为的规则。软件工程,41,【例】假设某航空公司规定,乘客可以免费托运低于30公斤的行李。行李重量超过30公斤的话,头等舱的国内乘客超重部分每公斤4元,其他车厢的国内乘客超重部分每公斤6元,外国乘客超重部分每公斤2倍,残疾乘客超重部分的收费比正常乘客少一半。使用决定表明确表示计算与上述各条件组合相对应的行李费的算法,如表6.1所示。软件工程,42,软件工程,43,6.5.3判断树判断表的缺点 (1)判断表清楚地显示复杂条件组合和需要执行的任务之间的对应关系,但其含义不是一目了然,刚接触这些工具的人理解需要简单的学习过程。(2)此外,当数据元素的值多于两个时(例如,在6.3.4例中,假设需要将机票分为等舱、二等舱、经济舱等多个级别),判断表、软件工程、44、简洁会降低。判定树作为判断表的变体,清楚地表达了复杂的条件组合和必须采取的行动之间的对应关系判断树的优点 (1),其形式没有任何说明,一眼就能掌握其含义,易于掌握和使用。(2)多年来,平木一直受到人们的关注,是更常用的系统分析和设计的工具。(。软件工程,45,软件工程,46,表示计算行李费的算法的决策树,6.3.6流程设计语言,也称为伪代码的流程设计语言(PDL),是以主体形式表示数据和处理过程的设计工具。PDL具有严格的关键字外部语法,用于定义控制结构和数据结构。另一方面,PDL表示实际操作和条件的内部语法通常很灵活,可以满足各种工程项目的需要。因此,通常PDL是“混合”语言。,软件工程,47,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论