[软件工程]CH4概要设计课件.ppt

上传人:小飞机 文档编号:1802194 上传时间:2022-12-19 格式:PPT 页数:162 大小:6.20MB
返回 下载 相关 举报
[软件工程]CH4概要设计课件.ppt_第1页
第1页 / 共162页
[软件工程]CH4概要设计课件.ppt_第2页
第2页 / 共162页
[软件工程]CH4概要设计课件.ppt_第3页
第3页 / 共162页
[软件工程]CH4概要设计课件.ppt_第4页
第4页 / 共162页
[软件工程]CH4概要设计课件.ppt_第5页
第5页 / 共162页
点击查看更多>>
资源描述

《[软件工程]CH4概要设计课件.ppt》由会员分享,可在线阅读,更多相关《[软件工程]CH4概要设计课件.ppt(162页珍藏版)》请在三一办公上搜索。

1、19.12.2022,1,第四章 概要设计,主要内容4.1 任务4.2 软件结构设计及优化4.3 图形工具4.4 结构化设计(方法)4.5 数据结构设计,19.12.2022,2,4.1概要设计的任务,【起点】需求分析阶段得出的DFD图,数据字典【任务】从需求分析阶段的工作结果出发,进行软件结构设计与数据设计,编写概要设计说明书。软件结构设计(是概要设计阶段的主要工作)系统中每个程序由哪些模块组成以及这些模块间的关系数据设计将分析阶段创建的信息模型(数据字典)转换为实现系统所需要的数据结构,19.12.2022,3,4.1概要设计的任务,【方案选择】分析员应该综合分析对比各种合理方案的利弊,推

2、荐一个最佳的方案,并且为推荐的方案制定详细的实现计划通常至少选取低成本、中等成本及高成本的三种方案,19.12.2022,4,4.2软件结构设计及优化,【结构设计的任务】建立良好的模块功能结构确定模块、模块间的关系【主要内容】4.2.1 模块和模块化4.2.2 软件结构风格4.2.3 耦合与内聚4.2.4 好的软件设计特性,19.12.2022,5,4.2.1 模块和模块化,【1、模块】数据说明、可执行语句等程序对象的集合。单独命名且可通过名字来访问如表单(Form、窗口)、过程、函数等。【基本属性】功能:描述该模块实现的功能;状态:该模块使用时的环境和条件;逻辑:描述模块内部怎么做;【内部特

3、性、外部特性】内部特性是指完成其功能的程序代码和仅供该模块内部使用的数据外部特性是指模块名和参数表(输入参数、输出参数),以及对程序及整个系统造成的影响,使用黑盒子的概念,站在较高的层次上进行思维,从而避免过早地陷入具体的条件逻辑、算法和过程步等实现细节,19.12.2022,6,4.2.1 模块和模块化,【2、模块化】把系统划分成若干个模块,每个模块完成一个子功能,模块既独立且相互之间又有一定的联系,把他们组成一个有机的整体,完成指定的功能。高层模块隐蔽了细节,能够从整体上把握问题需要时,可以深入较低层次以了解进一步的细节,模块化是软件结构设计的一个基本准则,19.12.2022,7,Net

4、scape公司的故事1/3,对于PC软件,有一个神话讲:设计不是很重要,因为市场是随着时间改变的。在这方面Netscape公司的倒闭是一个值得深思的故事。 最初Illinois大学的NCSA Mosaic小组开发了第一个广泛使用的浏览器。他们创建了Netscape公司,在1994年4月到12月之间发行了Netscape1.0,它可以在3个平台上运行,很快就成为了Windows、Unix和Mac上的占有统治地位的浏览器。Microsoft公司于1994年10月开始开发Internet Explorer1.0,并在1995年绑定在Windows 95上。,19.12.2022,8,Netscape

5、公司的故事2/3,从1995年到1997年,在Netscape公司的快速发展期间,开发者努力工作来产生新的特点,而很少花时间进行设计。Microsoft公司意识到了需要建立可靠的设计,它使用共享组件重构Office套装,建立了NT操作系统, 并花费了时间来重构IE3.0。拉近了与Netscape的差距。 Netscape的开发在继续。通过Communicator 4.0 ,已有120个开发者(从最初的10个)和3百万行代码。Michael Toy(开发经理)说道: “我们处于一个很坏的情形下我们应该在一年前就停住绑定这些代码。这是死的这就像被粗鲁地唤醒我们为走得太快而付出了代价。”,19.12

