研究生入学考试软件工程总体设计.pptx

上传人:莉*** 文档编号:74013892 上传时间:2023-02-24 格式:PPTX 页数:61 大小:1.41MB
返回 下载 相关 举报
研究生入学考试软件工程总体设计.pptx_第1页
第1页 / 共61页
研究生入学考试软件工程总体设计.pptx_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《研究生入学考试软件工程总体设计.pptx》由会员分享,可在线阅读,更多相关《研究生入学考试软件工程总体设计.pptx(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章:总体设计第1页/共61页5.1 5.1 设计过程设计过程5.2 5.2 设计原理设计原理5.3 5.3 启发规则启发规则5.4 5.4 描绘软件结构的图形工具描绘软件结构的图形工具5.5 5.5 面向数据流的设计方法面向数据流的设计方法主要内容第2页/共61页5.1 设计过程设计过程-主要任务主要任务 1.设计方案设计方案(1-3):制定最佳方案的详细实现计划 (可行性研究:草拟开发计划)2.设设计计软软件件体体系系结结构构(4-5):确定软件系统中的每个程序是由哪些模块组成的,以及这些模块之间的关系。第3页/共61页5.1 设计过程设计过程 1.设想供选择的方案设想供选择的方案 2.

2、选择合理的方案选择合理的方案 对每个合理的方案要提供对每个合理的方案要提供(详细的实现计划详细的实现计划):):A系统流程图系统流程图 B组成系统的物理元素清单组成系统的物理元素清单 C成本成本/效益分析效益分析 D实现这个系统的进度计划实现这个系统的进度计划 第4页/共61页3.推荐最佳方案推荐最佳方案4.功能分解功能分解(组成系统的所有程序和文件(组成系统的所有程序和文件/数据库)数据库)5.设计软件结构设计软件结构 (1、层次图或结构图、层次图或结构图 5.4节)节)(2、面向数据流的设计方法、面向数据流的设计方法 5.5节)节)6.数据库设计数据库设计 第5页/共61页7.制定测试计划

3、制定测试计划8.书写文档书写文档 A系统说明 B用户手册 C测试计划 D详细的实现计划 E数据库设计结果9.审查和复审审查和复审 第6页/共61页5.2 设计原设计原理理 把复杂的问题分解成许多容易解决的小问题5.2.1 模块化模块化(模块:(模块:由边界元素限定的相邻程序元素 接口、实现)5.2.2 抽象抽象(听得多,用的多,但意思表达不出来)(听得多,用的多,但意思表达不出来)5.2.3 逐步求精逐步求精(为了能集中精力解决问题而尽量推迟对(为了能集中精力解决问题而尽量推迟对问题细节的考虑问题细节的考虑)(1)魔法数字 7+-2的存在 (2)把一个时期内必须解决的问题按优先级进行排序 第7

4、页/共61页5.2.4 信息隐藏和局部化信息隐藏和局部化隐藏:不需要访问我(模块内的各种信息)的就找不到我;局部化:把密切相关的软件元素物理的放的很近。5.2 设计原设计原理理 5.2.5 模块独立模块独立使得每个模块完成一个相对独立的子功能,且和其他模块之间的关系很简单。(1)独立的模块易于开发(功能清晰且接口简单)(2)独立的模块易于测试和维护第8页/共61页一、耦合 耦合耦合:指软件结构内不同模块彼此之间相互依赖的紧密程度。模块独立程度由两个定性标准度量:模块独立程度由两个定性标准度量:耦合耦合与与内聚内聚 (低耦合高内聚)(低耦合高内聚)第9页/共61页第10页/共61页 耦合的强弱所

5、依赖的因素耦合的强弱所依赖的因素1、一个模块对另一个模块的、一个模块对另一个模块的引用引用2、一个模块向另一个模块传递的、一个模块向另一个模块传递的数据量数据量3、一个模块施加到另一个模块的、一个模块施加到另一个模块的控制的数量控制的数量4、模块之间接口的、模块之间接口的复杂程度复杂程度 第11页/共61页 耦合的类型(由强到弱)耦合的类型(由强到弱)1、内容耦合:内容耦合:一个模块直接修改或操作另一个模块的数据。2、公共环境耦合公共环境耦合:两个以上的模块共同引用一个全局数据项。3、控制耦合控制耦合:一个模块向另一模块传递一个控制信号,接受 信号的模块将依据该信号值进行必要的活动。4、数据耦

6、合数据耦合:模块间通过参数传递基本类型的数据。第12页/共61页 图中存在公用耦合,假设模块A、C、E都存取全程数据区(如公用一个磁盘文件)中的一个数据项。如果A模块读取该项数据,然后调用C模块对该项重新计算,并进行数据更新。ABCDE全程数全程数据区据区(3)公用耦合)公用耦合第13页/共61页4)内容耦合 一个模块与另一个模块的内容直接发生联系。内容耦合对维护会带来严重的困难。模块模块ALAB:MOVE 1模块模块BGOTO LAB内容耦合内容耦合(4)内容耦合)内容耦合 程序中如果一个模块直接把程序转移到另一个模块中,或一个模块使程序中如果一个模块直接把程序转移到另一个模块中,或一个模块

