(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf_第1页
(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf_第2页
(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf_第3页
(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf_第4页
(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)软件体系结构评价体系与评价矩阵研究.pdf.pdf 免费下载

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

文档简介

软件体系结构评价体系与评价矩阵研究 摘要 软件体系结构是近十多年来软件工程中最热门的研究方向之一,被工业界 和学术界普遍认为是软件工程取得突破性进展的一个关键领域。对软件体系结构 的正确评价对保证其软件产品的质量和软件开发过程管理意义重大。本论文在软 件体系结构的评价方面做了以下研究。 本论文首先综述了体系结构的有关知识。介绍了体系结构的基本概念,体 系结构的模型,体系结构的视图描述,体系结构的描述语言,以及其它一些体系 结构的观点。然后在探讨了目前的几种软件体系结构分析和评估方法的基础上, 提出了什么是一个良性体系结构,即反映良性体系结构的五大质量要素。并从需 求、开发、管理角度建立了一个评价软件体系结构的指标体系。探讨了这些评价 指标的关系及与评价指标与质量要素之间的关系。讨论了体系结构的评价方法: ( 1 ) 单个指标的评价:基于场景的评价方法,基于形式化的评价方法,基于视图 的评价方法;( 2 ) 单个体系结构的整体评价方法;( 3 ) 多个体系结构的整体评价方 法。本论文具体探讨了评价矩阵的实例和应用,利用多个体系结构整体评价的方 法定义了评价体系结构风格的评价指标集,并对几种常见的经典体系结构风格进 行了评价,生成常见体系结构风格的评价矩阵,提出了一种基于评价矩阵的风格 选取方法。并用两个实例验证这种选取方法的效果,实验结果较令人满意。该方 法的提出体现了对体系结构评价体系研究的意义。最后本论文以铜陵电厂项目为 具体的实例,对该项目的体系结构进行了评价。 关键词:体系结构评价质量要素指标风格评价矩阵 安徽省自然科学基金资助项目项目编号:0 1 0 4 2 2 0 7 t h e s t u d y o fs o f t w a r ea r c h i t e c t u r ee v a l u a t i o na n d e v a l u a t i o nm a t r i x a b s t r a c t t h er e s e a r c ho ns o t l w a r ea r e h i t e c t u r ei so n eo fm o s tp o p u l a rd i r e c t i o n so n s o f t w a r ee n g i n e e r i n g ,w h i c h i sb ew e l lb e l i e v e d b y a c a d e m et h a ti ti st h ek e y d o m a i nt h a tc a l lb eg r e a ta d v a n c e da n da c h i e v e d t h em a i n w o r ki nt h i sd i s s e r t a t i o n i sa sf o l l o w s : f i r s t l yw ei n t r o d u c et h ec o n c e p to fs o r w a r ea r c h i t e c t u r ea b o u tt h em o d e l ,t h e v i e w ,t h ed e s c r i p t i o na n ds o m ev i e w p o i n t o f a r c h i t e c t u r e s e c o n d l yw e d i s c u s ss o m e c u r r e n tt e c h n o l o g yo fa n a l y z ea n de v a l u a t es o f i - w a r ea r c h i t e c t u r e t h e nw ed i s c u s s w h a ti sag o o ds o f t w a r ea r c h i t e c t u r e ,w h i c hw e s u g g e s tf i v eq u a l i t yf a c t o r st oa n s w e r , w eb u i l das y s t e mo fq u a l i t yi n d e xf r o mt h r e ev i e w s :s o t s , r a r er e q u i r e m e n ta n d d e v e l o p i n gr e q u i r e m e n ta n dm a n a g i n gr e q u i r e m e n t w e d i s c u s st h er e l a t i o no f q u a l i t y f a c t o r sa n dq u a l i t yi n d e x e s t h e nw es u g g e at h em e t h o do fe v a l u a t i n gs o f t w a r e a r c h i t e c t u r e :( 1 ) e v a l u a t i n gs i n g l eq u a l i t yi n d e x :e v a l u a t i n g b a s e ds c e n a r i o ; e v a l u a t i n gb a s e df o r m a l i z a t i o n ;e v a l u a t i n gb a s e dv i e w ( 2 ) e v a l u a t i n gs i n g l es o f t w a r e a r c h i t e c t u r e ( 3 ) e v a l u a t i n gs e v e r a ls o f t w a r ea r c h i t e c t u r e s i nt h i sd i s s e r t a t i o nw e t a k e t h e p r o j e c to f t o n g l i n g f o r e x a m p l e ,a n d e v a l u a t et h ep r o j e c t a tl a s tw ed i s c u s st h ee x a m p l eo fe v a l u a t i o nm a t r i x w ed e f i n et h es e to fq u a l i t y i n d e x e st oe v a l u a t ea r c h i t e c t u r e s t y l ea n de v a l u a t e s e v e r a lc l a s s i c a l s t y l e ,g e tt h e e v a l u a t i o nm a t r i x w ep r o v i d eam e t h o dt os e l e c ts t y l eb a s e dt h ee v a l u a t i o nm a t r i x w e e x p e r i m e n t a l i z ei tw i t ht w oc a s e s ,t h ee x p e r i m e n tr e s u l ti s s a t i s f i e d s ow ec a n s e et h em e a n i n go f t h er e s e a r c ho f e v a l u a t i n gt h es o f t w a r ea r c h i t e c t u r e , k e y w o r d s :s o r w a r e a r c h i t e c t u r e ;e v a l u a t i n g ;q u a l i t yf a c t o r ;q u a l i t y i n d e x ; a r c h i t e c t u r es t y l e ;e v a l u a t i o nm a t r i x t h ep r o j e c ts u p p o r t e db ya 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 np r o j e c tn u m b e r 0 1 0 4 2 2 0 7 合肥工业大学 本论文经答辩委员会全体委员审查,确认符合合肥工业大学 硕士学位论文质量要求。 主席 委员 答辩委员会签名 ;瓤新: 互泡俨易磐艾f 吒门伽 力1 b 勃攻 导师: i 数次 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果据 我所知,除了文中特别加以标注和致谢的地方外,论文中不包禽其他人已经发表或撰写过的 研究成果,也不包含为获得金胆至些太堂 或其他教育机构的学位或证书面使用过的 材料。与我一同工作的同志对本研究赝做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文作者签名: 鹰岔彦 签字日期:2 弘年占月,o 日 学位论文版权使用授权书 本学位论文作者完全了解佥壁王些盔茎有关保留、使用学位论文的规定,有权保留并 向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅,本人授权盒煎 王些态堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 芩磐电 签字日期:。口f 年6 月2 0 日 学位论文作者毕业届去向 工作单位: 通讯地址: 导师签名 耱七 签字目期:口p 年月知日 电话 衄编 致谢 值此论文完成之际,我要衷心感谢那些曾经给予我无私和真诚帮助的人们。 首先要感谢我的导师袁兆山教授,这篇论文是在他的悉心指导下才得以完成 的。多年来,袁老师在研究方向和研究方法上都对我进行了耐心细致的指导,他 勤奋踏实的工作态度、严谨的治学作风、积极的探索精神以及敏捷的思维方式等, 都给我留下了深刻的印象,也必将对我产生深远的影响,在此谨向袁老师表示崇 高的敬意和衷心的感谢。 胡学钢老师、李心科老师、李宏芒老师在我读研期间也给予很多热情和无私 的帮助,对我的研究方向和研究工作进行了认真的引导,在此表示深深的谢意。 向所有参与本论文送审、评审和答辩的老师致敬,感谢他们为本论文所付出 的辛勤劳动。 非常感谢课题组的方睿、钟金琴、张国宁同学,在我的论文完成过程中,给 予了很多真诚和无私的帮助,使我能够顺利完成论文中的研究工作。 在读研期间,我有幸遇到了很多无私奉献、兢兢业业的老师,也结识了许多 朝气蓬勃,积极进取的同学,和她们一起学习和工作,受益匪浅。这里,我要特 意感谢费爱蓉、王珏,朱晓春等同学在学习和研究工作中所给予的帮助和合作。 同时我还要感谢我的朋友何皴、庄绪、陈清等在生活给予的关心。 最后,对我的父亲李志标、母亲周宗秀及我的家人在读研期间给予我的支持 和关爱,表示深深的感谢,他们永远都是我前进的动力和精神支柱。 李莹莹 2 0 0 4 年6 月 第一章绪论 1 1 论文研究的背景与现状 1 1 1 研究背景 软件体系结构是近十多年来软件工程中最热门的研究方向之一,被工业界 和学术界普遍认为是软件工程取得突破性进展的一个关键领域。a c m 、i e e e 、 i f i p 等国际权威组织针对软件体系结构研究也都相继召开了专门会议。 c m u 、u s c 、u cb o u l d e r 、u a s s 、u w a t e r l o o 等许多国外知名高等院校和研 究机构,国内的中科院软件所、北京大学等科研单位都正在开展软件体系结构 的相关研究。在十多年的发展中,软件体系结构的思想和设计方法在很多大型 软件系统的开发中己经开始发挥出极为重要的作用。例如美国国防部的高层体 系结构仿真计划,日本东京电力公司的可操作式电力控制系统,瑞典 c e l s i u s t e c h 公司的海军命令与控制系统m k 3 0 ;诺基亚公司的诺基亚移动电话 ( n m p ) 等。软件体系结构的成功应用增强了软件的稳定性、可靠性和易理 解性,极大地提高了软件开发的质量和效率。 软件体系结构虽借鉴了计算机体系结构和网络体系结构中很多宝贵的思 想和方法,最近几年软件体系结构研究已开始独立于软件工程的研究,成为计 算机科学的一个较新的研究方向和学科分支【2 l 。软件体系结构研究的主要内容 涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结 构的形式化方法等。软件体系结构研究的是软件系统的总体结构设计,主要研 究构成软件系统的构件及构件间的交互关系,提供系统的抽象描述,使得设计 人员能对系统的总体性质进行分析和约束。通过多年的研究与实践,人们发现 软件体系结构的正确设计和选择往往是整个软件系统最终成功的关键因素。正 确的软件体系结构为软件开发和维护工作提供了强有力的支持。 因此,体系结构是一个非常新的研究领域,其概念还相当模糊。但软件体 系结构作为软件工程领域中的一个组成部分,已经取得了长足的发展,受到大 多数软件系统设计和研究人员的重视。 软件体系结构目前较活跃的研究方向包括【3 1 :( 1 ) 软件体系结构形式化基 础的研究;( 2 ) 针对软件体系结构描述中特有的问题研究新的专门的高级语言; ( 3 ) 建立用于度量和评价软件体系结构的模型和方法;( 4 ) 建立面向专门领 域的软件体系结构范型库。( 5 ) 把软件体系结构从目前的直觉和经验状态过渡 到理论上。 本文对软件体系结构的第三个研究方向的内容进行一些探讨。 1 1 2 研究现状 在软件的开发过程中,人们逐渐认识到不恰当的软件体系结构将给项目带 来灾难。因此,出现了一些软件体系结构的分析和评估技术:例如卡耐基梅隆 大学软件工程研究所( s e ia tc m u ) 的k a z m a n 等人提出的基于场景的体系结构分 析方法( s a a m ) ;以及k a z m a n 和b a r b a c c i 等提出的体系结构折衷分析方法 ( a t a m ) 体系结构层次的软件可维护性预测方法( a l p s m ) 等等。但在理论上 还没有形成对软件体系结构的评价标准,还没有统一的软件体系结构评价体系 和通用的评价方法。 1 2 论文研究的意义 体系结构是早期设计阶段的产物,是关于系统的最抽象的描述,它能够使 我们对关键需求作出推断,并限制着后续的求精。软件体系结构的正确设计和 选择,为以后的开发、集成、测试、维护各个阶段的成功提供了保证。在软件 开发过程中,问题发现得越早,越有利于问题的解决。改正在系统需求中或在 设计的早期阶段发现的错误的代价要比改正在测试阶段发现的错误的代价小很 多“。 对软件体系结构评价是通过对系统体系结构的分析,即对其组成要素、要 素之间的联系的分析,来评价该体系结构的质量属性。通过对软件体系结构的 质量属性的评价,在系统没有实际开发出来之前,可以预测其系统的质量属性, 开发属性。及时对设计的软件体系结构进行修改,对若干备用体系结构方案进 行选择。因此对软件体系结构的正确评价对保证其软件产品的质量和软件开发 过程管理意义重大。 所以,对体系结构评价的研究的意义有三点: ( 1 ) 通过对软件体系结构的评价,可以对软件体系结构进行修正,保证软件 开发的成功。 ( 2 ) 通过对软件体系结构的评价,可以选择最优的软件体系结构,优化软件 开发进程,提高软件产品质量。 ( 3 ) 通过建立一个统一的评价体系,来刻画经典软件体系结构的属性,实现 软件体系结构的选择和复用。 1 3 论文的研究内容 1 、 软件体系结构的概念、模型、视图、描述 2 、 软件体系结构的分析和评估技术 3 、 软件体系结构的评价指标体系和质量要素 4 、 软件体系结构的评价方法 5 、 软件体系结构的评价指标体系的应用一一基于评价矩阵的风格选取 6 、 软件体系结构的实例评价 2 1 ,4 本文的组织 第一章绪论:简要介绍了本论文的研究背景、研究现状和研究意义及研 究内容。 第二章软件体系结构:介绍了软件体系结构的定义、模型、视图及描述 等概念。 第三章几种软件体系结构评估技术:介绍了几种软件体系结构评估技术, 如基于场景的体系结构分析方法( s a a m ) ,体系结构折衷分析方法( a t a m ) 等 等。 第四章软件体系结构评价体系与评价方法研究:提出软件体系结构的质 量要素与评价指标体系,研究了体系结构的评价方法;单个指标的评价,单个 体系结构的整体评价,多个体系结构的整体评价。 第五章评价矩阵的实例研究与应用:通过对经典体系结构风格的评价,建 立评价矩阵,实现基于风格评价矩阵的体系结构风格的选取。 第六章软件体系结构的实例评价:以铜陵电厂焊接管理项目为例,进行软 件体系结构的评价。 第二章软件体系结构 2 1 体系结构定义 自2 0 世纪9 0 年代初期开始,软件体系结构的研究受到了广泛的关注和重 视。它将大型软件系统的总体结构作为研究的对象,认为系统中的计算元素和 它们之间交互的高层组织是系统设计的一个关键方面。其研究和实践旨在将一 个系统的体系结构显式化,以在高层抽象层次处理诸如全局的组织和控制,结 构、功能到计算元素的分配,计算元素间的高层交互等设计问题。作为其最重 要的一个贡献,体系结构的研究将构件之间的交互显式地表现为连接器,并将 连接器视为系统中与构件同等重要的实体。这样,体系结构提供了一种在较高 抽象层次观察、设计系统并推理系统行为和性质的方式池提供了设计和实现 可复用性更好的构件、甚至复用连接器的途径【5 】。 什么是软件体系结构? 目前还没有标准定义。本节给出有关软件体系结构 的一些重要定义p j : 定义1 :( d e p e r r y & a l w o l f , 1 9 9 2 ) 软件体系结构由一组具有特定形式 的部件构成,部件分为加工部件、数据部件和连接部件三类。 这是关于软件体系结构早期的定义。 定义2 : ( d g a r l a n & m s h a w , 1 9 9 3 ) 软件体系结构是软件设计过程中的一 个层次,在计算过程中的算法设计和数据结构之上,处理总体系统结构设计和 描述方面的些问题。包括总体组织与全局控制结构、通讯协议、同步、数据 存取、设计元素的功能分配,物理分布,设计元素的复合,设计方案的选择、 评估和实现等。这一定义较定义l 更贴近实际,也为目前学术界所广泛接受。 定义3 :( h a y e sr o t h ,1 9 9 4 ) 软件体系结构是由功能部件组成的系统的抽 象规范,对部件的行为、接口和部件之间的连接进行描述。 定义4 : ( s o n i ,n o r d & h o f m e i s t e r , 1 9 9 5 ) 软件体系结构至少包含概念体 系结构:描述系统的主要部件及它们之间的关系;模块体系结构:包括功能 分解和分层;执行体系结构:描述系统的动态结构;代码体系结构:描述 在开发环境中源代码、二进制码和各种库是如何组织的。 定义5 :k r u c h t c n 指出。软件体系结构有四个角度,它们从不同方面对 系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包 含功能分解与层次结构:运行角度描述了一个系统的动态结构;代码角度描述 了各种代码和库函数在开发环境中的组织。 定义6 :d a v i dg a r l a n 和d e w n ep e r r y 于1 9 9 5 年在i e e e 软件工程学报上 又采用如下的定义:软件体系结构是一个程序,系统各构件的结构、它们之间 4 的相互关系以及进行设计的原则和随时间进化的指导方针。b a r r yb o e h m 和 他的学生提出,一个软件体系结构包括一个软件和系统构件互联及约束的集 合;一个系统需求说明的集合;一个基本原理用以说明这一构件互联和约束能 够满足系统需求。 定义7 :1 9 9 7 年,b a s s ,c t e m e n t s 和k a z m a n 在使用软件体系结构一 书中给出如下的定义:一个程序或计算机系统的软件体系结构包括一个或组 软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可 见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。 上述定义虽然各有其侧重点,但其核心部分是基本致的,均包含一组计 算部件、部件之间的交互一一连接器、部件和连接器如何结合在一起的约束限 制。它的定义随着软件体系本身的发展而逐步完善。 在本文中,综合以上的定义描述,我们采用以下的定义: 软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构 成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模 式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显 示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本 原理i4 1 。 2 2 体系结构模型 尽管目前还没有关于软件体系结构的一种普遍接受的分类准则,但可以按 照讨论体系结构的目的将体系结构模型分成五种【6 】: 2 1 1 结构化模型 结构化模型可以说是最常见的体系结构模型,它将整个体系结构看成是一 系列部件连接以及其他一些成员的结构化的组合。这些其他成员主要是指系统 的结构架构、限制条件、风格、属性、分析、需求等。结构化体系结构模型被 大多数体系结构描述语言所支持的。采用这种模型的系统描述有 a e s o p ,c 2 ,d a r w i n ,u n i c o n 和w r i g h t 。 下面重点介绍结构化模型的核心【“。 综合软件体系结构概念及风格分析,软件体系结构的结构化模型由5 种元 素组成:部件( c o m p o n e n t ) 、连接器( c o n n e c t o r ) 、配置( c o n f i g u r a t i o n ) 、端口( p o r t ) 和角色( r o l e ) 。其中部件、连接器和配置是最基本的元素。 ( 1 ) 部件是具有某种功能可重用的软件模板单元,表示了系统中主要的计 算元素和数据存储。部件有两种:复合部件和原子部件,复合部件由其它复合 部件和原子部件通过连接构成:原子部件是不可再分的部件,底层由实现该部 件的类组成,这种部件的划分提供了体系结构的分层表示能力,有助于简化体 系结构的设计。典型的部件如:c l i e n t ,s e r v e r , f i l t e r , d a t a b a s e 等。 图2 - 1 体系结构的结构化模型 ( 2 ) 连接器表示了部件之间的交互,简单的连接器如:p i p e s 、p r o c e d u r e c a l l 、e v e n tb r o a d c a s t 等,更为复杂的交互如:c l i e n t s e r v e r 通信协议,数据 库和应用之间的s q l 连接。 ( 3 ) 配置表示了部件和连接器的拓扑逻辑和约束。另外,部件作为一个封 装的实体,只能通过其接口与外部环境交互,部件的接口由一组端口组成,每 个端口表示了部件和外部环境的交互点。通过不同的端口类型,一个部件可以 提供多重接口。一个端口可以非常简单,如过程调用,也可以表示更为复杂的 界面( 包含些约束) ,如必须以某种顺序调用的一组过程调用。连接器作为 建模软件体系结构的主要实体,同样也有接口,连接器的接口由一组角色组成, 连接器的每个角色定义了该连接表示的交互的参与者,二元连接器有两个角 色,如r p c 的角色为c a l l e r 和c a l l e e ,p i p e 的角色是r e a d i n g 和w r i t i n g ,消息 传递连接器的角色是s e n d e r 和r e c e i v e r 。有的连接器有多于两个的角色,如事 件广播有一个事件发布者角色和任意多个事件接受者角色。基于以上所述,我 们将软件体系结构的结构化模型表示为图2 1 。 2 2 2 框架模型 框架模型类似于结构化模型,但它把描述的重点放在系统的整体一致性上, 而不是一些结构化的细节。这种框架模型更多地被用于某一个特定领域的应 用,因为这样可以使得模型具有更多的领域特色,从而简化该领域的系统的设 计。采用这种模型的如多领域专用体系结构( d s s a s ) ,m e t a o b j e c t p r o t o c a l s ( m o p s ) 和c o r b a 等。 6 2 2 3 动态模型 动态模型可以说是结构化模型和框架模型的补充。它主要描述系统的一些 粗粒度的行为特性,如系统的重构模型和系统的发展演进等。“动态”指的是 系统总体框架的改变。包括建立和采用预先设定的演进路线。这类系统通常是 反应式的。 2 2 4 进程模型 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进 程是系统进行资源分配和调度的一个独立单位。进程模型是一种构造性、可操 作的、命令式的模型。这种模型主要将注意力集中在系统的构件过程上,即如 何按照一定的步骤来描述一个系统的构件过程。这类系统有c o n i c 等。 2 2 5 功能模型 功能模型其实可以看是框架模型的一种特例。它将系统看成一种具有某种 功能的部件的集合,这些部件按一定的规则分成若干层,每一层向在其上的层 次提供服务。 2 3 体系结构“4 + 1 ”视图模型 2 3 1 逻辑视图 逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻 辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题域。这种分 解不但可以用来进行功能分析,而且可用作标识整个系统的各个不同部分的 通用机制和设计元素。在面向对象技术中,通过抽象、封装和继承,可以用对 象模型来代表逻辑视图,用类图来描述逻辑视图【7 1 。 2 3 2 开发视图 开发视图也称模块视图,主要侧重于软件模块的组织和管理。软件可通过 程序库或子系统进行组织,对于一个软件系统,就可以由不同的人进行开发。 开发视图要考虑软件内部的需求,软件开发的容易性、软件的重用和软件的通 用性,充分考虑由于具体开发的不同而带来的局限性。 开发视图通过系统输入输出关系的模型图和予系统图来描述。可以在确定 了软件包含的所有元素之后描述完整的开发角度,也可以在确定每个元素之 前,列出开发视图原则盯l 。 2 3 3 进程视图 进程视图侧重于系统的运行特性,主要关注一些非功能性的需求,例如系 统的性能和可用性。进程视图强调并发性、分布性、系统集成性和容错能力, 以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个 类的操作具体是在哪一个线程中被执行的。 进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层 抽象中,进程结构可以看做是构成一个执行单元的一组任务。它可看成一系列 独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、 广域网等硬件资源连接起来的。通过进程视图可以从进程测量个目标系统最 终执行情况。1 7 1 2 3 4 物理视图 物理视图主要考虑如何把软件映射到硬件上,它通常要考虑系统的性能、 规模、可靠性等。解决系统拓朴、系统安装、通信等问题。当软件运行于不同 的节点上时,各视图的构件都直接或间接地对应于系统的不同节点上。从软件 到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最 小【7 1 。 大型系统的物理视图可能会变得十分混乱,因此可以与进程视图的映射一 道,以多种形式出现,也可单独出现。 2 3 5 场景 场景可以看做是那些重要系统活动的抽象,它使4 个视图有机联系起来, 从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设 计者找到体系结构的构件和它们之间的作用关系。同时也可以用场景来分析一 个特定的视图,或描述不同视图构件问的相互作用。场景可以用文本表示,也 可以用图形表示1 7 1 。 2 ,4 体系结构的描述语言 目前,国际软件工程界已提出多种软件体系结构描述语言,为了便于理解, 进一步把握软件体系结构描述语言的内涵,为新的软件体系结构描述语言研 究提供方向,有些专家从不同的角度对它们进行了分类和比较。 文献。3 根据结构配置方式把它们分为:隐式配置语言、嵌入式配置语言和 显式配置语言。第类隐式配置语言并不是真正意义上的软件体系结构描述语 言,它们并没有具体的配置规范,而把各构件的连接规范隐含在各个单独的组 件或连接器中,如a r t e k ;嵌入式配置语言虽有具体的配置规范,但把连接器 的规范描述只作为整个结构配置的一部分,因此称为“嵌入式”,也不能算真 正意义的软件体系结构描述语言;显式配置语言把组件和连接件从结构配置中 独立出来。 根据各体系结构描述语言的研究范围,文献“”将它们归为如下三类: ( 1 ) 研究软件体系结构配置结构的描述语言。这一类软件体系结构描述语言 主要针对体系结构的静态和动态配置,对体系结构配置的演化所具有的性质进 行研究,如d a r w i n 和c h a m 。d a r w i n 采用演算对系统行为进行建模,利用其 强类型系统进行静态检查。c h h m 通过对各单元的描述、引入的转换规则以及 项重写来描述和分析体系结构的动态行为。 ( 2 ) 研究软件体系结构实例的描述语言。这一类软件体系结构描述语言是 针对特定系统的,回答“系统的体系结构是什么n o r a p i d e 是这类语言的一个 例子,它是一种基于事件的、并发的面向对象的语言,专门为系统体系结构建 立快速原型面设计,由5 个子语言组成,通过这些予语言的结合使用,使锝 系统在确定实现策略之前能在体系结构的层次上进行分析和设计。 ( 3 ) 研究软件体系结构风格的描述语言。这一类软件体系结构描述语言描 述系统使用了哪类体系结构风格及该体系结构风格的含义。由于体系结构风格 的重要性,这一类描述语言研究的比较多,典型的有w r i g h t 等。另外,根据 与实现细节的关系,又可分为实现无关语言和实现相关语言。前者如 w r i g h t ,r a p i d e ,后者如u n i c o n 和m e t a h 等。 由于这些语言大多是有关的设计研究者在某种特殊应用的研究开发中而设 计和发展出来的。因此,它们有各自不同的侧重点和特色。如u n i c o n 支持异 构型部件和连接,并针对体系结构有一高层编译器:r a p i d e 是专门为系统体 系结构建立快速原型设计的,是一种基于事件的、并发的、面向对象的语言, 允许模拟体系结构设计,并提供工具分析模拟结果:w r i g h t 支持定义和分析 部件间的相互作用,其最重要的是连接件;c :支持对一个应用消息风格的用户 接口系统的描述”“”3 。 如此众多的软件体系结构描述语言及它们的支持工具,其描述方法和形式 各不相同,强调了软件体系结构的不同侧面,对软件体系结构研究起到了重要 作用。 2 5 体系结构的观点 对体系结构的不同角度的认识反映在看待体系结构的不同观点上,形成了 不同的体系结构概念和描述形式。已经提出的观点包括:结构风格、设计模式、 软件四视图、模型和关键部件、软件体系结构描述语言。 2 5 1 体系结构的风格观点 在软件设计的实践中,如同最初软件抽象所产生控制流结构和数据结构一 样,随着人们对某些特殊组织结构的频繁出现和应用价值的提高,发展并提出 了些相对固定的设计结构,称为体系结构风格。在最初,体系结构设计的主 要表现在稳定的系统组织模式的选用上,体系结构风格的发现和规范也成了软 件体系结构研究的主要方面。 曾经提出的体系结构风格有9 大类1 1 2 :( 1 ) 数据流系统,包括顺序批处理、 管道和过滤器:( 2 ) 调用返回系统,包括主程序和子程序、面向对象系统、层 9 次结构;( 3 ) 独立部件,包括通信进程、事件隐式调用:( 4 ) 虚拟机,包括解释 器、规则基系统;( 5 ) 以数据为中心的系统,包括数据库、超文本系统、黑板 系统:( 6 ) 特殊领域风格,例如过程控制、模拟器;( 7 ) 特殊结构的风格,例如 分布式处理、状态转移系统;( 8 ) 不同风格合成建立的异构结构。 一个结构风格经结构组织的模式定义了一个系统的家族。一个结构风格定 义了由部件和连接的类型描述的一个词汇集合,以及如何将这些部件和连接类 型结合的一个约束集合。 2 5 2 面向模式的软件体系结构 体系结构模式包含有层次、管道过滤器、黑板、分布系统、模型视图控 制、表达抽象控制、微核、反射等。 面向模式的观点【”】认为软件体系结构是由部件和关系构成的,但特别强 调它是软件设计活动的产物。它把部件分为控制器、协调器、界面、服务提供 器、信息保持器、结构。它把诸如状态、通信、数据流等视图看成是表示系统 部分的特殊特性的方面。该视图观点没有像其他方法一样直接描述体系结构的 表达形式的视图。 设计模式与结构风格的观点有许多相似之处,有时也不做过多的区分。但 就目前看,如果不考虑所提出的部件名称和结构的不同,对构成部件的划分上, 结构风格倾向于横向的类别划分,而设计模式倾向予纵向层次划分。所以,在 设计模式中有层次结构概念,而结构风格这方面比较缺乏。 2 5 3 体系结构的四视图观点 该观点把软件体系结构看成是由四种描述视图而构成的。这四种视图i t 4 是:概念体系结构( c o n c e p t u a la r c h i t e c t u r e ) 、模块体系结构( m o d u l e a r c h i t e c t u r e ) 、代码体系结构( c o d ea r c h i t e c t u r e ) 、运行体系结构( e x e e u l i o n a r c h i t e c t u r e ) 。 概念体系结构包括:部件、连接器、性能等,影响它的主要因素是应用闯 题的分解和划分。模块结构包括:子系统、模块、引入、引出、模块的界面、 管理、控制和一致性等。它受到软件的设计原则、组织结构和软件技术的影响。 代码体系结构包括:文件、目录、库、包含、软件的配置管理、系统建造等, 它受到语言、工具和外部系统等因素的影响。运行体系结构包括:任务、线程、 进程、性能、调度、动态分配和不同的执行系统之间的接口等,它主要受硬件 体系结构、运行环境、性能和通讯机制等因素的影响【”】。 四视图观点倾向于结构的不同视角的观察。与传统对软件的认识比较接 近。 1 0 2 5 4 体系结构的模型和关键部件观点 在总结大规模、并行、实时系统开发理论和经验提出的观点看,软件体系 结构主要关心的是高层次的系统设计,它不仅包括软件的体系结构,也包括需 求分析、计算机和设备选用、性能预测、通信和人机界面。 所提到的软件模型包括:过程抽象、对象和数据抽象、顺序条件循环设 计模型、分布设计模型、分布并行设计模型、激发一响应机制的原子活动模型、 应用环境模型、任务和控制过程的程序执行模型等。该观点提出的四个关键部 件是系统边界、系统服务和系统客户、系统界面、事务管理。体系结构分析的 一个结果是建立系统边界和系统界面的定义。系统边界是应用问题所包含或排 除的系统能力的界定。系统界面是系统与其运行环境的交互手段和方法,它反 应了系统边界外信息与系统边界内数据模型的映射关系。系统服务也称为实体 模型,提供了系统内在的状态数据模型。系统客户是为满足用户需求所提供的 操作表达。事务管理在系统界面的作用下与外部设备交互信息 1 6 l 。 2 5 5 体系结构的软件体系结构描述语言观点 由于对于体系结构概念的认识没有统一,对于系统结构描述语言的构成也 就出现了百花齐放各显其能的局面。该观点b 7 1 提出了体系结构描述由如下组 成: ( 1 ) 体系结构模型( a r c h i t e c t u r em o d e l i n gf e a t u r e s ) 部件( c o m p o n e n t s ) :是构成体系结构的计算或数据存储单元所在。 接口( i n t e r f a c e ) :部件与其外部交互提供的服务,包括消息、操作、变 量。 类型( t y p e s ) :部件类型,用以迸行部件对象的实例化。 语义( s e m a n t i c s ) :部件行为模型的描述。 约束( c o n s t r a i n t s ) :限制部件结构合法性的特性或判定。 演进( e v o l u t i o n ) :部件构成和行为的演变说明。 非功能特性( n o n f u n c t i o n a lp r o p e r t i e s ) :不能从部件的规范直接导出的 特性,例如:安全性、性能、可移植性。 连接器( c o n n e c t o r s ) :是规范部件间交互行为和约束关系的体系结构单 元。 接口( i n t e r f a c e ) :连接器与部件和其他连接器所提供的交互服务。 类型( t y p e s ) :连接器类型,用以迸行连接器对象的实例化。 语义( s e m a n t i c s ) :连接器行为模型的描述。 约束( c o n s t r a i n t s ) :限制交互的协议、建立交互依赖和使用界限。 演进( e v o l u t i o n ) :连接器构成和行为的演变说明。 非功能特性( n o n f u n c t i o n a lp r o p e r t i e s ) :不能从部件的规范直接导出 的特性 体系结构配置( a r c h i t e c t u r ec o n f i g u r a t i o n s ) :部件和连接器构成的连通 图结构。 可理解性( u n d e r s t a n d a b i l i t y ) :便于提供各类相关人员的思想交流。 合成。 生( c o m p o s i t i o n a l i t y ) :可以用不同细节的层次性描述表达系统结构。 细化和追踪性( r e f i n e m e n t a n dt r a c e b i l i t y ) :提供从初始结构向最终可运行 结构的不断设计、修改和设计活动追踪的能力。 异构( h e t e r o g e n e i t y ) :支持不同体系结构模型、不同实现语畜设计的开放 性。 可升级性( s c a l a b i l i t y ) :提供可以不断升级的复杂系统的设计能力。 演进( e v o l u t i o n ) :支持各方面的增量设计和配置能力。 动态( d y n a n i s m ) :支持所开发软件系统运行的动态结构和行为演变。 约束( c o n s t r a i n t s ) :描述整个系统的部件和连接器配置的约束关系。 非功能特性( n o n f u n c t i o n a l p r o p e r t i e s ) :系统级别的非功能特性。 ( 2 ) 工具支持( t o o ls u p p o r t ) 交互规范( a c t i v es p e c i f i c a t i o n ) :提供体系结构的设计选择和设计指导。 多视图( m u l t i p l e v i e w s ) :提供体系结构的从不同人员角度的视图。 分析( a n a l y s i s ) :提供系统设计的多层次的不断完善。 细化和追踪性( r e f i n e m e n tt r a c e b i l i t y ) :提供从初始结构向最终可运行 结构的不断设计、修改和设计活动追踪的能力。 代码生成( i m p l e m e n t a t i o n g e n e r a t i o n ) :软件设计的最终目标是建立可运 行程序。手工完成系统的实现会带来正确性和追踪等一系列问题,也在 相当程度上失去了建立体系结构描述的意义。 动态( d y n a n i s m ) 支持设计环境下的运行确认、调试和测试 该观点特别指出了体系结构描述的多层次、多视图、代码生成的重要性。 多视图观点是建立在对同一体系结构的多角度观察的基础上,不同予把多种结 构风格看作是独立结构的观点。代码生成的要求更提高了体系结构设计的对于 软件工程的意义和作用。从长远发展观点看,这是体系结构和软件工程设计的 最终归宿。事实上,体系结构描述的层次化、体系结构元素的规范和标准化, 最终必然导致可运行代码的自动化生成,从而将彻底改变软件设计实现的困难 状况。 2 6 小结 本章综述了体系结构的有关知识。介绍了体系结构的基本概念,体系结构 的模型,体系结构的视图描述,体系结构的描述语言,及其它一些体系结构的 观点。 第三章几种软件体系结构评估方法 软件体系结构评估,是对系统的某些值得关心的属性( 性能、可修改性、 可靠性等) 进行评价和判断。评估的结果可用于确认潜在的风险,并检查设计 阶段所得到的系统需求的质量,在系统被实际构造之前。预测其质量属性。 3 1 体系结构折衷分析方法 体系结构折衷分析方法( a 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 ) 是 由卡耐基梅隆大学的k a z m a n 和b a r b a e e i 等人提出的多质量属性情况下的体系 结构质量模型、分析和权衡方法。 特定目标:a t a m 的目标是考虑多个相互影响的质量属性的情况下,从 原则上提供一种理解软件体系结构的能力的方法。 质量属性:a t a m 方法分析多个相互竞争的质量属性。在开始时,考虑的 是系统的可修改性、安全性、性能和可用性, 系统参与者的影响:在与场景、需求收集有关的活动中,a t a m 方法需要 所有系统相关人员的参与。当然也包括一个软件体系结构设计者。 体系结构描述;体系结构空间受历史遗留系统、互操作性和以前失败的项 目的约束。在5 个基本结构基础上进行体系结构描述:功能结构、代码结构、 物理结构、运行结构、模块结构。可以显示系统怎样通信;软件和硬件之间的 分配关系,构件和系统怎样映射。a t a m 方法被用于体系结构设计中。也可用 于检查最终版本的体系结构。 评估技术;把a

温馨提示

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

评论

0/150

提交评论