已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件的虚拟物理实验的系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 大学物理仿真实验教学系统开创了物理教学的新模式,在全国的物理实验教 学中发挥着重要的作用。随着软件工程理论的发展和软件应用技术的进步,用户 对于物理仿真实验平台和仪器的通用性和可扩展性提出了进一步的需求,原有的 仿真实验体系结构逐渐表现出它的局限性:原有的计算机虚拟实验系统由许多个 独立的实验组成,每个实验运行时控制着若干个固定的虚拟仪器,实验和仪器之 间的主从关系使实验所具有的扩展功能受到了固定仪器的限制,这种限制导致了 应用软件对用户的个性化要求支持不够,比如操作者对仪器的自由调用与组合以 及采用自行设计的实验方案的要求。这是该领域迫切需要解决的新课题。 为此,我们设计了仿真实验系统的新结构,即“基于构件的虚拟物理实验系 统”。基于构件是区别于原有系统结构( 独立式结构以及基于网络的分布式结构) 的根本标志,构件技术的引入可以使虚拟实验系统具有更高的灵活性,可以用动 态绑定的方式代替原本固定的实验与实验仪器问的主从结构,从而解除原有系统 中的限制。 本文提出了用基于构件的方式建立虚拟物理实验系统的思想和方法,将设计 模式和软件框架理论应用到系统设计中,成功塞现了将实验仪器构件化并从实验 中剥离;并用环境描述性的实验平台取代了原助流程描述性的实验系统,使新的 虚拟物理实验系统具有更好的可设计性和开放性,实现了实验者自主设计和主动 参与的需求,解决了该领域的难题。 关键词:计算机仿真系统设计构件设计模式软件框架 a b s t r a c t t h es i m u l a t i o ns y s t e mf o rc o l l e g ep h y s i c a le x p e r i m e n tg i v e su san e wm o d eo f p h y s i c st e a c h i n g ,p l a y i n ga l li m p o r t a n tr o l ei nt h ep h y s i c se x p e r i m e n tt e a c h i n go f t h e w h o l ec o t m t r y w i t ht h ed e v e l o p m e n to ft h et h e o r yo fs o f t w a r ee n g i n e e r i n ga n dt h e p r o g r e s s o fs o f t w a r e a p p l i c a t i o nt e c h n o l o g y ,u s e r sh a v ep u tf o r w a r dt h ef u r t h e r d e m a n df o rt h e e o m m o n a b i l i t y a n d e x t e n s i b i l i t y o ft h es i m u l a t i o n e x p e r i m e n t p l a t f o r m sa n di n s t r u m e n t so fp h y s i c s t h ea l r e a d ye x i s t i n gs i m u l a t i o ne x p e r i m e n t s y s t e m d e m o n s t r a t e si t sl i m i t a t i o no fs t r u c t u r e g r a d u a l l y :e a c he x p e r i m e n t i s c o n t r o l l i n gs e v e r a lf i x e di n s t r u m e n t sw h i l eo p e r a t i n g ,t h es mr e l a t i o n s h i pb e t w e e n e x p e r i m e n t sa n di n s t r u m e n t sr e s t r i c t st h ee x p a n d a b i l i t yd u et ot h ef i x e di n s t r u m e n t s t h i sr e s t r i c t i o nm a k e st h e a p p l i c a t i o n sg i v e n o te n o u g h t s u p p o r t t ot h eu s e r s i n d i v i d u a l i z e dd e m a n d s ,s u c ha st h ed e m a n d so ft h eo p e r a t o r c h o o s i n go rc o m b i n i n g t h ei n s t r u m e n t su n r e s t r i c t e d l ya n d a d o p t i n g t h eu s e r - d e f i n e de x p e r i m e n ts c h e m e t h i s i san e w s u b j e c tn e e d ss o l v i n gu r g e n t l yi nt h i sf i e l d f o rt h i sp u r p o s e ,w eh a v ed e s i g n e dt h en e ws t r u c t u r eo ft h es i m u l a t i o ne x p e r i m e n t s y s t e m ,n a m e l y ”v i r t u a lp h y s i c se x p e r i m e n ts y s t e mb a s e do nc o m p o n e n t ”b a s i n g o nc o m p o n e n t p u t su pt h em a i nd i f f e r e n c eb e t w e e nt h ef o r m e rs y s t e m a t i cs t r u c t u r e ( t h ef r e e s t a n d i n g s t r u c t u r ea n dd i s t r i b u t e ds t r u c t u r e b a s e do n n e t w o r k ) ,t h e c o m p o n e n tt e c h n o l o g yc a ni m p a r tt h ev i r u a le x p e r i m e n ts y s t e mh i g h e rf l e x i b i l i t y ,c a n r e p l a c e t h ef i x e ds m r e l a t i o n s h i p b e t w e e ne x p e r i m e n t sa n di n s t r u m e n t sw i ma d y n a m i c b i n d i n gt e c h n o l o g y ,t h u sr e m o v e t h er e s t r i c t i o ni nt h eo r i g i n a ls y s t e m i nt h i st h e s i sip u tf o r w a r dt h et h o u g h ta n dm e t h o do f b u i l d i n ga n e wv i r t u a lp h y s i c s e x p e r i m e n ts y s t e mw i t ht h ew a yo fb a s i n g o nc o m p o n e n t ,i n t r o d u c e dt h e d e s i g n p a t t e r n s a n ds o f t w a r ef r a m e t h e o r y i n t o s y s t e m a t i cd e s i g n , c o m p o n e n t i z e dt h e i n s t r u m e n t sa n d s e p a r a t e dt h e mf r o me x p e r i m e n ts u c c e s s f u l l y ;a n dr e p l a c e dt h e o r i g i n a lf l o w d e s c r i b i n ge x p e r i m e n ts y s t e mw i t ht h ee n v i r o n m e n t d e s c r i b i n gp l a t f o r m , g a v e t h en e wv i t u a lp h y s i c s e x p e r i m e n ts y s t e mb e t t e rd e s i g n a b l i t ya n dc o m m o n a b l i t y t h u sw es a t i s f i e dt h ed e m a n d so f d e s i g n i n gi n d e p e n d e n t l y a n d p a r t i c i p a t i n g v o l u n t a r i l yf r o mt h eo p e r a t o r s ,a n ds o l v e dt h ed i f f i c u l tp r o b l e mi nt h i sf i e l d k e y w o r d s :c o m p u t e rs i m u l a t i o n ,s y s t e md e s i g n ,c o m p o n e n t ,d e s i g np a t t e r n s , s o f t w a r ef r a m e w o r k 堇三竺堡塑垦垫塑堡窒墼整墨竺墨生兰壅翌 第1 章引言 1 1 仿真实验软件的发展现状 计算机虚拟及仿真技术已经成为许多领域进行系统分析和设计的重要技术 手段,在国际上我们首先将其应用到物理实验教学领域,为计算机及远程物理实 验教学的实现提供了一种可行的模式和方法。 大学物理仿真实验教学系统 1 , 2 1 开创了物理教学的新模式,为计算机及远程 物理实验教学的实现提供了一种可行的方法,在培养创新人才的教学实践中发挥 了重要作用。 随着软件技术的发展和应用领域的拓宽,新的功能和特性不断地被加入到仿 真实验系统中,同时也不断有新的应用需求产生。其中,使用者对于实验的自主 设计的应用要求是最为强烈的。 原有的仿真实验系统已经不能满足新的要求,这促使我们对整个仿真实验系 统结构进行重新设计。新一代的仿真实验系统能够提高使用者对于软件的控制能 力,更强调使用者的参与性和自主性,同时提供更大范围内的资源扩展和共享, 提高软件在应用领域中的实际作用。 1 2 这项工作的目标和意义 随着软件工程理论的发展和软件应用技术的进步,用户对于物理仿真实验平 台和仪器的通用性和可扩展性提出了进一步的需求。为顺应这种趋势,我们在仿 真实验的基础上进一步的探索、尝试和研究,同是也是对仿真实验所使用的软件 结构的全面改革。选题的最主要意义是为了从技术的角度提高用户对于软件的角 色地位,更强调用户的参与性和自主性,并且提高软件在应用领域中的实际作用, 提供更大范围内的资源扩展与资源共享。 在软件行为角度,使用户不仅仅作为软件的使用者,而且参与一部分软件的 再设计:同时我们要为系统构建一套机制将用户的这项劳动成果收集固化下来, 成为可共享资源。这在当前的应用软件领域中是一个有意义的尝试。 在软件结构角度,我们将仪器( 构件资源库的内容) 和实验( 承载平台) 独 立开来,维护了“库”的平台无关性:另一方面,平台的设计面向仪器的接口, 使得平台独立于构件的具体实现。这样结构的耦合度相当低,极大的保证了代码 的可重用和可独立维护。 基于构件的虚拟物理实验的系统设计与实现 从国内看,我们的大学物理仿真实验已经处于技术和思想的前沿;在国际范 围内,只有很少一些机构实现了部分仪器的通用性和独立模块化,对于实验平台 的通用性和可扩展性的研究还处于初级阶段。我们力图通过此项研究的开展将我 们实验仪器平台的计算机仿真提升到一个全新高度,继续保持前沿的水平。 本课题已作为教育部立项的国家物理实验教学资源库的一个重要组成部分。 基于构件的虚拟物理实验的系统设计与实现 第2 章系统设计的基本思想和概念 2 1 软件体系机构( s a ,s o f t w a r ea r c h i t e c t u r e ) 国际上对软件体系结构的概念并未完全统一,d p e r r y 和a w o l f ( 1 9 9 2 ) 、 m ,s h a w 和d ,g a r l a n ( 1 9 9 3 ) 、b a s s 等人( 1 9 9 4 ) 、h a y e s r o t h ( 1 9 9 4 ) 、s o n i 等人均 定义过软件体系结构,但m s h a w 的一篇国际会议( 1 9 9 5 ) 论文对以前的不同研 究观点加以总结,在一定程度上解决了软件体系结构中命名情况上的混乱,得出 了软件体系结构研究中的基本观点,即软件体系结构定义为程序、系统各部件的 结构以及它们之间的内部关系和指导它们的设计并随时间而演变的原理和方针。 g a r l a n s h a w 模型| 5 1 定义如下: 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 括 构件( c o m p o n e n t ) 可以是一组代码,如程序的模块;也可以是个独立的程 序,如数据库的s q l 服务器。 连接器( c o r m e c t o o 表示构件之间的相互作用。它可以是过程调用、管道、远 程过程调用等。 一个软件体系结构还包括某些限铜 ( e o n s t r a i n t ) ,也就是上文提到的“指导它 们的设计并随时间而演变的原理和方针”。 2 2 特定于领域的软件体系结构n 瑚( d s s a d o m a i ns p e c i f i c s o f t w a r ea r c hit e c t u r e ) 领域工程对一个领域中的若干系统进行分析,识别这些应用的共同特征和可 变特征,对这些特征进行抽象,形成领域分析模型( d o m a i na n a l y s i sm o d e l ) ,依 据领域分析模型产生出领域中类应用系统共同具有的构架,即特定于领域的软 件体系结构( d s s a ) i 7 1 ,并以此为基础识别、开发和组织可复用构件。 d s s a 通过对某个特定领域的分析,得出该领域的典型需求,这样此领域的 一个特定的需求就可以表达为个典型的需求和个特殊的霈求。如果已经存在 一个表达典型需求的软件体系结构,对于一个新的特定需求的实现只需要完成它 的特殊需求部分即可,这就是d s s a 对软件复用的贡献【嚣,j 。 2 3 软件框架1 1 ( s o f t w a r ef r a m e w o r k ) 框架是指一个可复用的、部分实现的软件制品,它能够被实例化扩展,以生 基于构件的虚拟物理实验的系统设计与实现 成特定的应用。从领域工程的角度来看,框架是实例化的d s s a ,它反映的是一 个软件系统族的体系结构,并且提供了构建后者的基本构造单元,同时定义了针 对特定的功能需要在何处进行调整和修改,即扩展点( h o ts p o t ) 。 综合各种对于框架的定义和描述,可以发现框架又以下几个特点【l 0 】: 1 1 框架是面向特定领域的 2 ) 框架是d s s a 的实例,具有部分实现的特性,反映了软件产品中应用的 体系结构 3 ) 框架由一组协作的成分组成 4 ) 利用框架开发应用系统是通过扩展点的实例化过程实现的 从复用的角度看,框架可以分为白盒框架( w h i t e b o xf r a m e w o r k ) 和黑盒框 架( b l a c k b o xf r a m e w o r k ) 。白盒框架主要是面向对象( o o ) 框架 i u ,建立在 继承机制上,框架实现暴露在外,复用的粒度一般较小。j a v a 的基础类 ( f u n d a m e n t a lc l a s s e s ) 基本是这种形式的,扩展点在这上面的表现就是抽象方 法以及和所有已定义方法不同形的新方法,对扩展所做的限定很少。同时因为把 可变部分包含在框架中会导致“过度增殖”【l l l 问题,所以白盒框架的复用程度 通常较低。黑盒框架的代表是基于构件的软件框架( c b s f ,c o m p o n e n t b a s e d s o f t w a r ef r a m e w o r k ) 0 0 , 川,用构件的组装代替类的继承,隐藏了框架的实现部 分,j a v ab e a n 和e j b 都是这种c b s f 框架的代表。在实际应用中,因为某些可 变特征并不足以形成一个构件,所以自盒框架和黑盒框架通常是交替出现的,也 就是“继承”与“组装”同时存在。 2 4 基于构件的软件框架( c b s f c o m p o n e n t b a s e ds o f t w a r e f r a m e w o r k ) 模型 c b s f 是由一组相互协作的构件组成,通过这些构件及其协作关系定义了应 用系统的体系结构;同时框架通过扩展点组装用户开发的构件,以处理领域变化 性。 4 基于构件的虚拟物理实验的系统设计与实现 图1 基于构件的框架结构 如图1 所示,框架内部的构件称为框架构件( f r a m e w o r kc o m p o n e n t ) ,它 实现了领域共性:而框架外部的由用户定制的、待组装的构件称为应用构件 ( a p p l i c a t i o nc o m p o n e n t ) ,表现了系统特定于应用的特征,即领域变化性。 基于构件的软件框架有如下定义【1 0 1 : c b s f2 f r a m e w o r k 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 , d e s i g np a t t e r n s , h o ts p o 括 其中f r a m e w o r kc 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 是对框架内所有非结构化事物的描述,包括控制流程、构件间的协作关系以及框 架对于扩展的限定等等。设计模式( d e s i g np a t t e m s ) 是比框架更小,更抽象的体 系结构元烈1 5 ,它“描述了一个在我们周围不断重复发生的问题,以及该问题 解决方案的核心”f j 酗,是解决一系列常见闯题的经典的构件协作方案。h o ts p o t 反映了框架部分实现和需要针对具体应用进行扩展的特性。c b s f 的元模型如图 2 所示: 基于构件韵虚拟物理实验的系统设计与实现 图2c b s f 的元模型 2 5 重构m 1 与设计模式( r e f a c t o r jn g & d e si g np a t t e r n s ) 系统设计是一个反复的过程,它处于一个“生成原型扩展一巩固”的 循环之内。 图3 “生成原型一扩展一巩固”的循环过释 在原型阶段,首先建立起一个快速原型,在此基础上进行增量式的修改,直 至系统能满足组基本需求。然后进入“成熟期”,这一阶段的类层次通常直接 反映了原始问题领域中的各个实体,这阶段的主要复用方式是通过继承进行的 “白盒复用”。 进入成熟期后,系统的演化面临着两个相互冲突的方面: 6 基于构件的虚拟物理实验的系统设计与实现 1 、系统在功能上需要满足更多的需求 2 1 系统的结构必须易于复用 新的需求常常需要加入新的类和操作甚至增加整个类层次,系统需要进入一 个扩展阶段来满足更多的需求,当然我们会把这种扩展限定在系统的某些方面而 不是全部系统。通常随着扩展的进行系统的结构会逐渐被破坏,系统的类层次不 再与任何问题域匹配,而是多个问题域的混合反映。 系统的耦合度上升,内聚度下降,阻碍了系统的继续演化。这个时候必须对 系统( 一般情况下是局部) 作重新组织,这个过程称为“重构( r e f a c t o r i n g ) ” 1 7 1 ,新的结构通常在这个时候被引入系统。重构的工作包括将类拆分为专用和 通用的构件,把各个操作在类层次上上提或者下放到合适的类中,以及使接口合 理化。这个阶段会产生许多新的对象,通常它们是通过分解而不是继承产生的, 复用方式也由此变为“黑盒复用”。 满足更多的需求和达到更高的可复用性要求不断重复扩展和巩固这两个阶 段,以扩展满足更多的需求,以巩固获得更高的复用度。这个循环是不可避免的 b s 。但有一些途径可以减少重构的代价,它们被总结成一些“对于需求变化具 有健壮性”的类和对象的结构,这就是设计模式。 设计模式的应用对于初期的设计以及以后的重构都具有指导意义。它们对软 件生命周期内易于发生变化的那些需求有针对性,可以使一个设计在通常会引起 重构的变化下保持稳定,或者降低重构的代价。 在本系统的设计中有很多结构参照了设计模式,在实现部分的介绍中会有所 提及。 7 基于构件的虚拟物理实验的系统设计与实现 第3 章系统的设计和实现 3 1 系统的设计目标和功能 3 1 1 系统的设计目标 新的仿真物理实验系统属于大学物理仿真实验系统体系。自1 9 9 4 年开始至 今,大学物理仿真实验系统中已经有数十个软件产品问世,形成了一个庞大的产 品族。以体系结构来划分,大学物理仿真实验系统经过了第一代独立软件结构和 第二代拥有网络支持的分布式软件结构,新的系统属于第三代基于仪器构件的软 件结构。与前两代系统不同的是,新系统的设计中心从仿真实验的设计开发转变 为虚拟仪器组件的设计开发和支持仪器组装的领域平台的设计开发,采用的软件 体系结构就是上文提到的特定于领域的软件体系结构( d s s a ) 。 随着软件技术的发展和应用领域的拓宽,新的功能和特性不断地被加入到仿 真实验系统中,同时也不断有新的应用需求产生。其中,使用者对于实验的自主 设计和发散性思维验证的应用要求是最为强烈的。 前两代系统是围绕实验本身开发设计的,建立在实验和仪器的主从关系上, 实验仪器和实验环境间相互依赖,属于一种紧耦合的单一系统,在实验的可设计 性和自由组合能力上不能满足新的要求。这促使我们对系统结构进行重新设计, 使新的仿真实验系统能够提高使用者对于软件的控制能力,更强调使用者的参与 性和自主性,同时提供更大范围内的资源扩展和共享,提高软件在应用领域中的 实际作用。 3 1 2系统的功能介绍 新的仿真实验系统须让实验中的仪器不再对实验环境和实验中的其他仪器 产生依赖。我们采用的方法是将实验仪器从现有的实验环境中独立出来,形成一 组可复用的组件。并单独设计描述实验环境和处理仪器间交互关系的实验平台作 为实验仪器组件的容器。实验平台和实验仪器组件之间的关系可以在实验过程中 动态建立,即实验平台可以按照用户的不同实验设计方案与实验仪器组件进行组 装,完成不同的实验。实验仪器、实验平台及实验者的关系如图4 所示: 8 基于构件的虚拟物理实验的系统设计与实现 图4 系统的对象和功能 系统从功能上被划分为3 个部分: 1 ) 实验仪器部分( i n s t r u m e n ts u b s y s t e m ) 实验仪器组件是一系列功能独立的实验仅器,它们的实现与实验平台无 关,所以可以通过组装方式复用在不同的实验平台上。这个子系统可以自由 扩充,允许仪器开发者为仪器增加新的功能,或者制作新的仪器组件加入系 统。 2 ) 实验平台部分( e x p e r i m e n t p l a t f o r ms u b s y s t e m ) 系统提供了一组建立在力学、热学、光学、电学等各令领域上的实验平 台,实验平台对具体的实验环境进行建模和描述,提供了与实验仪器组件的 组装的功能,通过操作者的操作组装,实现实验仪器与实验平台的连接。 3 ) 管理子系统( m a n a g e m e n ts u b s y s t e m ) 管理子系统将仪器组件和实验平台都作为一种基本组件( b a s i c c o m p o n e n t ) 进行统一管理,还向仪器开发者提供了仪器组 串的修改和扩充 功能。 图4 中深色部分所示的是实验平台的组装功能( a s s e m b l e ) ,实验仪器组件 和实验平台通过这个功能连接。实验者在实验平台上的操作具有很大的不确定 性,使用的仪器类型,数量都是不可预知的,并且平台还要对调入的仪器进行识 基于构件的虚拟物理实验的系统设计与实现 别和控制。为解决这些问题我们应用了动态绑定技术z 1 对系统结构进行了设 计。 3 2 基于动态绑定技术的系统结构 3 2 1动态绑定技术介绍 把一个服务的调用与请求该服务的对象连接在一起的过程称之为”绑定”。 绑定是面向对象编程语言( o o p l ) 中引申出来的概念。动态绑定又称为后期绑 定( 1 a t eb i n d i n g ) ,与之对应的概念是静态绑定,又称为前期绑定( e a r l yb i n d i n g ) 。 如果请求服务的对象在程序运行以前已经明确,则能够在编码时直接书写对对象 服务的请求、并在程序编译和连接时完成绑定,这种方式是静态绑定;而对于请 求服务的对象直到运行时刻才能决定的情况,则需在运行时首先辨别对象类型, 然后选择这种类型对象的该服务内容,这就是动态绑定【2 1 1 。 静态绑定的技术在编译期就决定了对象和服务之间的映射关系,这使得在运 行过程中,对象的行为是固定不变的:而动态绑定使这些行为能够依赖运行时的 环境选择,这种灵活性正是我们系统设计中所追求的:使用户可以在系统运行时 根据需要把不同类型、不同数量的实验仪器”绑定”到实验平台上。因此本文应用 了动态绑定技术构建虚拟实验的系统结构。通过动态绑定技术的分析可以建立起 如图5 所示的基础模型【1 ”。 7 、巨苎刍 。一 营阜窜 基于构件的虚拟物理实验的系统设计与实现 图5 动态绑定技术的基础模型 基础模型图采用的格式是类与对象图( c l a s sa n do b j e c td i a g r a mo f u m l ) 。 上半部分( 浅色部分) 是类图,表达了模型的结构基础。结构的中心是接口和服 务提供者之涮的( 多级) 继承关系网络,考虑继承方向,这一网络的拓扑结构是 一个有向无环图( d a g ) ,任何一条路径都是一个继承链。根据面向对象编程 语言中的类型机制和继承机制以及标识机制1 2 “,调用者可以通过位于继承链下 游节点的类或者接口可以标识和访问任何一个上游节点的类的实例( 如果这个实 例存在) ,这就是动态绑定技术的基本原理,设计一个合理完整的继承关系网络 是实现动态绑定技术的关键。 3 2 2系统的组织结构 将图5 所示的模型结构映射到图4 中的系统对象上,可以确定系统中对象的 职责:每个实验平台都相当于c a l l e r ,每个实验仪器组件对应c o n c r e t e s u p p l i e r l ,中的一个。 图5 中的接1 3a b s t r a c ts u p p l i e r 联系了c a l l e r 和c o n c r e t es u p p l i e r s ,它是 c o n c r e t es u p p l i e r s 的抽象,表达了c a l l e r 访问c o n c r e t e s u p p l i e r s 的方式。对应 a b s t r a c ts u p p l i e r ,系统中建立了复杂的多层的实验仪器接口,用来表示对实验仪 器的多层次、多方面的抽象,这些抽象表达了实验平台识别和控制接入的实验仪 器组件的方式,同时这些接口构成了独立的接1 3 子系统( i n t e r f a c es u b s y s t e m ) 。 根据这种映射关系,我们规划了系统的内部组织结构。如图6 所示,系统内 部可以划分为实验仪器组件子系统、接口子系统、实验平台子系统和管理子系统 4 个部分,其中接口子系统隔离了系统中其他的3 个子系统。 基于构件的虚拟物理实验的系统设计与实现 图6 系统的组织结构 仪器接口( i n s t r u m e n ti n t e r f a c e ) 是接口子系统中最主要的部分,隔离了实 验仪器组件子系统和实验平台予系统,保证了两者间的独立性。 3 3 系统的实现分析 3 3 1仪器接口层次的组织 制定仪器接口是系统结构设计过程中最重要的工作,因为定义接口具有一定 的风险性,接口作为一种约定和约束自公布开始是不希望被更改的,所以我们必 须使接口的内容尽可能单一而且准确。接口层对于系统有着特殊的独立且共享的 地位,它既独立于实验平台,又独立于仪器,是系统各部分组件之问协作的桥梁, 并且将会是一个对外公布的标准,第三方可以在这个标准下构造新的仪器组件和 现有平台进行无缝连接。 一个具体仪器通常会对外表现出多神特征,这些特征都由它所实现的接口来 描述,系统中的多层次接口表达了对具体实验仪器的多层次多方面的抽象。作为 实验平台,一般都是通过某个接口去理解绑定到实验平台的具体仪器,尽管这个 仪器可能还实现了其它的接口。接口的存在使仪器相对于平台变得简单直观,隐 藏了不需要被了解的其他特征和实现细节。这一结构体现了o o d 中的“依赖倒 霞原则( d i p ,d e p e n d e n c yi n v e r s i o np r i n c i p l e ) ”和“接口隔离原则( i s p ,i n t e r f a c e s e p a r a t ep r i n c i p l e ) ”i 8 1 。 蓦 基于构件的虚拟物理实验的系统设计与实现 d i p 原则的核心思想可以描述为:“高层模块不应该依赖于低层模块,两者 都应该依赖于抽象;抽象不应该依赖于细节,而细节应该依赖于抽象”。在这里 的高层模块就是实验平台组件,低层模块就是实验仪器组件,而代表抽象的就是 整个仪器接口层。d i p 原则指导了模块间的相互独立,系统中实验模块和仪器模 块的相互独立保证了: 1 实验模块和仪器模块两个部分可以并行设计开发,提高了丌发效率。 2 ) 同一个仪器模块可以被多个不同的实验模块使用,提高了软件复用度。 3 ) 仪器模块之间可以相互替代、自由组合,实现了实验的可设计性。 4 ) 允许新的实验和仪器模块不断被加入现有的系统中,实现了系统的开放 性。 i s p 原则的核心思想是避开“接口污染( i n t e r f a c ec o n t a m i n a t i o n ) ”。目标 模块的接口定义应该从模块的使用者( 一般称为客户模块) 角度出发,而不是模 块本身。客户模块总是希望对目标模块的依赖建立在最小化接口上,最小化接口 对应客户模块期望目标模块所实现的功能集合,最小化接口之外的内容就是污染 部分。我们总是使用某个接口来表达实验仪器所应该具有某个方面的功能。一个 具体仪器的功能可能被划分为多个方面,构造这样一个仪器模块的时候需要在接 口层中选择相应的接口组成一个接口集合。如果保证了接口层中所有可被选择的 接口都对应了一个最小功能集合,那么最终这个接口集合就是不被污染的。所以 i s p 原则在本系统实现中就表现为寻找并定义每一个这样的最小功能集合。 在上述两个于原则的引导下,接口层成为一个拥有丰富的表达对象各种特征 的接口集合,这些接口之间通常有三种关系: 1 ) 互相独立。大多数接口之间并没有任何关联。 2 ) 接口继承( i n t e r f a c ei n h e r i t a n c e ) 。虽然接口本身就代表了抽象,但对一 个事物的抽象通常是多个层次的,抽象层次越高,事物的种类越少,接 口继承形成了这样一种树形结构。接口继承的存在允许实验平台从一个 合适的抽象层次去分类和理解平台中的实验仪器。 3 ) 接口组合( i n t e r f a c ec o m p o s i t i o n ) 。接口数量对实验平台并没有直接的 影响,但对于实验仪器模块的实现而言过多的数量会使理解和维护变得 困难;并且,很多时候提供一些接口的框架实现和默认实现使有必要的, 这样可以减少实现过程中的重复劳动。接口组合由一些抽象类( a b s t r a c t c l a s s ) 完成,可以把任意数量的接口收集到一个抽象类中,并且提供一 部分接口方法的框架实现和默认实现。和接口继承相反,接口组合形成 了一个倒置的树形结构。 图7 表现了系统中接口层组织的一个局部,上半( 浅色) 部分属于接口子系 基于构件的虚拟物理实验的系统设计与实现 统( i m e r f a c es u b s y s t e m ) ,下半( 深色) 部分是具体的仪器类,仪器类是仪器 组件中以m v c 架构划分后的m o d e l 部分,是仪器的逻辑模型,属于仪器组件子 系统( i n s t r u m e n tc o m p o n e n ts u b s y s t e m ) ,是系统的具体实现部分。 图7 接口层的组织( 局部) 图中选了分束板、凸透镜等3 个实际的光学仪器类以及与它们相关的接口类 作为示例。其中接口b a s e o p t i c a l l n s 定义了作为一个光学仪器对象应该提供的服 务,接口l i g h t t r a n s f e r r e r 在此基础上定义了作为一个可对光线进行传递的仪器 对象应该提供的服务,它们都在从b e a m s p l i t t e r ( 分束板) 和c o n v e x l e n ( 凸透 镜) 开始的继承链上。 b a s e o p t i c a l l n s 和l i g h t t r a n s f e r r e r 接口拥有如下定义: p u b l i ci n t e r f a c eb a s e o p t i c a 王i n s * + 获取响应平面+ p u b l i cp l a n e j g e t r e s p o n d i n g a r e a s ) j 。* 设置、获段仪器的3 维空间坐标t p u b l i cv o i ds e t p o s i t i o l l ( c o o r d i n a t ev 、 p u b l i cc o o r d l n a t eg e t p o s i t i o n j + + 获取仪器中心对于边界的坐标* p u b l i cp o i n tg e t o f f s e t ( i n tv i e w p o r t ) j p u b l i ci n t e r f a c el i g h 七t r a n s f e r r e re x t e n d sb a s e o p t i c a l i n s f 1 4 lij引引引引ijl_j引引lj e q g 口6 基于构件的虚拟物理实验的系统设计与实现 * + 输入光对系t , 2 。+ 警t o 、 0 i 澎: p u b l i cv o i d 。5 话乱i g h t b 8 呱 磷势妒。唧照蘩? i 。,。一 2 。_ 一? 一强。譬蠢 * t 输出搬髓象( 序刘) + ,、 一:。ija 蠹慧慕 p u b l i cv e e t 6 茸e i 蔽g h l i 叠毒每i ;1 1 蒜- 。j ; j 冀;霉藜 ) 二, ,。菇;嚣童一纛嚣滋 接口规模小而且功能单一,两者之间是一种接口继承关系。 b a s e l n s t r u m e n t 是一个抽象类,完成了一次接口组合,把m o d e l e v e n t s o u r c e , m o d e l c h a n g e l i s t e n e r ,s e l f d e s c r i b l e ,v i e w p o r t ,a d j u s t a b l e ,c o n f i g u r a b l e , x m l n o d e c o n v e r t e r 这些接口收集到一个类中,并提供了m o d e l e v e n t s o u r c e , s e l f d e s c r i b l e ,c o n f i g u r a b l e ,x m l n o d e c o n v e r t e r 接口的默认实现。下面的示例代 码省略了后3 个接口的默认实现部分代码。 * + 冻结标志+ 。 p u b l i ca b s t r a c tb o o l e a di $ 囊毫e 取盼 一:f 动释放方法* p u b l i cv o i dd i s p o s e ( ) ) ; x , tm o d e l e v e n t s o u r c e 接口的默认实现 一事件侦听器队列+ v e c t o rl i s t e n e t s = n e wv e c t o r ( 0 ,1 ) ; t s r i b l e ,v i e w p o r t , t 注册一个侦听器 a t t e n t i o n :d on o ta d do n el i s t e n e r2 o rm o ret i m e s 。 p a r a m1m o d e l c h a n g e l 主s t e n e r+ + p u b l i cs y n c h r o n i z e dv o i d a d d m 。d e l c h a n g e l i s t e n e r ( m o d e l c h a n g e l i s t e n e r1 ) t h i s 1 i s t e n e r s a d d e l e m e n t 1 ) ; 基于构件的虚拟物理实验的系统设计与实现 ,t * * 向所有侦听器发送模型改变事件 p a r a mem o d e l c h a n g e e v e n t 1 p u b l i cv o i dn 。t i f y m o d e l c h a n g e ( m o d e l c h a “g e e v e n te v e c t o r1 ; s y n c h r o n i 2 e d ( t h i s ) l2 ( v e c t o r ) l i s t e n e r s c l o n e f ) ; f o r ( i n ti z o ,i f g e t p a r e n t ( ) g e t w i d t h ( ) : ( f g e t ( ) f 。g e t p a r e n t ) g e t h e i g h t ;| ( f g e t y ( ) 0 ) ) 超出边界赠罔对话框询问是否犋平台内的对应仪器宴侧销毁 i n td e l e t e c o n f i r m = j o p t i o n p a n e s h o w c o n f i r m d i a l o g ( u 1 , g e 七s 七r i n g r e s o u r c e ( ”s p e c i f i e d d a t a m e s s a g e s p l a t f o r m r e m o v e i n s t r u m 姆n t m e s s a g e ”) , g e t s t r i n 垡巍e s 。u r 。e 8 s p e e i f l e d d a t a - m e s s a g e s p l a t f o r m r e m o v e i n s t r u m e n t t i t l e “) j o p t i o n p a n e 。k 婵c 骂l 蕊缎i o ,n ) ; 根据当前的f e 。e l e r 裢攀匾劳溺臻器芮麓糖鍪族港 y n c h r 。n i z e i i n s i t r 曼u 巍m 。e i n t = l p 。o 。s 。i i t i o i n ( 、l 鬟j 。i 誊誊。i :攀爨攀鬓戮戮鬻i i j i 。一豫臻雾爱曩曩萎善“、鼍_ ; i 黟曩薯| ? :;:。蠹j 。o 因为光学实验中的仪器是位置敏感的,所以用户的操作会更新仪器的状态以 及重新计算光路。 由图2 2 所示的关系。将f e e l e r 对象映射到仪器的逻辑对象可以简单的通过 访问f e e l e r c o n t e n t 域完成,然而反向的映射却不允许b a s e l n s t r u m e n t 直接使用一 卜指向f e e l e r 的引用,这会形成两个独立关系从而
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城乡污水处理工程建设工程方案
- 城区市政基础设施改造提升工程环境影响报告书
- 2025宁夏银川知名企业精英人才冬季大型招聘笔试历年备考题库附带答案详解试卷3套
- 2025四川华西绿舍亿丰管桩有限公司招聘6人笔试历年常考点试题专练附带答案详解试卷3套
- 2025云南盈江鸿福实业有限公司招聘笔试历年典型考点题库附带答案详解试卷3套
- 2025中投公司校园招聘笔试历年常考点试题专练附带答案详解试卷3套
- 2025中国教育出版传媒集团有限公司招聘应届高校毕业生笔试须知笔试历年常考点试题专练附带答案详解试卷3套
- 2025中冶赛迪集团春季校园招聘笔试历年常考点试题专练附带答案详解试卷3套
- 开采阶段的生产调度与资源管理方案
- 高效矿石选矿技术应用方案
- 2025年4月保险学考试题+答案(附解析)
- 【安全经验分享】100例事故案例
- 汽车美容安全管理制度
- 园林单位车辆管理制度
- 2025见证取样员考试题库及参考答案
- 《唱响主旋律弘扬正能量-关于掌握信息化条件下舆论主导权、广泛凝聚社会共识》课件
- (高清版)DB13∕T 5726-2023 科技成果分类评价规范
- (高清版)DB62∕T 4867-2023 公路桥梁预应力后张法施工技术规范
- 高二日语会考试卷及答案
- HIVAIDS常见心理问题及干预课件
- 吉林省长春市二道区2024-2025学年八年级上学期期末考试数学试卷(含解析)
评论
0/150
提交评论