软件工程模型与方法课件.ppt

上传人(卖家):晟晟文业 文档编号:4533509 上传时间:2022-12-17 格式:PPT 页数:106 大小:1.85MB
下载 相关 举报
软件工程模型与方法课件.ppt_第1页
第1页 / 共106页
软件工程模型与方法课件.ppt_第2页
第2页 / 共106页
软件工程模型与方法课件.ppt_第3页
第3页 / 共106页
软件工程模型与方法课件.ppt_第4页
第4页 / 共106页
软件工程模型与方法课件.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、 2008 BUPT TSEG第六章 软件设计修佳鹏 软件工程模型与方法软件工程模型与方法Models&Methods of Software Engineering2 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心本章内容本章内容u6.1 软件设计历史及目标u6.2 软件设计的重要性u6.3 软件设计过程u6.4 软件概要设计步骤u6.5 软件详细设计步骤u6.6 软件设计原则u6.7 软件设计基础u6.8 软件体系结构3 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心本章要解决的问题本章要解决的问题u相对于

2、分析而言,设计是什么?为什么要进行设计?u软件设计在软件开发过程中处于什么位置?u经过软件需求分析,确定了系统必须“做什么”的问题,这些功能是如何在系统中得以实现的的呢?u为了实现合理分配系统功能并尽可能提高处理用户需求的性能,系统中这些功能之间是什么关系呢?u为了满足用户在处理业务过程中的一些习惯,怎样合理而又灵便的分配系统界面功能呢?4 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.1 软件设计历史及目标软件设计历史及目标u早期的设计工作集中在模块化程序的开发标准和自顶向下求精软件结构的方法,称为结构化程序设计的理论。u将数据流或数据结构转化为

3、设计定义的方法;u面向对象的软件设计方法 u如今,在软件设计方面的着重点已转移到软件体系结构和可用于实现软件体系结构的设计模式。5 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件设计的目标软件设计的目标u首先,设计通常是开发活动的第一步。u设计定义为:“应用各种技术和原理,对设备、过程或系统做出足够详细的定义,使之能够在物理上得以实现”。u软件设计是软件工程过程中的技术核心,是构造和验证软件所需的三项技术活动之一。软件设计也是后续开发步骤及软件维护工作的基础。u软件设计的最基本目标就是回答“概括地描述系统如何实现用户所提出来的功能和性能等方面的需求

4、”u软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。6 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心设计模型与分析模型的关系设计模型与分析模型的关系 数据词典 数 据 流 图 实实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对 象 描 述 过程设计 接口设计 系统结构设计 数据设计 7 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.2 软件设

5、计的重要性软件设计的重要性u软件设计是开发阶段中最重要的步骤,它提供了软件结构的内外表示,使得软件的质量评价成为可能,也是质量得以保证的关键步骤。软件设计是将用户要求准确地转化成为最终的软件产品的唯一途径。也是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统。8 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.3 软件设计过程软件设计过程u从工程管理的角度,软件设计分成:概要设计:将软件需求转化为数据结构和软件的系统结构,并建立接口 详细设计:即过程设计,通过对软件结构进行细化,得到各功能模块的详细数据结构和算法 9 2008

6、 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.3 软件设计过程软件设计过程u系统结构设计:定义了软件系统各主要成份之间的关系。其中包括软件的接口设计,它特指软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制的设计;u数据设计:将实体关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义;u过程设计:把系统结构设计转换成软件的过程性描述。10 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4 软件概要设计步骤软件概要设计步骤u6.4.1 制定设计规范u6.4.2 软件系统

7、结构的总体设计u6.4.3 处理方式设计u6.4.4 数据结构设计u6.4.5 可靠性设计u6.4.6 编写概要设计说明书u6.4.7 概要设计评审11 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.1 制定设计规范制定设计规范u在软件设计阶段,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。阅读和理解软件需求说明书,在给定预算范围内和现有的技术条件下,确认用户的需求能否实现。若不能实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。根据目标确定最合适的设计方法。规定设计文档的编制标准,包括文档体系、用

8、纸及样式、记述详细的程度、图形的画法等。规定编码的信息形式(代码体系),与硬件、操作系统的接口规约,命名规则等。12 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.2 软件系统结构的总体设计软件系统结构的总体设计u基于分析阶段的层级数据流图内的功能层次结构,设计并合理分配各功能模块的组成以及功能模块之间的关系,最终形成一个能满足用户需求的系统结构。采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构确定每个模块的功能,建立与已确定的软件需求的对应关系。确定模块间的调用关系。确定模块间的接口,即模块间传递的信息。设计接口的信息结构。评估模