6、.2022,9,Netscape公司的故事3/3,1997年Netscape公司内部关于模块设计的争论Netscape用了2个月来重新设计浏览器,但是这还不够长。Mozzila5.0版本作为开源发布,但是这也毫无帮助:没有人想在类似意大利细面条似的代码上进行工作。最后,Microsoft赢得了浏览器的战争,AOL收购了Netscape。当然,这不是Microsoft浏览器战胜Netscape浏览器的全部故事。,19.12.2022,10,资本市场,供应市场,协同供应,协同计划,协同设计,供应链管理,协同服务,协同销售,客户关系管理,协同市场,投资者关系管理,战略目标管理,管理驾驶舱,企业绩效管

7、理,财务管理,财务会计,管理会计,税务会计,资金管理,计划管理,车间管理,质量管理,设备管理,人力资源管理,人事管理,薪酬管理,招聘培训,绩效管理,办公自动化,知识管理,信息门户,内容管理,采购管理,制造管理,物流管理,仓存管理,销售管理,分销管理,采购管理,消费市场,知识市场,例:金蝶K/3 ERP系统的结构,19.12.2022,11,K/3模块配置,行业应用配置,应用集成配置,19.12.2022,12,选课管理,考试报名,毕业设计,科研项目,论文管理,成绩管理,排课管理,信息维护,成绩查询,SQL SERVER,Interbase,教务WEB系统,19.12.2022,13,iBATI

8、S .NET,数据库访问类Mapper,分页类Paginate,选课管理,SQL SERVER,Interbase,常用数据转换工具类Tools,教师模版页Js.master,管理员模版页Gly.master,学生模版页Xs.master,考试报名,毕业设计,科研项目,论文管理,成绩管理,排课管理,信息维护,成绩查询,相关页面分页类继承自Paginate,其他类如,课程类,成绩类,账号,19.12.2022,14,4.2.2 软件结构风格,软件结构风格程序的模块结构,各个模块的组织情况一个模块和其它模块的独立程度是评价一个设计好坏的重要度量尺度。软件结构风格的总体要求独立性高一个模块的功能不是

9、同其它模块紧密地联系在一起。,19.12.2022,15,4.2.2 软件结构风格,【独立性高的优点】当一个模块的功能不是同其它模块紧密地联系在一起时,独立性较强,比较容易理解;独立性较强的模块修改时不会或者较小的影响其他模块。独立性较强的模块修改不容易受其他模块改变的影响。,如何评价模块间联系的紧密程度?,19.12.2022,16,4.2.3 耦合与内聚,内聚模块内部各个元素彼此结合的紧密程度的度量内聚越高,模块内部各成份之间的关联也就越强耦合模块之间的互相依赖的紧密程度的度量耦合越松散,模块之间的联系就越小,独立性强的模块应是高内聚、低耦合的模块,19.12.2022,17,1 耦合:模

10、块间联系的程度。(依赖于模块间接口的复杂性),非直接耦合,数据耦合,特征耦合,控制耦合,外部耦合,公共耦合,内容耦合,1)非直接耦合: 两模块间没有直接关系。,例如 :模块1和模块2,无直接联系。,19.12.2022,18,2)数据耦合:两模块间交换的是简单数据(输入、输出参数),计算应扣款,计算水费,计算电费,用水量,水费,电费,用电量,19.12.2022,19,3)特征耦合:模块间交换的是数据结构(输入、输出参数),计算应扣款,计算总扣除,房租水电,总扣除,房租水电=用水量+用电量+租房开始日期,房租水电=用水量+用电量+租期,19.12.2022,20,4) 控制耦合:传递的信息中有

11、控制信息(中等耦合)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。,19.12.2022,21,5)外部耦合:一组模块都访问同一全局变量,日期,19.12.2022,22,6)公共耦合:一组模块都访问同一全局数据结构,数据结构、文件或数据库,19.12.2022,23,某个模块究竟用了哪几个数据?某个数据究竟被哪几个模块使用 ?使用公共数据区的任模块如果出现BUG该BUG是否会是其他使用该数据区的模块造成的?该BUG可能会影响那些使用该数据区的模块?数据的名称、类型发生变化;要寻找哪些模块随之改变。,外部、公共耦合带来的复杂性,必须弄清修改影响的范

