资源预览内容
第1页 / 共86页
第2页 / 共86页
第3页 / 共86页
第4页 / 共86页
第5页 / 共86页
第6页 / 共86页
第7页 / 共86页
第8页 / 共86页
第9页 / 共86页
第10页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第五章 详细设计,5.1 详细设计的任务 5.2 结构程序设计 5.3 人机界面设计 5.4 过程设计 5.5 面向数据结构的设计方法 5.6 程序复杂程度的定量度量,2,为何需要详细设计?,“谋定而后动” 编码的依据 不能让程序员各行其是 把概要设计明确化 避免编码过程中的与需求的偏差,3,5.1 详细设计的任务,详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。,4,5.1 详细设计的任务,详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。,5,5.2 结构程序设计,结构程序设计的概念最早由E.W.Dijkstra提出。1965年他在一次会议上指出:“可以从高级语言中取消GO TO语句”,“程序的质量与程序中所包含的GO TO 语句的数量成反比”。 1966年Bohm和Jacopini证明了,只用3种基本的控制结构就能实现任何单入口单出口的程序。这3种基本的控制结构是“顺序”、“选择”和“循环”,它们的流程图分别为图 (a),(b)和(c)。,6,5.2 结构程序设计,7,5.2 结构程序设计,虽然从理论上说只用上述3种基本控制结构就可以实现任何单入口单出口的程序,但是为了实际使用方便起见,常常还允许使用DO-UNTIL和DO-CASE两种控制结构,它们的流程图分别是图(a)和图(b)。,8,5.3 人机界面设计,人机界面(Human Computer Interface,简称HCI)通常也称为用户界面。 人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。,9,5.3.1 界面设计的一般问题,设计任何一个人机界面,一般必须考虑以下四个方面: 1、系统响应时间 2、用户求助机制 联机求助系统有两类:集成式和附加式。 3、错误信息处理 4、命令交互,10,5.3.2 用户界面的风格,用户界面的风格大致经过了四代的演变: 1、最早,在图形显示、鼠标、高速工作站等技术出现之前,现实可行的界面方式只能是命令和询问方式,通信完全以正文形式并通过用户命令和用户对系统询问的响应来完成。 2、第二代界面是简单的菜单式。这种方式与命令行方式相比不易出错,但使用起来仍然乏味。 3、第三代界面是面向窗口的点选界面,也称为WIMP界面,即窗口(windows)、图标(icons)、菜单(menus)、指示器(pointing device)四位一体,形成桌面(desktop)的概念。 4、最新一代HCI把第三代HCI技术与超文本、多任务概念结合起来,使用户可同时执行多个任务。,11,5.3.3 界面设计的基本类型,从用户与计算机交互的角度来看,用户界面设计的类型主要有菜单、对话、窗口、问题描述语言、数据表格、图形与图标等。 菜单:又称选单,是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。 对话:也称对话框,是系统在必要时显示于屏幕上的一个矩形区域内的图形和正文信息。 窗口:指屏幕上的一个矩形区域。用户可以通过窗口显示,观察其工作领域内的全部或一部分内容,并可以对所显示的内容进行各种系统预先规定好的正文和图形操作。,12,5.3.4 用户界面设计的黄金准则,界面设计的黄金准则 用户撑握控制权 不应加重用户的记忆负担 界面应一致,13,用户界面设计准则说明3-1,用户掌握控制权 不要强迫用户使其没有自由感 允许多种输入方式 允许一定的操作失误个撤消操作 最好能提供“一组操作”的方式 提供交互能力,5.3.4 用户界面设计的黄金准则,14,用户界面设计准则说明3-2,不要增加不必要的记忆 设计的界面直观 有“大多数情况下”的默认值 按照思维习惯来进行界面的布局 提供更多的提示信息 减少用户输入次数 合理安排快捷键,5.3.4 用户界面设计的黄金准则,15,用户界面设计准则说明3-3,一致的界面 多个界面设计的时候保持层次感 使用相同的设计规则 使用标准 例如行业标准,5.3.4 用户界面设计的黄金准则,16,用户界面设计的其它方面,美观 按照用户的“需要”来设计界面 界面的设计应当有次序地进行 提供帮助、图形、语音等多种输入 在Windows平台上,使用标准控件,17,用户界面设计和评估,5.3.5 用户界面设计过程,18,在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。 前者涉及所开发项目的具体要求和对每个模块规定的功能,以及算法的设计和评价,后者需要给出适当的算法描述: 图形工具:程序流程图,N-S,PAD,HIPO 表格工具:判定表 语言工具:PDL,5.4 过程设计(详细设计),19,1.程序流程图,程序流程图也称为程序框图,有五种基本控制结构:,顺序型,选择型,先判断 重复型,后判断 重复型,多分支选择型,5.4 过程设计(详细设计),20,流程图示例,21,程序流程图的主要缺点如下: (1) 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2) 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 (3) 程序流程图不易表示数据结构。,22,N-S图也叫做盒图,基本控制结构有:,2. N-S图,5.4 过程设计(详细设计),A,调用子程序A,23,N-S图(盒图)示例,24,N-S图的嵌套定义形式,25,PAD图是由日本日立公司的二村良彦等人于1973年提出的设计详细算法的图式,它用二维树图表示程序流程,是一种具有很强的结构化特征的分析工具。PAD图完全支持结构化设计方法。,3. 问题分析图 (PAD: Problem Analysis Diagram),5.4 过程设计(详细设计),26,PAD也设置了五种基本控制结构的图式,并允许递归使用。,27,PAD示例,28,对应于增量型循环结构 for i := n1 to n2 step n3 do在PAD中有相应的循环控制结构,PAD的扩充控制结构,29,PAD图的主要优点:,使用PAD符号设计的程序必然是结构化的程序; PAD图所描绘的程序结构十分清晰; 用PAD图表现程序逻辑,易读,易记,易懂; 容易将PAD图转换成高级语言源程序,可用软件工具实现自动转换; 既可以表示程序逻辑,也可以描绘数据结构; 支持自顶向下、逐步求精方法的使用。,30,4. 判定表,5.4 过程设计(详细设计),如果数据流图的加工需要依赖于多个逻辑条件的取值,即完成这一加工的一组动作是由于某一组条件取值的组合而引发的,此时使用判定表来描述比较合适。,31,条件区:左上部分,列出各种可能的条件; 条件项:右上部分,给出各个条件的条件取值组合; 动作区:左下部分,列出所有可能采取的动作; 动作项:右下部分,指出在条件项的各种取值的组合情况下应采取的动作。,4. 判定表,5.4 过程设计(详细设计),32,4. 判定表,判定表用于表示程序的静态逻辑 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理 要求将程序流程图中的多分支判断都改成两分支判断,5.4 过程设计(详细设计),33,以“检查发货单”为例,34,无多分支判断结构,35,36,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,5. 判定树,5.4 过程设计(详细设计),37,以“检查发货单”为例,38,6. 过程设计语言PDL,PDL是一种用于描述功能模块的算法设计和加工细节的语言。它是一种伪码。 PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时表示实际操作和条件的内语法可使用自然语言的词汇。,5.4 过程设计(详细设计),39,举例:读者还书过程,加工逻辑词条描述: 加工名:还书 加工编号:3 简要描述:检验图书是否图书室外借图书 输入数据流:图书,借书证,访问信息 输出数据流:错误返回,还书信息 加工逻辑: IF书号与数据库数据不符 THEN 发出“错误返回” ELSE 发出“还书信息” ENDIF,40,示例2:,连接数据库; 打开数据库的员工表; 执行SQL语句: Select * from员工表 while UserName=username, Password=password; if (员工表存在相关记录) then 转移到主页面; else 转移到报错页面,通知用户用户名或秘密错; ,41,PDL的优点: 用PDL写出的程序,既可以很抽象,又可以很具体。因此,符合“自上而下、逐步求精”的设计原则。 PDL虽不是程序设计语言,但它非常类似于高级程序设计语言。因此它是详细设计阶段很受欢迎的表达工具。 PDL描述同自然语言很接近,易于理解。 PDL描述可以注释形式嵌在程序中,成为程序的内部文档。 PDL描述与程序结构相似,因此比较容易自动产生各种相关开发程序,提高软件生产率。,42,PDL的缺点: 不如图形描述形象直观,很容易使人陷入程序的具体细节中去,因此人们常常将PDL描述与具体的图形描述结合起来使用。,43,面向数据结构的设计是由英国人M.A.Jackson首先提出和倡导的,又称为Jackson方法(简称JSD)。该方法的基本思想是使程序结构与问题结构相对应,即与数据结构相对应。因此它按输入输出以及内部存储信息的数据结构进行设计,把数据结构的描述变换为对程序结构的描述。,5.5 面向数据结构的设计方法,44,5.5 面向数据结构的设计方法,1.基本思想 许多领域中,问题的结构层次清楚,输入数据、输出数据和内部存储信息的数据结构都有一定的结构关系,Jackson方法利用这些数据结构作为基础来设计模块的处理过程。 2.SD方法和JSD方法的异同 面向数据流的设计(SD方法)和面向数据结构的设计(JSD方法)的共同点都是数据信息驱动的,都试图将数据表示转换成软件表示;不同之处在于面向数据结构的设计不利用数据流图,而根据数据结构的表示来设计。,45,5.5 面向数据结构的设计方法,面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。 这种方法适合于在总体设计和详细设计“合二为一” 的软件设计。 Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。,46,5.5.1 Jackson图,Jackson图是JSD方法的描述工具,在分析、确定问题的数据结构后,用Jackson图来描绘问题的数据结构。 虽然程序中实际使用的数据结构种类繁多,但是它们的数据元素彼此间的逻辑关系却只有顺序、选择和重复3类,因此,逻辑数据结构也只有这3类。,47,(1)顺序结构,顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。,A seq B C D A end,5.5.1 Jackson图,48,(2) 选择结构,选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。,A select cond1 B A or cond2 C A or cond3 D A end,5.5.1 Jackson图,49,(3) 重复结构,重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。,A iter until(或while)条件 B A end ,5.5.1 Jackson图,50,Jackson图的优点,便于表示层次结构,而且是对结构进行自顶向下分解的有力工具; 形象直观可读性好; 既能表示数据结构也能表示程序结构(因为结构程序设计也只使用上述3种基本控制结构)。,51
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号