【教学课件】第4章软件设计基础.ppt





《【教学课件】第4章软件设计基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章软件设计基础.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 软件设计基础软件设计基础 n软件设计的软件设计的基本目的基本目的就是回答就是回答“系统应该如何系统应该如何实现?实现?”这个问题。这个问题。n软件设计的软件设计的任务任务,就是把分析阶段产生的软件,就是把分析阶段产生的软件需求规格说明转换为用适当手段表示的软件设需求规格说明转换为用适当手段表示的软件设计,并形成软件设计文档。计,并形成软件设计文档。4.1软件设计的目标和任务软件设计的目标和任务 1.软件设计的目标软件设计的目标 n软件设计一般都包括数据设计、体系结构设计、接口软件设计一般都包括数据设计、体系结构设计、接口设计和过程设计设计和过程设计(或称构件级设计或称构件级设计)
2、等设计活动。等设计活动。n软件设计的过程和目标就是,根据用信息域表示的软软件设计的过程和目标就是,根据用信息域表示的软件需求,以及功能和性能需求,进行数据设计、系统件需求,以及功能和性能需求,进行数据设计、系统结构设计、过程设计。结构设计、过程设计。n在每个设计活动中,软件开发者应用导致高质量的基在每个设计活动中,软件开发者应用导致高质量的基本概念和原则,产生软件的数据设计模型、体系结构本概念和原则,产生软件的数据设计模型、体系结构设计模型、接口设计模型和过程设计模型。设计模型、接口设计模型和过程设计模型。n软件设计过程最终目标是产生一个设计规约,软件设计过程最终目标是产生一个设计规约,该规约
3、包括描述数据、体系结构、接口和构件该规约包括描述数据、体系结构、接口和构件的设计模型。的设计模型。n体系结构设计定义软件主要结构性元素之间的关系。设计定义软件主要结构性元素之间的关系。n数据设计将分析阶段创建的信息模型转变成实现软件所需的将分析阶段创建的信息模型转变成实现软件所需的数据结构。数据结构。n接口设计描述软件内部模块之间以及软件与人之间是如何通描述软件内部模块之间以及软件与人之间是如何通信的。信的。n构件级设计将软件体系结构的结构性元素转变成对软件构件将软件体系结构的结构性元素转变成对软件构件的过程性描述,即描述软件构件的详细内部设计细节。的过程性描述,即描述软件构件的详细内部设计细
4、节。4.1软件设计的目标和任务软件设计的目标和任务 2.软件设计的任务软件设计的任务 n从工程管理的角度来看,传统的软件设计任务通常分从工程管理的角度来看,传统的软件设计任务通常分两个阶段完成两个阶段完成。n第一个阶段是概要设计,即总体设计。第一个阶段是概要设计,即总体设计。n第二阶段是详细设计阶段,即过程设计。第二阶段是详细设计阶段,即过程设计。4.2软件设计基本概念软件设计基本概念 n4.2.1 模块与模块化 n1模块模块 n模块模块是指这样一组程序语句,它包括输入、输是指这样一组程序语句,它包括输入、输出和逻辑处理功能、内部信息及其运行计划。出和逻辑处理功能、内部信息及其运行计划。n模块
5、指可单独命名且可通过名字访问的过程函模块指可单独命名且可通过名字访问的过程函数、子程序或宏调用。数、子程序或宏调用。4.2软件设计基本概念软件设计基本概念 n模块具有以下几种特征:模块具有以下几种特征:n接口接口,模块的输入输出;,模块的输入输出;n功能功能,指模块实现什么功能,有什么作用;,指模块实现什么功能,有什么作用;n逻辑逻辑,描述模块内部如何实现需求及所需数据;,描述模块内部如何实现需求及所需数据;n状态状态,该模块的运行环境,模块间调用与被调用,该模块的运行环境,模块间调用与被调用关系。关系。4.2软件设计基本概念软件设计基本概念 n2模块化模块化 n模块化就是将程序划分成若干个独
6、立的模块,模块化就是将程序划分成若干个独立的模块,每个模块完成一个特定子功能,每个模块既是每个模块完成一个特定子功能,每个模块既是相对独立的,又是相互联系的,它们共同完成相对独立的,又是相互联系的,它们共同完成系统指定的各项功能。系统指定的各项功能。n模块化的目的是为了降低软件的复杂性。模块化的目的是为了降低软件的复杂性。4.2软件设计基本概念软件设计基本概念n模块化论据:模块化论据:C(x)定义为表示问题定义为表示问题x复杂性的函数;复杂性的函数;E(x)定义为解决问题定义为解决问题x所需要工作量(以时间计所需要工作量(以时间计算)的函数;算)的函数;则,对则,对p1和和p2两个问题,若两个
7、问题,若 C(p1)C(p2),则则 E(p1)E(p2)。4.2软件设计基本概念软件设计基本概念n一有趣的特性。即:一有趣的特性。即:C(p1+p2)C(p1)+C(p2);E(p1+p2)E(p1)+E(p2)。n上述表达式意味着上述表达式意味着:“分而治之分而治之”的结论的结论。4.2软件设计基本概念软件设计基本概念n图图4.2 软件设计成本与模块数量关系图软件设计成本与模块数量关系图最小成本区域M软件总成本模块数量成本或工作量集成成本成本/模块4.2软件设计基本概念软件设计基本概念n4.2.2 抽象与逐步求精 n1抽象抽象n抽象是指从一些事物中抽取其本质的共同的特抽象是指从一些事物中抽
8、取其本质的共同的特性,而忽略其非本质细节的差异。性,而忽略其非本质细节的差异。n在抽象的最高层次使用问题环境的语言,在较在抽象的最高层次使用问题环境的语言,在较低层次上使用更过程化的方法,把面向问题的低层次上使用更过程化的方法,把面向问题的术语和面向实现的术语结合起来描述问题的解术语和面向实现的术语结合起来描述问题的解法。法。4.2软件设计基本概念软件设计基本概念n2逐步求精逐步求精n逐步求精是一种先总体、后局部的思维原则,也就是逐步求精是一种先总体、后局部的思维原则,也就是一种逐层分解、分而治之的方法。一种逐层分解、分而治之的方法。n从在高抽象级别定义的功能陈述(或信息描述)开始,从在高抽象
9、级别定义的功能陈述(或信息描述)开始,该陈述概念性地描述了功能或信息,但没有提供有关该陈述概念性地描述了功能或信息,但没有提供有关功能内部工作的情况或信息的内部结构。求精是设计功能内部工作的情况或信息的内部结构。求精是设计者详细描述的原始声明,在后续求精(详细描述)活者详细描述的原始声明,在后续求精(详细描述)活动中,提供越来越多的细节。动中,提供越来越多的细节。4.2软件设计基本概念软件设计基本概念n4.2.3 信息隐藏信息隐藏n信息隐蔽是在设计和确定模块时,使得一个模信息隐蔽是在设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这块内包含的信息(过程和数据)对于不需要这些信
10、息的模块来说,是不能访问的。些信息的模块来说,是不能访问的。4.2软件设计基本概念软件设计基本概念n4.2.4 模块独立性模块独立性n模块独立性(模块独立性(Module Independence)概括了把软)概括了把软件划分为模块时要遵守的准则,也是判断模块构造是件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准,同时也是模块化和抽象及信息隐藏不是合理的标准,同时也是模块化和抽象及信息隐藏概念的直接产物。概念的直接产物。n坚持模块的独立性,一般认为是获得良好设计的关键。坚持模块的独立性,一般认为是获得良好设计的关键。n换句话说,希望这样设计软件结构,使得每个模块只换句话说,希望这样
11、设计软件结构,使得每个模块只完成系统要求的一个相对独立的特定子功能,并且和完成系统要求的一个相对独立的特定子功能,并且和其他模块之间的关系很简单。其他模块之间的关系很简单。4.2软件设计基本概念软件设计基本概念n为什么模块的独立性很重要呢?为什么模块的独立性很重要呢?n第一,有效的模块化(即具有独立的模块)软件第一,有效的模块化(即具有独立的模块)软件比较容易开发出来。比较容易开发出来。n第二,独立模块比较容易测试和维护。第二,独立模块比较容易测试和维护。n独立性可以从两个方面来度量,即独立性可以从两个方面来度量,即模块本身的内模块本身的内聚(聚(Cohesion)和模块之间的耦合)和模块之间
12、的耦合(Coupling)。4.2软件设计基本概念软件设计基本概念n1内聚内聚n这是从功能角度对模块内部聚合能力的量度。按照由这是从功能角度对模块内部聚合能力的量度。按照由弱到强的顺序,弱到强的顺序,Myers把模块内部聚合能力分为把模块内部聚合能力分为7类,类,在图中,从左到右内聚强度逐步增强。在图中,从左到右内聚强度逐步增强。低内聚低内聚 中内聚中内聚 高内聚高内聚n偶然性内聚偶然性内聚 Coincidental Cohesionn逻辑性内聚逻辑性内聚 Logical Cohesionn时间性内聚时间性内聚 Temporal Cohesionn过程性内聚过程性内聚 Procedural C
13、ohesionn通信性内聚通信性内聚 Communicational Cohesionn顺序性内聚顺序性内聚 Sequential Cohesionn功能性内聚功能性内聚 Functional Cohesion 4.2软件设计基本概念软件设计基本概念n偶然性内聚偶然性内聚 n块内各组成成分在功能上是互不相关的。块内各组成成分在功能上是互不相关的。XYZWA=B+CGET CARDPUT OUTPUTIF I=5 THEN E=04.2软件设计基本概念软件设计基本概念n逻辑性内聚逻辑性内聚 n这种模块把几种相关、相似功能组合在一起,这种模块把几种相关、相似功能组合在一起,每次被调用时,由传递给模
14、块的参数来确定该每次被调用时,由传递给模块的参数来确定该模块应完成哪一种功能。模块应完成哪一种功能。XYZWABCDXYZWABCD4.2软件设计基本概念软件设计基本概念n时间性内聚时间性内聚 n如果一个模块所包含的任务必须在同一如果一个模块所包含的任务必须在同一“时间时间”内完成,则这个模块的块内联系称为时间性内完成,则这个模块的块内联系称为时间性内聚。内聚。紧急意外故障处理l关闭文件l报警l保留现场.4.2软件设计基本概念软件设计基本概念n过程化内聚过程化内聚 n当一个模块中包含的一组任务必需按照某一特当一个模块中包含的一组任务必需按照某一特定的次序执行时,就称为过程性内聚模块。定的次序执
15、行时,就称为过程性内聚模块。建立方程组系数矩阵高斯消去法回 代4.2软件设计基本概念软件设计基本概念n通信性内聚通信性内聚 n模块内部的各个成分都使用同一种输入数据,模块内部的各个成分都使用同一种输入数据,或者产生同一个输出数据。它们靠公用数据而或者产生同一个输出数据。它们靠公用数据而联系在一起,故称为通信性内聚。联系在一起,故称为通信性内聚。开领书单登记售书删除修改发票领书单售书登记表文件4.2软件设计基本概念软件设计基本概念n顺序性内聚顺序性内聚 n如果一个模块内的处理元素和同一个功能密切如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常一个相关,而且这些处理必须
16、顺序执行,通常一个处理元素的输出数据作为下一个处理元素的输处理元素的输出数据作为下一个处理元素的输入数据,则成为顺序性内聚。入数据,则成为顺序性内聚。Al输入系数l求解l打印方程解.4.2软件设计基本概念软件设计基本概念n功能性内聚功能性内聚 n如果一个模块包括仅为完成某一具体任务所必如果一个模块包括仅为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功来是为了完成一个具体的任务,此模块则为功能强模块。能强模块。4.2软件设计基本概念软件设计基本概念n2耦合耦合n耦合是对软件内部模块之间相互联系的耦合是对
17、软件内部模块之间相互联系的度量。按照度量。按照Myers的划分,也归纳为的划分,也归纳为7类。类。弱耦合弱耦合中耦合中耦合较强耦合较强耦合强耦合强耦合非非 直直 接接 耦耦 合合 No No Direct Direct CouplingCoupling数据耦合数据耦合 Data Coupling Data Coupling特征耦合特征耦合 Stamp Coupling Stamp Coupling控制耦合控制耦合 Control Coupling Control Coupling外部耦合外部耦合 External Coupling External Coupling公共耦合公共耦合 Commo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 软件设计 基础

限制150内