软件工程CH04概要设计课件_第1页
软件工程CH04概要设计课件_第2页
软件工程CH04概要设计课件_第3页
软件工程CH04概要设计课件_第4页
软件工程CH04概要设计课件_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程刘迎春软件工程8/20/20221第1页,共162页。第四章 概要设计 问题定义可行性研究可行否?否是需求分析终止项目概要设计计划时期开发时期主要内容4.1 任务4.2 软件结构设计及优化4.3 图形工具4.4 结构化设计(方法)4.5 数据结构设计8/20/20222第2页,共162页。4.1概要设计的任务【起点】需求分析阶段得出的DFD图,数据字典【任务】从需求分析阶段的工作结果出发,进行软件结构设计与数据设计,编写概要设计说明书。软件结构设计(是概要设计阶段的主要工作)系统中每个程序由哪些模块组成以及这些模块间的关系数据设计将分析阶段创建的信息模型(数据字典)转换为实现系

2、统所需要的数据结构8/20/20223第3页,共162页。4.1概要设计的任务【方案选择】分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划通常至少选取低成本、中等成本及高成本的三种方案8/20/20224第4页,共162页。4.2软件结构设计及优化【结构设计的任务】建立良好的模块功能结构确定模块、模块间的关系【主要内容】4.2.1 模块和模块化4.2.2 软件结构风格4.2.3 耦合与内聚4.2.4 好的软件设计特性8/20/20225第5页,共162页。4.2.1 模块和模块化【1、模块】数据说明、可执行语句等程序对象的集合。单独命名且可通过名

3、字来访问如表单(Form、窗口)、过程、函数等。【基本属性】功能:描述该模块实现的功能;状态:该模块使用时的环境和条件;逻辑:描述模块内部怎么做;【内部特性、外部特性】内部特性是指完成其功能的程序代码和仅供该模块内部使用的数据外部特性是指模块名和参数表(输入参数、输出参数),以及对程序及整个系统造成的影响使用黑盒子的概念,站在较高的层次上进行思维,从而避免过早地陷入具体的条件逻辑、算法和过程步等实现细节8/20/20226第6页,共162页。4.2.1 模块和模块化【2、模块化】把系统划分成若干个模块,每个模块完成一个子功能,模块既独立且相互之间又有一定的联系,把他们组成一个有机的整体,完成指

4、定的功能。高层模块隐蔽了细节,能够从整体上把握问题需要时,可以深入较低层次以了解进一步的细节模块化是软件结构设计的一个基本准则8/20/20227第7页,共162页。Netscape公司的故事1/3对于PC软件,有一个神话讲:设计不是很重要,因为市场是随着时间改变的。在这方面Netscape公司的倒闭是一个值得深思的故事。 最初Illinois大学的NCSA Mosaic小组开发了第一个广泛使用的浏览器。他们创建了Netscape公司,在1994年4月到12月之间发行了Netscape1.0,它可以在3个平台上运行,很快就成为了Windows、Unix和Mac上的占有统治地位的浏览器。Micr

5、osoft公司于1994年10月开始开发Internet Explorer1.0,并在1995年绑定在Windows 95上。 8/20/20228第8页,共162页。Netscape公司的故事2/3从1995年到1997年,在Netscape公司的快速发展期间,开发者努力工作来产生新的特点,而很少花时间进行设计。Microsoft公司意识到了需要建立可靠的设计,它使用共享组件重构Office套装,建立了NT操作系统, 并花费了时间来重构IE3.0。拉近了与Netscape的差距。 Netscape的开发在继续。通过Communicator 4.0 ,已有120个开发者(从最初的10个)和3百

6、万行代码。Michael Toy(开发经理)说道: “我们处于一个很坏的情形下我们应该在一年前就停住绑定这些代码。这是死的这就像被粗鲁地唤醒我们为走得太快而付出了代价。”8/20/20229第9页,共162页。Netscape公司的故事3/31997年Netscape公司内部关于模块设计的争论Netscape用了2个月来重新设计浏览器,但是这还不够长。Mozzila5.0版本作为开源发布,但是这也毫无帮助:没有人想在类似意大利细面条似的代码上进行工作。最后,Microsoft赢得了浏览器的战争,AOL收购了Netscape。当然,这不是Microsoft浏览器战胜Netscape浏览器的全部故

