




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SoftwareEngineering,Chap8StructuralDesign,SoftwareEngineering,8.1SD方法的设计过程和概念,一、什么是系统结构图?系统结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。,SoftwareEngineering,8.1SD方法的设计过程和概念,一个实例(传感器检测子系统输出部分),SoftwareEngineering,8.1SD方法的设计过程和概念,二、系统结构图的构成要素(4种模块)1传入模块:从下属模块取得数据,经过某些处理后,再将其传送给上级模块。(传送的数据流称为逻辑输入数据流)2传出模块:从上级模块获得数据,进行某些处理,再将其传送给下级模块。(传送的数据流叫做逻辑输出数据流),SoftwareEngineering,8.1SD方法的设计过程和概念,3变换模块:从上级模块获得数据,进行特定的处理,转换成其他形式,再传回上级模块。(加工的数据流叫做变换数据流)4协调模块:对所有下属模块进行协调和管理的模块。说明:(1)在一个好的结构图中,协调模块应在较高层出现。(2)在实际系统中,有些模块属于上述某一类型,还有些模块是上述各种类型的组合。,SoftwareEngineering,8.1SD方法的设计过程和概念,三、典型的系统结构图形式之一:变换型系统结构图基本组成:输入+变换+输出工作过程:取得数据-变换数据-输出数据示例之二:事务型系统结构图通常它是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。通常把完成选择分派任务的部分叫事务中心。示例,SoftwareEngineering,8.1SD方法的设计过程和概念,变换流(TransformFlow):,事实上所有信息流都可归结为变换流,SoftwareEngineering,事务流(TransactionFlow),T=Calloneoftheseveralsubroutinesdependingonthetypeoftheincomingtransactionrequest.当信息流具有明显的“发射中心”时,可归结为事务流。,8.1SD方法的设计过程和概念,SoftwareEngineering,8.2变换分析,一、变换分析的步骤步骤一、复审基本系统模型基本系统模型指顶级DFD和所有由外部提供的信息。这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估。这两个文档描述软件界面上信息的流程和结构。,SoftwareEngineering,8.2变换分析,步骤二、复审和精化软件数据流图这一步主要是对软件需求规格说明书中的分析模型进行精化,直至获得足够详细的DFD。步骤三、确定DFD的特性,判定它为变换流还是事务流。,SoftwareEngineering,8.2变换分析,步骤四、划定输入流和输出流的边界,孤立变换中心。步骤五、执行“一级分解”(firstlevelfactoring)一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层模块执行输入、计算和输出功能;中层模块控制、协调底层的工作。,SoftwareEngineering,8.2变换分析,输入流,变换流,变换流控制模块,输入流控制模块,输出流,主控模块,输出流控制模块,A,B,C,D,E,F,G,H,SoftwareEngineering,8.2变换分析,步骤六、执行“二级分解”。二级分解的任务是把数据流图中每个处理框映射为结构图中的一个模块。其过程是从变换中心的边界开始沿输入、输出通道向外移动;从变换中心的输入(出)边界向外移动,把遇到的每个处理框映射为结构图中相应控制模块下的一个模块。,SoftwareEngineering,8.2变换分析,输入流,变换流,输入流控制模块,输出流,主控模块,A,B,C,D,E,F,G,H,B,D,A,C,变换流控制模块,输出流控制模块,E,F,G,H,SoftwareEngineering,8.2变换分析,DFD的处理框与程序结构模块一一对应,但按照软件设计原则进行设计时,可能需要把几个处理框聚合为一个模块,或者把一个处理框裂变为几个模块。总之,应根据“良好”设计的标准,进行二级分解。二级分解后得到的仅仅是程序结构的“雏形”(firstcut),后续的复审和精化会反复修改。,SoftwareEngineering,8.2变换分析,步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量对于程序结构的雏形,以“模块独立”为指导思想,对模块进行整合或分解,旨在追求高内聚、低耦合,以及易实现、易测试、易维护的软件结构。,SoftwareEngineering,8.2变换分析,输入流控制模块,主控模块,B,D,A,C,变换流控制模块,输出流控制模块,E,F,G,H,输入流控制模块,主控模块,B,D,A,C,E,F,G,H,SoftwareEngineering,请大家回忆变换分析的步骤:步骤一、复审基本系统模型;步骤二、复审并精化软件数据流图;步骤三、确定数据流图的特征;步骤四、划定输入流和输出流的边界,孤立变换中心。步骤五、执行“一级分解”步骤六、执行“二级分解”。步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量,SoftwareEngineering,8.3事务分析,一、事物分析的步骤当数据流具有明显的事务特征时,即能找到一个事务(亦称触发数据项)和一个事务中心,采用事务分析法更为适宜。,SoftwareEngineering,8.3事务分析,事务分析法可概括为七个步骤:步骤一、复审基本系统模型;步骤二、复审并精化软件数据流图;步骤三、确定数据流图的特征;步骤四、指出事务中心,确定接收部分和发送部分的流界;步骤五、映射出系统上层模块结构;,SoftwareEngineering,8.3事务分析,9,8,6,1,2,5,4,3,7,10,11,事务中心,接收部分,发送部分,SYSTEM,输入1,散转2,SUBSYS1,SUBSYS2,SUBSYS3,SoftwareEngineering,8.3事务分析,步骤六、分解并精化事务结构以及每条动作路径所对应的结构。这些子结构是根据流经每一动作路径的数据流特征,采用本节或上节所述设计步骤逐一导出的。,SoftwareEngineering,8.3事务分析,9,8,6,1,2,5,4,3,7,10,11,事务中心,接收部分,发送部分,SUBSYS2,7,10,4,11,输入控制,变换控制,输出控制,SoftwareEngineering,8.3事务分析,SYSTEM,输入1,散转2,SUBSYS1,SUBSYS2,SUBSYS3,7,10,4,11,输入控制,变换控制,输出控制,3,6,5,8,9,SoftwareEngineering,8.3事务分析,步骤七、使用启发式设计策略,精化所得程序结构雏形,改良软件质量。这一步骤与变换分析法相同。,SoftwareEngineering,8.4设计优化及原则8.4.1启发式设计策略,1调整模块的功能和规模,降低耦合度,提高内聚度。若在几个模块中发现了共有的子功能,一般应将子功能独立出来作为一个模块,以提高单个模块的内聚度。合并模块通常是为了减少控制信息的传递以及对全程数据的引用,同时降低接口的复杂性。模块的规模没有固定的要求。以保持模块的独立性为原则。一般而言,模块规模以一页左右为宜(高级语言在75个语句左右)。,SoftwareEngineering,8.4设计优化及原则,2调整软件结构的深度、宽度、扇出和扇入数目,改善软件结构性能。经验表明,设计良好的软件结构通常顶层扇出较高,中层扇出较低,底层又高扇入到公共的实用模块中去。,SoftwareEngineering,图841应追求与避免的程序结构,8.4设计优化及原则,SoftwareEngineering,8.4设计优化及原则,3改造程序结构,使任一模块的作用域在其控制域之内。,判定,受F中判定的影响,A,C,F,E,G,H,D,B,违背第三条原则,满足第三条原则,A,D,C,E,F,H,G,B,图842作用域与控制域,SoftwareEngineering,8.4设计优化及原则,4分析模块之间的接口信息,降低界面的复杂性和冗余程度,提高协调性。界面复杂是引起软件错误的一个基本因素,界面上传递的数据应尽可能简单并与模块的功能相协调,界面不协调(即在同一个参数表内或以其他某种方式传递不甚相关的一堆数据)本身就是模块低内聚的表征。,SoftwareEngineering,8.4设计优化及原则,5模块功能应该可预言,避免对模块施加过多限制。模块功能可预言指,只要模块的输入数据相同,其运行产生的输出必然相同,也就是可以依据其输入数据预测模块的输出结果。此外,如果设计时对模块中局部数据的体积,控制流程的选择及外部接口方式等诸因素限制过多,则以后为去掉这些限制要增加维护开销。,SoftwareEngineering,8.4设计优化及原则,6.改造程序结构,追求单入口单出口的模块。7.为满足设计或可移植性的要求,把某些软件用包(package)的形式封装起来。软件设计常常附带一些特殊限制,例如,要求程序采用覆盖技术。此时,根据模块重要的程度、被访问的频率及两次引用的间隔等因素对模块分组。此外,程序中那些供选择的或“单调”(oneshot)的模块应单独存在,以便高效地加载。,SoftwareEngineering,8.4设计优化及原则,辅助文档:获得程序结构后,必须开发一系列辅助文档,作为软件总体设计的组成部分。主要工作包括:1)陈述每个模块的处理过程;2)描述每个模块的界面;3)根据数据字典定义数据结构;4)综述设计中所有限制和约束;5)对概要设计进行复审;6)对设计进行优化。,SoftwareEngineering,8.4设计优化及原则,设计优化原则:1在不考虑时、空耗费的情况下,设计并精化软件结构;2借用CASE工具模拟分析运行时的性能,定位出低效的部分,加以改进;3详细
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年江苏省句容市北师大版7年级数学上册期中试题预测试卷附参考答案详解(达标题)
- 水泥礓磋坡道施工方案
- 美术培训总结
- 汽车维修技师培训
- 新员工培训流程
- 入职培训总结报告
- 北京石景山2026届英语九上期末质量检测试题含解析
- 生产设备点检培训
- 装饰报价系统培训
- 2026届江苏省扬州树人学校化学九年级第一学期期中达标检测模拟试题含解析
- 桥架购销合同范本4篇
- 2025年江西省高考物理试卷真题(含答案)
- 2025年大麻酚油(CBD油)行业研究报告及未来行业发展趋势预测
- 白皮书政策解读-2025年国防科技与国家安全政策趋势分析方案
- 退休业务办理培训课件
- 2025-2026学年沪教版(五四学制)(2024)小学体育与健康三年级(全一册)教学设计(附目录)
- 2025-2026学年苏少版七年级美术上册(全册)教学设计(附目录)
- 2025新离婚协议书
- 2025年基金从业资格考试《证券投资基金基础知识》真题(附答案)
- 2025年国家保安员培训考试题(附答案)
- GB/T 20716.2-2025道路车辆牵引车和挂车之间的电连接器(7芯)第2部分:12 V标称电压车辆的制动系统和行走系的连接
评论
0/150
提交评论