软件工程第四章-2(软件设计)讲解

上传人:我** 文档编号:116756373 上传时间:2019-11-17 格式:PPT 页数:66 大小:1.91MB
返回 下载 相关 举报
软件工程第四章-2(软件设计)讲解_第1页
第1页 / 共66页
软件工程第四章-2(软件设计)讲解_第2页
第2页 / 共66页
软件工程第四章-2(软件设计)讲解_第3页
第3页 / 共66页
软件工程第四章-2(软件设计)讲解_第4页
第4页 / 共66页
软件工程第四章-2(软件设计)讲解_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《软件工程第四章-2(软件设计)讲解》由会员分享,可在线阅读,更多相关《软件工程第四章-2(软件设计)讲解(66页珍藏版)》请在金锄头文库上搜索。

1、4.5概要设计(总体设计)概要设计确定:软件系统的结构各模块功能及模块间联系(接口)表示软件结构的图形工具结构图(SC,Structuredchart)层次图和HIPO图4.5.1面向数据流的设计方法(结构化设计方法SDStructuredDesign)1.面向数据流设计方法的基本概念SD以数据流图为基础,它定义了把DFD(DataFlowDiagram)变换成软件结构的映射方法映射DFD(问题结构)软件系统的结构(程序结构)数据流图可分为两种类型:F变换型数据流F事务型数据流变换型数据流时间输入流输出流变换流信息信息沿输入通路进入系统;进入系统的信息通过变换中心;经加工处理以后再沿输出通路离

2、开软件系统;当数据流图具有这些特征时,这种信息流就叫作变换流。事务型数据流F当数据流经过一个具有“事务中心”特征的数据处理时,它可以根据事务类型从多条路径的数据流中选择一条活动通路。F这种具有根据条件选择处理不同事务的数据流,就是事务型数据流,简称事务流。活动通路事务中心面向数据面向数据流方法的流方法的设计过程设计过程精化数据流图精化数据流图区分事务中心区分事务中心和数据接收路径和数据接收路径映射成变换结构映射成变换结构流类型区分输入和区分输入和输出分支输出分支映射成事务结构映射成事务结构用启发式设计规则精化软件结构用启发式设计规则精化软件结构导出接口描述和全程数据结构导出接口描述和全程数据结

3、构复查详细设计详细设计“事务事务”“变换变换”事务分析变换分析初始的初始的SCSC主模块主模块输入模块输入模块主加工模块主加工模块传出模块传出模块事务控制模块事务控制模块接受模块接受模块动作发送模块动作发送模块动作动作11模块模块动作动作22模块模块动作动作33模块模块由变换分析产生由事务分析产生软件结构图的六种模块类型传入模块从下属模块传入数据X,经处理后返回给上级模块数据流Y。它传送的数据流叫做逻辑输入数据流。箭头尾部是空心圆表示传递的是数据,否则表示传递的是控制信息。为了绘图简便本讲义后面暂且全部用普通箭头数据流控制流X模块名Y软件结构图的四种模块类型(续)传出模块从上级模块获得数据,经

4、处理后再将其传送给下属模块。YX变换模块也叫做加工模块。它从上级模块获得数据,经处理,转换成其他形式,再传送回上级模块。YX软件结构图的四种模块类型(续)源模块终模块以上两种模块只被调用,不调用别的模块。传入的始端X传出的末端X软件结构图的六种模块类型(续)控制模块对所有下属模块进行协调和管理的模块。在一个好的系统结构图中,协调模块应在较高层出现。YXYXYX或模块调用的表示简单调用XXYZACB箭头指向被调用模块模块A调用B和C,A向B传送数据流X和Y,B返回A数据流Z模块调用的表示(续)选择调用ACDB模块A中某个判定为真时调用模块C,为假时调用模块D。模块A中某个判定为真时调用模块B,为