9、块划分的质量及导出模块结构的规则。13 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.3 处理方式设计处理方式设计u基于系统结构的设计,确定各功能需求所必需的算法,评估算法的性能。u确定为满足软件系统的性能需求所必需的算法和模块间的控制方式。周转时间:系统接收处理的请求后,从输入开始,经过处理直到输出结果为止的整个时间。响应时间:这是对于实时联机系统的性能需求。系统接收处理的请求后,用户需要多次对计算机进行输入输出,一次输入输出的时间就是响应时间。吞吐量:单位时间内能够处理的数据量叫做吞吐量。这是表示系统能力的指标。精度:在进行科学计算或工程计

10、算时,运算精确度的要求。14 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.4 数据结构设计数据结构设计u确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。它包括:确定输入、输出文件的详细的数据结构。结合算法设计,确定算法所必需的逻辑数据结构及其操作。确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。限制和确定各个数据设计决策的影响范围。若需要与操作系统或调度程序接口所必须的控制表等数据时确定其详细的数据结构和使用规则。数据的保护性设计防卫性设计;在软件设计中就插入自动检错,报错和纠错的功能。一致性设计:

11、一是保证软件运行过程中所使用的数据的类型和取值范围不变。二是在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏。15 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.5 可靠性设计可靠性设计u可靠性设计也叫做质量设计。可靠性设计也叫做质量设计。软件可靠性简言之是指程序和文档中出现的错误较少。u在运行过程中,为了适应软件需求经常变在运行过程中,为了适应软件需求经常变更的情况,在软件开发的一开始就要确定更的情况,在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护。施,

12、以使得软件易于修改和易于维护。16 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.6 编写概要设计说明书编写概要设计说明书u概要设计说明书:给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。u数据库设计说明书:给出所使用数据库简介、数据模式设计、物理设计等。u用户手册:对需求分析阶段编写的初步的用户手册进行审订。u制定初步的测试计划:对测试的策略、方法和步骤提出明确的要求。17 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.4.7 概要设计评审概要设计评审u可追溯性:即分析该软件

13、设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。u接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内。u风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。u实用性:即确认该软件设计对于需求的解决方案是否实用。u技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达。u可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。u质量:即确认该软件设计是否表现出良好的质量特征。u各种选择方案:看是否考虑过其他方案,比较各种选择方案的标准是什

14、么。u限制;评估对该软件的限制是否现实,是否与需求一致。18 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.5 软件详细设计步骤软件详细设计步骤u确定软件各个功能模块内的算法以及各功能模块的内部数据组织。u选定某种表达形式来描述各种算法。u进行详细设计的评审。19 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件设计的整体流程软件设计的整体流程20 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6 软件设计原则软件设计原则u软件设计既是过程又是模型。u设计过程

15、是一系列的细化过程,使设计人员能够描述目标系统的各个侧面。u设计模型首先描述目标系统的整体架构,然后逐步细化架构得到构造每个细节的指导原则,从而得到系统的一系列不同视图。u良好的设计原则可为设计过程导航。衡量设计过程的技术原则衡量设计模型的技术原则21 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.1 设计过程的技术原则设计过程的技术原则 u设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。u对于开发者和维护者而言,设计必须是可读的、可理解的,使得将来易于编程、易于测试、易于维护。u设计应该给出软件的全貌,包括从实现角度

16、可看到的数据、功能、行为。22 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.2 设计模型的技术原则设计模型的技术原则u设计模型应该是一个分层结构。该结构:使用可识别的设计模式搭建系统结构。由具备良好设计特征的构件构成。可以用演化的方式实现。u设计应当模块化。u设计应当包含数据、系统结构、接口和构件(模块)的清晰的视图。u设计应当根据将要实现的对象和数据模式导出合适的数据结构。u设计应当建立具有独立功能特征的构件。u设计应当建立能够降低模块与外部环境之间复杂连接的接口。u设计模型应当通过使用软件需求信息所驱动的可重复的方法导出。23 2008

