软件体系结构描述.ppt

上传人:m**** 文档编号:570083954 上传时间:2024-08-01 格式:PPT 页数:128 大小:965.50KB
返回 下载 相关 举报
软件体系结构描述.ppt_第1页
第1页 / 共128页
软件体系结构描述.ppt_第2页
第2页 / 共128页
软件体系结构描述.ppt_第3页
第3页 / 共128页
软件体系结构描述.ppt_第4页
第4页 / 共128页
软件体系结构描述.ppt_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《软件体系结构描述.ppt》由会员分享,可在线阅读,更多相关《软件体系结构描述.ppt(128页珍藏版)》请在金锄头文库上搜索。

1、第第4章章软件体系结构描述和设计软件体系结构描述和设计本章结构本章结构4.1 4.1 软件体系结构描述方法软件体系结构描述方法4.2 4.2 软件体系结构描述框架标准软件体系结构描述框架标准4.3 4.3 体系结构描述语言体系结构描述语言4.4 4.4 典型的软件体系结构描述语言典型的软件体系结构描述语言(C2C2)4.5 4.5 软件体系结构与软件体系结构与UMLUML4.6 4.6 可扩展标记语言可扩展标记语言4.7 4.7 基于基于XMLXML的软件体系结构描述语言的软件体系结构描述语言4.8 4.8 软件体系结构的设计软件体系结构的设计引言当前对软件体系结构的描述在很大程度上还停留在非

2、形式化的基础上,依赖于软件设计师个人的经验和技巧。非形式化的描述不易被开发人员理解,不利于分析和开发的进行。形式化的、规范化的体系结构描述对于体系结构的设计和理解都是非常重要的。由非形式化到形式化的过程。 描述方法的种类描述方法的种类 第四章第四章 软件体系结构描述软件体系结构描述4.1 4.1 软件体系结构描述方法软件体系结构描述方法 图形表达工具图形表达工具 模块内连接语言模块内连接语言 基于软构件的系统描述语言基于软构件的系统描述语言 软件体系结构描述语言软件体系结构描述语言 图形表达工具图形表达工具 第四章第四章 软件体系结构描述软件体系结构描述4.1 4.1 软件体系结构描述方法软件

3、体系结构描述方法简洁易懂容易使用使用广泛不 规 范不 精 确 模块内连接语言模块内连接语言 第四章第四章 软件体系结构描述软件体系结构描述4.1 4.1 软件体系结构描述方法软件体系结构描述方法 采采用用将将一一种种或或几几种种传传统统程程序序设设计计语语言言的的模模块块连连接接起起来来的的模模块块内内连连接接语语言言(MILMIL)。由由于于程程序序设设计计语语言言和和模模块块内内连连接接语语言言具具有有严严格格的的语语义义基基础础,因因此此它它们们能能支支持持对对较较大大的的软软件件单单元元进进行行描描述述,诸诸如如定定义义/ /使使用用和和扇扇入入/ /扇扇出出等等操操作作。例例如如,A

4、daAda语语言言采采用用useuse实实现现包包的的重重用用,PascalPascal语言采用过程(函数)模块的交互等。语言采用过程(函数)模块的交互等。 MILMIL方方式式对对模模块块化化的的程程序序设设计计和和分分段段编编译译等等程程序序设设计计与与开开发发技技术术确确实实发发挥挥了了很很大大的的作作用用。但但是是由由于于这这些些语语言言处处理理和和描描述述的的软软件件设设计计开开发发层层次次过过于于依依赖赖程程序序设设计计语语言言,因因此此限限制制了了它它们们处处理理和和描描述述比比程程序设计语言元素更为抽象的高层次软件体系结构元素的能力。序设计语言元素更为抽象的高层次软件体系结构元

5、素的能力。 基于软构件的系统描述语言基于软构件的系统描述语言 第四章第四章 软件体系结构描述软件体系结构描述4.1 4.1 软件体系结构描述方法软件体系结构描述方法 基基于于软软构构件件的的系系统统描描述述语语言言将将软软件件系系统统描描述述成成一一种种是是由由许许多多以以特定形式相互作用的特殊软件实体构造组成的组织或系统。特定形式相互作用的特殊软件实体构造组成的组织或系统。 例例如如,一一种种多多变变配配置置语语言言就就可可以以用用来来在在一一个个较较高高的的抽抽象象层层次次上上对对系系统统的的体体系系结结构构建建模模,DarwinDarwin最最初初用用作作设设计计和和构构造造复复杂杂分分

6、布布式式系系统统的的配配置置说说明明语语言言,因因具具有有动动态态特特性性,也也可可用用来来描描述述动动态态体体系系结构。结构。 这这种种表表达达和和描描述述方方式式虽虽然然也也是是较较好好的的一一种种以以构构件件为为单单位位的的软软件件系系统统描描述述方方法法,但但是是他他们们所所面面向向和和针针对对的的系系统统元元素素仍仍然然是是一一些些层层次次较较低低的的以以程程序序设设计计为为基基础础的的通通信信协协作作软软件件实实体体单单元元,而而且且这这些些语语言言所所描描述述和和表表达达的的系系统统一一般般而而言言都都是是面面向向特特定定应应用用的的特特殊殊系系统统,这这些些特特性性使使得得基基

7、于于软软构构件件的的系系统统描描述述仍仍然然不不是是十十分分适适合合软软件件体体系系结构的描述和表达。结构的描述和表达。 软件体系结构描述语言软件体系结构描述语言 第四章第四章 软件体系结构描述软件体系结构描述4.1 4.1 软件体系结构描述方法软件体系结构描述方法 软软件件体体系系结结构构的的第第四四种种描描述述和和表表达达方方法法是是参参照照传传统统程程序序设设计计语语言言的的设设计计和和开开发发经经验验,重重新新设设计计、开开发发和和使使用用针针对对软软件件体体系系结结构构特特点点的的专专门门的的软软件件体体系系结结构构描描述语言述语言ADLADL。 由由于于ADLADL是是在在吸吸收收

8、了了传传统统程程序序设设计计中中的的语语义义严严格格精精确确的的特特点点基基础础上上,针针对对软软件件体体系系结结构构的的整整体体性性和和抽抽象象性性特特点点,定定义义和和确确定定适适合合于于软软件件体体系系结结构构表表达达与与描描述述的的有有关关抽抽象象元元素素,因因此此,ADLADL是是当当前前软软件件开开发发和和设设计计方方法法学学中中一一种种发发展展很很快快的的软软件件体体系系结结构构描描述述方方法法,目目前前,已经有几十种常见的已经有几十种常见的ADLADL。 软件体系结构的应用现状软件体系结构的应用现状 第一章第一章 软件体系结构概论软件体系结构概论1.4 1.4 体系结构的应用现

9、状体系结构的应用现状 软件体系结构描述语言软件体系结构描述语言 ADLADL(体系结构描述语言)提供了具体的语法与刻(体系结构描述语言)提供了具体的语法与刻画体系结构的概念框架。画体系结构的概念框架。ADLADL使得系统开发者能够很好使得系统开发者能够很好地描述他们设计的体系结构,以便与他人交流,能够用地描述他们设计的体系结构,以便与他人交流,能够用提供的工具对许多实例进行分析。提供的工具对许多实例进行分析。 对于对于ADLADL现在也是无统一认识。书上第四章有介绍。现在也是无统一认识。书上第四章有介绍。 请参阅请参阅软件体系结构软件体系结构理论与实践理论与实践,冯冲,冯冲 江贺江贺 冯静芳冯

10、静芳 编著,人民邮电出版社。编著,人民邮电出版社。 第第2 2章章 软件体系结构语言(软件体系结构语言(ADLADL) IEEE P1471 IEEE P1471 第四章第四章 软件体系结构描述软件体系结构描述4.2软件体系结构描述框架标准软件体系结构描述框架标准 IEEE IEEE P1471P1471于于20002000年年9 9月月2121日日通通过过IEEE-SAIEEE-SA标标准准委委员员会评审。会评审。 IEEE IEEE P1471P1471适适用用于于软软件件密密集集的的系系统统,其其目目标标在在于于:便便于于体体系系结结构构的的表表达达与与交交流流,并并通通过过体体系系结结

11、构构要要素素及及其其实践标准化,奠定质量与成本的基础。实践标准化,奠定质量与成本的基础。 IEEE IEEE P1471P1471详详细细介介绍绍了了一一套套体体系系结结构构描描述述的的概概念念框框架架,并并给给出出建建立立框框架架的的思思路路。但但如如何何描描述述以以及及具具体体的的描描述技术等方面缺乏更进一步的指导。述技术等方面缺乏更进一步的指导。 Rational Rational 第四章第四章 软件体系结构描述软件体系结构描述4.2软件体系结构描述框架标准软件体系结构描述框架标准 RationalRational起起草草了了可可重重用用的的软软件件资资产产规规格格说说明明,专专门门讨讨

12、论论了了体体系系结结构构描描述述的的规规格格说说明明,提提出出了了一一套套易易于于重重用用的的体体系系结结构构描描述述规规范范。该建议草案已经提交该建议草案已经提交OMGOMG。 基基于于RUPRUP(Rational Rational United United ProcessProcess)、采采用用UMLUML模模型型描描述述软软件件的的体体系系结结构构,认认为为体体系系结结构构描描述述的的关关键键是是定定义义视视点点、视视图图以以及及建模元素之间的映射关系。建模元素之间的映射关系。(4 4个视点、个视点、7 7个体系结构视图)个体系结构视图) 与与IEEE IEEE P1471P147

13、1相相比比,该该建建议议标标准准的的体体系系结结构构描描述述方方案案涉涉及及面面比比较较窄窄,所所注注重重的的层层次次比比较较低低,因因而而更更具具体体。由由于于将将体体系系结结构构的的描描述述限限于于UMLUML和和RUPRUP,具具有有一一定定的的局局限限性性,但但该该建建议议标标准准结结合合了了业业界界已已经经广广泛泛采采用用的的建建模模语语言言和和开开发发过过程程,因因而而易易于于推推广广,可可以以有有效效实现在跨组织之间重用体系结构描述结果。实现在跨组织之间重用体系结构描述结果。第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL

14、是是在在底底层层语语义义模模型型的的支支持持下下,为为软软件件系系统统的的概概念念体体系系结结构构建建模模提提供供了了具具体体语语法法和和概概念念框框架架。基基于于底底层层语语义义的的工工具具为为体体系系结结构构的的表表示示、分分析析、演演化化、细细化化、设设计计过过程程等等提提供供支支持持。其其三三个个基基本元素是:构件、连接件、体系结构配置。本元素是:构件、连接件、体系结构配置。 主主要要的的体体系系结结构构描描述述语语言言有有AesopAesop、MetaHMetaH、C2C2、RapideRapide、SADLSADL、UniconUnicon和和WrightWright等等,尽尽管管

15、它它们们都都描描述述软软件件体体系系结结构构,却却有有不同的特点。不同的特点。 这这些些ADLADL强强调调了了体体系系结结构构不不同同的的侧侧面面,对对体体系系结结构构的的研研究究和和应应用用起起到到了了重重要要的的作作用用,但但也也有有负负面面的的影影响响。每每一一种种ADLADL都都以以独独立立的的形形式式存存在在,描描述述语语法法不不同同且且互互不不兼兼容容,同同时时又又有有许许多多共共同同的的特特征征,这这使使设设计计人人员员很很难难选选择择一一种种合合适适的的ADLADL,若若设设计计特特定定领领域域的的软软件件体体系结构又需要从头开始描述。系结构又需要从头开始描述。 软件体系结构

16、的定义软件体系结构的定义 第一章第一章 软件体系结构概论软件体系结构概论1.3 1.3 体系结构的兴起和发展体系结构的兴起和发展 Mary ShawMary Shaw和和David Garlan David Garlan (19931993年)年) 软软件件体体系系结结构构是是软软件件设设计计过过程程中中的的一一个个层层次次,这这一一层层次次超超越越计算过程中的算法设计和数据结构设计。计算过程中的算法设计和数据结构设计。 体体系系结结构构问问题题包包括括总总体体组组织织和和全全局局控控制制,通通讯讯协协议议,同同步步,数数据据存存取取,给给设设计计元元素素分分配配特特定定功功能能,设设计计元元

17、素素的的组组织织、规规模模和和性性能能,在各设计方案间进行选择等。在各设计方案间进行选择等。 软软件件体体系系结结构构处处理理算算法法与与数数据据结结构构之之上上关关于于整整体体系系统统结结构构设设计计和和描描述述方方面面的的一一些些问问题题,如如全全局局组组织织和和全全局局控控制制结结构构、关关于于通通讯讯、同同步步与与数数据据存存取取的的协协议议,设设计计构构件件功功能能定定义义,物物理理分分布布与与合合成成,设设计方案的选择、评估与实现等计方案的选择、评估与实现等。软件体系结构软件体系结构构件,连接件,约束构件,连接件,约束第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构

18、描述语言软件体系结构描述语言 构构造造能能力力:ADLADL能能够够使使用用较较小小的的独独立立体体系系结结构构元元素素来来建建造造大型软件系统;大型软件系统; 抽抽象象能能力力:ADLADL使使得得软软件件体体系系结结构构中中的的构构件件和和连连接接件件描描述述可以只关注它们的抽象特性,而不管其具体的实现细节;可以只关注它们的抽象特性,而不管其具体的实现细节; 重重用用能能力力:ADLADL使使得得组组成成软软件件系系统统的的构构件件、连连接接件件甚甚至至是是软件体系结构都成为软件系统开发和设计的可重用部件;软件体系结构都成为软件系统开发和设计的可重用部件; ADLADL与其他语言的比较与其

