北京大学研究生软件工程课程第四章 结构化设计.ppt

上传人:京东小超市 文档编号:5878426 上传时间:2020-08-13 格式:PPT 页数:28 大小:499.50KB
返回 下载 相关 举报
北京大学研究生软件工程课程第四章 结构化设计.ppt_第1页
第1页 / 共28页
北京大学研究生软件工程课程第四章 结构化设计.ppt_第2页
第2页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《北京大学研究生软件工程课程第四章 结构化设计.ppt》由会员分享,可在线阅读,更多相关《北京大学研究生软件工程课程第四章 结构化设计.ppt(28页珍藏版)》请在三一文库上搜索。

1、要回答如何解决问题 即给出软件解决方案 1总体设计的任务:如何将DFD转化为MSD 分二步实现: 第一步:如何将DFD转化为初始的MSD 分类:变换型数据流图 事务型数据流图 变换设计 事务设计,第四章 结构化设计,须攀益釉耪舵柴膏灸串尉秉石湍奴腆哺磅馁零唱锄皆肯厂弘羚裂握香把笆北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,数据流图分类 变换型: 事务型,1,2,3,4,5,6,7,8,a,b,c,d,e,f,h,g,y,x,z,1,2,3,5,4,6,a,b,c,d,e,f,g,y,液祟芽惰涨策恭瑟畏煌氧良醒碟袖酥齿肠抑书匝窑岁烩脏珠褂曲雅翱反盏北

2、京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,变换设计,XX系统,变换模块,get e,put h,put g,get c,get d,c,d-e,e-f,f-g,h,h-y,put y,g-x,put x,x-z,put z,get a,get b,b-d,a-c,e,e,g,h,h,g,z,z,x,x,g,y,y,h,d,b,c,a,c,d,e,e,f,g,h,f,x,a,b,滔谱肿贡菩瓶财龋故碑硒皆伯竿屏轻栖汲搞汤灵蜂趾允晓虫缝玛担蓬鹃啥北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,事务设计,事务中心,

3、输入模块,路径1,路径2,输出模块,a,y,c,g,b,f,c-e,c,e,e-g,e,g,b-d,b,d,d-f,d,f,贼稳睬幸题烃蛙顷归酥吼拈酚膊遏诌迭熄奈灸墩拔乘惭羚秦肠吱军褂拒绢北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,3,4,6,8,2,5,7,9,A2,c,b,d,e,f,g,i,h,m,k,n,1,10,A1,x,一个系统的DFD,通常是变换型数据流图和事务型数据流 图的组合。如下所示:,胎宴严鸿澜库校虽迷腿寄签颁淘癸庇赋违染塌妙逢屎毫家察御牧妈同香胖北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结

4、构化设计,第二步:如何将初始的MSD转化为最终可供详 细设计使用的MSD 概念:模块 模块化 模块化度量:内聚 耦合 设计规则经验规则 精化初始的MSD 体现设计人员的创造,获密痕窗译韵冯梨侣广蔚珊嗜丘普峨慧捻羡赤吏斋埃多健嗜马夕傅逐焙染北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,1)耦合:不同模块之间相互依赖程度的度量。 耦合类型: (1)内容耦合: (2)公共耦合:两个以上的模块共同引用一个全局数据项。 (3)控制耦合:一个模块向另一模块传递一个控制信号, 接受信号的模块将依据该信号值进行必要的活动。 (4)标记耦合:两个模块至少有一个通过界面

5、传递的公共 有结构的参数。 (5)数据耦合:模块间通过参数传递基本类型的数据。,拳分悔震褐惑灰狠忽谜枣纪兴侵矢僧慧皿沿挎察鄂镊吴志黔韦吏绣宛澳叮北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,2)内聚:一个模块之内各成分之间相互依赖程度的度量。 内聚类型: (1)偶然内聚:一个模块之内各成分之间没有任何关系。 (2)逻辑内聚:几个逻辑上相关的功能放在同一模块中。 (3)时间内聚:一个模块完成的功能必须在同一时间内完成,而 这些功能只是因为时间因素关联在一起。 (4)过程内聚:处理成分必须以特定的次序执行。 (5)通信内聚:各成分都操作在同一数据集或生成

6、同一数据集。 (6)顺序内聚:各成分与一个功能相关,且一个成分的输出作为 另一成分的输入。 (7)功能内聚:模块的所有成分对完成单一功能是最基本的,且 该模块对完成这一功能而言是充分必要的。,寨沁蹦羞蔫莫巧嘱唆嚷氏扛纲勃矣提涩置极首明取沤慌物冬雾舅狭潦间旋北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,启发性规则-经验的总结 (1)改进软件结构,提高模块独立性; (2)模块规模适中-每页60行语句; (3)深度、宽度、扇入和扇出适中; (4)模块的作用域力争在控制域之内; (5)降低模块接口的复杂性; (6)模块功能应该可以预测。,表绿仑侵工益用眺监舰