7、事。8/20/202210第10页,共162页。 资本市场供应市场协同供应协同计划协同设计供应链管理协同服务协同销售客户关系管理协同市场投资者关系管理战略目标管理管理驾驶舱企业绩效管理财务管理财务会计管理会计税务会计资金管理计划管理车间管理质量管理设备管理人力资源管理人事管理薪酬管理招聘培训绩效管理办公自动化知识管理信息门户内容管理采购管理制造管理物流管理仓存管理销售管理分销管理采购管理消费市场知识市场例:金蝶K/3 ERP系统的结构8/20/202211第11页,共162页。K/3模块配置行业应用配置政府财政信托管理证券管理银行管理金蝶 K/3 标准产品第三方产品接口工具集医药GSP房地产进

8、出口医药GMP汽车DMS业务环境配置个性化业务需求设计按角色配置多语言配置应用集成配置业务流程配置成功企业流程快速复制柔性化流程设计灵活的管理控制方式8/20/202212第12页,共162页。选课管理考试报名毕业设计科研项目论文管理成绩管理排课管理信息维护成绩查询SQL SERVERInterbase教务WEB系统8/20/202213第13页,共162页。iBATIS .NET 数据库访问类Mapper分页类Paginate选课管理SQL SERVERInterbase常用数据转换工具类Tools教师模版页Js.master管理员模版页Gly.master学生模版页Xs.master考试报

9、名毕业设计科研项目论文管理成绩管理排课管理信息维护成绩查询相关页面分页类继承自Paginate其他类如,课程类,成绩类,账号8/20/202214第14页,共162页。4.2.2 软件结构风格软件结构风格程序的模块结构,各个模块的组织情况一个模块和其它模块的独立程度是评价一个设计好坏的重要度量尺度。软件结构风格的总体要求独立性高一个模块的功能不是同其它模块紧密地联系在一起。8/20/202215第15页,共162页。4.2.2 软件结构风格【独立性高的优点】当一个模块的功能不是同其它模块紧密地联系在一起时,独立性较强,比较容易理解;独立性较强的模块修改时不会或者较小的影响其他模块。独立性较强的

10、模块修改不容易受其他模块改变的影响。如何评价模块间联系的紧密程度?8/20/202216第16页,共162页。4.2.3 耦合与内聚内聚模块内部各个元素彼此结合的紧密程度的度量内聚越高,模块内部各成份之间的关联也就越强耦合模块之间的互相依赖的紧密程度的度量耦合越松散,模块之间的联系就越小独立性强的模块应是高内聚、低耦合的模块8/20/202217第17页,共162页。1 耦合:模块间联系的程度。(依赖于模块间接口的复杂性)非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合1)非直接耦合: 两模块间没有直接关系。 主控模块2模块1模块4模块3例如 :模块1和模块2,无直接联系。8/20/

11、202218第18页,共162页。2)数据耦合:两模块间交换的是简单数据(输入、输出参数) 计算应扣款计算水费计算电费用水量水费电费用电量8/20/202219第19页,共162页。3)特征耦合:模块间交换的是数据结构(输入、输出参数) 计算应扣款计算总扣除房租水电总扣除房租水电=用水量+用电量+租房开始日期房租水电=用水量+用电量+租期8/20/202220第20页,共162页。4) 控制耦合:传递的信息中有控制信息(中等耦合)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。8/20/202221第21页,共162页。5)外部耦合:一组模块都访问同

12、一全局变量主控模块2模块1模块4模块3日期8/20/202222第22页,共162页。6)公共耦合:一组模块都访问同一全局数据结构主控模块2模块1模块4模块3数据结构、文件或数据库8/20/202223第23页,共162页。某个模块究竟用了哪几个数据?某个数据究竟被哪几个模块使用 ?使用公共数据区的任模块如果出现BUG该BUG是否会是其他使用该数据区的模块造成的?该BUG可能会影响那些使用该数据区的模块?数据的名称、类型发生变化;要寻找哪些模块随之改变。外部、公共耦合带来的复杂性必须弄清修改影响的范围,不要轻率地进行修改8/20/202224第24页,共162页。7) 内容耦合:(最高的耦合)