12、围,不要轻率地进行修改,19.12.2022,24,7) 内容耦合:(最高的耦合),.GOTO A.,.A: . .,1) 一个模块直接调用另一个模块中的数据。 2) 一个模块直接转移到另一个模块中去。 3) 一个模块有多个入口。 4) 两个模块有一部分程序代码重叠。 病态耦合关系!,M,N,19.12.2022,25,结论: 耦合是影响软件复杂程度的重要因素 尽量使用数据耦合 少用控制耦合 限制外部和公共耦合 不用病态的内容耦合。,19.12.2022,26,耦合练习,下图中的程序由A、B、C、D、E 5个模块组成,下表中描述了这些模块之间的接口,每个接口有一个编号。此外,模块A、D和E都要

13、引用一个专用数据区。那么A和E之间耦合关系是_(10)_。 A公共耦合 B控制耦合 C内容耦合 D无耦合,A,19.12.2022,27,1)偶然内聚:模块内各组成成分在功能上是 不相关。如:把几个模块都要执行的一组语句放到一个模块中。偶然的原因把他们放在一块,偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚,2 内聚:模块内各成份间的紧密程度,j+,i,j,k,i+,k+,19.12.2022,28,2)逻辑内聚:通常由若干个逻辑功能相同或相似的成份组成;目的:省去程序中的重复部分如:计算全班学生的平均分和最高分,19.12.2022,29,可能需要从模块外引入用作判断的

14、开关量,形成控制耦合,19.12.2022,30,3)时间内聚:相同的时间执行的成分组合在 一个模块内。 如:对系统的初始化等一系列的工作。,19.12.2022,31,4) 过程内聚:一个模块内部包含一组任务并 必须以特定次序执行。(中等),读取顾客的姓名,读取顾客的地址,读取顾客的电话号码,19.12.2022,32,5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。,开领书单,登记售书,领书单,售书登记表,有效书单,19.12.2022,33,5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。,计算年龄,输出年龄,计算工资,输出工资,雇员生日,19.1

15、2.2022,34,5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。,新增,19.12.2022,35,19.12.2022,36,6)顺序内聚:模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入,19.12.2022,37,6)顺序内聚:模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入,计算年龄,输出年龄,计算工资,输出工资,雇员生日,19.12.2022,38,7)功能内聚:模块内部各成份结合在一起完成 单一的功能。 如:按雇员生日,计算年龄,计算年龄,输出年龄,雇员生日,19.12.2022,39,结论:尽量采用功能内聚避免逻 辑和耦然内

16、聚。,一个模块一个功能是软件设计人员模块化设计的一条准则,19.12.2022,40,耦合与内聚的衡量,内聚度高,耦合弱,标志着模块的独立性强;实践证明,内聚比耦合更重要,应该把更多注意力集中到提高模块的内聚度上来。,19.12.2022,41,360安全卫士,360杀毒,杀毒核心,19.12.2022,42,密码安全,文件传输安全,安全,网络安全,19.12.2022,43,聊天记录漫游,QQ会员管理,?,19.12.2022,44,计08-2 刘新 QQ 软件结构,19.12.2022,45,19.12.2022,46,计08-2 包伟伟 360软件结构,19.12.2022,47,19.

17、12.2022,48,19.12.2022,49,4.2.4 好的软件设计特性,1. 改进软件结构,提高模块独立性2. 模块规模适中3. 深度、宽度、扇出和扇入4. 模块的作用域应该在控制域之内5. 降低模块接口的复杂性6. 模块功能可以预测,目的:帮助改进软件设计,提高软件质量,19.12.2022,50,一、改进软件结构,提高模块独立性 1.审查软件结构是否合理,19.12.2022,51,教务WEB系统,选课管理,考试报名,毕业设计,科研项目,论文管理,成绩管理,学生选课,信息维护,成绩查询,SQL SERVER,Interbase,教务WEB系统,19.12.2022,52,iBATI

18、S .NET,数据库访问类Mapper,分页类Paginate,选课管理,SQL SERVER,Interbase,常用数据转换工具类Tools,教师模版页Js.master,管理员模版页Gly.master,学生模版页Xs.master,考试报名,毕业设计,科研项目,论文管理,成绩管理,选课管理,信息维护,成绩查询,相关页面分页类继承自Paginate,其他类如,课程类,成绩类,账号,教务WEB系统,19.12.2022,53,一、改进软件结构,提高模块独立性 1.审查软件结构是否合理 2.提高模块独立性(观察耦合与内聚),19.12.2022,54,一、改进软件结构,提高模块独立性,(1)

