(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf_第1页
(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf_第2页
(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf_第3页
(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf_第4页
(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)基于构件的形式化方法在软件开发中的应用研究.pdf.pdf 免费下载

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

文档简介

_ f , c l a s s i f i e di n d e x : u d c : ad i s s e r t a t i o nf o rt h ed e g r e eo fm e n g r e s e a r c ho f a p p l i c a t i o n o n c o m p o n e n t - b a s e dfo r m a lm e t h o do n so f t w a r ed e v e l o p m e n t c a n d i d a t e :w a n gy o n g w e i s u p e r v i s o r :p r o f y a n gj i n g a c a d e m i cd e g r e ea p p l i e df o r :m a s t e ro fe n g i n e e r i n g s p e c i a l i t y :c o m p u t e ra p p l i e dt e c h n o l o g y d a t eo fs u b m i s s i o n :j a n u a r y7 t h ,2 0 1 0 d a t eo fo r a le x a m i n a t i o n :m a r c h1 2 t h ,2 0 1 0 u n i v e r s i t y :h a r b i ne n g i n e e r i n gu n i v e r s i t y d, 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用已在 文中指出,并与参考文献相对应。除文中已注明引用的内容外, 本论文不包含任何其他个人或集体已经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) :王豪形 日期:口f p 年f 月7 日 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可g 在授予学位1 2 个月后 口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 作者( 签字) :王象节导师( 签字) :彳锄 日期: 力oi 口年f 月- 日) o to 年1 月1 日 , , j 一 l , - 哈尔滨丁程大学硕十学位论文 摘要 基于构件的软件开发是提高软件生产率、提高软件质量、解决软件危机 的重要方法,是软件复用领域的研究热点;解决软件危机的另一方面是如何 建立严格的数学方法,如何进行形式化软件开发。如何将基于构件的软件开 发和形式化方法相结合是软件开发发展的重要方向。 鉴于基于构件的软件开发缺少严密的数学推理,没有形式化的规格说明, 大部分开发过程采用自然语言进行描述,本文给出了基于构件的形式化软件 开发模型,重点研究该模型中需求分析的形式化、设计阶段软件体系结构、 形式化构件模型及形式化构件交互。针对传统软件开发中需求分析不准确和 二义性等问题,使用z 语言对需求分析形式化表示进行了扩充,并通过实例 对形式化表示进行了说明,其具有消除需求分析的二义性和不一致性的能力。 需求分析关注如何刻画问题空间,软件体系结构关注如何刻画解空间,如何 根据需求分析获得软件体系结构没有定论,文中给出了一种基于功能和三层 开发框架获取概要设计软件体系结构的方法。针对现阶段构件接口定义中构 件行为和交互协议信息缺乏,利用形式化语言s e s s i o nt y p e 定义了构件、连接 子以及构件交互语义,完成了详细设计阶段软件体系结构的精化,增强了构 件接口信息的描述能力。 最后,将基于构件的形式化软件开发模型应用于某公司o a 中的办公用 品管理系统开发,结果表明该模型具有一定的可行性和适用性,且具有一定 的实际应用价值。 关键词:构件模型;连接子;形式化;2 语言;s e s s i o nt y p e 0 j 0 哈尔滨t 稗大学硕十学位论文 a b s t r a c t 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 ti sa r li m p o r t a n tm e t h o dt oi m p r o v e s o f t w a r ep r o d u c t i v i t ya n dq u a l i t y , a n ds o l v es o f t w a r ec r i s i s i ti sar e s e a r c hf o c u s o ft h ea r e ao fs o f t w a r er e u s e ,a n di t sk e yt e c h n o l o g yi st h es o f t w a r ea r c h i t e c t u r e a n dc o m p o n e n tm o d e l i ti st h eo t h e rw a yt os o l v es o f t w a r ec r i s i sb o wt oe s t a b l i s h as t r i c tm a t h e m a t i c a lm e t h o d st oc o n d u c tf o r m a ls o f t w a r ed e v e l o p m e n t i ti sa n i m p o r t a n t d i r e c t i o n o fs o f t w a r e d e v e l o p m e n t t h a tb o wt oc o m b i n e 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 ta n df o r m a lm e t h o d 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 l a c k s r i g o r o u s m a t h e m a t i c a l r e a s o m n g ,a n dh a sn of o r m a ls p e c i f i c a t i o n m o s to ft h ed e v e l o p m e n tp r o c e s si s d e s c r i b e du s i n gn a t u r a ll a n g u a g e s ot h i sp a p e rp r e s e n t sac o m p o n e n t - b a s e d f o r m a ls o f t w a r ed e v e l o p m e n tm o d e l i tf o c u s e so nf o r m a lr e q u i r e m e n t sa n a l y s i s , s o f t w a r ea r c h i t e c t u r eo fd e s i g n p h a s e a n df o r m a l c o m p o n e n tm o d e la n d i n t e r a c t i o n r e q u i r e m e n t sa n a l y s i si si n a c c u r a t ea n da m b i g u o u si i lt h et r a d i t i o n a l s o f t w a r ed e v e l o p m e n t t h ep a p e re x p a n d sf o r m a lr e q u i r e m e n t sa n a l y s i su s i n gt h e zl a n g u a g e ,a n dd e s c r i b e si tt h r o u g he x a m p l e s i th a sc a p a c i t yt oe l i m i n a t e a m b i g u i t ya n di n c o n s i s t e n c yo fr e q u i r e m e n t sa n a l y s i s r e q u i r e m e n t sa n a l y s i si s c o n c e r n e da b o u th o wt od e s c r i b et h ep r o b l e ms p a c e ,w h i l es o f t w a r ea r c h i t e c t u r e c o n c e r n e da b o u tb o wt od e s c r i b et h es o l u t i o ns p a c e ,s oi ti sap r o b l e mt h a tb o wt o g e ts o f t w a r ea r c h i t e c t u r ef r o mr e q u i r e m e n t sa n a l y s i s t h ep a p e rp r e s e n t sam e t h o d t oi m p l e m e n ti tb a s e do nf u n c t i o na n dt h r e e - t i e rd e v e l o p m e n tf r a m e w o r k b e c a u s e o fl a c ko f c o m p o n e n tb e h a v i o ra n di n t e r a c t i o np r o t o c o li ni t si n t e r f a c ed e f i n i t i o n f o rt h i ss t a g e ,t h ep a p e rd e f i n e sc o m p o n e n t s ,c o n n e c t o r sa n das e m a n t i co f c o m p o n e n ti n t e r a c t i v e t h e d e f i n i t i o ne n h a n c e s d e s c r i p t i o nc a p a c i t y o f i n f o r m a t i o no fc o m p o n e n ti n t e r f a c e b 哈尔滨下程大学硕十学位论文 f i n a l l y , t h ec o m p o n e n t b a s e df o r m a ls o f t w a r ed e v e l o p m e n tm o d e l i sa p p l i e d t od e v e l o p m e n to fo f f i c es u p p l i e sm a n a g e m e n ts y s t e mo fao as y s t e mo fs o m e c o m p a n y t h er e s u l t ss h o wt h a tt h em o d e lh a sac e r t a i nf e a s i b i l i t y , a p p l i c a b i l i t y , a n dp r a c t i c a lv a l u e k e yw o r d s :c o m p o n e n tm o d e l ;c o n n e c t o r ;f o r m a l ;zl a n g u a g e ;s e s s i o nt y p e 哈尔滨t 程大学硕十学位论文 目录 第l 章绪论l 1 1 课题研究的目的和意义l 1 2 国内外研究现状”2 1 2 1 国内研究现状2 1 2 2 国外研究现状”3 1 3 主要研究内容4 1 4 论文组织结构4 第2 章构件模型和形式化概述6 2 1 构件技术6 2 1 1 构件定义6 2 1 2 构件模型7 2 1 3 构件组合1 l 2 2 形式化方法l l 2 2 1 形式化规约1 2 2 2 2 形式化验证1 6 2 3 形式化构件模型1 7 2 4 本章小结l 8 第3 章软件体系结构和基于构件的软件开发模型”2 0 3 1 软件体系结构2 0 3 1 1 软件体系结构的发展”:”2 0 3 1 2 软件体系结构描述语言2 2 3 2 基于构件的软件开发模型2 3 3 2 1 基于构件的软件开发过程2 4 3 2 2 构件库”2 5 3 3 本章小结2 5 第4 章基于构件的形式化软件开发模型2 6 4 1 基于构件的形式化软件开发模型”2 6 哈尔滨t 程大学硕+ 学位论文 4 2 需求分析的形式化描述”2 7 4 2 1 系统配置的形式化表示2 8 4 2 2 用例的形式化表示2 8 4 3 设计阶段软件体系结构2 9 4 4 形式化构件模型及构件交互3 2 4 4 1 形式化构件模型及交互实例3 3 4 4 2 形式化构件模型及交互定义”3 5 4 4 3 详细设计阶段软件体系结构精化3 8 4 5 本章小结3 8 第5 章实验与分析3 9 5 1 某公司o a 系统简介”3 9 5 2 办公用品管理系统开发4 0 5 2 1 形式化需求分析4 0 5 2 2 设计阶段软件体系结构o 4 7 5 2 3 形式化构件模型及交互4 9 5 3 本章小结5 l 结论“5 2 参考文献”5 3 攻读硕士学位期间发表的论文和取得的科研成果5 9 致谢”6 0 哈尔滨t 程大学硕十学位论文 第1 章绪论 1 1 课题研究的目的和意义 随着计算机应用的不断发展,计算机软件的发展已渗透到国民经济和国 防建设的各个领域,各个行业对计算机软件的需求急剧上升,软件在信息社 会中发挥着越来越重要的作用。随着软件系统的结构越来越复杂,规模越来 越庞大,复杂程度越来越高,现有软件工程方法不能有效解决大规模复杂软 件的开发,软件出现错误的可能性及其造成的危害也日益突出,从而产生了 所谓“软件危机 ,软件开发从质量、效率等方面均远远不能满足需求。遗 憾的是,软件的设计与生产至今还缺乏坚实的科学基础和成熟的方法学,还 没有令人信服的办法能够论证或确认一个复杂软件系统是正确的、可靠的和 安全的。因此,如何改进现有的软件开发方法,如何提出新的软件开发方法, 高效地开发出逻辑严谨的、正确性可度量的软件成为软件理论和技术的重要 研究方向。根据电脑硬件组装的原理,人们提出了基于软件构件的系统组装, 提高软件复用性和可靠性。基于构件的软件复用是提高软件生产率和软件质 量的有效途径,是解决软件危机的重要手段之一。传统的软件开发采用非形 式化的软件工程方法,对软件质量的保证具有一个难以逾越的顶点,因此采 用形式化的软件工程方法,以一种严格的数学化的工程方法渗透到软件开发 的各个阶段。 在从高层规范至最终实现的过程中,选用适当的、以形式化方法为基础 的工具进行辅助设计和验证,结合构件技术进行软件开发是软件工程的一个 重要方面,受到越来越多的关注。语义简单且具有友好图形工具支持的形式 化方法、描述构件本质特征及构件组合的构件模型以及构件模型和形式化方 法的结合是这一研究方向的关键技术。 哈尔滨下程大学硕七学f ) = 论文 1 2 国内外研究现状 1 2 1 国内研究现状 我国在基于构件的软件开发方法和构件模型方面进行了大量研究,构件 模型和构件应用技术发展迅速。在1 9 9 7 年,由北京大学主持的国家重大科技 攻关项目“青鸟工程”中,基于软件构件技术的“青鸟i i i 型系统 通过了技 术鉴定。至今,“青鸟工程”一直在研究开发软件构件库体系,继续推进基于 构件的软件开发技术。j b 3 作为一个支持复用的软件开发环境,构件的有效 管理和查询是关键,其核心是一个构件库系统j b c l ( j a d eb i r dc o m p o n e n t l i b r a r y ) 。青鸟构件库系统用于对可复用构件进行描述、管理、存储和检索, 以满足基于“构件构架”复用的软件开发过程的需要。它以青鸟构件模型为 基础,建立青鸟构件库数据模型,并与其他c a s e 工具相结合,支持构件的生 产、描述( 使用青鸟构件描述语言j b c d l ) 、分类、存储、查询和复合悖,。文 献【3 】基于构件的特点,借鉴进程构造的方法,提出六种构件组装机制,能够 灵活、简便地集成构件,并提出在构件组装的同时进行接口组装,通过生成 功能更强、抽象级别更高的复合接口,提高构件组装的抽象级别和粒度。同 时,基于w r i g h t 的形式化规约软件体系结构的研究,给出了复合构件和复合 接口的组装推导算法,为系统行为的形式化分析、验证和仿真奠定了基础。 文献【4 】提出了一种形式化的方法对构件组装集成行为进行描述,将构件接口 定义为线程,分为触发器和响应器,介绍了如何从线程的角度表达构件同步、 异步并行以及异步互斥等情况下的交互语义。该形式化方法克服了在构件组 装集成过程中,构件接口交互语义描述的问题,能够直观、清楚、完整地描 述接口交互的语义和系统集成的静态与动态特性。文献【5 】提出了在构件描述 语言( c d l ) 基础上扩充系统演化信息的方法,使得构件组装系统和配置管 理系统有机结合,为基于构件的软件开发方法提供了良好的技术支持。文献 【6 】提出了改进的构件模型,虚构件的概念,和基于虚构件的软件开发模式, 较好地实现领域知识的封装,可以利用构件库中的构件组装出符合特定要求 2 哈尔滨t 程大学硕十学位论文 的复合构件。文献【7 】提出了基于特征模型和构件语义的概念体系结构设计方 法。该方法综合考虑了特征模型中的共性、可变性、绑定时间以及结构关系、 依赖关系等对d s s a 设计的影响,同时以构件语义作为特征到概念构件设计的 过渡,特征驱动的领域开发提供了有力支持。文献【8 】提出了支持接口连接式 和插头插座式体系结构的构件模型和基于体系结构的构件集成组装框架,并 给出了构件的制作和组装过程。文献【9 】提出了基于构件的软件版本控制模 型,采用将版本控制与并发控制单位分离的策略,从而在大粒度版本控制的 同时,保证了并行开发的灵活性。 1 2 2 国外研究现状 文献【1 0 】总结和比较了现有的软件体系结构描述多视图方法,文献【l l 】 提出了体系结构描述语言( a d l ) 的分类和比较框架,对2 0 0 0 年之前的a d l 研究作了较为详尽的总结和评估,文献【1 2 】针对不同应用领域建模问题提出 了新型的a d l ,文献 1 3 1 给出了一个形式化设计分析框架f d a f ,文献 1 4 , 1 5 】基于分析技术的选择、支持质量属性的种类和参与者的参与程度等,详细 比较了基于场景的体系结构分析方法( s a a m ) 及其3 个扩展方法( 针对复杂 场景的扩展s a a m c s 、针对可复用性的扩展e s a a m i 和s 丸w e r ) 、体系结 构权衡分析方法( a t a m ) 、基于场景的体系结构再生工程方法( s b a r ) 、体 系结构层次软件可维护性预测方法( a l p s m ) 以及s a 评估模型s a e m 等。文 献【1 6 】提出了通过提供服务接口和请求服务接口的直接连接、内部构件接口 到复合构件接口的绑定,来层次化地构造软件系统的方法。由卡内基梅隆大 学s h a w 等人提出的u n i c o n t 川定义了p i p e ,f i l e i o ,p r o c e d u r e c a l l 等7 种内建的连 接子类型,并可以在实现阶段在工具的支持下转化成为具体的实现机制,如 过程调用、操作系统数据访问,远程调用等,使从体系结构设计生成应用变 成可能,但u n i c o n 不支持多种构件组装机制,缺乏形式语义支持和组装推导 机制。卡内基梅隆大学g a r l a n 等人提出的w r i g h t 和a c m e “引具有很强的形式化 特点,但仅限于设计规约语言,没有系统开发地支持工具。斯坦福大学提出 3 哈尔滨丁程大学硕十学位论文 的r a p i d 川及其支持工具将体系结构作为开发框架,支持基于构件的系统的开 发,其基本模型是事件驱动,但没有把连接子显式化为一阶实体。 1 3 主要研究内容 鉴于基于构件的软件开发缺少形式化的规格说明,主要开发过程采用自 然语言进行描述,本论文主要讨论了基于构件的形式化在软件开发中的应用, 给出了基于构件的形式化软件开发模型( c o m p o n e n tb a s e df o r m a ls o f t w a r e d e v e l o p m e n t , c b f s d ) 。 首先讨论需求分析的形式化描述,包括系统配置和用例的形式化描述, 有利于需求分析的形式化规格验证。 获得系统的需求描述并进行形式化验证之后,软件开发面临的问题主要 是如何根据需求分析结果进行软件设计。需求分析体现的是面向功能的概念, 系统设计体现的是面向技术的概念,如何将面向功能转向为面向技术是软件 工程一直探讨的问题。本文根据软件开发框架和软件体系结构( s o f t w a r e a r c h i t e c t u r e ,s a ) 的概念,给出了一种基于软件开发框架和功能的正交分解 得到概要设计阶段软件体系结构的方法,进一步可以得到概要设计软件体系 结构中构件的拓扑结构和构件关系邻接矩阵。 基于s e s s i o nt y p e 的构件模型和构件交互是本文的重点,主要研究了基于 s e s s i o nt y p e 的构件和连接子形式化表示以及构件通过连接子的交互,给出了 基于s e s s i o nt y p e 的构件交互语义和详细设计阶段软件体系结构精化的步骤, 对于现阶段构件描述缺乏语义支持具有重要意义。 1 4 论文组织结构 论文的主要内容安排如下: 第l 章论述了本课题研究的目的和意义,对基于构件的形式化开发模型的 相关理论知识、理论模型和技术方法进行深入的研究,并总结基于构件的形 式化开发模型的国内外研究现状。 4 哈尔滨t 程大学硕十学位论文 第2 章从构件出发,介绍了构件的概念、构件模型、构件交互语义以及形 式化的概念,为后面建立形式化构件模型和基于构件的形式化开发模型奠定 了理论的基础。 第3 章分析研究了本课题的相关技术,论述了软件开发模型、需求分析的 形式化和软件体系结构的概念及原理,从而为基于构件的形式化开发模型奠 定基础。 第4 章通过对现有的基于构件的软件开发模型和形式化方法的研究,首先 提出了基于构件的形式化的软件开发模型。根据c b f s d 模型依次研究了需求 分析的形式化描述,设计阶段的软件体系结构,构件模型的形式化及构件交 互语义。其中构件模型的形式化及构件交互语义是c b f s d 模型的关键研究内 容,对于基于构件的形式化的软件开发具有重要的意义。 第5 章将基于构件的形式化软件开发模型应用于面向对象的某公司o a 中 的办公用品管理系统开发中,结果表明该模型具有一定的可行性和适用性, 且具有一定的实际应用价值。对于提高软件开发的可度量性,对于提高软件 开发的质量,对于基于构件的软件开发具有重要的意义。 5 哈尔滨t 程大学硕十学位论文 第2 章构件模型和形式化概述 基于构件的软件开发被认为是解决软件危机的重要手段,而描述构件本 质特征及构件组合的构件模型是实现基于构件的软件开发的关键技术。基于 构件的软件开发最终体现为可复用构件通过组合机制组装为复合构件直至完 整的系统,作为关键技术的构件模型和构件交互语义直接影响着基于构件的 软件开发。形式化方法是描述系统性质的基于数学的技术。如果一个方法有 良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。形 式化方法的本质是基于数学的方法来描述目标软件系统属性的一种技术。 2 1 构件技术 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到 高度重视的一个学科分支。其主要研究内容包括哺: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构件间的关系; ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及 组装问题; ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立 构件库系统,支持构件的有效管理; ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代 码级的组装和基于构件对象互操作性的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化。 2 1 1 构件定义 对于构件的定义,研究人员从不同认知角度给出了构件的多种定义。 o m g 的定义:构件是指系统中可替换的物理部分,该系统封装了实现并 6 哈尔滨t 程大学硕+ 学位论文 提供了一组接口的实现。构件表示了系统实现体的一个物理片段,包括软件 代码( 源代码、二进制代码或可执行代码) ,或者等同体,例如脚本或命令文 件。由之,构件自身必须相容于接口且实现接口,接口表示了驻留在构件内 的成分所实现的服务。这些服务定义了的一个整合的行为,从一些构件实例 提供给其它客户端构件实例。 杨芙清教授对构件的定义是哺,:构件是指应用系统中可以明确辨识的构 成成分,而可复用构件是指具有相对独立的功能和可复用价值的构件。 目前普遍接受的构件定义由文献1 2 1 1 给出:构件是能够提供相对独立服务 的计算单元,具有规范的接口和显式的环境依赖,能够被第三方组合。构件由 接口和实现体两部分组成,接口是构件与外界环境的交互点,是构件同外界唯 一的交互途径,包括了构件同外界环境的全部交互内容,是构件暴露给用户的 可见部分。实现体部分实现了构件向外界提供的服务,对用户不可见。 根据已有的构件定义,本文对构件的理解表示为:构件是基于构件的软 件开发的基本单元,有接口和实现两部分组成,其中接口包括请求服务接口 和提供服务接口,它通过契约式接口指明对语境的依赖,通过接口实现与外 界环境的交互,实现构件的组装,对外可见;其中实现部分根据请求服务接 口和内部处理逻辑实现了构件向外提供的服务,对外透明。 2 1 2 构件模型 基于构件的软件开发很大程度上依赖于一个清晰定义和准确规范的构件 模型。构件模型定义构件的本质特征及构件间的关系,是构件技术的核心和 基础。构件模型研究的主要内容是构件接口和构件组合方式。 a f i s 和s a l i m 基于构件接口、契约、组合提出了构件模型的标准嘲,如图 2 1 所示。构件接口包括请求服务接口和提供服务接口,接口描述中需包括接 口的语法( s y n t a x ) 和语义( s e m a n t i c ) ,即构件接口需要在型构层次( s i g n a t u r e l e v e l ) 和行为层次( b e h a v i o rl e v e l ) 。构件契约进一步分为两种类型,构件- 构件( c c ) 契约和构件框架( c f ) 契约。c c 契约通过前置条件、后置条 7 哈尔滨t 程大学硕士学位论文 件、不变量定义构件约束;c f 契约关注构件构件生命周期和构件框架之间 的协议问题。对于构件组合,进一步讨论构件绑定机制和绑定时间;构件间 绑定机制包括三个方面的机制,分别是构件间的简单组合机制,构件部署到 框架( s a ) 的机制和子构件装配成复核构件的机制;构件绑定时间包括早绑 定( 编译时绑定) 和晚绑定( 运行时绑定) 。 请求 嚣 如 提供之嚣 不变量 契约黼槲弋芸:萎篡 悱框架 销期 简单组合 组合歉删弋:篡霎茎 邦定时间 主象耋 图2 1 构件模型的评价标准 本节将依次介绍现有的构件模型,对其进行分类比较,现阶段具有代表 性的构件模型有c o m 、c o r b a 、e j b 、s o f a 、f r a c t a l 、r e o b a s e dc o m p o n e n t m o d e l 、青鸟j b 模型、c b d e c 模型等。 1 c o m 构件模型 构件对象模型( c o m ,c o m + ) ,是与平台无关的、分布式的构件模型, 是m i c r o s o f t 公司提出的一种以构件为发布单元的对象模型,c o m 使各软件 构件用一种统一的方式进行交互。c o m 定义了构件交互的标准,提供了构件 运行所需的环境。 c o m 构件的接口描述属于型构层次的接口,即列出构件服务所对应的方 法名、参数类型和返回结果类型,并且只有提供服务接口的描述m ,。最重要 的接口是i u n k o w n 接口,所有其它的接口都从此接口派生。i u n k o w n 接口有 三个方法a d d r e f , r e l e a s e 和q u e r y i n t e r f a c e h i o 3 哈尔滨丁程大学硕十学位论文 2 c o r b a 构件模型 c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r e h i t e c t u r e ,公用对象请求代 理体系) 啪删,由对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 提出的, 是一种标准的分布式的面向对象应用程序体系规范。 c o r b a3 0 提出构件模型c c m ,有三个模块组成,分别是d e p l o y m e n t 模块,用于部署和配置构件;s e r v e r 模块,完成构件的提供服务;c o n t a i n e r 模块,用于实现构件提供服务所运行的环境。c o r b a3 0 构件的接口描述属 于型构层次的接口,包括请求服务接口和提供服务接口,其中请求服务接口 通过接插口和事件源定义,提供服务接口通过刻面和事件槽定义。 3 s o f a 构件模型 为了支持运行时软件的动态更新,f r a n t i 茑e kf l a i l 等提出了s o f a 构件模 型- 。根据s o f a 的观点,软件被看作构件的层次结构。在s o f a 构件模型中, 构件是构件模板( c o m p o n e n tt e m p l a t e ) 的实例,构件模板是一个框架,定 义了构件接口、实现对象和嵌套构件。每个构件模板由唯一的三元组确定, 定义如下 。 s o f a 构件的接口描述属于型构层次的接口,包括请求服务接口和提供服 务接口,使用了类正则表达式来描述构件在各个接口上的行为,能够精确描 述构件的行为和内部结构。 4 r e o 构件模型 根据r e o 构件模型憎,的观点,一个构件是一个软件实现,此软件实现的 实例能在物理或逻辑设备上执行。因此构件是一种抽象行为类型,描述了软 件实现的实例的属性。 r e o 是一个基于通道的外生协调模型,重点关注了连接子的概念,描述 了软件构件组合的模式。s o f a 构件的接口描述属于型构层次的接口,包括 请求服务接口和提供服务接口,使用抽象行为类型( a b s t r a c tb e h a v i o rt y p e ) 来定义构件在端口上可观察的行为。 9 哈尔滨下程大学硕十学位论文 5 青鸟鹏模型 青鸟工程提出的“青鸟j b 模型嗍从三个视角和九个方面定义构件模型。 三个视角分别定义如下:( 1 ) 形态:形态的差异体现在构件的结构组织方式 和依赖的方法学范型,包括类、类树、设计模式和构架;( 2 ) 层次:根据开 发过程的不同阶段分为不同的抽象层次,包括分析件、设计件、编码件和测 试件;( 3 ) 表示:不同层次的构件具有不同的表示媒介和手段,如图形、复 合文档、正文、伪码、编程语言、目标码等。 九个方面如下:( 1 ) 概念:功能描述;( 2 ) 操作规约:对外请求、提供 服务;( 3 ) 接口:行为描述;( 4 ) 类型:操作参数的类型:( 5 ) 实现体:具 体实现部分,是实际完成被请求服务的系统;( 6 ) 构件复合:构件通过复合 组成系统:( 7 ) 构件性质:构件的形态、层次和表示;( 8 ) 构件注释:和构 件库相关的性质;( 9 ) 构件语景:软、硬件使用环境和实现依赖m ,。 文献【2 4 】中陈波,李舟军,陈火旺等给出了构件模型之间的对比情况, 如表2 1 所示。 表2 1 构件模型对比表 c o mc o r b ac o r b a 分类标准 w r i g h t s o f af r a c t a lr e o e j b2 x3 0 构型构p 件层次 p r0 接 行为层次 -t0 口 方法调用 组插头插座式 厶 基于被动连口 方 接子 式 基于主动连 接子 注:p :只有提供服务接口,p r :有提供服务和请求服务接口 l o 哈尔滨t 程大学硕十学位论文 2 1 3 构件组合 在目前构件模型中,构件组合方式可以分为以下几种:基于消息传递( 方法 调用) 的组合、插头插座式组合、基于被动连接子的构件组合、基于主动( 外 生) 连接子的构件组合。 在传统的基于对象的构件模型( c o m 、e j b 、c o r b a 2 x ) 中,构件是对 象,组合机制是对象间的消息传递( 方法调用) 。这种组合方式存在明显的缺 陷:( 1 ) 构件在组合时,必须了解各自的实现细节;( 2 ) 构件的组合关系固定 在构件的实现中,缺乏灵活性,无法满足在接口上组合的要求;( 3 ) 构件之间紧 耦合,构件难以适应环境的变化,不利于构件的单独复用。 插头插座式组合方式是将兼容的构件接口进行连接。所谓兼容,指的是构 件接口上的请求服务( 提供服务) 正好和另一个构件的接口上提供的服务( 请 求服务) 相同。c o r b a3 0 中构件模型c c m 中所使用的组合方式属于此类。 插头插座式组合方式的一个改进是基于被动连接子的构件组合方式。 s o f a 、f r a c t a l 的构件组合属于此类。构件封装计算、连接子封装通信,使构 件不再关心与其他构件组合时的通信细节,起到了使构件功能明确化的作用, 同时也提高了构件和连接子的复用程度。 主动连接子封装了控制和通信,构件封装了计算,通过使用主动连接子将控 制与计算分开,解决了控制和计算混在构件中的问题,使构件之间耦合度大大降 低,起到了同时复用构件、连接子的作用。基于w r i g h t 的构件模型属于此类。 2 2 形式化方法 形式化方法是关于在计算系统的开发中进行严格推理的理论、技术和工 具,它主要包括形式化规约技术和形式化验证。形式化方法的理论基础是数 学化的程序理论,数学上的抽象和组合概念是形式化方法的重要基础m ,。 形式化方法使用具有严格数学定义的形式化语言刻画软件开发过程的各 个阶段,包括需求分析、概要设计、详细设计、编码和测试等,进而刻画整 个可执行软件系统。通过形式化规约和验证可以更好的发现需求和设计中的 l l 哈尔滨f t 程大学硕士学位论文 错误、不一致、歧义和不完全。 2 2 1 形式化规约 形式化规约是建立在严格数学基础上、具有精确数学语义的规约方法。 根据不同数学理论,形式化规约产生了一系列的理论和方法。有限状态机 ( f s m ) 、s t a t e c h a r t s 、p e t r i 网、进程代数、一阶逻辑、时态逻辑、z 、v d m 、 l a r c h 、s e s s i o nt y p e 等。 从需求分析、系统设计的形式化规格到可执行的目标软件系统的形式化 角度,将已有的形式化方法分为三类:操作类、描述类和双重类。操作类方 法基于状态和转移,通过可执行模型来描述系统,模型本身能够采用静态分 析和模型执行得到验证,这类方法包括f s m 、s t a t e c h a r t s 、p e t r i 网。描述类方 法基于数学公理和概念,通过逻辑或代数给出系统的状态空间,具有高度抽 象的特点,便于通过自动工具进行验证。根据不同的数学基础,描述类方法 进一步分为基于代数的描述类方法,如z 、v d m 、l a r c h 等;以命题线性时态 逻辑( p l t l ) 、一阶线性时态逻辑( f o l t l ) 、计算树逻辑( c t t l ) 等时态 逻辑为代表的基于逻辑的描述类方法:双重类方法兼具上述两种方法的特点, 既能通过数学公理和概念来高度抽象地描述系统,又具有状态和转移的可执 行特征,这类方法包括扩展状态柳实时时态逻辑( e s m 瓜阳) 、t r i o + 、t r o l 等旧,。下面分别介绍典型的形式化规约语言。 1 p e t r i 网 p e t r i 网的概念是由德国的c a r la d a mp e t r i 在1 9 6 2 年他的博士论文 “c o m m u n i c a t i o nm i ta u t o m a t e n ”( 通过自动机通讯) 1 1 4 1 中提出的。1 9 8 1 年, p e t e r s o n 发表专著,系统化的提出p e t r i 网的概念和理论脚,。 p e t r i 网是一种对系统软件形式化、图形化的描述和分析工具,是面向并 行系统建模的一种非常好的形式化模型。p e t r i 网的图形化表示和严格的数学 定义使其应用非常广泛。适用性比较广,适用于并发、异步、分布、并行、 不确定性和随机性系统的建模。p e t r i 网分为位置迁移p e t r i 网和高级p e t r i 网两 1 2 哈尔滨- t 程大学硕十学位论文 类,高级p e t r i 网包括谓词迁移p e t r i 网、有色p e t r i 网、计时p e t r i 网等。 p e t r i 网的主要功能是为各种与并行系统有关的特性和问题提供分析方法。 利用p e t r i 网模型可以研究两类特性:依赖于初始状态和独立于初始状态的特 性。前者是指状态行为特性,后者是指状态结构特性。随着系统规模的扩大, p e t r i 网的模型状态空间的规模呈指数增长,称为“空间爆炸 。在实际应用中, 为了防止状态“空间爆炸 ,一方面需要根据特定的应用环境对p e t r i 网模型加 以限制、修改或扩充,另一方面需要对p e t r i 网模型进行化简处理等。 2 有限状态机f s a 有限状态机又称为有限状态自动机或简称状态机,是表示有限个状态以 及这些状态之间的转移和动作等行为的数学模型。状态存储关于过去的信息, 就是说它反映从系统开始到现在时刻的输入变化。转移指示状态变更,并且 用必须满足来确使转移发生的条件来描述它。动作是在给定时刻要进行的活 动的描述。有限状态机由一组状态、一个初始状态、输入和根据输入及现有 状态转换为下一个状态的转换函数组成。 有限状态机定义为一个五元组m = ( q ,e ,6 ,g o ,用1 ,其中: q = q 0 ,q 。,q 2 ,吼) 是有限的状态集合,任一时刻有限状态机只能处于其 中一个状态; e =

温馨提示

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

评论

0/150

提交评论