[软件工程]CH04-概要设计

上传人:无*** 文档编号:119797798 上传时间:2022-07-16 格式:PPTX 页数:154 大小:2.71MB
返回 下载 相关 举报
[软件工程]CH04-概要设计_第1页
第1页 / 共154页
[软件工程]CH04-概要设计_第2页
第2页 / 共154页
[软件工程]CH04-概要设计_第3页
第3页 / 共154页
点击查看更多>>
资源描述
软件工程软件工程软件工程刘迎春刘迎春软件工程7/12/20221第四章第四章 概要设计概要设计 问题定义问题定义可行性研究可行性研究可行否?可行否?否否是是需求分析需求分析终止项目终止项目概要设计概要设计计划计划时期时期开发开发时期时期p主要内容主要内容n4.1 任务任务n4.2 软件结构设计及优化软件结构设计及优化n4.3 图形工具图形工具n4.4 结构化设计(方法)结构化设计(方法)n4.5 数据结构设计数据结构设计7/12/202224.1概要设计的任务概要设计的任务p【起点】【起点】n需求分析阶段得出的需求分析阶段得出的DFD图,数据字典图,数据字典p【任务】【任务】n从需求分析阶段的工作结果出发,进行从需求分析阶段的工作结果出发,进行软件结构设软件结构设计计与与数据设计数据设计,编写,编写概要设计说明书概要设计说明书。n软件结构设计软件结构设计(是概要设计阶段的是概要设计阶段的主要主要工作)工作)p系统中每个程序由哪些系统中每个程序由哪些模块模块组成组成p以及这些以及这些模块间的关系模块间的关系n数据设计数据设计将分析阶段创建的将分析阶段创建的信息模型(数据字典)信息模型(数据字典)转换为实现系统所需要的转换为实现系统所需要的数据结构数据结构7/12/202234.1概要设计的任务概要设计的任务【方案选择方案选择】p分析员应该综合分析对比各种合理方案的利分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划案制定详细的实现计划p通常至少选取低成本、中等成本及高成本的通常至少选取低成本、中等成本及高成本的三种方案三种方案7/12/202244.24.2软件结构设计及优化软件结构设计及优化p【结构设计的任务】【结构设计的任务】n建立良好的模块功能结构建立良好的模块功能结构n确定确定模块模块、模块间的关系模块间的关系p【主要内容】【主要内容】n4.2.1 模块和模块化模块和模块化n4.2.2 软件结构风格软件结构风格n4.2.3 耦合与内聚耦合与内聚n4.2.4 好的软件设计特性好的软件设计特性7/12/202254.2.1 模块和模块化模块和模块化p【1、模块】、模块】n数据说明、可执行语句等程序对象的集合。数据说明、可执行语句等程序对象的集合。n单独命名且可通过名字来访问单独命名且可通过名字来访问p如表单如表单(Form、窗口、窗口)、过程、函数等。、过程、函数等。n【基本属性】【基本属性】p功能:功能:描述该模块实现的功能;描述该模块实现的功能;p状态:状态:该模块使用时的环境和条件;该模块使用时的环境和条件;p逻辑:逻辑:描述模块内部怎么做;描述模块内部怎么做;n【内部特性、外部特性】【内部特性、外部特性】p内部特性内部特性是指完成其功能的是指完成其功能的程序代码程序代码和仅供该模块和仅供该模块内部使用的数据内部使用的数据p外部特性外部特性是指是指模块名模块名和和参数表参数表(输入参数输入参数、输出参输出参数数),以及对程序及整个系统造成的影响),以及对程序及整个系统造成的影响使用黑盒子的概念,站在较高的层次上进行思维,使用黑盒子的概念,站在较高的层次上进行思维,从而避免过早地陷入具体的条件逻辑、算法和过程步等实现细节从而避免过早地陷入具体的条件逻辑、算法和过程步等实现细节7/12/202264.2.1 模块和模块化模块和模块化p【2、模块化】、模块化】n把系统把系统划分划分成若干个模块,成若干个模块,每个模块每个模块完成一个完成一个子子功能功能,模块,模块既独立既独立且相互之间且相互之间又有一定的联系又有一定的联系,把他们组成一个有机的整体,完成指定的功能。把他们组成一个有机的整体,完成指定的功能。n高层模块高层模块隐蔽了细节,能够从整体上把握问题隐蔽了细节,能够从整体上把握问题n需要时,可以深入需要时,可以深入较低层次较低层次以了解进一步的细节以了解进一步的细节模块化是软件结构设计的一个基本准则模块化是软件结构设计的一个基本准则7/12/20227Netscape公司的故事公司的故事1/3p对于PC软件,有一个神话讲:设计不是很重要,因为市场是随着时间改变的。在这方面Netscape公司的倒闭是一个值得深思的故事。p最初Illinois大学的NCSA Mosaic小组开发了第一个广泛使用的浏览器。他们创建了Netscape公司,在1994年4月到12月之间发行了Netscape1.0,它可以在3个平台上运行,很快就成为了Windows、Unix和Mac上的占有统治地位的浏览器。Microsoft公司于1994年10月开始开发Internet Explorer1.0,并在1995年绑定在Windows 95上。7/12/20228Netscape公司的故事公司的故事2/3p从1995年到1997年,在Netscape公司的快速发展期间,开发者努力工作来产生新的特点,而很少花时间进行设计。pMicrosoft公司意识到了需要建立可靠的设计,它使用共享组件重构Office套装,建立了NT操作系统,并花费了时间来重构IE3.0。拉近了与Netscape的差距。pNetscape的开发在继续。通过Communicator 4.0,已有120个开发者(从最初的10个)和3百万行代码。Michael Toy(开发经理)说道:n“我们处于一个很坏的情形下我们应该在一年前就停住绑定这些代码。这是死的这就像被粗鲁地唤醒我们为走得太快而付出了代价。”7/12/20229Netscape公司的故事公司的故事3/3p1997年Netscape公司内部关于模块设计的争论pNetscape用了2个月来重新设计浏览器,但是这还不够长。pMozzila5.0版本作为开源发布,但是这也毫无帮助:没有人想在类似意大利细面条似的代码上进行工作。p最后,Microsoft赢得了浏览器的战争,AOL收购了Netscape。当然,这不是Microsoft浏览器战胜Netscape浏览器的全部故事。7/12/202210 资本市场供应市场协同供应协同计划协同设计供应链管理协同服务协同销售客户关系管理协同市场投资者关系管理战略目标管理管理驾驶舱企业绩效管理财务管理财务会计管理会计税务会计资金管理计划管理管理车间管理质量管理设备管理人力资源管理人事管理薪酬管理招聘培训绩效管理办公自动化知识管理信息门户内容管理采购管理制造管理 物流管理 仓存管理销售管理分销管理采购管理消费市场知识市场例:金蝶例:金蝶K/3 ERP系统系统的结构的结构7/12/202211K/3模块配置模块配置行业应用配置行业应用配置政政府府财财政政信信托托管管理理证证券券管管理理银银行行管管理理金蝶金蝶 K/3 K/3 标准产品标准产品第第三三方方产产品品接接口口工工具具集集医医药药GSPGSP房房地地产产进进出出口口医医药药GMPGMP汽汽车车DMSDMS业务环境配置业务环境配置个性化业务需求设计个性化业务需求设计按角色配置按角色配置多语言配置多语言配置应用集成配置应用集成配置业务流程配置业务流程配置成功企业流程快速复制成功企业流程快速复制柔性化流程设计柔性化流程设计灵活的管理控制方式灵活的管理控制方式7/12/202212选选课课管管理理考考试试报报名名毕毕业业设设计计科科研研项项目目论论文文管管理理成成绩绩管管理理排排课课管管理理信信息息维维护护成成绩绩查查询询SQL SERVERInterbase教务教务WEB系统系统7/12/202213iBATIS.NET 数据库访问类数据库访问类Mapper分页类分页类Paginate选选课课管管理理SQL SERVERInterbase常用数据转换工具类常用数据转换工具类Tools教师模版页教师模版页Js.master管理员模版页管理员模版页Gly.master学生模版页学生模版页Xs.master考考试试报报名名毕毕业业设设计计科科研研项项目目论论文文管管理理成成绩绩管管理理排排课课管管理理信信息息维维护护成成绩绩查查询询相关页面分页类相关页面分页类继承自继承自Paginate其他类其他类如,课程类,成绩类,账号如,课程类,成绩类,账号7/12/2022144.2.2 软件结构风格软件结构风格p软件结构风格软件结构风格n程序的模块结构,各个模块的组织情况程序的模块结构,各个模块的组织情况n一个模块和其它模块的一个模块和其它模块的独立程度独立程度是评价一个设计是评价一个设计好坏的重要度量尺度。好坏的重要度量尺度。p软件结构风格的软件结构风格的总体要求总体要求独立性高独立性高n一个模块的功能一个模块的功能不是同其它模块紧密地联系在一不是同其它模块紧密地联系在一起。起。7/12/2022154.2.2 软件结构风格软件结构风格p【独立性高的优点】【独立性高的优点】n当一个模块的功能当一个模块的功能不是同其它模块紧密地联系不是同其它模块紧密地联系在一起时,独立性较强在一起时,独立性较强,比较,比较容易理解容易理解;n独立性较强的独立性较强的模块修改模块修改时时不会不会或者较小的或者较小的影响影响其他模块其他模块。n独立性较强的独立性较强的模块修改不容易受其他模块改变模块修改不容易受其他模块改变的影响的影响。如何评价模块间联系的紧密程度?如何评价模块间联系的紧密程度?7/12/2022164.2.3 耦合与内聚耦合与内聚p耦合耦合n模块之间的互相依赖的紧密程度模块之间的互相依赖的紧密程度的度量的度量n耦合越松散耦合越松散,模块之间模块之间的的联系联系就越就越小小p内聚内聚n模块内部各个元素彼此结合的紧密程度模块内部各个元素彼此结合的紧密程度的的度量度量n内聚越高内聚越高,模块内部模块内部各成份之间的各成份之间的关联关联也也就越就越强强独立性强独立性强的模块应是的模块应是高内聚、低耦合高内聚、低耦合的模块的模块7/12/2022171 耦合:模块间联系的程度。耦合:模块间联系的程度。(依赖于模块间接口的复杂性)(依赖于模块间接口的复杂性)非直接耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合1 1)非直接耦合非直接耦合:两模块间没有直接关系。两模块间没有直接关系。主控模块2模块1模块4模块3例如:模块1和模块2,无直接联系。7/12/2022182)数据耦合数据耦合:两模块间交换的是简单数据(输:两模块间交换的是简单数据(输入、输出参数)入、输出参数)计算应扣款计算水费计算电费用水量水费电费用电量7/12/2022193)特征耦合:模块间交换的是数据结构(输入、)特征耦合:模块间交换的是数据结构(输入、输出参数)输出参数)计算应扣款计算总扣除房租水电房租水电总扣除房租水电房租水电=用水量用水量+用电量用电量+租房开始日期租房开始日期房租水电房租水电=用水量用水量+用电量用电量+租期租期7/12/2022204)控制耦合控制耦合:传递的信息中有控制信传递的信息中有控制信息息(中等耦合中等耦合)如果一个模如果一个模块通过传送开块通过传送开关、标志、名关、标志、名字等字等控制信息控制信息,明显地控制选明显地控制选择另一模块的择另一模块的功能,就是控功能,就是控制耦合。制耦合。7/12/2022215)外部耦合外部耦合:一组模块都:一组模块都访问同一全局变量访问同一全局变量主控模块2模块1模块4模块3日期日期7/12/2022226)公共耦合公共耦合:一组模块都访问同:一组模块都访问同一全局数据结构一全局数据结构主控模块2模块1模块4模块3数据结构、文件或数据库数据结构、文件或数据库7/12/202223p某个模块究竟用了哪几个数据?某个模块究竟用了哪几个数据?p某个数据究竟被哪几个模块使用某个数据究竟被哪几个模块使用?p使用公共数据区的任使用公共数据区的任模块如果出现模块如果出现BUGBUGn该该BUGBUG是否会是其他使用该数据区的模块是否会是其他使用该数据区的模块造成的造成的?n该该BUGBUG可能会影响那些使用该数据区的模可能会影响那些使用该数据区的模块块?p数据的名称、类型发生变化数据的名称、类型发生变化;n要寻找哪些模块随之改变。要寻找哪些模块随之改变。外部、公共耦合带来的复杂性外部、公共耦合带来的复杂性必须弄清修改影响的范围,不要轻率地进行修改必须弄清修改影响的范围,不要轻率地进行修改7/12/2022247)内容耦合内容耦合:(最高的耦合最高的耦合).GOTO A.A:.1)1)一个模块直接调用另一个模块中的数据。一个模块直接调用另一个模块中的数据。2)2)一个模块直接转移到另一个模块中去。一个模块直接转移到另一个模块中去。3)3)一个模块有多个入口。一个模块有多个入口。4)4)两个模块有一部分程序代码重叠。两个模块有一部分程序代码重叠。病态耦合关系病态耦合关系!MN7/12/202225非直接耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合低低高高结论:结论:耦合是影响软件复杂程度的重要因素耦合是影响软件复杂程度的重要因素 尽量使用数据耦合尽量使用数据耦合 少用控制耦合少用控制耦合 限制外部和公共耦合限制外部和公共耦合 不用病态的内容耦合不用病态的内容耦合。7/12/202226耦合练习耦合练习p下图中的程序由下图中的程序由A、B、C、D、E 5个模块组成,下表中描述了这些模个模块组成,下表中描述了这些模块之间的接口,每块之间的接口,每个接口有一个编号。此外,模块个接口有一个编号。此外,模块A、D和和E都要引都要引用一个专用数据区。那么用一个专用数据区。那么A和和E之间耦合关系是之间耦合关系是_(10)_。pA公共耦合公共耦合 B控制耦合控制耦合 pC内容耦合内容耦合 D无耦合无耦合 编编号号参数参数返回值返回值1数据项数据项数据项数据项2数据项数据项数据项数据项3功能码功能码无无4功能码功能码列表列表5无无列表列表ABDCE12345专用数据区A7/12/2022271 1)偶然内聚偶然内聚:模块内各组成成分在功能上是:模块内各组成成分在功能上是 不相关。不相关。如:把几个模块都要执行的一组语句放到一个模如:把几个模块都要执行的一组语句放到一个模块中。偶然的原因把他们放在一块块中。偶然的原因把他们放在一块偶然内聚偶然内聚逻辑内聚逻辑内聚 时间内聚时间内聚 过程内聚过程内聚 通信内聚通信内聚 顺序内聚顺序内聚 功能内聚功能内聚 2 2 内聚内聚:模块内各成份间的紧密程度:模块内各成份间的紧密程度j+i,j,ki+k+7/12/2022282)逻辑内聚逻辑内聚:通常由若干个逻辑功能相同或相似的成份通常由若干个逻辑功能相同或相似的成份组成;组成;目的:省去程序中的重复部分目的:省去程序中的重复部分如:计算全班学生的平均分和最高分如:计算全班学生的平均分和最高分7/12/202229读入分数读入分数平均平均/最高最高计算最高计算最高计算平均计算平均输出结果输出结果逻辑功能相同逻辑功能相同逻辑功能相同逻辑功能相同可能需要从模块外引入用作判断的开关量,可能需要从模块外引入用作判断的开关量,形成控制耦合形成控制耦合7/12/2022303 3)时间内聚时间内聚:相同的时间执行的成分组合在:相同的时间执行的成分组合在 一个模块内。一个模块内。如:对系统的初始化等一系列的工作。如:对系统的初始化等一系列的工作。7/12/2022314 4)过程内聚过程内聚:一个模块内部包含一组任务并:一个模块内部包含一组任务并 必须以特定次序执行。(必须以特定次序执行。(中等中等)读取顾客的姓名读取顾客的姓名读取顾客的地址读取顾客的地址读取顾客的电话号码读取顾客的电话号码7/12/2022325 5)通信内聚:)通信内聚:模块内使用了同一组输入数据,模块内使用了同一组输入数据,或产生同一组的输出结果。或产生同一组的输出结果。开领书单开领书单登记售书登记售书领书单领书单售书登记表售书登记表有效有效书单书单7/12/2022335 5)通信内聚通信内聚:模块内使用了同一组输入数据,:模块内使用了同一组输入数据,或产生同一组的输出结果。或产生同一组的输出结果。计算年龄计算年龄输出输出年龄年龄计算工资计算工资输出输出工资工资雇员生日7/12/2022345 5)通信内聚:)通信内聚:模块内使用了同一组输入数据,模块内使用了同一组输入数据,或产生同一组的输出结果。或产生同一组的输出结果。新增新增7/12/2022357/12/2022366 6)顺序内聚顺序内聚:模块中各成份密切相关,一个组:模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入成部分的输出作为另一个组成部分的输入7/12/2022376)顺序内聚顺序内聚:模块中各成份密切相关,一个组模块中各成份密切相关,一个组成部分的输出作为另一个组成部分的输入成部分的输出作为另一个组成部分的输入计算年龄计算年龄输出输出年龄年龄计算工资计算工资输出输出工资工资雇员生日7/12/2022387 7)功能内聚:)功能内聚:模块内部各成份结合在一起完成模块内部各成份结合在一起完成 单一的功能。单一的功能。如:按雇员生日,计算年龄如:按雇员生日,计算年龄计算年龄计算年龄输出输出年龄年龄雇员生日7/12/202239结论结论:尽量采用功能内聚避免逻尽量采用功能内聚避免逻 辑和耦然内聚。辑和耦然内聚。偶然内聚偶然内聚逻辑内聚逻辑内聚 时间内聚时间内聚 过程内聚过程内聚 通信内聚通信内聚 顺序内聚顺序内聚 功能内聚功能内聚高高低低一个模块一个功能一个模块一个功能是软件设计人员模块化设计的一条准则是软件设计人员模块化设计的一条准则7/12/202240耦合与内聚的衡量耦合与内聚的衡量p内聚度高,耦合弱内聚度高,耦合弱,标志着模块的,标志着模块的独立性强独立性强;p实践证明,实践证明,内聚比耦合更重要内聚比耦合更重要,应该把更多注意,应该把更多注意力集中到提高模块的内聚度上来。力集中到提高模块的内聚度上来。7/12/202241360安全卫士安全卫士360杀毒杀毒杀毒核心杀毒核心7/12/202242密码安全密码安全文件传输安全文件传输安全安全安全网络安全网络安全7/12/202243聊天记录聊天记录漫游漫游QQ会员会员管理管理?7/12/202244计计08-2 刘新刘新 QQ 软件结构软件结构7/12/2022457/12/202246计计08-2 包伟伟包伟伟 360软件结构软件结构7/12/2022477/12/2022487/12/2022494.2.4 好的软件设计特性好的软件设计特性p1.改进软件结构,提高模块独立性p2.模块规模适中p3.深度、宽度、扇出和扇入p4.模块的作用域应该在控制域之内p5.降低模块接口的复杂性p6.模块功能可以预测目的:帮助改进软件设计,提高软件质量目的:帮助改进软件设计,提高软件质量7/12/202250一、改进软件结构,提高模块独立性 1.审查软件结构是否合理宁要塔型不要饼型提倡瓮型7/12/202251教务教务WEB系统系统选选课课管管理理考考试试报报名名毕毕业业设设计计科科研研项项目目论论文文管管理理成成绩绩管管理理学学生生选选课课信信息息维维护护成成绩绩查查询询SQL SERVERInterbase教务教务WEB系统系统7/12/202252iBATIS.NET 数据库访问类数据库访问类Mapper分页类分页类Paginate选选课课管管理理SQL SERVERInterbase常用数据转换工具类常用数据转换工具类Tools教师模版页教师模版页Js.master管理员模版页管理员模版页Gly.master学生模版页学生模版页Xs.master考考试试报报名名毕毕业业设设计计科科研研项项目目论论文文管管理理成成绩绩管管理理选选课课管管理理信信息息维维护护成成绩绩查查询询相关页面分页类相关页面分页类继承自继承自Paginate其他类其他类如,课程类,成绩类,账号如,课程类,成绩类,账号教务教务WEB系统系统7/12/202253一、改进软件结构,提高模块独立性 1.审查软件结构是否合理 2.提高模块独立性(观察耦合与内聚)7/12/202254一、改进软件结构,提高模块独立性一、改进软件结构,提高模块独立性(1)选择工程量选择工程量(2)选择工程量变更选择工程量变更(3)填写申报表填写申报表(3)填写申报表填写申报表(3)填写申报表填写申报表如果你仅仅因为一组方如果你仅仅因为一组方法具有相似的实现就把法具有相似的实现就把它们放在一个模块里,它们放在一个模块里,那么你将犯那么你将犯“创建逻辑创建逻辑内聚对象(内聚对象(logically cohesive object)”的的错误错误7/12/202255(1)选择工程量选择工程量(2)选择工程量变更选择工程量变更(3)填写申报表填写申报表3个模块数据耦合7/12/202256(3)填写申报表填写申报表7/12/202257(3)填写申报表填写申报表(1)选择工程量选择工程量7/12/202258(3)填写申报表填写申报表(2)选择工程量变更选择工程量变更7/12/2022591个模块个模块管理管理6种单位信息种单位信息逻辑内聚逻辑内聚每个单位都有单位名称、法人代表每个单位都有单位名称、法人代表7/12/2022601个主控模块个主控模块2个中间控制模块(新建、打开个中间控制模块(新建、打开/编辑)编辑)6种新建单位模块种新建单位模块6中单位编辑模块中单位编辑模块1个删除单位模块个删除单位模块1个单位类型管理模块个单位类型管理模块通信内聚通信内聚7/12/202261打开打开/编辑监理单位编辑监理单位7/12/202262二、模块规模要适中二、模块规模要适中p 60行?行?p 30行?行?p 100行?行?p过少过少模块增多模块增多接口代价高接口代价高p过多过多模块内的模块内的复杂度提高复杂度提高7/12/202263三、软件深度、宽度、扇出和扇入深深度度深度深度:软件结构控制的层数:软件结构控制的层数 (049049)7/12/202264三、软件深度、宽度、扇出和扇入宽度宽度:软件结构中最多模块:软件结构中最多模块 层的模块数层的模块数宽度宽度7/12/202265 三、软件深度、宽度、扇出和扇入ABCDGFEJIHK扇出扇出:某模块直接控制:某模块直接控制 的模块数的模块数如:如:C模块的模块的扇出系数扇出系数 为为3 3扇出一般扇出一般3-43-4较好较好 7/12/202266三、软件深度、宽度、扇出和扇入ABCDGFEJIHK扇入扇入:某模块被多少模块调用:某模块被多少模块调用 如:如:I模块的模块的扇入系数扇入系数 为为2 2(被(被E E、F F调用)调用)扇入越多越好扇入越多越好(在模块独立性允许原则下)(在模块独立性允许原则下)7/12/202267控制7/12/202268三、软件深度、宽度、扇出和扇入结论:一个好的软件结构,一般上层扇出较高,中层扇出较少,低层扇入较高。(瓮型结构)提倡瓮型7/12/202269四、控制域与作用域的关系1.1.控制域控制域:模块本身极其下属模块均属于:模块本身极其下属模块均属于 该模块的控制域该模块的控制域ABCDGFEJIHKA的控制域:的控制域:A,B,C,D,E,F,G,H,I,J,KG的控制域:的控制域:G,J,K7/12/202270 2.作用域的关系:作用域:受该模块内判定影响的所有模块ABDHC的作用域:的作用域:E,F,G,I,J,KCGFEJIK7/12/202271TOPXYABB2B1B:判定:判定A:作用:作用B-Y-AB1:作用作用7/12/202272TOPXYA ABB2B1B B:根据根据Y Y输入的学号,读取成绩,输入的学号,读取成绩,判断学生毕业、肄业判断学生毕业、肄业返回判断结果返回判断结果00授予学位证书授予学位证书11授予毕业证书授予毕业证书22授予肄业证书授予肄业证书A A:受:受B B中的判断作用中的判断作用B B的判定结果有模块的判定结果有模块Y Y输入输入根据判定结果打印相应证书根据判定结果打印相应证书B-Y-AB1:B1:受受B B中的判定作用中的判定作用7/12/202273TOPXYA ABB2B1控制域与作用域的关系控制域与作用域的关系:作用域在控制域内且越近越好作用域在控制域内且越近越好TOPXYA ABB2B1把做判断的点往上移,把做判断的点往上移,把判断从模块把判断从模块B B移到模块移到模块Y Y。但但B1B1的传递路径仍然比较长的传递路径仍然比较长把那些在作用域内把那些在作用域内但不在控制域内但不在控制域内的模块移到控制域内的模块移到控制域内7/12/202274 五、降低模块接口的复杂程度 接口的影响:1.接口简单,低耦合高内聚 2.接口复杂,高耦合低内聚7/12/202275降低模块接口的复杂性 模块接口复杂是软件发生错误的一个主要原因。应该认真设计模块接口,使得信息传递简单并保持参数的一致性。求一元二次方程的根的模块,比较:pQUAD_ROOT(TBL,X)pQUAD_ROOT(A,B,C,ROOTl,ROOT2)7/12/202276六、模块功能可以预测p一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出结果,这种模块的功能就是可以预测的 p带有内部状态的模块的功能有时是不可预测的,因为它的输出取决于所处的状态,由于内部状态对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护 7/12/202277360浏览器中的两个浏览器中的两个URLpse:homese:homepse:blankse:blank7/12/2022784.3 图形工具图形工具p4.3.1 4.3.1 层次图和层次图和HIPOHIPO图图p4.3.2 4.3.2 结构图(结构图(Structure Chart,SCStructure Chart,SC)7/12/202279HIPOHIPO图图p层次图层次图用来描绘软件的用来描绘软件的层次结构层次结构。n层次图中的层次图中的矩形框矩形框表示表示模块模块n矩形框间的矩形框间的连线连线表示表示调用关系调用关系pHIPOHIPO图是美国图是美国IBMIBM公司发明的公司发明的“层次图层次图+IPOIPO图图”的英文缩写的英文缩写n层次图层次图每个每个模块模块都加了编号都加了编号n与与层次图层次图中每个中每个模块模块相对应,应该有一张相对应,应该有一张IPOIPO图图描绘模块的处理过程。描绘模块的处理过程。HIPO图是由图是由一个带编号的一个带编号的H图和一组模块的图和一组模块的IPO图组成图组成7/12/202280 4.3.1层次图和HIPO图1.层次图(H图)成绩管理系统成绩管理系统3 录入成绩录入成绩2 待录成绩单管理待录成绩单管理1查询查询3.1导入导入课程课程成绩成绩3.2百分百分制成制成绩录绩录入入3.2等级等级制制成成绩录绩录入入2.1个别个别学生学生成绩成绩单单2.2成批成批学生学生成绩成绩单单1.1查询查询课程课程1.2 查询查询上课上课班级班级1.3 查询查询学生学生成绩成绩7/12/202281 2.2.课程信息成绩数据文件学生信息百分制成绩等级制成绩2 待录成绩单管理3.1 导入课程成绩3.2 百分制成绩录入3.3 等级制成绩录入空成绩记录 成绩记录 3 3 录入成绩录入成绩7/12/202282二、结构图:().传入模块:从下层模块取得数据,经过某些处理,再将其结果传递给上级模块。.传出模块:从上级模块获得数据,进行某些处理,再将其结果传送给下级模块。.变换模块:从上级模块获得数据,进行特定处理,转换成其它形式,再将其结果传送给上级模块。x yx xy y7/12/202283二、结构图:().源模块:不调用其它模块的传入模块。.漏模块:不调用其它模块的传出模块。.协调模块:对下属模块进行控制和管理的模块。x x yx7/12/202284附加符号:(调用方式)调用方式)选择调用选择调用 循环调用循环调用 B C A注意:注意:1 表示调用关系表示调用关系2不表示调用次序不表示调用次序;2 不指明什么时间调用不指明什么时间调用;3 层次图层次图作为文档较合适。作为文档较合适。4 结构图结构图作为检查复审软作为检查复审软件结构的好方法。件结构的好方法。BC AD7/12/202285HIPOHIPO图和图和SCSC图图p传送的每个数据元素是否为完成模块功能所必须的;p完成模块功能必须的每个数据元素是否都传送来了;p结构图上模块间的联系是否容易解释 检查设计的正确性和评价模块独立性检查设计的正确性和评价模块独立性7/12/2022864.4 结构化设计方法一、概念与步骤二、变换映射三、事务映射四、优化设计7/12/2022874.4 结构化设计方法(SD)一、有关概念国际流行的应用最广泛的技术、最完善的系统设计方法基于数据流的系统分析、设计方法:SA和SD(这种方法在理论上可以适用于任何非并发软件的开发工作。)结构化设计(SD)任务:将系统逻辑模型(DFD)软件结构图(HIPO图、SC图)指导思想:自顶向上的逐步求精7/12/202288DFD图图软件结构软件结构方法方法映射映射方法:方法:变换型变换型DFD 变换映射变换映射事务型事务型DFD 事务映射事务映射7/12/202289 变换型特征:变换型特征:t t输输入入流流变换变换中心中心输输出出流流数据随时间的推移而流动数据随时间的推移而流动即:即:随着随着t t的变化,输入流通过变换中心(变换流)的变化,输入流通过变换中心(变换流)最后形成输出流。最后形成输出流。外部表示内部表示1.变换型7/12/202290数字仪表板系统数据流图7/12/202291数字仪表数字仪表 板控制板控制接收传感接收传感 器信号器信号数据转换数据转换 控制控制驱动仪表驱动仪表 板输出板输出加加/减速减速 显示显示 显示显示 mph 显示显示 里程里程 显示显示 mpg发出发出铃声铃声 发光二极发光二极 管显示管显示 读旋转读旋转信号信号To _sps sps To rpm计算计算gph读燃读燃料流料流 确定确定加加/减速减速计算计算mph超速值超速值计算计算 里程里程 计算计算 mpg数字仪表板控制数字仪表板控制系统软件结构系统软件结构7/12/202292 事务型特征:事务型特征:事务事务事务中心事务中心T动作序列动作序列以事务中心为核心以事务中心为核心根据根据事务事务的要求的要求去执行不同的去执行不同的通路通路2.事务型7/12/2022933.设计步骤复查并精化数据流图复查并精化数据流图流类型流类型导出接口描述和导出接口描述和全程数据结构全程数据结构变换映射变换映射用启发式设计规用启发式设计规则精化软件结构则精化软件结构事务映射事务映射复复 查查“事务事务”“变换变换”详细设计详细设计有问题有问题无问题无问题7/12/202294二、变换映射 1.步骤识别识别输入边界输入边界、输出边界输出边界和和变换中心变换中心三部分。三部分。逻辑输入:离物理输入端(输入始端)最远,但仍逻辑输入:离物理输入端(输入始端)最远,但仍可作为输入的数据流。可作为输入的数据流。逻辑输出:离物理输出端(输出始端)最远,但仍逻辑输出:离物理输出端(输出始端)最远,但仍可作为输出的数据流。可作为输出的数据流。进行进行第一级分解第一级分解(映射顶层和第一层(映射顶层和第一层 )设计主控模块和第一层软件结构设计主控模块和第一层软件结构1 1)输入模块)输入模块caca。功能:为主控模块提供数据。功能:为主控模块提供数据。2 2)输出模块)输出模块cece。功能:为主控模块提供数据的输出。功能:为主控模块提供数据的输出。3 3)变换模块)变换模块ctct。功能:将逻辑输入转换为逻辑输出。功能:将逻辑输入转换为逻辑输出。7/12/202295完成完成“第二级和下层的映射第二级和下层的映射”任务任务:将将DFDDFD中的每一个处理映射到程序结构中的模块中的每一个处理映射到程序结构中的模块.方法方法:从变换中心的边界开始从变换中心的边界开始,沿输入路径和输出路径沿输入路径和输出路径向外向外,将处理依次映射到从属层的软件结构将处理依次映射到从属层的软件结构优化优化软件设计软件设计 具体做法具体做法?7/12/202296ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分7/12/202297ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分数据流动情况数据流动情况7/12/202298ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分7/12/202299ABCPRWUVDEQabcdeprwuv传入部分传出部分变换部分变换部分ABCPRWUVDEQabcdeprwuv传入部分传出部分7/12/2022100 MM3M2M1C,EC,EU,WU,W一级分解M1 E D C B AabcdeM2 R P QepC,prrU,wM3 V U Wwuv二级分解7/12/2022101二、变换映射例例1 1:已知汽车数字仪表板的功能描述和数据流:已知汽车数字仪表板的功能描述和数据流 图图,设计软件结构。设计软件结构。假设数字仪表板将完成下述功能:假设数字仪表板将完成下述功能:1 1)通过模)通过模-数转换实现传感器和微处理机接口数转换实现传感器和微处理机接口2 2)在面板上显示数据)在面板上显示数据3 3)指示每小时英里数()指示每小时英里数(mphmph),行驶的里程,),行驶的里程,每加仑油行驶的英里数(每加仑油行驶的英里数(mpgmpg)等等)等等4 4)指示加速或减速)指示加速或减速5 5)超速警告:如果车速超过)超速警告:如果车速超过5555英里英里/小时,则小时,则发出超速警告铃声。发出超速警告铃声。7/12/2022102数字仪表板系统数据流图7/12/2022103二、变换映射 例例1 1:已知数字仪表板系统的功能描述和数据流:已知数字仪表板系统的功能描述和数据流 图设计软件结构。图设计软件结构。识别输入边界、输出边界和变换中心三部分识别输入边界、输出边界和变换中心三部分7/12/2022104二、变换映射 例例1 1:已知数字仪表板系统的功能描述和数据流:已知数字仪表板系统的功能描述和数据流 图设计软件结构。图设计软件结构。识别输入、输出和变换中心三部分识别输入、输出和变换中心三部分进行第一级分解进行第一级分解(映射顶层和第一层(映射顶层和第一层 )设计主控模块和第一层软件结构设计主控模块和第一层软件结构1 1)输入模块。)输入模块。功能:为主控模块提供数据。功能:为主控模块提供数据。2 2)输出模块。)输出模块。功能:为主控模块提供数据的输出。功能:为主控模块提供数据的输出。3 3)变换模块。)变换模块。功能:将逻辑输入转换为逻辑输出。功能:将逻辑输入转换为逻辑输出。7/12/2022105数字仪表板系统数据流图 输入输入输出输出变换中心变换中心7/12/2022106输入输入输出输出变换中心变换中心数字仪表数字仪表 板控制板控制接收传感接收传感 器信号器信号数据转换数据转换 控制控制驱动仪表驱动仪表 板输出板输出sps,rpm,gphmpg,mph,英里英里,超速值超速值7/12/2022107二、变换映射 例例1 1:已知数字仪表板系统的功能描述和数据流:已知数字仪表板系统的功能描述和数据流 图设计软件结构。图设计软件结构。识别输入、输出和变换中心三部分识别输入、输出和变换中心三部分进行第一级分解(映射顶层和第一层进行第一级分解(映射顶层和第一层 )3 进行第二层分解进行第二层分解(按子系统分解)(按子系统分解)7/12/2022108数字仪表板系统数据流图 输入输入输出输出变换中心变换中心输入输入7/12/2022109接收传感接收传感 器信号器信号读旋转信读旋转信 号号计算计算 _ _sps sps 计算计算 rpmsps,rpm _ _sps,spssps计算计算gphgph读燃料流读燃料流 燃料流燃料流输入结构输入结构7/12/2022110数字仪表板系统数据流图 输入输入变换中心变换中心输出输出7/12/2022111驱动仪表驱动仪表 板输出板输出加加/减速减速 显示显示 显示显示 mph 显示显示 里程里程 加加/减速减速,mpg,mph英里英里,发生信息发生信息 显示显示 mpg发出发出铃声铃声 发光二极发光二极 管显示管显示 输出结构输出结构7/12/2022112数字仪表板系统数据流图 输入输入输出输出变换中心变换中心7/12/2022113数据转数据转换控制换控制 确定确定加加/减速减速计算计算mph超速值超速值计算计算 里程里程 计算计算 mpg变换结构变换结构7/12/2022114数字仪表数字仪表 板控制板控制接收传感接收传感 器信号器信号数据转换数据转换 控制控制驱动仪表驱动仪表 板输出板输出加加/减速减速 显示显示 显示显示 mph 显示显示 里程里程 显示显示 mpg发出发出铃声铃声 发光二极发光二极 管显示管显示 读旋转读旋转信号信号To _sps sps To rpm计算计算gph读燃读燃料流料流 确定确定加加/减速减速计算计算mph超速值超速值计算计算 里程里程 计算计算 mpg数字仪表板控制数字仪表板控制系统软件结构系统软件结构7/12/2022115二、变换映射 例例1 1:已知数字仪表板系统的功能描述和数据流:已知数字仪表板系统的功能描述和数据流 图设计软件结构。图设计软件结构。识别输入、输出和变换中心三部分识别输入、输出和变换中心三部分进行第一级分解(映射顶层和第一层进行第一级分解(映射顶层和第一层 )3 进行下层分解(按子系统分解)进行下层分解(按子系统分解)4 4 优化优化7/12/2022116p2、保持高扇入、低扇出的原则7/12/2022117变换映射小结:1.1.指导思想:自顶向下,逐步求精指导思想:自顶向下,逐步求精2.2.根据数据流图找出输入边界、输出边界根据数据流图找出输入边界、输出边界和变换中心和变换中心3.3.形成各层次的软件结构形成各层次的软件结构4.4.根据模块独立性和启发规则优化软件结根据模块独立性和启发规则优化软件结 构。构。7/12/2022118三、事务映射(一)指导思想:自顶向下,逐步求精。(二)什么是事务:引起或触发某一动作的数据。(控制信号、事件或状态变化)7/12/2022119三、事务映射(三)步骤识别事务输入、通路和事务中心三部分。识别事务输入、通路和事务中心三部分。进行第一级分解(映射顶层和第一层进行第一级分解(映射顶层和第一层 )设计事务控制模块和第一层软件结构设计事务控制模块和第一层软件结构1 1)输入模块。)输入模块。功能:为主控模块提供数据。功能:为主控模块提供数据。2 2)调度模块。)调度模块。根据输入的要求调度相应的执行通根据输入的要求调度相应的执行通路路 进行第二级分解:进行第二级分解:设计中下层模块设计中下层模块 方法:对通路再进行识别、划分、映射,反复此方法:对通路再进行识别、划分、映射,反复此 过程直到全部映射完毕过程直到全部映射完毕优化软件设计优化软件设计 7/12/2022120第一级分解返回7/12/2022121PTiT2T1DkD2A1D1A2A3Aj处理层:调度模块事务层操作层细节层返回7/12/2022122P(调度)(调度)TiT2T1DkD2A1D1A2A3Aj初始SC图事务层操作层细节层7/12/2022123 事务映射过程:事务映射过程:依据事务型特征识别事务输入、通路、事务中心依据事务型特征识别事务输入、通路、事务中心事务事务通路通路事务中心事务中心事务控制事务控制输入输入调度调度B2-2细节层细节层 B-1 B-2 B-3操作层操作层 A B C .事务层事务层7/12/2022124典型的事务典型的事务型软件结构型软件结构产生事务产生事务事务处理事务处理7/12/2022125例例2 2:汽车仪表板控制程序:汽车仪表板控制程序问题定义:仪表板有问题定义:仪表板有6 6个功能键,通过选择不同的个功能键,通过选择不同的 功能键可以完成功能键可以完成6 6个不同的操作。个不同的操作。功能要求:功能要求:1 1 初始化发动机的点火序列初始化发动机的点火序列 2 2 启动雷达探测装置启动雷达探测装置 3 3 显示发动机状态,如:油压、温度显示发动机状态,如:油压、温度 4 4 初始化初始化“行程计算机行程计算机”并输出数据并输出数据 5“5“行程计算机行程计算机”清零清零 6 6 作废上次按下的功能键作废上次按下的功能键7/12/2022126功能要求:功能要求:1 初始化发动机的点火序列初始化发动机的点火序列 2 启动雷达探测装置启动雷达探测装置 3 显示发动机状态,如:油压、温度显示发动机状态,如:油压、温度 4 初始化初始化“行程计算机行程计算机”并输出数据并输出数据 5“行程计算机行程计算机”清零清零 6 作废上次按下的功能键作废上次按下的功能键1 12 23 34 45 56 6汽车仪表板控制板汽车仪表板控制板显示器温度显示油压7/12/2022127消除反消除反跳有效跳有效检查检查功能键功能键动作动作输入行程输入行程计算机数计算机数据据作废上作废上次按键次按键补救补救操作操作提示生成提示生成与显示与显示消除反跳消除反跳有效检查有效检查XK频段监视频段监视接收点接收点火数码火数码封锁点火封锁点火器计时器器计时器取得发取得发动机状动机状态态检查检查数码数码显示与显示与告警告警距离距离计算计算显示行程显示行程计算机计算机按功能键按功能键“重试重试”提示提示“作废作废”提示提示行程数据行程数据.计算结果计算结果.油压、温度油压、温度.告警告警提示提示“重复重复”提示提示重复次重复次数太多数太多点 火 数 码点 火 数 码表表数码数码正确正确数码数码不正确不正确数码数码距离距离信息信息距离距离接收接收信号信号数字数字按数按数字键字键#1#2#3#4#5#6“重试重试”提示提示输输入入事事务务中中心心通路通路7/12/2022128功能键控制功能键控制读键板读键板启动键板功能启动键板功能 点火码求值点火码求值 雷达探测雷达探测作废按键作废按键 发动机状态发动机状态汽车仪表板控制上层结构汽车仪表板控制上层结构键号键号键号键号7/12/2022129消除反消除反跳有效跳有效检查检查功能键功能键动作动作输入行程输入行程计算机数计算机数据据作废上作废上次按键次按键补救补救操作操作提示生成提示生成与显示与显示消除反跳消除反跳有效检查有效检查XK频段监视频段监视接收点接收点火数码火数码封锁点火封锁点火器计时器器计时器取得发取得发动机状动机状态态检查检查数码数码显示与显示与告警告警距离距离计算计算显示行程显示行程计算机计算机按功能键按功能键“重试重试”提示提示“作废作废”提示提示行程数据行程数据.计算结果计算结果.油压、温度油压、温度.告警告警提示提示“重复重复”提示提示重复次重复次数太多数太多点 火 数 码点 火 数 码表表数码数码正确正确数码数码不正确不正确数码数码距离距离信息信息距离距离接收接收信号信号数字数字按数按数字键字键#1#2#3#4#5#6“重试重试”提示提示接接收收事事务务中中心心通路通路输入输入输出输出变换中心变换中心7/12/2022130雷达探测子系统雷达探测子系统结构结构雷达探测雷达探测XKXK频段监视频段监视距离计算距离计算显示提示显示提示距离距离显示显示/告警告警距离距离正常距离正常距离#2#2告警响铃告警响铃接收信号接收信号接收信接收信号号超限距离超限距离键号键号7/12/2022131消除反消除反跳有效跳有效检查检查功能键功能键动作动作输入行程输入行程计算机数计算机数据据作废上作废上次按键次按键补救补救操作操作提示生成提示生成与显示与显示消除反跳消除反跳有效检查有效检查XK频段监视频段监视接收点接收点火数码火数码封锁点火封锁点火器计时器器计时器取得发取得发动机状动机状态态检查检查数码数码显示与显示与告警告警距离距离计算计算显示行程显示行程计算机计算机按功能键按功能键“重试重试”提示提示“作废作废”提示提示行程数据行程数据.计算结果计算结果.油压、温度油压、温度.告警告警提示提示“重复重复”提示提示重复次重复次数太多数太多点 火 数 码点 火 数 码表表数码数码正确正确数码数码不正确不正确数码数码距离距离信息信息距离距离接收接收信号信号数字数字按数按数字键字键#1#2#3#4#5#6“重试重试”提示提示接接收收事事务务中中心心通路通路输入输入输出输出变换中心变换中心7/12/2022132点火码求值子系统点火码求值子系统结构结构“封锁封锁”提示提示封锁封锁不正确码不正确码错误处理错误处理检查点火码检查点火码接收点火码接收点火码点火码求值点火码求值正确码,正确码,不正确码不正确码数码数码数码数码数字键读入数字键读入正确数码正确数码#1#1显示提示显示提示封锁封锁计时器计时器“重复重复”提示提示数字数字键号键号7/12/2022133汽车仪表板汽车仪表板控制系统控制系统读键板读键板启动键板功能启动键板功能接收点火码接收点火码检查点火码检查点火码错误处理错误处理点火码求值点火码求值雷达探测雷达探测显示显示/告警告警XKXK频段监视频段监视距离计算距离计算作废按键作废按键数字键读入数字键读入封锁计时器封锁计时器告警铃声告警铃声显示提示显示提示发动机状态发动机状态汽车仪表板汽车仪表板控制系统软件结构控制系统软件结构SCSC7/12/2022134消除反消除反跳有效跳有效检查检查功能键功能键动作动作输入行程输入行程计算机数计算机数据据作废上作废上次按键次按键补救补救操作操作提示生成提示生成与显示与显示消除反跳消除反跳有效检查有效检查XK频段监视频段监视接收点接收点火数码火数码封锁点火封锁点火器计时器器计时器取得发取得发动机状动机状态态检查检查数码数码显示与显示与告警告警距离距离计算计算显示行程显示行程计算机计算机按功能键按功能键“重试重试”提示提示“作废作废”提示提示行程数据行程数据.计算结果计算结果.油压、温度油压、温度.告警告警提示提示“重复重复”提示提示重复次重复次数太多数太多点 火 数 码点 火 数 码表表数码数码正确正确数码数码不正确不正确数码数码距离距离信息信息距离距离接收接收信号信号数字数字按数按数字键字键#1#2#3#4#5#6“重试重试”提示提示接接收收事事务务中中心心通路通路7/12/2022135汽车仪表板汽车仪表板控制系统控制系统读键板读键板接收点火码接收点火码检查点火码检查点火码错误处理错误处理点火码求值点火码求值雷达探测雷达探测显示显示/告警告警XKXK频段监视频段监视距离计算距离计算作废按键作废按键数字键读入数字键读入封锁计时器封锁计时器告警铃声告警铃声显示提示显示提示发动机状态发动机状态汽车仪表板汽车仪表板控制系统软件结构控制系统软件结构上层事务型上层事务型下层变换型下层变换型7/12/2022136例例3、教材购销系统的结构化设计、教材购销系统的结构化设计补售书单暂缺书单领书单发票购书单无效书单F4售书登记表F3各班学生用书表F2F2缺书登记表缺书登记表F1F1教材存量表教材存量表1.61.6补售教材1.51.5登记缺书学生有效购书单进书通知学生1.41.4登记并开领书单1.21.2开发票1.11.1审查有效性采购1.31.3打印发票发票发票第二层DFD图教材销售系统7/12/2022137销售采购员2.32.3修改教材库存和待购量2.22.2按出版社统计缺书F6教材一览表F1 F1 教材存量表教材存量表2.12.1按书号汇总缺书F2 F2 缺书登记表缺书登记表F5待购教材表进书通知进书通知缺书单第二层DFD图采购子系统7/12/2022138p1、复查并细化、复查并细化DFD补售书单暂缺书单领书单发票购书单无效书单F4售书登记表F3各班学生用书表F2F2缺书登记表缺书登记表F1F1教材存量表教材存量表1.61.6补售教材1.51.5登记缺书学生有效购书单进书通知学生1.41.4登记并开领书单1.21.2开发票1
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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