您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程教案_第四章实例
问题描述:病人监护系统中有一个实时监测模块。该模块使用病床专用设备测量病人的若干生理参数,如体温、脉搏、血压等等,每个病人各种指标的安全范围由医生预先指定。每经过一定的时间间隔,监测模块从监视设备读入这些数据,并存入数据库中。若发现某个指标越出安全范围,或某个监视部件有故障,则向护理站发出通知。指标值超出安全范围报告病人号,部件故障则报告床号。总体结构设计实例:病人监护系统病人护理站病历合理数据数据不安全因素读取数据存储数据检查数据通报不安全因素维修站不合理数据FS2病人监护采集数据检查数据处理数据获取下一个病人PN,FSEOF,EFEOFFSEFUSF,EFUSFFSPNEF,USFPN,FSPN,FS,EFPN,EFPN,FSFSSR读取数据检查不合理范围查询安全范围判定病人是否安全写数据库通报设备故障通报不安全因素EFBNUSFPN,FSEFPN,BN初始结构图PN—病人号;BN—床位号;SR—安全范围;FS—各指标数据;EF—设备故障标志;EOF——标志已查过最后一个病人;FS2—标志指标是否合理;USF—标志指标不安全初始结构图有很多需要改进的地方。(1)“通报不安全因素”可由主模块直接调用(2)同理,“写数据库”一模块也可由主模块直接调用。(3)这样,“处理数据”这一模块只调用“通报设备故障”一个模块。事实上,“处理数据”这一模块除了起“管道”作用,因而本身也可合并到主模块去,由主模块调用“通报设备故障”。改进1作了上述变动后,结构图的顶层与第一层如下图:病人监护写数据库通报不安全因素通报设备故障检查数据采集数据消除“管道”模块管道模块中所调用的下层模块之间没有任何紧密联系(内聚度低)改进通报设备故障时应通报床位号而不应是病人号。PN,USF,FS病人监护采集数据检查数据通报不安全因素获取下一个病人PN,FSEOF,EFPN,BNEOFFSEFUSFUSFPNFS2PN,EFPN,FSFSSRSR读取数据检查不合理范围查询安全范围判定病人是否安全写数据库通报设备故障EFBNPN,FSEFFS床位号BN可由“采集数据”模块传给主模块,再由主模块传递给“通知设备故障”模块。但这样做增加了模块间的联系,改为由“采集数据”模块直接调用改进若使“读取数据”模块包括从病人号查床位号的功能,则“获取下一个病人”模块的界面可以简化:采集数据获取下一个病人PNEOFFSEFPNBNFS读取数据检查不合理因素从PN查BNEOFPN通报设备故障FS2EFBN简化模块界面改进采集数据获取下一个病人PNEOFFSEFPNBNFSEOFPNFS2EFBN采集病人数据从PN查BN从床号读数据通报设备故障检查不合理因素增加公用模块“读取数据”模块根据床号读取病人的数据,这段程序抽出来单独成为一个模块更好,名字为“从床号读数据”,这样该模块可以成为一个公用模块,供其它子系统使用改进BN“从床号读数据”调用“通报设备故障”可能发生这种情况:在某设备维修期间,这个程序可能重复报告该设备故障,并且可以使“从床号读数据”模块功能更明确,公用性也更好病人监护采集数据报告不安全因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNFS,SR采集病人数据检查安全范围判定病人是否安全通报不安全因素EFPNPN,FSUSF从PN查BN从床号读数据通报设备故障检查不合理因素BNBNEFEFFSBNFSFS2PN,FS改进若由“检查数据”模块直接调用“通报不安全因素”模块,则可减少模块间的联系,即不用传递USF标志。这时“检查数据”的名字改为“报告不安全因素”更为恰当病人监护采集数据报告不安全因素写数据库PN,FSEOF,EFEFUSFPNSR,FSEFUSFPN,FS查询安全范围通报不安全因素PN,FS判定病人是否安全减少模块间的联系改进2考虑到无论是通报设备故障,还是通报不安全因素,都要打印一些信息,可以再抽出一个模块给护理站“写一行”,供两个模块调用。病人监护采集数据报告不安全因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNUSF,FSFS,SR采集病人数据检查安全范围判定病人是否安全通报不安全因素EFPNPN,FSUSF从PN查BN从床号读数据通报设备故障产生一行写一行检查不合理因素BNBNEFEFFSBNFSFS2PN,FS一行一行一行改进改进的结构图(2)结构图优化方法减少模块间的联系,减少参数传递,特别是控制信息的传递。消除重复功能。消除“管道”模块。考虑变化。控制模块大小。整体考虑。参照系统分析说明书。结构图和数据流图模块结构图可以由数据流图转换而来。数据流图着眼于数据流,反映系统的逻辑功能,即系统能够“做什么”;结构图着眼于控制层次,反映系统的物理模型,即怎样逐步实现系统的总功能。结构图描述各模块的“责任”(responsibility),像一个公司的组织机构图,用于描述各个部门的隶属关系与职能数据流图有两种典型的结构:变换型(Transform)结构和事务型(Transaction)结构。这两种结构可以分别通过变换分析和事务分析方法导出标准形式的结构图。事务分析:基于数据流程图的结构图开发,用来描述多种事务类型的处理。变换分析:基于数据流程图的结构图开发,用来描述输入、处理、输出数据流。如何从数据流图导出结构图数据流图层次的转换M32.......................................................................P1.4数据流图的层次与模块结构映射变换分析(Transformanalysis)过程可以分为三步:1.找出系统的逻辑输入、主加工和逻辑输出原始数据机内数据正确数据解格式化解输出解逻辑输出逻辑输入(物理输入)(物理输出)P1读入数据P2编辑数据P3求解P4编辑格式P5打印输出变换分析2.设计顶层模块和第一层模块正确数据求解编辑数据计算获得正确数据输出解编排格式打印解编辑数据读入数据正确数据原始数据原始数据解格式化解解正确数据格式化解解3.设计中、下层模块(病人监护)病人维修站病历合理数据数据逻辑输出逻辑输入不安全因素读取数据存贮数据检查数据通报不安全因素病人监护采集数据报告不安全因素写数据库PN,FSEOFPN,FSPN,FS病人监护系统数据流图病人监护系统结构图Q内容基于数据流程图的结构图开发,用来描述多种事务类型的处理。下图是事务型结构的例子B结果C结果B数据A结果清单原始输入A数据P内容C数据R内容决定事务类型打印更新内容事务A事务B事务C更新P更新Q更新R事务型结构事务分析业务处理分配处理分析类型判别业务输入数据处理事务C处理事务A处理事务B事务A更新P事务B更新Q事务C更新R打印清单事务分析的模块结构图示例业务处理分配处理输入数据判别业务处理事务C处理事务A处理事务B事务A更新P事务B更新Q事务C更新R打印清单事务分析的模块结构图(减少控制耦合)示例
本文标题:软件工程教案_第四章实例
链接地址:https://www.777doc.com/doc-2011400 .html