最新北京大学研究生软件工程课程第四章结构化设计幻灯片

上传人:s9****2 文档编号:570510884 上传时间:2024-08-04 格式:PPT 页数:29 大小:864.50KB
返回 下载 相关 举报
最新北京大学研究生软件工程课程第四章结构化设计幻灯片_第1页
第1页 / 共29页
最新北京大学研究生软件工程课程第四章结构化设计幻灯片_第2页
第2页 / 共29页
最新北京大学研究生软件工程课程第四章结构化设计幻灯片_第3页
第3页 / 共29页
最新北京大学研究生软件工程课程第四章结构化设计幻灯片_第4页
第4页 / 共29页
最新北京大学研究生软件工程课程第四章结构化设计幻灯片_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《最新北京大学研究生软件工程课程第四章结构化设计幻灯片》由会员分享,可在线阅读,更多相关《最新北京大学研究生软件工程课程第四章结构化设计幻灯片(29页珍藏版)》请在金锄头文库上搜索。

1、北京大学研究生软件工程课程第北京大学研究生软件工程课程第四章四章 结构化设计结构化设计 数据流图分类数据流图分类变换型变换型: :事务型事务型12345678abcdefhgyxz123546abcdefgy启发性规则启发性规则- -经验的总结经验的总结(1 1)改进软件结构,提高模块独立性;)改进软件结构,提高模块独立性;(2 2)模块规模适中)模块规模适中- -每页每页6060行语句;行语句;(3 3)深度、宽度、扇入和扇出适中;)深度、宽度、扇入和扇出适中;(4 4)模块的作用域力争在控制域之内;)模块的作用域力争在控制域之内;(5 5)降低模块接口的复杂性;)降低模块接口的复杂性;(6

2、 6)模块功能应该可以预测。)模块功能应该可以预测。示例:数字仪表板系统的精化示例:数字仪表板系统的精化读旋转信号读旋转信号收集并收集并求平均求平均转换成转换成转转/分分计算计算gph读并读并校核校核确定确定加速加速/减速减速计算里程计算里程计算计算mph和超速值和超速值计算计算燃料消耗燃料消耗产生产生加速加速/减速显示减速显示产生产生里程显示里程显示发出发出铃声铃声产生产生mph显示显示产生产生mpg显示显示旋转信号旋转信号信号信号/秒秒(sps)sps燃烧流燃烧流传感器信号传感器信号燃烧流燃烧流gphspsrpmrpm箭头指示箭头指示上箭头上箭头下箭头下箭头水平线水平线英里英里超速值超速值

3、mphmpgmpg显示显示mph显示显示铃声铃声里程显示里程显示输入部分输入部分GetgphGetrpmGetspsGet燃料流燃料流变换燃料变换燃料流为流为ghpGet燃转信号燃转信号变换燃转信变换燃转信号为燃料流号为燃料流变换变换sps为为rpmGetspsGetsps转换为转换为spsGet转速信号转速信号变换为变换为sps变换为变换为sps1、数字仪表板系统输入部分的精化数字仪表板系统输入部分的精化输入部分的初始模块结构图输入部分的初始模块结构图转速信号转速信号燃料流燃料流燃料流燃料流燃料流燃料流gphspsspsrpmspsrpmgphspsspsspsspsspsspssps转速信

4、号转速信号转速信号转速信号输入部分输入部分计算计算gph计算计算rpm计算计算sps读燃转信号读燃转信号采集采集sps读转速信号读转速信号使用启发式规则使用启发式规则1 1,并考虑其它规则,并考虑其它规则, 可以将输入部分的模块结构图精化为:可以将输入部分的模块结构图精化为:其中:其中:sps为转速的每秒信号量;为转速的每秒信号量;sps为为sps的平均值;的平均值;sps为为sps的瞬时的瞬时变化值;变化值;rpm为每分钟转速;为每分钟转速;mph为每小时英里数;为每小时英里数;gph为每小时燃烧为每小时燃烧的燃料加仑数;的燃料加仑数;rpm为行进里程。为行进里程。输出部分输出部分PUTmp