19、他语言的比较(1) (1) 典型的典型的ADL在充分继承和吸收传统程序设计语言的精在充分继承和吸收传统程序设计语言的精确性和严格性特点的同时,还应具有:构造、抽象、重用、确性和严格性特点的同时,还应具有:构造、抽象、重用、组合、异构、分析和推理等各种能力和特性。组合、异构、分析和推理等各种能力和特性。第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 组组合合能能力力:ADLADL使使得得其其描描述述的的每每一一系系统统元元素素都都有有其其自自己己的的局局部部结结构构,这这种种描描述述局局部部结结构构的的特特点点使使得得ADLADL支支持持软件系统的动

20、态变化组合;软件系统的动态变化组合; 异异构构能能力力:ADLADL允允许许多多个个不不同同的的体体系系结结构构描描述述关关联联存存在;在; 分分析析和和推推理理能能力力:ADLADL允允许许对对其其描描述述的的体体系系结结构构进进行行多种不同的性能和功能上的多种推理分析。多种不同的性能和功能上的多种推理分析。 ADLADL与其他语言的比较与其他语言的比较(2)(2)第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL与与需需求求语语言言的的区区别别:后后者者描描述述的的是是问问题题空空间间,而而前者扎根于解空间。前者扎根于解空间。 ADL

21、ADL与与建建模模语语言言的的区区别别:后后者者对对整整体体行行为为的的关关注注要要大大于对部分的关注,而于对部分的关注,而ADLADL集中在构件的表示上。集中在构件的表示上。 ADLADL与与传传统统的的程程序序设设计计语语言言的的构构成成元元素素既既有有许许多多相相同同和相似之处,又各自有着很大的不同。和相似之处,又各自有着很大的不同。 ADLADL与其他语言的比较与其他语言的比较(3)(3)第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 典型元素含义比较典型元素含义比较 第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言

22、软件体系结构描述语言 常见的软件体系结构元素常见的软件体系结构元素 第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL的构成要素的构成要素 软件体系结构的基本构成要素:软件体系结构的基本构成要素:构件、连接件、体系结构构件、连接件、体系结构配置。配置。1.构件:一个计算单元或数据构件:一个计算单元或数据存储;是计算与状态存在的场存储;是计算与状态存在的场所。所。构件包含的多种属性:构件包含的多种属性:接口、类型、语义、约束、接口、类型、语义、约束、演化和非功能属性等。演化和非功能属性等。体系结构的核心模型体系结构的核心模型第四章第四章 软

23、件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL的构成要素的构成要素 2.连接件:用来建立构件间的交互以及支配这些交互规则连接件:用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。的体系结构构造模块。连接件可以不与实现系统中的编译单元对应。连接件可以不与实现系统中的编译单元对应。异构连接。异构连接。连接件包含的属性:角色。连接件包含的属性:角色。第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL的构成要素的构成要素 3.体系结构配置或拓扑:体系结构配置或拓扑:描述体系结构的构件与连接件的

24、连接图。描述体系结构的构件与连接件的连接图。同时检查语法、说明语义。同时检查语法、说明语义。多视图、多场景的体系结构说明方法。多视图、多场景的体系结构说明方法。在不同层次上描述软件系统;异构情况下的配置。在不同层次上描述软件系统;异构情况下的配置。第四章第四章 软件体系结构描述软件体系结构描述4.3软件体系结构描述语言软件体系结构描述语言 ADLADL的构成要素的构成要素 软件体系结构的设计在需求分析之后,软件设计之前。软件体系结构的设计在需求分析之后,软件设计之前。描述好体系结构,做好承上启下的工作很重要。描述好体系结构,做好承上启下的工作很重要。一一方方面:体系结构描述如何向其他文档转移;

25、面:体系结构描述如何向其他文档转移;另一方面:如何利用需求分析成果来直接生成系统的另一方面:如何利用需求分析成果来直接生成系统的体系结构说明。体系结构说明。现在的现在的ADL大多与领域相关。目前还没有通用的体系大多与领域相关。目前还没有通用的体系结构描述语言。结构描述语言。当前常见的一些体系结构描述语言、方法: ACME Wright C2 UniCon Darwin AESOP Rapide Weaves SADL UML Gestalt Demeter FR ControlH & MetaH C2C2风格风格 通通过过连连接接件件绑绑定定在在一一起起的的按按照照一一组组规规则则运运作作的的

26、并并行行构构件件网网络。络。C2C2风格中的系统组织规则如下:风格中的系统组织规则如下: 系统中的构件和连接件都有一个顶部和一个底部;系统中的构件和连接件都有一个顶部和一个底部; 构构件件的的顶顶部部应应连连接接到到某某连连接接件件的的底底部部,构构件件的的底底部部则则应应连连接接到到某某连连接接件件的的顶顶部部,而而构构件件与与构构件件之之间间的的直直接接连连接接是是不允许的;不允许的; 一个连接件可以和任意数目的其它构件和连接件连接;一个连接件可以和任意数目的其它构件和连接件连接; 当当两两个个连连接接件件进进行行直直接接连连接接时时,必必须须由由其其中中一一个个的的底底部部到另一个的顶部

27、。到另一个的顶部。 C2C2背景知识背景知识 C2C2是是一一种种用用于于用用户户界界面面密密集集的的系系统统的的软软件件体体系系结结构构风风格。格。 在在C2C2风风格格的的体体系系结结构构中中,连连接接件件在在构构件件之之间间转转发发消消息息,构构件件负负责责维维护护状状态态,进进行行操操作作,通通过过两两个个接接口口(顶顶端端接接口口和底端接口)和其他构件交换消息。和底端接口)和其他构件交换消息。 构构件件之之间间不不能能发发送送消消息息,必必须须通通过过连连接接件件。构构件件之之间间的的通通信信只只能能通通过过消消息息传传递递来来实实现现,不不允允许许使使用用共共享享内内存存方方式通信

28、。式通信。 C2C2风格的中心原则风格的中心原则 C2C2风风格格的的中中心心原原则则是是有有限限可可视视原原则则,或或者者说说是是下下层层独独立的原则:立的原则: 在在C2C2风风格格的的体体系系结结构构中中,某某一一构构件件只只能能感感知知层层次次高高于于自自己己的的构构件件所所提提供供的的服服务务,而而不不能能感感知知到到层层次次比比自自己己更更低低的构件的服务。的构件的服务。 这种单向的传递性,有利于系统的维护和扩展。这种单向的传递性,有利于系统的维护和扩展。 C2C2风格的通信规则风格的通信规则 C2C2中中,所所有有构构件件间间的的通通信信必必须须通通过过消消息息来来实实现现,这这

29、也也是是构构件件之之间间的的唯唯一一通通信信途途径径。每每个个构构件件都都有有一一个个顶顶端端域域、一一个个底底端端域域。构构件件的的顶顶端端域域定定义义了了构构件件可可以以对对哪哪些些通通知知做做出出响响应应,以以及及可可以以发发出出哪哪些些请请求求;构构件件的的底底端端域域定定义义了了可可以向下层发送哪些通知,以及可以响应下层的哪些请求。以向下层发送哪些通知,以及可以响应下层的哪些请求。构件构件请求请求通知通知 C2C2风格风格 第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2和和其其提提供供的的设设计计环环境境(ArgoArg

30、o)支支持持采采用用基基于于时时间间的的风风格格来来描描述述用用户户界界面面系系统统,并并支支持持使使用用可可替替换换、可可重重用的构件开发用的构件开发GUIGUI的体系结构。的体系结构。 在在C2C2中中,连连接接件件负负责责构构件件之之间间消消息息的的传传递递,而而构构件件维维持持状状态态、执执行行操操作作并并通通过过两两个个名名字字分分别别为为“toptop”和和“bottombottom”的端口和其它的构件交换信息。的端口和其它的构件交换信息。 每每个个接接口口包包含含一一种种可可发发送送的的消消息息和和一一组组可可接接收收的的消消息息。构构件件之之间间的的消消息息要要么么是是请请求求

31、其其它它构构件件执执行行某某个个操操作作的的请请求求消消息息,要要么么是是通通知知其其他他构构件件自自身身执执行行了了某某个个操操作作或状态发生改变的或状态发生改变的通知消息通知消息。 C2C2概述概述(1)(1)第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 构构件件之之间间的的消消息息交交换换不不能能直直接接进进行行,而而只只能能通通过过连连接接件件来来完完成成。每每个个构构件件接接口口最最多多只只能能和和一一个个连连接接件件相相连连,而而连接件可以和任意数目的构件或连接件相连。连接件可以和任意数目的构件或连接件相连。 请求消息只能向上

32、层传送而通知消息只能向下层传送。请求消息只能向上层传送而通知消息只能向下层传送。 通通知知消消息息的的传传递递只只对对应应于于构构件件内内部部的的操操作作,而而和和接接收收消息的构件的需求无关。消息的构件的需求无关。 C2C2对对构构件件和和连连接接件件的的实实现现语语言言、实实现现构构件件的的线线程程控控制制、构件的部署以及连接件使用的通讯协议等都不加限制。构件的部署以及连接件使用的通讯协议等都不加限制。 C2C2概述概述(2)(2)第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对构件接口的描述对构件接口的描述 第四章第四章 软

33、件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对构件的描述对构件的描述 interface_requests :=interface_requests := request request; | null | null;interface_notifications :=interface_notifications := notification notification; | null | null;request :=request := message_name(request_parameters) message_name(reque

34、st_parameters)request_parameters :=request_parameters := to to component_nameparameter_listcomponent_nameparameter_listnotification :=notification := message_nameparameter_list message_nameparameter_list component_message_interface :=component_message_interface := top_domain_interface top_domain_int

35、erface bottom_domain_interface bottom_domain_interfacetop_domain_interface :=top_domain_interface := top_domain is top_domain is out interface_requests out interface_requests in interface_notifications in interface_notificationsbottom_domain_interface :=bottom_domain_interface := bottom_domain is bo

36、ttom_domain is out interface_notifications out interface_notifications in interface_requests in interface_requests第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 会议安排系统的会议安排系统的C2C2风格风格第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对MeetgingInitiatorMeetgingInitiator构件的描述构件的描述(1) (1) comp

37、onent component MeetingInitiatorMeetingInitiator is is interface interface top_domain is top_domain is out out GetPrefSetGetPrefSet()(); GetExclSetGetExclSet()(); GetEquipReqtsGetEquipReqts()(); GetLocPrefsGetLocPrefs()(); RemoveExclSetRemoveExclSet()(); RequestWithdrawal(toRequestWithdrawal(to Atte

38、ndee) Attendee); RequestWithdrawal(toRequestWithdrawal(to ImportantAttendeeImportantAttendee) ); AddPrefDatesAddPrefDates()(); MarkMtg(d:dateMarkMtg(d:date;l:lov_typel:lov_type) );第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对MeetgingInitiatorMeetgingInitiator构件的描述构件的描述(2) (2) inin PrefSe

39、t(p:date_mgPrefSet(p:date_mg) ); ExclSet(e:data_mgExclSet(e:data_mg) ); EquipReqts(eq:equip_typeEquipReqts(eq:equip_type) ); LocPref(l:loc_typeLocPref(l:loc_type) ); behaviorbehavior startup always_generate startup always_generate GetPrefSetGetPrefSet, GetExclSetGetExclSet, GetEquipReqtsGetEquipReqt

40、s, GetLocPrefsGetLocPrefs; received_messages received_messages PrefSetPrefSet may_generate may_generate RemoveExclSetRemoveExclSet xorxor RequestWithdrawalRequestWithdrawal xorxor MarkMtgMarkMtg; received_messages received_messages ExclSetExclSet may_generate may_generate AddPrefDatesAddPrefDates xo

41、rxor RemoveExclSetRemoveExclSet xorxor RequestWithdrawalRequestWithdrawal xorxor MarkMtgMarkMtg; received_messages received_messages EquipReqtsEquipReqts may_generate may_generate AddPrefDatesAddPrefDates xorxor RemoveExclSetRemoveExclSet xorxor RequestWithdrawalRequestWithdrawal xorxor MarkMtgMarkM

42、tg; received_messages received_messages LocPrefLocPref always_generate null always_generate null;end end MeetingInitiatorMeetingInitiator; 第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对AttendeeAttendee构件的描述构件的描述(1) (1) component Attendee iscomponent Attendee is interface interface bottom_

43、domain is bottom_domain is out out PrefSet(p:date_mgPrefSet(p:date_mg) ); ExclSet(e:date_mgExclSet(e:date_mg) ); EquipReqts(eq:equip_typeEquipReqts(eq:equip_type) ); inin GetPrefSetGetPrefSet()(); GetExclSetGetExclSet()(); GetEquipReqtsGetEquipReqts()(); RemoveExclSetRemoveExclSet()(); RequestWithdr

44、awalRequestWithdrawal()(); AddPrefDatesAddPrefDates()(); MarkMtg(d:dateMarkMtg(d:date;l:loc_type)l:loc_type);第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对AttendeeAttendee构件的描述构件的描述(2)(2) behaviorbehaviorreceived_messages received_messages GetPrefSetGetPrefSet always_generate always_gener

45、ate PrefSetPrefSet;received_messages received_messages AddPrefDatesAddPrefDates always_generate always_generate PrefSetPrefSet;received_messages received_messages GetExclSetGetExclSet always_generate always_generate ExclSetExclSet;received_messages received_messages GetEqipReqtsGetEqipReqts always_g

46、enerate always_generate EqipReqtsEqipReqts;received_messages received_messages RemoveExclSetRemoveExclSet always_generate always_generate ExclSetExclSet;received_messages received_messages ReuestWithdrawalReuestWithdrawal always_generate null always_generate null;received_messages received_messages

47、MarkMtgMarkMtg always_generate null always_generate null;end Attendeeend Attendee; 第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对ImportantAttendeeImportantAttendee构件的描述构件的描述component component ImportantAttendeeImportantAttendee is subtype Attendee(in and is subtype Attendee(in and behbeh)

48、 ) interface interface bottom_domain is bottom_domain is out out LocPrefs(l:loc_typeLocPrefs(l:loc_type) ); ExclSet(e:date_mgExclSet(e:date_mg) ); EquipReqts(eq:equip_typeEquipReqts(eq:equip_type) ); inin GetLocPrefsGetLocPrefs()(); behaviorbehavior received_messagesreceived_messages GetLocPrefsGetL