19、选择工程量,(2)选择工程量变更,(3)填写申报表,(3)填写申报表,(3)填写申报表,如果你仅仅因为一组方法具有相似的实现就把它们放在一个模块里,那么你将犯“创建逻辑内聚对象(logically cohesive object)”的错误,19.12.2022,55,(1)选择工程量,(2)选择工程量变更,(3)填写申报表,3个模块数据耦合,19.12.2022,56,(3)填写申报表,19.12.2022,57,(3)填写申报表,(1)选择工程量,19.12.2022,58,(3)填写申报表,(2)选择工程量变更,19.12.2022,59,1个模块管理6种单位信息逻辑内聚每个单位都有单位名

20、称、法人代表,19.12.2022,60,1个主控模块2个中间控制模块(新建、打开/编辑)6种新建单位模块6中单位编辑模块1个删除单位模块1个单位类型管理模块通信内聚,19.12.2022,61,打开/编辑监理单位,19.12.2022,62,二、模块规模要适中 60行? 30? 100?过少模块增多接口代价高过多模块内的复杂度提高,19.12.2022,63,三、软件深度、宽度、扇出和扇入,深度:软件结构控制的层数 (049),19.12.2022,64,三、软件深度、宽度、扇出和扇入,宽度:软件结构中最多模块 层的模块数,19.12.2022,65,三、软件深度、宽度、扇出和扇入,A,B,

21、C,D,G,F,E,J,I,H,K,扇出:某模块直接控制 的模块数如:C模块的扇出系数 为3扇出一般3-4较好,19.12.2022,66,三、软件深度、宽度、扇出和扇入,扇入:某模块被多少模块调用 如:I模块的扇入系数 为2(被E、F调用)扇入越多越好(在模块独立性允许原则下),19.12.2022,67,控制,19.12.2022,68,三、软件深度、宽度、扇出和扇入,结论:一个好的软件结构,一般 上层扇出较高,中层扇出 较少,低层扇入较高。 (瓮型结构),19.12.2022,69,四、控制域与作用域的关系,1. 控制域:模块本身极其下属模块均属于 该模块的控制域,A的控制域:A,B,C

22、,D,E,F,G,H,I,J,KG的控制域:G,J,K,19.12.2022,70,2.作用域的关系: 作用域:受该模块内判定影响的所有模块,A,B,D,H,C的作用域:E,F,G,I,J,K,C,G,F,E,J,I,K,19.12.2022,71,TOP,X,Y,A,B,B2,B1,B:判定,A:作用,B-Y-A,B1:作用,19.12.2022,72,TOP,X,Y,A,B,B2,B1,B:根据Y输入的学号,读取成绩,判断学生毕业、肄业返回判断结果0授予学位证书1授予毕业证书2授予肄业证书,A:受B中的判断作用B的判定结果有模块Y输入根据判定结果打印相应证书,B-Y-A,B1:受B中的判定

23、作用,19.12.2022,73,TOP,X,Y,A,B,B2,B1,控制域与作用域的关系:作用域在控制域内且越近越好,TOP,X,Y,A,B,B2,B1,把做判断的点往上移,把判断从模块B移到模块Y。但B1的传递路径仍然比较长,把那些在作用域内但不在控制域内的模块移到控制域内,19.12.2022,74,五、降低模块接口的复杂程度 接口的影响: 1.接口简单,低耦合高内聚 2.接口复杂,高耦合低内聚,19.12.2022,75,降低模块接口的复杂性,模块接口复杂是软件发生错误的一个主要原因。应该认真设计模块接口,使得信息传递简单并保持参数的一致性。 求一元二次方程的根的模块,比较:QUAD_

24、ROOT(TBL,X) QUAD_ROOT (A,B,C,ROOTl,ROOT2),19.12.2022,76,六、模块功能可以预测,一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出结果,这种模块的功能就是可以预测的 带有内部状态的模块的功能有时是不可预测的,因为它的输出取决于所处的状态,由于内部状态对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护,19.12.2022,77,360浏览器中的两个URL,se:homese:blank,19.12.2022,78,4.3 图形工具,4.3.1 层次图和HIPO图4.3.2 结构图(Structure Chart

25、,SC),19.12.2022,79,4.3.1层次图和HIPO图,层次图用来描绘软件的层次结构。层次图中的矩形框表示模块矩形框间的连线表示调用关系HIPO图是美国IBM公司发明的“层次图+IPO图”的英文缩写层次图每个模块都加了编号与层次图中每个模块相对应,应该有一张IPO图描绘模块的处理过程。,HIPO图是由一个带编号的H图和一组模块的IPO图组成,19.12.2022,80,4.3.1层次图和HIPO图1. 层次图(H图),成绩管理系统,3 录入成绩,2 待录成绩单管理,1查询,3.1导入课程成绩,3.2百分制成绩录入,3.2等级制成绩录入,2.1个别学生成绩单,2.2成批学生成绩单,1