7、使用另一个模块内部的数据,都会产生内容耦合。内容耦合是最高程度的用另一个模块内部的数据,都会产生内容耦合。内容耦合是最高程度的耦合,应该避免采用。耦合,应该避免采用。第14页/共61页建议:尽量使用数据耦合,少用控制耦合,限制公用耦合,完全不用内容偶合。第15页/共61页二、内聚 内聚内聚:一个模块内部各个元素彼此结合的紧密程度。:一个模块内部各个元素彼此结合的紧密程度。常见的内聚有七类。常见的内聚有七类。第16页/共61页内聚分类(由低到高)1 1、偶然内聚:偶然内聚:一个模块之内各成分之间没有任何关系。2 2、逻辑内聚:、逻辑内聚:几个逻辑上相关的功能放在同一模块中。3 3、时时间间内内聚

8、聚:一个模块完成的功能必须在同一时间内完成,而这些功能只是因 为时间因素关联在一起。4 4、过程内聚:、过程内聚:处理成分必须以特定的次序执行。5 5、通信内聚:、通信内聚:各成分都操作在同一数据集或生成同一数据集。6 6、顺序内聚:、顺序内聚:各成分与一个功能相关,且一个成分的输出作为另一成分的输入。7 7、功功能能内内聚聚:模块的所有成分对完成单一功能是最基本的,且该模块对完成这一功能而言是充分必要的。第17页/共61页第18页/共61页第19页/共61页模块A的处理单元将根据同一个数据文件FILE的数据产生不同的表格,因此它存在通信内聚。A从文件从文件FILE中读出数据中读出数据1.由数

9、据产生报表由数据产生报表A2.由数据产生报表由数据产生报表B通信内聚示例通信内聚示例第20页/共61页完成各种初始化工作的模块,或者处理故障的模块都存在时间内聚。如图,在“紧急故障处理模块”中,“关闭文件”、“报警”、“保留现场”等任务都必须无中断地同时处理。紧急故障处理紧急故障处理模块模块1关闭文件关闭文件2报警报警3保留现场保留现场时间内聚示例时间内聚示例第21页/共61页 如图,A、B、C模块合并成ABC模块之后,ABC模块就是逻辑内聚模块。XYZABCXYZABC合并合并逻辑内聚示例逻辑内聚示例第22页/共61页 对逻辑内聚模块的调用,常常需要有一个功能对逻辑内聚模块的调用,常常需要有

10、一个功能开关,由上层调用模块向它发出一个控制信号,开关,由上层调用模块向它发出一个控制信号,在多个关联性功能中选择执行某一个功能。在多个关联性功能中选择执行某一个功能。这种内聚较差,增加了模块之间的联系,不易这种内聚较差,增加了模块之间的联系,不易修改。修改。第23页/共61页 偶然内聚是最差的一种内聚。常犯这种错误的一种情况是:有时在写完程序后,发现一组语句在多处出现,于是为了节省空间而将这些语句作为一个模块设计,就出现偶然内聚。第24页/共61页 如图,模块A、B、C出现公共代码段W,于是将W独立成一个模块,而W中这些语句并没有任何联系。如果在测试中发现模块A不需要做“X=Y+Z”,而应该

