




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江理工大学硕士学位论文 摘要 受软件危机影响,人们越来越关注软件系统的开发效率和开发成本。随着软件规模的 不断扩大,对于软件开发方法的研究,从只集中于单个产品转移到集中于一个产品族的设 计与生产;从只集中注意于设计转移到集中注意于软件的体系结构。因此,对于软件体系 结构的研究具有深远的意义。尽管定位于弥补需求分析和底层设计编码的之间的鸿沟的软 件体系结构的研究有了很大的进展,但是由于缺乏主流技术进行有效地整合,如何用高层 抽象的s a 模型来指导整个软件开发过程,一直都没有较好的方法。 论文的前半部分主要集中于软件体系结构的概念、描述方法、建模等方面的研究工作, 在比较体系结构基本概念和分析各种软件体系结构风格的基础上,归纳了软件体系结构的 核心模型,提出了软件体系结构核心模型的u m l 描述方法。不仅使体系结构与主流开发方 法相结合,同时实现了体系结构在r o s e 环境中的分层。 论文的中间部分主要介绍了将体系结构应用于实际工程项目中,指导项目开发的全过 程。详细描述了应用体系结构建模技术,结合极限编程( x p ) 开发方法的特点,以极限编程 开发模式做为项目管理的精髓,开发一个软件项目管理系统。从体系结构的结构模型、动 态模型、框架模型、过程模型等方面对系统进行描述和设计,并借助r o s e 等工具,实现 了系统的层次化、模块化的结构。 论文的最后部分主要介绍了以系统体系结构设计所得的模块化结构为模型,运用基于 模型的代码自动生成技术,设计和实现了软件代码自动生成平台,并从效率、质量和成本 等方面对该平台进行了评估。 因此,软件体系结构不仅是软件工程学的一个重要研究领域,也是解决软件危机和推 动软件产业发展的一个重要研究方向。 关键词:软件体系结构;体系结构建模;软件自动化;统一建模语言;极限编程( x p ) ;代 码自动生成技术;框架模型;模型驱动 浙江理 大学硕十学位论文 a b s t r a c t a f f e c t e db yt h es o f t w a r ec r i s i s ,m o r ea n dm o r ep e o p l ep a ya t t e n t i o no ne f f i c i e n c ya n dc o s t d u r i n gs o f t w a r es y s t e md e v e l o p i n g s i n c et h ee x p a n d i n go ft h es o f t w a r e ss c a l e ,t h es o f t w a r e d e v e l o p e r s a t t e n t i o nh a sm o v e df r o mas i n g l es o f t w a r ep r o d u c tt oaf a m i l yo fs o f t w a r ep r o d u c t s , f r o ms o f t w a r ed e s i g nt os o f t w a r ea r c h i t e c t u r e s ot 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 ei s m e a n i n g f u l t h o u g h ,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 ) w h i c hi so r i e n t e ds u p p l y i n gt h e g a pb e t w e e nn e e d sa n du n d e r l i n gd e s i g na n dc o d i n g ,h a sm a d eas i g n i f i c a n tp r o c e s s ,t h e r ei s a l w a y sn o tag o o ds o l u t i o nf o ru s i n gh i g h l e v e ls am o d e l st og u i d et h ew h o l ep r o c e s so f d e v e l o p i n gb e c a u s eo f t h a ti ti sn o ti n t e g r a t e dw i t ht h em a i n s t r e a mt e c h n o l o g yv e r ye f f i c i e n t l y t h ef i r s tp a r to ft h ed i s s e r t a t i o nf o c u s e so ns o f t w a r ea r c h i t e c t u r e s c o n c e p t s ,s t y l e sa n d d e s c r i p t i o n ac o r em o d e lo fs o f t w a r ea r c h i t e c t u r ei sg i v e nb a s e do nt h ea n a l y s i so fs o f t w a r e a r c h i t e c t u r ec o n c e p t sa n di t ss t y l e s ,a n dt h e nu m l ( u n i f i e dm o d e l i n gl a n g u a g e ) i se x t e n d e 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 e i tn o to n l yu n i f i e sa d l s ( 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 s ) a n ds o f t w a r ed e v e l o p i n gm e t h o d s ,b u ta l s om a k e sab a s i sf o rs o f t w a r ea r c h i t e c t u r e si m p l e m e n t i n r o s e , t h es e c o n dp a r to ft h ed i s s e r t a t i o nf o c u s e so na p p l y i n gs o f t w a r ea r c h i t e c t u r et oa c t u a l i t y p r o j e c t ,a n dc o n d u c t i n gt h ew h o l ed e v e l o p i n gp r o c e s s t h i sp a r td w e l l so na p p l i c a t i o no f i j l 0 _ d e l i n gt e c h n o l o g yo fs o f t w a r ea r c h i t e c t u r e ,a s s o c i a t i n gt h ef e a t u r eo fe x t r e m ep r o g r a m m i n g ( x p ) ,c o n s i d e r i n gx pa sp i t ho fp r o j e c tm a n a g e r r a e n t ,as o f t w a r em a n a g e r m e n ts y s t e mi s d e v e l o p e d t h el i s s e r t a t i o nd e s c r i b e sa n dd e s i g n st h es y s t e mf r o ma s p e c t ss u c ha ss t r u c t u r e m o d e l ,d y n a m i cm o d e l ,f r a m em o d e la n dp r o c e s sm o d e l f i n a l l y , u s i n ga u t o m a t i cc o d eg e n e r a t i o nt e c h n o l o g yb a s e do nt h em o d e lt h a ti so b t a i n e d f r o mm o d u l es t r u c t u r eo fs o f t w a r ea r c h i t e c t u r e ,t h ed i s s e r t a t i o ni n t r o d u c e st od e s i g na l la u t o m a t i c c o d eg e n e r a t i o np l a t f o r m ,a n de v a l u a t e st h ep l a t f o r mt h r o u g t he f f i c i e n c y , q u a l i t ya n dc o s t t h e r e f o r e ,s o f t w a r ea r c h i t e c t u r ei sn o to n l yt h ei m p o r t a n tr e s e a r c ho i le n g i n e e r i n ga r e a s ,b u t a l s ot h ek e yr e s e a r c hf i e l d st or e s o l v es o f t w a r ec r i s i sa n d d e v e l o ps o f t w a r ei n d u s t r y k e y w o r d :s o f t w a r ea r c h i t e c t u r e ,a r c h i t e c t u r em o d e l i n g ,s o f t w a r ea u t o m a t i c ,e x t r e m e p r o g r a m m i n g ( x v ) ,a u t o m a t i cc o d eg e n e r a t i o nt e c h n o l o g y , f r a m em o d e l ,m o d e ld r i v e n i i 浙江理工大学学位论文原创性声明 本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文,是本人在导师 的指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外,本论文 不包含任何其他个人或集体己经发表或撰写过的作品及成果的内容。论文为本人亲自撰 写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。 学位论文作者签名 日期:卯司年f 1 浙江理工大学学位论文版权使用授权书 学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家 有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。本人授权浙江理工 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印 或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 学位论文作者签名 日期:卯司年f f 保密口,在年解密后使用本版权书。 不保密口。 指导教师签名:亏欤击步 日期:矽7 年f 月je t 浙江理工大学硕士学位论文 第一章绪论 随着经济的发展和社会对软件需求的提高,软件系统变得闷益复杂,在软件的设计过 程中,人们所面l 临的问题已经不仅仅是软件系统的功能性问题,而是面临更难解决处理的 非功能性需求。软件系统规模和复杂性在不断增大,为保证软件质量,提高软件可靠性、 可重用性和可维护性,软件设计的核心已从“算法+ 数据结构= 程序”的传统计算模式转向 “构件开发+ 基于体系结构构件组装”【1 1 ,即软件体系结构的设计和规范。人们,f 始认识到, 只有真正实现软件的工程化和自动化,才能达到软件产业发展所需要的软件生产率和生产 质量。因此,以软件体系结构为中心,支持软件工程的软件快速开发技术成为当今软件歼 发的一大趋势。 软件体系结构的重要性已经引起了人们的高度重视,在理论方面也有了大量的成果, 但不足的是大部分研究仍停留在理论上,在软件体系结构的工程化应用方面几可都发有系 统的支持。而体系结构建模通常只是被看作给软件素描的方法,接下来仍必须仡大量的精 力才能把这样的画编丐成代码。 1 1 研究背景及意义 n a t o 于1 9 6 8 年提出软件工程概念以来,软件工程界已经提出了一系列的理论、方 法、语言和工具,解决了软件开发过程中的若干问题。但是,软件固有的复杂性、易变性 和不可见性,使得软件歼发伊期长、代价高和质量低的问邈依然存在。大量实践统计表明: 大系统软件开发中7 0 的错误是由需求和软件设计阶段引入的:而且错误在系统中仔舀j n :j 时问愈长则愈难发现,解决这些错误的代价也愈高。 为了提商软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各科,软 件建模技术。但是在需求与设计之间仍存在一条很难逾越的鸿沟,即缺乏能够反映决策f 句 中间过程,从而很难有效地将需求转换为相应的设计。为此,软件体系结构概念应远而生, 并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现 平坦地过渡的问题。 从机器语言、汇编语言、过程式程序设计语言、面向对象程序设计语言、形式化( 半形 式化) 规格说明语言( 如体系结构描述语言) 发展过程中,可以发现:计算机语言越来越适笛 于) 干发人员的思维活动模型,代码复用的级别也在不断地提升,如图1 1 所示,体系纩构技 术的研究,使软件复用从代码复用发展到设i f 复用郁过裉复用2 1 。 浙江理j = 大学硕士学位论文 w i n 嗣 y b 脚i i f 轴憎辩”o 轴雌e 4 孵誓t 嘲+c 产m h h 吲h r 蛔“埘- - 雠栅+ m ,c h m t ,辅州yn 懈抽“h ”# # 妒p o 协雌婚5 滞 越“舛t p l 描# - 弘h 6 辨2 知蚋酬h - 掌 。_ 彩- 蓑鹚键廊擎阜蒲母魏避一拧托药蕾黉代码柠警赣掌拇箍乎奄椴姑谚嚣。 o 鳆蠕蚺嚣癣# 牲式e t a - 雠计咖赢。秘鼬辫鲇黧牲洋辆寄嚣蠛帚媾嘲电嚣 图1 1 计算机语言的变迁与复用的升级图示 鉴于软件体系结构的重要性,d e p e r r y 将软件体系结构视为软件开发中第一类重要的 设计对象,而b a r r y b o e h m 明确指出:在没有设计出体系结构及其规则时,那么整个项目不 能继续下去,而且体系结构应该看做是软件开发中可交付的中间产品【封。由此可见,体系 结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决 策,并作为系统设计的抽象,为实现框架和构件的共享与复用、基于体系结构的软件丁f 发 提供了有力的支持。 1 2 研究内容 本课题的主要内容是实现基于体系结构的软件开发的研究。从实际项目出发,通过对 软件体系机构的研究,实现体系结构的从需求分析到系统建模,从构件设计到模块共用, 从功能复用到软件自动生成的全过程。不仅涉及基于体系结构的建模技术,还将涉及以体 系结构建模为基础,采用基于模型的代码自动生成技术实现部分代码的自动生成。 1 , 3 论文结构 第一章绪论,主要阐述论文的应用背景和主要的研究内容。 第二二章软件体系结构研究的发展状况,主要阐述了软件体系纬构f 1 j 发展史,以及同时 国际、国内列软件体系结构的研究趔艮、研究力法等。从而提出了作者使用软件体系儡构 进行软件开y 、的思路和立足点。 第三章软件体系结构的描述和实现技术,主要阐述当今国际上对软件体系结构的 砦 形式化拙述,通过分析各种描述方法的优劣,从中定义一种适应于实际项目开发的软件体 系结构的形式化定义,并使用u m l 及其扩展机制进行描述。同时对于代码自动生成技术似 为软饲体系结构的实现过程的关键性技术进行介绍。 第四章基于软件体茅结构的软件开发实现,主要阐述一个基于软件体系结构的软件开 发实例,采用基于软f , 体系结构的建模方法,从结构模型、框架模型、动态模型和过程模 型等多个角度对系统进行建模,开发一个以极限编程开发方式做为项目管理思想的软件项 目管理系纺,并通过需求分析、系统设计、系统实现将该系统实现。 第五章基于模型的代码自动生成平台。在系统的体系化结构设计后,系统的萨块化和 层次化结群j # 显得格外清晰,这一章,论文将介绍以系统的体系化结卡;模型为基础,采用 2 浙江理j i 大学硕士学位论文 基于模型的代码自动生成技术,开发代码自动生成平台,提高系统开发效率、节约系统成 本、保证系统质量。 浙江理工大学硕士学位论文 第二章软件体系结构研究的发展状况 2 1 软件体系结构的发展史 软件系统的规模在迅速增大的同时,软件开发方法也经历了一系列的变革。在此过程 中,软件体系结构也由最初模糊的概念发展成一个渐渐成熟的技术。2 0 世纪7 0 年代以前, 尤其是在以a l g o l 6 8 为代表的高级语言出现以前,软件开发基本上都是汇编程序设计。此 阶段系统规模较小,很少明确考虑系统结构,一般不存在系统建模工作。7 0 年代中后期, 由于结构化开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,而且主 要任务是数据流设计与控制流设计。因此,此时软件结构已做为一个明确的概念出现在系 统的开发中。2 0 世纪8 0 年代初:至l j 9 0 年代中期,是面向对象开发方法兴起与成熟阶段。由于 对象是数据与基于数据之上操作的封装,因而在面向对象开发方法下,数据流设计与控制 流设计统一为对象建模,同时,面向对象方法还提出了一些其他的结构视图。如在o m t 方 法中提出了功能视图、对象视图与动态视图( 包括状态图和事件追踪图) ;而b o o c h 方法中 则提出了类视图、对象视图、状态迁移图、交互作用图、模块图、进程图;而1 9 9 7 年出现 的统一建模语吉u m l 贝j 从功能模型( 用例视i n ) 、静态模型( 包括类图、对象图、构件图、包 图) 、动念模型( 协作同、顺序图、状态图和活动图) 、配置模型( 配置图) 描述应用系统的结 构。9 0 年代以后则是基于构件的软件开发阶段,该阶段以过程为中心,强调软t - 1 = 7 f 发采用 构件化技术和体系结构技术,要求丌发出的软件具备很强的自适应性、互操作性、可扩展 性和可重用性。此阶段中,软件体系结构已经做为一个明确的文档i 口中问产品存在于软州 开发过程中,同时,软件体系结构作为- f - i 学利逐渐得到人们的重视,并成为软件程领 城的研究热点,因而p e r r y 1 w o l f 认为,未来的年代将足研究软件体系结构的州代j 2 。】。 纵观软件体系结构技术发展过程,从最初的“无结构”设计到现行的基于体系结构软 件开发,可以认为经历了4 个阶段:( 1 ) “无体系告构”设计阶段:以汇编语言进 小规午廷 应用程序开发为特征;( 2 ) 萌芽阶段:g 现了程序结构设计主题,以控制流图和数扭1 i i c 图n 威软件结构为特征;( 3 ) 初期阶段:出现了从不同侧面描述系统的结构模型,以u m l 为典型 代表;( 4 ) 高级阶段:以描述系统的高层抽象结构为中心,不关心具体的建豫细节,划分了 体系结构模型与传统的软件结构的界限,该阶段以k r u c h t e n 提出的“4 + i ”模型q 为标志, 但是由于( 1 ) 体系结构的概念尚不统一;( 2 ) 体系结构的描述规范尚不能达成一致认识; ( 3 ) 在软件开发实践中软件体系结构尚不能发挥重要作用。旦:此,软伺。体系结构技术尚未达 剑成熟阶段【2 1 。 2 2 软件仿系结构的分类 4 浙江理工大学硕十学位论文 总的说来,软件体系结构可分为两大部分:一般的、抽象的软件体系结构和特定域的 软件体系结构。 对于抽象的软件体系结构的风格和模式,g a r j a n t 6 1 对其进行了分类。主要有管道过滤 器,面向对象组织,基于事件的、隐式激发机制的系统,仓储,分层系统,表驱动的解释 器,分布式进程,主程序子程序组织的系统,状态转移系统,进程控制系统等。 特定域的软件体系结构可以有很多。t e d7 1 介绍了军事领域的软件体系结构,包括: 智能武器、军事命令与控制系统、制造执行系统、自动车辆管理系统等。在电信领域,随 着技术的发展,出现了智能网、电信管理网和电信信息网络体系结构等软件体系结构。 2 3 基于体系结构的软件开发方法 当前,软件体系结构技术的发展正处于初级阶段,对基于体系结构的软件开发方法的 研究尚不完善,虽然很多人在这方面提出了不同的见解,但是还没有达成共识。其中一些 基于体系结构的软件自动生成方法正在同趋地被人们所认识和使用。 在这哩,我们对基于体系结构的软件自动生成方法进行探讨和研究。目前,在面【上j 对 象的系统设计过程中各个对象之、日j 有比较多的相似之处。在编写代码时可将每个数据表视 为数掘层的个实体类,而在这些实体类之问存在相当大的共性,因此我们不需要对返些 实体类的代码以及对应的数据表的数掘维护界面进行手工编码。而是从分析数掘表实体的 属性和行为及其相互关系入手,根据不同的转换模板自动生成具有大量共同点的源代码, 从而能够节省大量重复的人力编码,使程序开发人员在进行面向对象编铲时,不再足中纯 地从代码的第一行一直编写到最后一行,而是在基于体系结构的基础上,考虑如何创建埘 象、利用对象的共同点自动生成大量类似的代码束降低程序丌发中的编写代码工作量和提 高代码可读性,也有利于分析设计人员更好以面向才! 象的眼光来进行分析设计。 从软件自动生成过程来看可以分为五个阶段:第一阶段,需求分析阶段,该阶段是轳 个的代码生成过程的基础。它的主要任务就是将用户提出的非形式语言的需求转换为系统 模坠的表示方式:第二阶段,构件创建阶段,根据用户需求创建构件,该系统把所要创建 的工程称为构件,构件类型即工程类互! 。该阶段的工作就是选择将要生成工程;0 类型,设 定工程属性;第三阶段,模型创建阶段,定义工程所用到的类,添加工程引用的组件,以 及组件与细件、组件与对象和对象与对象之问的联系:第四阶段,模型扩充阶段,将定义 好的类进行扩充,主要是丰富类的内容。比如:对窗体类的扩充,就是打玎将要扩充的类 的设计模板在上面添加需腰的对象以及对雾之间的关系;第五阶段,代码生成t j 介段,设 定需要生成的目标代码语言岁型,执行代码生j j 3 命令,系统自动将逻辑视图中定义的对象 浙江理工大学硕士学位论文 映射到目标代码所定义的组件,结合相应的规则和算法即可生成整个工程的源代码8 1 。 2 4 软件体系结构的建模 研究软件体系结构的首要问题是如何表示软件体系结构,即如何对软件体系结构建 模。根掘建模的侧重点的不同,可以将软件体系结构的模型分为5 种:结构模型、框架模 型、动态模型、过程模型和功能模型。这5 个模型中,最常用的是结构模型和动态模型。 结构模型:这是个最直观、最普遍的建模方法。这种方法以体系结构的构件、连 接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配 置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言( a d l ) 。 框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整 体的结构。框架模型主要一些特殊的问题为目标建立只针对和适应该问题的结构。 动态模型:动态模型是对结构或框架模型的补充。 研究系统的“大颗粒”的i ,为 性质。例如,描述系统的重新配嚣或演化。动态可能指系统总体结构的配置、建立或拆除 通信通道或计算的过程。这类系统常是激励型的。 过程模型:过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的 结果。 功能模型:该模型认为体系结构是由一组功能构件按层次组成,下层向上层j 鬯供服 务。它可以看作是种特殊的框架模型。 这5 种模型各有所长,也许将5 种模型有机地统一在一起,形成一个完整的杉型东刻 画软件体系结构更合适。k r u c h t e n 提出了一个“4 + 1 ”的视角模型。“4 + 1 ”模型从5 个小 同怕视角包括逻辑视角、过程视角、物理视角、丌发视角和场景视角来拙迓软什体系结构。 每一个视角只关,心系统的一个侧面。5 个视角结合在起彳。能够反映系统的软件体系结构 的全部内容h 。 2 5 软件体系结构研究存在的不足 尽管自1 9 9 4 年召开j 首届软件体系结构国际研讨会以来,软件体系结构研究领域取 得了上述的老干成果,但在应用方面,软件体系结构仍然很不成熟。m e d v o v o n i c 认为,目 前对软件体系结构的理解还仅限于直观、或当作稀奇事、或当作民间传说;语:7 丰富,但 不够严谨。而第2 届产品线系统的体系结构开发与演化国际研讨会的总结报告认为,体系 结构似乎没有解决实际问题1 0 】。由此可见,若要有效地指导软件工程实践、为软件丌发提 供一个好的结构及其设计结构的指导e 7 则,软件体系结构研究还有若干问题需要自。解决。 总结对软件佴系结构的研究,我们认为存在如下不足1 2 】。 浙江理工大学硕士学位论文 ( 1 ) 缺乏统一的软件体系结构的概念,导致体系结构的研究范畴模糊。例如,学院派 研究者着重考虑体系结构强大的分析能力,而实用派研究者则过多强调体系结构应该直接 支持系统的实现。概念的不统一导致设计人员交流上的困难,不利于支持工具的研制,不 利于软件体系结构的应用。 q ) 体系结构描述语言( a d l ) 繁多,缺乏统一的a d l 的支持。尽管s h a w 等人提出 了体系结构互换语言a c m e ,但没有统一的体系结构描述语言框架与定义,不同体系结构 描述语言所描述的体系结构规格说明难以互换。n m e d v o v o n i c 在分析现存的多种典型a d l 基础上尝试提出a d l 的定义与分类框架,基于该定义与分类框架可以研究并提出统一的 a d l 。 ( 3 ) 软件体系结构研究缺乏统一的理论模型支持。尽管提出了若干体系结构语言与其 车拜应的理论模型,但还不能系统地解释软件体系结构中的重要概念。 ( 4 ) 在体系结构描述方面,尽管出现了多种标准规范或建议标准,但仍很难操作。例 如必要豹视图、视点集、或视图之间的映射关系还没有完全解决。 ( 5 ) 有关软件体系结构性质的研究尚不充分。尚无法明确定义一个“良好的体系结构” 的属性或判定标准,没有给出软件体系结构的设计指导原则,因而对于软件开发实践缺乏 有力的促进作用。 ( 6 ) 缺乏有效的支持环境,软件体系结构理论研究与环境支持不同步,敌乏有效的他 系结构分析、设计、仿真和验证工具支持,导致体系结构应用上的困难。例如,提出了体 系结构描述爵言,但往往是复杂的形式化攫约且没有开发日,相应的支持工具:即使f i 了支 持工具,也无法与其他丌办工具有效地集成,导致这种体系结构构造活动在软件丌发一 ,足 孤立的,也就失杰了体系结构的应用意义。 ( 7 ) 缺乏有效的佴系结构复用方案,尽管体系结构足一种高层的系统抽象,并且具有 相对的稳定性,但是体系结构又是经验与设计知识的体现,如何况明体系结构,重用已有 体系结构的过程、体系结构演化等问题,尚未很好地解决。 ( 8 ) 体系结构发现方法研究相对欠缺。由于系统维护、系统演迸、环境变化等因素, 因此有必要从那些尚不存在体系结构规格说明的系统中逆向提取和恢复系统的体系 :构 规格说明,即体系结构逆向发现。我们认为,该领域研究很不成熟。基本上鲜有研究,尚 未发现比较可行的体系结构发现方法。 2 6 软件体系结构的不同思路 一个好的体系结丰句是系统开发成功的重要因紊。但由于对软件体系结构的不同见解, 浙江理= 大学硕七学位论文 不仅导致了上节讨论的软件体系结构的概念分歧,也使得研究内容和研究途径呈现很大的 差异。归纳起来,目前体系结构研究可以分为典型的两种派别:学院派与实用派。学院派 研究者侧重于软件体系结构形式化理论研究,实用派研究者将软件体系结构设计、描述与 表示同传统的软件系统建模视为一体,因此,将软件建模技术直接用来描述软件体系结构, 典型的思路是将u m l 可视化建模技术直接用来表示软件体系结构,两种体系结构研究思路 的比较见表2 ,1 。 表2 1 两种不同的体系结构研究思路比较 学院派研究思路 实用派研究思路 关注体系结构模型的解析与评估关注广泛范围内的歼发问题 单个模型 多个模型集 严格的建模符号强调的是实践可行性而非精确性 强有力的分祈技术将体系结构看成是开发中的一幅蓝本 专门目标的解决方案 通用目的的解决方案 与实现无关 考虑实现 b o o t h 从u m l 的角度给出了一种由设计视图、过程视图、实现视图和布署卒见图,再加 上一个用例视图构成的体系结构描述模型。m e d v o v o n i c 总结了用u m l 描述体系结构的3 种 途径:不改变u m l 用法而直接对体系结构建模;利用u m l 支持的扩充机制扩展u m l 的元 模型实现对体系结构建模概念的支持:对u m l 进行扩充,增加体系结构建模元索】。于卫 ”1 等人研究了其中的第2 种方案,其主裴思路起提喙5 个软件体系结构的核心部件,利崩 u m l f l 扩充机制中的一种给出了相应的0 c l 约束规则的描述,并且给出了描述返些元素之 间关系的模型l “。 本文主要从实用派的角度出弦,以实现为最终目的丌= 发研究一个可供广大软件公司使 用软件项目管理系统s d e m x p 系统。 2 7 本章小结 本章主要j 盐述了软件体系结构的研究的发展历史以及发展状况,通过大量的调奁研 究,提出了目前软件体系结构的一些研究方向和使用软件体系结构来建模的方法。同时, 确定了本文将从实用派的角度出发,以u m l 及其扩展机制为基础,实现从软件建模到软件 设计实现虬全过程。 浙江理工火学硕十学位论文 第三章软件体系结构的描述方法和实现技术 3 1 软件体系结构的描述方法 3 1 1 软件体系结构的有关定义 若干软件体系结构学者提出了自己的概念与定义,我们将介绍几个具有代表性的定 义,并分析其共同点。然后,根掘我们对软件体系结构的理解,给出能够反映软件体系结 构基本特征的定义。 定义1 c f r p 模型1 1 3 i s a = e l e m e n t s ,i n t e r f a c e s ,c o n n e c t i o n s ,c o n n e c t i o n ,s e m a n t i c s 软件系统由一组元素( e l e m e n t s ) 构成。这组元素分成处理元素和数据元素。每个元素有 一个接( i n t e r f a c e ) ,一组元素的互连( c o n n e c t i o n ) 构成系统的拓扑。元素互连的语义是:静 态互连语义( 如数据元素的互连) ,描述动态连接的信息转换的协议( 如过程调用,管道等) 。 定义2 v e s t a l 模型 s a = e o m p o n e n t ,i d i o m s s t y l e s ,c o m m o np a t t e r n so fi n t e r a c t i o n 软件由构件( c o m p o n e n t ) 组成,构件之| 日j 通过通用的互操作模式相连。体系结构风格 ( s t y l e ) 描述了种通用的设计模式,可满足特定系列的应用需求。 定义3 g a f i a n & s h a w 媳1 1 5 i s a = 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 s 构件( c o m p o n e n t ) n 以地= 组代码,如程序的模块;也可以是一个独立的程序,如数捌 库的s q l 服务器。连接器, ( c o n n e c t o r ) 表示构件之问的相作用。它呵以是过程凋崩、管道、 远程过程调用等。一个软件体系结构还包括某些限$ 1 j ( c o n s t r a i n ) 。该模型视角是程序没计话 言,构件丰要是代码模块。 定义4 p e r r y & w o l f 模型1 1 6 l s a = e l e m e n t s ,f o r m ,r a t i o n a l j 软件体系结构是由一组元素( e l e m e n t s ) 陶成,这组元素分成3 类:处理元素( p r o c e s s i n g e l e m e n t s ) 、数据元素( d a t ae l e m e n t s ) t l 连接元素( c o n n e c t i n ge l e m e n t s ) 。软件 本系结构形式 ( f o r m ) 是由 ,有特i s ( p r o p e r t i e s ) 和关系( r e l a t i o n s h i p ) 组成。专有特性用于限制软件体系结构 元素的选择,关系用于限制软件体系结构元素组合的拓扑结构。而在多个体系结构方案中 选择合适的体系结构力+ 案往往基于一饱准贝l j ( r a t i o n a l ) 。 定义5 i e e e6 1 0 1 2 1 9 9 0 软件工程标准词汇中的定义i 7 i a r c h i t e c t u r e 2 c o m p o n e n t ,c o n n e c t o r ,e mi r o n m e n t ,p r i n c i p l e l 9 浙江理| 丁人学硕七学位论文 体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某系统的基 本组织结构,以及指导上述内容设计与演化的原理。 定义6 b o e h m 模型 s a = c o m p o n e n t s ,c o n n e c t i o n s ,c o n s t r a i n t s ,s t a k e h o l d e r s n e e d s ,r a t i o n a l e l 软件体系结构包含系统构件、连接件、约束的集合;反应不同人员需求的集合;以及 能够展示由构件、连接件和约束所定义的系统在实现时如何满足系统不同人员需求的原理 的集合。 比较上述各种体系结构的定义可以发现:定义1 和3 都强调了体系结构是由构件、连接 件及其约束( 或连接语义) ,即从构造的角度来审视软件体系结构。而定义2 和4 侧重于从体 系结构风格、模式和规则等角度来考虑软件体系结构,采用的是一种俯瞰的视角。定义5 不仅强调了体系结构系统的基本构成,同时还强调了体系结构的环境即与外界的交互。定 义6 则强调了软件体系结构是一组概念以及关于软件系统结构的设计决策,用束使待丁| 二发 的系统在体系结构上满足重要的功能与质量需求。尽管各种定义都从不问的角度关汀软件 体系结构,但j 核心内容都是软件系统的结构,并且都涵盖了如下一些实体:构件、构件 之i 日j 的交互关系、限制、构件和连接件构成的拓扑结构、设计原则与指导方针u 们。 3 1 2 软件体系结构的形式化描述 综合以上软件体系结构概念及风格分析,在这里,我们给出了一个适应于实际项目运 用的体系结构的核心模型定义。 定义 s a = 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 j 通过该定义,可以得出软件体系结构的核心模型由5 种元素组成:部件( c o m p o n e n t ) 、 连接( c o n n e c t o r ) 、配氍( c o n n g u r “o n ) 、端口( p o r t ) 和角色( r o l e ) 。其中部件、连接和配置足最 基本的元素。 ( 1 ) 部件是具有某种功能可重瑁的软件模板单元,表示了系统中主要的计舅元素和数 扼存储。部件有两种:复合部件和原子帮件复合部件由其它复合部件和原予部件通过连 接构成;原子部件是不可再分的部件,底层由实现该部件的类组成,这种部件的划j 提供 了体系结构的分层表示能力,有助于简化体系结构的设汁。典型的部件如:c l i c n t ,s e r v e r , f i l t e r ,d a t a b a s e 等。 ( 2 ) 连接表示了部,丰之间的交互,简单的连接如:p i p e s ,p r o c e d u r ec a l l ,e v e n t b r o a u 。a s t 等,更为复杂的交互如:c l i e n t - s e r v e r 通信协议,数据库和应用之间的s q c 连接。 浙江理工火学硕士学位论文 ( 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 。有的连接有多于两个的角色, 如事件广播有一个事件发布者角色和任意多个事件接受者角色。 因此,我们可以将软件体系结构的核心模型表示如下图所示。 图3 1 软件体系结构核心模犁 目前关于软件体系结构的描述已有许多工具支持,但各种工具刁i 仅是领域相关的,而 且描述方法也不尽统一,这使设计人员很难选择一种合适的工具1 2 “。因此,我们将体系结 构的共同特征提取出来,作为体系结构描述的核心模型,其优点在于:一方面呵以作为各 种工具描述的共同基础着要用某一种工具描述,只需增加描述与其相关的约康;另一 方面也为下面关于体系结构的u m l 描述奠定了基础。 3 1 3 软件体系结构核心模式的u m i ,描述 使用u m l 2 1 , 2 2 描述软件体系结构,可圳通过定义新的元素作为u m l 元模型中某元类的 子类。但是这种方泣需要修改u m l 元棱型,难以获得1 _ r m l 相关工其的支持,而使用u m l 提供的嵌入扩充机制对u m l 进行定制,不仅可以避免修改u v i l 元模型。而且还可以利用 u m l 的相关工具。因此,我们首先在l m l 中选择与软件体系结构元素语义相近的元类,定 浙江理工大学硕士学位论文 义它之1 2 i 拘s t e r e o t y p e 做为该元类的实例,并用对象约束语言( o c l ) 描述软件体系结构的约 束,这样就可以与u m l 元模型一致并可重用现有的u m l 相关工具【2 3 1 。 部件是一个封装的实体,它的实现部分不具有对外的接口,接口由一组p o r t 构成。此 外,部件还具有分层的能力,即复合部件的下一层是通过连接器相连的更为具体的部件( 称 为其子部件) ,原子部件的下一层是实现该部件的类。连接器( c o n n e c t o r ) 表示了部件之间的 通信机制。在某些软件体系结构的研究中( 如u n i c o n 等) ,连接只是概念上的抽象,它的具 体实现嵌入在部件之中,一般没有相应的实体与之对应( 如u n i x 部件从管道中读、写) ,在 这种情况下,当一个部件与预定义的连接不匹配时,只能对部件进行重写,或者对部件进 行包装以适应新的应用背景,这就限制了部件的重用。因此,如同部件一样,我们把连接 也作为软件体系结构的重要实体,将表示p o r t i j 勺s t e r e o t y p e 定义在u m l 的p a c k a g e 之上。使 用u m l 表示软件体系结构的具体实现如下| 2 4 】。 ( 1 ) 软件体系结构仅出其部件元素构成: s e l f o c l t y p e e l e m e n t s ( f o r a l l ( m e l m e s t e r e o t y p e = c o m p o n e n to r m e s t e r e o t y p e = c o n n e c t o r ) ) ; ( 2 1 每一个部件具有两个t a g g e d v a l u e 。其中k i u d o f c o m p o n e n t 标志它是原子部件或是 复合部件,s u b c o m p o n e n t s 表示其子部件组成: k i n d o f c o m p o n e n t :e n u m c o m p o s i t ec o m p o n e n t ,p r i m i t i v ec o m p o n e n t s u b c o m p o n e n t s :s e t ( 3 ) 部件只能通过p o r t 与其它连接帽关联,i f i i 不能与其它部件相关联: s e l f o c l t y p e a s s o c e n d s t e r e o t y p e = p o r t ; ( 4 ) 每一个部件4 :能没有p o r t : s e l f o c l t y p e a s s o c e n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 花店出入库管理制度
- 茶包装标识管理制度
- 重要接待车管理制度
- 落地式卸料平台施工方案的专家验证
- 课外读物进校园管理实施方案
- 江门市房地产市场调研分析报告(案例)
- 财经英语华为手机
- 视觉感知行业发展历程分析
- 山东省德州市宁津县育新中学等2024-2025学年七年级下学期5月期中考试数学试题(含部分答案)
- 试题【python二级】知识点-题型练习
- 安全教育培训课件:食品安全法律法规
- 社区养老院项目规划设计方案
- 2023年河北石家庄市事业单位招聘笔试参考题库(共500题)答案详解版
- 干部履历表(99年标准版)
- 跨越档封网计算表
- 断路器控制回路和信号回路
- 完整版-第八版内科冠心病课件
- 高中英语语法总结大全
- 2023小学道德与法治(部编版)五年级下册 第三单元复习课件
- 医生护士家长父母进课堂助教-儿童医学小常识PPT
- 生活垃圾清运服务组织机构及岗位职责
评论
0/150
提交评论