5、gPUTmphPUT里程里程PUT加加/减速减速PUT超速量超速量显示显示显示显示显示显示2、数字仪表板系统输出部分的精化数字仪表板系统输出部分的精化输出部分的初始模块结构图输出部分的初始模块结构图显示显示显示显示变换变换变换变换变换变换变换变换变换变换对于这一初始的模块结构图,一般情况下应:对于这一初始的模块结构图,一般情况下应: 把把相相同同或或类类似似的的物物理理输输出出合合并并为为一一个个模模块块,以以减减少少模模块块之间的关联。就本例而言:之间的关联。就本例而言:左左边边前前三三个个“显显示示”,基基本本上上属属于于相相似似的的物物理理输输出出,因因此此可可以以把把它它们们合合并并为

6、为一一个个显显示示模模块块。而而将将“PUT PUT mpgmpg”模模块块和和相相关关的的“生生成成显显示示的的模模块块合合并并为为一一个个模模块块;同同样样地地,应应把把“PUT PUT mphmph”模模块块、“PUTPUT里里程程”各各自自与与相相关关的的生生成成显显示示的的模模块合并为一个模块,参见下图。块合并为一个模块,参见下图。 其其它它求求精精的的规规则则,与与输输入入部部分分类类同同。例例如如,可可以以将将“PUT PUT 加加/ /减减速速”模模块块与与其其下下属属的的两两个个模模块块合合并并为为一一个个模模块块,将将“PUT PUT 超超速速量量”模模块块与与其其下下属属

7、的的两两个个模模块块合合并并为为一一个个模模块块 。 输出模块输出模块生成生成mpg显示显示生成生成mph显示显示生成里程生成里程显示显示生成加生成加/减速显示减速显示生成蜂鸣生成蜂鸣显示显示通过以上求精之后通过以上求精之后, ,可得如下可得如下的模块结构图的模块结构图变换模块变换模块计算计算mpg计算计算mph计算里程计算里程计算加计算加/减速减速3、变换部分的精化、变换部分的精化1 1)首首先先,应应该该了了解解:对对于于变变换换部部分分的的求求精精,是是一一项项具具有有挑挑战战性性的的工工作作。其其中中主主要要是是根根据据设设计计准准则则,并并要要通通过过实践,不断地总结经验,才能设计出

8、合理的模块结构。实践,不断地总结经验,才能设计出合理的模块结构。2 2)就就给给定定的的数数字字仪仪表表板板系系统统而而言言,如如果果把把“确确定定加加/ /减减速速”的的模模块块放放在在“计计算算速速度度mphmph”模模块块下下面面,则则可可以以减减少模块之间的关联,提高模块的独立性。少模块之间的关联,提高模块的独立性。通过这一求精,可以得到如下的模块结构图:通过这一求精,可以得到如下的模块结构图:通过以上讨论,可以看出:在总体设计中通过以上讨论,可以看出:在总体设计中(1 1)将一个给定的)将一个给定的DFDDFD转换为初始的模块结构图基本转换为初始的模块结构图基本上是一个上是一个 “机

9、械机械”的过程,一般体现不了设计人员的创的过程,一般体现不了设计人员的创造力;造力;(2 2)优化设计)优化设计- -将一个初始的模块结构图转换为最终将一个初始的模块结构图转换为最终的模块结构图,对设计人员将是一种挑战,其结果将的模块结构图,对设计人员将是一种挑战,其结果将直接影响软件系统开发的质量。直接影响软件系统开发的质量。 总体设计小结:总体设计小结: 1 1、总体设计的目标和任务;、总体设计的目标和任务; 2 2、总体设计的表示:层次图,、总体设计的表示:层次图,HIPOHIPO图,模块结构图;图,模块结构图; 3 3、基本概念:模块,以及由此产生的、基本概念:模块,以及由此产生的“鸿