11、做“X=Y*Z”,此时对W的维护就很困难了。ABCW模块模块X=Y+ZGET CARDIF I=5 THEN E=0偶然内聚示例偶然内聚示例第25页/共61页 软件设计中应该:力求做到高内聚,尽量少用中内聚,不用低内聚。第26页/共61页5.3 启发式规则 1.改进软件结构提高模块独立性2.模块规模应该适中 3.深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当 深度深度:软件结构中控制的层数;:软件结构中控制的层数;宽度宽度:软件结构内同一个层次上的模块总数的最大值;:软件结构内同一个层次上的模块总数的最大值;扇出扇出:一个模块直接控制(调用)其它模块的数目;:一个模块直接控制(调

12、用)其它模块的数目;扇入扇入:一个模块被其它模块调用的数目。:一个模块被其它模块调用的数目。第27页/共61页对扇出、扇入过大的改进:(a)对扇入过大的改进对扇入过大的改进(b)对扇出过大的改进对扇出过大的改进第28页/共61页4.模块的作用域应该在控制域之内 MAGBCEDF图图5.2 模块的作用域和控制域模块的作用域和控制域作用域:受该模块内一个判定影响的所有模块的集合。作用域:受该模块内一个判定影响的所有模块的集合。控制域:模块本身以及所有从属于它的模块的集合。控制域:模块本身以及所有从属于它的模块的集合。第29页/共61页 如:QUAD-ROOT(TBL,X)求一元二次方程的根的模块,

13、其中TBL,X都为数组,分别代表方程的系数和方程的根。应该使接口更简单,如:QUAD-ROOT(A,B,C,ROOT1,ROOT2)A、B、C是方程的系数,ROOT1,ROOT2是方程的根。5.力争降低模块接口的复杂度力争降低模块接口的复杂度第30页/共61页6.设计单入口、单出口的模块 7.模块功能应该可以预测模块功能应该可以预测 第31页/共61页 5.4 图形工具5.4.1 层次图和HIPO图 正文加工正文加工系统系统输入输入输出输出编辑编辑加标题加标题存储存储检索检索编目录编目录格式化格式化添加添加删除删除插入插入修改修改合并合并列表列表图图5.3 正文加工系统的层次图正文加工系统的层

14、次图第32页/共61页正文加工正文加工系统系统输入输入1.0输出输出2.0编辑编辑3.0加标题加标题4.0存储存储5.0检索检索6.0编目录编目录7.0格式化格式化8.0添加添加3.1删除删除3.2插入插入3.3修改修改3.4合并合并3.5列表列表3.6图图5.4 带编号的层次图(带编号的层次图(H图)图)HIPO图是:图是:“层次图输入层次图输入/处理处理/输出图输出图”第33页/共61页5.4.2 结构图 产生最佳解产生最佳解得到好输入得到好输入计算最佳解计算最佳解输出结果输出结果读输入读输入编辑输入编辑输入结果格式化结果格式化显示结果显示结果图图4.5 结构图的例子结构图的例子产生最佳解

15、的一般结构产生最佳解的一般结构第34页/共61页MAB图图5.6 判定为真时调用判定为真时调用A,为假时调用为假时调用BMABC图图5.7 模块模块M循环调循环调用模块用模块A、B、C第35页/共61页5.5 面向数据流的设计方法 面向数据流设计(DFOD)是与数据流分析(DFA)对应的结构化软件设计技术。面向数据流的设计将得到以数据流图为基础的软件模块结构图。第36页/共61页数据流可以分为两种类型:1)变换型数据流 2)事务型数据流 5.5.1 变换流与事务流第37页/共61页一、一、变换流变换流 具有较明确的输入、变换(或称主加工)和输具有较明确的输入、变换(或称主加工)和输出界面的数据

16、流图称为变换型数据流图。出界面的数据流图称为变换型数据流图。如图所示,该变换中心可以理解为数据的加工如图所示,该变换中心可以理解为数据的加工和处理程序。和处理程序。读入原读入原始数据始数据校验原校验原始数据始数据计算最计算最优结果优结果编辑打印编辑打印最优结果最优结果输入输入变换中心变换中心输出输出第38页/共61页 事务型数据流图中存在一个事务中心(也就是数据处理、加工中心),它将输入分离成若干个发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径。要求类要求类别处理别处理分房处理分房处理调房处理调房处理退房处理退房处理住房要求住房要求事务中心事务中心活动路径活动路径 二、事务流第3