13、.GOTO A. .A: . . 1) 一个模块直接调用另一个模块中的数据。 2) 一个模块直接转移到另一个模块中去。 3) 一个模块有多个入口。 4) 两个模块有一部分程序代码重叠。 病态耦合关系!MN8/20/202225第25页,共162页。非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合低高结论: 耦合是影响软件复杂程度的重要因素 尽量使用数据耦合 少用控制耦合 限制外部和公共耦合 不用病态的内容耦合。 8/20/202226第26页,共162页。耦合练习下图中的程序由A、B、C、D、E 5个模块组成,下表中描述了这些模块之间的接口,每个接口有一个编号。此外,模块A、D和E都

14、要引用一个专用数据区。那么A和E之间耦合关系是_(10)_。 A公共耦合 B控制耦合 C内容耦合 D无耦合 编号参数返回值1数据项数据项2数据项数据项3功能码无4功能码列表5无列表A8/20/202227第27页,共162页。1)偶然内聚:模块内各组成成分在功能上是 不相关。如:把几个模块都要执行的一组语句放到一个模块中。偶然的原因把他们放在一块偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 2 内聚:模块内各成份间的紧密程度j+i,j,ki+k+8/20/202228第28页,共162页。2)逻辑内聚:通常由若干个逻辑功能相同或相似的成份组成;目的:省去程序中的重复部分如:计算全班

15、学生的平均分和最高分8/20/202229第29页,共162页。读入分数平均 / 最高计算最高计算平均输出结果逻辑功能相同逻辑功能相同可能需要从模块外引入用作判断的开关量,形成控制耦合8/20/202230第30页,共162页。3)时间内聚:相同的时间执行的成分组合在 一个模块内。 如:对系统的初始化等一系列的工作。 8/20/202231第31页,共162页。4) 过程内聚:一个模块内部包含一组任务并 必须以特定次序执行。(中等) 读取顾客的姓名读取顾客的地址读取顾客的电话号码8/20/202232第32页,共162页。5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。开领

16、书单登记售书领书单售书登记表有效书单8/20/202233第33页,共162页。5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。计算年龄输出年龄计算工资输出工资雇员生日8/20/202234第34页,共162页。5)通信内聚:模块内使用了同一组输入数据, 或产生同一组的输出结果。新增8/20/202235第35页,共162页。8/20/202236第36页,共162页。6)顺序内聚:模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入8/20/202237第37页,共162页。6)顺序内聚:模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入计算年龄

17、输出年龄计算工资输出工资雇员生日8/20/202238第38页,共162页。7)功能内聚:模块内部各成份结合在一起完成 单一的功能。 如:按雇员生日,计算年龄计算年龄输出年龄雇员生日8/20/202239第39页,共162页。结论:尽量采用功能内聚避免逻 辑和耦然内聚。 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚高低一个模块一个功能是软件设计人员模块化设计的一条准则8/20/202240第40页,共162页。耦合与内聚的衡量内聚度高,耦合弱,标志着模块的独立性强;实践证明,内聚比耦合更重要,应该把更多注意力集中到提高模块的内聚度上来。8/20/202241第41页,共162页。3

18、60安全卫士360杀毒杀毒核心8/20/202242第42页,共162页。密码安全文件传输安全安全网络安全8/20/202243第43页,共162页。聊天记录漫游QQ会员管理?8/20/202244第44页,共162页。计08-2 刘新 QQ 软件结构8/20/202245第45页,共162页。8/20/202246第46页,共162页。计08-2 包伟伟 360软件结构8/20/202247第47页,共162页。8/20/202248第48页,共162页。8/20/202249第49页,共162页。4.2.4 好的软件设计特性1. 改进软件结构,提高模块独立性2. 模块规模适中3. 深度、宽

