软件工程第六章详细设计.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 详细设计(过程设计、模块设计) 详细设计的主要任务 主要任务:编写详细设计说明书 为此,设计人员应: (1)确定每个模块的算法,用工具表达算法的过 程,写出模块的详细过程性描述。 (2)确定每一模块的数据结构。 (3)确定模块接口细节。 详细设计是编码的先导。 结构化程序设计 逐步求精 三种基本结构 逐步求精的含义 详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。 总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统 逐步求精的要领 不要急于用计算机指令、数字和逻辑符号去表示对问题的解法,而是用自然语言(或其他工具)描述问题的解法,最开始的描述处于比较高的抽象层次,接着对抽象描述逐步分解,直到描述能被计算机理解为止。 例子-逐步求精 读入三个数,找出并打印其中的最大数 结构程序设计技术的优越性 (1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。 (2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 (3)不使用GO TO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。 (4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。 (5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。 (6)程序的逻辑结构清晰,有利于程序正确性证明。 6.2 过程设计的工具 过程设计工具包括图形,表格, 语言三类. 不论是哪一类工具,都应该指明控制流,处理功能,数据组织以及其它方面的实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码. 盒图(N-S图) 用方框图代替传统的流程图 描述五种基本控制结构的图形构件 (1) 顺序型 (2) 选择型(If – then – else) (3)多分支选择型(CASE型) (4) WHILE重复型 (5) UNTIL重复型 (6) 移出标记 N-S图的特点 N-S图示例 例1: 问题分析图(PAD) (Problem Analysis Diagram) (3)重复结构 (4) 多分支选择型(CASE型) 走图 例1: PAD图的优点: 判定表 用判定表表示计算行李费算法 判定树 6.3 面向数据结构的设计方法 Jackson图的优点,缺点 改进的Jackson图 Jackson程序设计方法 第一步 利用Jackson图描述数据结构 第二步 找出输入数据结构和输出数据结构 的对应关系 第三步 确定程序结构图 第四步 列出并分配所有操作和条件 第五步 用伪码表示程序 Jackson伪码描述的程序 6.4 程序复杂度的定量度量 Halstesd方法 6.5 详细设计说明书 引言 程序系统的组织结构 关键程序的设计说明 详细设计说明书规格 例1 例2 例3 填空题 选择题 应用题 1.答案 3.答案 4.答案 2)环形复杂度的计算方法 在一个强连通的有向图中,线性无关环的 个数由以下公式确定: V(G) = m – n + 2 其中: V(G) ---- 有向图 G 中的环数。 m ---- 有向图 G 中的弧数。 n ---- 有向图 G 中的节点数。 流图中的区域数等于环形复杂度。 流图的环形复杂度V(G) =P+1 p表示流图中的判定结点的个数 K=0 L=0 TOTAL=0 输入A Do while TOTAL ≤ 1000 and A≠ 0 A>0 TOTAL=TOTAL+A K=K+1 输入A L=L+1 停止 b c d e f g h i k 输出K,L, TOTAL j b c d e f g h j i k V(G)=11-10+2=3 11 条弧 10 个节点 3) 环形复杂度的用途: 程序的环形复杂度与程序控制流的复杂程度,也就是与程序结构的复杂程度有关。程序内分支数或循环个数增加时,环形复杂度就增加,因此它是对测试难度的一种度量,也能对软件最终的可靠性给出某种预测。 McCabe 发现:环形复杂度高的程序往往是最 困难、最容易出问题的程序。 实践表明: 模块规模以 V( G)≤ 10 为宜。 也就是说,V( G)= 10 是模块规模的一个更科学更精确的上限。

文档评论(0)

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

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

1亿VIP精品文档

相关文档