5、假时不调用。表示判定条件。BCD模块调用的表示(续)循环调用模块A根据内部循环条件,重复调用B、C模块,直至内部出现满足循环终止条件为止。ABCABCD2.面向数据流设计方法的设计步骤(1)优化DFD(2)确定DFD类型(3)把DFD映射到系统模块结构设计出模块结构的上层(4)基于DFD逐步分解高层模块设计出下层模块(5)根据模块独立性原理,优化模块结构(6)模块接口描述步骤:(1)区分传入、变换中心、传出部分,在DFD上标明分界线(1)变换分析设计方法BCADEQPRWUVabcedrpuwv变换中心传入部分传出部分从数据流程图的物理输入端开始,向系统的中间移动,一直到某个数据流不再被看作是

6、系统的输入为止,这个数据流的前一个数据流就是系统的逻辑输入。同理从物理输出端开始,向系统的中间移动,就可以找到软件的逻辑输出。在输入部分和输出部分之间的就是中心变换部分。变换分析设计方法步骤(2)第一级分解(建立初始SC框架)设计顶层和第一层模块第一级分解的方法MMCCMMTTMMAAMMEE第一级分解后的第一级分解后的SCSCMMCCMMTTMMAAMMEE第一层第一层顶层顶层ceceuwuw传入模块传入模块传出模块传出模块中心变中心变换模块换模块第一级分解后的SC(另一种画法)MCMA1ceucpQPReprrwuw传入分支模块中心加工分支模块传出分支模块MA2ME1ME2变换分析设计方法

7、步骤(3)第二级分解(分解SC各分支)自顶向下分解,设计出每个分支的中、下层模块u完成第二级分解的方法是,从变换中心的边界开始沿着输入通路向左移动,把输入通路中每个处理逻辑映射成软件结构中MA控制下的一个低层模块;u然后沿输出通路向右移动,把输出通路中每个处理逻辑映射成直接或间接受模块ME控制的一个低层模块;u最后把变换中心内的每个处理映射成受MT控制的一个模块。传入分支的分解MACBAbacEDdece传出分支的分解WvMEUwuwuV中心加工分支的分解MTPQRecpruwpr第一次分解文件单词数目统计读取和验证文件名统计单词数目格式化和显示单词数下面设计一个“统计输入文件中单词数目”程序

8、。输入流边界输出流边界有效的文件名单词总数格式化单词数验证文件名统计单词数格式化单词数读文件名文件名单词总数显示单词数文件名文件单词数目统计读取和验证文件名统计单词数目格式化和显示单词数格式化单词数显示单词数读文件名验证文件名第二次分解任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时(有一个明显的事务中心)以采用事务分析方法为宜。(2)事务分析设计方法事务分析设计方法步骤:(1)在DFD上确定事务中心、接收部分和发送部分。(2)画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块。(3)分解细化接收分支和发送分支,完成初始SC。事务分析的映射

9、方法总控总控调度调度CC路径路径BB路径路径AA路径路径AA路径路径BB路径路径CC路径路径接收接收路径路径事务流设计事务选择确定事务类型审计记录事务1事务2事务3事务4审计信息事务5更新事务v有效事务查询更新事务w有效事务存款更新事务x有效事务取款更新事务y有效事务转账更新事务z有效事务修改密码ATM机处理事务主控调度器更新事务查询审计记录分析器事务选择存款转账取款修改密码ATM机系统结构映射成ABT1变换中心传入传出T2T3abb1b2b3c1c2c3degfjm事务流子系统BCCDDEEHHKFJKLLMh(3)混合流设计举例k混合流设计举例输入DXX系统变换控制输出K输入Cdc输出LC

10、DDEFJEHHKKLcddkkkLL输出MLMmmL事务子系统defghgjk混合流设计读入数据判别订货处理订货输入提货发票进货输入库存修改进货票据订单记录分析统计生成统计表映射成4.5.3体系结构设计优化将初始SC根据模块独立性原则进行精化对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终SC。(1)模块功能的完善化完整的模块应包括三部分:(1)执行规定功能部分(2)出错处理部分(3)需返回给调用者数据时,返回是否正确结束标志。改进软件结构设计的指导原则(软件结构设计的启发式规则)(2)消除重复功能Q1CQ2CQ1Q2C改

