




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 软件开发文档,主要内容,5.1 可行性研究报告 5.2 软件需求文档 5.3 面向过程概要设计 5.4 面向过程详细设计,5.4 面向过程详细设计,5.4.1详细设计阶段目标 5.4.2详细设计文档的内容 5.4.3详细设计文档的描述方法 5.4.4面向过程的详细设计示例,5.4 面向过程详细设计,5.4.1详细设计阶段目标 5.4.2详细设计文档的内容 5.4.3详细设计文档的描述方法 5.4.4面向过程的详细设计示例,5.4.1详细设计阶段目标,根本目标是确定应该怎样具体地实现所要求的系统。 详细设计的任务不是编写程序,而是要设计出程序的“蓝图”,便于以后根据这个蓝图写出实际的程序代码。,结构化程序设计,结构化程序设计主要包括两方面: (1) 在设计程序时,强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句。 (2) 在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。,结构化程序设计的主要原则, 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。 选用的控制结构只准许有一个入口和一个出口。 程序语句组成容易识别的块,每块只有一个入口和一个出口。 复杂结构应该用基本控制结构进行组合嵌套来实现。,结构化程序设计的主要原则, 严格控制GOTO语句,仅在下列情形才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造。 若不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况下。,结构化程序设计的主要原则,例 打印A, B, C三数中最小者的程序,程序1 if ( A B ) goto b12; if ( B C ) goto b11; b10: printf (“%d”, C ); goto b14; b11: printf (“%d”, B ); goto b14; b12: if ( A C ) goto b13; goto b10; b13: printf (“%d”, A ); b14: ,原则:严格控制GOTO语句,程序2 if ( A B and A C ) printf (“%d”, A ); else if ( A B and B C ) printf (“%d”, B ); else printf (“%d”, C ); ,自顶向下,逐步求精, 在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。 把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。,自顶向下,逐步求精,例,用筛选法求100以内的素数 筛选法就是从2到100中去掉2,3,9,10的倍数,剩下的就是100以内的素数。 为了解决这个问题,可先按程序功能写出一个框架。,质数发生器算法举例,质数发生器算法举例: N = 25,要求得到小于N的所有质数序列 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 5 7 9 11 13 15 17 19 21 23 25 2 3 5 7 11 13 17 19 23 25 2 3 5 7 11 13 17 19 23 2 3 5 7 11 13 17 19 23 进行到消去了5的倍数时,已没有要消去的数,消去停止,输出结果。因为如果设p=5,则2p,3p,4p分别先前的步骤中已经被消去,所以只能从pp开始,所以算法停止的条件为 比如,可设计一种简单方案: 1. 用一维数组 InN-1 存放2N的整数(小到大序);In0 = 2 2. 从 Inip=k 开始的每一轮(i)消去时,将数组中该轮k的倍数数置0。 后续消去时,若 Ini = k = 0,则跳过消去该k的倍数,避免重复。,main ( ) /程序框架 建立2到100的数组A ,其中Aii; -1 建立2到10的素数表 B ,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A 中所有没有被剔除的数; -4 ,自顶向下,逐步求精,main ( ) /*建立2到100的数组A ,其中Aii*/ for ( i = 2;i = 100;i+ ) Ai = i; /* 建立2到10的素数表B ,其中存放2到10以内的素数*/ B1 =2;B2 = 3;B3 = 5;B4 = 7; /*若Aii是B 中任一数的倍数,则剔除Ai*/ for ( j = 1;j = 4;j+ ) 检查A 所有的数能否被Bj整除并将 能被整除的数从A 中剔除; -3.1 /*输出A 中所有没有被剔除的数*/ for ( i = 2;i = 100;i+ ) 若Ai没有被剔除,则输出之 -4.1 ,自顶向下,逐步求精,对框架中的局部再做细化,得到整个程序。 main ( ) /*建立2到100的数组A ,其中Aii*/ for ( i = 2;i = 100;i+ ) Ai = i; /* 建立2到10的素数表B ,其中存放2到10以内的素数*/ B1 =2;B2 = 3;B3 = 5;B4 = 7; /*若Aii是B 中任一数的倍数,则剔除Ai*/ for ( j = 1;j = 4;j+ ) /*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/ for ( i = 2;i = 100;i+) if ( AiBj * Bj = Ai ) Ai = 0; /*输出A 中所有没有被剔除的数*/ for ( i = 2; i = 100;i+) /*若Ai没有被剔除,则输出之*/ if ( Ai != 0 ) printf ( “A%d%dn”,i,Ai ); ,自顶向下,逐步求精, 符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率 用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解,自顶向下,逐步求精方法的优点:, 程序自顶向下,逐步细化,分解成一个树形结构。在同一层的节点上的细化工作相互独立。有利于编码、测试和集成 程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大 每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查 有利于设计的分工和组织工作。,自顶向下,逐步求精方法的优点:,数塔,数塔问题:设有一三角形数塔如图。求一条自塔顶到塔底的路径,该路径上节点值之和最大。,分段:每一级台阶自然划分为一个阶段,成为多阶段决策的优化问题。 无法分段的问题,不能用动态规划法求解。 求解:动态规划法求解。自底向上计算,各实例计算满足最优性原则, 如实例18的子实例为12和7,max(12+6, 7+6)=18。,1级 2级 3 级 4 级 5级,5.4 面向过程详细设计,5.4.1详细设计阶段目标 5.4.2详细设计文档的内容 5.4.3详细设计文档的描述方法 5.4.4面向过程的详细设计示例,5.4.2详细设计文档的内容,在详细设计说明书中,设计人员应该完成如下任务: (1)确定每个模块算法,用工具表达算法的过程,写出模块详细过程性描述 (2)确定每个模块的数据结构 (3)确定模块接口细节 在编写详细设计文档时,要坚持做到两点: (1)确保清晰 (2)使用标准的、规范的控制结构进行描述。,5.4 面向过程详细设计,5.4.1详细设计阶段目标 5.4.2详细设计文档的内容 5.4.3详细设计文档的描述方法 5.4.4面向过程的详细设计示例,5.4.3详细设计文档的描述方法,在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。 前者涉及所开发项目的具体要求和对每个模块规定的功能,以及算法的设计和评价,这不属于本课所讨论的范围, 后者要给出适当的算法描述,为此应提供过程设计的表达工具。 在理想情况下,算法过程描述应当采用自然语言表达,这样不熟悉软件的人要理解这些规格说明就比较容易,不需要重新学习。但是,自然语言在语法和语义上往往具有多义性,常常要依赖于上下文才能把问题交代清楚。为此,必须使用约束性更强的方式表达过程细节。, 在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类: 图形工具 表格工具 语言工具,详细设计的工具, 程序流程图也称为程序框图,程序流程图使用五种基本控制结构是:,程序流程图,示例,程序流程图的标准符号,程序流程图优缺点,(1)优点:它独立于任何一种程序设计语言,比较直观,清晰,易于掌握。 (2)缺点:流程图所使用的符号不够规范,常常使用一些习惯性用法。特别是表示程序控制流程的前头,使用的灵活性极大,程序员可以不受任何约束随意转移控制。 (3)对程序图所用的符号做出严格的定义,不允许人们随心所欲地画出各种不规范的流程图。,循环的标准符号 注解的使用,多出口判断,N-S图:,1973年,Nassi和Shneiderman发表了题为“结构化程序的流程图技术”的文章,提出用盒图(Box diagram)来代替传统的流程图,引起了人们的重视,根据这两位创始人的名字,许多人把它简称为NS图(NS chart)。 NS的主要特色,就是只能描述结构化程序所允许的标准结构,根本取消了表现诸如含有GOTO语句的非标准结构的手段。,N-S图:,优点是:所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可见。而且,由于它只能表达结构化的程序逻辑,使应用NS图来描述软件设计的人不得不遵守结构化程序设计的规定。久而久之,就可自然地养成良好的程序设计风格。不足的是:当程序内嵌套的层数增多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响。, N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。,N-S图:,示例,N-S图优特点,(1)图中每个矩形框(除Case构造中表示条件取值和矩形框外)都是明确定义了的功能域(即每个特定控制结构的作用域)以图形表示,清晰可见 (2)它的控制转移不能任意规定,必须遵守结构化程序设计要求 。 (3)很容易确定数据和全局数据的作用域 (4)很容易表现嵌套关系,也可以表示模块的层次结构。 (5)当N-S图很大时,可使用N-S图扩展形式表现。,N-S图的扩展形式,扩展:要相应位置用名字(用椭园框),在另外的地方把这些命名的部分进一步展开。,问题分析图(PAD),PAD图是日本日立公司于1979年提出的一种算法描述工具,现已等到ISO认可。它是一种由左往右展开的二维树型结构。PAD图的控制流程为自上而下,从左往右地执行。优点: 清晰地反映了程序的层次结构。(层次数即为纵线数) 支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。 易读易写,使用方便(比流程图)。 支持结构化的程序设计原理。 可自动生成程序。,问题分析图(PAD), PAD也设置了五种基本控制结构的图式,并允许递归使用。,PAD描述的示例,对应于增量型循环结构 for i := n1 to n2 step n3 do 在PAD中有相应的循环控制结构,PAD的扩充控制结构,判定表特点,当算法中包含多重嵌套的条件选择,用程序流程图、N-S图或PAD图都不易清楚描述 使用判定表能清晰地表达复杂的条件组合与应做动作对应关系。 判定表的优点:简洁、无二义性描述所有的处理规则 判定表的缺点: 不能表达加工的顺序,也不能表达循环结构 判定表用于表示程序的静态逻辑, 在判定表中的条件部分给出所有条件各种条件组合,动作部分给出相应的处理 要求将程序流程图中的多分支判断都改成两分支判断 能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,判定表,无多分支判断结构, 列出与一个具体过程(或模块)有关的所有处理。 列出过程执行期间的所有条件(或所有判断)。 将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。 将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。,建立判定表的步骤:,判定树,判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 优点在于,它的形式简单到不需要任何说明,一眼就可以看出其含义 易于掌握和理解,判定树,实例分析:假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等仓的国内乘客超重部分每公斤收费4元,对其他仓的国内乘客超重部分每公斤收费6元,国外乘客加收1倍,残疾乘客减半,行李费 算法,行李重量 W30,行李重量 W=30,免费,国内乘客,国外乘客,头等舱,其他舱,头等舱,其他舱,残疾乘客,正常乘客,(w-30)*2,(w-30)*4,残疾乘客,正常乘客,(w-30)*3,(w-30)*6,残疾乘客,正常乘客,(w-30)*4,(w-30)*8,残疾乘客,正常乘客,(w-30)*6,(w-30)*12,PDL (Program Design Language),也称程序描述语言(Program Description Language ,PDL),又称为伪码(pseudo code)。属于文字形式的表达工具。它并非真正的代码,也不能在计算机上执行,但形式上与代码相似。它是一种用于描述模块算法设计和处理细节的语言。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。, PDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的内语法又是灵活自由的,可使用自然语言的词汇。,PDL (Program Design Language),PROCEDURE spellcheck IS BEGIN split document into single words lood up words in dictionary display words which are not in dictionary create a new dictionary END spellcheck,示例: 拼词检查程序, 提供全部结构化控制结构、数据说明和模块特征。能对PDL正文进行结构分割,使之变得易于理解。 为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。,PDL的特点:, 内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。 有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。 有子程序定义与调用机制,用以表达各种方式的接口说明。,PDL的特点:,PROCEDURE spellcheck BEGIN -* split document into single words LOOP get next word add word to word list in sortorder/排序 EXIT WHEN all words processed END LOOP -* look up words in dictionary LOOP get word from word list,使用PDL语言,逐步求精:,IF word not in dictionary THEN -* display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to good word list ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processed END LOOP,使用PDL语言,逐步求精:,结构化控制结构,-* create a new words dictionary dictionary : merge dictionary and good word list END spellcheck,使用PDL语言,逐步求精:,PDL特点,优点: (1)可以作为注释直接插在源程序中间。 (2)可以使用普通正文编辑程序或文字处理系统完成PDL的书写的编细辑工作 (3)有自动处理程序使PDL生成程序代码 缺点: 不如图形工具直观,在描述复杂的条件组合时不如判定表清晰。,5.4 面向过程详细设计,5.4.1详细设计阶段目标 5.4.2详细设计文档的内容 5.4.3详细设计文档的描述方法 5.4.4面向过程的详细设计示例,5.4.4面向过程的详细设计示例,参考标准: 软件产品开发文件编制指南(GB8567-1988) 高评委专家库信息管理系统详细设计说明书 银河侦探游戏软件详细设计说明书 机票预定系统详细设计说明书,5.4.4面向过程的详细设计示例,1引言 11编写目的 说明编写这份详细设计说明书的目的,指出预期的读者。 12背景 说明: a待开发软件系统的名称; b.本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。,1、编写目的 本文档是程序员代码编写的基础,本文档的读者是设计人员和编写人员 2、背景 (1)待开发的软件系统的名称:浙江省高评委专家库信息管理系统 (2)本项目的任务提出者:浙江省人事厅专业技术人员管理处 (3)开发者:浙江工业大学,杭洲时空信息技术有限公司 (4)用户:浙江省各高评委单位。,例:高评委,13定义 列出本文件中用到专门术语的定义和外文首字母组词的原词组。 14参考资料 列出有关的参考资料,如: a本项目的经核准的计划任务书或合同、上级机关的批文; b属于本项目的其他已发表的文件; c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。,例:高评委,3、定义 高评委:高级专业技术职务任职资格评审委员会 4、参考资料 (1)浙江省人事厅关于组建高级专业技术职务任职资格评审委员会专家库有关事项通知 (2)项目委托书 (3)系统功能说明书 (4)需求说明书 (5)概要设计说明书,2.程序系统的结构 用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间 的层次结构关系。,例:高评委,本系统屏幕功能区域设计如图所示:,本系统中每个子系统包含的单元文件名称及其程序层次如下图所示:,3程序1(标识符)设计说明 从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。 对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。 F31程序描述 给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重入的还是不可重入的?有无覆盖要求?是顺序处理还是并发 处理等等)。,例:高评委 “新建高评委模块”用于组建一个新的高级职称评审委员会,建立新的高评委是本软件的第一步,只有当新的高评委建立起来后,才可以建立其隶属的专业组。然后再录入专家。,3.2功能 说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。,例:高评委,3.3性能 说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。 34输人项 给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。 数量和频度、输入媒体、输入数据的来源和安全保密条件等等。 3.5输出项 给出对每一个输出项的特性,包括名称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现场救护专业培训课件
- 农作物加工设备创新创业项目商业计划书
- 农产品展销会创新创业项目商业计划书
- 职业技能课程自适应学习系统创新创业项目商业计划书
- 电商品牌客服服务创新创业项目商业计划书
- 2025年工业互联网平台传感器网络自组网技术在智能工厂设备维护中的应用报告
- 2025年工业互联网平台安全多方计算技术保障工业互联网生态安全报告
- 2025年新能源汽车废旧电池回收处理产业技术创新与市场应用研究报告
- 2025年社交媒体舆情监测与危机公关技术应用现状与发展趋势报告
- 山东省菏泽市2021-2022学年五年级上学期科学期中学情调研试卷(含答案)
- 基于品牌忠诚度的餐饮App的营销策略研究以“瑞幸咖啡”App为例
- 如何完成原料药中元素杂质的风险评估报告
- 商业计划书推广
- 选品与采购全套教学课件
- 维生素D与女性生殖健康的预防
- DB13-T 5838-2023大型会展活动临建设施安全、绿色管理通用要求
- 创伤失血性休克中国急诊专家共识(2023)解读
- 材料风险调差表
- (订正版)全面质量管理知识习题集大全(含答案)
- 武汉市古树名木资源调查报告
- 主变压器安装施工方案完整版本
评论
0/150
提交评论