




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)面向cbsd的软件体系结构模型的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 基于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t ,简 称c b s d ) 是在一定构件模型的支持下,复用构件库中的一个或多个软件 构件,通过组合构件来构造应用软件系统的开发过程。但是,目前c b s d 仅仅提供了在实现层次上支持构件交互的基础机制,缺乏一套系统的 方法来指导整个开发过程。虽然也有一些开发过程可以用于指导c b s d , 但是提出这些过程模型的出发点并非针对c b s d ,因此不能全面地展现 c b s d 的本质。近年来,以构件为基本单元的软件体系结构( s o f t w a r e a r c h i t e c t u r e ) 研究取得了较大的发展。作为基于构件的软件开发过程 的系统蓝图,软件体系结构扮演了非常重要的角色。软件体系结构主要 着眼于软件系统的全局组织形式,在更高层次上把握系统各组件之间的 内在联系,并从全局的、整体的角度去理解和分析整个系统的行为和特 征。 。 本文阐述了软件体系结构的基本概念,总结了软件体系结构的描述 方法,分析了基于构件的软件开发过程,介绍了u m l 的建模机制,讨论 了u m l 对软件体系结构的支持。基于以上思想,本文提出了一一种面向 c b s d 的软件体系结构六视图模型,为系统的设计与实现提供了参考模型 和技术指导。并采用u m l 描述了该模型,最后以图书馆管理系统为例, 说明在采用c b s d 方法开发该系统时,如何使用面向c b s d 的软件体系结 构模型来描述该系统的体系结构,从而验证了面向c b s d 的软件体系结 构模型的可行性。 关键字:基于构件的软件开发、软件体系结构、u m l 、模型、视图 a b s t r a c t c o m p o n e n t - b a s e d s o f t w a r ed e v e l o p m e n t ( c b s d ) isa d e v e l o p m e n tp r o c e s s ,w i t ht h es u p p o r to fc o m p o n e n tm o d e lt h a t r e u s e so n eo rm o r es o f t w a r ec o m p o n e n t so fc o m p o n e n t1i b r a r y ,a n d c o n s t r u c t sa p p l y i n gs o f t w a r es y s t e mb y m e a n so fa s s e m b li n g c o m p o n e n t s b u t ,c u r r e n tc b s dm e r e l yp r o v i d e sb a s i cm e c h a n i s mo f s u p p o r t i n g t h ei n t e r a c t i o nb e t w e e nc o m p o n e n t s i nl e v e lo f i m p l e m e n t ,a n d l a c k ss y s t e m a t i ca p p r o a c ht og u i d et h ew h o l e d e v e l o p m e n tp r o c e s s a l t h o u g hs o m ed e v e l o p m e n ta p p r o a c h e s c a n g u i d ec b s d ,t h eo r i g i n a l i n t e n ti o no fp u t t i n gf o r w a r dp r o c e s s m o d e l sd o e s n ta i ma tc b s d ,s oe s s e n c eo fc b s dc a n tb ef u l l y s h o w e d r e c e n t l y ,t h er e s e a r c ho ns o f t w a r ea r c h i t e c t u r e ( s a ) h a s m a d es i g n i f i c a n tp r o g r e s s a st h eb l u e p r i n to fc o m p o n e n t b a s e d s o f t w a r ed e v e l o p m e n tp r o c e s s ,s ap l a y si m p o r t a n tr o l e s a i s f i x i n ga t t e n t i o no np r i m a r il yo r g a n i z e df o r mo fs o f t w a r es y s t e m i nt h eo v e r a l ls i t u a t i o n ,i nt h eh i g h e rl e v e lh o l d st h ei n h e r e n t c o n t a c to fs y s t e mc o m p o n e n ts ,c o m p r e h e n d s a n da n a ly se st h e b e h a v i o ra n dc h a r a c t e r i s t i co fw h o l es y s t e ma t a na n g l eo ft h e w h o e t h ep a p e re l a b o r a t e sb a s i cc o n c e p t i o n so fs a ,s u m m a r i z e s s o f t w a r e a r c h i t e c t u r e d e s c r i p t i o n m e t h o d s ,a n a l y s e s c o m p o n e n t - b a s e d s o f t w a r e d e v e l o p m e n t p r o c e s s , i n t r o d u c e s m o d e l i n gm e c h a n i s mo fu m l ,a n dd i s c u s s e st h es u p p o r to fs o f t w a r e a r c h i t e c t u r ef r o mu m l b a s e do na b o v et h i n k i n gt h ep a p e rp u t s f o r w a r ds i xv i e w sm o d e lo ft h es o f t w a r ea r c h i t e c t u r eb a s e do nc b s d , w h i c hp r o v i d e sr e f e r e n c em o d e la n dt e c h n i q u eg u i d ef o rt h ed e s i g n a n dr e a l i z a t i o no ft h es y s t e m ,a n du s e su m lt od e s c r i b et h em o d e i f i n a l l yt a k i n gt h el i b r a r ym a n a g e m e n ts y s t e ma sa ne x a m p l e ,t h e p a p e ri l l u s t r a t e sh o w s o f t w a r ea r c h i t e c t u r em o d e li su s e dt o d e s c r i b es o f t w a r ea r c h it e c t u r ew h e nt h es y s t e mi sd e v e l o p e db y i i c b s dm e t h o d t h e r e b yf e a s i b i l i t yo fs o f t w a r ea r c h i t e c t u r em o d e c b s d - o r i e n t e di sv a l i d a t e d k e yw o r d s :c b s d ,s a ,u m l ,m o d e l ,v i e w 一 印 、 面向c b s d 的软件体系结构模型的研究 引言 面对日益复杂的计算机软件系统,人们认识到,要真正实现软件的 工业化生产,提高软件的生产效率和质量,软件复用是一条切实可行的 途径。基于构件的软件复用和基于构件的软件开发被认为是提高软件开 发效率和质量的有效途径,并在分布式系统中得到了广泛的应用。基于 构件的软件开发( c b s d ) 将软件开发的重点由原来的软件编程转移为利 用已有构件组合集成新的软件系统。基于构件的软件开发方法为软件开 发开辟了新的途径,它是解决软件复用的一种很好的方法。 但是,目前c b s d 仅仅提供了在实现层次上支持构件交互的基础机 制,缺乏一套系统的方法来指导整个开发过程。虽然也存在一些开发过 程,如统一开发过程( u n i f i e dp f o c e s s ) 4 1 i 可以用于指导c b s d ,但是,、提 出这些过程模型的出发点并非针对c b s d ,因此不能全面地展现c b s d 的 本质”。近年来,以构件为基本单元的软件体系结构研究取得了较大的 发展。人们认识到了软件体系结构在软件设计中的重要性和软件体系结 构在系统开发过程中发挥的重要指导作用。 软件体系结构着眼于软件系统的全局组织形式。在更高层次上把握 系统各组件之间的内在联系,将软件开发的焦点从成百上千的代码行上 转移到大粒度的体系结构元素及其交互的设计上,并从全局和整体的角 度去理解和分析整个系统的行为特征,有助于解决软件系统日益增加的 规模和复杂度问题,促进构件重用、提高软件生产率,并为软件开发过 程提供参考模型和技术指导。 软件体系结构已发展为软件工程的一个重要领域,而软件体系结构 的描述方法及其工具支持是研究软件体系结构的关键技术。在处理如何 描述软件系统的体系结构问题上,常用的方法有形式化的体系结构描述 方法、k r u c h t e n 的“4 + i ”体系结构模型、使用a d l 的体系结构描述方 法、使用u m l 的体系结构描述方法以及i e e e 的软件体系结构描述规范 等。这些方法各有自己的长处,但也存在不足。 硕士学位论文 本文立足于以上思想,并参考了软件体系结构描述框架标准,提出 了专门针对基于构件的软件开发过程的软件体系结构六视图模型,基于 u m l 对软件体系结构的支持,用u m l 对该模型的六个视图进行了描述。 本文的组织主要包括以下几部分: 第一章阐述了软件体系结构的基本概念,包括软件体系结构的定 义、构造元素等;探讨了软件体系结构描述方法,总结了各种方法的特 点。 第二章介绍了基于构件的软件开发技术、包括基本思想、基本活动 等,并着重介绍了基于构件的软件开发过程。 第三章介绍了u m l 的发展情况和它的内容、特点以及建模的意义, 并讨论了u m l 的建模机制,包括静态建模机制、动态建模机制和扩展机 制,最后介绍了一种u m l 用例图的形式化描述方法。 第四章提出了专门针对基于构件的软件开发( c b s d ) 的软件体系结 构六视图模型,阐述了该模型中六视图的内容、含义;基于u m l 对软件 体系结构的支持,采用u m l 描述了该软件体系结构六视图模型,并以图 书馆管理系统为例,说明在采用c b s d 开发该系统时,如何使用面向c b s d 的软件体系结构模型来描述该系统的体系结构,从而验证面向c b s d 的 软件体系结构模型的可行性。 最后总结全文的研究内容,并展望了今后的研究工作。 面向c b s d 的软件体系结构模型的研究 第一章软件体系结构 随着计算机技术的发展和应用的不断深入,软件系统的规模和复杂 度日益增加,在软件设计过程中人们所面临的问题不仅仅是考虑软件系 统的功能问题,而是面临要解决更难处理的可修改性、性能、可靠性等 非功能性问题。特别是从8 0 年代起,对软件系统适应变更的要求越来 越高,因此系统整体的结构设计已经超过了算法和数据结构,成为系统 开发关注的主要问题。为了更好地进行系统结构的设计,研究人员在9 0 年代初期提出了新的解决方法:软件体系结构,试图用类似建筑学的观 点去构造软件,以更精确的方式刻画软件的结构。 软件体系结构作为- f 新的学科,其研究范围包括软件系统整体的 组织和控制结构、通讯、同步和数据存储的协议、系统单元的功能分配、 物理分布、系统单元的集成、系统性能及在设计方案间进行选择等问题。 体系结构作为系统的骨架,是软件开发过程的重要产品和系统性重用的 主要资产,软件开发特别是基于重用的软件开发,必须以体系结构为中 心,并且要从多个视角而不仅仅是应用程序结构来研究体系结构。软件 体系结构作为软件开发中的设计思想和指导方针,对软件开发起着至关 重要的作用。对于大型软件系统而言,体系结构的设计已经成为系统成 功的关键因素。作为软件系统的自然属性,体系结构存在于每个软件 系统之中。 1 1软件体系结构的定义 软件体系结构是随着描述大型、复杂系统结构的需要以及开发人员 和计算机科学家在大型软件系统的研究过程中对软件系统理解的逐步 深入而发展起来的。对于其定义,目前学术界尚未形成统一意见,不同 专家学者从不同角度和不同侧面对软件体系结构进行了刻画“。1 。在此 本文列举靥。) :l 种具有代表性的定义,如表卜l 所示。 硕士学位论文 表卜1 软件体系结构的定义 提出者软件体系结构定义内容 s h a w f 结构模型,框架模型,动态模型,过程模型) f 3 】 ,g a r l a n & s h a w 构件,连接件,约束) 川 b a s s 软件构件,构件的外部可视属性,构件之间的关系) 【2 j p e r r y & w o l f 元素,形式,准则户 s o n i & n o r d & h o f m e i _ s t e r ( 概念视图,模块视图,代码视图,运行视图) 嘲 b o e l u n 构件,连接件,约束,不同人员的需求,准则 i e e e6 1 0 1 2 构件,连接件,环境,原理 【8 l 通俗地说,一个软件体系结构是由一组构件、连接件和它们之间的。 约束组成的,同时还包括系统需求和结构元素之间的对应关系。这样就 可以把软件体系结构写成: 体系结构( a r c h i t e o t u r e ) n3 = 构件( c o m p o n e n t s ) + 连接件 ( c o n n e c t o r s ) + 约束( c o n s t r a i n t s ) 其中软件体系结构,又常被称为构架,指可预制和可重构的软件框 架结构。构件是可预制和可重用的软件部件,是组成体系结构的基本计 算单元或数据存贮单元;连接件也是可预制和可重用的软件部件,是构 件之间的连接单元;构件和连接件之间的关系用约束来描述。 1 2 软件体系结构的组成元素 构件、连接件和约束是软件体系结构最基本的组成元素,此外软件 体系结构还包括端口和角色两种元素3 。 1 2 1 构件( o o m p o n e n t ) 1 2 1 1 构件的基本概念 构件是体系结构的基本概念之一。一般认为,构件是指具有一定功 能、可明确辨识的软件单位,并且具备以下特点:语义完整、语法正确、 有可重用价值。这就意味着,在结构上,构件是语义描述、通信接i s l 和 面向c b s d 的软件体系结构模型的研究 实现代码的复合体,是个计算和数据存储单元。也就是说,构件是计 算与状态存在的场所。在体系结构中,构件可以有不同的粒度。一个构 件可以小到只有一个过程,也可以大到包含一个应用程序。它可以包括 函数、对象、二迸制对象、类库、数据包等。 1 ,2 1 2 构件的特性 构件之间是相对独立的。构件隐藏其具体实现,只通过接口提供服 务。如果不用指定的接口与之通信,则外界不会对它的运行造成任何影 响。因此,构件可以作为独立单元被用于不同的体系结构、不同的软件 系统中,实现构件的重用。因此构件的定制和规范化十分重要。构件的 使用与它的开发也是独立的。 构件内部包含了多种属性,如端口、类型、语义、约柬、演化、非 功能属性等。端口是构件与外部世界的一组交互的接i ;3 。构件端口说明 了构件提供的那些服务( 消息、操作、变量) 。它定义了构件能够提交 的计算委托及其用途上的约束。构件类型是实现构件重用的手段。构件 类型保证了构件自身能够在体系结构描述中多次实例化。 在构件的实现上,有一点需要明确:软件体系结构中讨论的构件不 同于具体开发技术中的组件。前者是可构造系统的成员,是一种逻辑上 的概念;而后这是一种实现技术。一个构件可以有多种实现方法,如用 c o m 实现或用j a v ab e a n 实现,甚至可以用高级语言实现。在下文中如 无特殊定义声明,构件指体系结构逻辑上的构件,组件是指具体的实现 时的组件。 1 2 2 连接件( o o n n e o t o r ) 1 2 2 1 连接件的基本概念 连接件是用来建立构件问的交互以及支配这些交互规则的体系结 构构造模块。构件之问的交互包括消息或信号量的传递,功能或方法调 用,数据的传递和转换,构件之间的同步关系、依赖关系等。在摄简单 舅! r “拼o 的情况下,构件之间可以直接完成交互,这时体系结构中的连接件就退 硕士学位论文 化为直接连接。在更复杂的情况下,构件间交互的处理和维持都需要连 接件来实现。连接件是构件的粘合剂,是构件交互的实现。连接件把不 同的构件连接起来,构成体系结构的一部分。 1 2 2 2 连接件的特性 连接件的接口由它与所连接构件之间的一组交互点构成,这些交互 点称为角色( r o l e ) 。角色代表了参与连接的构件的作用和地位,并体 现了连接所具有的方向性。因此,角色有主动和被动、请求和响应之分。 连接件的主要特性有可扩展性、互操作性、动态连接性和请求响应 特性。连接件的可扩展性是连接件允许动态改变被关联构件的集合和交 互关系的性质。互操作性指的是被连接的构件通过连接件对其他构件进 行直接或间接操作的能力。动态连接性即对连接的动态约束,指连接件 对于不同的所连接构件实施不同的动态处理方法的能力。请求响应特性 包括响应的并发性、时序性。在并发或并发系统中,多个构件有可能并 行或并发地提出交互请求,这就要求连接件能够正确协调这些交互请求 之间的逻辑关系和时序关系。 1 2 3约束( 配置) 体系结构约束描述了体系结构配置或拓扑要求,确定了体系结构的 构件与连接件的连接关系。体系结构约束提供限制来确定构件是否正确 连接、接口是否匹配、连接件构成的通信是否正确,并说明其组合语义。 体系结构适合于描述大的、生命周期长的系统。利用配置来支持系 统的变化,使不同技术人员都能理解并熟悉系统。为了使开发者与其有 关人员之间容易交流,就需要用简单的、可理解的语法来配置拓扑信息。 理想的情况是从配置说明中澄清系统结构,即不需要研究构件与连接 件,就能使构建系统的所有参与者理解系统。 1 3软件体系结构的设计优势 。: 面向c b s d 的软侔体系结构模型的研究 软件体系结构设计优势至少体现在以下四个部分“: ( 1 ) 分析能力 组合适的分析工具使系统设计者能够在开发周期的早些时候解 决相似问题并估计全局属性以及系统能力,分析能力使设计者通过一种 有效方式确定早期设计的领域系统是否符合需求。 ( 2 ) 系统架构的可视性 个明确定义并付诸于文档的体系结构显示了整个系统将会如何 符合指导系统设计者做出底层设计意图的蓝图。开发者有一个很清晰的 关于系统的每一部分如何适应整个系统的理解,使得他们可以确信每一 个组件将平滑地与系统的其他部分集成,并使用该系统指导他们做出实 现性的决定。 ( 3 ) 严格规范 产生一个明确的体系结构设计需要体系结构创建者考虑系统如何 作为一个整体并相互作用,该过程通常能够揭示出一些未能充分考虑、 模棱两可的需求,以及可能被忽略的关键设计要素。 ( 4 ) 维护概念完整性 系统体系结构作为整体意识,指导维护人员做出合适的扩充和修正。 1 4 软件体系结构的研究现状 当前,软件体系结构尚处于发展期,其概念还相当模糊。但软件体 系结构作为软件工程领域中的一个组成部分,已经取得了长足的发展, 受到大多数软件系统设计和研究人员的重视。软件体系结构目前较活跃 的研究大致集中在以下几个方面。 ( 1 ) 软件体系结构描述方法的研究。研究软件体系结构的首要问 题是如何描述软件体系结构,常见的体系结构描述方法包括形式化的体 系结构描述方法、k r u c h t e n 的“4 + i ”体系结构模型“、使用d n l 的体 系结构描述方法以及i e e e 的软件体系结构描述规范等。每种揣述方法 都各有特点,但是对在实践中应该使用什么方法来描述软件体系结构却 没有统一的标准。 硕士学位论文 ( 2 ) 提供新的软件体系结构描述语言。体系结构描述语言 ( a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 提供了具体的语法与刻画体 系结构的概念框架3 ,它使得系统开发者能够很好地描述他们设计的体 系结构,、以便与人交流,能够用提供的工具对许多实例进行分析。这种 描述语言的目的就是提供一种规范化的体系结构描述,从而使得体系结 构的自动化分析变得可能。a d l s 寻求增加软件体系结构设计的理解性 和重用性。比较有影响力的a d l s 有c 2 、u n i c o n 、a c m e 、r a p i d e 、w r i g h t 世 寸o ( 3 ) 提供软件体系结构的形式化基础。对体系结构设计的推理形 式化表示使得体系结构级的设计更好地被理解、被实现。它的目的是对 体系结构设计人员在实践过程中总结出来的一些设计经验和方法加以 总结、概括,从而形成一个形式化的描述,形成一定的理论基础,以替 代当前的不精确的研究n 引。 ( 4 ) 建立评价软件体系结构的方法。k a z i l l 芒t l l 等人在2 0 0 0 年提出 a t a m 方法。它不但能够揭示体系结构如何满足特定的质量需求( 例如性 能和可修改性) 、而且还提供了分析这些质量需求之间交互作用的方法。 使用a t a m 方法评价一个软件体系结构的目的是理解体系结构设计满 足系统质量需求的结果。 ( 5 ) 提供特定领域的体系结构框架。最近,人们日益关注于在特 定领域为产品提供可重用框架。这些开发基于这样的想法:可以提取相 关系统中的共同方面,以便可以通过低成本把这些共同的设计实例化来 构筑新系统n 引。常见的例子有:编译器的标准分解、标准化的通信协议、 第四代语言和用户界面工具和框架。 1 5 体系结构描述方法 研究软件体系结构的首要问题是如何描述软件体系结构。目前常见 的体系结构描述方法,包括形式化的体系结构描述方法、k r u c h t e n 的 “4 + i ”体系结构模型n4 】、使用体系结构描述语言( a d l ) 的体系结构描述 面向c b s d 的软件体系结构模型的研究 方法、使用u m l “ “- ”3 的体系结构描述方法以及i e e e 的软件体系结构描 述规范等。 1 5 1 形式化描述方法 形式化方法是指具有坚实数学基础的方法,它是数学上的综合、 分析技术的应用,用于开发计算机控制的系统,经常有推理工具的支持, 它可提供一个用于模型设计和分析的一个严格而有效的途径。形式化 方法的目标是希望能够使系统具有较高的可信度和正确性,并能使系统 具有良好的结构,使其易维护,关键是能较好地满足用户需求。 按照所采用的技术,可以把形式化的方法大致分为5 类:( 1 ) 基于 模型的方法:给系统( 程序) 状态和状态变换操作的显式但也是抽象的 定义,但对于并发没有显式的表示,如z 和v d m ;( 2 ) 代数的方法,如 o b j ,c l e a r :( 3 ) 过程代数方法,如c s p 、c c s ;( 4 ) 基于逻辑的方法, 如时态逻辑;( 5 ) 基于网络的方法,如p e t r i 网、谓词变换网。还可以 按照研究领域的不同,把形式化方法分为形式规约和形式验证。 但是形式化方法也有其自身的局限性,目前具有较强数学特点的规 范语言的研究和使用,仍然主要局限于大学、科研机构以及安全性要求 极高的工业部门。一般认为,目前形式化方法存在的主要问题有:( 1 ) 实际规范和实际代码间的差异仍然很大;( 2 ) 形式化方法与软件开发过 程很难平滑的结合起来;( 3 ) 尚没有一种形式化方法能对软件工程生命 周期的各个阶段提供全面的支持。 1 5 2 k r u c h t e n 的“4 + i ”体系结构模型 k r u c h t e n 的“4 + i ”体系结构模型是一个由r a t i o n a l 软件公司建立 的设计方法,该模型揭示了软件体系结构与软件开发各个阶段的关系尤 其是与需求分析阶段的密切关系 1 7 o 它从5 个不同的视图包括逻辑视图、 进程视图、物理视图、开发视图和场景视图来描述软件体系结构,如图 卜1 所示。模型中每一个视图只关心系统的一个侧面,5 个视图结合在 硕士学位论文 一起才能反映系统的软件体系结构的全部。 最终用户 程序员 功能 软件管理 系统工程师 拓扑 通信 “4 + i ”模型视图 但是,该模型在以下几个方面存在不足:( i ) “4 + i ”模型视图的焦 点集中在描述面向对象的系统上,它缺乏对基于构件的软件开发方法的 支持,不能反映基于构件的软件开发方法中如构件、功能、开发者之间 的关联等特征;( 2 ) 在“4 + 1 ”模型视图中没有体现出系统的数据;( 3 ) 在体系结构模型如何实现的问题上,对构造这些视图以及处理这些视图 之间的关系等方面缺乏一定的指导。( 4 ) 模型超载。体现在一方面把 了解低级模型的任务交给了让受方。“,另方面过早的让设计人员进入 实现阶段。 1 5 3 使用体系结构描述语言( a d l ) 的体系结构描述方法 描述软件体系结构是研究软件体系结构的前提,为了支持体系结构 的开发,形式化的建模符号系统和可应用于体系结构规格说明的开发与 分析工具是必需的。体系结构描述语言( a d l ,a r c h i t e c t u r ed e s c r i p t i o n l a n g u a g e ) 以及与之相对应的工具集很好的解决了这一问题。a d l 是软 件体系结构研究的核心问题之。它不但是形式化描述软件体系结构的 基本工具,而且也是对软件体系结构进行求精、验证、演化和分析的前 提和基础。当前已经开发和使用的典型体系结构语言有:a c m e 、a e s o p 、 c 2 、d a r w i n 、r a p i d e 、s a d l 、u nj c o n 、w r i g h t 等“8 ”2 ”。 a d l 是用语言学方法对体系结构进行形式化描述得到的结果,解决 了非形式化描述的不足,但是现有的各种体系结构描述语言存在着以下 l 图 陛 者 展成能扩集性可 面向c b s d 的软件体系结构模型的研究 问题:第一,体系结构描述语言本身并不是很完善,无法完全描述和展 现一个体系结构的全部特征;第二,体系结构描述语言种类繁多,每种 语言各自关注体系结构的某个方面,且各有千秋,致使应用人员在选择 a d l 时无所适从;第三,掌握和理解体系结构描述语言相对困难;第四, 忽视需求到软件结构设计元素的映射;第五,很多体系结构描述语言缺 乏相应的工具支持。 1 ,5 4 使用u m l 的体系结构描述方法 嘶l 是一种语义丰富、通用、可视化的建模语言和事实上的国际工 业标准,易于理解和交流。u m l 提供的丰富的视图从多个角度描述系统 的不同侧面,可以有效运用于软件开发的分析、设计和实现的全过程。 但是,作为一种通用语言,u i l l 对系统体系结构的可构造性建模能力较 弱,缺乏形式化语义,对体系结构的描述只能到达非形式化的层次。因 此,u m l 是否可作为一剃,体系结构描述语言的问题还在探讨中“”“1 。 常用的方法有:( 1 ) b o o c h 从u m l 的角度给出了一种由逻辑视图、进程 视图、实现视图和部署视图,再加上一个用例视图构成的体系结构描述 模型。;( 2 ) h o f m e i s t e r 等人讨论了一种使用u i i f l 的构造类型类 ( s t e r e o t y p e dc l a s s e s ) 、包、构件、结合关联和依赖,对软件体系结 构的概念、模块、执行和代码四种视图模型进行描述的方法b 1 ;( 3 ) m e d i v i d o v i c 则总结了用u m l 描述软件体系结构的三种途径怛:不改变 u m l 用法而直接对体系结构建模;利用u m l 支持的扩充机制扩展u m l 的 元模型实现对体系结构建模概念的支持;对u m l 进行扩充,增加体系结 构建模元素。 1 5 5i e e e 的软件体系结构描述规范 随着软件体系结构研究的不断深入和发展,以及基于体系结构描述 的概念与实践的不统一,i e e e 于1 9 9 5 年成立了体系结构工作组( a w g ) , 起草了体系结构描述框架标准,即i e e es m 1 4 7 1 2 0 ( i e e e 硕士学位论文 r e c o m m e n d e dp r a c t i c ef o ra r c h i t e c t u r e d e s c r i p t i o n o f s o f t w a r e - i n t e n s i v es y s t e m s ) 心钊。该标准为准确地描述软件体系结构 提供了统一的规范。该标准指出:体系结构的描述( a d ,a r c h i t e c t u r e d e s c r i p t i o n ) 不同于体系结构,体系结构是一个系统概念,而体系结 构描述用于把体系结构文档化的产品集合,是一个具体的人为产物。 一个软件应用的体系结构的规格说明称为体系结构描述。在 i e e e l 4 7 1 的术语中,系统具有体系结构,体系结构描述是一个表示模型 的集合,这个集合可分解为多个视图,而视图是指从特定视点出发对系 统体系结构的表达。需要指出的是,该标准中,并没有常用的功能体系 结构、物理体系结构、技术体系结构等术语。可以考虑用功能视图、物 理视图、技术视图,来取代这些非标准术语。 i e e e l 4 7 1 规定了与标准相符时体系结构描述必须包含的最少信息 量。在严格采用这个标准或别的软件开发标准前,应该考虑项目需求和 体系结构描述在项目中所起的作用。建立体系结构描述的最初活动如 下:( 1 ) 确定体系结构描述,包括版本和概述信息。( 2 ) 确定风险承担 者瞳别、他们的角色、他们所关心的体系结构问题。( 3 ) 选择视点。( 4 ) 确定视点。( 5 ) 确定视图。( 6 ) 记录视图中已知的不一致。( 7 ) 建立对 体系结构基本原理的阐述。 体系结构设计是一个连续和迭代的活动,因此,在一个系统的生命 周期中这些基本步骤要进行不止一次。确定视图是多数体系结构设计的 核心,是进行设计活动的步骤。 1 6 本章小结 本章首先阐述了软件体系结构的基本概念,然后分析了体系结构的 研究现状,并探讨了软件体系结构描述方法及各种方法的特点。 面向c b s d 的软件体系结构模型的研究 第二章基于构件的软件开发 2 1 基于构件的软件开发技术( o b s e o b s d ) 概述 基于构件的软件工程( c o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g , 简称c b s e ) 或基于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r e d e v e l o p m e n t ,简称c b s d ) 是一种软件开发新范型,它是在一定构件模 型的支持下,复用构件库中的一个或多个软件构件,通过组合构件高效 率、高质量地构造应用软件系统的过程瞳“。由于以分布式对象为基础的 构件实现技术日趋成熟,c b s d 已经成为现今软件复用实践的研究热点, 被认为是最具潜力的软件工程发展方向之一。 c b s d 遵循“购买而不创建( b u y ,d o n tb u i l d ) ”的开发哲学。“, 让人们从“一切从头开始”的程序编制转向软件组装。基于构件的软件 开发任务包括创建、检索和评价、适配、组装、测试和验证、配置和部 署、维护和演进,以及遗产系统的再工程等主要活动,它们与传统的生 命周期中的方法不尽相同。首先,c b s d 采甩以构件库为中心的开发模式, 构件检索和评价是c b s d 的一项关键任务,这里我们理解的构件库不仅 仅是个独立的数据库,而是广泛的、一切可获得的构件资源,尤其是 通过互联网发布的软件构件;其次,构件形成是一种在软件体系结构支 持下的组装过程,构件的匹配和一致性验证也是c b s d 的关键任务;再 次,c b s d 过程中需要同一些技术标准化接轨,相同的构件可能由多个软 件供应商生产,被多个用户使用,所以构件接口、构件基础设施必须标 准化;最后,c b s d 需要配置管理即专门处理构件的集成、配置和发布的 有关事宜,于是构件的配置、适配和部署都是c b s d 的关键任务。 构件技术与面向对象技术紧密相关。构件和对象都是对现实世界的 抽象描述,通过接口封装了可复用的代码实现,不同的是,首先在复用 策略上,对象是通过继承实现复用,而构件是通过合成实现复用:其次 在概念层面上,对象描述客观世界实体,构件提供客观i ! 界服务“”,最 后在技术手段上,构件通过对象技术而实现,对象按觏定经过适当的接 硕士学位论文 口包装之后成为构件,一个构件通常是多个对象的集合体。 目前,构件技术已经成为计算环境的基本组成之一,众多中间件产 品和开发工具提供了对不同构件模型的实现支持,特别在分布式、企业 级应用软件系统中,无不把软件的构件化作为解决维护、扩展和升级的 一个途径。 2 2 1o b s e o b s d 的目标 c b s e c b s d 的目标包括管理目标和技术目标乜8 0 l 。 1 、c b s e c b s d 的管理目标如下: ( 1 ) 降低费用:这是所有软件开发的共同目标,c b s e c b s d 把成本 效率提高到一个新境界; ( 2 ) 方便装配:c b s e c b s d 的最大特征是一系列构件的装配过程; ( 3 ) 提高复用性:全面考虑构件在多个应用系统中的复用潜力; ( 4 ) 提高可定制性和适应性:开发者可以按需配置构件; ( 5 ) 提高可维护性:在系统中可以方便地添加、删除和修改构件。 2 、c b s e c b s d 的技术目标如下: ( 1 )降低耦合,耦合指构件之间的相关性; 一( 2 ) 提高内聚,内聚指构件内元素间的相关性; ( 3 ) 控制粒度,粒度系统中构件对应问题域的规模,包括构件数量 和大小两个方面。 2 2 2 c b s d 的优点 基于构件的软件开发方法是建立在过去长期的结构化方法中的模 块系统以及近十年来的面向对象系统的基础上的。采用基于构件的软件 一开发方法进行软件开发,可以提高软件的可复用性,使软件开发摆脱以 往小作坊式的生产方式,按照大规模的工业化方式进行。c b s d 具有如下 优点: ( 1 )可以以构件( 模块) 为单位独立地进行设计和实现,使大规 模的软件生产成为可能; ( 2 ) 罐随了应用开发的周期,降低了开发费用,提高了生产率; 面向c s s d 的软件体系结构模型的研究 ( 3 ) c b s d 技术以构件模型和构件构架为系统开发者之间的协议标 准,极大地提高了应用系统各部分的开发独立性和系统开发的并行性; ( 4 ) 更易配置最优的解决方案,构件市场上丰富的构件使得对功 能的支持更具可选性,构件提供者的竞争也会使价格变得更低; ( 5 ) 减少了出错风险,因为用于组装的各构件都已各自通过了测 试和验证,同时基于构件的系统开发更有利于渐进的增量式开发测试。 这些都保证了软件开发的质量; ( 6 ) 提高了软件系统的灵活性,缩短了软件系统的分发时间,减 少了软件系统的开发和维护费用; 2 ,13o b s d 的基本思想 c b s d 是软件工程技术和面向对象技术发展到一定程度的产物,是 2 0 世纪9 0 年代兴起的一种新的软件开发方法。在c b s d 的概念中包含两 个基本思想: 首先,如果应用软件由已存在的构件进行装配、组合而成,则开发 的效率会大大提高:其次,我们能够有渠道获得大量的构件,不论是通 用的构件还是某一领域专用的构件。 可见,c b s d 提出的初衷是为了提高软件的复用性,从而满足软件应 用开发过程中不断增长的对于低成本、短周期、高质量、个性化的需求, 使得动态的、竞争激烈的、全球化的软件应用开发进入现代化工业生产。 2 2c b s d 的基本活动 c b s d 与传统的软件开发方法有着明显的不同,其基本活动包括构件 的描述、构件的获取、构件的存取、构件的检索、构件的组装以及测试 和运行等过程瞳。 2 2 1 构件的描述 对于个可重用的构件,应该是完整的,一个构件重点解狭一个问 题。根据应用领域的特征及相似性,进行领域分析,并预测可重用性,对 具有重要价值的构件要进行一般化链鲤,以便能适应新的应用领域。 硕士学位论文 构件的描述,已经出现了多种构件模型,其中3 c 模型是学术界普遍 认同的一个具有指导性作用的构件模型。 对构件的描述可用系统化和标准化的用语表示,也可用自然语言进 行描述。对构件的描述必须清晰,无二义性,且容易理解。构件的描述一 般由两部分组成: ( 1 ) 构件的类型信息说明,包括构件的功能类型、目标对象、源对 象、中间对象、系统类型、活动类型、应用类型等。 ( 2 ) 构件的实现说明及配置特征,包括接口信息及使用方法说明、 核心算法说明、实现语言、开发方法、运行环境、构件版本号、制作时 间、关联构件、参考构件等。 2 2 2 构件的获取 c b s d 技术要求具备大量可供选择的可重用构件,这些构件都是在充 分进行领域分析的基础上,构造并生成的基本构件。它们必须满足下列 条件:构件的设计应具有较大的抽象程度;构件应易于调整;易于组装; 必须具有可检索性;构件必须经过了充分的测试。构件的获取可以商业 采购,也可以利用项目承包商和合作伙伴开发,或者在领域工程和再工 程的基础上从已有的应用系统中发掘和提炼以及组装可重用构件,或者 针对新需求重新自主开发新构件。对于外来构件要考虑以后的维护与升 级。 构件的接口是在获取构件时必须认真考虑的问题。接口是一组函数 和变量的集合,程序的两个不同部分可通过它进行通信。为实现程序框 架的重用,有两点必须注意。其一,构件只是接口的实现,所有应用程 序对构件的调用都必须通过接口来完成。应用程序并不直接同构件打交 道,与构件直接联系的只能是接口;其二,接口的不变性。因为只有这 样的接口才可能被一致使用。构件的变化是被限制在自身范围内的,它 并不涉及到具体的应用程序。 2 2 3 构件的存储 r :。曙了在软件开发过程中能重用现有的软件构件,必须要经过积累, 面向c b s d 的软件体系结构模型的研究 组织成构件库。按照领域特征以及分类方法对构件进行分类并置于构件 库的适当位置。目前使用的方法是将构件分类存储。对可重用构件进行 分类主要是为以后的检索提供支持。构件的分类方法及相应的库结构对 构件的检索和理解有着极为深刻的影响。构件库的组织方法有:基于关 键字的分类法、刻面分类法、超文本组织法。 对构件库的管理而言,需要一个专门的构件库管理组,负责创建并 维护构件库资源。以可重用构件库为基础的工作平台不仅要提供对构件 的查询、浏览、选择功能,而且还要提供对构件增加、修改、删除等功 能。维护构件库必须确保构件的修改同使用构件的所有应用都是兼容 的。此外,对构件库的维护还包括对构件的认证、插入、提取、评价和 适应等工作。构件库管理组还在生产开发各种形式的可重用构件方面起 着很重要的作用。 2 2 4 构件的检索 根据构件需求规格说明( 如构件应用领域,功能说明,约束条件等) , 向构件库提交检索请求。从众多的候选者中选出最适合在该软件环境中 使用的构件。对构件的检索,从构件的表示出发有人工智能方法、超文 本方法和信息科学检索的方法。根据复杂度和检索效果的不同则可分为 基于文本的和基于规约的编码检索。信息科学的方法有枚举、刻面、属 性值,关键字和正文检索等。 检索到的候选构件并不能完全满足需求规格说明,特别是在刚开始 用户的需求还不够精确的时候,它可能是一种近似的匹配。因此对检索 到的构件还有一个评估的过程,评估该构件在多大程度上符合用户的要 求。 2 2 5 构件的组装 构件的组装必须以构架为蓝图,因此需首先确定系统的总体构架。 实际上可看作是用构件的实例将软件构架具体化的过程。构件实例必须 符合系统中其他部分的要求。当从构件库检索到候选构件后,蠹取候选 构件的功能,初步判定媛选构件与需求的匹配程度,筛选候选构件集。 硕士学位论文 对初选构件还要在满足约束条件的上下文的环境中测试构件语法语义 的正确性以及一致性。对已匹配( 或近似匹配) 的构件进行再配置,使其 符合当前的应用环境。将符合应用环境的构件组装到系统的构架中,装 配成系统的功能模块。根据不同软件的开发模式,构件的装配可能是基 于手工的,自动的或半自动化的方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 残疾人专职委员试题(及答案)
- 2025年乡镇文化市场协管员招聘考试热点解析与模拟题
- 2025年国际贸易销售代表招聘笔试模拟题及参考答案
- 技能评估试题及答案
- 2025年人民防空信息防护员专业技能考试预测题
- 2025年中石油县片区加油站-快餐项目经理竞聘笔试模拟题及答案
- 2025年口算题目及答案(乘除)
- 2025电子产品(智能手机)购销合同
- 2025家电购销合同模板
- 2025年版版权许可合同范本-版权许可合同
- 职业学校招生培训会
- 加油站安全风险分级管控信息台账(清单)
- GB/T 24503-2024矿用圆环链驱动链轮
- 新材料研发流程管理规范
- 江苏省扬州市梅岭中学 2024-2025学年上学期八年级英语10月月考试卷
- 摩托制造成本效益分析
- 地理第一章 地球单元检测卷-2024-2025学年七年级地理上学期(2024)人教版
- 2024年九年级化学上册暑假提升讲义(沪教版)认识化学科学(解析版)
- 用户体验 智能座舱人机界面评测规范-意见征求稿-2024-07-技术资料
- 建筑工程资料承包合同范本
- DB14-T 2490-2022 集装箱式锂离子电池储能电站防火规范
评论
0/150
提交评论