设计模式在嵌入式虚拟仪表系统软件设计的应用.pdf
自动化与仪表!#$!%专题研究因嵌入式计算机系统的特殊性,目前在嵌入式计算机中一般采用!#$%&,()*+,,-,+,,嵌入式./0(等操作系统。在这些操作系统上编程相对与在1/2%$34基于5)的#/06$7系列操作系统上编程而言,资源较少,没有大量现成的控件及其他源码可资利用。在这样的嵌入式系统中开发应用软件,尤其是专业性较强的应用软件,一般都要求开发人员从底层软件写起,工作量大。因此,提高所写代码的可复用性、可维护性,无疑是非常有意义的。设计模式是可复用的面向对象软件设计的基础,设计模式可以使软件开发人员更加简单方便地复用成功的设计和体系结构,能够帮助设计者做出有利于软件系统复用的决策,使之更快更好地完成系统设计。!设计模式介绍美国8%/29:;?4%;24;24$%A等BC种设计模式,并对其进行了分类。其中,按目的进行分类,可分为创建型()%D?;4/$0;E)、结构型(,4%(24(%;E)、行为型(FD9;G/$%;E)三类模式。创建型模式处理对象的创建,结构型模式处理类或对象的组合,行为型模式描述类或对象怎样分工协作和交互。按应用范围进行分类,可分为设计模式在嵌入式虚拟仪表系统软件设计的应用文章编号:HIIH?JJKKLBIIMNIB?IIHH?IC石绍应,张,王宏峰,罗诗途!国防科技大学 机电工程与自动化学院,湖南 长沙#$%&摘要:介绍了设计模式在基于嵌入式计算机的战车虚拟仪表系统软件设计的应用。运用面向对象软件工程方法,探讨了在嵌入式软件设计中提高代码的可复用性、软件的可维护性和系统的可扩展性。关键词:设计模式;虚拟仪表;()*+,操作系统;-)*)./0图形系统;12#$嵌入式计算机中图分类号:!#$%&;!#($%(文献标志码:)收稿日期:BIIKOIPOHH;修订日期:BIIKOHBOBC!参考文献:H蒋新华Q自适应5RS控制L综述NTQ信息与控制,HJUULMNQB崔大勇Q大功率电加热器的节能控制方案研究 TQ工业仪表与自动化装置,HJJBLKNQC王虎朝Q微机用自适应5RSF复合控温数学模型 TQ信息与控制,HJUULPNQK陈正Q一种专家智能炉温控制器 TQ自动化与仪表,BIIHLBNQMV%;(W#,D4;EQ,DE3?W(0/0X 5RS)$04%$EED%YD 5;44D%0 ZD2$X0/4/$0=-%$;29Q)$04%$E 80X/0DD%/0XQHJUK:HIPOHHHQP陈正,喻红Q热电偶测温的高精度线性化处理模块 TQ计量技术,HJJJ(HB)Q+Y/?_/;0,F=R T/;0?&($Q=0 R04DEE/XD04)$04%$EED%$3$GDE SD/X0=Q1/2$0DUC 5%$2DD6/0X$3 1(E4/0;4/$0;E)$03D%D02D)Q!图实测升温、保温的跟随特性曲线!万方数据!#$%&#$()*(+#,%-(#&#$(./0!.专题研究主要是用于类的或者是对象的模式。类模式处理类和子类之间的相互关系,这些关系通过继承建立起来,在程序的编译时刻就确定了,是静态的。对象模式处理对象间的相互关系,这些关系在运行时刻是可变的,因此更具动态性。创建型类模式将对象的部分创建工作延迟到子类中,而创建型对象模式则将对象的部分创建工作延迟到另一个对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式。行为型类模式使用继承机制描述算法和控制流程,而行为型对象模式则描述了一组对象的协作以完成单个对象所无法完成的任务。!使用设计模式解决问题的方法、原则!#寻找合适的对象面向对象程序由对象组成,对象包括数据和对数据进行操作的方法。对象只是在接收到客户的请求后,才执行相应的操作。因此面向对象程序设计中,将系统分解成怎样的对象集合,是至关重要且非常困难的,这通常受封装、依赖关系、灵活性、复用性等多种因素的制约。应用设计模式则可在一定程度上使寻找合适对象这一过程相对容易。!决定对象的粒度(!#$%&#())对象在大小和数目上往往变化很大,它能表示下自硬件设备上至整个应用的任何事物。那么,决定对象的大小,以使软件更易于设计、维护、复用,同样不是容易的事。应用设计模式则可以很好地解决这一问题。!$指定对象的接口对象的接口描述了所有能发送到该对象的请求的集合,是面向对象系统的基础,对象只有通过其接口才能与外部交流。对象的接口与对象的实现分离,有相同接口的对象可以有完全不同的实现。应用设计模式可以帮助设计者通过确定接口的主要组成部分和经接口传送的数据类型来定义接口,并使设计者能确定接口中应包括的、不能包括的,以及指定接口之间的关系。!%确定对象的实现对象是类的实例,通过实例化类创建。确定对象的实现就是确定对象需要实例化的类,类的功能扩展主要通过继承来实现,而继承又分为类继承和接口继承(或称子类型化)。类继承由一个对象的实现定义了另一个对象的实现,是一种代码和描述方法的共享机制,而接口继承(或称子类型化)描述了什么时候一个对象可以被用来替代另一个对象。很多设计模式就是依赖这种区别来确定对象的实现,同时为保证代码的可复用性,要求尽量对接口编程,而不是对实现编程。!&复用机制的运用面向对象系统中最常用的二种功能复用技术是类继承和对象组合。其中类继承是白箱复用,对象组合是黑箱复用。一般优先考虑使用对象组合。!使设计支持变化获得最大限度的软件复用的关键在于:预见现有需求将来要发生的变化以及将来会出现的新的需求,以使系统设计能够做相应的调整。应用设计模式可以确保系统以特定的方式变化,从而帮助设计者避免重新设计。$在虚拟仪表系统软件设计中应用设计模式本嵌入式系统的硬件平台为*+,-.,操作系统为/$%0,应用的图形系统是1$234。图,为本系统最终的图形界面。分析可知,本系统界面分.种类型的仪表:56-7指针仪表,汞柱式的指示仪表,面板上只有数码管显示的仪表,面板上只有进度指示的仪表。从面向对象的软件设计出发,进一步分析可知,每一种仪表都可分为面板、测量(或指示)仪,除第.种外每种仪表还有不同数目的数码管。为了最大限度地实现代码的可复用性,增强软件的可维护性,首先把所有仪表都拆分成面板、测量(指示)仪、数码管、进度指示条等具体对象。然后,为组装对象的方便,可采用设计模式中的89:;(#(=#)模式来维护一个各种对象组合的统一图#系统的图形界面!万方数据自动化与仪表!#$!%图!#$%&(%)(%*&+模式结构专题研究接口。再者,为了防止对具体仪表的创建过程进行硬编码,提高具体仪表创建的灵活性,以便于具体仪表的扩展、变化,采用!#$%&()$*%+,模式来完成具体仪表的创建。其中,-.,$&#$!#$%&模式属于对象创建型模式,其目的是提供一个接口,使得可以创建一系列相关或相互依赖的对象而不需要指定它们具体的类。此模式的结构如图/所示。在实现过程中:首先创建具体对象的类。为确保对象的可扩展性、可维护性,为每种具体的对象定义一个抽象类,相当于图/中-.,$&#$0&%+1#$-,-.,$&#$0&%+1#$2。创建面板抽象类34*5),为各种具体的面板对象定义统一的编程接口。创建数码管抽象类3678,为各种具体的数码管对象定义统一的编程接口。创建测量(指示)仪抽象类3()$)&,为各种具体的测量(指示)仪对象定义统一的编程接口。根据抽象类的统一接口定义,结合具体对象的功能要求,创建具体类。相当于图/中0&%+1#$-,0&%9+1#$2。具体如下:矩形面板对象具体类#:,3;)#$0#34*5)椭圆形面板对象具体类#:,37:5,)0#34*5)汞柱式指示仪对象具体类#:,3?()$)&=51.:#3()$)&/ABC指针指示仪对象具体类#:,3;/AB()9$)&=51.:#3()$)&数 码 管 对 象 具 体 类#:,3(678:51.:#3678其次,为了便于组装对象,使得在具体应用中能够对接口编程而不是对实现编程,创建!#$%&抽象类和具体类。!#$%&抽象类3D&5*!#$%&相当于图/中-.,$&#$!#$%&,为所有仪表的创建定义了统一的接口。各!#$%&具体类相当于图/中3%#&)$)!#$%9&E,3%#&)$)!#$%&/。创建/ABC指针仪表的!#$%&具体类3D&5*!#$%&,该!#$%&具体类负责/ABC指针仪表的具体实现。创建汞柱式指示仪表的!#$%&具体类3D&5*!#$%&,该!#$%&具体类负责汞柱式指示仪表的具体实现。其他!#$%&具体类的创建过程类似。最后,为了便于具体仪表的扩展、变化,并使具体的仪表创建过程有E个统一的接口,简化具体应用中的类管理,采用!#$%&()$*%+,模式来完成具体仪表的创建。该模式属于对象创建型模式,其目的是定义用于创建对象的接口,而由子类决定实例化的类。应用该模式创建类3D&5*8&F,该类负责所有具体仪表的创建工作。,结论在具体的仪表编程实现中,只要生成不同的具体!#$%&类对象,用其作为参 数,则 调 用3D&5*8&F=3&)$)0#*DKK,;#*&+?):K,;:5*L%*,%,L%*,+),N 8),0$)&,=7:)K)$)+4%I$F&)QN0)&,%#*DKK,;#*&+?):K,;:5*L%*,%,L%*,+),N设计模式:可复用面向对象软件的基础(N李英军,等译N北京:机械工业出版社,/BBBNT655K 4$)N3VV 0&K)&(T版)(N潘爱民,张丽,译N北京:中国电力出版社,/BB/N!万方数据设计模式在嵌入式虚拟仪表系统软件设计的应用设计模式在嵌入式虚拟仪表系统软件设计的应用作者:石绍应,张玘,王宏峰,罗诗途,SHI Shao-ying,ZHANG Qi,WANG Hong-feng,LUOShi-tu作者单位:国防科技大学,机电工程与自动化学院,湖南,长沙,410073刊名:自动化与仪表英文刊名:AUTOMATION&INSTRUMENTATION年,卷(期):2005,20(2)参考文献(3条)参考文献(3条)1.Lippman Stanley B;Josee Lajoie;潘爱民;张丽 C+Primer 20022.Erich Gamma;Richard Helm;Ralph Johnson;John Vlissides.李英军,设计模式:可复用面向对象软件的基础 20003.Erich Gamma;Richard Helm;Ralph Johnson;John Vlissides Design Patterns:Elements of Reusable Object-Oriented Software 1995 本文链接:http:/