软件工程-实践者的研究方法讲义_第八章体系结构设计.pptx
《软件工程-实践者的研究方法讲义_第八章体系结构设计.pptx》由会员分享,可在线阅读,更多相关《软件工程-实践者的研究方法讲义_第八章体系结构设计.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程第8章 体系结构设计主要内容v软件体系结构软件体系结构v体系结构类型体系结构类型v体系结构风格体系结构风格v体系结构设计体系结构设计v评估可选的体系结构设计评估可选的体系结构设计v使用数据流进行体系结构映射使用数据流进行体系结构映射v小结小结进行体系结构设计v体系结构设计表示了建立计算机系统所需体系结构设计表示了建立计算机系统所需的的数据结构数据结构和和程序构件程序构件。它需要考虑系统。它需要考虑系统采取的体系结构风格,系统组成构件的结采取的体系结构风格,系统组成构件的结构、性质,以及系统中所有体系结构构件构、性质,以及系统中所有体系结构构件之间的相互关系。之间的相互关系。进行体系结构
2、设计v尽管软件工程师能够设计数据和体系结构,尽管软件工程师能够设计数据和体系结构,但是在建造大型复杂系统的时候,这项工但是在建造大型复杂系统的时候,这项工作往往由作往往由专家专家来完成。来完成。数据库或者数据仓数据库或者数据仓库设计者库设计者为系统创建数据体系结构。为系统创建数据体系结构。”系系统体系结构设计师统体系结构设计师“为系统工程和软件需为系统工程和软件需求分析中导出的需求选择合适的体系结构求分析中导出的需求选择合适的体系结构风格。风格。进行体系结构设计v体系结构设计体系结构设计始于数据设计始于数据设计,然后,然后导出系导出系统体系结构统体系结构的一个或者多个表示。对可选的一个或者多个
3、表示。对可选的体系结构风格或模式进行分析,以导出的体系结构风格或模式进行分析,以导出最适合于客户需求和质量属性的结构。一最适合于客户需求和质量属性的结构。一旦选定,使用体系结构设计方法对体系结旦选定,使用体系结构设计方法对体系结构进行精化。构进行精化。v在体系结构设计过程中,将创建一个包括在体系结构设计过程中,将创建一个包括数据体系结构和程序结构的体系结构模型数据体系结构和程序结构的体系结构模型。此外,还需描述此外,还需描述构件的性质以及交互关系构件的性质以及交互关系。进行体系结构设计v设计通常被描述为一个多步过程,其主要设计通常被描述为一个多步过程,其主要任务是从需求信息中综合出任务是从需求
4、信息中综合出数据的表示、数据的表示、程序结构、接口特征和过程细节程序结构、接口特征和过程细节。v设计是由设计是由信息驱动信息驱动的。软件设计方法都是的。软件设计方法都是通过仔细考虑分析模型的三个域而得到的。通过仔细考虑分析模型的三个域而得到的。因此,信息、功能和行为三个域是创建软因此,信息、功能和行为三个域是创建软件设计的指南。件设计的指南。v体系结构设计是构建软件的体系结构设计是构建软件的初始蓝图初始蓝图。软件体系结构v从第一个程序从第一个程序被划分成模块开始,软件系被划分成模块开始,软件系统就有了体系结构统就有了体系结构。同时,程序员已经开。同时,程序员已经开始负责模块间的交互和模块装配的
5、全局属始负责模块间的交互和模块装配的全局属性。从历史的观点看,体系结构隐含了很性。从历史的观点看,体系结构隐含了很多内容多内容实现的偶然事件或先前遗留系实现的偶然事件或先前遗留系统。好的软件开发人员经常采用一个或者统。好的软件开发人员经常采用一个或者多个体系结构模式作为系统组织策略,但多个体系结构模式作为系统组织策略,但是他们只是非正式地使用这些模式,并且是他们只是非正式地使用这些模式,并且在最终系统中没有将这些模式清楚地体现在最终系统中没有将这些模式清楚地体现出来。出来。什么是体系结构v一个程序和计算系统软件体系结构是指一个程序和计算系统软件体系结构是指系系统的一个或者多个结构统的一个或者多
6、个结构。结构中包括。结构中包括软件软件的构件的构件,构件的,构件的外部可见属性外部可见属性以及它们之以及它们之间的间的相互关系相互关系。v体系结构并非可运行软件。它体系结构并非可运行软件。它是一种表达是一种表达,使软件工程师能够:使软件工程师能够:(1)分析设计在满足分析设计在满足规定需求方面的有效性;规定需求方面的有效性;(2)在设计变更在设计变更相对容易的阶段,考虑体系结构可能的选相对容易的阶段,考虑体系结构可能的选择方案;择方案;(3)降低与软件构造相关联的风降低与软件构造相关联的风险。险。什么是体系结构v在体系结构设计的环境中,软件构件可以简在体系结构设计的环境中,软件构件可以简单到单
7、到程序模块或者面向对象的类程序模块或者面向对象的类,也可以扩,也可以扩充到包含数据库和能够完成客户与服务器网充到包含数据库和能够完成客户与服务器网络配置的络配置的“中间件中间件”。v本教材中,软件体系结构的设计考虑了设计本教材中,软件体系结构的设计考虑了设计金字塔中的两个层次金字塔中的两个层次数据设计和体系结数据设计和体系结构设计构设计。数据设计使我们表示出传统系统中。数据设计使我们表示出传统系统中体系结构的体系结构的数据构件和面向对象系统中类的数据构件和面向对象系统中类的定义定义,体系结构设计则主要关注,体系结构设计则主要关注软件构件的软件构件的结构、属性和交互作用结构、属性和交互作用。为什
8、么体系结构如此重要vBAS03给出了软件体系结构之所以重要的给出了软件体系结构之所以重要的三个关键原三个关键原因因:l软件体系结构的表示有助于对计算机系统开发感兴趣的软件体系结构的表示有助于对计算机系统开发感兴趣的各方开展交流各方开展交流。l体系结构突出了体系结构突出了早期设计决策早期设计决策,这些决策对随后的所有,这些决策对随后的所有软件工程工作有深远的影响,同时对系统作为一个可运软件工程工作有深远的影响,同时对系统作为一个可运行实体的最后成功有重要作用。行实体的最后成功有重要作用。l体系结构体系结构“构建了一个相对小的,易于理解的模型,该构建了一个相对小的,易于理解的模型,该模型描述了模型
9、描述了系统如何构成以及其构件如何一起工作系统如何构成以及其构件如何一起工作”。v体系结构体系结构设计模型和包含在其中的体系结构模式都是可设计模型和包含在其中的体系结构模式都是可以传递的以传递的,即体系结构的风格和模式可以被应用于其他,即体系结构的风格和模式可以被应用于其他系统的设计中,并且表示了一组使软件工程师能以可预系统的设计中,并且表示了一组使软件工程师能以可预见的方式描述体系结构的抽象。见的方式描述体系结构的抽象。数据设计v数据设计是把在分析模型中定义的数据对数据设计是把在分析模型中定义的数据对象转化成象转化成软件构件级的数据结构软件构件级的数据结构,并且在,并且在必要时转化为必要时转化
10、为应用程序级的数据库体系结应用程序级的数据库体系结构构。在某些情况下,必须为一个新系统专。在某些情况下,必须为一个新系统专门设计和建立门设计和建立数据库数据库。体系结构级的数据设计v当今,大大小小的业务均充斥着数据,甚至一当今,大大小小的业务均充斥着数据,甚至一个中型规模企业拥有为多个应用系统提供服务个中型规模企业拥有为多个应用系统提供服务的几十个数据库。问题在于的几十个数据库。问题在于如何从这样庞大的如何从这样庞大的数据环境中提取有用的信息数据环境中提取有用的信息,特别当需要的信,特别当需要的信息是功能交叉时。息是功能交叉时。vIT界开发出了界开发出了数据挖掘数据挖掘技术,也称为技术,也称为
11、数据库中数据库中的知识发现的知识发现,该技术遍历现有的数据库以试图,该技术遍历现有的数据库以试图抽取出合适的业务级信息。另一种可选的解决抽取出合适的业务级信息。另一种可选的解决方案称为方案称为数据仓库数据仓库,它是一个独立的数据环境,它是一个独立的数据环境,但包含了某业务使用的所有数据。但包含了某业务使用的所有数据。构件级的数据设计v构件级的数据设计关注于那些被一个或者多个构件级的数据设计关注于那些被一个或者多个软件构件直接访问的数据结构的表示。软件构件直接访问的数据结构的表示。WAS80提出了以下数据规格说明原则:提出了以下数据规格说明原则:1.应用于功能和行为的系统分析原则也可应用于应用于
12、功能和行为的系统分析原则也可应用于数据。数据。同样应该开发和评审数据流和数据内容同样应该开发和评审数据流和数据内容的表示,标识数据对象,还应该考虑其他可选的表示,标识数据对象,还应该考虑其他可选的数据组织结构,评估数据模型对软件设计的的数据组织结构,评估数据模型对软件设计的影响。影响。2.标识所有数据结构及其完成的操作。标识所有数据结构及其完成的操作。设计一个设计一个高效的数据结构,必须考虑其上的操作。把属高效的数据结构,必须考虑其上的操作。把属性和操作封装在一个类中满足这个原则。性和操作封装在一个类中满足这个原则。构件级的数据设计3.应该建立定义数据对象内容的机制,并应该建立定义数据对象内容
13、的机制,并且用于定义数据及其操作。且用于定义数据及其操作。类图定义包含类图定义包含在类中的数据项和应用到这些数据项上的在类中的数据项和应用到这些数据项上的方法。方法。4.低层的数据设计决策应该延迟到设计过低层的数据设计决策应该延迟到设计过程的后期。程的后期。数据设计可以采用逐步求精的数据设计可以采用逐步求精的过程,所有的数据组织可以在需求分析阶过程,所有的数据组织可以在需求分析阶段定义,在数据设计工作中精化,在构件段定义,在数据设计工作中精化,在构件级设计阶段刻画细节。级设计阶段刻画细节。构件级的数据设计v5.只有那些直接使用数据结构内部数据的模块只有那些直接使用数据结构内部数据的模块才能够看
14、到该数据结构的表示。才能够看到该数据结构的表示。信息隐蔽概念信息隐蔽概念以及相关的耦合概念为软件设计质量的评估提以及相关的耦合概念为软件设计质量的评估提供了依据。供了依据。v6.应该开发一个由有用的数据结构及其操作组应该开发一个由有用的数据结构及其操作组成的库。成的库。类库即可实现这个目标。类库即可实现这个目标。v7.软件设计和程序设计语言应该支持抽象数据软件设计和程序设计语言应该支持抽象数据类型的规格说明和实现。类型的规格说明和实现。如果没有办法对所选如果没有办法对所选用于实现的编程语言中的结构进行直接说明,用于实现的编程语言中的结构进行直接说明,那么复杂数据结构的实现将变得非常困难。那么复
15、杂数据结构的实现将变得非常困难。体系结构风格和模式v建筑师使用建筑师使用体系结构体系结构(建筑风格建筑风格)作为描)作为描述机制,将该房子和其他风格的房子区分述机制,将该房子和其他风格的房子区分开来。但更重要的是,开来。但更重要的是,体系结构风格也是体系结构风格也是建筑的样板建筑的样板。必须进一步规定房子的细节,。必须进一步规定房子的细节,具体说明它的最终尺寸,进一步给出定制具体说明它的最终尺寸,进一步给出定制的特征,确定建筑材料等。实际上是的特征,确定建筑材料等。实际上是建筑建筑风格指导了建筑师的工作风格指导了建筑师的工作。体系结构风格和模式v为计算机系统建造的软件也展示了众多体系为计算机系
16、统建造的软件也展示了众多体系结构风格中的一种。每种风格描述一种系统结构风格中的一种。每种风格描述一种系统类别,包括:类别,包括:(1)一组构件一组构件完成系统需要的完成系统需要的某种功能;某种功能;(2)一组连接器一组连接器,它们能使构件,它们能使构件间实现间实现“通信、合作和协调通信、合作和协调”;(3)约束约束,定义构件如何集成为一个系统;定义构件如何集成为一个系统;(4)语义模语义模型型,它能使设计者通过分析系统的构成成分,它能使设计者通过分析系统的构成成分的性质来理解系统的整体性质。的性质来理解系统的整体性质。体系结构风格和模式v一种体系结构风格就是一种在整个系统设一种体系结构风格就是
17、一种在整个系统设计上面的计上面的变换变换。它的目的就是为系统的。它的目的就是为系统的所所有构件建立一个结构有构件建立一个结构。在对已有体系结构。在对已有体系结构进行进行再工程再工程时,强制采用一种体系结构风时,强制采用一种体系结构风格会导致软件结构的根本性改变,包括对格会导致软件结构的根本性改变,包括对构件功能的再分配。构件功能的再分配。体系结构风格和模式v体系结构模式体系结构模式也对体系结构的设计施加一种变也对体系结构的设计施加一种变换。然而,体系结构模式与体系结构风格在许换。然而,体系结构模式与体系结构风格在许多基本方面存在不同:多基本方面存在不同:(1)体系结构模式涉及的体系结构模式涉及
18、的范围要小一些,它更多集中在体系结构的范围要小一些,它更多集中在体系结构的某一某一局部局部而不是体系结构的整体;而不是体系结构的整体;(2)模式在体系结模式在体系结构上施加规则,描述了软件是如何在基础设施构上施加规则,描述了软件是如何在基础设施层次上处理某些层次上处理某些功能性方面功能性方面的问题;的问题;(3)体系结体系结构模式倾向于在系统结构的环境中处理构模式倾向于在系统结构的环境中处理特定的特定的行为问题行为问题。模式可以与体系结构风格结合起来,。模式可以与体系结构风格结合起来,用于建立整个系统结构的外形。用于建立整个系统结构的外形。体系结构风格的简单分类v以数据为中心的体系结构以数据为
19、中心的体系结构。数据存储数据存储驻留驻留在这种体系结构的中心,其他构件会经常在这种体系结构的中心,其他构件会经常访问数据存储,并对存储中的数据进行更访问数据存储,并对存储中的数据进行更新、增加、删除或者修改。图新、增加、删除或者修改。图8-1描述了描述了一个典型的以数据为中心的体系结构风格。一个典型的以数据为中心的体系结构风格。在某些情况下存储库是被动的,即客户软在某些情况下存储库是被动的,即客户软件独立于数据的任何变化或其他客户软件件独立于数据的任何变化或其他客户软件的动作而访问数据。该方法的一个变种是的动作而访问数据。该方法的一个变种是将中心存储库变换成将中心存储库变换成“黑板黑板”,当用
20、户感,当用户感兴趣的数据发生变化时,它将通知客户软兴趣的数据发生变化时,它将通知客户软件。件。体系结构风格的简单分类图8-1以数据为中心的体系结构体系结构风格的简单分类v以数据为中心的体系结构提升了以数据为中心的体系结构提升了可集成性可集成性,即现有的构件可以被修改而且新的客户构即现有的构件可以被修改而且新的客户构件可以加入到系统结构之中,而无需考虑件可以加入到系统结构之中,而无需考虑其他的客户。另外,数据可以在客户间通其他的客户。另外,数据可以在客户间通过过“黑板黑板”机制传送,客户构件独立地执机制传送,客户构件独立地执行过程。行过程。体系结构风格的简单分类v数据流体系结构数据流体系结构。当
21、输入数据经过一系列的计。当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应算和操作构件的变换形成输出数据时,可以应用这种体系结构。用这种体系结构。管道和过滤器结构管道和过滤器结构(如图如图8-2)拥有一组被称为过滤器的构件,这些构件通过拥有一组被称为过滤器的构件,这些构件通过管道连接,管道将数据从一个构件传送到下一管道连接,管道将数据从一个构件传送到下一个构件。每个过滤器独立于其上游和下游的构个构件。每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定形式的数据输出。据输入,并且产生某种特定形式的
22、数据输出。然而,过滤器没有必要了解与之相邻的过滤器然而,过滤器没有必要了解与之相邻的过滤器的工作。的工作。v如果数据流退化成单线的变换,则称为如果数据流退化成单线的变换,则称为批序列批序列。这种结构接收一批数据,然后应用一系列连续这种结构接收一批数据,然后应用一系列连续的构件的构件(过滤器过滤器)变换它。变换它。体系结构风格的简单分类图8-2 数据流体系结构体系结构风格的简单分类v调用和返回调用和返回体系结构体系结构。该体系结构风格能够让。该体系结构风格能够让软件设计师设计出一个相对易于修改和扩展的程软件设计师设计出一个相对易于修改和扩展的程序结构。存在两种子风格:序结构。存在两种子风格:v主
23、程序主程序/子程序体系结构。子程序体系结构。这种传统的程序结构将功能分解为这种传统的程序结构将功能分解为一个控制层次,其中一个控制层次,其中“主主”程序调用一组程序构件,这些程序程序调用一组程序构件,这些程序构件又去调用别的程序构件。图构件又去调用别的程序构件。图8-3描述了该种系统结构。描述了该种系统结构。v远程过程调用体系结构。远程过程调用体系结构。主程序主程序/子程序体系结构的构件分布子程序体系结构的构件分布在网络的多个计算机上。在网络的多个计算机上。v面向对象体系结构。面向对象体系结构。系统的构件封装了数据和系统的构件封装了数据和必须应用到该数据上的操作,构件间通过信息传必须应用到该数
24、据上的操作,构件间通过信息传递进行通信与合作。递进行通信与合作。体系结构风格的简单分类图8-3 主程序/子程序体系结构体系结构风格的简单分类v层次层次体系结构体系结构。层次体系结构的基本结构如图。层次体系结构的基本结构如图8-4所示。其中定义了一系列所示。其中定义了一系列不同的层次不同的层次,每个,每个层次各自完成操作,这些操作不断接近机器的指层次各自完成操作,这些操作不断接近机器的指令集。在最外层,构件完成用户界面的操作;在令集。在最外层,构件完成用户界面的操作;在最内层,构件完成与操作系统的连接;中间层提最内层,构件完成与操作系统的连接;中间层提供各种实用程序服务和应用软件功能。供各种实用
25、程序服务和应用软件功能。v这些体系结构风格仅仅是软件设计师可用风格这些体系结构风格仅仅是软件设计师可用风格中的中的一小部分一小部分。一旦需求工程提示了待构建系统。一旦需求工程提示了待构建系统的特征和约束,就可以选择的特征和约束,就可以选择最适合最适合这些特征和约这些特征和约束的体系结构风格或者风格的组合。在很多情况束的体系结构风格或者风格的组合。在很多情况下,会有多种风格是适合的,需要对可选的体系下,会有多种风格是适合的,需要对可选的体系结构风格进行设计和评估。结构风格进行设计和评估。体系结构风格的简单分类图8-4 层次体系结构体系结构模式v如果建筑工人决定建构一个如果建筑工人决定建构一个“殖
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践 研究 方法 讲义 第八 体系结构 设计
限制150内