49、ocPrefs always_generate always_generate LocPrefsLocPrefs;end end ImportantAttendeeImportantAttendee; 第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对体系结构的描述体系结构的描述 architecture architecture MeetingSchedulerMeetingScheduler is is conceptual_components conceptual_components Attendee Attendee;

50、ImportantAttendeeImportantAttendee;MeetingInitiatorMeetingInitiator; connectorsconnectors connector connector MainConnMainConn is message_filter no_filtering is message_filter no_filtering; connector connector AttConnAttConn is message_filter no_filtering is message_filter no_filtering; connector co

51、nnector ImportantAttConnImportantAttConn is message_filter no_filtering is message_filter no_filtering; architectural_topologyarchitectural_topology connector connector AttConnAttConn connections connections top_portstop_ports Attendee Attendee; bottom_portsbottom_ports MainConnMainConn; connector c

52、onnector ImportantAttConnImportantAttConn connections connections top_portstop_ports ImportantAttendeeImportantAttendee; bottom_portsbottom_ports MainConnMainConn; connector connector MainConnMainConn connections connections top_portstop_ports AttConnAttConn;ImportantAttConnImportantAttConn; bottom_

53、portsbottom_ports MeetingInitiatorMeetingInitiator; end end MeetingSchedulerMeetingScheduler; 第四章第四章 软件体系结构描述软件体系结构描述4.4典型软件体系结构描述语言典型软件体系结构描述语言 C2C2对对会议安排系统的描述会议安排系统的描述 system MeetingScheduler_1 issystem MeetingScheduler_1 is architecture architecture MeetingSchedulerMeetingScheduler with with Atte

54、ndee instance Att_1 Attendee instance Att_1,Att_2Att_2,Att_3Att_3; ImportantAttendeeImportantAttendee instance ImpAtt_1 instance ImpAtt_1,ImpAtt_2ImpAtt_2; MeetingInitiatorMeetingInitiator instance MtgInit_1 instance MtgInit_1; end MeetingScheduler_1end MeetingScheduler_1; 第四章第四章 软件体系结构描述软件体系结构描述4.5

55、软件体系结构与软件体系结构与UML UMLUML简介简介 UML(Unified Modeling Language)UML(Unified Modeling Language)是下面这些最是下面这些最好的建模方法中最好部分的集成好的建模方法中最好部分的集成: : 商务流程模型商务流程模型(Work Flow)(Work Flow) 对象建模方法对象建模方法 软构件建模思想软构件建模思想 UMLUML是一种用可视化方法对软件系统进行描述、实是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。施和说明的标准语言。 支持用不同实现技术进行的软件开发全过程。支持用不同实现技术进行的软件开发全

56、过程。第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML UMLUML简介简介 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML UMLUML简介简介 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML UMLUML简介简介 Use CaseDiagramsUse CaseDiagrams用例图用例图ScenarioDiagramsScenarioDiagrams协作图协作图StateDiagramsStateDiagrams构件图构件图ComponentDiagramsCompone

57、ntDiagrams部署图部署图StateDiagramsStateDiagrams对象图对象图ScenarioDiagramsScenarioDiagrams状态图状态图Use CaseDiagramsUse CaseDiagrams顺序图顺序图StateDiagramsStateDiagrams类图类图活动图活动图UML第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 用例图用例图用于显示若干角用于显示若干角色以及这些角色色以及这些角色与系统提供的用与系统提供的用例之间的连接关例之间的连接关系。用例是系统系。用例是系统提供的功能的描提供的功能的描述。述

58、。第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 类图类图表示系统中的表示系统中的类和类与类之类和类与类之间的关系,它间的关系,它是对系统静态是对系统静态结构的描述。结构的描述。 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 顺序图顺序图用来反映若干用来反映若干个对象之间的个对象之间的动态协作关系,动态协作关系,也就是随着时也就是随着时间的推移,对间的推移,对象之间是如何象之间是如何交互的交互的 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 协作图协作图描述对象间的描述对

59、象间的协作关系,协协作关系,协作图跟顺序图作图跟顺序图相似,显示对相似,显示对象间的动态合象间的动态合作关系。作关系。如果强调时间如果强调时间和顺序,则使和顺序,则使用顺序图;如用顺序图;如果强调上下级果强调上下级关系,则选择关系,则选择协作图。这两协作图。这两种图合称为交种图合称为交互图。互图。 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 状态图状态图描述类的描述类的对象所有对象所有可能的状可能的状态以及事态以及事件发生时件发生时状态的转状态的转移条件。移条件。通常,状通常,状态图是对态图是对类图的补类图的补充充 第四章第四章 软件体系结构描述软件

60、体系结构描述4.5软件体系结构与软件体系结构与UML 活动图活动图描述满足描述满足用例要求用例要求所要进行所要进行的活动以的活动以及活动间及活动间的约束关的约束关系,有利系,有利于识别并于识别并行活动行活动 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 构件图构件图描述代描述代码构件码构件的物理的物理结构及结构及各构件各构件之间的之间的依赖关依赖关系系 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 部署图部署图部署图部署图定义系定义系统中软统中软硬件的硬件的物理体物理体系结构系结构 第四章第四章 软件体系结构描

61、述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 UMLUML的四层元模型体系结构。的四层元模型体系结构。 元元- -元元模模型型层层定定义义了了元元模模型型层的规格说明语言;层的规格说明语言; 元元模模型型层层为为给给定定的的建建模模语语言定义规格说明;言定义规格说明; 模模型型层层用用来来定定义义特特定定软软件件系统的模型;系统的模型; 用用户户对对象象用用来来构构建建给给定定模模型的特定实例。型的特定实例。 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 语义约束

62、语义约束 由由对对象象约约束束语语言言OCLOCL表表示示,OCLOCL基基于于一一阶阶谓谓词词逻逻辑辑,每每一一个个OCLOCL表表达达式式都都处处于于一一些些UMLUML模模型型元元素素的的背背景景下下(由由“selfself”引引用用),可可使使用用该该元元素素的的属属性性和和关关系系作作为为其其项项(termterm),同同时时OCLOCL定定义义了了在在集集合合(setssets)、袋袋(bags)(bags)等等上上的的公公共共操操作作集集和和遍遍历历建建模模元元素素间间关关系系的的构构造造,因因此此,其它建模元素的属性也可以作为它的项。其它建模元素的属性也可以作为它的项。第四章第

63、四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 UMLUML中的通用表示中的通用表示 (1 1)字符串:表示有关模型的信息;)字符串:表示有关模型的信息;(2 2)名字:表示模型元素;)名字:表示模型元素;(3 3)标标号号:不不同同于于编编程程语语言言中中的的标标号号,是是用用于于表表示示或或说说明明图图形形符符号的字符串;号的字符串;(4 4)特殊字符串:表示某一模型元素的特性;)特殊字符串:表示某一模型元素的特性;(5 5)类类型型表表达达式式:声声明明属属性性、变变量量及及参参数数,含含义义同同编编程程语语言言中中的

64、的类型表达式;类型表达式;(6 6)实实体体类类型型:它它是是UMLUML的的扩扩充充机机制制,运运用用实实体体类类型型可可定定义义新新类类型的模型元素;型的模型元素;(7 7)语义部分是对)语义部分是对UMLUML的准确表示,由三部分组成。的准确表示,由三部分组成。第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 UMLUML语义部分语义部分 通通用用元元素素:主主要要描描述述UMLUML中中各各元元素素的的语语义义。通通用用元元素素是是UMLUML中中的的基基本本构构造造单单位位,包包括括模模型型元元素素和和视视图

65、图元元素素,模模型型元元素素用用来来构构造造系系统,视图元素用来构成系统的表示成分;统,视图元素用来构成系统的表示成分; 通通用用机机制制:主主要要描描述述使使UMLUML保保持持简简单单和和概概念念上上一一致致的的机机制制的的语语义义。包包括括定定制制、标标记记值值、注注记记、约约束束、依依赖赖关关系系、类类型型- -实实例例、类类型型- -类的对应关系等机制;类的对应关系等机制; 通通用用类类型型:主主要要描描述述UMLUML中中各各种种类类型型的的语语义义。这这些些类类型型包包括括布布尔尔类类型型、表表达达式式类类型型、列列表表类类型型、多多重重性性类类型型、名名字字类类型型、坐坐标标类

66、型、字符串类型、时间类型、用户自定义类型等。类型、字符串类型、时间类型、用户自定义类型等。 三三部部分分不不是是相相互互独独立立的的,而而是是相相互互交交叉叉重重叠叠、紧紧密密相相连连,共共同构成了同构成了UMLUML的完整语义。的完整语义。第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 会议安排系统的类图会议安排系统的类图 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 会议安排系统类接口会议安排系统类接口 第四章第四章 软件体系结构描述

67、软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 C2C2连接件模型连接件模型 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 细化的类图细化的类图第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 直接使用直接使用UMLUML建模建模 会议安排系统的协作图会议安排系统的协作图 第四章第四章 软件体系结构描述软件体系结构描述4.5软件体系结构与软件体系结构与UML 使用使用UMLUML扩展机制扩展机制 自学自学第四章第四章 软件体系结构

68、描述软件体系结构描述4.6可可扩展展标记语言言 XMLXML语言简介语言简介 XML(extensibleXML(extensible markup language) markup language) 可扩展标记语言可扩展标记语言XML结合了结合了SGML和和HTML的优点并消除了其缺点。的优点并消除了其缺点。XML是用来描述数据的;用户可以创建自己需要的标记,是用来描述数据的;用户可以创建自己需要的标记,当需要时,告诉浏览器如何显示这些标记就可以了。另外,当需要时,告诉浏览器如何显示这些标记就可以了。另外,XML标记描述的是文档的结构和意义,不描述页面元素的标记描述的是文档的结构和意义,不

69、描述页面元素的格式化。文档本身只说明文档包括什么标记,而不是说明格式化。文档本身只说明文档包括什么标记,而不是说明文档看起来是什么样的。文档看起来是什么样的。第四章第四章 软件体系结构描述软件体系结构描述4.6可可扩展展标记语言言 XMLXML相关技术简介相关技术简介XML主要是一种数据描述方法。主要是一种数据描述方法。XML相关的技术有相关的技术有很多,但主要有三个:很多,但主要有三个:Schema、XSL和和XLL。DTD与与SchemaCSS和和XSLXpath,Xpointer与与XlinkXML名字空间名字空间XML查询语句查询语句资源描述框架资源描述框架DOM、SAX和和XML解析

70、器解析器第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 概述概述当前,对软件体系结构设计的共识之一是,体系结构当前,对软件体系结构设计的共识之一是,体系结构设计应当支持对软件系统质量的需求(非功能特性的需求)设计应当支持对软件系统质量的需求(非功能特性的需求)。这是因为,软件体系结构包括了早期的设计决定,体现。这是因为,软件体系结构包括了早期的设计决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影了系统的全局结构,对于整个系统的质量有着决定性的影响。为了确保各种质量因素,大家都认为正确地对体系结响。为了确保各种质量因素,大家都认为正确地对体系结构设计

71、进行抽象很有必要。但是,正如软件体系结构的其构设计进行抽象很有必要。但是,正如软件体系结构的其他概念和方法一样,对于体系结构设计人们也没有形成统他概念和方法一样,对于体系结构设计人们也没有形成统一的认识。一的认识。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则抽象抽象分而治之分而治之封装和信息隐蔽封装和信息隐蔽模块化模块化高内聚和低耦合高内聚和低耦合关注点分离关注点分离策略和实现的分离策略和实现的分离接口和实现的分离接口和实现的分离基本原则:基本原则:第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的

72、构的设计 体系结构设计的原则体系结构设计的原则抽象是人们用来处理复杂性问题的基本原理之一。抽抽象是人们用来处理复杂性问题的基本原理之一。抽象有几种形式,如数据抽象、对象抽象、实体抽象、行为象有几种形式,如数据抽象、对象抽象、实体抽象、行为抽象、过程抽象、虚拟机抽象等。数据、实体的抽象使得抽象、过程抽象、虚拟机抽象等。数据、实体的抽象使得软件操作的对象和参数是针对逻辑结构,而非存储结构的。软件操作的对象和参数是针对逻辑结构,而非存储结构的。行为、过程的抽象使得操作的指派是依据标识而非地址,行为、过程的抽象使得操作的指派是依据标识而非地址,由此产生了操作的接口和动态约束描述。在处理系统复杂由此产生

73、了操作的接口和动态约束描述。在处理系统复杂性方面,抽象起到了重要作用。减少部件耦合、接口与实性方面,抽象起到了重要作用。减少部件耦合、接口与实现的分离等,都得益于抽象。现的分离等,都得益于抽象。1.抽象抽象第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则抽象的一个重要特性就是可替换性。对象的抽象把具抽象的一个重要特性就是可替换性。对象的抽象把具有相同基类的导出类看作是同类,加上过程抽象带来的在有相同基类的导出类看作是同类,加上过程抽象带来的在过程名称下的过程名称下的“偷梁换柱偷梁换柱”,因此实现了动态约束,使面,因此实现了动

74、态约束,使面向抽象问题而不是实际结构的抽象程序设计得以实现。大向抽象问题而不是实际结构的抽象程序设计得以实现。大量的结构模式和应用问题都是基于这个思想而得到实现的。量的结构模式和应用问题都是基于这个思想而得到实现的。1.抽象抽象第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则这条原理是众所周知的,它来自古时的政治,也来自这条原理是众所周知的,它来自古时的政治,也来自诸如归并分类的组合算法。在软件体系结构中该原理得到诸如归并分类的组合算法。在软件体系结构中该原理得到大量应用。例如,自上而下设计将一个任务或部件分成可大量应用。例

