软件详细设计知识.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲 详细设计(软件构建) 详细设计目的 详细设计的目的是为系统结构图中的每一个模块确定采用的算法(包括数据结构),用某种选定的表达工具给出清晰的描述,使程序员可以将这种描述直接翻译为某种语言程序。 实施者 软件工程师、软件程序员 详细设计阶段的输出 详细设计过程(管理过程) 详细设计的原则 为了能够使模块的逻辑描述清晰准确,在详细设计阶段应遵循下列原则。 (1) 将保证逻辑描述的清晰度放在首位 (2) 设计过程中应采用逐步细化的实现方法 (3) 选择适当的表达工具 详细设计的过程(技术过程) (2)构件分解 - 从ADD中的构件开始分解,直到构件可以利用所选编程语言进行实现; - 分解过程所用的方法和工具应与体系结构设计阶段一致。 详细设计的工具 可以分为图形、表格和语言三类。 1.图形工具:包括程序流程图、N-S图和PAD图; 2.表格工具:包括判定表和判定树; 3.语言工具:包括PDL语言。 程序的复杂性度量 定量度量程序复杂程度的方法很有价值: 1) 估算出系统中故障的数量; 2) 估算系统开发需要用的工作量; 3) 可以用来比较两个不同的设计或两个不同算法的优劣; 4) 可以作为模块规模的精确限度。 5.PDL语言 PDL语言即过程设计语言(Procedure Design Language),是一种用于描述程序算法和定义数据结构的伪码设计语言。 1)PDL的构成 PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇来表示实际操作,同时却使用另一种语言(某种结构化的程序设计语言)的语法来定义控制结构和数据结构。自然语言的采用使算法的描述灵活自由、清晰易懂,结构化程序设计语言的采用使控制结构的表达具有固定的形式且符合结构化设计的思想。 2)PDL的实例 前面求一组数中最大值的过程如果用PDL语言描述,结果如下: INPUT ARRAY A MAX=A(1) DO FOR I=2 TO N IF MAXA(I) SET MAX=A(I) ENDIF PRINT MAX 3)PDL语言的优缺点 PDL语言具有如下一些优点: ① PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码,因此,它是详细设计阶段很受欢迎的表达工具; ② 用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则; ③ PDL描述同自然语言很接近,易于理解; ④ PDL描述可以直接作为注释插在源程序中,成为程序的内部文档,这对提高程序的可读性是非常有益的。 PDL的缺点是不如图形工具那样描述形象直观,对复杂条件的描述,不如判定表清晰、简单,因此常常将PDL描述与一种图形描述工具结合起来使用。 关于算法(Algorithm) 1. 定义:算法是规则的有限集合,是为解决特定问题而规定的一系列操作。 2. 算法的特性: 有限性:有限步骤之内正常结束,不能形成无限循环; 确定性:每一个步骤必须有确定含义,无二义性; 可行性:操作可通过已经实现的基本运算执行有限次而完成; 输入:有0个或多个输入; 输出:至少有一个输出。 3. 算法设计的要求 1)正确性:算法应该满足具体问题的求解需求。有三层含义: 算法对于几组输入数据能够得出满足要求的结果; 算法对于精心选择的典型、苛刻的输入数据能够得出满足要求的结果; 算法对于一切合法的输入数据都能够得出满足要求的结果。 2)可读性:便于理解和交流。 3)鲁棒性:即使输入了非法数据,算法也能识别并处理。 4)高效率和低存储量。 环形复杂度的度量方法 1.程序图 使用McCabe方法首先需要画出程序图(Program Graph),所谓程序图可以看成是“退化了的”程序流程图,也就是把程序流程图中的每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为程序图。几种基本结构的程序图如下图所示。 开始 S a b c d e f g h 结束E (a)程序流程图 S a b c d e f g h E (b)程序图 例子 2. 环形复杂度的度量

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档