《软件工程第六章详细设计.ppt》由会员分享,可在线阅读,更多相关《软件工程第六章详细设计.ppt(98页珍藏版)》请在第壹文秘上搜索。
1、软件工程2023/3/10第六章第六章 详细设计详细设计详细设计的目标n确定怎样具体地实现所要求的系统经过这个阶段的设计工作,应该得出经过这个阶段的设计工作,应该得出对目标系统对目标系统的精确描述的精确描述,从而在编码阶段可以把这个描述直接翻,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。译成用某种程序设计语言书写的程序。2n在详细设计过程中,需要完成的工作是:(1)(1)确定软件各个组成部分内的算法以及内部数据组织。确定软件各个组成部分内的算法以及内部数据组织。(2)(2)选定某种过程的表达形式来描述各种算法。选定某种过程的表达形式来描述各种算法。可选用的过程表达形式有
2、:流程图、盒图、PAD图、Jackson图等。(3)(3)编写详细设计说明书。编写详细设计说明书。(4)(4)制定单元测试计划。制定单元测试计划。(5)(5)进行详细设计评审。进行详细设计评审。详细设计的目标3本章纲要本章纲要n6.1 结构程序设计n6.2 人机界面设计n6.3 过程设计的工具n6.4 面向数据结构的设计方法n6.5 程序复杂度的定量度量46.1 结构程序设计n结构程序设计的概念最早由结构程序设计的概念最早由E.W.DijkstraE.W.Dijkstra提出。提出。19651965年,他在一次会议上指出:年,他在一次会议上指出:“可以从高级语言中可以从高级语言中取消取消GOT
3、OGOTO语句语句”,“程序的质量与程序中所包含的程序的质量与程序中所包含的GOTOGOTO语语句的数量成反比句的数量成反比”。n19661966年年BohmBohm和和JacopiniJacopini证明了,只用三种基本的控制证明了,只用三种基本的控制结构就能实现任何单入口单出口的程序。结构就能实现任何单入口单出口的程序。这三种基本的控制结构是这三种基本的控制结构是“顺序顺序”、“选择选择”和和“循循环环”。n19721972年年IBMIBM公司的公司的MillsMills进一步提出,进一步提出,程序应该只有一程序应该只有一个入口和一个出口,从而补充了结构程序设计个入口和一个出口,从而补充了
4、结构程序设计的规则。的规则。 56.1 结构程序设计三种基本的控制结构 (a)顺序结构 先执行先执行A A再执行再执行B B(b)IF_THEN_ELSE型选择(分支)结构(c)DO_WHILE型循环结构 在循环控制条件成立时,重复执行特定的加工在循环控制条件成立时,重复执行特定的加工 6理论上,最基本的控制结构只有两种:顺序、循环结构(选理论上,最基本的控制结构只有两种:顺序、循环结构(选择结构可由其两者构造)。择结构可由其两者构造)。6.1 结构程序设计目的和定义n目的:使程序易于理解和阅读n经典定义:由3种基本控制结构连接且只有一个入口和出口的程序是结构化的。(无goto语句)19711
5、971年,年,IBMIBM率先成功运用结构程序设计技术。率先成功运用结构程序设计技术。n针对针对goto语句的使用问题,修正对结构程序设计的语句的使用问题,修正对结构程序设计的定义:尽可能少用定义:尽可能少用goto语句(最好仅在检测出错时语句(最好仅在检测出错时才使用)才使用)76.1 结构程序设计定义 n结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构n总体设计阶段总体设计阶段采用自顶向下逐步求精的方法:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。n详细设计或编码阶段详细设计或编码阶段采用自顶向下逐步求精的方法:可以把一
6、个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。 86.1 结构程序设计优点 可以显著提高软件开发工程的可以显著提高软件开发工程的成功率和生产率成功率和生产率 。程序有清晰的层次结构,因此容易程序有清晰的层次结构,因此容易阅读和理解阅读和理解。 开发时比较容易保证程序的正确性,即使出现错误也开发时比较容易保证程序的正确性,即使出现错误也比较容易比较容易诊断和纠正诊断和纠正。源程序清晰流畅,易读易懂而且源程序清晰流畅,易读易懂而且容易测试容易测试。 程序清晰和模块化使得在修改和重新设计一个软件时程序清晰和模块化使得在修改和重新设计一个软件时可以重用可以重用的代码量最大。的代码
7、量最大。程序的逻辑结构清晰,有利于程序程序的逻辑结构清晰,有利于程序正确性证明正确性证明。 96.1 结构程序设计扩充的控制结构10经 典 的 结 构 程 序 设 计经 典 的 结 构 程 序 设 计 : 只 允 许 使 用 顺 序 、: 只 允 许 使 用 顺 序 、IF_THEN_ELSE选择和选择和DO_WHILE循环;循环;扩展的结构程序设计扩展的结构程序设计:除了三种基本控制结构,还使:除了三种基本控制结构,还使用用DO_CASE和和DO_UNTIL循环;循环;修正的结构程序设计修正的结构程序设计:除了三种基本控制结构和两种:除了三种基本控制结构和两种扩充结构,还使用扩充结构,还使用
8、BREAK等结构。等结构。6.1 结构程序设计扩充的控制结构116.2 人机界面设计n人机界面设计是接口设计的一个重要的组成部分。n人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命。n因此,必须对人机界面设计给予足够重视。126.2.1 设计问题n在设计人机界面的过程中,常遇到以下4个问题:系统响应时间系统响应时间用户帮助设施用户帮助设施出错信息处理出错信息处理命令交互命令交互许多设计者直到设计过程后期才开始考虑这些问题,这许多设计者直到设计过程后期才开始考虑这些问题,这样做往往导致出现不必要的设计反复、项目延期和用户产生样做往往导致出现不必要的设计反复、项目延
9、期和用户产生挫折感。最好在设计初期就把这些问题作为重要的设计问题挫折感。最好在设计初期就把这些问题作为重要的设计问题来考虑,这时修改比较容易,代价也低。来考虑,这时修改比较容易,代价也低。 136.2.1 设计问题系统响应时间n定义:系统响应时间指从用户完成某个控制动作系统响应时间指从用户完成某个控制动作( (例如,例如,按回车键或点击鼠标按回车键或点击鼠标) ),到软件给出预期的响应,到软件给出预期的响应( (输出信息输出信息或做动作或做动作) )之间的这段时间。之间的这段时间。 n两个重要属性:长度和易变性长度:长度:系统响应时间过长,用户就会感到紧张和沮丧;系统响应时间过长,用户就会感到
10、紧张和沮丧;系统响应时间过短,迫使用户加快操作节奏,从而可能系统响应时间过短,迫使用户加快操作节奏,从而可能会犯错误。会犯错误。 易变性:易变性:指系统响应时间相对于平均响应时间的偏差。指系统响应时间相对于平均响应时间的偏差。即使系统响应时间较长,响应时间易变性低也有助于用即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏。户建立起稳定的工作节奏。 146.2.1 设计问题用户帮助设施n常见的帮助设施可分为集成的和附加的两类常见的帮助设施可分为集成的和附加的两类 。集成的帮助设施从一开始就设计在软件里面,通常,它对用户工作内容是敏感的,因此用户可以从与刚刚完成的操作有关的主
11、题中选择一个请求帮助。显然,这可以缩短用户获得帮助的时间,增加界面的友好性。如:office的帮助 附加的帮助设施是在系统建成后再添加到软件中的,在多数情况下它实际上是一种查询能力有限的联机用户手册。 如:如:MSDN MSDN 15n具体设计帮助设施时,必须解决下述的一系列问题具体设计帮助设施时,必须解决下述的一系列问题在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?有两种选择;提供部分功能的帮助信息和提供全部功能的帮助信息。 用户怎样请求帮助?有3种选择:帮助菜单,特殊功能键和HELP命令。 6.2.1 设计问题用户帮助设施16怎样显示帮助信息怎样显示帮助信息? ?
12、有有3 3种选择,在独立的窗口中,指出种选择,在独立的窗口中,指出参考某个文档参考某个文档( (不理想不理想) )和在屏幕固定位置显示简短提示。和在屏幕固定位置显示简短提示。用户怎样返回到正常的交互方式中用户怎样返回到正常的交互方式中? ?有两种选择:屏幕有两种选择:屏幕上的返回按钮和功能键。上的返回按钮和功能键。怎样组织帮助信息怎样组织帮助信息? ?有有3 3种选择:平面结构种选择:平面结构( (所有信息都所有信息都通过关键字访问通过关键字访问) ),信息的层次结构,信息的层次结构( (用户可在该结构中用户可在该结构中查到更详细的信息查到更详细的信息) )和超文本结构。和超文本结构。 6.2
13、.1 设计问题用户帮助设施176.2.1 设计问题出错信息处理n出错信息和警告信息,是出现问题时交互式系统给出错信息和警告信息,是出现问题时交互式系统给出的出的“坏消息坏消息”。n出错信息设计得不好,将向用户提供无用的甚至误出错信息设计得不好,将向用户提供无用的甚至误导的信息,反而会加重用户的挫折感。导的信息,反而会加重用户的挫折感。 n出错信息处理应该具有下述属性应该具有下述属性 (1)(1)信息应该使用用户可以理解的术语描述问题。信息应该使用用户可以理解的术语描述问题。(2)(2)信息应该提供有助于从错误中恢复的建设性意见。信息应该提供有助于从错误中恢复的建设性意见。 18(3)(3)信息
14、应该指出错误可能导致哪些负面后果信息应该指出错误可能导致哪些负面后果( (例如,破坏例如,破坏数据文件数据文件) ),以便用户检查是否出现了这些问题,并在,以便用户检查是否出现了这些问题,并在确实出现问题时及时解决。确实出现问题时及时解决。(4)(4)信息应该伴随着听觉上或视觉上的提示。信息应该伴随着听觉上或视觉上的提示。例如,在显例如,在显示信息时同时发出警告铃声,或者信息用闪烁方式显示,示信息时同时发出警告铃声,或者信息用闪烁方式显示,或者信息用明显表示出错的颜色显示。或者信息用明显表示出错的颜色显示。(5)(5)信息不能带有指责色彩,也就是说,不能责怪用户。信息不能带有指责色彩,也就是说
15、,不能责怪用户。 6.2.1 设计问题出错信息处理196.2.1 设计问题命令交互命令交互n命令行曾经是用户和系统软件交互的最常用的方式,并且也曾经广泛地用于各种应用软件中。现在,面向窗口的、点击和拾取方式的界面已经减少了用户对命令行的依赖,但是,许多高级用户仍然偏爱面向命令行的交互方式。在多数情况下,用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能。 20n必须考虑下列设计问题 (1)(1)是否每个菜单选项都有对应的命令是否每个菜单选项都有对应的命令? ?(2)(2)采用何种命令形式采用何种命令形式? ?有有3 3种选择:控制序列种选择:控制序列( (例如,例如,CtrlC
16、trl十十P)P),功能键和键入命令。,功能键和键入命令。(3)(3)学习和记忆命令的难度有多大学习和记忆命令的难度有多大? ?忘记了命令怎么办忘记了命令怎么办? ?(4)(4)用户是否可以定制或缩写命令用户是否可以定制或缩写命令? ? n在越来越多的应用软件中,人机界面设计者都提供了“命令宏机制” n在理想的情况下,所有应用软件都有一致的命令使用方法。 6.2.1 设计问题命令交互命令交互216.2.2 设计过程n用户界面设计是一个迭代的过程,也就是说,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见进行修改。 n运用下述评估标准对界面设计进行早期复审(1)(1)系统及其界面的规格说明书的长度和复杂程度。系统及其界面的规格说明书的长度和复杂程度。(2)(2)命令或动作的数量、命令的平均参数个数或动作中单命令或动作的数量、命令的平均参数个数或动作中单个操作的个数。个操作的个数。(3)(3)设计模型中包含的动作、命令和系统状态的数量。设计模型中包含的动作、命令和系统状态的数量。(4)(4)界面风格、帮助设施和出错处理协议。界面风格、帮助设施和出错处理协议