17、BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.3 抽象化抽象化u抽象是人类在解决复杂问题时经常采用的一种思维方式,它将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。u在软件开发中运用抽象的概念,可以将复杂问题的求解过程分层,在不同的抽象层上实现难度的分解。软件开发过程中从问题定义到最终的软件生成,每一阶段都是在前一阶段基础上对软件解法的抽象层上的一次求精和细化。u对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则采用过程化的方

18、法。24 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心三类抽象三类抽象u过程抽象:软件计划阶段:软件被看作是一个相对宏观的系统元素软件需求分析阶段:用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。概要设计阶段:使用规定的符号表示软件的轮廓和结构详细设计阶段:使用面向代码的符号表示软件的内部结构u数据抽象:允许设计人员在不同层次上描述数据对象的细节。u控制抽象:可以包含一个程序控制机制而无须规定其内部细节。25 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.4 模块化模块化u按照自顶向下的设

19、计原则,需将一个大规模的软件分解成若干相对独立的模块,然后分别对这些规模较小的模块进行处理。u实际上,难点在于合理的划分模块如果模块是相互独立的,当模块变得越小,每个模块花费的工作量越低 但当模块数增加时,模块间的联系也随之增加,把这些模块联接起来的工作量也随之增加。降低了系统的复杂性,使得系统容易修改;推动了系统各个部分的并行开发,从而提高了软件的生产效率。26 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.4.1模块的定义模块的定义u模块(module):整个软件可被划分成若干个可单独命名且可编址组成部分,这些部分称之为模块。u模块具有如下

20、三个基本属性:功能:实现什么功能,做什么事情。逻辑:描述模块内部怎么做。状态:该模块使用时的环境和条件。u模块的表示模块的外部特性:是指模块的模块名、参数表、以及给程序以至整个系统造成的影响。模块的内部特性:是指完成其功能的程序代码和仅供该模块内部使用的数据。27 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.4.2 模块设计的标准模块设计的标准u模块可分解性:可将系统按问题子问题分解的原则分解成系统的模块层次结构;u模块可组装性:可利用已有的设计构件组装成新系统,不必一切从头开始。u模块可理解性:一个模块可不参考其他模块而被理解;u模块连续性

21、:对软件需求的一些微小变更只导致对某个模块的修改而整个系统不用大动;u模块保护:将模块内出现异常情况的影响范围限制在模块28 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.5 信息隐藏信息隐藏u由Parnas提倡的信息隐藏是指,每个模块的实现细节对于其它模块来说是隐蔽的。u就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。u其最大的好处就是使得模块的修改和软件的维护所造成的影响可以局限在一个或几个模块范围内。29 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.6 模

22、块的独立性模块的独立性u功能独立性是抽象、模块化和信息隐藏的直接产物。u如果一个模块能够独立于其他模块被编程、测试和修改,而和软件系统中其它的模块的接口是简单的,则该模块具有功能独立性。u1978年Meyer提出了两个准则度量模块独立性,即模块间的耦合和模块的内聚。30 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.6.1 模块的内聚性模块的内聚性u内聚是模块功能强度的度量,一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其他模块之间的耦合性就会减低,而模块独立性就越强。巧合巧合 逻辑逻辑 时间时间 过程过程 通信通信 信

23、息信息 功能功能内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚 内聚内聚内聚性内聚性功能独立性功能独立性31 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的内聚性模块的内聚性u巧合内聚巧合内聚 当几个模块内凑巧有一些程序当几个模块内凑巧有一些程序段代码相同,又没有明确表现段代码相同,又没有明确表现出独立的功能,为了减少存储出独立的功能,为了减少存储把这些代码独立出来建立一个把这些代码独立出来建立一个新的模块,这个模块就是巧合新的模块,这个模块就是巧合内聚模块。内聚模块。它是内聚程度最低它是内聚程度最低的模块的模块u逻辑内聚逻辑内聚这种

24、模块把几种相关的功能组这种模块把几种相关的功能组合在一起,每次被调用时,由合在一起,每次被调用时,由传送给模块的判定参数来确定传送给模块的判定参数来确定该模块应执行哪一种功能。该模块应执行哪一种功能。32 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的内聚性模块的内聚性u时间内聚时间内聚又称为经典内聚。这种模块一般为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。u过程内聚使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个

25、模块,这三个模块就是过程内聚模块。33 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的内聚性模块的内聚性u通信内聚如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。34 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的内聚性模块的内聚性u信息内聚这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结

