《软件工程实例.pptx》由会员分享,可在线阅读,更多相关《软件工程实例.pptx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、初始结构图有很多需要改进的地方。(1)“通报不安全因素”可由主模块直接调用 (2)同理,“写数据库”一模块也可由主模块直接调用。(3)这样,“处理数据”这一模块只调用“通报设备故障”一个模块。事实上,“处理数据”这一模块除了起“管道”作用,因而本身也可合并到主模块去,由主模块调用“通报设备故障”。改进1第1页/共19页作了上述变动后,结构图的顶层与第一层 如下图:病人监护写数据库通报不安全因素通报设备故障检查数据采集数据消除“管道”模块管道模块中所调用的下层模块之间没有任何紧密联系(内聚度低)改进第2页/共19页通报设备故障时通报设备故障时应通报床位号而应通报床位号而 不应是病人号不应是病人号
2、。PN,USF,FS病人监护采集数据检查数据通报不安全因素获取下一个病人PN,FSEOF,EFPN,BNEOFFSEFUSFUSFPNFS2PN,EFPN,FSFSSRSR读取数据检查不合理范围查询安全范围判定病人是否安全写数据库通报设备故障EFBNPN,FSEFFS床位号BN可由“采集数据”模块传给主模块,再由主模块传递给“通知设备故障”模块。但这样做增加了模块间的联系,改为由“采集数据”模块直接调用 改进第3页/共19页若使“读取数据”模块包括从病人号查床位号的功能,则“获取下一个病人”模块的界面可以简化:采集数据获取下一个病人PNPNEOFEOFFSFSEFEFPNPNBNBNFSFS读
3、取数据检查不合理因素从PNPN查BNBNEOFEOFPNPN通报设备故障FS2FS2EFEFBNBN简化模块界面改进第4页/共19页采集数据获取下一个病人PNPNEOFEOFFSFSEFEFPNPNBNBNFSFSEOFEOFPNPNFS2FS2EFEFBNBN采集病人数据从PNPN查BNBN从床号读数据通报设备故障检查不合理因素增加公用模块“读取数据”模块根据床号读取病人的数据,这段程序抽出来单独成为一个模块更好,名字为“从床号读数据”,这样该模块可以成为一个公用模块,供其它子系统使用 改进BNBN第5页/共19页“从床号读数据”调用“通报设备故障”可能发生这种情况:在某设备维修期间,这个程
4、序可能重复报告该设 备故障,并且可以使“从床号读数据”模块功能更明确,公用性也更好 病人监护采集数据报告不安全因素写数据库判定下一个病人PNPN,FSFSEOFEOF,EFEFPNPNEOFEOFFSFSEFEFUSFUSFPNPNEFEFSRSREFEFFSFSPNPNFS,SRFS,SR采集病人数据检查安全范围判定病人是否安全通报不安全因素EFEFPNPNPNPN,FSFSUSFUSF从PNPN查BNBN从床号读数据通报设备故障检查不合理因素BNBNBNBNEFEFEFEFFSFSBNBNFSFSFS2FS2PN,FSPN,FS改进第6页/共19页若由“检查数据”模块直接调用“通报不安全因
5、素”模块,则可减少模块间的联系,即不用传递USF标志。这时“检查数据”的名字改为“报告不安全因素”更为恰当 病人监护采集数据报告不安全因素写数据库PNPN,FSFSEOFEOF,EFEFEFEFUSFUSFPNPNSRSR,FSFSEFEFUSFUSFPNPN,FSFS查询安全范围通报不安全因素PNPN,FSFS判定病人是否安全减少模块间的联系改进2第7页/共19页考虑到无论是通报设备故障,还是通报不安全因素,都要打印一些信息,可以再抽出一个模块给护理站“写一行”,供两个模块调用。病人监护采集数据报告不安全因素写数据库判定下一个病人PNPN,FSFSEOFEOF,EFEFPNPNEOFEOFF
6、SFSEFEFUSFUSFPNPNEFEFSRSREFEFFSFSPNPNUSFUSF,FSFSFS,SFS,SR R采集病人数据检查安全范围判定病人是否安全通报不安全因素EFEFPNPNPNPN,FSFSUSFUSF从PNPN查BNBN从床号读数据通报设备故障产生一行写一行检查不合理因素BNBNBNBNEFEFEFEFFSFSBNBNFSFSFS2FS2PN,FSPN,FS一行一行一行改进 改进的结构图(2)第8页/共19页结构图优化方法减少模块间的联系,减少参数传递,特别是控制信息的传递。消除重复功能。消除“管道”模块。考虑变化。控制模块大小。整体考虑。参照系统分析说明书。第9页/共19页
7、结构图和数据流图模块结构图可以由数据流图转换而来。数据流图着眼于数据流,反映系统的逻辑功能,即系统能够“做什么”;结构图着眼于控制层次,反映系统的物理模型,即怎样逐步实现系统的总功能。结构图描述各模块的“责任”(responsibility),像一个公司的组织机构图,用于描述各个部门的隶属关系与职能 第10页/共19页数据流图有两种典型的结构:变换型(Transform)结构和事务型(Transaction)结构。这两种结构可以分别通过变换分析和事务分析方法导出标准形式的结构图。事务分析:基于数据流程图的结构图开发,用来描述多种事务类型的处理。变换分析:基于数据流程图的结构图开发,用来描述输入
8、、处理、输出数据流。如何从数据流图导出结构图第11页/共19页数据流图层次的转换3232.P1.4数据流图的层次与模块结构映射第12页/共19页变换分析(Transform analysis)过程可以分为三步:1.找出系统的逻辑输入、主加工和逻辑输出原始数据原始数据机内数机内数据据正确数正确数据据解解格式化格式化解解输出解输出解逻辑输出逻辑输入(物理输入)(物理输出)P1读入数据P2编辑数据P3求解P4编辑格式P5打印输出变换分析第13页/共19页 2.设计顶层模块和第一层模块正确数据求解编辑数据计算获得正确数据输出解编排格式打印解编辑数据读入数据正确数据原始数据原始数据解格式化解解正确数据格
9、式化解解第14页/共19页 3.设计中、下层模块(病人监护)病人维修站病历合理数据数据逻辑输出逻辑输入不安全因素读取数据存贮数据检查数据通报不安全因素病人监护采集数据报告不安全因素写数据库PNPN,FSFSEOFEOFPN,FSPN,FSPNPN,FSFS病人监护系统数据流图病人监护系统结构图 第15页/共19页Q Q内容基于数据流程图的结构图开发,用来描述多种事务类型的处理。下图是事务型结构的例子B B结果C C结果B B数据A A结果清单原始输入A A数据P P内容C C数据R R内容决定事务类型打印更新内容事务A事务B事务C更新P更新Q更新R事务型结构事务分析第16页/共19页业务处理分配处理分析类型判别业务输入数据处理事务C C处理事务A A处理事务B B事务A A更新P P事务B B更新Q Q事务C C更新R R打印清单事务分析的模块结构图示例第17页/共19页业务处理分配处理输入数据判别业务处理事务C C处理事务A A处理事务B B事务A A更新P P事务B B更新Q Q事务C C更新R R打印清单事务分析的模块结构图(减少控制耦合)示例第18页/共19页感谢您的观看!第19页/共19页
限制150内