《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年发明,它用二维树型结构的图来表示程序的控制流,比较容易翻译成程序代码。主要特点:(1)使用PAD图设计的程序必然是结构化程序(2)PAD图描绘的程序结
5、构十分清晰。(3)用PAD图表现程序逻辑,易读、易懂、易记。(4)容易将PAD图转换成高级语言源程序,(5)PAD图既可用于表示程序逻辑,也可用于描绘数据结构。(6)PAD图的符号支持自顶向下、逐步求精方法的使用。(7)PAD图面向高级语言。,4.判定表判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其它的工具不易表示。一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。,5.判定树判定树是判定表的变种,也能清晰地表示复杂
6、的条件组合与应做的动作之间的对应关系。优点:形式简单,不需任何说明,易看出含义,易于掌握和使用。缺点:简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多。,6.过程设计语言PDLPDL也称为伪码,是用正文形式表示数据和处理过程的设计工具。PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。,五、详细设计说明书1 引言1.1 编写目的:阐明编写详细设计说明书的目的,指明读者对象。1.2 项目背景:应包括项目的来源和主管部门等。1.3 定义:列出本文档中所用到的专门
7、术语的定义和缩写词的愿意。1.4 参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册 文档所引用的资料、软件开发的标准或规范。2 总体设计2.1 需求概述2.2 软件结构:如给出软件系统的结构图。3 程序描述3.1 逐个模块给出以下说明:功能 性能 输入项目 输出项目3.2 算法:模块所选用的算法。3.3 程序逻辑:详细描述模块实现的算法,可采用:标准流程图;PDL语言;N-S图;判定表等描述算法的图表。3.4 接口 存储分配 限制条件3.5测试要点:给
8、出测试模块的主要测试要求。,第 六 章,编 码,一、程序设计概述1.50年代用机器指令代码进行手工编写程序当时程序设计是繁杂而又仔细的劳动,重复0与1,后期逐渐被用符号指令的汇编程序代替。当时评价程序的好坏是指令条数少,运行速度快,存储单元少。,2.60年代初,第一个高级语言Fortran的出现,大大简化了程序设计。用高级语言编写程序,基本与机器无关,可集中精力于算法本身。随着计算机的应用推广而渗透到各学科和技术领域,一系列不同程序风格和不同服务对象的专用语言和通用语言大量出现,至今已有1000多种。,3.70年代初期,大型软件(如操作系统、数据库)的出现,给程序设计带来了新的问题。如花费大量
9、的资金和人力编制程序,还有产品的可靠性、维护、修改和移植等,形成软件危机。,4.从60年代末开始,出现了许多程序设计的方法,比较成功或流行的有:结构化的程序设计、逐步求精的程序设计、程序的推导技术、程序变换技术、面向对象的程序设计。如果说70年代、80年代是“结构化的程序设计”年代,那么90年代则是“面向对象的程序设计”的天下。,总之,软件的发展大体上经历了三个阶段:程序设计阶段、软件阶段、软件工程阶段。在当今软件工程时代,软件不再是建立在个别人“手艺”基础上的、个体或“作坊”生产的“工艺品”,而是以工程的方式批量生产的产品。,二、程序设计语言1.分类,机器语言,汇编语言,高级语言,语言,高级
10、语言,从应用特点分,从内在特点分,基础语言,如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.31ppt.com/p-5696950.html