19、度、扇出和扇入4. 模块的作用域应该在控制域之内5. 降低模块接口的复杂性6. 模块功能可以预测目的:帮助改进软件设计,提高软件质量8/20/202250第50页,共162页。一、改进软件结构,提高模块独立性 1.审查软件结构是否合理宁要塔型不要饼型提倡瓮型8/20/202251第51页,共162页。教务WEB系统选课管理考试报名毕业设计科研项目论文管理成绩管理学生选课信息维护成绩查询SQL SERVERInterbase教务WEB系统8/20/202252第52页,共162页。iBATIS .NET 数据库访问类Mapper分页类Paginate选课管理SQL SERVERInterbase

20、常用数据转换工具类Tools教师模版页Js.master管理员模版页Gly.master学生模版页Xs.master考试报名毕业设计科研项目论文管理成绩管理选课管理信息维护成绩查询相关页面分页类继承自Paginate其他类如,课程类,成绩类,账号教务WEB系统8/20/202253第53页,共162页。一、改进软件结构,提高模块独立性 1.审查软件结构是否合理 2.提高模块独立性(观察耦合与内聚) 8/20/202254第54页,共162页。一、改进软件结构,提高模块独立性(1)选择工程量(2)选择工程量变更(3)填写申报表(3)填写申报表(3)填写申报表如果你仅仅因为一组方法具有相似的实现就

21、把它们放在一个模块里,那么你将犯“创建逻辑内聚对象(logically cohesive object)”的错误8/20/202255第55页,共162页。(1)选择工程量(2)选择工程量变更(3)填写申报表3个模块数据耦合8/20/202256第56页,共162页。(3)填写申报表8/20/202257第57页,共162页。(3)填写申报表(1)选择工程量8/20/202258第58页,共162页。(3)填写申报表(2)选择工程量变更8/20/202259第59页,共162页。1个模块管理6种单位信息逻辑内聚每个单位都有单位名称、法人代表8/20/202260第60页,共162页。1个主控模

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

23、、宽度、扇出和扇入 ABCDGFEJIHK扇出:某模块直接控制 的模块数如:C模块的扇出系数 为3扇出一般3-4较好 8/20/202266第66页,共162页。三、软件深度、宽度、扇出和扇入 ABCDGFEJIHK扇入:某模块被多少模块调用 如:I模块的扇入系数 为2(被E、F调用)扇入越多越好(在模块独立性允许原则下)8/20/202267第67页,共162页。控制8/20/202268第68页,共162页。三、软件深度、宽度、扇出和扇入 结论:一个好的软件结构,一般 上层扇出较高,中层扇出 较少,低层扇入较高。 (瓮型结构)提倡瓮型8/20/202269第69页,共162页。四、控制域与

24、作用域的关系1. 控制域:模块本身极其下属模块均属于 该模块的控制域 ABCDGFEJIHKA的控制域:A,B,C,D,E,F,G,H,I,J,KG的控制域:G,J,K8/20/202270第70页,共162页。 2.作用域的关系: 作用域:受该模块内判定影响的所有模块ABDHC的作用域:E,F,G,I,J,KCGFEJIK8/20/202271第71页,共162页。TOPXYABB2B1B:判定A:作用B-Y-AB1:作用8/20/202272第72页,共162页。TOPXYABB2B1B:根据Y输入的学号,读取成绩,判断学生毕业、肄业返回判断结果0授予学位证书1授予毕业证书2授予肄业证书A

25、:受B中的判断作用B的判定结果有模块Y输入根据判定结果打印相应证书B-Y-AB1:受B中的判定作用8/20/202273第73页,共162页。TOPXYABB2B1控制域与作用域的关系:作用域在控制域内且越近越好TOPXYABB2B1把做判断的点往上移,把判断从模块B移到模块Y。但B1的传递路径仍然比较长把那些在作用域内但不在控制域内的模块移到控制域内8/20/202274第74页,共162页。 五、降低模块接口的复杂程度 接口的影响: 1.接口简单,低耦合高内聚 2.接口复杂,高耦合低内聚8/20/202275第75页,共162页。降低模块接口的复杂性 模块接口复杂是软件发生错误的一个主要原