11、进前Q1、Q2功能相似XYQXYXY重复部分改进方法1:将Q1、Q2合并为Q不可取改进方法2:将Q1、Q2的公共部分分离出来原则:某模块的判定语句的作用范围应在该模块的控制范围之内,最好在直接控制范围之内。(下图中绿色的模块是判定语句的作用范围)TXYBB1B2ATXYABB1B2TXYABB1B2TXYABB1B2违背原则符合但太高适中理想3、调整软件结构以保证结构中的模块满足作用范围控制范围原则F如果在设计过程中,发现作用范围不在控制范围内,可采用如下办法把作用范围移到控制范围之内:F)提高控制模块的层次。将判定所在模块合并到父模块中,使判定处于较高层次。F)将受判定影响的模块下移到控制范

12、围内;F)将判定上移到层次中较高的位置。但是要注意,判定所在的模块最好不要太高,模块之间的控制参数传递路径太长,增加了模块之间的耦合。(4)减少高扇出争取高扇入高扇出的模块结构举例:编外人员工资取得工资数据计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资避免平铺结构增加中间层降低扇出编外人员工资取得工资数据计时制工资额薪金制工资额编外人员税款编外人员扣款常规扣款税收扣款计算实发工资计时工人实发工资计薪工人实发工资编外人员实发工资设计良好的软件结构应该是顶层扇出比较高,中间扇出较少,底层扇入到高扇入的公共模块,有点类似于橄榄状的结构(5)模块大小适中模块过大:可理解程

13、度下降模块过小:开销大于有效操作系统接口复杂(6)降低模块接口的复杂性接口传递信息应简单且和模块功能一致。(7)模块功能可预测模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。(8)避免模块的病态连接防止指向模块中间的分支或引用(针对内容耦合)(9)根据设计约束和可移植性需求对软件打包打包指用来为特定环境组装软件的技术4.5.4层次图和HIPO图IBM公司发明的HIPO图:层次图+输入处理输出图(H图)(IPO图)(HierachyProcessOutput)1.层次图(H图)表示软件的层次结构正文加工系统输入输出编辑加标题

14、存储检索编目录添加删除插入修改合并列表带编号的层次图(H图)正文加工系统输入1.0输出2.0编辑3.0加标题4.0存储5.0检索6.0编目录7.0添加3.1删除3.2插入3.3修改3.4合并3.5列表3.62.HIPO图H图中每一方框(模块)均有一张IPO图对应航线调度系统HIPO图举例H图:命令监控器1.0取得输入1.1输入确认1.2请求确认1.3更新处理1.4传统的IPO图举例输入处理输出读口令请求口令文件1取得输入2口令确认3请求确认请求记录权限文件4更新处理权限记录状态报告响应命令监控器(1.0)的IPO图改进的IPO图格式IPO图系统:模块:编号:作者:日期:被调用:调用:输出:输入

15、:输入:局部数据元素:注释:4.6详细设计(过程设计、模块设计)主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。4.6.1结构化程序设计(SP)方法传统的设计技术和旧观念:F设计的随意性具有浓厚的个人色彩.F追求程序效率和个人设计技巧新的设计思想和风格:F清晰第一F使用标准的、规范的控制结构F逐步细化4.6.2详细设计的描述方法详细设计工具:(1)图形工具(2)表格工具(3)语言工具1.程序流程图2.盒图(N-S图)3.问题分析图(PAD)4.过程

16、设计语言(PDL)(伪码)5.判定表2.盒图(N-S图)用方框图代替传统的流程图描述五种基本控制结构的图形构件(1)顺序型ABC(2)选择型(Ifthenelse)IfthenelseIfthenABF条件TAFT条件then部分then部分else部分(3)多分支选择型(CASE型)A1值1A2An.条件值2值n(4)WHILE重复型(5)UNTIL重复型S(循环体)DO-WHILEPS(循环体)REPEATUNTILP(先测试循环)(后测试循环)循环条件(6)并行结构A1A2An.例如:使用程序流程图判断某个整数x是否为质数的算法下图为判断某个整数x是否为质数的算法设计图:3.问题分析图(PAD)(ProblemAnalysisDiagram)基本控制结构:(1)顺序结构(2)选择结构ABCABTF条件(3)重复结构WHILECSUNTILCS(先测试循环)(后测试循环)等价的PASCAL语言:REPEATCUNTILS等价的PA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号