您好,欢迎访问三七文档
第四章软件设计方法计算机信息工程学院2004年9月现代软件工程授课教师:李德生答疑时间:周三下午答疑地点:计算机应用教研室E_mail:Lids_cs@126.com§4.4概要设计(总体设计)概要设计确定:•软件系统的结构•各模块功能及模块间联系(接口)表示软件结构的图形工具结构图层次图和HIPO图(HC+IPO图)概要设计的任务与步骤概要设计的过程:(1)设想可能的方案(2)选取合理的方案(3)推荐最佳方案(4)功能分解(5)设计软件结构(6)数据库设计(7)制定测试计划(8)编写文档(9)审查与复审4.4.1结构图(SCStructureChart)SD方法在概要设计中的主要表达工具约定:编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息SC中的四种模块传入模块(a)(b)AA传出模块BB变换模块(c)CD协调模块E(d)EFFSC中的选择调用ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或DSC中的循环调用ABCA根据内在的循环重复调用B、C等模块结构图(SC)举例医院管理系统门诊管理药房管理药库管理病房管理财务管理处方挂号处理挂号费总计挂号单挂号费总计出库处理进药管理病历管理处方管理常规处理酒店管理信息系统功能结构图HMIS收银管理子系统收银管理子系统收银管理子系统客人登记预定登记客房处理历史记录客房查询预定查询餐桌安排菜单作业营业结帐汇总打印各类查询初始设置客帐处理退房处理夜审处理客帐查询报表打印大型零售商场管理信息系统功能结构图TMMIS系统维护POS系统零售实时系统商品进货管理商品批发管理商品库存管理商品及商品帐管理顾客管理连锁店管理财务管理人事工资管理计划统计管理经理查询4.4.2面向数据流的设计方法(结构化设计方法SD)1.面向数据流设计方法的基本概念SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法映射DFD(问题结构)软件系统的结构(程序结构)系统结构特征可归纳为两种典型形式:变换型结构事务型结构数据流图可分为两种类型:变换型数据流事务型数据流变换中心输入输出变换型结构事务中心接受路径动作路径基本模型特征事务型结构由输入、变换中心和输出三部分组成具有在多种事务中选择执行某类事物的能力变换型数据流结构事务型数据流结构传入变换传出变换中心传入部分传出部分事务分析事务中心动作1动作2动作3接受接受部分变换型数据流举例输入信息物理输入格式检查处理显示正确信息结果物理输出数据变换中心逻辑输入逻辑输出传入部分传出部分特点:具有明确的传入、变换(或称主加工)和传出界面的DFD变换流示意图信息时间信息流输入流输出流交换流外部表示内部表示事务型数据流图举例IMLNOABCDFEGH大型系统DFD中,变换型和事务型结构往往共存:T事务中心传入变换传出2.面向数据流设计方法的设计步骤(1)精化DFD(2)确定DFD类型及边界(3)把DFD映射到系统模块结构设计出模块结构的上层(4)基于DFD逐步分解高层模块设计出下层模块(5)根据模块独立性原理,精化模块结构(6)模块接口描述面向数据流方法的设计过程精化数据流图区分事务中心和数据接收路径映射成变换结构流类型区分输入和输出分支映射成事务结构用启发式设计规则精化软件结构导出接口描述和全程数据结构复查详细设计“事务”“变换”事务分析变换分析SD方法的两种映射过渡方法变换型DFD事务型DFD初始SC初始SC变换分析事务分析初始的SC主模块输入模块主加工模块输入模块事务控制模块接受模块动作发送模块动作1模块动作2模块动作3模块由变换分析产生由事务分析产生(1)变换分析设计方法步骤:(1)区分传入、变换中心、传出部分,在DFD上标明分界线变换中心的任务就是通过计算或者处理,把系统的逻辑输入变换(或加工)为系统的逻辑输出。所谓逻辑输入,是指离物理输入端(输入始端)最远,但仍可以被看作系统输入的那些数据流。所谓逻辑输出,是指离物理输出端(输出末端)最远,但仍可以被看作系统输出的那些数据流。“一对一”的方式划分DFD边界:逻辑输入:从左向右,单向传递不再成立。逻辑输出:从右向左,单向传递不再成立。BCADEQPRWUVabcedrpuwv变换中心传入部分传出部分变换分析设计方法步骤(2)第一级分解(建立初始SC框架)设计顶层和第一层模块第一级分解的方法MCMTMAME第一级分解后的SCMCMTMAME第一层顶层c,ec,eu,wu,w传入模块传出模块中心变换模块第一级分解后的SC(另一种画法)MCMA1ceu,wc,pQPReprrw,uw传入分支模块中心加工分支模块传出分支模块MA2ME1ME2变换分析设计方法步骤(3)第二级分解(分解SC各分支)自顶向下分解,设计出每个分支的中、下层模块传入分支的分解(1)MACBAbacEDdec,e传入分支的分解(2)MAGetCbacReadDdec,eBtoCbcdeabGetEGetBDtoEAtoBReadD传出分支的分解MEWWriteVuuw,uvvvPutUUtoVMEUWrite(1)(2)中心加工分支的分解MTPQRec,pru,wpr任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时(有一个明显的事务中心),以采用事务分析方法为宜。(2)事务分析设计方法事务分析设计方法步骤:(1)在DFD上确定事务中心、接收部分和发送部分。(2)画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块。(3)分解细化接收分支和发送分支,完成初始SC。用户命令交互子系统DFD读用户命令密码命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型开/关命令建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据配置命令检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据初始的SC主模块输入模块主加工模块输出模块事务控制模块接受模块动作发送模块动作1模块动作2模块动作3模块由变换分析产生由事务分析产生事务分析的映射方法总控调度C路径B路径A路径A路径B路径C路径接收路径用户命令交互子系统初始的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器用户命令交互子系统DFD读用户命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据密码命令开/关命令配置命令用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态用户命令交互子系统DFD读用户命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据检验信息过程重试信息四位数字检验信息检验信息A/D信息配置数据格式化配置数据密码命令开/关命令配置命令用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态读密码用文件比较密码密码输出控制器产生无效信息事务流设计举例IMLNABCDFEG事务中心事务流设计举例取A总控ALMNGDBCFE(主模块)事务加工模块动作分支的典型结构PT2T1TiA2D2A1D1A3AjDk事务层操作层细节层处理层主模块事务加工模块操作模块细节模块事务流设计举例取A总控ALMNGDBCFE动作1动作n….细节模块1细节模块2….(操作模块)(细节模块)事务型数据流图举例IMLNOABCDFEGH事务流设计举例(另一种画法)输入AXX系统变换控制ALMAGDBCFE输出E、F、GE、F、GE、F、G输出HOE、F、GHHN要求类型处理有效图书管理要求当前日期2.1新书入库2.2借入库单罚款单一层数据流图(a)借书2.3注销图书2.5借书2.4目录文件借书单书单注销单3412675810911变换中心传入传出事务型(3)混合流设计举例混合流设计举例T事务中心传入变换传出接收部分发送部分ABT1变换中心传入传出T2T3abb1b2b3c1c2c3degfjLm事务流子系统BCCDDEEHHKFJKLLMh混合流设计举例k混合流设计举例输入DXX系统变换控制输出K输入Cdc输出LCDDEFJEHHKKLcddkkkLL输出MLMmmL事务子系统SafeHomede的第0层DFDSafeHomede软件系统用户命令和数据显示信息控制面板传感器传感器状态警铃电话线警告类型电话号码拨音控制面板显示SafeHomede的第1层DFD控制面板与用户交互控制面板显示密码电话号码拨音传感器状态显示信息配置请求用户命令和数据配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活/不激活系统传感器信息密码处理警告类型检验id信息开始停止状态信息监控传感器的第2层DFD电话号码拨音传感器状态配置数据显示格式配置信息产生警告信息拨号评估设置传感器信息读传感器警告类型传感器id类型传感器id类型定位4.4.3体系结构设计优化将初始SC根据模块独立性原则进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终SC。改进软件结构设计的指导原则(软件结构设计的启发式规则)(1)模块功能的完善化(2)消除重复功能(3)将模块的影响限制在模块的控制范围内(4)深度、宽度、扇出和扇入适中(5)模块大小适中(6)降低模块接口的复杂性(7)模块功能可预测(8)避免模块的病态连接(9)根据设计约束和可移植性要对软件打包(1)模块功能的完善化完整的模块应包括三部分:(1)执行规定功能部分(2)出错处理部分(3)需返回给调用者数据时,返回是否正确结束标志。(2)消除重复功能Q1CQ2CQ1Q2C改进前Q1、Q2功能相似XYQ’XYXY重复部分改进方法1:将Q1、Q2合并为Q’不可取改进方法2:将Q1、Q2的公共部分分离出来CHDEGXF(3)将模块的影响限制在模块的控制范围内AILJKB模块C的控制范围:C、D、E、F、G、H如果模块C作出的决策影响了模块L,L超出了C的控制范围(4)减少高扇出争取高扇入高扇出的模块结构举例:编外人员工资取得工资数据计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资避免平铺结构增加中间层降低扇出编外人员工资取得工资数据计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资计时工人实发工资计薪工人实发工资编外人员实发工资(5)模块大小适中模块过大:可理解程度下降模块过小:开销大于有效操作系统接口复杂(6)降低模块接口的复杂性接口传递信息应简单且和模块功能一致。(7)模块功能可预测模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。防止模块功能过分局限功能单一的模块具有高内聚。但如任意限制局部数据结构的大小,过分限制控制流中可做的选择或外部接口的模式,模块功能就过分局限,使用范围过分狭窄,缺乏灵活性和可扩充性。(8)避免模块的病态连接防止指向模块中间的分支或引用(针对内容耦合)(9)根据设计约束和可移植性需求对软件打包打包指用来为特定环境组装软件的技术4.4.4层次图和HIPO图IBM公司发明的HIPO图:层次图+输入/处理/输出图(H图)(IPO图)(HierachyInputProcessOutput)1.层次图(H图)表示软件的层次结构正文加工系统输入输出编辑加标题存储检索编目录添加删除插入修改合并列表带编号的层次图(H图)正文加工系统输入1.0输出2.0编辑3.0加标题4.0存储5.0检索6.0编目录7.0添加3.1删除3.
本文标题:软件设计方法
链接地址:https://www.777doc.com/doc-3392676 .html