- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构化设计讲解
一个好的软件结构是顶层扇出比中间层高, 中间扇出比较少,底层高扇入(公共模块) * H图里的每个方框应该有一张IPO图来描绘这个方框代表的处理过程 * 这个IPO对应前面H图的1.3 * * 方框:代表一个模块,框内注明模块名称或主要功能. 方框之间的箭头(直线)代表模块之间的调用关系 带注释的箭头表示模块间传递的信息 * 如图所示: 信息沿着输入通路进入系统,同时由外部形式变换成内部形式,通过变换处理,再沿输出通路变换成外部形式离开软件系统.当数据流图具有这种特征时,这种信息流就叫变换流 * 当数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这样的数据流叫事务流 * 变换分析: 把具有变换流特点的数据流图按预先确定的模式映射成软件结构 * 第一级分解: * 第二级分解: 把数据流图中的每个处理映射成软件结构中的一个适当模块 * 从事务的边界开始,把沿着接受流通路的处理映射成模块;从事务处理(发送分支)下的每个分支映射成发送分支下的模块 * A 方案:A要传递标志变量,B根据标志变量来决定是取平均成绩还是最高成绩,因此是功能耦合 B模块内部:二个逻辑相关但不同的功能放在一起是逻辑内聚 数据耦合:只存在数据的传递 * 1965年提出 结构化程序设计:顺序,选择,循环三种结构可以表达任意复杂的逻辑 1966年证明 可以取消GOTO * 采用二维树形结构来表示 图中最左边的竖线是程序的主线随着程序的层次增加,PAD图逐渐向右延伸。图中竖线的总条数就是程序的层数 Statement Index:语句标号 * * def k x2 d e 1 2 3 While x3 c 4.9 工具 x2 1 c Do-While x3 2 3 d e k : * * 特点: ① 结构清晰,层次分明,易读; ② 支持逐步求精的设计思想; ③ 容易将PAD自动转换为高级语言源程序。 4.9 工具 * 习题1 将下述伪码用流程图和N-S盒图表示 start if p then while q do f end do else block g h end block end if stop 开始 f q T F p T F g h 结束 * * N-S图 T F p q f g h start if p then while q do f end do else block g h end block end if stop * * 习题2 用PAD图描述下述算法:将数组A(1)到A(10) 用选择法进行大?小排序 输入A(1)到A(10)的值 置初始值:n=10 Sort * * Sort def i=1 while in A(i)=max i=i+1 j=i+1 max=A(i) while j=n j=j+1 maxA(j) max=A(j) T F 定义Sort A(j)=temp temp=max * * * 例:P.74 航空行李托运费的算法 按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。 4.9 工具 4、判定表 判定树(Decision Table Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应关系。 * * Rules Rule numbers ? Condition rows Action rows 4.9 工具 * * 行李费算法 行李重量W 30 行李重量W ? 30 免费 国内乘客 外国乘客 头等舱 其他舱 残疾乘客 正常乘客 (W-30) ? 2 (W-30) ? 4 残疾乘客 正常乘客 (W-30) ? 3 (W-30) ? 6 头等舱 其他舱 残疾乘客 正常乘客 (W-30) ? 4 (W-30) ? 8 残疾乘客 正常乘客 (W-30) ? 6 (W-30) ? 12 用判定树表示计算行李费的算法 注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试 4.9 工具 * * PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display
文档评论(0)