基于组件的换热器CAD系统研究刘敏珊,刘启玉,董其伍,吴金星(郑州大学热能工程研究中心,河南郑州450002)摘要:针对换热器CAD软件开发存在的问题,结合UML建模语言,提出了一种基于组件技术开发CAD软件系统的CBSD方法,阐述了采用CBSD方法开发换热器CAD系统的过程和特点,并给出了采用COM标准开发换热器软组件的实例。关键词:软件组件;换热器;CAD;UML;COM1引言换热器是化工、炼油、电力等工业中广泛应用的一种节能过程装备,其结构复杂,零部件繁多,设计过程工序多、周期长。CAD技术和换热器设计的结合,极大地提高了设备的设计质量与设计效率,缩短了新产品开发周期。但是,由于换热器CAD软件开发自身专业性强,使得现有的换热器CAD软件严重落后于计算机应用技术发展的现状;也由于软件业自身所面临的危机,使得CAD软件在开发、维护、扩展、升级等方面存在一系列问题,极大地影响了CAD软件的发展和应用。软件组件技术是针对长期以来软件发展落后于硬件发展的问题而提出的解决方案,它从根本上改变了传统的软件开发思想,构筑了由多方自主提供软件组件、组件间相互协调工作的体系,实现了软件的复用和健壮更新,是软件业发展的大趋势。将基于组件的软件开发思想应用于换热器CAD软件开发中,是在技术上摆脱重复开发、解决软件维护等问题的有效途径。2基于组件的软件开发方法2.1传统的软件开发方法传统方法所开发的应用软件,往往是将各种功能或各种特性用固定的方式联系在一起,并封装成一个整体提供给用户。这种方法暴露出诸多问题[1,2]:(1)程序越来越复杂、庞大,使得开发、维护变得更加困难和昂贵,并且由于扩展功能可能导致版本冲突等复杂的问题而变得危险而难以进行。(2)应用系统严重依赖于操作系统和特定的网络服务,因而开放性很差。(3)应用程序内部结构过于紧密,应用程序提供的大量功能不能被独立地更新、删除或替代。(4)可复用程度差。一个应用程序的数据和功能很难被其它应用程序所利用。2.2软组件技术软组件也叫软构件,一般认为软组件是指可以在二进制级别上进行集成和重用而且可以被独立生产获得和配置的软件单元[3]。软件组件技术是支持软件复用的核心技术,其基本思想就是将复杂的大型系统中的基础服务功能分解为若干个独立的、功能单一的可复用软件单元。组件之间、组件与用户之间可以跨进程、跨机器、跨语言甚至跨操作平台进行通信。这样,任何人可以用自己方便的语言去实现可复用的软件组件,而应用程序或其它组件的开发人员可以方便地使用组件提供的服务,而且客户和服务组件任何一方版本的独立更新都不会导致兼容性问题,从而在更大程度上实现了代码重用和系统集成,降低了系统的复杂程度。利用组件技术进行软件开发可看成是一个以组装为主的软件开发过程,而不是一切从头开始建立一个新的应用。要实现这样的组件软件,组件程序之间必须遵循严格的规范,软件系统才能正常运行。软件组件的对象模型是关于软件组件之间如何连接的标准。目前,基于组件技术的规范主要有Microsoft的COM(ComponentObjectModel,即组件对象模型)、OMG(对象管理组织)的CORBA(CommonObjectRequestBrokerArchitecture)以及Sun的JavaBeans。由于Microsoft的Windows已经成为PC操作系统的主流,所以COM成为开发PC平台应用事实上的标准。COM是微软于1993年推出的组件规范,为组件提供了编程模型和二进制标准,定义并实现了一整套软件组件之间互操作的机制,为软件的组件化提供了技术支持。2.3UML与组件技术的结合[4]UML(UnifiedModelingLanguage)是在著名的Booch方法、OMT方法和OOSE方法的基础上,集众家之长,几经修改完成,并于1997年11月被OMG批准为标准。它采用了一整套成熟的建模技术,不仅支持面向对象的分析和设计,而且能有力地支持从需求分析开始的软件开发的全过程。此外,它只是一种系统建模语言,独立于任何软件开发过程。UML是面向对象建模的标准语言,而组件技术是面向对象技术的一个发展,两者可以很好的融合。一方面,组件一般都使用面向对象技术来实现。所以,在开发组件时,可以使用UML来进行需求分析、设计、实现和测试,这与基于UML开发普通应用程序没有什么区别。而另一方面,使用UML来描述组件的外部特征,可以使用户准确、全面地了解组件,以便于正确使用组件、组装应用程序。2.4基于组件的软件开发基于组件的软件开发(Component\|BasedSoftwareDevelopment,简称CBSD)包括两个过程[5]:组件开发和组件集成。这两个过程可以由不同的组织来完成,因而可以并行发生。为了实现最大限度和粒度的软件重用,软件组件的开发应该针对一个特定的领域,根据应用领域的共同需求开发应用系统的可重用组件,这就是领域工程(DomainEngineering)。它包括3个阶段[5,6]:进行领域分析,描述领域中系统之间的共同需求,建立领域模型;开发特定领域软件体系结构(DomainSpecificSoftwareArchitecture,简称DSSA),DSAA描述在领域模型中表示的需求解决方案,是一个领域中多个应用系统所共有的体系结构,它为该领域内CBSD提供了组件组装的基础和上下文;开发与领域模型和DSSA相应的可复用组件——领域组件。基于组件的软件开发过程如下:经过领域分析、设计和可复用的领域组件的开发,建立可重用组件库。针对特定系统的需求进行特殊化,确定软件系统的体系结构,提取系统需要的领域组件,并根据本系统的特殊需要开发专用组件,在此基础上将各组件集成为一个完整的应用软件[5,7]。如图1所示。3基于组件的换热器CAD系统3.1换热器设计的领域分析根据系统的特点和背景,确定领域的范围为换热器设计领域。通过对各种类型换热器的分析,可知换热器设计的共同特征是:根据要求的工艺条件,进行设备的基本结构设计、传热计算、流体阻力计算等;根据工艺计算的结果,对所需的各种零部件进行机械强度设计;绘制各零部件工程图以及装配图,按需要建立设备三维模型,给出各类设计文档。对该过程抽象、泛化分类后可得到一个换热器CAD系统的领域体系结构,如图2所示。其中各个部分是由多个组件所组成的包或子系统。对工艺设计部分,可继续抽象泛化出一个工艺设计系统的DSSA,可以用一个包图表示,如图3所示。领域工程的目标不仅要获取DSSA,而且要提炼出可复用的软件组件。具体做法就是,在一定的框架内,发现对象,并建立类的概念模型,然后将相关的类联合起来形成组件。如在工艺设计中,由于上述已经抽象出了其DSSA,根据图中所列出的类,可以提炼出如下组件:换热设计组件、传热计算组件、设备结构设计组件、折流内件组件、阻力计算组件、设计文档组件、流体物性计算组件。相应地可以提炼出机械设计,数据库等其它部分的领域组件。领域工程是一个反复的、逐渐精化的过程,它的产品——DSSA、可复用领域组件等都需要在随后应用系统的开发中得到验证,而具体应用中软件体系结构和组件的开发又可以丰富领域工程的内容,使得领域组件和DSSA的开发目标更明确,计划性更强,从而更有利于今后软件的复用,这是一个相互补充,相互促进的过程。3.2换热器CAD系统的组件开发在组件开发中,每一个组件的开发工作都是一个独立完整的开发小单元,其生命周期包括对组件的需求分析、设计、实现、测试和发布。对此,UML提供了很大的支持,我们可以利用UML语言描述组件的各方面信息,并把该UML模型作为组件的一部分,使组件更易懂、易用。在具体实现中,采用COM标准开发各组件的具体功能,各组件载协同工作时,通过相互之间的标准接口完成实际的任务,这些组件就是COM组件。以换热器设计中大量使用的椭圆形封头机械设计为例。利用构筑在COM之上的ActiveX控件技术,将椭圆形封头计算功能封装成控件EllipseHead。因其有用户界面,故该控件用VC++MFC来实现,其界面如图4所示。控件EllipseHead可以被方便地集成到用VC++、VB等各种语言开发的压力容器设计系统中,此外,该控件还可以被定位在网页上,通过浏览器被用户访问。各领域组件和系统专用组件开发完成后,进行分类归入组件库,作为今后可重用的资源。组件的分类和检索是方便组件重用的重要因素。换热器CAD系统可以分出以下几类领域组件:(1)文档型。各类设计文档,如工艺设计、机械设计说明书等。(2)计算型。工艺计算、机械设计计算中各组件。(3)绘图型。各类零部件、总装图绘制组件。(4)数据库型。物性参数数据库、材料力学性能数据库等。(5)界面型。各类通用的设计界面。3.3换热器CAD系统开发经过领域分析,已经清楚了本领域内同类系统的主要共同问题,并且得到了一个能够较好地反映领域需求的DSSA,而且提取出了大量可复用的领域组件以及工艺设计的架构DSSA。在此基础上进行换热器CAD系统的开发,主要就是分析和解决针对本系统的特殊问题。在系统的规约设计中,首先针对即将开发的系统进行具体详细的UseCase分析,已更准确地把握本系统的需求,如图5所示。然后结合领域DSSA确定本系统体系结构,并对系统的静态结构和动态行为进行具体详细的分析设计,从而为系统的组件集成提供组装的框架和上下文。确定了系统需求以及体系结构后,就可以从领域组件库,选取需要的领域组件,确定系统需要的专用组件并进行开发。每个组件在保证标准接口的基础上,可以单独开发、单独编译,甚至单独调试和测试。当所有的软组件开发完成后,在某种开发环境如VC++或VB中把各个软组件无缝集成起来,便形成一套换热器CAD系统,如图6所示。这样采用软组件技术,就可以通过软组件的属性修改或软组件的重组,方便地实现换热器CAD系统的重构。同时,通过对所编制的软组件进行反复地修改、测试、完善,可大大提高系统的可靠性,降低开发成本。4结束语软件组件技术解决了阻碍软件发展的若干问题。而结合UML的CBSD方法体现了软件生产线的思想,将软件开发分为组件开发和组件集成两个可并行的过程,从而实现了软件开发内部活动的合理分工,有机协调和高度复用。高度的软件复用加上标准规范对整个软件开发活动提供的支持,这为软件工程化甚至工业化生产奠定了一定的基础。将之应用于换热器CAD系统的开发,可使整个系统做到高度的代码重用,而且在缩短开发周期,降低开发费用,改进系统的可靠性和可维护性,方便系统升级等方面具有明显的优势,对于促进CAD软件的发展具有重要的意义。参考文献[1]周之英.现代软件工程[M].北京:科学出版社,2000.[2]PearlBreretonandDavidBudgen.Component|BasedSystem:AClassificationofIssues,Computer,Nov.2000,pp.54-62[3]SzyperskiC.ComponentSoftware|BeyondObject|OrientedProgramming[M].Addison|Wesley,1998.[4]杨顺祥,葛科,高仲仪.基于UML和组件技术的软件开发环境IUMLSE的研究与实现[J].计算机工程与应用,2001,12.[5]KyoC.Kang.IssuesinComponent|BasedSoftwareEngineering[DB/OL].[6]杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999,27(2):68-75.[7]AoyamaM.NewAgeofSoftwareDevelopment:HowComponent|BasedSoftwareEngineeringChangestheWayofSoftwareDevelopment[R].InProc.ofInternationalWorkshoponComponentBasedEngineering,1998.