26、因。应该认真设计模块接口,使得信息传递简单并保持参数的一致性。 求一元二次方程的根的模块,比较:QUAD_ROOT(TBL,X) QUAD_ROOT (A,B,C,ROOTl,ROOT2) 8/20/202276第76页,共162页。六、模块功能可以预测一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出结果,这种模块的功能就是可以预测的 带有内部状态的模块的功能有时是不可预测的,因为它的输出取决于所处的状态,由于内部状态对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护 8/20/202277第77页,共162页。360浏览器中的两个URLse:homese:bl

27、ank8/20/202278第78页,共162页。4.3 图形工具4.3.1 层次图和HIPO图4.3.2 结构图(Structure Chart,SC)8/20/202279第79页,共162页。4.3.1层次图和HIPO图层次图用来描绘软件的层次结构。层次图中的矩形框表示模块矩形框间的连线表示调用关系HIPO图是美国IBM公司发明的“层次图+IPO图”的英文缩写层次图每个模块都加了编号与层次图中每个模块相对应,应该有一张IPO图描绘模块的处理过程。 HIPO图是由一个带编号的H图和一组模块的IPO图组成8/20/202280第80页,共162页。 4.3.1层次图和HIPO图1. 层次图(

28、H图)成绩管理系统3 录入成绩2 待录成绩单管理1查询3.1导入课程成绩3.2百分制成绩录入3.2等级制成绩录入2.1个别学生成绩单2.2成批学生成绩单1.1查询课程1.2 查询上课班级1.3 查询学生成绩8/20/202281第81页,共162页。 2. IPO图课程信息成绩数据文件学生信息百分制成绩等级制成绩2 待录成绩单管理3.1 导入课程成绩3.2 百分制成绩录入3.3 等级制成绩录入空成绩记录 成绩记录 3 录入成绩8/20/202282第82页,共162页。二、结构图:().传入模块:从下层模块取得数据,经过某些处理,再将其结果传递给上级模块。.传出模块:从上级模块获得数据,进行某

29、些处理,再将其结果传送给下级模块。.变换模块:从上级模块获得数据,进行特定处理,转换成其它形式,再将其结果传送给上级模块。x yx xy y8/20/202283第83页,共162页。二、结构图:().源模块: 不调用其它模块的传入模块。.漏模块: 不调用其它模块的传出模块。.协调模块: 对下属模块进行控制和管理的模块。 x x yx8/20/202284第84页,共162页。附加符号:(调用方式) 简单调用 选择调用 循环调用 B C ABCAX,yzz注意:表示调用关系不表示调用次序;2 不指明什么时间调用;3 层次图作为文档较合适。4 结构图作为检查复审软件结构的好方法。BC AD8/2

30、0/202285第85页,共162页。HIPO图和SC图的检验传送的每个数据元素是否为完成模块功能所必须的;完成模块功能必须的每个数据元素是否都传送来了;结构图上模块间的联系是否容易解释 检查设计的正确性和评价模块独立性8/20/202286第86页,共162页。4.4 结构化设计方法一、概念与步骤二、变换映射三、事务映射四、优化设计8/20/202287第87页,共162页。4.4 结构化设计方法(SD)一、有关概念 国际流行的应用最广泛的技术、最完善的系统设计方法基于数据流的系统分析、设计方法:SA和SD(这种方法在理论上可以适用于任何非并发软件的开发工作。)结构化设计(SD)任务:将系统

31、逻辑模型(DFD)软件结构图(HIPO图、SC图)指导思想:自顶向上的逐步求精8/20/202288第88页,共162页。DFD图软件结构方法映射方法:变换型DFD 变换映射事务型DFD 事务映射8/20/202289第89页,共162页。1.变换型 变换型特征:t输入流变换中心输出流数据随时间的推移而流动即:随着t的变化,输入流通过变换中心(变换流) 最后形成输出流。外部表示内部表示8/20/202290第90页,共162页。数字仪表板系统数据流图8/20/202291第91页,共162页。数字仪表 板控制接收传感 器信号数据转换 控制驱动仪表 板输出加/减速 显示 显示 mph 显示 里程