10、沟鸿沟”; 4 4、总体设计的基本思想与步骤:、总体设计的基本思想与步骤: 通过:变换设计和事务设计通过:变换设计和事务设计 DFD-DFD-初始的初始的MSD MSD (几乎可(几乎可“机械机械”地进行)地进行) 使用:启发式规则使用:启发式规则 初始的初始的MSD-MSD-MSD MSD (体现设计人员的创造)(体现设计人员的创造)2 2详细设计的任务:定义每一模块详细设计的任务:定义每一模块 结构化程序设计结构化程序设计三种控制结构三种控制结构:顺序顺序begins1;s2;snend;选择选择if条件表达式条件表达式thens1elses2;循环循环while条件表达式条件表达式dos

11、;几种表示工具几种表示工具 流程图、流程图、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 5X5TFFTS1S2S3S

12、4S5S6S8S7S9S10X10&Y31、结构化方法是一种比较系统的软件开发方法学。、结构化方法是一种比较系统的软件开发方法学。包括:结构化分析和结构化设计包括:结构化分析和结构化设计2、紧紧围绕、紧紧围绕“过程抽象过程抽象”和和“数据抽象数据抽象”,给出了给出了完备的符号体系完备的符号体系-概念与表示概念与表示可操作的过程可操作的过程-步骤与准则步骤与准则易理解的表示工具易理解的表示工具提供了提供了控制信息组织复杂性的机制,例如控制信息组织复杂性的机制,例如逐层分解,数据打包等逐层分解,数据打包等 结构化方法小结结构化方法小结3、问题:捕获的、问题:捕获的“过程过程”和和“数据数据”恰恰是

13、客观事物的易变性质,恰恰是客观事物的易变性质,解的结构也不保持原系统的结构,解的结构也不保持原系统的结构,从而:造成从而:造成维护,验证上的困难。维护,验证上的困难。AB1B2B3B4C2C3C4C5C1DnDm数据结构数据结构1数据结构数据结构2概念概念软件方法学以软件方法为研究对象的学科。软件方法学以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的也指某种特定些原理、原则的方法和技术。狭义的也指某种特定的软件设计指导原则和方法体系。的软件设计指导原则和方法体系。从构造的角度,软件开发方法学主要

14、由三部分组从构造的角度,软件开发方法学主要由三部分组成成NOTATIONNOTATION PROCESSPROCESS TOOLSTOOLS从能力的角度,软件开发方法学应能表达:从能力的角度,软件开发方法学应能表达:系统的说明性信息系统的说明性信息 系统的行为信息系统的行为信息 系统的功能信息,并要给出以下机制:系统的功能信息,并要给出以下机制: 控制信息组织复杂性控制信息组织复杂性 控制文档组织复杂性控制文档组织复杂性5、学习、掌握、运用系统建模技术的基本、学习、掌握、运用系统建模技术的基本“技巧技巧”:1)知识)知识知识知识= =概念概念+ +关系关系+ +条件条件/ /过程过程2)建模)

15、建模建模建模= =(实际事物(实际事物概念)概念)+ +表示表示( (形式化或半形式化符号形式化或半形式化符号) )抽象:关注一个事物的重要的或主要方面,而忽略或去掉不重抽象:关注一个事物的重要的或主要方面,而忽略或去掉不重要的或没意义的细节。要的或没意义的细节。其中,就软件开发而言,其中,就软件开发而言, 根据当前情况和需要,应以细节的不同层次来观察问题;根据当前情况和需要,应以细节的不同层次来观察问题; 控制复杂性,并考虑正确性、可维护性、可复用性和可理解性等。控制复杂性,并考虑正确性、可维护性、可复用性和可理解性等。模型:模型:anyabstractionthatincludesallessentialcapabilities,properties,oraspectsofwhatisbeingmodeledwithoutanyextraneousdetails.Firesmith,Henderson-Sellers3)实践实践结束语结束语谢谢大家聆听!谢谢大家聆听!29

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号