7、举疹涡屈实洪窜皱杨员嘿愉折魄梢弟快仁虞帖摆英北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,示例:数字仪表板系统的精化,读旋转信号,收集并 求平均,转换成 转/分,计算 gph,读并 校核,确定 加速/减速,计算里程,计算mph 和超速值,计算 燃料消耗,产生 加速/减速显示,产生 里程显示,发出 铃声,产生 mph显示,产生 mpg显示,旋转信号,信号/秒,(sps),sps,燃烧流 传感器信号,燃烧流,gph,sps,rpm,rpm,箭头指示,上箭头,下箭头,水平线,英里,超速值,mph,mpg,mpg显示,mph显示,铃声,里程显示,惟筛奎惩委伍

8、痰噎毡疆齿拷耙殉代份舔振拙斑赁叶别袜巫鳖虹宅丝跪刁眷北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,输入部分,Get gph,Get rpm,Get sps,Get 燃料流,变换燃料流为 ghp,Get 燃转信号,变换燃转信 号为燃料流,变换sps为 rpm,Get sps,Get sps,转换为 sps,Get 转速信号,变换为sps,变换为 sps,1、 数字仪表板系统输入部分的精化 输入部分的初始模块结构图,转速信号,燃料流,燃料流,燃料流,gph,sps,sps,rpm,sps,rpm,gph,sps,sps,sps,sps,sps,sps,s

9、ps,转速信号,转速信号,肢诧孩第哆松伟罕媳烙章菌疹哆疮胖沪壶熙犁寥授残疽播产骂盂瞳邮彝蘑北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,输入部分,计算gph,计算rpm,计算 sps,读燃转信号,采集sps,读转速信号,使用启发式规则1,并考虑其它规则, 可以将输入部分的模块结构图精化为:,其中:sps为转速的每秒信号量;sps 为sps的平均值; sps为sps的瞬时 变化值;rpm为每分钟转速;mph为每小时英里数;gph为每小时燃烧 的燃料加仑数;rpm为行进里程。,淡典岳栗梧逞髓陨论去匙赐奋愤作狱赞明寇蠕杀逢兔拯竿址宜赵稗呕电屿北京大学研究生

10、软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,输出部分,PUT mpg,PUT mph,PUT里程,PUT 加/减速,PUT 超速量,显示,显示,显示,2、 数字仪表板系统输出部分的精化 输出部分的初始模块结构图,显示,显示,变换,变换,变换,变换,变换,汐趣稽憋棒丽靠晚痰烈宗此跳藻戳酋慌棕昔朔镰裹保夺凿器幻挟隘剂簿瓦北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,对于这一初始的模块结构图,一般情况下应: 把相同或类似的物理输出合并为一个模块,以减少模块之间的关联。就本例而言: 左边前三个“显示”,基本上属于相似的物理输出

11、,因此可以把它们合并为一个显示模块。而将“PUT mpg”模块和相关的“生成显示的模块合并为一个模块;同样地,应把“PUT mph”模块、“PUT里程”各自与相关的生成显示的模块合并为一个模块,参见下图。 其它求精的规则,与输入部分类同。例如,可以将“PUT 加/减速”模块与其下属的两个模块合并为一个模块,将“PUT 超速量”模块与其下属的两个模块合并为一个模块 。,佳取浆岔糯瞅拉棱系涯无泅邱荣屏冬孔视喇娟疏咯葫万哇岂寐舆凿劳乃共北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,输出模块,生成mpg 显示,生成mph 显示,生成里程 显示,生成加/减速显

12、示,生成蜂鸣,显示,通过以上求精之后,可得如下的模块结构图,饼嘛皿卉谣獭盒奢寸寅暇丧塔柔汪旱某奔闽矿进兹婶壳碴捐腔厘饺滴嘿喳北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,变换模块,计算mpg,计算mph,计算里程,计算加/减速,3、变换部分的精化 1)首先,应该了解:对于变换部分的求精,是一项具有挑战性的工作。其中主要是根据设计准则,并要通过实践,不断地总结经验,才能设计出合理的模块结构。 2)就给定的数字仪表板系统而言,如果把“确定加/减速”的模块放在“计算速度mph”模块下面,则可以减少模块之间的关联,提高模块的独立性。 通过这一求精,可以得到如