32、 显示 mpg发出铃声 发光二极 管显示 读旋转信号To _sps sps To rpm计算gph读燃料流 确定加/减速计算mph超速值计算 里程 计算 mpg数字仪表板控制系统软件结构8/20/202292第92页,共162页。2.事务型 事务型特征:事务事务中心T动作序列以事务中心为核心根据事务的要求去执行不同的通路8/20/202293第93页,共162页。3. 设计步骤复查并精化数据流图流类型导出接口描述和全程数据结构变换映射用启发式设计规则精化软件结构事务映射复 查“事务”“变换”详细设计有问题无问题8/20/202294第94页,共162页。二、变换映射 1. 步骤 识别输入边界、

33、输出边界和变换中心三部分。 逻辑输入:离物理输入端(输入始端)最远,但仍可作为输入的数据流。逻辑输出:离物理输出端(输出始端)最远,但仍可作为输出的数据流。进行第一级分解(映射顶层和第一层 )设计主控模块和第一层软件结构1)输入模块ca。 功能:为主控模块提供数据。2)输出模块ce。 功能:为主控模块提供数据的输出。3)变换模块ct。 功能:将逻辑输入转换为逻辑输出。8/20/202295第95页,共162页。二、变换映射 完成“第二级和下层的映射”任务:将DFD中的每一个处理映射到程序结构中的模块.方法:从变换中心的边界开始,沿输入路径和输出路径向外,将处理依次映射到从属层的软件结构优化软件

34、设计 具体做法?8/20/202296第96页,共162页。ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分8/20/202297第97页,共162页。ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分数据流动情况8/20/202298第98页,共162页。ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分8/20/202299第99页,共162页。ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分变换部分ABCPRWUVDEQabcdeprwuv传入部分传出部分8/20/2022100第100页,共162页。 MM3M2M1C

35、 , EC , EU, WU, W一级分解M1 E D C B AabcdeM2 R P QepC, prrU,wM3 V U Wwuv二级分解8/20/2022101第101页,共162页。二、变换映射 例1:已知汽车数字仪表板的功能描述和数据流 图,设计软件结构。假设数字仪表板将完成下述功能:1)通过模-数转换实现传感器和微处理机接口2)在面板上显示数据3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等4)指示加速或减速5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。 8/20/2022102第102页,共162页。数字仪表板系统数据流图8/20/

36、2022103第103页,共162页。二、变换映射 例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。 识别输入边界、输出边界和变换中心三部分8/20/2022104第104页,共162页。二、变换映射 例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。 识别输入、输出和变换中心三部分进行第一级分解(映射顶层和第一层 )设计主控模块和第一层软件结构1)输入模块。 功能:为主控模块提供数据。2)输出模块。 功能:为主控模块提供数据的输出。3)变换模块。 功能:将逻辑输入转换为逻辑输出。8/20/2022105第105页,共162页。数字仪表板系统数据流图 输入输出变换中心8/

37、20/2022106第106页,共162页。输入输出变换中心数字仪表 板控制接收传感 器信号数据转换 控制驱动仪表 板输出sps,rpm,gphmpg,mph,英里,超速值8/20/2022107第107页,共162页。二、变换映射 例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。 识别输入、输出和变换中心三部分进行第一级分解(映射顶层和第一层 ) 3 进行第二层分解(按子系统分解)8/20/2022108第108页,共162页。数字仪表板系统数据流图 输入输出变换中心输入8/20/2022109第109页,共162页。接收传感 器信号读旋转信 号计算 _sps sps 计算 rp

38、msps,rpm _sps,spssps计算gphgph读燃料流 燃料流输入结构8/20/2022110第110页,共162页。数字仪表板系统数据流图 输入变换中心输出8/20/2022111第111页,共162页。驱动仪表 板输出加/减速 显示 显示 mph 显示 里程 加/减速, mpg, mph英里,发生信息 显示 mpg发出铃声 发光二极 管显示 输出结构8/20/2022112第112页,共162页。数字仪表板系统数据流图 输入输出变换中心8/20/2022113第113页,共162页。数据转换控制 确定加/减速计算mph超速值计算 里程 计算 mpg变换结构8/20/2022114