26、构(符号表),因此,它是一个信息内聚的模块。信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。u功能内聚一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。35 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.6.6.2 模块的耦合性模块的耦合性u耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。非直接非直接 数据数据 标记标记 控制控制 外部外部 公

27、共公共 内容内容 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合耦合性耦合性功能独立性功能独立性36 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的耦合性模块的耦合性u内容耦合一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只可能出现在汇编语言中);一个模块有多个入口。37 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的耦合性模块的耦合性u公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则

28、它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况:松散公共耦合和紧密公共耦合。只有在模块之间共享的数据很多,且通过参数表传递不方便时,才使用公共耦合。公共耦合会引起下列问题:所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性。公共数据名的使用,明显降低了程序的可读性。38 2008 BUPT TSEG 北京邮电大学北京邮电大学

29、 通信软件工程中心通信软件工程中心模块的耦合性模块的耦合性u外部耦合一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。u控制耦合如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。控制耦合的实质是在单一接口上选择多功能模块中的某项功能。且控制模块必须知道所控制模块内部的一些逻辑关系,降低了模块的独立性。39 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的耦合性模块的耦合性u标记耦合如果一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数

30、据结构的子结构,而不是简单变量。要求这一组模块都必须清楚该数据结构,并按结构的要求进行操作。它使在数据结构上的操作复杂化了,应该把数据结构上的操作全部集中在一个模块中,来消除这种耦合。p0(x0,y0)p1(x1,y1)标记标记耦合耦合 LINE(p0,p1)40 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块的耦合性模块的耦合性u数据耦合如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。由于限制了只通过参数传递数据,该方式开发的程序简单、安全可靠,因此它

31、是一种松散的耦合,模块间独立性强。u非直接耦合如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。p0(x0,y0)p1(x1,y1)数据耦合数据耦合 LINE(x0,y0,x1,y1)41 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.7 软件设计基础软件设计基础u6.7.1 自顶向下,逐步细化u6.7.2 系统控制结构u6.7.3 结构划分和结构图u6.7.4 数据结构u6.7.5 软件过程42 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信

32、软件工程中心6.7.1 自顶向下逐步细化自顶向下逐步细化u这是Niklaus Wirth提出的设计策略。u将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。43 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.7.2 系统控制结构系统控制结构u系统控制结构表明了程序构件(模块)的组织情况。控制层次往往用程序的层次(树形或网状)结构来表示。u程序结构的深度程序结构的深度:程序结构的层次数称为结构的深度。u程序结构的宽度程序结构的宽度:层次结构中同一层模块的最大模块个

33、数称为结构的宽度。u模块的扇入和扇出模块的扇入和扇出:扇出表示一个模块直接调用(或控制)的其它模块数目。扇入则定义为调用(或控制)一个给定模块的模块个数。44 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心程序结构程序结构反映了程序结构的规模和复杂程度 反映了程序结构的控制规模多扇出意味着需要控制和协调许多下属模块。而多扇入的模块通常是公用模块 45 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.7.3 结构划分结构划分u程序结构可以按水平方向或垂直方向进行划分。水平划分:水平划分按主要的程序功能来定义模块

34、结构的各个分支。优点是:由于主要的功能相互分离,易于修改、易于扩充,且没有副作用。缺点是:需要通过模块接口传递更多的数据,使程序流的整体控制复杂化。垂直划分:也叫做因子划分,主要用在程序的体系结构中。优点是:对低层模块的修改不太可能引起副作用的传播 46 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心结构图结构图u结构图是精确表达程序结构的图形表示方法。它清楚地反映出程序中模块间的层次调用关系和联系:严格地定义了各个模块的名字、功能和接口反映了设计思想即以特定的符号表示模块、模块间的调用关系和模块间信息的传递 47 2008 BUPT TSEG 北京邮

35、电大学北京邮电大学 通信软件工程中心通信软件工程中心模块模块u在结构图中,模块用矩形框表示,并用模块的名字标记它。模块的名字应当能够表明该模块的功能。对于现成的模块,则以双纵边矩形框表示。48 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块调用关系和接口模块调用关系和接口u箭头从调用模块指向所调用模块,表示调用模块调用了所调用模块。但其中隐含了一层意思,就是执行所调用模块完成了之后,控制又返回到了调用模块。u为了表示在模块之间传递的数据和控制信息,在联结模块的箭头旁边另给出箭头,并且用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表示