75、如,自上而下设计将一个任务或部件分成可以独立设计的更小的部分。该原理经常被用来作为实现注以独立设计的更小的部分。该原理经常被用来作为实现注意点分离的方法。意点分离的方法。2.分而治之分而治之第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则封装是将构成抽象的属性和行为结合在一起,并区分封装是将构成抽象的属性和行为结合在一起,并区分不同抽象的方法。封装为不同抽象之间提供了明确的界限。不同抽象的方法。封装为不同抽象之间提供了明确的界限。封装有利于非功能特性实现,例如可变性和可重用性。封装有利于非功能特性实现,例如可变性和可重用性。

76、封装包括内部构成和操作服务两个方面。例如,通过封装包括内部构成和操作服务两个方面。例如,通过对象、模块设计和访问接口设计分别提供了这两种封装。对象、模块设计和访问接口设计分别提供了这两种封装。3.封装和信息隐蔽封装和信息隐蔽第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则信息隐蔽是软件工程的最基本和最重要的原理之一。信息隐蔽是软件工程的最基本和最重要的原理之一。信息隐蔽对用户隐藏了部件的实现细节,用来更好地信息隐蔽对用户隐藏了部件的实现细节,用来更好地处理系统的复杂性和减少各部件之间的耦合。为了更好地处理系统的复杂性和减少各

77、部件之间的耦合。为了更好地应用,用户不需要知道的细节都应该由部件隐藏起来。封应用,用户不需要知道的细节都应该由部件隐藏起来。封装原理经常被用来作为实现信息隐藏的方法。信息隐藏也装原理经常被用来作为实现信息隐藏的方法。信息隐藏也可以通过接口与实现的分离的原理来实现。可以通过接口与实现的分离的原理来实现。3.封装和信息隐蔽封装和信息隐蔽第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则然而,部件应该隐藏什么取决于具体的应用。在一个然而,部件应该隐藏什么取决于具体的应用。在一个应用中客户不需要知道的方面或许在另外一个应用中就需应用中

78、客户不需要知道的方面或许在另外一个应用中就需要看到。例如,在一个应用中为了提高运行性能,可能需要看到。例如,在一个应用中为了提高运行性能,可能需要对某一部件的内部数据结构进行直接访问;而在另外一要对某一部件的内部数据结构进行直接访问;而在另外一个应用中,可能因为对其性能已经满意了,就不需要对其个应用中,可能因为对其性能已经满意了,就不需要对其数据的直接访问了。数据的直接访问了。3.封装和信息隐蔽封装和信息隐蔽第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则模块化主要关心的是如何将一个软件系统分解成子系模块化主要关心的是如何将

79、一个软件系统分解成子系统和部件,其主要任务就是决定怎样将构成应用的逻辑结统和部件,其主要任务就是决定怎样将构成应用的逻辑结构物理地分割成代码实体。模块化的主要做法,就是在一构物理地分割成代码实体。模块化的主要做法,就是在一个系统内引入具有良好定义的分界,依此来处理系统的复个系统内引入具有良好定义的分界,依此来处理系统的复杂性。模块的作用是为了一个应用的功能和责任的物理容杂性。模块的作用是为了一个应用的功能和责任的物理容器。模块化与封装原理的联系非常密切。器。模块化与封装原理的联系非常密切。4.模块化模块化第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构

80、设计的原则体系结构设计的原则由此带来了复杂系统资源管理、维护和应用的逻辑和由此带来了复杂系统资源管理、维护和应用的逻辑和条理性,增加了应用设计的灵活性。另外它对于系统的运条理性,增加了应用设计的灵活性。另外它对于系统的运行设计和管理调度也提供了方便,例如,对于动态链接库行设计和管理调度也提供了方便,例如,对于动态链接库的选择应用、程序运行体的覆盖和交换都是十分有益的。的选择应用、程序运行体的覆盖和交换都是十分有益的。4.模块化模块化第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则耦合和内聚最初是作为结构化设计方法的部分原理而

81、耦合和内聚最初是作为结构化设计方法的部分原理而提出的。耦合强调模块之间的特征,而内聚强调模块内部提出的。耦合强调模块之间的特征,而内聚强调模块内部的特性。耦合是用来衡量一个模块同另一个模块的联系的的特性。耦合是用来衡量一个模块同另一个模块的联系的紧密程度的。紧密的耦合就会使系统变得复杂,因为如果紧密程度的。紧密的耦合就会使系统变得复杂,因为如果一个模块和另外的模块有很密切的关联的话,这个模块就一个模块和另外的模块有很密切的关联的话,这个模块就很难理解、调试、维护。通过弱耦合部件的设计可以降低很难理解、调试、维护。通过弱耦合部件的设计可以降低系统的复杂性。系统的复杂性。5.高内聚和低耦合高内聚和

82、低耦合第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则内聚用来衡量单一模块内功能和元素间联系性的程度。内聚用来衡量单一模块内功能和元素间联系性的程度。内聚有几种形式。最期望获得的是功能内聚,它说明一个内聚有几种形式。最期望获得的是功能内聚,它说明一个模块或是部件内的所有元素都协同来提供具有良好边界的模块或是部件内的所有元素都协同来提供具有良好边界的行为。最差的形式是偶然内聚,这种形式将毫无联系的抽行为。最差的形式是偶然内聚,这种形式将毫无联系的抽象放置在同一模块之中。其他形式的内聚还有:逻辑内聚、象放置在同一模块之中。其他形

83、式的内聚还有:逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和不规则内聚。时间内聚、过程内聚、通信内聚、顺序内聚和不规则内聚。5.高内聚和低耦合高内聚和低耦合第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则不同和无关联的责任应该在软件系统中分离开来,让不同和无关联的责任应该在软件系统中分离开来,让它们出现在不同的部件中。相互协作完成某一个特定任务它们出现在不同的部件中。相互协作完成某一个特定任务的部件应该和在其他任务中执行计算的部分分离开来。如的部件应该和在其他任务中执行计算的部分分离开来。如果一个部件在不同的环境下扮演着

84、不同的角色,在部件中果一个部件在不同的环境下扮演着不同的角色,在部件中这些角色应该独立且相互分离。这些角色应该独立且相互分离。6.关注点分离关注点分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则例如,在多层体系结构的组件设计中,在多种应用场例如,在多层体系结构的组件设计中,在多种应用场景中担任不同角色的同一个组件,需要和可以使用不同的景中担任不同角色的同一个组件,需要和可以使用不同的接口定义。这样,对某一角色开放的只是与角色相关的信接口定义。这样,对某一角色开放的只是与角色相关的信息和服务,避免了过多暴露所造成对应用设计

85、的负担和混息和服务,避免了过多暴露所造成对应用设计的负担和混乱,又保证了组件运行的可靠和安全。乱,又保证了组件运行的可靠和安全。6.关注点分离关注点分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则软件系统的部件应该实现策略或处理问题,但不能同软件系统的部件应该实现策略或处理问题,但不能同时处理两者。时处理两者。策略部件负责处理上下文相关的决策、信息的语义和策略部件负责处理上下文相关的决策、信息的语义和解释的知识、把不相交计算组合形成结果、对参数值进行解释的知识、把不相交计算组合形成结果、对参数值进行选择等问题。选择等问题

86、。实现部件负责全面规范算法的执行,执行中不需要对实现部件负责全面规范算法的执行,执行中不需要对上下文相关信息进行决策。上下文和解释是部件外部施加上下文相关信息进行决策。上下文和解释是部件外部施加的,它通常由传给部件的参数提供。的,它通常由传给部件的参数提供。7.策略和实现的分离策略和实现的分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则由于独立于特定的上下文环境,纯实现部件更容易重由于独立于特定的上下文环境,纯实现部件更容易重用和维护,而策略部件通常是与特定应用相关的,需要随用和维护,而策略部件通常是与特定应用相关的,需

87、要随着应用的变化而变化。着应用的变化而变化。如果不能将一个软件体系结构分解成策略和实现的不如果不能将一个软件体系结构分解成策略和实现的不同部件,至少应该在一个部件内将策略和实现的功能加以同部件,至少应该在一个部件内将策略和实现的功能加以分离。分离。7.策略和实现的分离策略和实现的分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则任何一个部件都应该包含两个部分,接口和实现。任何一个部件都应该包含两个部分,接口和实现。接口部分定义了部件所提供的功能,并规范了功能的接口部分定义了部件所提供的功能,并规范了功能的使用方法。该接口对

88、部件的客户是可访问的。该类型的输使用方法。该接口对部件的客户是可访问的。该类型的输出接口是由函数原型构成的。出接口是由函数原型构成的。实现部分包括了实现部件所提供功能的实际代码。实实现部分包括了实现部件所提供功能的实际代码。实现部分还可以包含只服务于部件内部操作的另外的函数和现部分还可以包含只服务于部件内部操作的另外的函数和数据结构。实现部分对部件客户来说是不可用的。数据结构。实现部分对部件客户来说是不可用的。8.接口和实现的分离接口和实现的分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计的原则体系结构设计的原则该原理的主要目的是防止部件的客户

89、接触到实现的细节,该原理的主要目的是防止部件的客户接触到实现的细节,而只为客户提供部件的接口规范和使用方法。另外,该原理还而只为客户提供部件的接口规范和使用方法。另外,该原理还允许独立于其他部件的应用而实现一个部件的功能。就像封装允许独立于其他部件的应用而实现一个部件的功能。就像封装一样,接口和实现的分离也是一种用来获得信息隐藏的技术。一样,接口和实现的分离也是一种用来获得信息隐藏的技术。该原理强调该原理强调“一个客户只应该知道它需要知道的东西一个客户只应该知道它需要知道的东西”。接口和实现的分离也支持可变性。如果部件的接口和实现接口和实现的分离也支持可变性。如果部件的接口和实现分离,那么它就

90、更容易在系统中进行改变。这种分离避免了客分离,那么它就更容易在系统中进行改变。这种分离避免了客户直接受到部件变化的影响。该原理使部件行为和表示的改变户直接受到部件变化的影响。该原理使部件行为和表示的改变特别容易,尤其是那些不影响接口的改变,例如对运行性能的特别容易,尤其是那些不影响接口的改变,例如对运行性能的提高。提高。8.接口和实现的分离接口和实现的分离第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的元模型体系结构设计方法的元模型元模型是对各种体元模型是对各种体系结构设计模型的抽象。系结构设计模型的抽象。元模型中有三处用元模型中有三处用到了

91、领域知识的概念。到了领域知识的概念。要区分几种特殊化要区分几种特殊化的的“领域领域”概念:问题概念:问题领域知识、商业领域知领域知识、商业领域知识、解决方案领域知识、识、解决方案领域知识、通用知识,等等。通用知识,等等。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的元模型体系结构设计方法的元模型商业领域知识是指商业过程观点下的与问题有关的知识。包括商业领域知识是指商业过程观点下的与问题有关的知识。包括商业过程方面的知识、用户调查、市场分析报告等。商业过程方面的知识、用户调查、市场分析报告等。解决方案领域知识是指提供领域概念的知识。这些领域概

92、念用解决方案领域知识是指提供领域概念的知识。这些领域概念用于解决问题,并独立于特定需求。解决方案领域知识还包括如何从于解决问题,并独立于特定需求。解决方案领域知识还包括如何从这一解决方案领域生产软件系统。这一解决方案领域生产软件系统。通用知识是指软件工程师的一般背景和经验。通用知识是指软件工程师的一般背景和经验。系统系统/产品知识是指关于一个系统、一个系统族或一个产品的产品知识是指关于一个系统、一个系统族或一个产品的知识。知识。问题领域知问题领域知识是指客户观点下识是指客户观点下的与问题有关的知的与问题有关的知识。包括需求规格识。包括需求规格说明文档、与客户说明文档、与客户面谈、客户发布的面谈

93、、客户发布的原型等。原型等。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的元模型体系结构设计方法的元模型第一阶段:捕捉需求。第一阶段:捕捉需求。客户:表示那些关心软件体客户:表示那些关心软件体系结构设计的系统相关人员。包系结构设计的系统相关人员。包括:客户、最终用户、系统开发括:客户、最终用户、系统开发人员、系统维护人员、销售人员人员、系统维护人员、销售人员等。等。领域知识:表示在解决某一领域知识:表示在解决某一问题中所应用的知识的范围。问题中所应用的知识的范围。需求规格说明:表示规格说需求规格说明:表示规格说明,描述了所要开发的体系结构明

94、,描述了所要开发的体系结构系统的需求。系统的需求。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的元模型体系结构设计方法的元模型第二阶段:提取解决方案第二阶段:提取解决方案的结构。的结构。需求规格说明、领域知识。需求规格说明、领域知识。工件:表示某一方法的工工件:表示某一方法的工件描述。这是指诸如工件类、件描述。这是指诸如工件类、工件操作、工件属性等。一般,工件操作、工件属性等。一般,每种工件都有一套与之相关的每种工件都有一套与之相关的试探法,用来标识相关的工件试探法,用来标识相关的工件实例。实例。解决方案抽象:定义了体解决方案抽象:定义了体

95、系结构中(子)结构的概念表系结构中(子)结构的概念表示。示。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的元模型体系结构设计方法的元模型第三阶段:体系结构规格说明。第三阶段:体系结构规格说明。解决方案抽象、领域知识。解决方案抽象、领域知识。体系结构描述:定义了软件体系结构的规格说明。体系结构描述:定义了软件体系结构的规格说明。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计 体系结构设计方法的分析体系结构设计方法的分析为了获取对体系结构设计的抽象,人们已经提出了许为了获取对体系结构设计的抽象,人们已经提出了许

96、多方法。我们把这些体系结构设计方法分类为:多方法。我们把这些体系结构设计方法分类为:工件驱动(工件驱动(artifact-driven)的方法;)的方法;用例驱动(用例驱动(use-case-driven)的方法;)的方法;模式驱动(模式驱动(pattern-driven)的方法;)的方法;域驱动(域驱动(domain-driven)的方法。)的方法。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计工件驱动(工件驱动(artifact-drivenartifact-driven)的方法)的方法工件驱动的体系结构工件驱动的体系结构工件驱动的体系结构工件驱动的体系结

