(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf_第1页
(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf_第2页
(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf_第3页
(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf_第4页
(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机软件与理论专业论文)基于uml的软件体系结构六视图描述研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于u m l 的软件体系结构六视图描述研究 摘要 随着软件系统规模和复杂性的不断增加,软件体系结构在软件开发中的作 用显得越来越重要。软件体系结构是软件系统的高层抽象,用于描述整个系统 的结构和行为。目前,软件体系结构已发展为软件工程的一个重要研究领域。 近年来软件工程界提出了许多描述软件体系结构的方法,总的来说分为形式化 描述和非形式化描述。这些方法各有自己的长处,但也存在不足。非形式化方 法简单易学,但在从分析到设计、实现的活动中很难取得应有的作用。而形式 化方法的复杂性使得在实践中难以得到推广,而且各种非形式化方法的非标准 化又造成了浪费。 为了克服以上问题,更好地描述软件体系结构,本文提出了软件体系结构 六视图,并在此基础上提出了基于u m l 描述体系结构六视图的方法。u m l 本 身就蕴涵了软件体系结构的一些概念,而它的扩展机制以及o c l 语言又为描述 体系结构提供了有利的条件,同时u m l 在实践中的广泛应用又为该方法的推广 提供了便利。 本文的主要内容如下: 1 讨论了软件体系结构的定义,分析了常见的软件体系结构风格的特点。 2 概述了几种典型的体系结构描述语言,对软件体系结构描述语言作了分 类和比较。 3 提出了软件体系结构的六视图,并在此基础上探讨了用u m l 描述软件 体系结构六视图的方法。 4 对比了基于u m l 的软件体系结构六视图描述方法与其他方法,指出了 本方法的优点。 5 以铜陵电厂焊接管理系统为例,用u m l 描述了它的体系结构视图。 关键词:软件体系结构风格描述语言框架u m l 视图 安徽省自然科学基金资助项目项目编号:0 1 0 4 2 2 0 7 r e s e a r c ho i lu m l b a s e ds o f l w a r ea r c h i t e c t u r es i xv i e w s d e s c r i p l t i o n a b s t r a c t a st h es c a l ea n d c o m p l e x i t y o fs o f t w a r e s y s t e r n si n c r e a s e s ,s o f t w a r e a r c h i t e c t u r ep l a y sam o r ei m p o r t a n tr o l ei nt h ed e s i g na n dd e v e l o p m e n to fs o f t w a r e s y s t e m t h ed e s i g no fo v e r a l ls y s t e ms 虮l c n l r e s o f t w a r ea r c h i t e c t n l b e c o m ea c e n t r a lp r o b l e m s o f t w a r ea r c h i t e c t u r ei st h eh i 吐e s t - l e v e la b s t r a c t i o no fa s y s t e m i t p r o v i d e sam o d e lo ft h el a r g e s c a l e s t r u c t u r ea n db e h a v i o ro fs y s t e m r e c e n t l y , s o r w a r ea r c h i t c c t u r ch a sb e e na l l i m p o r t a n t r e s e a r c hs u b 一丘e l do fs o f t w a r e e n g i n e e r i n g i nt h e r e c e n t y e a r s ,t h e r ea r em a n y a r c h i t e c t u r ed e s c r i p t i o nm e t h o d s i n t o t a l t 1 1 e yc a nb ed i v i d e di n t o t w op a r t s :o n ei sf o r i l l a lm e t h o d ,a n dt h eo t h e ri s i n f o r m a lm e t h o d e a c ho ft h e mh a so w nv i r t u ea n dd i s a d v a n t a g e f o ri n f o r m a l m e t h o d ,a l t h o u 【g h i ti se a s yt ou n d e r s t a n d ,i ti sh a r dt oa n a l y z e f o rf o r m a l m e t h o d ,i t s c o m p l e x i t y m a k e si th a r dt op o p u l a r i z ei np r a c t i c ea n dn os t a n d a r dm a k e sa g r e a tl o t o f w a s t e f o rr e s o l v i n gt h ep r o b l e m sa b o v ea n dd e s c r i b i i l gs o f t w a r ea r c h i t e c t u r eb e t t e r , t h et h e s i sp r e s e n tam e t h o dt od e s c r i b es o f t w a r ea r c h i t e c t u r ef r o ms i xv i e w sb a s e d u m l t h e r e a l r e a d y h a v es o m ec o n e e d to fs o r w a r ea r c h i t e c t u r ei nu m i , f u r t h e r m o r e t h ee x t e n s i o nm e c h a n i s ma n do c l l a n g u a g eo fu m l m a k ei tp o s s i b l e t ou s i n gu m lt od e s c r i b es o f t w a r ea r c h i t e c t u r e a n o t h e rr e a s o ni st h a tu m lh a s b e e na l r e a d y a c c e p t e di nm a n yp r a c t i c ef i e l d s i nt h i st h e s i s t h em a i nw o r ka n da c h i e v e m e n t sa r e 船f o l l o w s : 1 t h ed e f i n i t i o no fs o f t w a r ea r c h i t e c t l l r ei sd i s c u s s e d a n da r c h i t e c t u r a ls t y l e s s u c ha sp i p e sa n df i l t e r s ,c l i e n ta n ds e r v e r , e v e n t b a s e d ,o b j e c t o r i e n t e da n do t h e r f a m i l i a ra r c h i t e c t u r e sa r ea n a l y z e d 2 s e v e r a lt y p i c a la 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 sa r ei n t r o d u c e d ,a n dt h e d e f i n i t i o na n dc l a s s i f i c a t i o no f a d l s8 r ed i s c u s s e d 3 n l es i xv i e w so fs o f t w a r ea r c h i t e c t u r ea r ep r e s e n t e d a n dam e t h o dt o d e s c r i b es o f t w a r ea r c h i t e c t u r ef r o ms i xv i e w sb a s e du m li sp r o p o s e d 4 t h em e t h o dt od e s c r i b es o f t w a r ea r c h i t e c t u r ef r o ms i xv i e w sb a s e du m li s c o m p a r e dw i t ho t h e rm e t h o d s ,a n di t sv i r t u ei sp o i n t e do u t 5 t h em a n a g e s y s t e mo ft o n g l i n gp o w e rc o m p a n y i st a k e na sae x a m p l e a n d i t ss i xv i e w sa r ed e s c r i b e d k e y w o r d s :s o f t w a r ea r c h i t e c t u r e ,s t y l e ,d e s e r i p t i o nl a n g u a g e ,f r a m e w o r k ,u m l , v i e w t h e p r o j e c ts u p p o r t e db y a n h u ip r o v i n c i a ln a t u r a ls c i e n c ef o u n d a t i o n p r o j e c tn u m b e r :0 1 0 4 2 2 0 7 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含为获得佥目g 王些盔堂或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示谢意。 学位论文作者签名;多眨臣l - f 签字日期:z 。牛年月如日 学位论文版权使用授权书 本学位论文作者完全了解盒魍王些太堂有关保留、使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金 胆王业态堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:j 酞囱乎 签字日期:历。牛年f 月西日 学位论文作者毕业后去向 工作单位: 通讯地址: 导师签名 签字日期:石缶年月7 易 电话; 邮编: 致谢 首先要感谢我的导师袁兆山教授,袁老师无论是在学习上还是在生活上都 给了我极大的关心和帮助,使我得以顺利完成硕士研究生阶段的学习。袁老师 严谨的治学态度,勤恳踏实的工作作风,博学乐教的师长风范,给我留下了深 刻的印象,是我学习的榜样。在我撰写学位论文的过程中,自始至终得到了袁 老师的悉心指导,袁老师花费了许多时间和的精力关心我的论文,为此倾注了 大量的心血,在此,我谨向袁老师致以诚挚的敬意和衷心的感谢 感谢胡学钢老师、李心科老师、李宏芒老师对我的指导和帮助。 感谢我的同学和朋友李莹莹、方睿、钟金琴、刘珊珊、王珏、杨冬虎、商 伶俐、汪祖满、刘建华、朱晓春,感谢研究生2 0 0 1 2 班的每一位同学。 感谢我的父母、哥哥、姐姐。 感谢所有关心、支持我的师长、同学和朋友们! 作者:张国宁 2 0 0 4 年6 月 1 1 概述 第一章绪论 2 0 世纪6 0 年代末至2 0 世纪7 0 年代初,“软件危机”一词在计算机界广为 流传,它是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软 件危机的表现是:( 1 ) 软件成本日益增长,( 2 ) 开发进度难以控制,( 3 ) 软件 质量差,( 4 ) 软件维护困难。 软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重 点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂, 为了保证软件质量,提高软件可靠性、可重用性和可维护性,软件系统的结构 设计显得越来越重要。在这种背景下,人们认识到软件体系结构( s o t t w a r e a r c h i t e c t u r e ) 的重要性,并认为对软件体系结构的系统、深入的研究将会成为 提高软件生产率和解决软件维护问题的新的最有希望的途径。 软件体系结构主要着眼子软件系统的全局组织形式,在更高层次上把握系 统各组件之间的内在联系,并从全局的、整体的角度去理解和分析整个系统的 行为和特性,有助于解决当前开发复杂的大型软件所存在的困难。 软件总是有体系结构的,不存在没有体系结构的软件。体系结构 ( a r c h i t e c t u r e ) 一词在英文里是“建筑”的意思。把软件比作一座楼房,从整 体上讲,是因为它有基础、主体和装饰,即操作系统之上的基础设施软件、实 现计算逻辑的主体应用程序、方便使用的用户界面程序。从细节上来看,每一 个程序也是有结构的。早期的结构化程序就是以语句组成模块,模块的聚集和 嵌套形成层层调用的程序结构,也就是体系结构。结构化程序的表达结构和计 算的逻辑结构的一致性及自顶向下开发方法自然而然地形成了体系结构。由于 结构化程序设计时代程序规模不大,通过强调结构化程序设计方法学,自项向 下、逐步求精,并注意模块的耦合性就可以得到相对良好的结构,所以,结构 化程序并未特别研究软件体系结构。 我们可以作个简单的比喻,结构化程序设计时代是以砖、瓦、沙、石盖平 房和小楼,而面向对象时代以整面墙、整间房、一层楼梯的规模盖高楼大厦。 如同土木工程进入到现代建筑学一样,软件也从传统的软件工程进入到现代面 向对象的软件工程,研究整个软件系统的体系结构,寻求建造最快、成本最低、 质量最好的构造过程。 软件体系结构的概念最初由e w t d i j k s t r a 在1 9 6 8 年提出的,当时他用分层 的体系结构设计了t h e 操作系统,并提出人们应更加关注软件是如何分解与组 合的,而不仅限于编程,这样将更有利于软件的开发与维护。而真正展开对软 件体系结构的一般理论的研究则是始t d e w a y n e p e r r y 和a l e x a n d e r w o l f 于1 9 9 2 年在a c ms i g s o f ts o f t w a r ee n g i n e e r i n gn o t e s 发表了“f o u n d a t i o n sf o rt h e s t u d yo f s o f t w a r e a r c h i t e c t u r e ”一文后。从那时起,在每年一届的国际软件工程 会议上都有关于软件体系结构的研究文章。目前软件体系结构己发展为软件工 程领域里面一个新的研究方向。 进入九十年代以来,软件的规模、复杂性急剧增长,软件体系结构在软件 开发中的重要性得到越来越广泛的认同。软件体系结构作为系统高层设计决策 的反映,在软件开发中扮演着十分重要的角色 c l e m e n t s 9 6 : 1 交流的基础:无论是项目组成员、管理者还是用户都可以把体系结构作 为理解系统和理解系统开发运行的基础。 2 项目的蓝图:体系结构组件的选择往往对应于开发过程中的团队结构、 工作分配、管理单元、集成计划、测试计划、维护过程等。一旦体系结 构确定下来,它会在一个相当长的时期内起作用。 3 产品线开发的蓝图:一个体系结构可以为其他适合的系统所重用。如果 管理得当,一个产品族可以共享同一个体系结构。这样,一个合适的软 件体系结构在所有使用它的产品中都是非常重要的。 4 最早期的设计决策的反映:体系结构代表了从问题空间到解决空间的第 一个映射,所有接下来的设计决策必须与体系结构相一致,因此,体系 结构一旦选择,就具有深远的影响。 5 最早获取质量属性的方法:可修改性、重用性等等都与体系结构的决策 密切相关,在体系结构上分析,可以在设计的最早期判断质量是否符合 要求,尽量避免在开发后期的修改,降低软件成本。 1 2 研究软件体系结构的意义 软件体系结构描述了软件系统的总体构成情况,包括该系统有哪些主要组 件,以及各组件之间的关系,并不涉及每个组件的细节。软件体系结构的意义 不仅在于软件重用水平的提高,而且对软件整个开发过程与开发方式产生重大 影响和改变。 软件体系结构规定了系统的基本结构和行为模式,是系统构造和演化的关 键因素。良好的体系结构可以为软件开发和维护带来好处,主要体现在以下几 个方面: 1 体系结构设计位于软件开发的前期阶段。良好的体系结构是后续开发的 基础,是保证系统成功的关键。 2 对软件体系结构的准确理解,可以使开发人员在不同的设计方案中做出 正确的选择。 2 3 对体系结构的精确描述,有助于分析复杂系统的高层性质。 4 各种体系结构风格的提炼、描述和采用,可以丰富设计人员的词汇,便 于在系统设计中互相交流。 1 3 论文的组织 本文内容的组织如f : 第一章介绍了软件体系结构的意义和论文的内容。 第二章对软件体系结构的定义作了具体的阐述,讨论了软件体系结构与框 架的区别、软件体系结构的风格,介绍了现有的软件体系结构描述语言。 第三章讨论了u m l 的内容、主要特点,阐述了u m l 的静态和动态建模机 制。 第四章提出了软件体系结构六视图,阐述了六视图的内容、含义,说明了 为什么要用u m l 描述软件体系结构,探讨了用u m l 描述软件体系结构六视图 的方法。 第五章以铜陵电厂焊接管理系统为例,用u m l 描述了它的体系结构视图。 第六章对全文的工作进行总结,并给出了进一步研究的方向。 2 1 软件体系结构的定义 第二章软件体系结构 软件体系结构迄今为止还没有一个公认的定义。许多专家学者从不同角度 和不同侧面对软件体系结构进行了刻画。在本文里面,我们将使用下面的软件 体系结构定义: 软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构 成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模 式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显 示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本 原理 y u w e i 0 0 。 2 2 软件体系结构与框架 框架( f r a m e w o r k ) 的最著名的定义是j o h n s o n 和f o o t e 所给出的定义:框 架是一系列类的组合,这些类表达了对一族相关问题的解决方案的抽象设计。 框架规定了应用系统的总体结构,定义了类和对象的划分,定义了其关键责任, 定义了类和对象如何合作,还定义了控制线索。框架预先定义这些设计参数, 使应用系统的设计者执行者能把力量集中在应用系统的细节上。框架收集了 该应用领域的设计决策。 尽管框架通常包括可以立即投入工作的具体的予类,但它也强调设计复用 而不仅是代码复用。这些类为一个特定要求的软件构成一个可复用的设计。例 如,可以用框架来建立不同领域的图形编辑器( 如艺术绘图、音乐合成和机械 c a d ) ,可以用另一种框架为不同程序设计语言和目标机器制作编译器,而还有 一种框架可以完成财务模型应用系统。可以通过建立框架抽象类的特定应用子 类,来定制一个特定应用的框架。 目前而言,软件体系结构与框架在设计复用上存在着一定的相似性,例如, 它们都能构造特定领域的设计模型,可以确立目标系统的大致概念。但同时, 它们也存在着一定的差异性。 ( 1 ) 软件体系结构比框架更加抽象。框架可以在代码中得以体现,但在代 码中只体现软件体系结构的具体实例。软件体系结构可以在每一个特定领域的 特定应用中被加以适当的解释,成为不同种类而起相似作用的系统模块。 ( 2 ) 软件体系结构比框架有更广泛的意义。框架往住有一个特定的应用领 4 域,例如图形编辑器框架可以用于工厂模拟中,但它不会被误认为一个模拟框 架。与之相比,软件体系结构可以用于几乎所有种类的应用中。 2 3 软件体系结构设计的优势 软件体系结构设计优势至少体现在以下四个部分 g a r l a n 9 3 : ( 1 ) 分析能力 一组合适的分析工具使系统设计者能够在开发周期的早些时候解决相似问 题并估计全局属性以及系统能力,分析能力使设计者通过一种有效方式确定早 期设计的领域系统是否符合需求。 ( 2 ) 系统架构的可视性 一个明确定义并付诸于文档的体系结构显示了整个系统将会如何符合指导 系统设计者做出底层设计意图的蓝图。开发者有一个很清晰的关于系统的每一 部分如何适应整个系统的理解,使得他们可以确信每个组件将平滑集成于系 统的其他部分,并使用该体系指导他们做出实现性的决定。 ( 3 ) 严格规范 产生一个明确的体系结构设计需要体系结构创建者考虑系统如何作为一个 整体并相互作用,该过程通常能够揭示出一些未能充分考虑、模棱两可的需求, 以及可能被忽略的关键设计要素。 ( 4 ) 维护概念完整性 系统体系结构作为整体意识,指导维护人员做出合适的扩充和修正。 2 4 软件体系结构的研究现状 软件体系结构的研究目标是系统总体结构的设计与规范。尤其是面向领域 的体系结构,提供了面向领域特点的总体指导原则,成为设计的技术基础和成 本估算及过程管理的管理基础。体系结构抽取系统相对最为稳定的部分,为重 用性研究提供了良好而有效的保障,还可以作为依赖关系和一致性分析的基础。 ( 1 ) 形成研究热点 自2 0 世纪9 0 年代后期以来,软件体系结构的研究成为一个热点。广大软 件工作者已经认识到软件体系结构研究的重大意义和它对软件系统设计开发的 重要性,开展了很多研究和实践工作。 ( 2 ) 软件体系结构的形式化方法研究 软件体系结构研究如果仅仅停留在非形式化的框图阶段,已经难以适应进 一步发展的需要。为支持基于体系结构的开发,需要有形式化建模符号、体系 结构说明的分析与开发工具 g a r l a n 9 4 。从软件体系结构研究的现状来看,在这 一领域近来已经有不少进展,其中比较有代表性的是美国卡耐基梅隆大学 ( c a r n e g i e m e l l o n u n i v e r s i t y ) 的越1 e n 于1 9 9 7 年提出的w r i g h t 系统。 ( 3 ) 发展基于体系结构的软件开发模型 软件开发模型是跨越整个软件生存周期的系统开发、运行、维护所实施的 全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。目前, 常见的软件开发模型大致可分为三种类型 k a z m a n 9 6 : 第一种是以软件需求完全确定为前提的瀑布模型。 第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模 型,如螺旋模型等。 第三种是以形式化开发方法为基础的变换模型。 所有开发方法都是要解决需求与实现之间的差距。但是,这三种类型的软 件开发模型都存在这样或那样的缺陷,不能很好地支持基于软件体系结构的开 发过程。因此,研究人员在发展基于体系结构的软件开发模型方面做了一定的 工作。 ( 4 ) 软件产品线体系结构的研究 软件体系结构的开发是大型软件系统开发的关键环节。体系结构在软件生 产线的开发中具有至关重要的作用,在这种开发生产中,基于同个软件体系 结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和 组可重用的组件。可以降低开发和维护成本 k 丑z m a n 9 9 1 。 一个产品线代表着一组具有公共的系统需求集的软件系统,它们都是根据 基本的用户需求对标准的产品线构架进行定制,将可重用组件与系统独有的部 分集成而得到的。采用软件生产线式模式进行软件生产,将产生巨型编程企业。 但目前生产的软件产品族大部分是处于同一领域的。 2 5 软件体系结构的研究热点 当前,体系结构仍是一个非常新的研究领域,其概念还相当模糊。但软件 体系结构作为软件工程领域中的一个组成部分,已经取得了长足的发展,受到 大多数软件系统设计和研究人员的重视。 软件体系结构目前较活跃的研究方向包括:( 1 ) 软件体系结构形式化基础 的研究;( 2 ) 针对软件体系结构描述中特有的问题研究新的专门的高级语言;( 3 ) 建立用于度量和评价软件体系结构的模型和方法;( 4 ) 建立面向专门领域的软 件体系结构范型库。 6 2 5 1 提供新的软件体系结构描述语言 在提高软件工程师对软件系统的描述和理解能力中,虽然软件体系结构描 述起着重要作用,但这些抽象的描述通常是非形式化的和随意的。体系结构设 计经常难以理解,难以适于进行形式化分析和模拟,缺乏相应的支持工具帮助 体系结构师完成设计工作 s h a w 9 5 1 。为了解决这个问题,用于描述和推理的形 式化语言得以发展,这些语言就叫做体系结构描述语言( 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 d l 提供了具体的语法与刻画体系结构的概念框架 a l e n c a r 9 8 。a d l 使得系统开发者能够很好地描述他们设计的体系结构,以便 与人交流,能够用提供的工具对许多实例进行分析。 这种描述语言的目的就是提供一种规范化的体系结构描述,从而使得体系 结构的自动化分析变得可能。研究人员已经设计出了近二十种a d l ,比较有影 响力的有c 2 、u n i c o n 、m e t a h 、a e s o p 、s a d l 、r a p i d e 、w r i g h t 等。这些语言 能够对体系结构连接件进行第一级抽象,同时还能描述模型的结构和内部组件 之间的交互作用,并且还引入了一些新的系统分析模式。 2 , 5 2 对软件体系结构的专门知识的整理 这方面的工作主要是对软件工程师在软件开发实践中得来的各种体系结构 的原则、模式的整理和分类。例如,对软件体系结构风格的分类和比较,对体 系结构描述语言的综合分析等。 2 , 5 3 提供特定领域的体系结构框架 最近,开发特定领域的体系结构为产品提供可重用框架目益受到关注。这 些开发基于这样的想法:可以提取相关系统中的共同方面,以便可以通过较低 的成本把这些共同的设计实例化来构筑新系统 s m i t h 9 3 1 。常见的例子有: ( 1 ) 编译器的标准分解。这个方法可以使一个本科生在一个学期时间内构 造一个新的语言编译系统。 ( 2 ) 标准化的通讯协议。这个方法可以使厂家通过在不同层次的抽象上提 供服务来互相沟通。 ( 3 ) 第四代语言。利用4 g l 开发出商务信息处理的通用范式。 ( 4 ) 用户界面工具和框架。这个方法为开发者提供了一个可重用框架以及 像菜单、对话框这样的可重用组件的集合。 软件体系结构充当一个理解系统组件和它们之间关系的框架。这个理解对 于现在系统的分析和未来系统的综合很有必要。在分析的支持下,体系结构抓 住领域知识和实际相一致的地方,促进设计的评估和组件的实施。在综合的支 持下,体系结构提供了建立系列产品的基础,以可预测的方式利用领域知识构 造和维护模块、子系统和系统【a b o w d 9 5 。 2 5 4 提供软件体系结构的形式化基础 对体系结构设计的推理的形式化表示使得体系结构级的设计更好地被理 解、被实现。它的目的是对体系结构设计人员在实践过程中总结出来的一些设 计的经验和方法加以总结、概括,从丽形成一个形式化的描述,形成一定的理 论基础,以代替当前的不精确的研究 m e t t a l a 9 2 。现在已经提出了一些形式化机 制,如过程代数、偏序集合、化学抽象机等。这些方法希望对系统的非功能特 性如性能、可维护性等给出形式的表示。 2 5 5 建立评价软件体系结构的方法 通过分析来预见软件的质量,通过分析来创建、选择、评估、比较不同的 体系结构。例如,k a z m a l l 等人在2 0 0 0 年提出的& t a m ( a r c h i t e c t u r a lt r a d e o f f a n a l y s i sm e t h o d ) 方法。a t a m 方法不但能够揭示体系结构如何满足特定的质 量需求( 例如性能和可修改性) ,而且还提供了分析这些质量需求之间交互作用 的方法。使用a t a m 方法评价一个软件体系结构的目的是理解体系结构设计满 足系统质量需求的结果。 2 6 软件体系结构风格 建立起取得共识的公共设计模式是一个工程领域成熟的特征之一。软件系 统的组织同样存在一系列的惯用模式,称作软件体系结构风格。 软件体系结构风格( s o f t w a r ea r c h i t e c t u r es t y l e ) 是指不同系统所拥有的共 同的结构组织模式和语义特性,是软件系统中各组件和连接件之间相互协调与 处理的形式说明。它反映了领域中众多系统所共有的结构和语义特性,并指导 如何将各个模块和予系统有效地组织成一个完整的系统。也即,一种体系结构 风格决定了组件、连接件和一组如何将它们结合一起的约束限制,包括拓扑限 制( 如无循环) 、执行语义限制( 如过滤器不能共享) 等 s h a w 9 6 1 。具体软件系 统的体系结构是某种体系结构风格的实例。软件体系结构风格主要有以下几类: 2 6 1 管道一过滤器 在这种风格中,每一个组件有一组输入和输出,组件从输入端读取数据流, 并在输出端产生数据流,连接件依次把一个组件的“输出”传送到另一个组件 的输入。通常,组件对输入流作局部转换,并不断计算,以使输入和输出可并 发执行。这里将组件称为过滤器,连接件称为管道。 典型的管道过滤器结构例子有u n i x 的s h e l l 程序,传统的编译器等,另 外在分布式系统、函数程序设计等领域中也常应用此结构。 管道一过滤器结构具有以下特点: 第一,过滤器的设计是独立的,不受前、后组件的影响,由这些组件简单 复合得到的输入输出行为显然是容易理解的。 第二,任何两个过滤器只要能保持它们之间传输数据的一致,均可进行连 接。因而该结构能较好地支持软件系统一级的重用。 第三,允许新的过滤器添加到现有系统上,而老的过滤器也可被经过改进 的过滤器所替代,因而系统易于维护和不断完善。 第四,可以分析软件的某些特性,如吞吐量、死锁检测等。 第五,支持并发执行。每一过滤器执行单独的任务并与其它的过滤器并发 执行。 2 6 2 面向对象组织 在这种风格中,数据表示及相关的基本操作被封装在对象中。这种风格的 组件就是一种称之为“管理器”的对象。对象既有模块的封装特性,又有进程 的动态信息传递特性。在串行环境下,对象之间的引用是通过函数过程的调 用实现的,其语义是静态的;在并发环境下,对象之间的交互作用是通过通讯 来实现的,其语义是动态的 g a r l a n 9 9 1 。 这种风格有两个重要特点。其一是一个对象保证其表示的完整性;其二是 这种表示对其它对象是隐蔽的。面向对象的系统有许多众所周知的优点,这里 不再赘述。但该结构也有一些缺点,如一个对象要引用其它对象,须知道这些 对象的身份,一旦一个对象身份改变,则必须修改所有与之相关的对象,进而 可能带来副作用问题。即如果对象a 引用对象b ,对象c 也引用对象b ,则c 对b 的影响可能给a 带来意想不到的副作用。 2 6 3 基于事件的隐式调用 基于事件的隐式调用与面向对象类似,不同的是,在这种风格中,组件之 间的交互不是直接调用,而是通过一种称之为“隐式调用”的方式来实现 【p e r r y 9 2 。每个组件提供若干过程及它感兴趣的事件,并把每个事件与一个过 程联系在一起,当某个组件产生一个事件时,若其它组件定义了这个事件,那 么与该事件联系在一起的过程将被自动调用,从而间接地完成了过程的调用。 这种风格的一个主要优点是有利于组件重用。因为组件之间的交互是通过 事件的广播来实现的,所以只需简单地注册几个它感兴趣的事件,就可把组件 添加到系统中。 2 6 4 分层系统 一个分层系统就是把整个系统组织成层次结构,每一层都提供若干服务给 上一层使用,并且它也使用其下一层所提供的服务。该风格广泛应用于软件系 统设计中,其典型代表是网络通讯协议( 如o s i i s o 七层协议等) 及数据库系 统、操作系统等。 2 6 5 其他典型结构 除上述已介绍的体系结构风格外,还有一些较典型的结构,如仓库 ( r e p o s i t o r i e s ) 、表驱动解释器、分布式进程、主程序子程序结构、状态转换 系统、进程控制系统等。其中状态转换系统是在并发与反应系统中常见的一种 基本模型结构。 上述列出的种种体系结构风格均属于一般的、抽象的、通用的体系结构。 除此之外,还有更多的专门的应用领域的软件体系结构( 如航空控制系统、智 能网等) 及异质体系结构等 j a c o b s o n 9 9 。 一个系统不一定只有一种风格;在系统的不同层次或不同抽象级别上,可 能具有多种风格。不同的体系结构风格有多种组合方式;按某种体系结构风格 组织的系统的某些组件的内部结构可能采用另一种完全不同的风格;一个组件 可能采用不同体系结构的连接件,例如,组件可以通过它的部分接口访问数据 库,但又通过管道和系统中的其它组件交互 b o u r d e a u 9 5 。在实际应用中,一般 不采用太多体系结构风格的复杂组合,以增强重用性、便于系统分析、缩短选 择时问、方便合作。 2 7 使用形式化方法描述软件体系结构 软件体系结构以组件和连接件作为建模的基本实体,对组件和连接件提供 了多重接口,可以描述组件间丰富的交互情况,很好的支持了系统级的重用。 研究软件体系结构的首要问题是如何表示软件体系结构,其主要研究对象是体 1 0 系结构描述语言( a d l ) 。 a d l 通常用一组组件和连接件来描述一个软件系统。为了方便起见,有些 a d l 还提供了图形界面,设计人员可以用图形来描述软件的结构 m e t a y e r 9 8 。 a d l 的研究表明,通用的a d l 尚存在许多困难。软件工程界现已提出多种a d l , 它们大多是面向特定领域的 c l e m e n t s 9 6 ,如a e s o p 支持应用软件体系结构描述 风格;a d a g e 支持对电子导航系统体系结构框架的描述;m e t a h 为实时电子控 制软件的设计者提供明确的指导;u n i c o n 支持异构型组件和连接,并针对体系 结构有一高层编译器;r a p i d e 是专门为系统体系结构建立快速原型设计的,是 一种基于事件的、并发的、面向对象的语言:w r i g h t 支持定义和分析组件间的 相互作用。 从多种不同的软件体系结构描述语言来看,它们虽然在描述的体系模型上 有些差异,但有着基本相似的内在组织。可以认为a d l 主要由组件、连接件和 体系配置等几部分组成。 ( i ) 组件( c o m p o n e n t ) 组件是软件体系结构中起实际作用的组成部分。它包含了一组相对独立的 接口以提供整个系统在局部细节上的可行性。通常,一个软件系统可以通过一 个或多个体系结构来描述出其大致的目标模型,但真正可行的部分还是在组件 上。组件将在软件体系结构描述出的世界中具体的勾勒出每个对象,及其一举 一动。 ( 2 ) 连接件( c o n n e c t o r ) 连接件是体系化的塑造模块,并被用以建立组件之间的连接以及连接规则 的模型。与组件不同处在于,连接子在一个现实系统中不一定对应到一个编译 好的单元 d a s h o f y 9 9 。 它们可能被实现为一组分散的消息通道设备,也可能表现为共享的变量、 入口表、缓冲、连接的指令、动态数据结构、代码中内嵌的一组调用过程、初 始化参数、客户服务器协议、管道、数据库与应用之间的s q l 连接等等。 ( 3 ) 体系结构配置( a r c h i t e c t u r a lc o n f i g u r a t i o n ) 体系结构配置,或者说拓扑结构,是一些显示组件与连接子连接情况的图, 它们描述了实际的体系结构。这些信息对子确定哪些组件适合被连接、接口的 吻合情况、连接子是否提供了合适的通讯,以及组装后的语义产生的直接行为 等过程是十分需要的。考虑到组件和连接子的模型,配置的描述使对于体系结 构的并行性和分布性的评价成为可能,例如是否存在潜在的死锁、性能、可靠 性、安全性等等。 体系结构描述语言大体上可以分为三类 g a r l a n 9 5 : ( 1 ) 研究软件体系结构配置结构的描述语言 这一类软件体系结构描述语言主要针对软件体系结构的静态和动态配置, 对体系结构配置的演化所具有的性质进行研究。典型的体系结构描述语言有 d a r w i n m a g e e 9 6 和c h a m ( c h e m i c a l a b s t r a c tm a c h i n e ) i a v e r a r d i p 9 5 。d a r w i n 用丌演算来对系统的行为进行建模。该模型具有描述高度动态特征的体系结构 的灵活性,即组件和连接件的组织结构可以在系统运行时动态改变。利用丌演 算的强类型系统能进行静态检查。c h a m 可通过对处理单元、数据单元和连接 单元的描述、引入的转换规则以及项重写来描述和分析体系结构的动态行为, 它实质上是一种结构的重写系统。 ( 2 ) 研究软件体系结构实例的描述语言 这一类体系结构描述语言描述的是特定的系统,它所解决的问题是:系统 的体系结构是什么。例如:r a p i d e 就属于这类体系结构描述语言。它是一个基 于事件的、并发的面向对象的语言,专门为系统体系结构建立快速原型而设汁。 它由5 个子语言组成。通过这5 种语言的结合使用,使得系统在确定实现策略 之前首先在体系结构的层次上进行分析和设计。 ( 3 ) 研究体系结构风格的描述语言 这一类语言描述体系结构的模式或范型,从而描述了具有相同风格的一族 系统的体系结构,它所解决的问题是“系统使用的结构模式”和“体系结构风 格的含义”。这一类的体系结构描述语言有w r i g h t i a l l e n 9 4 。在w r i g h t 中,最重 要的是连接件。连接件由一组角色和胶水规格组成。角色定义了每个交互方所 期望的本地行为。胶水规格则描述了各个角色如何协调在一起。w r i s t 采用c s p ( c o m m u n i c a t i n gs e q u e n t i a lp r o c e s s ) 来描述。文献 a l l e n 9 4 用c s p 分析了软件 体系结构连接件的某些重要性质,如在一定条件下满足无死锁性。而文献 a b o w d 9 3 采用z 语言来描述软件体系结构的风格,该方法用一组从语法描述 域到软件体系结构风格的语义域的语义函数映射来描述软件体系结构。z 语言 是基于模型和集合论的规范语言,它类似于指称语义,适合描述软件体系结构 的某些静态性质,如风格、子风格的定义,但它却难以描述和分析软件体系结 构的动态性质。 以上语言有的是将已有的形式化描述语言应用于体系结构领域( 如z 语言 【s p i v e y 9 8 】) ,有的是为专门描述体系结构而创建的新的描述语言( 如r a p i d e 语 言) 。 体系结构描述语言集中描述整个系统的高层结构而不是实现细节或具体的 源代码模块。许多研究者针对a d l 进行了很多研究工作,其中具有代表性的工 作有:u n i c o n ,s a d l ,r a p i d e ,c 2 ,a c m e 等。下面我们对这些工作进行简 要的介绍。 2 7 1u n i c o n u n i c o n 支持异构型组件和连接件。作为一种体系结构描述语言,u n i c o n 的主要目的在于支持对体系结构的描述,对组件交互模式进行定位和编码,并 且对需要不同交互模式的组件加以区分 s h a w 9 6 】。具体地说,u n i c o n 的主要目 的有: ( 1 ) 提供对大量组件和连接件的统一的访问。 ( 2 ) 区分不同类型的组件和连接件以便对体系结构配置进行检查。 ( 3 ) 支持不同的表示方式和不同人开发的分析工具。 ( 4 ) 支持对现有组件的使用。 在u n i c o n 中,通过定义类型、特性列表以及用于和连接件相连的交互点来 描述组件。连接件也是通过类型、特性列表和交互点来描述,连接件的交互点 称为r o l e s 。系统组合构造通过定义组件的交互点和r o l e s 之间的连接来完成。 为了达到目标a ) ,u n i c o n 提供了一组预定义的组件和连接件类型,体系结 构的开发者可以从中选择合适的组件或连接件。对于b ) ,u n i c o n 区分所有类型 的组件和连接件的交互点,并对它们的组合方式进行限制。根据这些限制, u n i c o n 工具可以提供对错误的组合进行检查,但是这种检查带有局部性,即无 法对系统的全局约束进行检查。目标c ) 的重要性已经获得公认,特性列表的方 法已经被a c m e 和目前u s c 正在开发的a r c h i r e c t u m c a p t u r et o o l ( a c t - 1 ) 所 采纳。对于已有的组件,通过利用u n i c o n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论