13、下的模块结构图:,涡莽铝洞君绅汲离却鳃判确峡咋析蠕挨虱揽斟犬磊收喇奥谣做凉臃划揩滤北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,通过以上讨论,可以看出:在总体设计中 (1)将一个给定的DFD转换为初始的模块结构图基本 上是一个 “机械”的过程,一般体现不了设计人员的创 造力; (2)优化设计-将一个初始的模块结构图转换为最终 的模块结构图,对设计人员将是一种挑战,其结果将 直接影响软件系统开发的质量。,觉鸦藕炕呼脚础嵌造逼弊艇惹喊彪叫塌鸿同如渍为去扼师关播狸惰爽暗雇北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设

14、计,总体设计小结: 1、总体设计的目标和任务; 2、总体设计的表示:层次图,HIPO图,模块结构图; 3、基本概念:模块,以及由此产生的“鸿沟”; 4、总体设计的基本思想与步骤: 通过:变换设计和事务设计 DFD-初始的MSD (几乎可“机械”地进行) 使用:启发式规则 初始的MSD-MSD (体现设计人员的创造),骑睡晤秒芳朗熊琳鼓宁棋凛磐躯料丸窘抨尽叼剖狸牲仔辑榆谈燥昆然挂解北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,2详细设计的任务:定义每一模块 结构化程序设计 三种控制结构:顺序 begin s1;s2;sn end; 选择 if 条件表达

15、式 then s1 else s2; 循环 while 条件表达式 do s ;,七承尺父恨连睫爸氓删泉鲍裤窘筐趣炽耕游赁攒喀须溺饱喜婴乘三磁货仪北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,几种表示工具 流程图、PAD、NS图、伪码等 1)框图,s1,s2,s1,s2,. . .,s,财摆隶恕叁魁听回粉豪比鼎砷锦茎荆锡叭昔箭眷求嫂洼搜粪裳拒果综剃烧北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,2)伪码 伪码是一种混合语言。外部采用形式语言的 控制结构,内部使用自然语言。 Begin 输入一元二次方程的系数

16、a,b,c; if b2-4aco then 计算两实根 else 输出无实根; end.,擅告最芯换锥押烙扁格裔扛让讽舆鹤叮够印薯梭柯奴宣潘散脐铁做蹿恕儡北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,3)PAD图,S1,S2,S3,S1,S2,X5 X5,S,顺序: 选择 : 循环:,注:支持逐步求精设计,捌踌杯剩逼饵激绦拼菏备芭蓟荐鹰瘁骆疆薄杖汹庄儒戍黑参望辱酷描墟叠北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,3)N-S图,支持逐步求精设计举例,顺序: 选择 : 循环:,条件,F,T,S1,S2,循环

17、条件,循环体,N:=110,X5,T,F,F,T,S1,S2,S3,S4,S5,S6,S8,S7,S9,S10,X10&Y3,煌闹酥抡获扇厚钨擅屎踪中底瘟谋铅漫爷俯横断隔汲靡贼邓瞅综摹连鞋鲍北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,1、结构化方法是一种比较系统的软件开发方法学。 包括:结构化分析和结构化设计 2、紧紧围绕“过程抽象”和“数据抽象”, 给出了 完备的符号体系 -概念与表示 可操作的过程 -步骤与准则 易理解的表示工具 提供了 控制信息组织复杂性的机制,例如 逐层分解,数据打包等,结构化方法小结,鹤蘸棕驹袋聪璃幅撤淋碑字状傻虱婴漏涉苟

18、沤淖姜拖顾严敝似铂攘婚庄育北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,3、问题:捕获的“过程”和“数据” 恰恰是客观事物的易变性质, 解的结构也不保持原系统的结构, 从而:造成 维护,验证上的困难。,A,B1,B2,B3,B4,C2,C3,C4,C5,C1,Dn,Dm,数据结构1,数据结构2,畅崩潦笋谁堤象蚁妆刊尘溅毙吊臻剂嗣斑迈芭胁艺嘿煎藐响捂娱忘鉴茧曾北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,概念 软件方法学以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法

19、和技术。狭义的也指某种特定的软件设计指导原则和方法体系。 从构造的角度,软件开发方法学主要由三部分组成 NOTATION PROCESS TOOLS,嘘紊也暴二决码先非腊孜曲路晕迁场基拖阳医歪申魁贱肤汪挎战疙舟赫末北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,从能力的角度,软件开发方法学应能表达: 系统的说明性信息 系统的行为信息 系统的功能信息,并要给出以下机制: 控制信息组织复杂性 控制文档组织复杂性,恿裳苯羌弄谰与葡渣烩匠扔笆虎崭辈酚樱届贼际炯价狼固思红外酮内爸炯北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构

20、化设计,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) 实践,捕盗杂惮睬旷芽概绑咸奇漳喜桓患渔肠供猫勉贾桂鲤讶蝇乾硝涂昏配辊验北京大学研究生软件工程课程第四章 结构化设计北京大学研究生软件工程课程第四章 结构化设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1