97、构设计方法的概念模型设计方法的概念模型设计方法的概念模型设计方法的概念模型特点:特点:特点:特点:从方法的工件描从方法的工件描从方法的工件描从方法的工件描述中提取体系结构描述中提取体系结构描述中提取体系结构描述中提取体系结构描述。述。述。述。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计工件驱动(工件驱动(artifact-drivenartifact-driven)的方法)的方法工件驱动的体系结构设计方法的例子包括广工件驱动的体系结构设计方法的例子包括广工件驱动的体系结构设计方法的例子包括广工件驱动的体系结构设计方法的例子包括广为流行的面向对象分析和设计方法

98、为流行的面向对象分析和设计方法为流行的面向对象分析和设计方法为流行的面向对象分析和设计方法OMTOMT和和和和OADOAD。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计工件驱动(工件驱动(artifact-drivenartifact-driven)的方法)的方法缺点:缺点:缺点:缺点:(1 1)文本形式的系统需求不够清楚、精确、完整。以)文本形式的系统需求不够清楚、精确、完整。以)文本形式的系统需求不够清楚、精确、完整。以)文本形式的系统需求不够清楚、精确、完整。以它作为导出体系结构抽象的来源作用不够。它作为导出体系结构抽象的来源作用不够。它作为导出体系结

99、构抽象的来源作用不够。它作为导出体系结构抽象的来源作用不够。(2 2)子系统的语义过于简单,难以作为体系结构构件。)子系统的语义过于简单,难以作为体系结构构件。)子系统的语义过于简单,难以作为体系结构构件。)子系统的语义过于简单,难以作为体系结构构件。(3 3)对子系统的组合支持不足。)对子系统的组合支持不足。)对子系统的组合支持不足。)对子系统的组合支持不足。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法用例驱动的体系结构用例驱动的体系结构用例驱动的体系结构用例驱

100、动的体系结构设计方法主要从用例设计方法主要从用例设计方法主要从用例设计方法主要从用例导出体系结构抽象。导出体系结构抽象。导出体系结构抽象。导出体系结构抽象。目的:目的:目的:目的:作为系统预期功作为系统预期功作为系统预期功作为系统预期功能及其环境的模型,能及其环境的模型,能及其环境的模型,能及其环境的模型,并在客户和开发者之并在客户和开发者之并在客户和开发者之并在客户和开发者之间起到合约的作用。间起到合约的作用。间起到合约的作用。间起到合约的作用。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用例驱动(use-case-drivenuse-case-

101、driven)的方法)的方法一个用例,是指系统进行的一个活动序列,它为参与者一个用例,是指系统进行的一个活动序列,它为参与者一个用例,是指系统进行的一个活动序列,它为参与者一个用例,是指系统进行的一个活动序列,它为参与者提供一些结果值。参与者通过用例使用系统。参与者和用例提供一些结果值。参与者通过用例使用系统。参与者和用例提供一些结果值。参与者通过用例使用系统。参与者和用例提供一些结果值。参与者通过用例使用系统。参与者和用例共同构成了用例模型。共同构成了用例模型。共同构成了用例模型。共同构成了用例模型。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用

102、例驱动(use-case-drivenuse-case-driven)的方法)的方法统一过程使用的是一种用例驱动的体系结构设计方法。统一过程使用的是一种用例驱动的体系结构设计方法。统一过程使用的是一种用例驱动的体系结构设计方法。统一过程使用的是一种用例驱动的体系结构设计方法。它由核心工作流组成。核心工作流定义了过程的静态内容,它由核心工作流组成。核心工作流定义了过程的静态内容,它由核心工作流组成。核心工作流定义了过程的静态内容,它由核心工作流组成。核心工作流定义了过程的静态内容,用活动、工人和工件描述了过程。随时间变化的过程的组织用活动、工人和工件描述了过程。随时间变化的过程的组织用活动、工人

103、和工件描述了过程。随时间变化的过程的组织用活动、工人和工件描述了过程。随时间变化的过程的组织被定义为阶段。被定义为阶段。被定义为阶段。被定义为阶段。统一过程由统一过程由统一过程由统一过程由6 6个核心工作流组成:商业模型、需求、分个核心工作流组成:商业模型、需求、分个核心工作流组成:商业模型、需求、分个核心工作流组成:商业模型、需求、分析、设计、实现和测试。这些核心工作流的结果分别是下列析、设计、实现和测试。这些核心工作流的结果分别是下列析、设计、实现和测试。这些核心工作流的结果分别是下列析、设计、实现和测试。这些核心工作流的结果分别是下列模型:商业和领域模型、用例模型、分析模型、设计模型、模

104、型:商业和领域模型、用例模型、分析模型、设计模型、模型:商业和领域模型、用例模型、分析模型、设计模型、模型:商业和领域模型、用例模型、分析模型、设计模型、实现模型和测试模型。实现模型和测试模型。实现模型和测试模型。实现模型和测试模型。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法在需求工作流中,以用例的形式捕捉客户的需求,构成在需求工作流中,以用例的形式捕捉客户的需求,构成在需求工作流中,以用例的形式捕捉客户的需求,构成在需求工作流中,以用例的形式捕捉客户的需求,构

105、成用例模型。这一过程在上图中被定义为用例模型。这一过程在上图中被定义为用例模型。这一过程在上图中被定义为用例模型。这一过程在上图中被定义为“ “1 1:描述:描述:描述:描述” ”。用例模型和非形式化的需求规格说明共同构成了系统的用例模型和非形式化的需求规格说明共同构成了系统的用例模型和非形式化的需求规格说明共同构成了系统的用例模型和非形式化的需求规格说明共同构成了系统的需求规格说明。用例模型的开发得到了需求规格说明。用例模型的开发得到了需求规格说明。用例模型的开发得到了需求规格说明。用例模型的开发得到了“ “非形式化的规格说非形式化的规格说非形式化的规格说非形式化的规格说明明明明” ”,“

106、“领域模型领域模型领域模型领域模型” ”,“ “商业模型商业模型商业模型商业模型” ”等概念的支持,在设置等概念的支持,在设置等概念的支持,在设置等概念的支持,在设置系统上下文时这些概念是必需的。系统上下文时这些概念是必需的。系统上下文时这些概念是必需的。系统上下文时这些概念是必需的。如前所述,如前所述,如前所述,如前所述,“ “非形式化的规格说明非形式化的规格说明非形式化的规格说明非形式化的规格说明” ”表示文本形式的需表示文本形式的需表示文本形式的需表示文本形式的需求规格说明。求规格说明。求规格说明。求规格说明。“ “商业模型商业模型商业模型商业模型” ”描述一个组织的商业过程。描述一个组

107、织的商业过程。描述一个组织的商业过程。描述一个组织的商业过程。“ “领领领领域模型域模型域模型域模型” ”描述领域上下文中最重要的类。描述领域上下文中最重要的类。描述领域上下文中最重要的类。描述领域上下文中最重要的类。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法从用例模型中可以选择出对于体系结构有重要意义的用从用例模型中可以选择出对于体系结构有重要意义的用从用例模型中可以选择出对于体系结构有重要意义的用从用例模型中可以选择出对于体系结构有重要意义的用例,并创建例,

108、并创建例,并创建例,并创建“ “用例实现用例实现用例实现用例实现” ”,如上图中,如上图中,如上图中,如上图中“ “2 2:实现:实现:实现:实现” ”所述。用例所述。用例所述。用例所述。用例实现决定了任务在系统内部是怎样进行的。用例实现受到相实现决定了任务在系统内部是怎样进行的。用例实现受到相实现决定了任务在系统内部是怎样进行的。用例实现受到相实现决定了任务在系统内部是怎样进行的。用例实现受到相关工件的知识和通用知识的支持。这在图中被表示为分别从关工件的知识和通用知识的支持。这在图中被表示为分别从关工件的知识和通用知识的支持。这在图中被表示为分别从关工件的知识和通用知识的支持。这在图中被表示

109、为分别从“ “工件工件工件工件” ”和和和和“ “通用知识通用知识通用知识通用知识” ”引出的指向引出的指向引出的指向引出的指向“ “2 2:实现:实现:实现:实现” ”的箭头线。的箭头线。的箭头线。的箭头线。这一功能的输出是这一功能的输出是这一功能的输出是这一功能的输出是“ “分析和设计模型分析和设计模型分析和设计模型分析和设计模型” ”概念,它表示在用例概念,它表示在用例概念,它表示在用例概念,它表示在用例实现之后标识出的工件。实现之后标识出的工件。实现之后标识出的工件。实现之后标识出的工件。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计用例驱动(用例驱动

110、(use-case-drivenuse-case-driven)的方法)的方法然后,分析和设计模型被分组为包,这在图中表示为然后,分析和设计模型被分组为包,这在图中表示为然后,分析和设计模型被分组为包,这在图中表示为然后,分析和设计模型被分组为包,这在图中表示为“ “3 3:分组:分组:分组:分组” ”。图中的。图中的。图中的。图中的“ “4 4:组合:组合:组合:组合” ”代表定义这些包之间的接代表定义这些包之间的接代表定义这些包之间的接代表定义这些包之间的接口,其结果是口,其结果是口,其结果是口,其结果是“ “体系结构描述体系结构描述体系结构描述体系结构描述” ”的概念。的概念。的概念。的

111、概念。“ “3 3:分组:分组:分组:分组” ”和和和和“ “4 4:组合:组合:组合:组合” ”这两个功能都受到这两个功能都受到这两个功能都受到这两个功能都受到“ “通用知识通用知识通用知识通用知识” ”概念的支持。概念的支持。概念的支持。概念的支持。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(1 1)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。(2 2)对于如何选择与体系结构相关的用例没有提供系)对于如何选择与体系结

112、构相关的用例没有提供系)对于如何选择与体系结构相关的用例没有提供系)对于如何选择与体系结构相关的用例没有提供系统的支持。统的支持。统的支持。统的支持。(3 3)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。(4 4)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法第四章第四

113、章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(1 1)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。)难以适度把握领域模型和商业模型的细节。该方法在定义用例模型之前进行商业模型和领域模型该方法在定义用例模型之前进行商业模型和领域模型该方法在定义用例模型之前进行商业模型和领域模型该方法在定义用例模型之前进行商业模型和领域模型的定义。这就带来了如何适度把握这些模型的细节的问题。的定义。这就带来了如何适度把握这些模型的细节的问题。的定义。这就带来了如何适度把握这些模型的细节的问题

114、。的定义。这就带来了如何适度把握这些模型的细节的问题。在了解用例之前,很难回答这一问题,因为用例实际上定义在了解用例之前,很难回答这一问题,因为用例实际上定义在了解用例之前,很难回答这一问题,因为用例实际上定义在了解用例之前,很难回答这一问题,因为用例实际上定义了所要开发的是什么。了所要开发的是什么。了所要开发的是什么。了所要开发的是什么。用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(2 2)对于如何选择与体系结构相关的用例没有提供系)对于

115、如何选择与体系结构相关的用例没有提供系)对于如何选择与体系结构相关的用例没有提供系)对于如何选择与体系结构相关的用例没有提供系统的支持。统的支持。统的支持。统的支持。为了进行体系结构描述,需要选择与体系结构相关的为了进行体系结构描述,需要选择与体系结构相关的为了进行体系结构描述,需要选择与体系结构相关的为了进行体系结构描述,需要选择与体系结构相关的用例。但在确定哪些用例是用例。但在确定哪些用例是用例。但在确定哪些用例是用例。但在确定哪些用例是“ “体系结构相关体系结构相关体系结构相关体系结构相关” ”时,缺乏客观时,缺乏客观时,缺乏客观时,缺乏客观标准,仅凭一些启发式规则和软件工程师的评估。标

116、准,仅凭一些启发式规则和软件工程师的评估。标准,仅凭一些启发式规则和软件工程师的评估。标准,仅凭一些启发式规则和软件工程师的评估。用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(3 3)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。)用例没有为体系结构抽象提供坚实的基础。在选择出与体系结构相关的用例之后,对它们进行实在选择出与体系结构相关的用例之后,对它们进行实在选择出与

117、体系结构相关的用例之后,对它们进行实在选择出与体系结构相关的用例之后,对它们进行实现。这意味着分析和设计类是从用例中确定的。用例实现受现。这意味着分析和设计类是从用例中确定的。用例实现受现。这意味着分析和设计类是从用例中确定的。用例实现受现。这意味着分析和设计类是从用例中确定的。用例实现受到工件的启发式规则的支持,还受到软件工程师的通用知识到工件的启发式规则的支持,还受到软件工程师的通用知识到工件的启发式规则的支持,还受到软件工程师的通用知识到工件的启发式规则的支持,还受到软件工程师的通用知识的支持。工件是从文本形式的需求中得出的,这类似于工件的支持。工件是从文本形式的需求中得出的,这类似于工

118、件的支持。工件是从文本形式的需求中得出的,这类似于工件的支持。工件是从文本形式的需求中得出的,这类似于工件驱动的方法。尽管用例对于理解和表示用户需求是实用的,驱动的方法。尽管用例对于理解和表示用户需求是实用的,驱动的方法。尽管用例对于理解和表示用户需求是实用的,驱动的方法。尽管用例对于理解和表示用户需求是实用的,但它并不能为导出体系结构设计抽象提供坚实的基础。用例但它并不能为导出体系结构设计抽象提供坚实的基础。用例但它并不能为导出体系结构设计抽象提供坚实的基础。用例但它并不能为导出体系结构设计抽象提供坚实的基础。用例主要关注的是系统的问题域和外部行为。在用例实现中,解主要关注的是系统的问题域和