39、第114页,共162页。数字仪表 板控制接收传感 器信号数据转换 控制驱动仪表 板输出加/减速 显示 显示 mph 显示 里程 显示 mpg发出铃声 发光二极 管显示 读旋转信号To _sps sps To rpm计算gph读燃料流 确定加/减速计算mph超速值计算 里程 计算 mpg数字仪表板控制系统软件结构8/20/2022115第115页,共162页。二、变换映射 例1:已知数字仪表板系统的功能描述和数据流 图设计软件结构。 识别输入、输出和变换中心三部分进行第一级分解(映射顶层和第一层 ) 3 进行下层分解(按子系统分解)4 优化8/20/2022116第116页,共162页。结构设计

40、的优化原则1、分割、合并模块和变动调用关系2、保持高扇入、低扇出的原则3、作用域、控制域规则8/20/2022117第117页,共162页。1、分割、合并模块和变动调用关系标准:提高内聚、降低耦合1)简化模块接口少用全局性数据减少模块间控制信息的传递2)考虑模块的规模过长的模块会增加理解的难度模块规模太小,会使模块间联系变得复杂3)适当变更模块在图上的位置方便计算机的处理8/20/2022118第118页,共162页。2、保持高扇入、低扇出的原则扇入高:上级模块多,能增加模块的利用率扇出低:下级模块少,减少模块调用和控制下级模块的复杂度。扇出数通常保持在34,不要超过57可以通过增加中间层的方

41、法减少扇出8/20/2022119第119页,共162页。3、作用域、控制域规则模块的作用域不应超出控制域的范围TOPXYABB2B18/20/2022120第120页,共162页。变换映射小结: 1.指导思想:自顶向下,逐步求精2.根据数据流图找出输入边界、输出边界和变换中心3.形成各层次的软件结构4.根据模块独立性和启发规则优化软件结 构。 8/20/2022121第121页,共162页。三、事务映射 (一)步骤识别事务输入、通路和事务中心三部分。 进行第一级分解(映射顶层和第一层 )设计事务控制模块和第一层软件结构1)输入模块。 功能:为主控模块提供数据。2)调度模块。 根据输入的要求调

42、度相应的执行通路 进行第二级分解: 设计中下层模块 方法:对通路再进行识别、划分、映射,反复此 过程直到全部映射完毕优化软件设计 8/20/2022122第122页,共162页。事务型SC图的上层结构第一级分解事务控制模块输入调度返回8/20/2022123第123页,共162页。动作分支的典型结构PTiT2T1DkD2A1D1A2A3Aj处理层:调度模块事务层操作层细节层返回8/20/2022124第124页,共162页。事务控制模块输入P(调度)TiT2T1DkD2A1D1A2A3Aj初始SC图事务层操作层细节层返回8/20/2022125第125页,共162页。 事务映射过程: 依据事务

43、型特征识别事务输入、通路、事务中心事务通路事务中心事务控制输入调度B2-2细节层 B-1 B-2 B-3操作层 A B C .事务层8/20/2022126第126页,共162页。典型的事务型软件结构产生事务事务处理8/20/2022127第127页,共162页。(二) 指导思想:自顶向下,逐步求精。 (三)什么是事务: 引起或触发某一动作的数据。(控制信号、事件或状态变化)8/20/2022128第128页,共162页。例2:汽车仪表板控制程序问题定义:仪表板有6个功能键,通过选择不同的 功能键可以完成6个不同的操作。功能要求: 1 初始化发动机的点火序列 2 启动雷达探测装置 3 显示发动

44、机状态,如:油压、温度 4 初始化“行程计算机”并输出数据 5 “行程计算机”清零 6 作废上次按下的功能键8/20/2022129第129页,共162页。功能要求: 1 初始化发动机的点火序列 2 启动雷达探测装置 3 显示发动机状态,如:油压、温度 4 初始化“行程计算机”并输出数据 5 “行程计算机”清零 6 作废上次按下的功能键123456汽车仪表板控制板显示器温度显示油压8/20/2022130第130页,共162页。消除反跳有效检查功能键动作输入行程计算机数据作废上次按键补救操作提示生成与显示消除反跳有效检查XK频段监视接收点火数码封锁点火器计时器取得发动机状态检查数码显示与告警距

