《928-第五章详 细 设 计.ppt》由会员分享,可在线阅读,更多相关《928-第五章详 细 设 计.ppt(31页珍藏版)》请在三一文库上搜索。
1、第 五 章,详 细 设 计,一、基本任务 回答的关键问题:“怎样具体地实现这个系统” 主要任务是设计出程序的“蓝图”,供程序员日后根据这个蓝图编写出实际的程序代码。 注意:设计程序的蓝图,不是具体地编写程序。 设计程序主要采用结构化的程序设计方法。,二、基本步骤 确定模块如何实现 编写详细设计说明书 制定单元测试计划 详细设计评审,三、结构程序设计 1.什么是结构程序设计 结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。,三种基本的控制结构,A,B,exp,B,A,F,T,exp,A,T,F,exp,A,F,T,2.逐步求精的含义 详细设计阶段逐步求
2、精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。 总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。,3.结构程序设计技术的优越性 (1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。 (2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 (3)不使用GO TO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。,(4)控制结构有确定的逻辑模式,编写程序代
3、码只限于很少几种直截了当的方式,因此源程序清晰流畅。 (5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。 (6)程序的逻辑结构清晰,有利于程序正确性证明。,四、详细设计的工具(含义、图例、评价) 1.程序流程图 2.盒图(NS图) 3.PAD图 4.判定表 5.判定树 6.过程设计语言(PDL) 7.模块开发文件夹,1.程序流程图 (1)程序流程图又称为程序框图,是早期软件设计的主要工具。 (2)优点: 对控制流程的描绘很直观,便于初学者掌握。 (3)缺点: 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。,程序流程
4、图中用箭头代表控制流,因此程序员不受约束,可以完全不顾结构程序设计的精神,随意转移控制。 程序流程图不易表示数据结构。,2.盒图(N_S图) 盒图由Nassi和Shneiderman提出,又称为N_S图,它有以下特点: (1)功能域(即一个特定控制结构的作用域)明确,很容易从盒图上看出。 (2)不可能任意转移控制 (3)很容易确定局部和全程数据的作用域 (4)很容易表现嵌套关系,也可以表示模块的层次结构 (5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计的原则。,3.PAD图 PAD图由日本日立公司在1973年发明,它用二维树型结构的图来表示程序的控制流,比较容易翻译成程序代码。主要特
5、点: (1)使用PAD图设计的程序必然是结构化程序 (2)PAD图描绘的程序结构十分清晰。 (3)用PAD图表现程序逻辑,易读、易懂、易记。 (4)容易将PAD图转换成高级语言源程序,(5)PAD图既可用于表示程序逻辑,也可用于描绘数据结构。 (6)PAD图的符号支持自顶向下、逐步求精方法的使用。 (7)PAD图面向高级语言。,4.判定表 判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其它的工具不易表示。 一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。 判定表的每一列实质上是一条规
6、则,规定了与特定的条件组合相对应的动作。,5.判定树 判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 优点:形式简单,不需任何说明,易看出含义,易于掌握和使用。 缺点:简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多。,6.过程设计语言PDL PDL也称为伪码,是用正文形式表示数据和处理过程的设计工具。 PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。,五、详细设计说明书 1 引言 1.1 编写目的:阐明编写详细设计说明书的
7、目的,指明读者对象。 1.2 项目背景:应包括项目的来源和主管部门等。 1.3 定义:列出本文档中所用到的专门术语的定义和缩写词的愿意。 1.4 参考资料: 列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源 项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册 文档所引用的资料、软件开发的标准或规范。 2 总体设计 2.1 需求概述 2.2 软件结构:如给出软件系统的结构图。 3 程序描述 3.1 逐个模块给出以下说明: 功能 性能 输入项目 输出项目 3.2 算法:模块所选用的算法。 3.3 程序逻辑:详细描述
8、模块实现的算法,可采用:标准流程图;PDL语言;N-S图;判定表等描述算法的图表。 3.4 接口 存储分配 限制条件 3.5测试要点:给出测试模块的主要测试要求。,第 六 章,编 码,一、程序设计概述 1. 50年代用机器指令代码进行手工编写程序 当时程序设计是繁杂而又仔细的劳动,重复0与1,后期逐渐被用符号指令的汇编程序代替。 当时评价程序的好坏是指令条数少,运行速度快,存储单元少。,2. 60年代初,第一个高级语言Fortran的出现,大大简化了程序设计。 用高级语言编写程序,基本与机器无关,可集中精力于算法本身。随着计算机的应用推广而渗透到各学科和技术领域,一系列不同程序风格和不同服务对
9、象的专用语言和通用语言大量出现,至今已有1000多种。,3. 70年代初期,大型软件(如操作系统、数据库)的出现,给程序设计带来了新的问题。如花费大量的资金和人力编制程序,还有产品的可靠性、维护、修改和移植等,形成软件危机。,4. 从60年代末开始,出现了许多程序设计的方法,比较成功或流行的有: 结构化的程序设计、逐步求精的程序设计、程序的推导技术、程序变换技术、面向对象的程序设计。 如果说70年代、80年代是“结构化的程序设计”年代,那么90年代则是“面向对象的程序设计”的天下。,总之,软件的发展大体上经历了三个阶段:程序设计阶段、软件阶段、软件工程阶段。在当今软件工程时代,软件不再是建立在
10、个别人“手艺”基础上的、个体或“作坊”生产的“工艺品”,而是以工程的方式批量生产的产品。,二、程序设计语言 1.分类,机器语言,汇编语言,高级语言,语言,高级语言,从应用特点分,从内在特点分,基础语言,如BASIC,结构化语言,如PASCAL、C,专用语言,如APL,系统实现语言,如C,静态高级语言,如COBOL,块结构高级语言,如PASCAL,动态高级语言,不属于通用语言,2.特点 名字说明 类型说明 初始化 程序对象的局部性 程序模块 控制结构:顺序、分支、循环 异常处理 独立编译,三、程序设计途径 1.写程序的风格 程序内部的文档:恰当的标识符、适当的注释和程序的视觉组织等。 数据说明
11、语句构造:原则是每个语句都应该简单而直接,并注意以下规则: 不要为了节省空间而把多个语句写在同一行。 尽量避免复杂的条件测试 尽量减少对“非”条件的测试 避免大量使用循环嵌套和条件嵌套 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。,输入/输出:好的设计原则: (1)对所有输入数据进行检验 (2)检查输入项重要组合的合法性 (3)保持输入格式简单 (4)使用数据结束标记,不要要求用户指定数据的数目 (5)明确提示交互式输入的请求,详细说明可用的选择或边界数值 (6)当程序设计语言对格式有严格要求时,应保持输入格式一致 (7)设计良好的输出报表 (8)给所有输出数据加标志。,效率:主要指处理机时间和存储器容量两个方面。 提高程序运行时间的原则: (1)写程序之前先简化算术的和逻辑的表达式 (2)仔细研究嵌套的循环,以确定是否有语句可以从内层往外移 (3)尽量避免使用多维数组 (4)尽量避免使用指针和复杂的表 (5)使用执行时间短的算术运算 (6)不要混合使用不同的数据类型 (7)尽量使用整数运算和布尔表达式 存储效率 输入/输出的效率,2.程序设计方法论 自顶向下的程序设计方法 自底向上的程序设计方法 3.程序设计自动化 4.程序设计工具,
链接地址:https://www.31doc.com/p-3025539.html