119、外部行为。在用例实现中,解主要关注的是系统的问题域和外部行为。在用例实现中,解主要关注的是系统的问题域和外部行为。在用例实现中,解决方案领域和内部系统中的透明或隐藏抽象将难以标识。因决方案领域和内部系统中的透明或隐藏抽象将难以标识。因决方案领域和内部系统中的透明或隐藏抽象将难以标识。因决方案领域和内部系统中的透明或隐藏抽象将难以标识。因此,即使确定了所有的相关用例,从用例模型确定体系结构此,即使确定了所有的相关用例,从用例模型确定体系结构此,即使确定了所有的相关用例,从用例模型确定体系结构此,即使确定了所有的相关用例,从用例模型确定体系结构抽象仍将是较为困难的。抽象仍将是较为困难的。抽象仍将是

120、较为困难的。抽象仍将是较为困难的。用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(4 4)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。)包的语义过于简单,难以作为体系结构构件。该方法中,分析和设计模型被分组为包。包,类似于该方法中,分析和设计模型被分组为包。包,类似于该方法中,分析和设计模型被分组为包。包,类似于该方法中,分析和设计模型被分组为包。包,类似于工件驱

121、动的方法中的子系统,主要也是分组机制,因此其语工件驱动的方法中的子系统,主要也是分组机制,因此其语工件驱动的方法中的子系统,主要也是分组机制,因此其语工件驱动的方法中的子系统,主要也是分组机制,因此其语义也很简单。而且,在把分析和设计类分组成包、以及把包义也很简单。而且,在把分析和设计类分组成包、以及把包义也很简单。而且,在把分析和设计类分组成包、以及把包义也很简单。而且,在把分析和设计类分组成包、以及把包组合为最终的体系结构等方面,该方法提供的支持也很有限,组合为最终的体系结构等方面,该方法提供的支持也很有限,组合为最终的体系结构等方面,该方法提供的支持也很有限,组合为最终的体系结构等方面,

122、该方法提供的支持也很有限,主要依靠软件工程师的通用知识。这也可能带来错误定义的主要依靠软件工程师的通用知识。这也可能带来错误定义的主要依靠软件工程师的通用知识。这也可能带来错误定义的主要依靠软件工程师的通用知识。这也可能带来错误定义的体系结构边界及其交互。体系结构边界及其交互。体系结构边界及其交互。体系结构边界及其交互。用例驱动(用例驱动(use-case-drivenuse-case-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法体系结构模

123、式关心的体系结构模式关心的体系结构模式关心的体系结构模式关心的是体系结构级别的元是体系结构级别的元是体系结构级别的元是体系结构级别的元素及其交互。素及其交互。素及其交互。素及其交互。体系结构设计模式本体系结构设计模式本体系结构设计模式本体系结构设计模式本身不是软件体系结构,身不是软件体系结构,身不是软件体系结构,身不是软件体系结构,而是体系结构层次的而是体系结构层次的而是体系结构层次的而是体系结构层次的一种抽象表示。一种抽象表示。一种抽象表示。一种抽象表示。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计模式驱动(模式驱动(pattern-drivenpatte

124、rn-driven)的方法)的方法软件工业界已经广泛接受了软件设计模式的概念。软软件工业界已经广泛接受了软件设计模式的概念。软软件工业界已经广泛接受了软件设计模式的概念。软软件工业界已经广泛接受了软件设计模式的概念。软件设计模式的目的在于编制一套可重用的基本原则,用于开件设计模式的目的在于编制一套可重用的基本原则,用于开件设计模式的目的在于编制一套可重用的基本原则,用于开件设计模式的目的在于编制一套可重用的基本原则,用于开发高质量的软件系统。软件设计模式常常用在设计阶段。发高质量的软件系统。软件设计模式常常用在设计阶段。发高质量的软件系统。软件设计模式常常用在设计阶段。发高质量的软件系统。软件

125、设计模式常常用在设计阶段。也有研究者在软件开发过程中的体系结构分析阶段应也有研究者在软件开发过程中的体系结构分析阶段应也有研究者在软件开发过程中的体系结构分析阶段应也有研究者在软件开发过程中的体系结构分析阶段应用设计模式。体系结构模式类似于设计模式,实际上它就是用设计模式。体系结构模式类似于设计模式,实际上它就是用设计模式。体系结构模式类似于设计模式,实际上它就是用设计模式。体系结构模式类似于设计模式,实际上它就是体系结构风格的另一种名称。体系结构风格的另一种名称。体系结构风格的另一种名称。体系结构风格的另一种名称。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设

126、计模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法体系结构模式描述的概念指的是对体系结构模式的描述。体系结构模式描述的概念指的是对体系结构模式的描述。体系结构模式描述的概念指的是对体系结构模式的描述。体系结构模式描述的概念指的是对体系结构模式的描述。主要由主要由主要由主要由4 4个概念组成:个概念组成:个概念组成:个概念组成: 意图:表示使用模式的基本原则;意图:表示使用模式的基本原则;意图:表示使用模式的基本原则;意图:表示使用模式的基本原则; 上下文:表示问题的产生环境;上下文:表示问题的产生环境;上下文:表示问题的产生环境;上下文:表示问题的产

127、生环境; 问题:表示上下文环境中经常出现的问题;问题:表示上下文环境中经常出现的问题;问题:表示上下文环境中经常出现的问题;问题:表示上下文环境中经常出现的问题; 解决方案:是以元素及其关系的抽象描述的形式来表示对解决方案:是以元素及其关系的抽象描述的形式来表示对解决方案:是以元素及其关系的抽象描述的形式来表示对解决方案:是以元素及其关系的抽象描述的形式来表示对问题的解决方案。问题的解决方案。问题的解决方案。问题的解决方案。为了确认模式,就要对各个可用模式的意图进行扫描。为了确认模式,就要对各个可用模式的意图进行扫描。为了确认模式,就要对各个可用模式的意图进行扫描。为了确认模式,就要对各个可用

128、模式的意图进行扫描。如果发现一个模式的意图和给出的问题相关,那么就分析它如果发现一个模式的意图和给出的问题相关,那么就分析它如果发现一个模式的意图和给出的问题相关,那么就分析它如果发现一个模式的意图和给出的问题相关,那么就分析它的上下文描述。如果上下文描述仍然能够和给出的问题相匹的上下文描述。如果上下文描述仍然能够和给出的问题相匹的上下文描述。如果上下文描述仍然能够和给出的问题相匹的上下文描述。如果上下文描述仍然能够和给出的问题相匹配,则处理过程进入配,则处理过程进入配,则处理过程进入配,则处理过程进入“ “应用应用应用应用” ”阶段。进而用阶段。进而用阶段。进而用阶段。进而用“ “解决方案解

129、决方案解决方案解决方案” ”这这这这一子概念来提供所给出问题的解决方案。一子概念来提供所给出问题的解决方案。一子概念来提供所给出问题的解决方案。一子概念来提供所给出问题的解决方案。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(1 1)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能不够充分。不够充分。不够充分。不够充分。(2 2)对模式的选择仅依靠通用知识和软件工程师的经)对模式的选择仅依靠通用知识和软件工程师

130、的经)对模式的选择仅依靠通用知识和软件工程师的经)对模式的选择仅依靠通用知识和软件工程师的经验。验。验。验。(3 3)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要对问题进行全面的分析。对问题进行全面的分析。对问题进行全面的分析。对问题进行全面的分析。(4 4)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。模式驱动(模式驱动(pattern-drivenpattern-dr

131、iven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(1 1)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能)在处理范围广泛的体系结构问题时,模式库可能不够充分。不够充分。不够充分。不够充分。对于模式驱动的体系结构设计方法而言,必要的条件对于模式驱动的体系结构设计方法而言,必要的条件对于模式驱动的体系结构设计方法而言,必要的条件对于模式驱动的体系结构设计方法而言,必要的条件之一是有充足的模式库可用。当前已经存在众多的体系结构之一是有充足

132、的模式库可用。当前已经存在众多的体系结构之一是有充足的模式库可用。当前已经存在众多的体系结构之一是有充足的模式库可用。当前已经存在众多的体系结构模式(风格)分类。尽管这些分类为软件体系结构设计提供模式(风格)分类。尽管这些分类为软件体系结构设计提供模式(风格)分类。尽管这些分类为软件体系结构设计提供模式(风格)分类。尽管这些分类为软件体系结构设计提供了使用的工具,但是它们没有也无法覆盖所有范围内的体系了使用的工具,但是它们没有也无法覆盖所有范围内的体系了使用的工具,但是它们没有也无法覆盖所有范围内的体系了使用的工具,但是它们没有也无法覆盖所有范围内的体系结构开发问题。这一问题的原因在于,体系结

133、构由表示对特结构开发问题。这一问题的原因在于,体系结构由表示对特结构开发问题。这一问题的原因在于,体系结构由表示对特结构开发问题。这一问题的原因在于,体系结构由表示对特定领域的抽象的概念和定义这些概念的组成方式及其相互联定领域的抽象的概念和定义这些概念的组成方式及其相互联定领域的抽象的概念和定义这些概念的组成方式及其相互联定领域的抽象的概念和定义这些概念的组成方式及其相互联系的模式组成。由于应用领域中的软件系统千变万化,所以,系的模式组成。由于应用领域中的软件系统千变万化,所以,系的模式组成。由于应用领域中的软件系统千变万化,所以,系的模式组成。由于应用领域中的软件系统千变万化,所以,也就有无

134、数的体系结构抽象和体系结构模式。也就有无数的体系结构抽象和体系结构模式。也就有无数的体系结构抽象和体系结构模式。也就有无数的体系结构抽象和体系结构模式。模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(2 2)对模式的选择仅依靠通用知识和软件工程师的经)对模式的选择仅依靠通用知识和软件工程师的经)对模式的选择仅依靠通用知识和软件工程师的经)对模式的选择仅依靠通用知识和软件工程师的经验。验。验。验。为了简化对模式的选择和管理,改进对模式的理解,为了简

135、化对模式的选择和管理,改进对模式的理解,为了简化对模式的选择和管理,改进对模式的理解,为了简化对模式的选择和管理,改进对模式的理解,人们通常把具有共同特点的模式分类到相同的组中。不同的人们通常把具有共同特点的模式分类到相同的组中。不同的人们通常把具有共同特点的模式分类到相同的组中。不同的人们通常把具有共同特点的模式分类到相同的组中。不同的体系结构设计方法可能有不同的分类原则。这样,对于同一体系结构设计方法可能有不同的分类原则。这样,对于同一体系结构设计方法可能有不同的分类原则。这样,对于同一体系结构设计方法可能有不同的分类原则。这样,对于同一问题,可能有多种体系结构模式可供选择。但是,在如何确

136、问题,可能有多种体系结构模式可供选择。但是,在如何确问题,可能有多种体系结构模式可供选择。但是,在如何确问题,可能有多种体系结构模式可供选择。但是,在如何确定优先次序、如何在不同模式间进行取舍和平衡等问题上,定优先次序、如何在不同模式间进行取舍和平衡等问题上,定优先次序、如何在不同模式间进行取舍和平衡等问题上,定优先次序、如何在不同模式间进行取舍和平衡等问题上,当前的体系结构设计方法并没有提供明确的支持。这妨碍了当前的体系结构设计方法并没有提供明确的支持。这妨碍了当前的体系结构设计方法并没有提供明确的支持。这妨碍了当前的体系结构设计方法并没有提供明确的支持。这妨碍了查找模式的过程,也进而妨碍了

137、体系结构的确定。查找模式的过程,也进而妨碍了体系结构的确定。查找模式的过程,也进而妨碍了体系结构的确定。查找模式的过程,也进而妨碍了体系结构的确定。模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(3 3)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要)模式的应用并不是一个简单直接的过程,它需要对问题进行全面的分析。对问题进行全面的分析。对问题进行全面的分析。对问题

138、进行全面的分析。在选择了模式之后,模式的应用也并不是一个简单直在选择了模式之后,模式的应用也并不是一个简单直在选择了模式之后,模式的应用也并不是一个简单直在选择了模式之后,模式的应用也并不是一个简单直接的过程。可以把模式看成是一种模板,它由构件及其相互接的过程。可以把模式看成是一种模板,它由构件及其相互接的过程。可以把模式看成是一种模板,它由构件及其相互接的过程。可以把模式看成是一种模板,它由构件及其相互关系组成,在使用时,必须与问题领域的概念和概念之间的关系组成,在使用时,必须与问题领域的概念和概念之间的关系组成,在使用时,必须与问题领域的概念和概念之间的关系组成,在使用时,必须与问题领域的

139、概念和概念之间的关系相匹配。关系相匹配。关系相匹配。关系相匹配。模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计例如,对于一个给定的问题,选择使用管道过滤器例如,对于一个给定的问题,选择使用管道过滤器例如,对于一个给定的问题,选择使用管道过滤器例如,对于一个给定的问题,选择使用管道过滤器模式。在这种模式中,过滤器作为构件,管道作为连接件。模式。在这种模式中,过滤器作为构件,管道作为连接件。模式。在这种模式中,过滤器作为构件,管道作为连接件。模式。在这种模式中,过滤器作为构

140、件,管道作为连接件。过滤器接收输入数据,进行处理,提供输出数据;管道在一过滤器接收输入数据,进行处理,提供输出数据;管道在一过滤器接收输入数据,进行处理,提供输出数据;管道在一过滤器接收输入数据,进行处理,提供输出数据;管道在一个过滤器的输出和另一个过滤器的输入之间发送数据。在应个过滤器的输出和另一个过滤器的输入之间发送数据。在应个过滤器的输出和另一个过滤器的输入之间发送数据。在应个过滤器的输出和另一个过滤器的输入之间发送数据。在应用这种模式时,存在的问题有:应当把哪些领域概念表示成用这种模式时,存在的问题有:应当把哪些领域概念表示成用这种模式时,存在的问题有:应当把哪些领域概念表示成用这种模