26、.1查询课程,1.2 查询上课班级,1.3 查询学生成绩,19.12.2022,81,2. IPO图,课程信息成绩数据文件学生信息百分制成绩等级制成绩,2 待录成绩单管理3.1 导入课程成绩3.2 百分制成绩录入3.3 等级制成绩录入,空成绩记录 成绩记录,3 录入成绩,19.12.2022,82,二、结构图:().传入模块:从下层模块取得数据,经过某些处理,再将其结果传递给上级模块。.传出模块:从上级模块获得数据,进行某些处理,再将其结果传送给下级模块。.变换模块:从上级模块获得数据,进行特定处理,转换成其它形式,再将其结果传送给上级模块。,x,y,x,x,y,y,19.12.2022,83

27、,二、结构图:().源模块: 不调用其它模块的传入模块。.漏模块: 不调用其它模块的传出模块。.协调模块: 对下属模块进行控制和管理的模块。,x,x,y,x,19.12.2022,84,附加符号:(调用方式) 简单调用 选择调用 循环调用,注意:表示调用关系不表示调用次序;2 不指明什么时间调用;3 层次图作为文档较合适。4 结构图作为检查复审软件结构的好方法。,19.12.2022,85,HIPO图和SC图的检验,传送的每个数据元素是否为完成模块功能所必须的;完成模块功能必须的每个数据元素是否都传送来了;结构图上模块间的联系是否容易解释,检查设计的正确性和评价模块独立性,19.12.2022

28、,86,4.4 结构化设计方法,一、概念与步骤二、变换映射三、事务映射四、优化设计,19.12.2022,87,4.4 结构化设计方法(SD),一、有关概念 国际流行的应用最广泛的技术、最完善的系统设计方法基于数据流的系统分析、设计方法:SA和SD(这种方法在理论上可以适用于任何非并发软件的开发工作。)结构化设计(SD)任务:将系统逻辑模型(DFD)软件结构图(HIPO图、SC图)指导思想:自顶向上的逐步求精,19.12.2022,88,DFD图,软件结构,方法,映射,方法:变换型DFD 变换映射事务型DFD 事务映射,19.12.2022,89,1.变换型,变换型特征:,t,输入流,变换中心

29、,输出流,数据随时间的推移而流动即:随着t的变化,输入流通过变换中心(变换流) 最后形成输出流。,外部表示,内部表示,19.12.2022,90,数字仪表板系统数据流图,19.12.2022,91,数字仪表 板控制,接收传感 器信号,数据转换 控制,驱动仪表 板输出,加/减速 显示,显示 mph,显示 里程,显示 mpg,发出铃声,发光二极 管显示,读旋转信号,To _sps sps,To rpm,计算gph,读燃料流,数字仪表板控制系统软件结构,19.12.2022,92,2.事务型,事务型特征:,事务,事务中心T,动作序列,以事务中心为核心根据事务的要求去执行不同的通路,19.12.202

30、2,93,3. 设计步骤,复查并精化数据流图,流类型,导出接口描述和全程数据结构,变换映射,用启发式设计规则精化软件结构,事务映射,复 查,“事务”,“变换”,详细设计,有问题,无问题,19.12.2022,94,二、变换映射 1. 步骤,识别输入边界、输出边界和变换中心三部分。 逻辑输入:离物理输入端(输入始端)最远,但仍可作为输入的数据流。逻辑输出:离物理输出端(输出始端)最远,但仍可作为输出的数据流。,进行第一级分解(映射顶层和第一层 )设计主控模块和第一层软件结构1)输入模块ca。 功能:为主控模块提供数据。2)输出模块ce。 功能:为主控模块提供数据的输出。3)变换模块ct。 功能:

