最新北京大学研究生软件工程课程第四章 结构化设计幻灯片.ppt
-
资源ID:26321600
资源大小:864.50KB
全文页数:29页
- 资源格式: PPT
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
最新北京大学研究生软件工程课程第四章 结构化设计幻灯片.ppt
数据流图分类数据流图分类变换型变换型: :事务型事务型12345678abcdefhgyxz123546abcdefgy启发性规则启发性规则- -经验的总结经验的总结(1 1)改进软件结构,提高模块独立性;)改进软件结构,提高模块独立性;(2 2)模块规模适中)模块规模适中- -每页每页6060行语句;行语句;(3 3)深度、宽度、扇入和扇出适中;)深度、宽度、扇入和扇出适中;(4 4)模块的作用域力争在控制域之内;)模块的作用域力争在控制域之内;(5 5)降低模块接口的复杂性;)降低模块接口的复杂性;(6 6)模块功能应该可以预测。)模块功能应该可以预测。示例:数字仪表板系统的精化示例:数字仪表板系统的精化读旋转信号读旋转信号收集并收集并求平均求平均转换成转换成转转/分分计算计算gph读并读并校核校核 确定确定加速加速/减速减速计算里程计算里程计算计算mph和超速值和超速值 计算计算燃料消耗燃料消耗 产生产生加速加速/减速显示减速显示 产生产生里程显示里程显示发出发出铃声铃声 产生产生mph显示显示 产生产生mpg显示显示 旋转信号旋转信号 信号信号/秒秒 (sps) sps 燃烧流燃烧流传感器信号传感器信号 燃烧流燃烧流gph sps rpm rpm 箭头指示箭头指示 上箭头上箭头 下箭头下箭头 水平线水平线 英里英里 超速值超速值 mph mpgmpg显示显示 mph显示显示 铃声铃声里程显示里程显示输入部分输入部分Get gphGet rpmGet spsGet 燃料流燃料流变换燃料变换燃料流为流为 ghp Get 燃转信号燃转信号变换燃转信变换燃转信号为燃料流号为燃料流变换变换sps为为rpmGet spsGet sps转换为转换为 sps Get转速信号转速信号变换为变换为sps变换为变换为 sps 1、 数字仪表板系统输入部分的精化数字仪表板系统输入部分的精化 输入部分的初始模块结构图输入部分的初始模块结构图转速信号转速信号燃料流燃料流燃料流燃料流燃料流燃料流gphspsspsrpm spsrpm gphspsspsspsspssps spssps转速信号转速信号转速信号转速信号输入部分输入部分计算计算gph计算计算rpm计算计算 sps读燃转信号读燃转信号采集采集sps读转速信号读转速信号 使用启发式规则使用启发式规则1 1,并考虑其它规则,并考虑其它规则, 可以将输入部分的模块结构图精化为:可以将输入部分的模块结构图精化为:其中:其中:sps为转速的每秒信号量;为转速的每秒信号量;sps 为为sps的平均值;的平均值; sps为为sps的瞬时的瞬时变化值;变化值;rpm为每分钟转速;为每分钟转速;mph为每小时英里数;为每小时英里数;gph为每小时燃烧为每小时燃烧的燃料加仑数;的燃料加仑数;rpm为行进里程。为行进里程。输出部分输出部分PUT mpgPUT mphPUT里程里程PUT 加加/减速减速PUT 超速量超速量显示显示显示显示显示显示2、 数字仪表板系统输出部分的精化数字仪表板系统输出部分的精化 输出部分的初始模块结构图输出部分的初始模块结构图 显示显示显示显示变换变换变换变换变换变换变换变换变换变换对于这一初始的模块结构图,一般情况下应:对于这一初始的模块结构图,一般情况下应: 把相同或类似的物理输出合并为一个模块,以减少模块之把相同或类似的物理输出合并为一个模块,以减少模块之间的关联。就本例而言:间的关联。就本例而言:左边前三个左边前三个“显示显示”,基本上属于相似的物理输出,因此可,基本上属于相似的物理输出,因此可以把它们合并为一个显示模块。而将以把它们合并为一个显示模块。而将“PUT mpgPUT mpg”模块和相关模块和相关的的“生成显示生成显示的模块合并为一个模块;同样地,应把的模块合并为一个模块;同样地,应把“PUT mphPUT mph”模块、模块、“PUTPUT里程里程”各自与相关的生成显示的模各自与相关的生成显示的模块合并为一个模块,参见下图。块合并为一个模块,参见下图。 其它求精的规则,与输入部分类同。例如,可以将其它求精的规则,与输入部分类同。例如,可以将“PUT PUT 加加/ /减速减速”模块与其下属的两个模块合并为一个模块,将模块与其下属的两个模块合并为一个模块,将“PUT PUT 超速量超速量”模块与其下属的两个模块合并为一个模块模块与其下属的两个模块合并为一个模块 。 输出模块输出模块生成生成mpg显示显示生成生成mph显示显示生成里程生成里程显示显示生成加生成加/减速显示减速显示生成蜂鸣生成蜂鸣显示显示 通过以上求精之后通过以上求精之后, ,可得如下可得如下的模块结构图的模块结构图 变换模块变换模块计算计算mpg计算计算mph计算里程计算里程计算加计算加/减速减速 3、变换部分的精化、变换部分的精化1 1)首先,应该了解:对于变换部分的求精,是一)首先,应该了解:对于变换部分的求精,是一项具有挑战性的工作。其中主要是根据设计准则,并要通过项具有挑战性的工作。其中主要是根据设计准则,并要通过实践,不断地总结经验,才能设计出合理的模块结构。实践,不断地总结经验,才能设计出合理的模块结构。2 2)就给定的数字仪表板系统而言,如果把)就给定的数字仪表板系统而言,如果把“确定确定加加/ /减速减速”的模块放在的模块放在“计算速度计算速度mphmph”模块下面,则可以减模块下面,则可以减少模块之间的关联,提高模块的独立性。少模块之间的关联,提高模块的独立性。通过这一求精,可以得到如下的模块结构图:通过这一求精,可以得到如下的模块结构图: 通过以上讨论,可以看出:在总体设计中通过以上讨论,可以看出:在总体设计中(1 1)将一个给定的)将一个给定的DFDDFD转换为初始的模块结构图基本转换为初始的模块结构图基本上是一个上是一个 “机械机械”的过程,一般体现不了设计人员的创的过程,一般体现不了设计人员的创造力;造力;(2 2)优化设计)优化设计- -将一个初始的模块结构图转换为最终将一个初始的模块结构图转换为最终的模块结构图,对设计人员将是一种挑战,其结果将的模块结构图,对设计人员将是一种挑战,其结果将直接影响软件系统开发的质量。直接影响软件系统开发的质量。 总体设计小结:总体设计小结: 1 1、总体设计的目标和任务;、总体设计的目标和任务; 2 2、总体设计的表示:层次图,、总体设计的表示:层次图,HIPOHIPO图,模块结构图;图,模块结构图; 3 3、基本概念:模块,以及由此产生的、基本概念:模块,以及由此产生的“鸿沟鸿沟”; 4 4、总体设计的基本思想与步骤:、总体设计的基本思想与步骤: 通过:变换设计和事务设计通过:变换设计和事务设计 DFD-DFD-初始的初始的MSD MSD (几乎可(几乎可“机械机械”地进行)地进行) 使用:启发式规则使用:启发式规则 初始的初始的MSD-MSD-MSD MSD (体现设计人员的创造)(体现设计人员的创造)2 2详细设计的任务:定义每一模块详细设计的任务:定义每一模块 结构化程序设计结构化程序设计 三种控制结构三种控制结构:顺序顺序 begin s1;s2;sn end; 选择选择 if 条件表达式条件表达式 then s1 else s2; 循环循环 while 条件表达式条件表达式 do s ;几种表示工具几种表示工具 流程图、流程图、PADPAD、N NS S图、伪码等图、伪码等 1)1)框图框图s1s2s1s2.s2)2)伪码伪码 伪码是一种混合语言。外部采用形式语言的伪码是一种混合语言。外部采用形式语言的控制结构,内部使用自然语言。控制结构,内部使用自然语言。 BeginBegin 输入一元二次方程的系数输入一元二次方程的系数a,b,c;a,b,c; if b if b 2-4ac2-4ac o then o then 计算两实根计算两实根 else else 输出无实根;输出无实根; end.end.3)PAD3)PAD图图S1S2S3S1S2X 5X5TFFTS1S2S3S4S5S6S8S7S9S10 X10&Y31、结构化方法是一种比较系统的软件开发方法学。、结构化方法是一种比较系统的软件开发方法学。 包括:结构化分析和结构化设计包括:结构化分析和结构化设计2、紧紧围绕、紧紧围绕“过程抽象过程抽象”和和“数据抽象数据抽象”, 给出了给出了 完备的符号体系完备的符号体系 -概念与表示概念与表示 可操作的过程可操作的过程 -步骤与准则步骤与准则 易理解的表示工具易理解的表示工具 提供了提供了 控制信息组织复杂性的机制,例如控制信息组织复杂性的机制,例如 逐层分解,数据打包等逐层分解,数据打包等 结构化方法小结结构化方法小结3、问题:捕获的、问题:捕获的“过程过程”和和“数据数据” 恰恰是客观事物的易变性质,恰恰是客观事物的易变性质, 解的结构也不保持原系统的结构,解的结构也不保持原系统的结构, 从而:造成从而:造成 维护,验证上的困难。维护,验证上的困难。 A B1 B2 B3 B4 C2 C3 C4 C5 C1 Dn Dm数据结构数据结构1数据结构数据结构2 概念概念 软件方法学以软件方法为研究对象的学科。软件方法学以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的也指某种特定些原理、原则的方法和技术。狭义的也指某种特定的软件设计指导原则和方法体系。的软件设计指导原则和方法体系。 从构造的角度,软件开发方法学主要由三部分从构造的角度,软件开发方法学主要由三部分组成组成 NOTATIONNOTATION PROCESSPROCESS TOOLSTOOLS从能力的角度,软件开发方法学应能表达:从能力的角度,软件开发方法学应能表达: 系统的说明性信息系统的说明性信息 系统的行为信息系统的行为信息 系统的功能信息,并要给出以下机制:系统的功能信息,并要给出以下机制: 控制信息组织复杂性控制信息组织复杂性 控制文档组织复杂性控制文档组织复杂性5、学习、掌握、运用系统建模技术的基本、学习、掌握、运用系统建模技术的基本“技巧技巧”: 1)知识)知识 知识知识= =概念概念+ +关系关系+ +条件条件/ /过程过程 2)建模)建模 建模建模= =(实际事物(实际事物概念)概念)+ +表示表示( (形式化或半形式化符号形式化或半形式化符号) ) 抽象:关注一个事物的重要的或主要方面,而忽略或去掉不重抽象:关注一个事物的重要的或主要方面,而忽略或去掉不重 要的或没意义的细节。要的或没意义的细节。 其中,就软件开发而言,其中,就软件开发而言, 根据当前情况和需要,应以细节的不同层次来观察问题;根据当前情况和需要,应以细节的不同层次来观察问题; 控制复杂性,并考虑正确性、可维护性、可复用性和可理解性等。控制复杂性,并考虑正确性、可维护性、可复用性和可理解性等。 模型:模型:any abstraction that includes all essential capabilities, properties,or aspects of what is being modeled without any extraneous details.Firesmith,Henderson-Sellers 3) 实践实践29 结束语结束语