141、式时,存在的问题有:应当把哪些领域概念表示成管道,把哪些领域概念表示成过滤器?它们的结构是怎样的管道,把哪些领域概念表示成过滤器?它们的结构是怎样的管道,把哪些领域概念表示成过滤器?它们的结构是怎样的管道,把哪些领域概念表示成过滤器?它们的结构是怎样的?等等。当前,对于这一匹配过程并没有严格的方法可循,?等等。当前,对于这一匹配过程并没有严格的方法可循,?等等。当前,对于这一匹配过程并没有严格的方法可循,?等等。当前,对于这一匹配过程并没有严格的方法可循,模式的应用仍然基于软件工程师的经验和通用知识。模式的应用仍然基于软件工程师的经验和通用知识。模式的应用仍然基于软件工程师的经验和通用知识。模

142、式的应用仍然基于软件工程师的经验和通用知识。模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计缺点:缺点:缺点:缺点:(4 4)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。)对于模式的组合没有提供很好的支持。在开发软件体系结构时,常常要组合使用多种模式。在开发软件体系结构时,常常要组合使用多种模式。在开发软件体系结构时,常常要组合使用多种模式。在开发软件体系结构时,常常要组合使用多种模式。这些模式通常并不是相互独

143、立的,而是存在着相互联系。分这些模式通常并不是相互独立的,而是存在着相互联系。分这些模式通常并不是相互独立的,而是存在着相互联系。分这些模式通常并不是相互独立的,而是存在着相互联系。分别对这些模式进行定义并不能表示出模式之间的相关性。但别对这些模式进行定义并不能表示出模式之间的相关性。但别对这些模式进行定义并不能表示出模式之间的相关性。但别对这些模式进行定义并不能表示出模式之间的相关性。但是,当前并没有系统的方法或明确的原则说明应当如何组合是,当前并没有系统的方法或明确的原则说明应当如何组合是,当前并没有系统的方法或明确的原则说明应当如何组合是,当前并没有系统的方法或明确的原则说明应当如何组合

144、模式。假设在某问题中,经过问题分析阶段之后,我们认为模式。假设在某问题中,经过问题分析阶段之后,我们认为模式。假设在某问题中,经过问题分析阶段之后,我们认为模式。假设在某问题中,经过问题分析阶段之后,我们认为要组合使用分层模式、管道过滤器模式和仓库模式。我们要组合使用分层模式、管道过滤器模式和仓库模式。我们要组合使用分层模式、管道过滤器模式和仓库模式。我们要组合使用分层模式、管道过滤器模式和仓库模式。我们应当怎样组织这应当怎样组织这应当怎样组织这应当怎样组织这3 3种模式?哪种模式是基本的?它们之间有种模式?哪种模式是基本的?它们之间有种模式?哪种模式是基本的?它们之间有种模式?哪种模式是基本

145、的?它们之间有着怎样的依赖关系?当前的模式驱动的体系结构设计方法并着怎样的依赖关系?当前的模式驱动的体系结构设计方法并着怎样的依赖关系?当前的模式驱动的体系结构设计方法并着怎样的依赖关系?当前的模式驱动的体系结构设计方法并不能为这些问题提供满意的答案。不能为这些问题提供满意的答案。不能为这些问题提供满意的答案。不能为这些问题提供满意的答案。模式驱动(模式驱动(pattern-drivenpattern-driven)的方法)的方法第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计域驱动(域驱动(domain-drivendomain-driven)的方法)的方法第

146、四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计域驱动(域驱动(domain-drivendomain-driven)的方法)的方法主要用于产品线体系结构设计和特定领域的软件主要用于产品线体系结构设计和特定领域的软件主要用于产品线体系结构设计和特定领域的软件主要用于产品线体系结构设计和特定领域的软件体系结构设计。体系结构设计。体系结构设计。体系结构设计。缺点:缺点:缺点:缺点:(1 1)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差

147、。(2 2)解决方案领域分析不够充分。)解决方案领域分析不够充分。)解决方案领域分析不够充分。)解决方案领域分析不够充分。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计域驱动(域驱动(domain-drivendomain-driven)的方法)的方法缺点:缺点:缺点:缺点:(1 1)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差。)问题领域分析在导出体系结构抽象方面效果较差。一些领域驱动的体系结构设计方法把领域解释成问题一些领域驱动的体系结构设计方法把领域解释成问题一些领

148、域驱动的体系结构设计方法把领域解释成问题一些领域驱动的体系结构设计方法把领域解释成问题领域。例如,领域。例如,领域。例如,领域。例如,DSSADSSA方法从非形式化的问题声明开始,并从方法从非形式化的问题声明开始,并从方法从非形式化的问题声明开始,并从方法从非形式化的问题声明开始,并从基于场景的领域模型导出体系结构抽象。类似于用例那样,基于场景的领域模型导出体系结构抽象。类似于用例那样,基于场景的领域模型导出体系结构抽象。类似于用例那样,基于场景的领域模型导出体系结构抽象。类似于用例那样,场景关注的也是问题领域和系统的外部行为。因此,可以看场景关注的也是问题领域和系统的外部行为。因此,可以看场

149、景关注的也是问题领域和系统的外部行为。因此,可以看场景关注的也是问题领域和系统的外部行为。因此,可以看出,这些从问题领域导出体系结构抽象的方法,如出,这些从问题领域导出体系结构抽象的方法,如出,这些从问题领域导出体系结构抽象的方法,如出,这些从问题领域导出体系结构抽象的方法,如DSSADSSA方方方方法,在导出正确的体系结构抽象的问题上,效果更差。法,在导出正确的体系结构抽象的问题上,效果更差。法,在导出正确的体系结构抽象的问题上,效果更差。法,在导出正确的体系结构抽象的问题上,效果更差。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计域驱动(域驱动(domai

150、n-drivendomain-driven)的方法)的方法缺点:缺点:缺点:缺点:(2 2)解决方案领域分析不够充分。)解决方案领域分析不够充分。)解决方案领域分析不够充分。)解决方案领域分析不够充分。有些解决方案领域分析方法是独立于软件体系结构设有些解决方案领域分析方法是独立于软件体系结构设有些解决方案领域分析方法是独立于软件体系结构设有些解决方案领域分析方法是独立于软件体系结构设计的,它们为确认潜在的可重用资源提供了系统的过程。正计的,它们为确认潜在的可重用资源提供了系统的过程。正计的,它们为确认潜在的可重用资源提供了系统的过程。正计的,它们为确认潜在的可重用资源提供了系统的过程。正如前面

151、描述的,在系统重用研究领域中,这一活动被称作领如前面描述的,在系统重用研究领域中,这一活动被称作领如前面描述的,在系统重用研究领域中,这一活动被称作领如前面描述的,在系统重用研究领域中,这一活动被称作领域工程。和系统工程、问题领域工程不同,解决方案领域分域工程。和系统工程、问题领域工程不同,解决方案领域分域工程。和系统工程、问题领域工程不同,解决方案领域分域工程。和系统工程、问题领域工程不同,解决方案领域分析所关心的内容超出单个系统的范围,它关心的是一个系统析所关心的内容超出单个系统的范围,它关心的是一个系统析所关心的内容超出单个系统的范围,它关心的是一个系统析所关心的内容超出单个系统的范围,

152、它关心的是一个系统族或问题领域,以确认该解决方案领域的可重用资源。尽管族或问题领域,以确认该解决方案领域的可重用资源。尽管族或问题领域,以确认该解决方案领域的可重用资源。尽管族或问题领域,以确认该解决方案领域的可重用资源。尽管解决方案领域分析提供了对整个领域建模的潜力,而且这种解决方案领域分析提供了对整个领域建模的潜力,而且这种解决方案领域分析提供了对整个领域建模的潜力,而且这种解决方案领域分析提供了对整个领域建模的潜力,而且这种潜力对于导出领域体系结构是必需的,但是,这并不足以驱潜力对于导出领域体系结构是必需的,但是,这并不足以驱潜力对于导出领域体系结构是必需的,但是,这并不足以驱潜力对于导

153、出领域体系结构是必需的,但是,这并不足以驱动体系结构设计过程。动体系结构设计过程。动体系结构设计过程。动体系结构设计过程。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计域驱动(域驱动(domain-drivendomain-driven)的方法)的方法这有两方面的原因。首先,解决方案领域分析并不是这有两方面的原因。首先,解决方案领域分析并不是这有两方面的原因。首先,解决方案领域分析并不是这有两方面的原因。首先,解决方案领域分析并不是为软件体系结构设计而定义的,而是为实现软件开发等活动为软件体系结构设计而定义的,而是为实现软件开发等活动为软件体系结构设计而定义的

154、,而是为实现软件开发等活动为软件体系结构设计而定义的,而是为实现软件开发等活动中的系统资源重用而定义的。由于进行解决方案领域分析的中的系统资源重用而定义的。由于进行解决方案领域分析的中的系统资源重用而定义的。由于进行解决方案领域分析的中的系统资源重用而定义的。由于进行解决方案领域分析的范围可能非常广,往往导致领域模型过于巨大,包括了一些范围可能非常广,往往导致领域模型过于巨大,包括了一些范围可能非常广,往往导致领域模型过于巨大,包括了一些范围可能非常广,往往导致领域模型过于巨大,包括了一些对于构造相关的软件体系结构而言并无必要的抽象。大型的对于构造相关的软件体系结构而言并无必要的抽象。大型的对

155、于构造相关的软件体系结构而言并无必要的抽象。大型的对于构造相关的软件体系结构而言并无必要的抽象。大型的领域模型将可能妨碍寻找体系结构抽象。其次是解决方案领领域模型将可能妨碍寻找体系结构抽象。其次是解决方案领领域模型将可能妨碍寻找体系结构抽象。其次是解决方案领领域模型将可能妨碍寻找体系结构抽象。其次是解决方案领域的内聚性可能不够强,不够稳定,因而难以为体系结构设域的内聚性可能不够强,不够稳定,因而难以为体系结构设域的内聚性可能不够强,不够稳定,因而难以为体系结构设域的内聚性可能不够强,不够稳定,因而难以为体系结构设计提供坚实的基础。在这些相关领域的概念上,人们还没有计提供坚实的基础。在这些相关领

156、域的概念上,人们还没有计提供坚实的基础。在这些相关领域的概念上,人们还没有计提供坚实的基础。在这些相关领域的概念上,人们还没有取得共识,这些研究领域还有待于进一步发展。显然,很难取得共识,这些研究领域还有待于进一步发展。显然,很难取得共识,这些研究领域还有待于进一步发展。显然,很难取得共识,这些研究领域还有待于进一步发展。显然,很难提供一个比来自于解决方案领域还要好的体系结构设计解决提供一个比来自于解决方案领域还要好的体系结构设计解决提供一个比来自于解决方案领域还要好的体系结构设计解决提供一个比来自于解决方案领域还要好的体系结构设计解决方案。这种情况下,全面的解决方案领域分析对于提供稳定方案。

157、这种情况下,全面的解决方案领域分析对于提供稳定方案。这种情况下,全面的解决方案领域分析对于提供稳定方案。这种情况下,全面的解决方案领域分析对于提供稳定的抽象也可能是不够充分的,因为解决方案领域中的概念自的抽象也可能是不够充分的,因为解决方案领域中的概念自的抽象也可能是不够充分的,因为解决方案领域中的概念自的抽象也可能是不够充分的,因为解决方案领域中的概念自身也存在着波动。身也存在着波动。身也存在着波动。身也存在着波动。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计小结小结本节定义了体系结构设计的元模型,并使用这一模型本节定义了体系结构设计的元模型,并使用这一模

158、型本节定义了体系结构设计的元模型,并使用这一模型本节定义了体系结构设计的元模型,并使用这一模型分析、比较和评估了几种体系结构设计方法。这些方法被分分析、比较和评估了几种体系结构设计方法。这些方法被分分析、比较和评估了几种体系结构设计方法。这些方法被分分析、比较和评估了几种体系结构设计方法。这些方法被分类为:工件驱动的、用例驱动的、模式驱动的和领域驱动的。类为:工件驱动的、用例驱动的、模式驱动的和领域驱动的。类为:工件驱动的、用例驱动的、模式驱动的和领域驱动的。类为:工件驱动的、用例驱动的、模式驱动的和领域驱动的。在工件驱动的方法中,体系结构抽象被表示为分组的在工件驱动的方法中,体系结构抽象被表

159、示为分组的在工件驱动的方法中,体系结构抽象被表示为分组的在工件驱动的方法中,体系结构抽象被表示为分组的工件,它们是从需求规格说明导出的。工件,它们是从需求规格说明导出的。工件,它们是从需求规格说明导出的。工件,它们是从需求规格说明导出的。用例驱动的体系结构设计方法从用例模型导出体系结用例驱动的体系结构设计方法从用例模型导出体系结用例驱动的体系结构设计方法从用例模型导出体系结用例驱动的体系结构设计方法从用例模型导出体系结构抽象,用例模型表示了系统预期要实现的功能。构抽象,用例模型表示了系统预期要实现的功能。构抽象,用例模型表示了系统预期要实现的功能。构抽象,用例模型表示了系统预期要实现的功能。模

160、式驱动的体系结构设计方法试图通过从去定义的模模式驱动的体系结构设计方法试图通过从去定义的模模式驱动的体系结构设计方法试图通过从去定义的模模式驱动的体系结构设计方法试图通过从去定义的模式库中选择体系结构模式来开发体系结构。式库中选择体系结构模式来开发体系结构。式库中选择体系结构模式来开发体系结构。式库中选择体系结构模式来开发体系结构。领域驱动的体系结构设计方法从领域模型导出体系结领域驱动的体系结构设计方法从领域模型导出体系结领域驱动的体系结构设计方法从领域模型导出体系结领域驱动的体系结构设计方法从领域模型导出体系结构抽象。构抽象。构抽象。构抽象。第四章第四章 软件体系结构描述软件体系结构描述4.

