您好,欢迎访问三七文档
详细设计的任务详细设计的原则详细设计的方法和工具详细设计的规格说明与复审界面设计第5章详细设计详细设计的基本任务:1、为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。2、对模块内的数据结构进行设计。对需求分析、概要设计确定的概念性的数据结构进行确切的定义。3、对数据库进行物理设计。确定数据库的物理结构(数据库存储记录格式、存储记录的安排、存储方法等,这些取决于使用何种数据库系统)。4、其它设计。如代码设计、输入/输出格式设计、人机对话设计等。5、模块测试用例设计。6、编写详细设计说明书。7、评审。详细设计的任务详细设计的原则:(1)模块的逻辑描述要清晰易读、正确可靠。(2)详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。(3)选择恰当描述工具来描述各模块算法。详细设计的原则1、详细设计的方法结构程序化设计方法(SP方法)是详细设计的逻辑基础。在对“GOTO”语句争论中产生结构程序设计方法学并广泛应用。定义:结构化程序设计是一种设计程序的技术,它采用自顶向下、逐步求精的设计方法。而且任何程序都可以通过顺序、分支、重复3种基本结构的复合实现。结构化程序设计的宗旨是,通过始终保持各级程序单元的单入口/单出口控制结构,使设计出来的程序结构清晰,容易阅读,容易修改和容易验证。详细设计的方法和工具结构化程序设计方法基本要点:1、采用自顶向下、逐步求精的程序设计方法。在设计某模块的内部处理过程中,仍逐步求精,降低处理细节的复杂程度。2、采用三种基本控制结构构造程序。任何程序都可由顺序、选择、重复三种基本控制结构构造。(三种基本控制结构的共同点是单入口、单出口)。对一个模块处理过程细化时,开始是模糊的,可用以下方法进行分解:⑴用顺序方式对过程分解,确定各部分的执行顺序;⑵用选择方式对过程分解,确定某部分的执行条件;⑶用循环方式对过程分解,确定某部分进行重复的开始和结束条件;⑷对处理过程仍然模糊的部分,反复使用以上分解方法,最终确定细节。3、主程序员组的组织形式。详细设计的方法和工具结构化程序设计方法在设计处理过程时,要注意以下几点:⑴首先考虑程序完成的主要功能,细节问题(如出错处理、例外情况等)放在求精的步骤中考虑。⑵要考虑判断处理和重复处理的问题,特别是判断的条件、重复开始和终止的条件,把这些条件要写在算法中,可借助判定表把判定的条件及动作整理出来,不至于有漏掉及冗余的情况。⑶要考虑数据对程序的影响,外部数据一般在数据字典中有定义,而模块内部定义的数据,不会在数据字典中出现,应列出表来,有利于算法的理解。⑷三种基本控制结构只能按顺序出现或完整嵌套,不能出现相互交叉的情况,否则算法就是非结构化的,不易于理解与修改。详细设计2、详细设计的工具①图形工具:利用图形工具可将过程的细节用图形描述出来;②表格工具:可以用一张表来描述过程的细节,在表中列出各种可能的操作和相应的条件;③语言工具:用某种高级语言(称之为伪码)来描述过程的细节。下面介绍一些有代表性的详细设计工具:详细设计的方法和工具2、详细设计的工具下面介绍一些有代表性的详细设计工具:(1)程序流程图程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。它的主要优点是独立于任何一种程序设计语言,能够比较直观和清晰地描述过程的控制流程,易于学习掌握。为使流程图支持结构化程序设计,限制在流程图中只能使用下述的五种基本控制结构。详细设计的方法和工具程序流程图:是使用最广泛、历史最悠久的描述程序逻辑结构的工具。详细设计的方法和工具AB顺序选择AB条件多分支选择AB条件C“当型”循环A条件“直到型”循环A条件FTTF注:其中A或B为:①非转移语句(可以为空)。②三种基本结构之一。2、详细设计的工具(1)程序流程图程序流程图的主要缺点如下:①程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构;②程序流程图使用的符号不规范,图中用箭头代表控制流,程序员不受任何约束,可以完全不顾结构程序设计的原则,随意转移控制;③程序流程图不易表示数据结构;④对于大型软件而言,流程图过于琐碎,不容易阅读和修改。详细设计的方法和工具(2)N-S图:是一种符合结构化程序设计原则的图形描述工具。在n-s图中,为了表示五种基本控制结构,规定了五种图形构件。详细设计的方法和工具AB顺序多分支选择WHILE重复型注:其中P为循环条件,S为循环体。PFTBAPFTA选择=1P=2=nABNDO-WHILEPDO-UNTILPSSUNTIL重复型2、详细设计的工具(2)N-S图有下述特点:①功能域(一个特定控制结构的作用域)明确,图中每个矩形框(除CASE构造中表示条件取值的矩形框外),就是功能域。②不可能任意转移控制,约束设计人员必须遵守结构化程序设计的要求。③在盒图上很容易确定局部和全程数据的作用域。④很容易表现嵌套关系,也可以表示模块的层次结构。详细设计的方法和工具(3)PAD图:问题分析图。是日本日立公司1979年提出的一种算法描述工具,它的结构是由左向右展开的二维树型结构。详细设计的方法和工具选择顺序ABFT条件AB多分支选择ACBCASE值1值2值nPAD基本控制结构(3)PAD图:详细设计的方法和工具WHILE条件AUNTIL条件AAS1S3S2def“当型”循环“直到型”循环定义A(对A细化)PAD基本控制结构PAD图举例:将数组A(1)到A(10)进行选择法排序的算法描述。详细设计的方法和工具PAD图的控制流程为自上而下、从左到右。输入A(1)到A(10)的值开始置初值:n=10sort输出A(1)到A(10)的值结束PAD图举例:将数组A(1)到A(10)进行选择法排序的算法描述。详细设计的方法和工具PAD图的控制流程为自上而下、从左到右。WHILEi≤n-1sorti=1defj=i+1max=A(j)WHILEj≤nA(i)=maxi=i+1FTmaxA(j)A(i)=maxj=j+1PAD图的优点:1、清晰地反映了程序的层次结构。图中的竖线为程序的层次线,最左边的竖线是程序的主线,其后一层一层展开,层次关系一目了然。2、支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。3、易读易写,使用方便。4、支持结构化的程序设计原理。5、可以自动生成程序。[PDA图有对照FORTRAN、Pascal、C等高级语言的标准图式,因此,在有PDA系统的计算机上(如日立公司的系列机),可以直接输入PDA图,由计算机自动通过走树的方法生成源程序代码,为软件的自动生成提供了有力的工具。〕详细设计的方法和工具详细设计的方法和工具(4)PDL(过程设计语言)PDL:过程设计语言,又称程序描述语言。PDL与需求分析中采用的结构化语言统属于伪码。伪码的结构分为内外两层,外语法应符合一般程序设计语言常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号。由于它们的作用不同,故抽象程度不同,模糊程度也不同。“结构化语言”是描述加工“做什么”的,且要能使开发人员和用户都能看懂,因此无严格的外语法,内层自然语言描述较抽象、较概括。而PDL是描述处理过程“怎样做”的细节,故外层语法更为严格,更趋于形式化,内层自然语言描述实际操作更详细。详细设计的方法和工具PDL作为一种用于描述程序逻辑的语言,具有以下特点:①有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征②内语法使用自然语言来描述处理特性,为开发者提供方便,提高可读性。③具有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。④具有子程序定义与调用机制,用以表达各种方式的接口说明。⑤提供的机制比图形全面,为保证详细设计与编码的质量创造了有利条件。⑥可作为注释,也可同高级语言一样进行编辑、修改,便于维护。⑦可自动生成代码,提高软件生产率。详细设计的方法和工具PDL表示的程序结构有如下几种:1、顺序结构:采用自然语言描述。2、选择结构:IF-ELSE结构;IF-ORIF-ELSE结构;CASE结构。3、重复结构:FOR结构;WHILEUNTIL结构。4、出口结构:ESCAPE结构(退出本层循环);CYCLE结构(循环内部进入下一次循环)。5、模块定义与调用:PROCEDURE-RETURNCALL模块名6、数据定义:DECLARE属性变量名…..7、输入/输出:GET(输入变量名表),PUT(输出变量名表)详细设计的方法和工具3、详细设计工具的选择为满足过程描述易于理解、复审和维护进而过程描述能够自然地转换成代码,并保证详细设计与代码完全一致的原则,要求设计工具具有下述属性。(1)模块化:支持模块化软件的开发,并提供描述接口的机制。(2)简洁:设计描述易学、易用和易读。(3)便于编辑:支持后续设计和维护以及在维护阶段对设计进行的修改。(4)机器可读性:设计描述能够直接输入,并且很容易被计算机辅助设计工具识别。(5)可维护性:详细设计应能够支持各种软件配置项的维护。详细设计的方法和工具3、详细设计工具的选择(6)自动生成报告:设计者通过分析详细设计的结果来改进设计。通过自动处理器产生有关的分析报告,进而增强设计者在这方面的能力。(7)强制结构化:详细设计工具能够强制设计者采用结构化构件,有助于采用优秀的设计。(8)数据表示:详细设计具备表示局部数据和全局数据的能力。(9)逻辑验证:软件测试的最高目标是能够自动检验设计逻辑的正确性,所以设计描述应易于进行逻辑验证,进而增强可测试性。(10)编码能力:可编码能力是一种设计描述,研究代码自动转换技术可以提高软件效率和减少出错率。详细设计规格说明与复审1、详细设计说明详细设计说明书是程序工作过程的描述。详细设计说明的内容主要包括:(1)表示软件结构的图表;(2)对逐个模块的程序描述,包括算法和逻辑流程,插入输出项,与外部接口等。详细设计规格说明与复审2、设计复审设计复审是指对设计文档的复审。⑴复审的指导原则①一般情况下不邀请用户和其他领域的代表;②应该欢迎别人提出批评和建议③复审中提出的问题应详细记录,但不谋求当场解决。④复审结束前做出本次复审能否通过的结论。复审分正式与非正式两种方式。界面设计软件的用户界面是用来实现用户与系统的交互的重要桥梁。界面设计的好坏直接影响用户对该软件的印象。好的用户界面应具有的特点:⑴易操作性⑵用户界面中的术语标准化和一致性⑶拥有“帮助”子系统⑷系统复杂度的可控性⑸较短的响应时间和较低的实现成本界面设计一般软件的用户界面设计应该达到如下目标:·用户问题和求解要求表现的完整性;·用户接口的专业用语和标识符具有可理解性、易用性和用户习惯表现方式接近;·操作命令简便和用户对软件运行的可控性;·用户接口有容错能力;·快速的系统响应和较低的系统消耗。界面设计常规的用户界面设计的步骤是:(1)标识输入文件。(2)设计输入文件上抽象的数据类型、数据结构以及表格形式。(3)设计由输入文件转换成软件内部数据结构的算法。(4)设计装机及初始化操作。(5)对批处理操作,设计启动点、检查点及重新启动点;对交互式操作,实施进程分割,设计每一进程正确运行的辨认格式及选择下一进程的准则,中间输入的描述格式及启动命令。(6)设计输出中间结果和最终结果的图表和正文的格式,并确认输出设备。(7)以用户欢迎的方式和他们易理解的语言缩写“使用手册”初稿。界面设计字符界面设计字符界面是基于命令行方式的用户界面,是交互式计算机系统传统的用户界面,设计时应考虑以下原则:(1)命令的设计应该适合预期用户的专业水平,针对用户的不同情况,考虑规则。(2)提供风格一致性的命令格式结构。(3)命令名字时应意义明确,简短易记。(4)提供批处理命令和用户创建宏的能力。(5)提供UNDO和REDO命令。界面设计菜单设计菜单方式是在显示输出屏幕上提供一组可选的项目,使用者可以通过键盘、鼠标、图形输入板、触笔等输入设备选择其中某项。菜
本文标题:第5章详细设计
链接地址:https://www.777doc.com/doc-3481729 .html