31、将逻辑输入转换为逻辑输出。,19.12.2022,95,二、变换映射,完成“第二级和下层的映射”任务:将DFD中的每一个处理映射到程序结构中的模块.方法:从变换中心的边界开始,沿输入路径和输出路径向外,将处理依次映射到从属层的软件结构优化软件设计,具体做法?,19.12.2022,96,19.12.2022,97,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入部分,传出部分,变换部分,数据流动情况,19.12.2022,98,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入部分,传出部分,变换部分,19.12.2

32、022,99,19.12.2022,100,M,M3,M2,M1,一级分解,二级分解,19.12.2022,101,二、变换映射,例1:已知汽车数字仪表板的功能描述和数据流 图,设计软件结构。假设数字仪表板将完成下述功能:1)通过模-数转换实现传感器和微处理机接口2)在面板上显示数据3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等4)指示加速或减速5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。,19.12.2022,102,数字仪表板系统数据流图,19.12.2022,103,二、变换映射,例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构

33、。,识别输入边界、输出边界和变换中心三部分,19.12.2022,104,二、变换映射,例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。,识别输入、输出和变换中心三部分,进行第一级分解(映射顶层和第一层 )设计主控模块和第一层软件结构1)输入模块。 功能:为主控模块提供数据。2)输出模块。 功能:为主控模块提供数据的输出。3)变换模块。 功能:将逻辑输入转换为逻辑输出。,19.12.2022,105,数字仪表板系统数据流图,输入,输出,变换中心,19.12.2022,106,输入,输出,变换中心,数字仪表 板控制,接收传感 器信号,数据转换 控制,驱动仪表 板输出,sps,rpm,

34、gph,mpg,mph,英里,超速值,19.12.2022,107,二、变换映射,例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。,识别输入、输出和变换中心三部分,进行第一级分解(映射顶层和第一层 ),3 进行第二层分解(按子系统分解),19.12.2022,108,数字仪表板系统数据流图,输入,输入,19.12.2022,109,接收传感 器信号,读旋转信 号,计算 _sps sps,计算 rpm,sps,rpm,_sps,sps,sps,计算gph,gph,读燃料流,燃料流,输入结构,19.12.2022,110,数字仪表板系统数据流图,输出,19.12.2022,111,驱动

35、仪表 板输出,加/减速 显示,显示 mph,显示 里程,加/减速, mpg, mph,英里,发生信息,显示 mpg,发出铃声,发光二极 管显示,输出结构,19.12.2022,112,数字仪表板系统数据流图,变换中心,19.12.2022,113,数据转换控制,确定加/减速,计算mph超速值,计算 里程,计算 mpg,变换结构,19.12.2022,114,数字仪表 板控制,接收传感 器信号,数据转换 控制,驱动仪表 板输出,加/减速 显示,显示 mph,显示 里程,显示 mpg,发出铃声,发光二极 管显示,读旋转信号,To _sps sps,To rpm,计算gph,读燃料流,数字仪表板控制

36、系统软件结构,19.12.2022,115,二、变换映射,例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。,识别输入、输出和变换中心三部分,进行第一级分解(映射顶层和第一层 ),3 进行下层分解(按子系统分解),4 优化,19.12.2022,116,结构设计的优化原则,1、分割、合并模块和变动调用关系2、保持高扇入、低扇出的原则3、作用域、控制域规则,19.12.2022,117,1、分割、合并模块和变动调用关系标准:提高内聚、降低耦合1)简化模块接口少用全局性数据减少模块间控制信息的传递2)考虑模块的规模过长的模块会增加理解的难度模块规模太小,会使模块间联系变得复杂3)适当变更

37、模块在图上的位置方便计算机的处理,19.12.2022,118,2、保持高扇入、低扇出的原则扇入高:上级模块多,能增加模块的利用率扇出低:下级模块少,减少模块调用和控制下级模块的复杂度。扇出数通常保持在34,不要超过57可以通过增加中间层的方法减少扇出,19.12.2022,119,3、作用域、控制域规则模块的作用域不应超出控制域的范围,TOP,X,Y,A,B,B2,B1,19.12.2022,120,变换映射小结:,1.指导思想:自顶向下,逐步求精2.根据数据流图找出输入边界、输出边界和变换中心3.形成各层次的软件结构4.根据模块独立性和启发规则优化软件结 构。,19.12.2022,121

