软件工程 概要设计全解ppt课件.ppt
《软件工程 概要设计全解ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程 概要设计全解ppt课件.ppt(108页珍藏版)》请在三一办公上搜索。
1、,系统设计,4.1 概述4.2 任务,4.3 设计原理,4.4 模块独立性4.5 图形工具,4.6 面向数据流的设计方法4.7 数据库设计4.8 小结,4.1 概述,软件设计分为两个阶段:,总体设计(又称概要设计),通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。,详细设计,详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。,4.1 概述,软件分析映射软件设计,4.1 概述,4.2 任务,1. 制定规范,确定设计的目标和优先顺序选定设计方法,规定设计文档的编制标准,文档体系、详细程度、图形画法、纸张样式,编码
2、形式,接口约定、命名规则,4.2 任务,2. 系统的结构设计,划分层次结构确定模块功能,确定模块调用关系确定模块的接口,评估模块划分的质量、导出模块结构规则,4.2 任务,3. 数据结构设计,确定输入、输出文件的结构数据库设计,4. 可靠性设计(质量设计)5. 书写文档,概要设计说明书、 数据库设计说明书、 用户手册、 初步的测试计划,4.2 任务,6. 评审,可追溯性,确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求,接口,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内,风险,确认该设计在现有技术
3、条件下和预算范围内是否能按时实现,4.2 任务,实用性,确认该设计对于需求的解决方案是否实用,技术清晰度,确认该设计是否以一种易于翻译成代码的形式表达,可维护性,确认该设计是否考虑了方便未来的维护,质量,确认该设计是否表现出良好的质量特征,4.2 任务,各种选择方案,看是否考虑过其它方案,比较各种选择方案的标准是什么,限制,评估对该软件的限制是否现实,是否与需求一致,其它具体问题,对于文档、可测试性、设计过程等进行评估,4.3 设计原理,模块化抽象,逐步求精信息隐藏,4.3.1 模块化,什么是模块?,模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识
4、符来代表它。,过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。,4.3.1 模块化,什么是模块化?,就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。,图: 模块化和软件成本,4.3.1 模块化,五条标准,模块可分解性,把问题分解为子问题,模块可组装性,可复用,模块可理解性,无需参考其他模块,易于构造和修改,模块连续性,微小修改只导致对个别模块,模块保护性,异常影响局限在模块内部,人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在
5、实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。,4.3.2,抽象,4.3.3 逐步求精,求精实际上是细化过程。,我们从在高抽象级别定义的功能陈述(或信息描述)开始。也就是说,该陈述仅仅概念性地描述了功能或信息,但是并没有提供功能的内部工作情况或信息的内部结构。,求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。,4.3.4 信息隐藏,设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些
6、信息的模块来说,是不能访问的。,模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。只有那些为了完成软件的总体功能而必需在模块间交换的信息,才允许在模块间进行传递。,4.4 模块独立性,模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。模块的独立性可以由两个定性标准度量:,耦合,用于衡量不同模块彼此间互相依赖(连接)的紧密程度;,内聚,用于衡量一个模块内部各个元素间彼此结合的紧密程度。,4.4.1 耦合,耦合是对一个软件结构内不同模块之间互联程度的度量。,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。在软件设计中应该
7、追求模块间尽可能松散耦合的系统。,4.4.1 耦合,耦合的七种类型,1. 非直接耦合2. 数据耦合3. 特征耦合4. 控制耦合5. 外部耦合6. 公共耦合7. 内容耦合,4.4.1 耦合,1、非直接耦合(Nondirect Coupling),如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。,4.4.1 耦合,2、数据耦合 (Data Coupling),如果一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,则称这种耦合为数据耦合。,4.4.1 耦
8、合,3、标记耦合 (Stamp Coupling),如果一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。,4.4.1 耦合,4、控制耦合 (Control Coupling),如果一个模块通过,传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。,4.4.1 耦合,5、外部耦合(External Coupling),一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。,6、公共耦合(Common Coupling),若一组模块都访问同一个公共数据环境,则它们之间的耦
9、合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。,4.4.1 耦合,公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。,4.4.1 耦合,7、内容耦合 (Content Coupling),如果发生下列情形,两个模块之间就发生了内容耦合:,一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;,两个模块有一部分程序代码重迭(只可能出现在汇编语言中);,一个模块有多个入口。,4.4.1 耦合,耦合性,应采取下述设计原则:,尽量使用数据耦合,少用控制耦合,限
10、制公共环境耦合的范围,完全不用内容耦合。,4.4.2 内聚七种内聚:1. 偶然内聚2. 逻辑内聚3. 时间内聚4. 过程内聚5. 通信内聚,6. 顺序内聚7. 功能内聚,信息内聚,4.4.2 内聚,1、偶然内聚(Coincidental Cohesion),又称巧合内聚,当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为偶然内聚模块。它是内聚程度最低的模块。,4.4.2 内聚,2、逻辑内聚,(Logical Cohesion),这种模块把逻辑相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。,例如一个模块读取各种不同类型外设的输入
11、。,4.4.2 内聚,3、时间内聚(Classical Cohesion),时间内聚又称为经典内聚,或瞬时内聚(TemporalCohesion) 。,这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。,问题:一般在某个系统中什么模块会是时间内聚的?,答案:程序的初始化模块和终止模块。,4.4.2 内聚,4、过程内聚(Procedural Cohesion),如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。,使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中
12、的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。,问题:请大家举个生活中 必须遵照特定次序 的例子?,答案:排队买饭( 队列,要求先进先出) 。,4.4.2 内聚5、通信内聚 (Communication Cohesion)如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。,A,打印,报告1,打印报告2,打印,B,存入,打印,C,修改,删除,打印,报告2其他定义:如果一个模块的所有成分都操作同一数据集或生成同一数据集 。,4.4.2 内聚,4.4.2 内聚6、顺序内聚 (Sequence Cohesion)这种模块要求各个成分
13、顺序执行,并且通常上一个输出是下一个输入。,读入,编辑,A,数据,累加,打印,B,结果,4.4.2 内聚,信息内聚 (Informational Cohesion),模块多个功能在同一数据结构上操作,每一项功能有一个唯一的入口点。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此它是一个信息内聚的模块。,4.4.2 内聚,7、功能内聚 (Functional Cohesion),一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。,4.4.2 内聚,内聚度,设计内聚原则:,
14、设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。,4.5 图形工具,层次图,HIPO图结构图,4.5.1 层次图,也称H图,是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次结构。层次图中的每个方框代表一个模块,方框间的连线表示模块间的调用关系。,4.5.2 HIPO图,由H图和IPO图两部分组成,4.5.3 结构图,4.5.3 结构图,结构图中的每个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块间的调用关系。,在结构图中通常还用带注释的箭头表示模块调用过
15、程中模块之间传递的信息。,注释箭头尾部是空心圆表示传递的是数据。,注释箭头尾部是实心圆则表示传递的是控制信息。,4.5.3 结构图,大学职业介绍系统,4.5.3 结构图,模块,模块用矩形框表示,并用模块的名字标记它。,4.5.3 结构图,模块的调用关系和接口,模块之间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块。,4.5.3 结构图,条件调用,循环调用,4.5.3 结构图,4.6 面向数据流的设计方法,目标是给出设计软件结构的一个系统化的途径。,面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。,通常所说的结构化设计方法,也就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概要设计全解ppt课件 概要 设计 ppt 课件

链接地址:https://www.31ppt.com/p-1444589.html