您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 软件工程--总体设计
西北师大数学与信息科学学院1第八章基于构件的软件工程第五章系统设计第五章系统设计第五章系统设计西北师大数学与信息科学学院245.1设计过程5.2设计原理5.3启发规则5.4描绘软件结构的图形工具5.5面向数据流的设计方法西北师大数学与信息科学学院3软件设计阶段要解决“怎么做”的问题,是整个软件开发过程的核心问题,所有的开发工作都将根据设计的方案进行。系统的总体结构在该阶段决定,因此软件的总体设计决定了系统的质量。软件设计分为总体设计和详细设计两个阶段。总体设计需求说明书复审软件结构修改详细设计可接受模块描述复审修改设计说明书1、设计阶段结束要交付的文档是设计说明书,根据设计方法的不同,有不同的设计文档。2、每个设计步骤完成后,都应进行复审。软件设计西北师大数学与信息科学学院4编码测试设计信息描述功能描述行为描述其他需求数据设计过程设计程序模块集成并确认的软件软件开发阶段的信息流软件设计的过程西北师大数学与信息科学学院5●任务:确定系统的软件结构,分解模块,确定系统的模块层次关系。●目标:编写软件的“总体设计说明书”●工具:采用的工具数据流图层次图HIPO图软件结构图总体设计的任务西北师大数学与信息科学学院6结构化设计(SD)技术软件设计的目标分层的DFD图初始的结构图最终的结构图转换优化数据流图的特征启发式规则1、确定系统的软件结构,分解模块,确定系统的模块层次关系2、确定每个模块功能的算法、数据结构确定每个模块功能的算法、数据结构(事务型、变换型(特征))(层次图表示)西北师大数学与信息科学学院7软件设计分为:结构设计总体设计(概要设计)过程设计详细设计总体设计过程分两个阶段:系统设计阶段:确定系统的具体设计方案;结构设计阶段:确定软件结构(划分模块)。5.1设计过程西北师大数学与信息科学学院8设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构数据库设计制订测试计划书写文档数据流图•系统流程图•组成系统的物理元素清单•成本/效益分析•实现系统的进度计划•系统说明•用户手册•测试计划•详细的实现计划•数据库设计结果审查和复审系统设计过程西北师大数学与信息科学学院95.2系统设计的基本原则5.2.1模块化5.2.2抽象5.2.3信息隐蔽退出5.2.4模块独立性西北师大数学与信息科学学院105.2.1软件设计原理1、模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。即能够单独命名并独立地完成一定功能的程序语句的集合。模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来组成一个整体,可以完成指定的功能,满足问题的功能。过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。西北师大数学与信息科学学院11根据前面的结论,我们可以得出下面的不等式:E(P1+P2)>E(P1)+E(P2)这个不等式表明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。对于两个问题P1和P2,如果:C(P1)>C(P2)则:E(P1)>E(P2)另一个有趣的特性是:C(P1+P2)>C(P1)+C(P2)3、模块化原理西北师大数学与信息科学学院12模块化和软件成本的关系M软件总成本成本或工作量最小成本区接口成本模块数目西北师大数学与信息科学学院13我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。5.2.2抽象5.2.3逐步求精逐步求精是人类解决复杂问题时采用的基本技术,也是许多软件工程技术(例如,规格说明技术,设计和实现技术、测试和集成技术)的基础。逐步求精定义为:“为了能集中精力解决主要问题而尽西北师大数学与信息科学学院14信息隐蔽指:是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的;即将那些自身的实现细节与数据“隐藏”起来。信息局部化指:局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。信息隐蔽局部和的关系?5.2.4信息隐蔽和局部化西北师大数学与信息科学学院155.2.5模块独立模块独立概念是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。模块的独立程度可以由两个定性标准来度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。西北师大数学与信息科学学院16耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合高弱强耦合性模块独立性模块间的耦合西北师大数学与信息科学学院171、耦合1.非直接耦合2.数据耦合3.特征耦合4.控制耦合5.外部耦合6.公共耦合7.内容耦合弱耦合中耦合强耦合模块1模块2模块3模块4数据耦合通过简单变量交换数据特征耦合通过数据结构交换数据非直接耦合模块之间没有信息传递模块A模块B模块C模块D模块L模块N全局性数据结构公共耦合Flag=1?S1S2模块1控制耦合模块之间传递的是控制信息TF全局性简单变量外部耦合模块A模块B内容耦合•访问其它模块的内部数据•直接跳到其他模块内部执行西北师大数学与信息科学学院18设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。西北师大数学与信息科学学院19内聚低功能内聚顺序内聚通信内聚过程内聚时间内聚逻辑内聚偶然性内聚高强弱内聚性模块独立性软件设计西北师大数学与信息科学学院202、内聚内聚:一个模块内各个元素彼此结合的紧密程度。偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。逻辑内聚:若干个逻辑功能类似的任务组成一个模块。时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。低内聚中内聚高内聚过程内聚:模块内的处理元素是相关的,且必须以特定次序执行。通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个输出数据。顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必须顺序执行。功能内聚:所有处理元素属于一个整体,完成一个单一的功能。模块A模块B模块CS1;S2;模块A模块B模块C模块A模块B模块C模块D西北师大数学与信息科学学院215.3启发式规则1.改进软件结构提高模块独立性合并和分解2.模块规模应该适中一个模块的规模不应过大,通常能写在一页纸内。从心理学角度研究得知,当一个模块包含语句数超过30以后,模块的可理解程度迅速下降。西北师大数学与信息科学学院223.模块的深度、宽度、扇出和扇入应适当深度:表示软件结构中的控制层数,它往往能粗略的标志一个系统的大小和复杂度。宽度:是软件结构内同一个层次上的模块总数的最大值。扇出:是一个模块直接控制的模块数。扇入:一个模块的扇入表明有多少个上级模块直接调用它。宽度扇出DABCMT扇入深度西北师大数学与信息科学学院23尽可能减少高扇出结构,随着深度增大扇入。如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。西北师大数学与信息科学学院244.模块的作用范围应该在控制范围之内作用范围:一个模块的作用范围指受该模块内一个判定影响的所有模块的集合。控制范围:一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。TOPABCDEF(a)TOPABCDEF(b)TOPABCDEF(c)图(a)差的结构图;(b)不理想的结构图;(c)理想的结构图西北师大数学与信息科学学院255.力争降低模块接口的复杂程度。模块接口复杂是软件发生错误的一个主要原因。6.设计单入口单出口的模块,避免“病态连接”7.模块功能应该可以预测。防止模块功能过分局限西北师大数学与信息科学学院265.4表示软件结构的图形工具5.4.1层次图5.4.2HIPO图5.4.3结构图西北师大数学与信息科学学院275.4.1层次图和HIPO图通常使用层次图描绘软件的层次结构。1、层次图层次图用来描绘软件的层次结构,很适于在自顶向下设计软件的过程中使用。在层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。西北师大数学与信息科学学院28学生成绩管理系统层次图西北师大数学与信息科学学院29HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。2、HIPO图西北师大数学与信息科学学院30描绘软件结构的图形工具在层次图(H图)里除了最顶层的方框之外,每个方框都加编号。编号规则和数据流图的编号规则相同,例如,图加了编号后得到图0。像这样带编号的层次图称为HIPO图(层次图加输入/处理/输出图的英文缩写)。图学生成绩管理系统HIPO图西北师大数学与信息科学学院31图4.6IPO图的一个例子西北师大数学与信息科学学院32图4.7改进的IPO图(IPO表)的形式西北师大数学与信息科学学院33方框代表模块,框内注明模块的名字或主要功能;箭头表示模块的调用关系,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。尾部是空心圆表示传递的是数据实心圆表示传递的是控制信息5.4.2结构图结构图的基本符号结构图和层次图类似也是描绘软件结构的图形工具。西北师大数学与信息科学学院34方框代表模块,框内注明模块的名字或主要功能;箭头表示模块的调用关系,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。尾部是空心圆表示传递的是数据实心圆表示传递的是控制信息5.4.1结构图结构图的基本符号结构图和层次图类似也是描绘软件结构的图形工具。西北师大数学与信息科学学院35描绘软件结构的图形工具结构图的组成有6种类型的模块:传入模块、传出模块、变换模块、协调模块,如下图所示,还有两种:源模块:不调用其它模块的传入模块,只适用于传入部分的始端。最初的输入;漏模块:不调用其它模块的传出模块,只适用于传出部分的末端。最后的输出。系统结构图中的模块类型西北师大数学与信息科学学院36结构图的图形符号编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息西北师大数学与信息科学学院37软件结构图的基本符号AB(a)基本形式ACBD(b)顺序ABC(c)选择AB(d)重复结构图的三种基本结构西北师大数学与信息科学学院38ABCT1MT2T3(a)(b)4.3(a)选择调用;(b)循环调用西北师大数学与信息科学学院39产生最佳解的结构图格式化的解解产生最佳解计算最佳解得到好输入编辑输入读输入原始输入编辑结果原始输入输出结果显示结果结果格式化解格式化的解好输入好输入解西北师大数学与信息科学学院40例:学生成绩管理系统的结构图西北师大数学与信息科学学院415.5面向数据流的设计方法5.5.1数据流图的类型5.5.2设计步骤5.5.3变换设计退出5.5.4事务设计5.5.5设计的后处理西北师大数学与信息科学学院42一、总体设计步骤⑴从DFD图导出初始的模块结构图。⑵按照SD法设计总则(启发式规则),改进模块结构图。注意:模块结构图不同于“框图”。二、DFD图的分类一般将DFD图分为两种典型的类型,分析系统的DFD图类型的目的,是为了采用不同的技术将其转换为初始的模块结构图。中心变换型(transformcenter)_变换分析事务处理型(transaction)_事务分析5.5.1数据流图的类型西北师大数学与信息科学学院43SD方法的两种映射过渡方法变换型DFD事务型D
本文标题:软件工程--总体设计
链接地址:https://www.777doc.com/doc-4421960 .html