45、离计算显示行程计算机按功能键“重试”提示“作废”提示行程数据.计算结果.油压、温度.告警提示“重复”提示重复次数太多点火数码表数码正确数码不正确数码距离信息距离接收信号数字按数字键#1#2#3#4#5#6“重试”提示输入事务中心通路8/20/2022131第131页,共162页。功能键控制读键板启动键板功能 点火码求值 雷达探测作废按键 发动机状态汽车仪表板控制上层结构键号键号8/20/2022132第132页,共162页。消除反跳有效检查功能键动作输入行程计算机数据作废上次按键补救操作提示生成与显示消除反跳有效检查XK频段监视接收点火数码封锁点火器计时器取得发动机状态检查数码显示与告警距离计

46、算显示行程计算机按功能键“重试”提示“作废”提示行程数据.计算结果.油压、温度.告警提示“重复”提示重复次数太多点火数码表数码正确数码不正确数码距离信息距离接收信号数字按数字键#1#2#3#4#5#6“重试”提示接收事务中心通路输入输出变换中心8/20/2022133第133页,共162页。雷达探测子系统结构雷达探测XK频段监视距离计算显示提示距离显示/告警距离正常距离#2告警响铃接收信号接收信号超限距离键号8/20/2022134第134页,共162页。消除反跳有效检查功能键动作输入行程计算机数据作废上次按键补救操作提示生成与显示消除反跳有效检查XK频段监视接收点火数码封锁点火器计时器取得发

47、动机状态检查数码显示与告警距离计算显示行程计算机按功能键“重试”提示“作废”提示行程数据.计算结果.油压、温度.告警提示“重复”提示重复次数太多点火数码表数码正确数码不正确数码距离信息距离接收信号数字按数字键#1#2#3#4#5#6“重试”提示接收事务中心通路输入输出变换中心8/20/2022135第135页,共162页。点火码求值子系统结构“封锁”提示封锁不正确码错误处理检查点火码接收点火码点火码求值正确码,不正确码数码数码数字键读入正确数码#1显示提示封锁计时器“重复”提示数字键号8/20/2022136第136页,共162页。汽车仪表板控制系统读键板启动键板功能接收点火码检查点火码错误处

48、理点火码求值雷达探测显示/告警XK频段监视距离计算作废按键数字键读入封锁计时器告警铃声显示提示发动机状态汽车仪表板控制系统软件结构SC8/20/2022137第137页,共162页。消除反跳有效检查功能键动作输入行程计算机数据作废上次按键补救操作提示生成与显示消除反跳有效检查XK频段监视接收点火数码封锁点火器计时器取得发动机状态检查数码显示与告警距离计算显示行程计算机按功能键“重试”提示“作废”提示行程数据.计算结果.油压、温度.告警提示“重复”提示重复次数太多点火数码表数码正确数码不正确数码距离信息距离接收信号数字按数字键#1#2#3#4#5#6“重试”提示接收事务中心通路8/20/2022

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

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

51、书单F4售书登记表F3各班学生用书表F2缺书登记表F1教材存量表1.6补售教材1.5登记缺书学生有效购书单进书通知学生1.2开发票1.1审查有效性采购1.3打印发票发票发票第二层DFD图教材销售系统1.4登记售书1.7打印领书单发票8/20/2022143第143页,共162页。2、鉴别DFD图的类型补售书单暂缺书单领书单发票购书单无效书单F4售书登记表F3各班学生用书表F2缺书登记表F1教材存量表1.6补售教材1.5登记缺书学生有效购书单进书通知学生1.2开发票1.1审查有效性采购1.3打印发票发票发票第二层DFD图教材销售系统1.4登记售书1.7打印领书单发票输入输出变换中心8/20/2022144第144页,共162页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论