38、,三、事务映射 (一)步骤,识别事务输入、通路和事务中心三部分。,进行第一级分解(映射顶层和第一层 )设计事务控制模块和第一层软件结构1)输入模块。 功能:为主控模块提供数据。2)调度模块。 根据输入的要求调度相应的执行通路,进行第二级分解: 设计中下层模块 方法:对通路再进行识别、划分、映射,反复此 过程直到全部映射完毕优化软件设计,19.12.2022,122,事务型SC图的上层结构第一级分解,事务控制模块,输入,调度,返回,19.12.2022,123,动作分支的典型结构,P,Ti,T2,T1,Dk,D2,A1,D1,A2,A3,Aj,处理层:调度模块,事务层,操作层,细节层,返回,19

39、.12.2022,124,事务控制模块,输入,P(调度),Ti,T2,T1,Dk,D2,A1,D1,A2,A3,Aj,初始SC图,事务层,操作层,细节层,返回,19.12.2022,125,事务映射过程: 依据事务型特征识别事务输入、通路、事务中心,事务,通路,事务中心,19.12.2022,126,典型的事务型软件结构,产生事务,事务处理,19.12.2022,127,(二) 指导思想:自顶向下,逐步求精。 (三),什么是事务: 引起或触发某一动作的数据。(控制信号、事件或状态变化),19.12.2022,128,例2:汽车仪表板控制程序问题定义:仪表板有6个功能键,通过选择不同的 功能键可

40、以完成6个不同的操作。功能要求: 1 初始化发动机的点火序列 2 启动雷达探测装置 3 显示发动机状态,如:油压、温度 4 初始化“行程计算机”并输出数据 5 “行程计算机”清零 6 作废上次按下的功能键,19.12.2022,129,功能要求: 1 初始化发动机的点火序列 2 启动雷达探测装置 3 显示发动机状态,如:油压、温度 4 初始化“行程计算机”并输出数据 5 “行程计算机”清零 6 作废上次按下的功能键,19.12.2022,130,输入,事务中心,通路,19.12.2022,131,功能键控制,读键板,启动键板功能,点火码求值,雷达探测,作废按键,发动机状态,汽车仪表板控制上层结

41、构,键号,键号,19.12.2022,132,输入,输出,变换中心,19.12.2022,133,19.12.2022,134,输入,输出,变换中心,19.12.2022,135,19.12.2022,136,汽车仪表板控制系统,读键板,启动键板功能,接收点火码,检查点火码,错误处理,点火码求值,雷达探测,显示/告警,XK频段监视,距离计算,作废按键,数字键读入,封锁计时器,告警铃声,显示提示,发动机状态,汽车仪表板控制系统软件结构SC,19.12.2022,137,接收,事务中心,通路,19.12.2022,138,汽车仪表板控制系统,读键板,接收点火码,检查点火码,错误处理,点火码求值,雷

42、达探测,显示/告警,XK频段监视,距离计算,作废按键,数字键读入,封锁计时器,告警铃声,显示提示,发动机状态,汽车仪表板控制系统软件结构,上层事务型下层变换型,19.12.2022,139,例3、教材购销系统的结构化设计,补售,书单,暂缺书单,领书单,发票,购书单,无效书单,F4售书登记表,F3各班学生用书表,F2缺书登记表,F1教材存量表,1.6,补售,教材,1.5,登记,缺书,学,生,有效,购书单,进书通知,学,生,1.4,登记并,开领书单,1.2,开发票,1.1,审查,有效性,采,购,1.3,打印发票,发票,发票,第二层DFD图教材销售系统,19.12.2022,140,销,售,采购员,

43、2.3,修改教材库,存和待购量,2.2,按出版,社统计,缺书,F6教材一览表,F1 教材存量表,2.1,按书号,汇总缺书,F2 缺书登记表,F5待购教材表,进书通知,进书通知,缺,书,单,第二层DFD图采购子系统,19.12.2022,141,1、复查并细化DFD,补售,书单,暂缺书单,领书单,发票,购书单,无效书单,F4售书登记表,F3各班学生用书表,F2缺书登记表,F1教材存量表,1.6,补售,教材,1.5,登记,缺书,学,生,有效,购书单,进书通知,学,生,1.4,登记并,开领书单,1.2,开发票,1.1,审查,有效性,采,购,1.3,打印发票,发票,发票,第二层DFD图教材销售系统,1

