《详细设计的任务结构化程序设计详细设计描述工具JACKSON》由会员分享,可在线阅读,更多相关《详细设计的任务结构化程序设计详细设计描述工具JACKSON(43页珍藏版)》请在金锄头文库上搜索。
1、n n详细设计的任务详细设计的任务n n结构化程序设计结构化程序设计n n详细设计描述工具详细设计描述工具n nJACKSONJACKSON程序设计方程序设计方 法法n n程序程序复杂性的度量程序程序复杂性的度量 详细设计的任务 每个模块的算法设计 模块内的数据结构设计 数据库的物理设计 其它设计n代码设计n输入/输出格式设计n人机对话设计 详细设计说明书 评审结构化程序设计结构化程序设计n n定义定义SPSP是一种程序设计技术,它采用由顶向下是一种程序设计技术,它采用由顶向下 逐步求逐步求精的设计方法和单入口单出口的控制结构精的设计方法和单入口单出口的控制结构n nSPSP的基本要点的基本要
2、点 采用由顶向下逐步求精的设计方法采用由顶向下逐步求精的设计方法 三种基本控制结构三种基本控制结构 主程序员组的组织形式主程序员组的组织形式常用的控制结构非结构化程序转变成结构化非结构化程序转变成结构化程序程序S1;while (C1) S2;if (C2) goto L;S3;L: S4;人机界面设计n人机界面的设计质量,直接影响用 户对软件产品的评价,从而影响软 件产品的竞争力和寿命n近年来,人机界面在系统中所占的 比例越来越大,在个别系统中人机 界面的设计工作量甚至占总设计量 的一半以上人机界面的设计在设计人机界面的过程中,总会遇4个 问题: n 系统响应时间n 用户帮助设施n 出错信息
3、处理n 命令交互系统响应时间n一般说来,系统响应时间指从用户完成某 个控制动作(例如,按回车键或点击鼠标) ,到软件给出预期的响应(输出信息或做 动作)之间的这段时间。n系统响应时间的两个重要属性:响应时间 长度和易变性,易变性指系统响应时间相 对于平均响应时间的偏差用户帮助设施n几乎交互式系统的每个用户都需要 帮助,当遇到复杂问题时甚至需要 查看用户手册以寻找答案。n大多数现代软件都提供联机帮助设 施,这使得用户无须离开用户界面 就能解决自己的问题出错信息处理一般说来,交互式系统给出的出错信息或警 告信息,应该具有下述属性。 (1)信息应该使用用户可以理解的术语描述问 题 (2)信息应该提供
4、有助于从错误中恢复的建设 性意见。 (3)信息应该指出错误可能导致哪些负面后果 (4)信息应该伴随着听觉上或视觉上的提示,例如,在显示信息时同时发出警告铃声, (5)信息不能责怪用户命令交互现在,面向窗口的、点击和拾取方式 的界面已经减少了用户对命令行的依 赖,但是,许多高级用户仍然偏爱面 向命令行的交互方式。在多数情况下 ,用户既可以从菜单中选择软件功能 ,也可以通过键盘命令序列调用软件 功能。过程设计的描述工具在过程设计阶段,要决定各个模块的在过程设计阶段,要决定各个模块的 实现算法,并精确地表达这些算法。实现算法,并精确地表达这些算法。 表达过程规格说明的工具叫做详细设表达过程规格说明的
5、工具叫做详细设 计工具,它可以分为以下三类计工具,它可以分为以下三类: : 图形工具图形工具 表格工具表格工具 语言工具语言工具程序流程图程序流程图n n程序流程图也称为程序框图,程程序流程图也称为程序框图,程 序流程图使用序流程图使用五种基本控制结构五种基本控制结构 是是: :N N- -S S图图n nN N- -S S图也叫做盒图。五种基本控图也叫做盒图。五种基本控 制结构由五种图形构件表示。制结构由五种图形构件表示。n nPADPAD也设置了五种基本控制结构也设置了五种基本控制结构 的图式。的图式。问题分析图问题分析图(PAD)(PAD)PADPAD的扩充控制结构的扩充控制结构PADP
6、AD描述的示描述的示 例例判判定定表表n n判定表结构判定表结构条件定义、条件定义、动作定义、动作定义、条件取值组合条件取值组合条件各种取值的组合对应的动作条件各种取值的组合对应的动作“ “检查发货单检查发货单建立判定表的建立判定表的步骤步骤n n列出所有条件,为个条件的取值列出所有条件,为个条件的取值n n列出所有条件组合列出所有条件组合n n提取所有可能的动作提取所有可能的动作n n对每个条件组合,标明其对应动作对每个条件组合,标明其对应动作n n完善判定表完善判定表合并合并 对于无对应动作的条件组合应加以补对于无对应动作的条件组合应加以补 充充以下例说明判定表的组织方法。假设公司规定,
7、若销售额小于等于10000元, 则若是老雇主则优惠处理;否则,若雇主讲信誉,则优惠处理;否则正常处理; 否则优惠处理PDL PDL (Program Design (Program Design Language)Language)n nPDLPDL是一种用于描述功能模块的是一种用于描述功能模块的算算 法设计法设计和和加工细节加工细节的语言。称为设的语言。称为设 计程序用语言。它是一种伪码。计程序用语言。它是一种伪码。n n伪码的语法规则分为伪码的语法规则分为“ “外语法外语法” ”和和“ “ 内语法内语法” ”。n nPDLPDL具有严格的具有严格的关键字外语法关键字外语法,用,用 于定义控
8、制结构和数据结构,同时于定义控制结构和数据结构,同时 它的它的表示实际操作和条件的内语法表示实际操作和条件的内语法 可使用自然语言的词汇。可使用自然语言的词汇。示例示例: : 拼词检查程序拼词检查程序PROCEDURE spellcheck IS BEGINsplit document into single words lood up words in dictionary display words which are not in dictionary create a new dictionary END spellcheckJackson 程序设计方法 基本思想根据输入、输出的数据结
9、构 , 按一定的规则映射成程序结构Jackson结构图n顺序 n重复n选择根据条件,根据条件,A A选择选择B B、C C、D D中一个中一个n重复A由B出现N次(N0)组成设计步骤u用Jackson图表示输入、输出数据的结构u找出输入、输出数据结构中对应关系的数据单 元:数据单元在内容、数量和顺序上的对应关 系。u按一定的规则由输入、输出的数据结构导出程 序结构u列出基本操作和条件,并分配到程序结构图的 适当位置u用伪码写出程序例一个正文文件由若干个记录组成, 每个记录是一个字符串。要求统计每个 记录中空格字符的个数,以及文件中空 格字符的总个数。要求的输出数据格式 是,每复制一行输入字符串
10、之后,另起 一行印出这个字符串中的空格数,最后 印出文件中空格的总个数。表示输入输出数据结构的Jackson图统计空格程序结构的Jackson图程序复杂性的度量 程序复杂度直接关联到:程序开发费用的多少开发周期的长短软件内部潜伏的错误的多少软件复杂性度量的参数 规模:源代码的行数 难度:通常由程序中出现的操作 数的数目所决定的量来表示 结构:用与程序结构有关的度量 来表示 智能度:算法的难易程度代码行度量法n以源代码行作为程序复杂性的度量对于小于100行的程序,源代码 行数与出错率是线性相关的,随着 程序的增大,出错率以非线性方式 增长,所以,代码行度量法只是一 简单的、估计粗糙的方法。McC
11、abe方法u基本思想McCabeMcCabe度量法,又称环路复杂度量法,又称环路复杂 性度量,是一种性度量,是一种基于程序控制流基于程序控制流 的复杂性度量方法。的复杂性度量方法。计算步骤画出程序的流程图 构造流程图对应的程序图(流图) 从出口点增加一条指出口点的虚线 弧,构成强连通图 根据公式 V(G)=m-n+p计算环形复 杂度m: 弧数,n:节点数,p:图分离部分的个 数其它两种计算方法 计算程序图中所有有界区域和无界区 域的个数 用判断的个数加1计算:if、循环为一 个判断,多分支语句判断的个数为分 支数减1。McCabe建议:如果将多分支语句作 为一例外,一个程序模块的V(G)一般
12、在10以内缺点 没有区分不同类型控制流的复杂性: 如把一个IF语句和循环语句看成相同 认为模块接口的复杂性不会比简单的 分支结构更复杂。 1000条顺序指令的序列同一条指令序 列有相同的复杂性。Halstead 方法u基本思想根据程序中运算符和操作数的 总数来度量程序的复杂度。计算方法设:n1:程序中出现的不同操作符的数目n2:程序中出现的不同操作数的数目N1:程序中操作符的总数N2:程序中操作数的总数 程序实际长度 N=N1+N2 程序预测长度H=n1 loglog2 2n1+ n2 loglog2 2n2多次验证表明:H与N非常接近 程序潜在的错误E=N loglog2 2(n1+n2)/3000