161、8软件体系件体系结构的构的设计小结小结每种方法都有不足之处,总的说来,可以总结为如下每种方法都有不足之处,总的说来,可以总结为如下每种方法都有不足之处,总的说来,可以总结为如下每种方法都有不足之处,总的说来,可以总结为如下几点:几点:几点:几点:(1 1)在规划体系结构设计阶段所遇到的困难)在规划体系结构设计阶段所遇到的困难)在规划体系结构设计阶段所遇到的困难)在规划体系结构设计阶段所遇到的困难在软件开发过程中,对体系结构设计阶段进行规划是在软件开发过程中,对体系结构设计阶段进行规划是在软件开发过程中,对体系结构设计阶段进行规划是在软件开发过程中,对体系结构设计阶段进行规划是一个两难问题。一个

162、两难问题。一个两难问题。一个两难问题。一般来讲,体系结构的确定应当在分析和设计阶段之一般来讲,体系结构的确定应当在分析和设计阶段之一般来讲,体系结构的确定应当在分析和设计阶段之一般来讲,体系结构的确定应当在分析和设计阶段之前或之后完成。如果把这一过程放在分析和设计模型被确定前或之后完成。如果把这一过程放在分析和设计模型被确定前或之后完成。如果把这一过程放在分析和设计模型被确定前或之后完成。如果把这一过程放在分析和设计模型被确定之后,体系结构的定义可以更加准确,因为体系结构的边界之后,体系结构的定义可以更加准确,因为体系结构的边界之后,体系结构的定义可以更加准确,因为体系结构的边界之后,体系结构

163、的定义可以更加准确,因为体系结构的边界将受到影响。但是,这可能会带来项目的不可管理性,因为将受到影响。但是,这可能会带来项目的不可管理性,因为将受到影响。但是,这可能会带来项目的不可管理性,因为将受到影响。但是,这可能会带来项目的不可管理性,因为项目的许多开发过程将无法得到体系结构的指导。项目的许多开发过程将无法得到体系结构的指导。项目的许多开发过程将无法得到体系结构的指导。项目的许多开发过程将无法得到体系结构的指导。另一方面,如果把这一过程放在分析和设计模型被确另一方面,如果把这一过程放在分析和设计模型被确另一方面,如果把这一过程放在分析和设计模型被确另一方面,如果把这一过程放在分析和设计模

164、型被确定之前,又会带来其他问题。因为这时对于分析和设计模型定之前,又会带来其他问题。因为这时对于分析和设计模型定之前,又会带来其他问题。因为这时对于分析和设计模型定之前,又会带来其他问题。因为这时对于分析和设计模型没有足够的知识,难以确定体系结构的适当边界。没有足够的知识,难以确定体系结构的适当边界。没有足够的知识,难以确定体系结构的适当边界。没有足够的知识,难以确定体系结构的适当边界。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计小结小结(2 2)客户需求不是体系结构抽象的稳固基础)客户需求不是体系结构抽象的稳固基础)客户需求不是体系结构抽象的稳固基础)客户

165、需求不是体系结构抽象的稳固基础对于要开发的软件系统,客户需求不同于体系结构设对于要开发的软件系统,客户需求不同于体系结构设对于要开发的软件系统,客户需求不同于体系结构设对于要开发的软件系统,客户需求不同于体系结构设想。客户需求提供的是对系统中问题的设想,而体系结构的想。客户需求提供的是对系统中问题的设想,而体系结构的想。客户需求提供的是对系统中问题的设想,而体系结构的想。客户需求提供的是对系统中问题的设想,而体系结构的目标是提供能用来实现系统的解决方案的设想。这二者之间目标是提供能用来实现系统的解决方案的设想。这二者之间目标是提供能用来实现系统的解决方案的设想。这二者之间目标是提供能用来实现系

166、统的解决方案的设想。这二者之间差异巨大,从客户需求并不能显而易见地导出体系结构抽象。差异巨大,从客户需求并不能显而易见地导出体系结构抽象。差异巨大,从客户需求并不能显而易见地导出体系结构抽象。差异巨大,从客户需求并不能显而易见地导出体系结构抽象。除此之外,需求自身也可能被不正确的描述,既有可除此之外,需求自身也可能被不正确的描述,既有可除此之外,需求自身也可能被不正确的描述,既有可除此之外,需求自身也可能被不正确的描述,既有可能提出过度要求,也有可能要求不足。能提出过度要求,也有可能要求不足。能提出过度要求,也有可能要求不足。能提出过度要求,也有可能要求不足。因此,有时采用客户需求导出体系结构

167、并不可取。因此,有时采用客户需求导出体系结构并不可取。因此,有时采用客户需求导出体系结构并不可取。因此,有时采用客户需求导出体系结构并不可取。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计小结小结(3 3)难以适度控制领域模型)难以适度控制领域模型)难以适度控制领域模型)难以适度控制领域模型领域驱动的方法和用例驱动的方法在构造软件体系结领域驱动的方法和用例驱动的方法在构造软件体系结领域驱动的方法和用例驱动的方法在构造软件体系结领域驱动的方法和用例驱动的方法在构造软件体系结构时都用到了领域模型。不受控制的领域工程可能导致领域构时都用到了领域模型。不受控制的领域工

168、程可能导致领域构时都用到了领域模型。不受控制的领域工程可能导致领域构时都用到了领域模型。不受控制的领域工程可能导致领域模型缺乏实际使用时所需要的恰当细节。模型缺乏实际使用时所需要的恰当细节。模型缺乏实际使用时所需要的恰当细节。模型缺乏实际使用时所需要的恰当细节。这一问题的一个极端情况是领域模型过于庞大,包括这一问题的一个极端情况是领域模型过于庞大,包括这一问题的一个极端情况是领域模型过于庞大,包括这一问题的一个极端情况是领域模型过于庞大,包括了许多冗余的抽象;另一个极端是领域模型过小,缺少基本了许多冗余的抽象;另一个极端是领域模型过小,缺少基本了许多冗余的抽象;另一个极端是领域模型过小,缺少基

169、本了许多冗余的抽象;另一个极端是领域模型过小,缺少基本的体系结构抽象。甚至可能出现领域模型既缺乏某些基本的的体系结构抽象。甚至可能出现领域模型既缺乏某些基本的的体系结构抽象。甚至可能出现领域模型既缺乏某些基本的的体系结构抽象。甚至可能出现领域模型既缺乏某些基本的体系结构抽象,同时又包含许多冗余信息的情况。体系结构抽象,同时又包含许多冗余信息的情况。体系结构抽象,同时又包含许多冗余信息的情况。体系结构抽象,同时又包含许多冗余信息的情况。适度的控制领域模型的抽象细节是一件非常困难的任适度的控制领域模型的抽象细节是一件非常困难的任适度的控制领域模型的抽象细节是一件非常困难的任适度的控制领域模型的抽象

170、细节是一件非常困难的任务。务。务。务。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计小结小结(4 4)体系结构抽象的语义能力不足)体系结构抽象的语义能力不足)体系结构抽象的语义能力不足)体系结构抽象的语义能力不足在这些方法中,常常用类似于工件的分组(又被称为在这些方法中,常常用类似于工件的分组(又被称为在这些方法中,常常用类似于工件的分组(又被称为在这些方法中,常常用类似于工件的分组(又被称为子系统、包,等等)来描述软件体系结构的构件。而这些构子系统、包,等等)来描述软件体系结构的构件。而这些构子系统、包,等等)来描述软件体系结构的构件。而这些构子系统、包,等

171、等)来描述软件体系结构的构件。而这些构造没有足够丰富的语义。同简单的分组机制相比,体系结构造没有足够丰富的语义。同简单的分组机制相比,体系结构造没有足够丰富的语义。同简单的分组机制相比,体系结构造没有足够丰富的语义。同简单的分组机制相比,体系结构抽象有着复杂的多的内涵。由于缺乏体系结构构件的语义,抽象有着复杂的多的内涵。由于缺乏体系结构构件的语义,抽象有着复杂的多的内涵。由于缺乏体系结构构件的语义,抽象有着复杂的多的内涵。由于缺乏体系结构构件的语义,因此,难以理解体系结构设想,也难以进行后继的分析和设因此,难以理解体系结构设想,也难以进行后继的分析和设因此,难以理解体系结构设想,也难以进行后继

172、的分析和设因此,难以理解体系结构设想,也难以进行后继的分析和设计模型转换。计模型转换。计模型转换。计模型转换。第四章第四章 软件体系结构描述软件体系结构描述4.8软件体系件体系结构的构的设计小结小结(5 5)对组合体系结构抽象的支持不足)对组合体系结构抽象的支持不足)对组合体系结构抽象的支持不足)对组合体系结构抽象的支持不足体系结构构件之间存在着交互,协作,并且和其他体体系结构构件之间存在着交互,协作,并且和其他体体系结构构件之间存在着交互,协作,并且和其他体体系结构构件之间存在着交互,协作,并且和其他体系结构构件相组合。但是,这里所评估的体系结构设计方法系结构构件相组合。但是,这里所评估的体

173、系结构设计方法系结构构件相组合。但是,这里所评估的体系结构设计方法系结构构件相组合。但是,这里所评估的体系结构设计方法对体系结构的组合并不提供明确的支持。对体系结构的组合并不提供明确的支持。对体系结构的组合并不提供明确的支持。对体系结构的组合并不提供明确的支持。第四章第四章 软件体系结构描述软件体系结构描述本本 章章 小小 结结软件体系结构设计的特点之一就是系统组织惯用模式软件体系结构设计的特点之一就是系统组织惯用模式软件体系结构设计的特点之一就是系统组织惯用模式软件体系结构设计的特点之一就是系统组织惯用模式的使用。随着系统设计人员对详细的组织原则和某类软件结的使用。随着系统设计人员对详细的组

174、织原则和某类软件结的使用。随着系统设计人员对详细的组织原则和某类软件结的使用。随着系统设计人员对详细的组织原则和某类软件结构价值的认识加深,这些惯用模式才被逐渐地总结起来。构价值的认识加深,这些惯用模式才被逐渐地总结起来。构价值的认识加深,这些惯用模式才被逐渐地总结起来。构价值的认识加深,这些惯用模式才被逐渐地总结起来。优秀的体系结构设计是决定一个软件系统取得长期成优秀的体系结构设计是决定一个软件系统取得长期成优秀的体系结构设计是决定一个软件系统取得长期成优秀的体系结构设计是决定一个软件系统取得长期成功的关键因素。然而,虽然有很多有用的体系结构范例,但功的关键因素。然而,虽然有很多有用的体系结

175、构范例,但功的关键因素。然而,虽然有很多有用的体系结构范例,但功的关键因素。然而,虽然有很多有用的体系结构范例,但是,目前对它们的描述并不统一,人们通常按照习惯的理解是,目前对它们的描述并不统一,人们通常按照习惯的理解是,目前对它们的描述并不统一,人们通常按照习惯的理解是,目前对它们的描述并不统一,人们通常按照习惯的理解方式对它们进行描述,比如使用方框和线条图来描述系统中方式对它们进行描述,比如使用方框和线条图来描述系统中方式对它们进行描述,比如使用方框和线条图来描述系统中方式对它们进行描述,比如使用方框和线条图来描述系统中的构件及连接件。这样造成很多问题。的构件及连接件。这样造成很多问题。的

176、构件及连接件。这样造成很多问题。的构件及连接件。这样造成很多问题。为此,为此,为此,为此,IEEEP1471IEEEP1471制定了标准,对体系结构的描述提制定了标准,对体系结构的描述提制定了标准,对体系结构的描述提制定了标准,对体系结构的描述提出规范化要求。出规范化要求。出规范化要求。出规范化要求。第四章第四章 软件体系结构描述软件体系结构描述本本 章章 小小 结结本章主要介绍了一些基本的体系结构描述方法,如:本章主要介绍了一些基本的体系结构描述方法,如:本章主要介绍了一些基本的体系结构描述方法,如:本章主要介绍了一些基本的体系结构描述方法,如:体系结构描述语言(体系结构描述语言(体系结构描

177、述语言(体系结构描述语言(ADLADL)、具体的一些)、具体的一些)、具体的一些)、具体的一些ADLADL(以(以(以(以C2C2为例)、为例)、为例)、为例)、UMLUML,以及,以及,以及,以及XMLXML等等。等等。等等。等等。最后,简单介绍了软件体系结构设计的一些通用标准,最后,简单介绍了软件体系结构设计的一些通用标准,最后,简单介绍了软件体系结构设计的一些通用标准,最后,简单介绍了软件体系结构设计的一些通用标准,并在提出软件体系结构设计的元模型基础上,分析了几种常并在提出软件体系结构设计的元模型基础上,分析了几种常并在提出软件体系结构设计的元模型基础上,分析了几种常并在提出软件体系结

178、构设计的元模型基础上,分析了几种常用的体系结构设计方法,并指明了他们的缺点。用的体系结构设计方法,并指明了他们的缺点。用的体系结构设计方法,并指明了他们的缺点。用的体系结构设计方法,并指明了他们的缺点。本章结构本章结构4.1 4.1 软件体系结构描述方法软件体系结构描述方法4.2 4.2 软件体系结构描述框架标准软件体系结构描述框架标准4.3 4.3 体系结构描述语言体系结构描述语言4.4 4.4 典型的软件体系结构描述语言典型的软件体系结构描述语言(C2C2)4.5 4.5 软件体系结构与软件体系结构与UMLUML4.6 4.6 可扩展标记语言可扩展标记语言4.7 4.7 基于基于XMLXML的软件体系结构描述语言的软件体系结构描述语言4.8 4.8 软件体系结构的设计软件体系结构的设计第四章第四章 软件体系结构描述软件体系结构描述本章作业与思考题本章作业与思考题1 1、体系结构描述有哪些方法?有哪些标准和规范?、体系结构描述有哪些方法?有哪些标准和规范?2 2、体系结构描述语言与程序设计语言有什么区别?、体系结构描述语言与程序设计语言有什么区别?3 3、选择一个规模适中的系统,使用、选择一个规模适中的系统,使用UMLUML为其建模。为其建模。 谢谢 谢!谢!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号