36、控制信息,通常在短箭头附近应注有信息的名称。49 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心模块间的消息传递模块间的消息传递u当一个模块调用另一个模块时,调用模块把数据和控制信息传送给所调用模块,以使所调用模块能够运行。而在执行所调用模块的过程中又把它产生的数据或控制信息回送给调用模块。u箭头尾部标带菱形符号表示模块A有条件地调用模块B;u箭头尾部带弧形符号表示模块A反复地调用模块C和模块D。50 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.7.4 数据结构数据结构u数据结构是数据的各个元素之间的逻辑

37、关系的一种表示。数据结构设计应确定数据的组织、存取方式、相关程度、以及信息的不同处理方法。51 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心数据结构数据结构u标量是最简单的一种数据结构。所谓标量项就是单个的数据元素,例如一个布尔量、整数、实数或一个字符串。可以通过名字对它们进行存取。u若把多个标量项组织成一个表或者顺序邻接为一组时,就形成了顺序向量。顺序向量又称为一维数组。通常可以通过下标及数组名来访问数组中的某一元素。把顺序向量扩展到二维、三维,直至任意维,就形成了n维向量空间。最常见的n维向量空间是二维矩阵。u链表是一种更灵活的数据结构,它把不相

38、邻的标量项、向量或空间结构用拉链指针链接起来,使得它们可以像表一样得到处理。u组合上述基本数据结构可以构成其它数据结构。例如,可以用包含标量项、向量或 n维空间的多重链表来建立分层结构和网络结构。而利用它们又可以实现多种集合的存储。52 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.7.5 软件过程软件过程u软件过程必须提供精确的处理说明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。u程序结构与软件过程是有关系的。对每个模块的处理必须指明该模块所在的上下级环境。u软件过程遵从程序结构的主从关系,因此它也是层次化的。53 200

39、8 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8 软件体系结构软件体系结构u6.8.1 软件体系结构的定义u6.8.2 软件体系结构三要素u6.8.3 软件构件的分类u6.8.4 构件的调用方式u6.8.5 软件体系结构风格54 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件体系结构简介软件体系结构简介u对于大规模的复杂软件系统来说,系统的总体结构设计和规格说明比数据结构和算法的选择重要的多。在这种背景下,人们认识到软件体系结构的重要性。u软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件

40、体系结构评价和软件体系结构的形式化方法等。u其根本目的是要解决软件重用、软件质量和软件维护问题。55 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件体系结构的重要性软件体系结构的重要性56 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.1 软件体系结构定义软件体系结构定义uBooch&Rumbaugh&Jacobson 定义定义软件体系结构软件体系结构=组织,元素,子系统,风格组织,元素,子系统,风格软件体系结构是一系列重要决策的集合,这些决策与软件组织、构成系统的结构元素、接口的选择以及这些元素在