44、9.12.2022,142,补售,书单,暂缺书单,领书单,发票,购书单,无效书单,F4售书登记表,F3各班学生用书表,1.6,补售,教材,1.5,登记,缺书,学,生,有效,购书单,进书通知,学,生,1.2,开发票,1.1,审查,有效性,采,购,1.3,打印发票,发票,发票,第二层DFD图教材销售系统,1.4,登记售书,1.7,打印领书单,发票,19.12.2022,143,2、鉴别DFD图的类型,补售,书单,暂缺书单,领书单,发票,购书单,无效书单,F4售书登记表,F3各班学生用书表,1.6,补售,教材,1.5,登记,缺书,学,生,有效,购书单,进书通知,学,生,1.2,开发票,1.1,审查,

45、有效性,采,购,1.3,打印发票,发票,发票,第二层DFD图教材销售系统,1.4,登记售书,1.7,打印领书单,发票,输入,输出,变换中心,19.12.2022,144,2、鉴别DFD图的类型,补售,书单,暂缺书单,领书单,发票,购书单,无效书单,F4售书登记表,F3各班学生用书表,1.6,补售,教材,1.5,登记,缺书,学,生,有效,购书单,进书通知,学,生,1.2,开发票,1.1,审查,有效性,采,购,1.3,打印发票,发票,发票,第二层DFD图教材销售系统,1.4,登记售书,1.7,打印领书单,发票,销售类型,初售,19.12.2022,145,销,售,采购员,2.3,修改教材库,存和待

46、购量,2.2,按出版,社统计,缺书,F6教材一览表,F1 教材存量表,2.1,按书号,汇总缺书,F2 缺书登记表,F5待购教材表,进书通知,进书通知,缺,书,单,第二层DFD图采购子系统,采购类型,19.12.2022,146,第一层DFD图教材购销系统,进书通知,F2 缺书登记表,1,销售,学生,购书单,领书单,采购员,缺书单,进书通知,2,采购,F1 教材存量表,购销命令,19.12.2022,147,教材购销系统的上层框架,教材购销系统,读用户选择,分析用户命令,销售,采购,初售,补售,统计缺书,登记进书,19.12.2022,148,3、进行第二级分解分解工作分支(补充操作层和细节层)

47、,销售,初售,补售,采购,统计缺书,登记进书,19.12.2022,149,上层变换型下层事务型,19.12.2022,150,概要设计练习,顶层数据流图,条形码扫描仪,POS机销售系统,键盘,显示器,打印机,19.12.2022,151,概要设计练习2,条形码扫描仪,1输入数量/条形码,键盘,2读取键盘命令&数据,4登录注销,3维护购物清单,5付款,6打印,显示器,打印机,第一层数据流图,19.12.2022,152,事务映射小结:,1.指导思想:自顶向下,逐步求精2.根据DFD找出事务输入、通路和事务中心3.按事务映射第一层,和下列各层,形成层 次的软件结构(下层可根据图形特征映射)4.根

48、据模块独立性和启发规则优化软件结 构。,19.12.2022,153,总结:,概要设计的目标和任务概要设计过程概要设计的概念、原理、规则图形工具结构化设计方法(SD),19.12.2022,154,总结:,概要设计的目标和任务 “怎样实现系统的问题”概要设计:数据流图-软件结构模型确定系统模型之间的接口关系,19.12.2022,155,总结:,软件设计过程 制定规范 复查“需求规格说明书计” 软件系统结构的设计 制定测试计划 书写文档 概要设计审查与复审,19.12.2022,156,总结:,概要设计的概念、原理、规则: 模块化 模块独立性衡量模块衡量独立性:耦合、内聚 1. 耦合:模块间联

49、系的程度 2 .内聚: 模块内部各成分间的紧密程度、独立性好的模块:高内聚、低耦合,19.12.2022,157,总结:,19.12.2022,158,总结:,好的软件设计特性:帮助改进软件设计,提高软件质量 改进软件结构,提高模块独立性 模块规模要适中 软件深度、宽度、扇出和扇入 控制范围与作用范围的关系 接口的复杂度 单入口单出口,19.12.2022,159,总结:,图形工具:1、HIPO图2、结构图(SC图),19.12.2022,160,总结:,结构化设计方法SD: (面向数据流的设计方法)指导思想:自顶向上的逐步求精变换映射:依据变换型特征映射事物映射:依据事物型特征映射,161,写在最后,成功的基础在于好的学习习惯The foundation of success lies in good habits,结束语当你尽了自己的最大努力时,失败也是伟大的,所以不要放弃,坚持就是正确的。When You Do Your Best, Failure Is Great, So DonT Give Up, Stick To The End演讲人:XXXXXX 时 间:XX年XX月XX日,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号