17、9页/共61页 通常,一个实际系统的数据流图是变换型和事务型两种类型的混合体。如图所示,中间的子块属事务型数据流,如果把中间子块视为一个处理整体的话,整个程序属变换型程序。A(事务型,(事务型,A为事务中心)为事务中心)变换中心变换中心输入输入输出输出混合型数据流图混合型数据流图第40页/共61页面向数据流设计软件结构的基本步骤有七步:1)复审并精化数据流图;2)确定数据处理流图的类型;3)确定变换中心或事务中心;5.5.2 面向数据流设计的步骤第41页/共61页4)将数据流图映射成软件模块结构图,设计出该数据流图对应的第一层模块结构;5)基于数据流图逐步分解,设计下层模块;6)运用模块设计和

18、优化准则优化软件结构;7)描述模块的接口。第42页/共61页复查、精化数据流图复查、精化数据流图类型类型找出事务中心找出事务中心找出变换中心找出变换中心映射成事务结构映射成事务结构映射成变换结构映射成变换结构优化软件模块结构优化软件模块结构导出模块结构导出模块结构复查复查不满意不满意变换变换事务事务变换设计变换设计事务设计事务设计面向数据流的设计步骤面向数据流的设计步骤第43页/共61页 变换设计就是从变换型数据流图映射出软件模块结构的过程,也称以变换为中心的设计。5.5.3 变换设计变换设计第44页/共61页变换设计的基本方法有两步:变换设计的基本方法有两步:1)分解第一层模块结构)分解第一

19、层模块结构 就是把整个变换分解成输入控制模块就是把整个变换分解成输入控制模块Ci、输出输出控制模块控制模块Co和变换中心控制模块和变换中心控制模块Ct,由主控模由主控模块控制。块控制。主控模块主控模块输出控制模块输出控制模块Co变换中心控制模块变换中心控制模块Ct输入控制模块输入控制模块Ci第45页/共61页2)分别设计输入、输出和处理的下层模块结构 方法是:从变换中心边界向两侧移动,分别把输入通路和输出通路的每个处理映射成输入控制模块Ci和输出控制模块Co的下属模块。变换中心的下层模块,是把每个处理映射成变换中心控制模块Ct的一个直接下属模块。第46页/共61页ABCDFEGHIJK变换中心

20、变换中心输入输入输出输出主控模块主控模块输出控制模块输出控制模块Co变换中心控制模块变换中心控制模块Ct输入控制模块输入控制模块CiDCBAEFGIHJK第47页/共61页 事务设计就是从事务型数据流图映射出软件模块结构的过程,也称为以事务为中心的设计。5.5.4 事务设计第48页/共61页事务设计的基本方法有两步:1)建立主控模块、接收输入类型分析模块和事务调度模块;主模块主模块调度调度输入类型分析输入类型分析第49页/共61页2)分别设计输入类型分析模块和调度模块的下层模块结构。方法是:将输出的每条通路作为调度模块的一个判断分支,而输入类型分析模块的下层模块与变换设计类似。第50页/共61

21、页I2I3I1TCA1B1C1A2B2C2事务中心事务中心主模块主模块调度调度输入类型分析输入类型分析I1I3I2A1A2B1B2C1C2第51页/共61页第5章小结 概要概要设计说明明书 该说明明书是概要是概要实际阶段的工作成果,它段的工作成果,它应说明功能分配、模明功能分配、模块划分、程序的划分、程序的总体体结构、构、输入入输出以及接口出以及接口设计、运行、运行设计、数据、数据结构构设计和和出出错处理理设计等,等,为详细设计提供基提供基础。第52页/共61页谢谢第53页/共61页亲,这里加点什么?No man or woman is worth your tears,and the one

22、 who is,wont make you cry.Never frown,even when you are sad,because you never know who is falling in love with your smile.人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。第54页/共61页亲,这里加点什么?或者写下你的心事有写日记的习惯吗?记录生活原点点滴滴保存在这里,留日后回味!生活,多姿多彩,如同PPT一样精彩!No man or woman is worth your tears,and the one who is,wont make you cry.Never frown,even when you are sad,because you never know who is falling in love with your smile.第55页/共61页文本文本内容内容标题文本文本文本内容内容标题文本文本文本内容内容标题文本亲,这里加点什么?第56页/共61页THANK YOU第57页/共61页第58页/共61页第59页/共61页第60页/共61页感谢您的观看!第61页/共61页

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

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