41、相互协作中表现的行为有着重要的关系。这些结构元素和行为元素进一步组合构成更大规模的子系统,并进一步组合成为体系结构风格。uBass定义定义软件体系结构是系统的一个或多个结构,包括是系统的一个或多个结构,包括软件构件(软件构件(Components)构件的外部可视属性(构件的外部可视属性(Properties)构件之间的关系(构件之间的关系(Relationships)57 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件体系结构定义软件体系结构定义uShaw定义定义结构模型:软件体系结构由构件、构件之间的连接和一些其它方面组词组成:框架模型:其重点在

42、于整个系统的连贯结构,这与重视其组成恰好相反。框架模型常常以某种特定领域或某类问题为目标。动态模型:动态模型强调系统的行为质量。它可以指整个系统配置的变化,也可以是禁止预先激活了的通信或交互,还可以使计算中表现的动态特性等。过程模型:过程模型关注系统结构的构建及其步骤和过程。在这一观点下,体系结构是软件开发所进行的一系列过程的结果。58 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心软件体系结构定义软件体系结构定义uGarlan&Shaw 模型模型软件体系结构软件体系结构=构件,连接件,约束构件,连接件,约束构件可是一组代码,也可是一个独立的程序,构件

43、是一组对象集合,可实现某些计算逻辑。构件相对独立,仅通过接口与外部进行交互,可作为独立单元嵌入到不同的应用系统中。连接件可以是过程调用、管道、远程过程调用等,用于表示构件之间的相互作用。约束一般为对象连接时的规则,或指明构件连接的条件。他们认为软件体系结构是软件设计过程的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通信协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织、规模和性能,在各设计方案间进行选择等。59 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心对软件体系结构的理解对软件体系结构的

44、理解u软件体系结构是系统的抽象定义了元素以及它们如何交互元素:模块、类、对象、进程隐瞒了纯粹的属于局部的信息,元素的细节不属于体系结构Interface:元素之间通过接口实现交互u元素外部可见的特性该元素对其它元素来说:提供的服务,需要的服务,具备的性能特性,容错能力,共享资源的使用等元素的某些不容忽视的行为那些影响了其它元素的设计和实现的行为那些影响了整个系统可接受程度的行为60 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心对软件体系结构的理解对软件体系结构的理解u每一个系统都有一个体系结构每个系统都是由元素以及元素之间的关系组成最简单的例子:一个

45、系统就是由一个元素组成如果不明确地开发一个体系结构,那么你仍然拥有一个只是可能不是你喜欢或者期望的u系统有多个结构stuctures和相应的视图View类比于建筑,对同一栋大楼,承包商、设计师、室内设计人员、庭院设计人员、电工、最终用户都有不同的理解任何一个结构视图只能表示体系结构的部分内容,不能与体系结构等同61 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.2 软件体系结构三要素软件体系结构三要素u软件设计的一个目标是建立软件的体系结构表示,将这个表示当作一个框架,从事更详细的设计活动。u软件体系结构的三要素是:程序构件(模块)的层次结构构

46、件之间交互的方式数据的结构 u在软件体系结构设计中应保持的几个性质:结构:定义系统的构件,以及这些构件打包的方式和相互交互的方式。附属功能:描述设计出来的体系结构如何实现对功能、性能、可靠性、安全性、适应性,以及其它的系统需求 可复用:设计应能复用体系结构中的构造块 62 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.3 软件构件的分类软件构件的分类构构 件件 特特 点点 和和 示示 例例纯计算构件纯计算构件具有简单的输入输出关系,没有运行状态的变化。例如,数值计算、过滤器(Filters)、转换器(Transformers)等。存储构件存储构

47、件存放共享的、永久性的、结构化的数据。例如,数据库、文件、符号表、超文本等。管理构件管理构件执行的操作与运行状态紧密耦合。例如,抽象数据类型(ADT)、面向对象系统中的对象、许多服务器(Servers)等。控制构件控制构件管理其它构件运行的时间、时机及次序。例如,调度器、同步器等。链接构件链接构件在实体之间传递信息。例如,通信机制、用户界面等。63 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.4 构件的调用方式构件的调用方式 连连 接接特特 点点 与与 示示 例例过程调用过程调用在某一个执行路径中传递执行指针。例如,普通过程调用(同一个命名空

48、间)、远程过程调用(不同的命名空间)。数据流数据流相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。例如,UNIX系统中的管道(pipes)。间接激活间接激活处理是因事件的发生而激活的,在处理之间没有直接的交互。例如,事件驱动系统、自动垃圾回收等。消息传递消息传递相互独立的处理之间有明确的交互,通过显式的离散方式的数据传递。这种传递可以是同步的,也可以是异步的。例如,TCPIP。共享数据共享数据构件们通过同一个数据空间进行并发的操作。例如,多用户数据库、数据黑板系统。64 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.5 软件体

49、系结构风格软件体系结构风格u软件体系结构设计的一个核心问题是能否使用重复的体系结构模式。u基于这个目的,学者们开始研究和实践软件体系结构的风格和类型问题。u软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。65 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心使用软件结构风格带来的好处使用软件结构风格带来的好处u促进设计重用u带来巨大的代码重用u采用例行的结构,将使系统组成更易于被他人理解u使用标准化的风格有益于系统的互操作性u采用了某种体系结构风格的设计,通常允许专门的、此风格特有的体系结构分析66 2008 BUPT TSEG 北京邮电

50、大学北京邮电大学 通信软件工程中心通信软件工程中心对体系结构风格的研究点对体系结构风格的研究点u构件和连接件的类型是什么u拓扑结构u风格的不变性是什么u常见例子是什么u使用此风格的优缺点是什么67 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心6.8.5.1 体系结构风格的四要素体系结构风格的四要素u体系结构风格具有四个主要元素,即提供一个词汇表、定义一套配置规则、定义一套语义解释原则和定义对基于这种风格的系统所进行的分析。u体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。u对软件体系结构

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件工程模型与方法课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|