软件工程CH04概要设计

上传人:青*** 文档编号:243141834 上传时间:2024-09-16 格式:PPTX 页数:152 大小:4.24MB
返回 下载 相关 举报
软件工程CH04概要设计_第1页
第1页 / 共152页
软件工程CH04概要设计_第2页
第2页 / 共152页
软件工程CH04概要设计_第3页
第3页 / 共152页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,中国矿业大学计算机科学与技术学院,Computer Science & Technology,*,*,软件工程(run jin n chn),软件工程(run jin n chn),刘迎春(yngchn),软件工程,9/16/2024,1,第一页,共152页。,第四章 概要(giyo)设计,问题定义,可行性研究,可行否?,否,是,需求分析,终止项目,概要设计,计划,时期,开发,时期,主要(zhyo)内容,4.1 任务,4.2 软件结构设计及优化,4.3 图形工具,4.4 结构化设计(方法),4.5 数据结构设计,9/16/2024,2,第二页,共152页。,【起点】,需求分析阶段得出的DFD图,数据字典,【任务】,从需求分析阶段的工作结果出发,进行软件结构设计与数据设计,编写概要设计说明书。,软件结构设计(是概要设计阶段的主要工作),系统中每个程序由哪些模块组成,以及(yj)这些模块间的关系,数据设计将分析阶段创建的信息模型(数据字典)转换为实现系统所需要的数据结构,9/16/2024,3,第三页,共152页。,【方案选择】,分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划,通常至少选取(xunq)低成本、中等成本及高成本的三种方案,9/16/2024,4,第四页,共152页。,【结构设计的任务】,建立良好的模块功能结构,确定模块、模块间的关系,【主要内容】,4.2.1 模块和模块化,4.2.2 软件结构风格(fngg),4.2.3 耦合与内聚,4.2.4 好的软件设计特性,9/16/2024,5,第五页,共152页。,4.2.1 模块(m kui)和模块(m kui)化,【1、模块】,数据说明、可执行语句等程序对象的集合。,单独命名且可通过名字来访问,如表单(Form、窗口)、过程、函数等。,【基本属性】,功能:描述该模块实现的功能;,状态:该模块使用时的环境和条件;,逻辑:描述模块内部怎么做;,【内部特性、外部特性】,内部特性是指完成其功能的程序代码和仅供该模块内部使用的数据,外部特性是指模块名和参数表(输入参数、输出参数),以及对程序及整个(zhngg)系统造成的影响,使用黑盒子的概念,站在较高的层次上进行思维,,从而(cng r)避免过早地陷入具体的条件逻辑、算法和过程步等实现细节,9/16/2024,6,第六页,共152页。,4.2.1 模块(m kui)和模块(m kui)化,【2、模块化】,把系统(xtng)划分成若干个模块,每个模块完成一个子功能,模块既独立且相互之间又有一定的联系,把他们组成一个有机的整体,完成指定的功能。,高层模块隐蔽了细节,能够从整体上把握问题,需要时,可以深入较低层次以了解进一步的细节,模块化是软件结构设计(shj)的一个基本准则,9/16/2024,7,第七页,共152页。,Netscape公司(n s)的故事1/3,对于PC软件,有一个神话讲:设计不是很重要,因为市场是随着时间改变的。在这方面Netscape公司的倒闭是一个值得深思的故事。,最初Illinois大学的NCSA Mosaic小组开发(kif)了第一个广泛使用的浏览器。他们创建了Netscape公司,在1994年4月到12月之间发行了,它可以在3个平台上运行,很快就成为了Windows、Unix和Mac上的占有统治地位的浏览器。Microsoft公司于1994年10月开始开发(kif)Internet ,并在1995年绑定在Windows 95上。,9/16/2024,8,第八页,共152页。,Netscape公司(n s)的故事2/3,从1995年到1997年,在Netscape公司的快速发展期间,开发者努力工作来产生新的特点,而很少花时间进行设计。,Microsoft公司意识到了需要建立可靠的设计,它使用共享组件重构Office套装,建立了NT操作系统, 并花费了时间来重构。拉近了与Netscape的差距。,Netscape的开发在继续。通过Communicator 4.0 ,已有120个开发者(从最初的10个)和3百万行代码。Michael Toy(开发经理(jngl))说道:,“我们处于一个很坏的情形下我们应该在一年前就停住绑定这些代码。这是死的这就像被粗鲁地唤醒我们为走得太快而付出了代价。”,9/16/2024,9,第九页,共152页。,Netscape公司(n s)的故事3/3,1997年Netscape公司内部关于模块设计的争论,Netscape用了2个月来重新(chngxn)设计浏览器,但是这还不够长。,版本作为开源发布,但是这也毫无帮助:没有人想在类似意大利细面条似的代码上进行工作。,最后,Microsoft赢得了浏览器的战争,AOL收购了Netscape。当然,这不是Microsoft浏览器战胜Netscape浏览器的全部故事。,9/16/2024,10,第十页,共152页。,资本(zbn)市场,供应(gngyng)市场,协同(xitng)供应,协同计划,协同设计,供应链管理,协同服务,协同销售,客户关系管理,协同市场,投资者关系管理,战略目标管理,管理驾驶,舱,企业绩效管理,财务管理,财务会计,管理会计,税务会计,资金管理,计划,管理,车间管理,质量管理,设备管理,人力资源管理,人事管理,薪酬管理,招聘培训,绩效管理,办公自动化,知识管理,信息门户,内容管理,采购管理,制造管理,物流管理,仓存管理,销售管理,分销管理,采购管理,消费市场,知识市场,例:金蝶,K/3 ERP系统,的结构,9/16/2024,11,第十一页,共152页。,K/3模块(m kui)配置,行业(hngy)应用配置,政,府,财,政,信,托,管,理,证,券,管,理,银,行,管,理,金蝶 K/3 标准产品,第,三,方,产,品,接,口,工,具,集,医,药,GSP,房,地,产,进,出,口,医,药,GMP,汽,车,DMS,业务环境配置,个性化业务需求设计,按角色配置,多语言配置,应用集成配置,业务流程配置,成功企业流程快速复制,柔性化流程设计,灵活的管理控制方式,9/16/2024,12,第十二页,共152页。,选,课,管,理,考,试,报,名,毕,业,设,计,科,研,项,目,论,文,管,理,成,绩,管,理,排,课,管,理,信,息,维,护,成,绩,查,询,SQL SERVER,Interbase,教务(jiow)WEB系统,9/16/2024,13,第十三页,共152页。,iBATIS .NET,数据库访问(fngwn)类Mapper,分页类Paginate,选,课,管,理,SQL SERVER,Interbase,常用数据(shj)转换工具类Tools,教师(jiosh)模版页,管理员模版页,学生模版页,考,试,报,名,毕,业,设,计,科,研,项,目,论,文,管,理,成,绩,管,理,排,课,管,理,信,息,维,护,成,绩,查,询,相关页面分页类,继承自,Paginate,其他类,如,课程类,成绩类,账号,9/16/2024,14,第十四页,共152页。,4.2.2 软件结构风格(fngg),软件结构风格,程序的模块结构,各个模块的组织情况(qngkung),一个模块和其它模块的独立程度是评价一个设计好坏的重要度量尺度。,软件结构风格的总体要求独立性高,一个模块的功能不是同其它模块紧密地联系在一起。,9/16/2024,15,第十五页,共152页。,4.2.2 软件结构风格(fngg),【独立性高的优点】,当一个模块的功能不是同其它模块紧密地联系(linx)在一起时,独立性较强,比较容易理解;,独立性较强的模块修改时不会或者较小的影响其他模块。,独立性较强的模块修改不容易受其他模块改变的影响。,如何评价模块间联系(linx)的紧密程度?,9/16/2024,16,第十六页,共152页。,4.2.3 耦合与内聚,耦合,模块之间的互相依赖的紧密程度的度量,耦合越松散,模块之间的联系就越小,内聚,模块内部各个元素(yun s)彼此结合的紧密程度的度量,内聚越高,模块内部各成份之间的关联也就越强,独立性强的模块(m kui)应是高内聚、低耦合的模块(m kui),9/16/2024,17,第十七页,共152页。,1 耦合:模块(m kui)间联系的程度。,(依赖于模块(m kui)间接口的复杂性),非直接(zhji)耦合,数据(shj)耦合,特征耦合,控制耦合,外部耦合,公共耦合,内容耦合,1),非直接耦合,:,两模块间没有直接关系。,主控,模块2,模块1,模块4,模块3,例如 :模块1和模块2,无直接联系。,9/16/2024,18,第十八页,共152页。,2)数据耦合:两模块间交换的是简单(jindn)数据(输入、输出参数),计算(j sun)应扣款,计算(j sun)水费,计算电费,用水量,水费,电费,用电量,9/16/2024,19,第十九页,共152页。,3)特征耦合:模块间交换(jiohun)的是数据结构(输入、输出参数),计算(j sun)应扣款,计算(j sun)总扣除,房租水电,总扣除,房租水电=,用水量+用电量+租房开始日期,房租水电=,用水量+用电量+租期,9/16/2024,20,第二十页,共152页。,4) 控制(kngzh)耦合:,传递的信息中有控制(kngzh)信息(中等耦合),如果一个模,块通过传送开,关、标志、名,字等控制(kngzh)信息,,明显地控制(kngzh)选,择另一模块的,功能,就是控,制耦合。,9/16/2024,21,第二十一页,共152页。,5)外部耦合:一组模块(m kui)都访问同一全局变量,主控,模块2,模块1,模块4,模块3,日期(rq),9/16/2024,22,第二十二页,共152页。,6)公共耦合:一组模块都访问(fngwn)同一全局数据结构,主控,模块2,模块1,模块4,模块3,数据结构(sh j ji u)、文件或数据库,9/16/2024,23,第二十三页,共152页。,某个模块究竟用了哪几个数据?,某个数据究竟被哪几个模块使用 ?,使用公共数据区的任模块如果出现BUG,该BUG是否会是其他使用该数据区的模块造成的?,该BUG可能会影响那些使用该数据区的模块?,数据的名称、类型发生变化;,要寻找(xnzho)哪些模块随之改变。,外部(wib)、公共耦合带来的复杂性,必须弄清修改影响(yngxing)的范围,不要轻率地进行修改,9/16/2024,24,第二十四页,共152页。,7) 内容(nirng)耦合:(最高的耦合),.,.,.,GOTO A,.,.,.,.,A: . .,.,.,1) 一个模块直接调用另一个模块中的数据。,2) 一个模块直接转移到另一个模块中去。,3) 一个模块有多个入口。,4) 两个(lin )模块有一部分程序代码重叠。,病态耦合关系!,M,N,9/16/2024,25,第二十五页,共152页。,非直接耦合,数据耦合,特征耦合,控制耦合,外部耦合,公共耦合,内容耦合,低,高,结论:,耦合是影响软件复杂程度的重要因素,尽量使用数据耦合,少用控制耦合,限制外部和公共耦合,不用(byng)病态的内容耦合。,9/16/2024,26,第二十六页,共152页。,耦合练习(linx),下图中的程序由A、B、C、D、E 5个模块组成,下表中描述了这些模块之间的接口,每个接口有一个编号。此外,模块A、D和E都要引用一个专用数据区。那么A和E之间耦合关系是_(10)_。,A公共(gnggng)耦合 B控制耦合,C内容耦合 D无耦合,编号,参数,返回值,1,数据项,数据项,2,数据项,数据项,3,功能码,无,4,功能码,列表,5,无,列表,A,9/16/2024,27,第二十七页,共152页。,1)偶然内聚:模块内各组成(z chn)成分在功能上是 不相关。,如:把几个模块都要执行的一组语句放到一个模块中。偶然的原因把他们放在一块,偶然(u rn)内聚,逻辑(lu j)内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚,2,内聚,:模块内各成份间的紧密程度,j+,i,j,k,i+,k+,9/16/2024,28,第二十八页,共152页。,2)逻辑内聚:,通常(tngchng)由若干个逻辑功能相同或相似的成份组成;,目的:省去程序中的重复部分,如:计算全班学生的平均分和最高分,9/16/2024,29,第二十九页,共152页。,读入分数,平均 / 最高,计算最高,计算平均,输出结果,逻辑功能相同,逻辑功能相同,可能需要从模块外引入用作判断的开关(kigun)量,,形成控制耦合,9/16/2024,30,第三十页,共152页。,3)时间(shjin)内聚:相同的时间(shjin)执行的成分组合在,一个模块内。,如:对系统的初始化等一系列的工作。,9/16/2024,31,第三十一页,共152页。,4)过程内聚:一个模块内部包含一组任务并,必须(bx)以特定次序执行。(中等),读取顾客(gk)的姓名,读取顾客(gk)的地址,读取顾客的电话号码,9/16/2024,32,第三十二页,共152页。,5)通信内聚:模块(m kui)内使用了同一组输入数据,,或产生同一组的输出结果。,开领书单,登记(dngj)售书,领书单,售书登记表,有效(yuxio),书单,9/16/2024,33,第三十三页,共152页。,5)通信内聚:模块内使用了同一组输入数据(shj),,或产生同一组的输出结果。,计算(j sun)年龄,输出(shch),年龄,计算工资,输出,工资,雇员生日,9/16/2024,34,第三十四页,共152页。,5)通信内聚:模块内使用了同一组输入数据,,或产生(chnshng)同一组的输出结果。,新增,9/16/2024,35,第三十五页,共152页。,9/16/2024,36,第三十六页,共152页。,6)顺序内聚:模块(m kui)中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入,9/16/2024,37,第三十七页,共152页。,6)顺序内聚:模块中各成份密切相关,一个(y )组成部分的输出作为另一个(y )组成部分的输入,计算(j sun)年龄,输出(shch),年龄,计算工资,输出,工资,雇员生日,9/16/2024,38,第三十八页,共152页。,7)功能内聚:模块(m kui)内部各成份结合在一起完成,单一的功能。,如:按雇员生日,计算年龄,计算(j sun)年龄,输出(shch),年龄,雇员生日,9/16/2024,39,第三十九页,共152页。,结论:尽量(jnling)采用功能内聚避免逻,辑和耦然内聚。,偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚,高,低,一个(y )模块一个(y )功能,是软件设计人员模块化设计的一条准则,9/16/2024,40,第四十页,共152页。,耦合与内聚的衡量(hng ling),内聚度高,耦合弱,标志(biozh)着模块的独立性强;,实践证明,内聚比耦合更重要,应该把更多注意力集中到提高模块的内聚度上来。,9/16/2024,41,第四十一页,共152页。,360安全卫士,360杀毒(sh d),杀毒(sh d)核心,9/16/2024,42,第四十二页,共152页。,密码(m m)安全,文件传输安全(nqun),安全(nqun),网络安全,9/16/2024,43,第四十三页,共152页。,聊天记录,漫游(mnyu),QQ会员(huyun),管理,?,9/16/2024,44,第四十四页,共152页。,计08-2 刘新 QQ 软件结构,9/16/2024,45,第四十五页,共152页。,9/16/2024,46,第四十六页,共152页。,计08-2 包伟伟 360软件结构,9/16/2024,47,第四十七页,共152页。,9/16/2024,48,第四十八页,共152页。,9/16/2024,49,第四十九页,共152页。,4.2.4 好的软件设计特性(txng),1. 改进软件结构,提高模块独立性,2. 模块规模适中,3. 深度、宽度、扇出和扇入,4. 模块的作用域应该(ynggi)在控制域之内,5. 降低模块接口的复杂性,6. 模块功能可以预测,目的:帮助改进软件设计,提高(t go)软件质量,9/16/2024,50,第五十页,共152页。,一、改进软件结构,提高(t go)模块独立性,宁要塔型,不要饼型,提倡瓮型,9/16/2024,51,第五十一页,共152页。,教务(jiow)WEB系统,选,课,管,理,考,试,报,名,毕,业,设,计,科,研,项,目,论,文,管,理,成,绩,管,理,学,生,选,课,信,息,维,护,成,绩,查,询,SQL SERVER,Interbase,教务(jiow)WEB系统,9/16/2024,52,第五十二页,共152页。,iBATIS .NET,数据库访问(fngwn)类Mapper,分页类Paginate,选,课,管,理,SQL SERVER,Interbase,常用数据转换(zhunhun)工具类Tools,教师(jiosh)模版页,管理员模版页,学生模版页,考,试,报,名,毕,业,设,计,科,研,项,目,论,文,管,理,成,绩,管,理,选,课,管,理,信,息,维,护,成,绩,查,询,相关页面分页类,继承自,Paginate,其他类,如,课程类,成绩类,账号,教务WEB系统,9/16/2024,53,第五十三页,共152页。,一、改进软件结构,提高(t go)模块独立性,2.提高(t go)模块独立性(观察耦合与内聚),9/16/2024,54,第五十四页,共152页。,一、改进软件结构,提高(t go)模块独立性,(1),选择(xunz)工程量,(2),选择(xunz)工程量变更,(3),填写申报表,(3),填写申报表,(3),填写申报表,如果你仅仅因为一组方法具有相似的实现就把它们放在一个模块里,那么你将犯“创建逻辑内聚对象(logically cohesive object)”的错误,9/16/2024,55,第五十五页,共152页。,(1),选择(xunz)工程量,(2),选择(xunz)工程量变更,(3),填写(tinxi)申报表,3个模块,数据耦合,9/16/2024,56,第五十六页,共152页。,(3),填写(tinxi)申报表,9/16/2024,57,第五十七页,共152页。,(3),填写(tinxi)申报表,(1),选择(xunz)工程量,9/16/2024,58,第五十八页,共152页。,(3),填写(tinxi)申报表,(2),选择(xunz)工程量变更,9/16/2024,59,第五十九页,共152页。,1个模块,管理6种单位信息(xnx),逻辑内聚,每个单位都有单位名称、法人代表,9/16/2024,60,第六十页,共152页。,1个主控模块(m kui),2个中间控制模块(m kui)(新建、打开/编辑),6种新建单位模块(m kui),6中单位编辑模块(m kui),1个删除单位模块(m kui),1个单位类型管理模块(m kui),通信内聚,9/16/2024,61,第六十一页,共152页。,打开/编辑(binj)监理单位,9/16/2024,62,第六十二页,共152页。,二、模块(m kui)规模要适中,60行?,30行?,100行?,过少模块(m kui)增多接口代价高,过多模块(m kui)内的复杂度提高,9/16/2024,63,第六十三页,共152页。,三、软件(run jin)深度、宽度、扇出和扇入,深,度,深度(shnd):软件结构控制的层数,(049),9/16/2024,64,第六十四页,共152页。,三、软件深度(shnd)、宽度、扇出和扇入,宽度(kund):软件结构中最多模块,层的模块数,宽度,9/16/2024,65,第六十五页,共152页。,三、软件(run jin)深度、宽度、扇出和扇入,A,B,C,D,G,F,E,J,I,H,K,扇出:某模块直接控制(kngzh),的模块数,如:C模块的扇出系数,为3,扇出一般3-4较好,9/16/2024,66,第六十六页,共152页。,三、软件(run jin)深度、宽度、扇出和扇入,A,B,C,D,G,F,E,J,I,H,K,扇入:某模块被多少模块调用(dioyng),如:I模块的扇入系数,为2(被E、F调用(dioyng)),扇入越多越好,(在模块独立性允许原则下),9/16/2024,67,第六十七页,共152页。,控,制,9/16/2024,68,第六十八页,共152页。,三、软件深度(shnd)、宽度、扇出和扇入,结论:一个好的软件结构,,一般上层(shngcng)扇出较高,中层,扇出较少,低层扇入较高。,(瓮型结构),提倡瓮型,9/16/2024,69,第六十九页,共152页。,四、控制(kngzh)域与作用域的关系,1. 控制域:模块本身(bnshn)极其下属模块均属于,该模块的控制域,A,B,C,D,G,F,E,J,I,H,K,A的控制(kngzh)域:A,B,C,D,E,F,G,H,I,J,K,G的控制(kngzh)域:G,J,K,9/16/2024,70,第七十页,共152页。,2.作用域的关系:,作用域:受该模块(m kui)内判定影响的所有模块(m kui),A,B,D,H,C的作用域:E,F,G,I,J,K,C,G,F,E,J,I,K,9/16/2024,71,第七十一页,共152页。,TOP,X,Y,A,B,B2,B1,B:判定(pndng),A:作用(zuyng),B-Y-A,B1:作用(zuyng),9/16/2024,72,第七十二页,共152页。,TOP,X,Y,A,B,B2,B1,B:,根据Y输入的学号,读取成绩,,判断(pndun)学生毕业、肄业,返回判断(pndun)结果,0授予学位证书,1授予毕业证书,2授予肄业证书,A:受B中的判断作用,B的判定结果有模块(m kui)Y输入,根据判定结果打印相应证书,B-Y-A,B1:受B中的判定(pndng)作用,9/16/2024,73,第七十三页,共152页。,TOP,X,Y,A,B,B2,B1,控制(kngzh)域与作用域的关系:,作用域在控制(kngzh)域内且越近越好,TOP,X,Y,A,B,B2,B1,把做判断的点往上移,,把判断从模块(m kui)B移到模块(m kui)Y。,但B1的传递路径仍然比较长,把那些在作用域内,但不在控制(kngzh)域内,的模块移到控制(kngzh)域内,9/16/2024,74,第七十四页,共152页。,五、降低(jingd)模块接口的复杂程度,接口的影响:,简单(jindn),低耦合高内聚,复杂,高耦合低内聚,9/16/2024,75,第七十五页,共152页。,降低(jingd)模块接口的复杂性,模块接口复杂是软件发生错误的一个主要原因。应该认真设计(shj)模块接口,使得信息传递简单并保持参数的一致性。,求一元二次方程的根的模块,比较:,QUAD_ROOT(TBL,X),QUAD_ROOT (A,B,C,ROOTl,ROOT2),9/16/2024,76,第七十六页,共152页。,六、模块功能可以(ky)预测,一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出结果(ji gu),这种模块的功能就是可以预测的,带有内部状态的模块的功能有时是不可预测的,因为它的输出取决于所处的状态,由于内部状态对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护,9/16/2024,77,第七十七页,共152页。,360浏览器中的两个(lin )URL,se:home,se:blank,9/16/2024,78,第七十八页,共152页。,4.3 图形(txng)工具,4.3.1 层次(cngc)图和HIPO图,4.3.2 结构图(Structure Chart,SC),9/16/2024,79,第七十九页,共152页。,层次(cngc)图和HIPO图,层次图用来描绘软件的层次结构。,层次图中的矩形框表示模块(m kui),矩形框间的连线表示调用关系,HIPO图是美国IBM公司发明的“层次图+IPO图”的英文缩写,层次图每个模块(m kui)都加了编号,与层次图中每个模块(m kui)相对应,应该有一张IPO图描绘模块(m kui)的处理过程。,HIPO图是由,一个(y )带编号的H图和一组模块的IPO图组成,9/16/2024,80,第八十页,共152页。,1. 层次(cngc)图(H图),成绩(chngj)管理系统,3,录入(l r)成绩,2,待录成绩单管理,1,查询,导入,课程,成绩,百分制成绩录入,等级制,成绩录入,个别学生成绩单,成批学生成绩单,查询,课程,1.2,查询,上课,班级,1.3,查询,学生,成绩,9/16/2024,81,第八十一页,共152页。,2.,IPO,图,课程(kchng)信息,成绩数据文件,学生信息,百分制成绩,等级制成绩,2 待录成绩单管理(gunl),3.1 导入课程成绩,3.2,百分制成绩录入,3.3,等级制成绩录入,空成绩(chngj)记录,成绩(chngj)记录,3 录入成绩,9/16/2024,82,第八十二页,共152页。,二、结构图:(,),.传入模块:从下层模块取得数据,经过某些处理,再将其结果传递(chund)给上级模块。,.传出模块:从上级模块获得数据,进行某些处理,再将其结果传送给下级模块。,.变换模块:从上级模块获得数据,进行特定处理,转换成其它形式,再将其结果传送给上级模块。,x,y,x,x,y,y,9/16/2024,83,第八十三页,共152页。,二、结构图:(,),.源模块(m kui):,不调用其它模块(m kui)的传入模块(m kui)。,.漏模块(m kui):,不调用其它模块(m kui)的传出模块(m kui)。,.协调模块(m kui):,对下属模块(m kui)进行控制和管理的模块(m kui)。,x,x,y,x,9/16/2024,84,第八十四页,共152页。,附加符号(fho):(调用方式),选择调用,循环调用,B,C,A,注意:,表示调用关系,不表示调用次序;,2 不指明什么时间调用;,3 层次(cngc)图作为文档较合适。,4 结构图作为检查复审软件结构的好方法。,B,C,A,D,9/16/2024,85,第八十五页,共152页。,HIPO图和SC图的检验(jinyn),传送的每个数据(shj)元素是否为完成模块功能所必须的;,完成模块功能必须的每个数据(shj)元素是否都传送来了;,结构图上模块间的联系是否容易解释,检查设计的正确性和评价(pngji)模块独立性,9/16/2024,86,第八十六页,共152页。,4.4 结构化设计(shj)方法,一、概念与步骤(bzhu),二、变换映射,三、事务映射,四、优化设计,9/16/2024,87,第八十七页,共152页。,4.4 结构化设计(shj)方法(SD),一、有关概念,国际流行的应用最广泛的技术、最完善的系统设计方法,基于数据流的系统分析、设计方法:SA和SD,(这种方法在理论上可以适用于任何非并发(bngf)软件的开发工作。),结构化设计(SD)任务:,将系统逻辑模型(DFD),软件结构图(HIPO图、SC图),指导思想:自顶向上的逐步求精,9/16/2024,88,第八十八页,共152页。,DFD图,软件结构,方法(fngf),映射(yngsh),方法:,变换(binhun)型DFD 变换(binhun)映射,事务型DFD 事务映射,9/16/2024,89,第八十九页,共152页。,变换(binhun)型特征:,t,输,入,流,变换(binhun),中心,输,出,流,数据随时间的推移而流动,即:随着t的变化(binhu),输入流通过变换中心(变换流),最后形成输出流。,外部表示,内部表示,9/16/2024,90,第九十页,共152页。,数字(shz)仪表板系统数据流图,9/16/2024,91,第九十一页,共152页。,数字(shz)仪表,板控制,接收(jishu)传感,器信号,数据(shj)转换,控制,驱动仪表,板输出,加/减速,显示,显示 mph,显示,里程,显示,mpg,发出,铃声,发光二极,管显示,读旋转,信号,To,_,sps,sps,To rpm,计算,gph,读燃,料流,确定,加/减速,计算mph,超速值,计算,里程,计算,mpg,数字仪表板控制系统软件结构,9/16/2024,92,第九十二页,共152页。,事务(shw)型特征:,事务(shw),事务(shw)中心,T,动作序列,以事务中心为核心,根据,事务,的要求,去执行不同的,通路,9/16/2024,93,第九十三页,共152页。,3. 设计(shj)步骤,复查(fch)并精化数据流图,流类型(lixng),导出接口描述和全程数据结构,变换映射,用启发式设计规则精化软件结构,事务映射,复 查,“事务”,“变换”,详细设计,有问题,无问题,9/16/2024,94,第九十四页,共152页。,二、变换(binhun)映射,1. 步骤,识别输入(shr)边界、输出边界和变换中心三部分。,逻辑输入(shr):离物理输入(shr)端(输入(shr)始端)最远,但仍可作为输入(shr)的数据流。,逻辑输出:离物理输出端(输出始端)最远,但仍可作为输出的数据流。,进行第一级分解(映射顶层和第一层 ),设计主控模块(m kui)和第一层软件结构,1)输入模块(m kui)ca。,功能:为主控模块(m kui)提供数据。,2)输出模块(m kui)ce。,功能:为主控模块(m kui)提供数据的输出。,3)变换模块(m kui)ct。,功能:将逻辑输入转换为逻辑输出。,9/16/2024,95,第九十五页,共152页。,二、变换(binhun)映射,完成“第二级和下层的映射”,任务:将DFD中的每一个(y )处理映射到程序结构中的模块.,方法:从变换中心的边界开始,沿输入路径和输出路径向外,将处理依次映射到从属层的软件结构,优化软件设计,具体做法?,9/16/2024,96,第九十六页,共152页。,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入(chun r)部分,传出部分(b fen),变换(binhun)部分,9/16/2024,97,第九十七页,共152页。,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入(chun r)部分,传出部分(b fen),变换(binhun)部分,数据流动情况,9/16/2024,98,第九十八页,共152页。,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入(chun r)部分,传出部分(b fen),变换(binhun)部分,9/16/2024,99,第九十九页,共152页。,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入部分,传出部分,变换部分,变换部分,A,B,C,P,R,W,U,V,D,E,Q,a,b,c,d,e,p,r,w,u,v,传入部分,传出部分,9/16/2024,100,第一百页,共152页。,M,M3,M2,M1,C , E,C , E,U, W,U, W,一级分解(fnji),M1,E,D,C,B,A,a,b,c,d,e,M2,R,P,Q,e,p,C, p,r,r,U,w,M3,V,U,W,w,u,v,二级分解(fnji),9/16/2024,101,第一百零一页,共152页。,二、变换(binhun)映射,例1:已知汽车数字仪表板的功能描述和数据流,图,设计软件结构。,假设数字仪表板将完成下述功能:,1)通过模-数转换实现传感器和微处理机接口,2)在面板上显示数据,3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等,4)指示加速或减速(jin s),5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。,9/16/2024,102,第一百零二页,共152页。,数字(shz)仪表板系统数据流图,9/16/2024,103,第一百零三页,共152页。,二、变换(binhun)映射,例1:已知数字仪表板系统的功能描述(mio sh)和数据流,图设计软件结构。,识别输入边界(binji)、输出边界(binji)和变换中心三部分,9/16/2024,104,第一百零四页,共152页。,二、变换(binhun)映射,例1:已知数字仪表板系统的功能(gngnng)描述和数据流,图设计软件结构。,识别输入、输出(shch)和变换中心三部分,进行第一级分解,(映射顶层和第一层 ),设计主控模块和第一层软件结构,1)输入模块。,功能:为主控模块提供数据。,2)输出模块。,功能:为主控模块提供数据的输出。,3)变换模块。,功能:将逻辑输入转换为逻辑输出。,9/16/2024,105,第一百零五页,共152页。,数字(shz)仪表板系统数据流图,输入(shr),输出(shch),变换中心,9/16/2024,106,第一百零六页,共152页。,输入(shr),输出(shch),变换(binhun)中心,数字仪表,板控制,接收传感,器信号,数据转换,控制,驱动仪表,板输出,sps,rpm,gph,mpg,mph,英里,超速值,9/16/2024,107,第一百零七页,共152页。,二、变换(binhun)映射,例1:已知数字仪表板系统(xtng)的功能描述和数据流,图设计软件结构。,识别输入(shr)、输出和变换中心三部分,进行第一级分解(映射顶层和第一层 ),3,进行第二层分解,(按子系统分解),9/16/2024,108,第一百零八页,共152页。,数字(shz)仪表板系统数据流图,输入(shr),输出,变换中心,输入(shr),9/16/2024,109,第一百零九页,共152页。,接收(jishu)传感,器信号,读旋转(xunzhun)信,号,计算(j sun) _,sps sps,计算 rpm,sps,rpm,_,sps,sps,sps,计算,gph,gph,读燃料流,燃料流,输入结构,9/16/2024,110,第一百一十页,共152页。,数字(shz)仪表板系统数据流图,输入,变换中心,输出(shch),9/16/2024,111,第一百一十一页,共152页。,驱动仪表(ybio),板输出,加/减速(jin s),显示,显示(xinsh) mph,显示,里程,加/减速,mpg, mph,英里,发生信息,显示,mpg,发出,铃声,发光二极,管显示,输出结构,9/16/2024,112,第一百一十二页,共152页。,数字(shz)仪表板系统数据流图,输入,输出,变换(binhun)中心,9/16/2024,113,第一百一十三页,共152页。,数据(shj)转,换控制,确定(qudng),加/减速,计算(j sun)mph,超速值,计算,里程,计算,mpg,变换结构,9/16/2024,114,第一百一十四页,共152页。,数字仪表(ybio),板控制,接收(jishu)传感,器信号,数据转换(zhunhun),控制,驱动仪表,板输出,加/减速,显示,显示 mph,显示,里程,显示,mpg,发出,铃声,发光二极,管显示,读旋转,信号,To,_,sps,sps,To rpm,计算,gph,读燃,料流,确定,加/减速,计算mph,超速值,计算,里程,计算,mpg,数字仪表板控制系统软件结构,9/16/2024,115,第一百一十五页,共152页。,二、变换(binhun)映射,例1:已知数字仪表板系统的功能描述(mio sh)和数据流,图设计软件结构。,识别输入、输出(shch)和变换中心三部分,进行第一级分解(映射顶层和第一层 ),3,进行下层分解(按子系统分解),4 优化,9/16/2024,116,第一百一十六页,共152页。,结构设计的优化原则(yunz),1、分割、合并模块和变动调用关系,2、保持高扇入、低扇出的原则,3、作用域、控制(kngzh)域规则,9/16/2024,117,第一百一十七页,共152页。,变换映射(yngsh)小结:,1.指导思想:自顶向下,逐步求精,2.根据数据流图找出输入边界(binji)、输出边界(binji)和变换中心,构。,9/16/2024,118,第一百一十八页,共152页。,三、事务映射(yngsh),(一) 指导思想:自顶向下,逐步求精。,(二)什么是事务:,引起或触发某一动作的数据。,(控制信号、事件或状态变化),9/16/2024,119,第一百一十九页,共152页。,三、事务映射(yngsh),(三)步骤,识别事务输入、通路(tngl)和事务中心三部分。,进行第一级分解(映射顶层和第一层 ),设计事务控制模块(m kui)和第一层软件结构,1)输入模块(m kui)。,功能:为主控模块(m kui)提供数据。,2)调度模块(m kui)。,根据输入的要求调度相应的执行通路,进行第二级分解: 设计中下层模块,方法:对通路再进行识别、划分、映射,反复此,过程直到全部映射完毕,优化软件设计,9/16/2024,120,第一百二十页,共152页。,事务(shw)型SC图的上层结构第一级分解,事务控制(kngzh)模块,输入(shr),调度,返回,9/16/2024,121,第一百二十一页,共152页。,动作分支(fnzh)的典型结构,P,Ti,T2,T1,Dk,D2,A1,D1,A2,A3,Aj,处理层:调度(diod)模块,事务(shw)层,操作层,细节层,返回,9/16/2024,122,第一百二十二页,共152页。,事务(shw)控制模块,输入(shr),P(调度(diod)),Ti,T2,T1,Dk,D2,A1,D1,A2,A3,Aj,初始SC图,事务层,操作层,细节层,9/16/2024,123,第一百二十三页,共152页。,事务映射过程:,依据事务型特征识别事务输入(shr)、通路、事务中心,事务(shw),通路(tngl),事务中心,事务控制,输入,调度,B2-2,细节层,B-1,B-2,B-3,操作层,A,B,C,.,事务层,9/16/2024,124,第一百二十四页,共152页。,典型(dinxng)的事务,型软件结构,产生(chnshng)事务,事务处理,9/16/2024,125,第一百二十五页,共152页。,例2:汽车仪表板控制程序,问题定义:仪表板有6个功能键,通过选择不同的,功能键可以完成6个不同的操作。,功能要求:,1 初始化发动机的点火序列,2 启动雷达探测装置(zhungzh),3 显示发动机状态,如:油压、温度,4 初始化“行程计算机”并输出数据,5 “行程计算机”清零,6 作废上次按下的功能键,9/16/2024,126,第一百二十六页,共152页。,功能要求:,1 初始化发动机的点火序列,2 启动雷达探测装置(zhungzh),3 显示发动机状态,如:油压、温度,4 初始化“行程计算机”并输出数据,5 “行程计算机”清零,6 作废上次按下的功能键,1,2,3,4,5,6,汽车仪表板控制板,显示器,温度显示,油压,9/16/2024,127,第一百二十七页,共152页。,消除反跳有效检查,功能键,动作,输入行程计算机数据,作废上,次按键,补救,操作,提示生成,与显示,消除反跳有效检查,XK,频段监视,接收点,火数码,封锁点火器计时器,取得发动机状态,检查,数码,显示与,告警,距离,计算,显示行程计算机,按功能键,“重试”,提示,“作废”,提示,行程数据,.,计算结果,.,油压、温度,.,告警,提示,“重复”,提示,重复次,数太多,点火数码表,数码,正确,数码,不正确,数码,距离,信息,距离,接收,信号,数字,按数,字键,#1,#2,#3,#4,#5,#6,“重试”提示,输,入,事务(shw),中心,通路(tngl),9/16/2024,128,第一百二十八页,共152页。,功能键控制(kngzh),读键板,启动(qdng)键板功能,点火(din hu)码求值,雷达探测,作废按键,发动机状态,汽车仪表板控制上层结构,键号,键号,9/16/2024,129,第一百二十九页,共152页。,消除反跳有效检查,功能键,动作,输入行程计算机数据,作废上,次按键,补救,操作,提示生成,与显示,消除反跳有效检查,XK,频段监视,接收点,火数码,封锁点火器计时器,取得发动机状态,检查,数码,显示与,告警,距离,计算,显示行程计算机,按功能键,“重试”,提示,“作废”,提示,行程数据,.,计算结果,.,油压、温度,.,告警,提示,“重复”,提示,重复次,数太多,点火数码表,数码,正确,数码,不正确,数码,距离,信息,距离,接收,信号,数字,按数,字键,#1,#2,#3,#4,#5,#6,“重试”提示,接,收,事务,中心,通路,输入(shr),输出(shch),变换(binhun)中心,9/16/2024,130,第一百三十页,共152页。,雷达探测子系统,结构,雷达探测,XK,频段监视,距离计算,显示提示,距离,显示/告警,距离,正常距离,#2,告警响铃,接收信号,接收信号,超限距离,键号,9/16/2024,131,第一百三十一页,共152页。,消除反跳有效检查,功能键,动作,输入行程计算机数据,作废上,次按键,补救,操作,提示生成,与显示,消除反跳有效检查,XK,频段监视,接收点,火数码,封锁点火器计时器,取得发动机状态,检查,数码,显示与,告警,距离,计算,显示行程计算机,按功能键,“重试”,提示,“作废”,提示,行程数据,.,计算结果,.,油压、温度,.,告警,提示,“重复”,提示,重复次,数太多,点火数码表,数码,正确,数码,不正确,数码,距离,信息,距离,接收,信号,数字,按数,字键,#1,#2,#3,#4,#5,#6,“重试”提示,接,收,事务,中心,通路,输入(shr),输出(shch),变换(binhun)中心,9/16/2024,132,第一百三十二页,共152页。,点火码求值子系统,结构,“封锁”提示,封锁,不正确码,错误处理,检查点火码,接收点火码,点火码求值,正确码,,不正确码,数码,数码,数字键读入,正确数码,#1,显示提示,封锁,计时器,“重复”,提示,数字,键号,9/16/2024,133,第一百三十三页,共152页。,汽车(qch)仪表板控制系统,读键板,启动(qdng)键板功能,接收(jishu)点火码,检查点火码,错误处理,点火码求值,雷达探测,显示/告警,XK,频段监视,距离计算,作废按键,数字键读入,封锁计时器,告警铃声,显示提示,发动机状态,汽车仪表板,控制系统软件结构SC,9/16/2024,134,第一百三十四页,共152页。,消除反跳有效检查,功能键,动作,输入行程计算机数据,作废上,次按键,补救,操作,提示生成,与显示,消除反跳有效检查,XK,频段监视,接收点,火数码,封锁点火器计时器,取得发动机状态,检查,数码,显示与,告警,距离,计算,显示行程计算机,按功能键,“重试”,提示,“作废”,提示,行程数据,.,计算结果,.,油压、温度,.,告警,提示,“重复”,提示,重复次,数太多,点火数码表,数码,正确,数码,不正确,数码,距离,信息,距离,接收,信号,数字,按数,字键,#1,#2,#3,#4,#5,#6,“重试”提示,接,收,事务(shw),中心,通路(tngl),9/16/2024,135,第一百三十五页,共152页。,汽车(qch)仪表板控制系统,读键板,接收(jishu)点火码,检查(jinch)点火码,错误处理,点火码求值,雷达探测,显示/告警,XK,频段监视,距离计算,作废按键,数字键读入,封锁计时器,告警铃声,显示提示,发动机状态,汽车仪表板,控制系统软件结构,上层事务型,下层变换型,9/16/2024,136,第一百三十六页,共152页。,例3、教材(jioci)购销系统的结构化设计,补售,书单,暂缺(zn qu)书单,领书单,发票(fpio),购书单,无效书单,F4售书登记表,F3各班学生用书表,F2缺书登记表,F1教材存量表,补售,教材,登记,缺书,学,生,有效,购书单,进书通知,学,生,登记并,开领书单,开发票,审查,有效性,采,购,打印发票,发票,发票,第二层DFD图教材销售系统,9/16/2024,137,第一百三十七页,共152页。,销,售,采,购,员,修改(xigi)教材库,存和待购量,按出版(chbn),社统计(tngj),缺书,F6教材一览表,F1 教材存量表,按书号,汇总缺书,F2 缺书登记表,F5待购教材表,进书通知,进书通知,缺,书,单,第二层DFD图采购子系统,9/16
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!