您的当前位置:首页软件设计模式在数控测井系统中应用

软件设计模式在数控测井系统中应用

2024-07-16 来源:爱问旅游网



软件设计模式在数控测井系统中应用

摘要:在2011年社会实践期间有幸参加某公司的高性能数控测井系统项目的开发研制工作。该系统是在当前测井成套测井装备的基础上,为满足高精度,高性能,高效率的要求开发的测井系统。该系统由井下仪器系统、遥测系统、地面系统、软件系统和解释评价系统等子系统组成。设计模式是前人设计面向对象软件的经验和总结,大量实践经验证明在软件开发中灵活的使用设计模式可以极大的提高系统的稳定性、扩展性和维护性。描述在测井软件系统开发过程中,如何分析和发现相关模式,以及如何选择和应用设计模式,特别是介绍MVC 模式

在软件框架和相关系统模块中的应用和使用效果,在最后,讨论在实际项目开发中,设计模式应用的有关想法和教训。

关键词:MVC;设计模式;数控测井系统
中图分类号:TP311文献标识码:A 文章编号:1671—7597 (2012) 0510131-02
随着当前石油测井技术的发展,为了能更快更好地得到储层地层信息,2011 6月某公司成立了高性能数控测井系统项目,目的是提供一个从井下到地面以及解释评价的整套测井系统。系统的设计目标是一次测井,取得所有合格资料,并且能保证60井次的免维修率。整个系统由遥测系统、地面系统、井下仪器、解释评价系统和软件系统等子系统组成。整个测井



软件系统完成三个主要任务:测井数据的采集、测井数据的工程值计算、测井过程的监控。测井数据采集主要是采集井下仪器通过测井遥测系统传输的测井数据,并保证数据的完整性、正确性。测井数据工程值计算主要是把采集的数据根据不同仪器刻度计算方法进行工程值的计算,测井过程监控主要是把计算的测井数据用曲线和图像的方式实时的显示在屏幕和打印成图,由测井操作员进行实时监控。

设计模式是前人设计面向对象软件的经验和总结,在软件设计中引入设计模式开发方法,可以极大的提高软件系统的稳定性、可扩展性和可维护性。在测井软件系统框架进行分析和设计时,根据系统的稳定性、可扩展性和可维护性的要求,项
目组经过细致分心,决定采用MVC设计模式。
MVC模式构架包括三个部分:模型(Model).视图(View)、控制(Control )o 模型(Model)主要是对系统的数据和逻辑运算的封装。它独立与系统的界面和I/0o视图(View)把表示模型的数据和逻辑关系用特定的形式展示给用户。控制(Control)处理用户和软件之间的交互操作,当模型的数据发生更新时,控制随着模型的更新进行相应更新,但是整个更新过程,对外接口不变,对视图造成最少的影响。模型、视图、控制的相互分离有利于模块之间内聚性的提髙和耦合性的降低。一个模型





模型的变化从而更新视图。

MVC 模式如何在测井软件系统实现,我们主要是从如下四个方面进行:
1分析系统功能。分离功能模型
首先根据系统的主要任务进行系统的模块分解。根据测井软件系统数据采集、数据转换和测井监控三个主要任务,把系统分为三个模块对应于MVC 模式的三个部分。其中模型
(Model)对应于数据的采集和工程值的计算。测井视图(View)对应于测井监控功能。模型层实现下面四大功能:采集测井数据、处理测井数据、存储测井数据以及数据的刻度计算。初始化井下仪器和硬件平台,采集数据帧,井下仪器数据的中断处
理,重组数据帧等任务由测井数据的采集模块实现。数据刻度
计算主要是针对不同的仪器实现数据的刻

度计算,即把获取到的测量数据对照刻度系数表进行计算,同时参考深度延迟数据来修正当前计算结果等。 数据存储主要是测井数据的存储和原始数据的存储。这里我们采用的是测井公用的XTF格式作为数据存储的格式。数据的操作由控制负责,它是视图和模型之间数据交互的接口,完成的任务主要是提供数据输入和输出功能。

2视图的设计与实现

视图主要是提供测井数据的图形显示。通过调用模型层

中的数据操作方法,从而提取测井数据,然后根据不同的测





井数据提供图像、波列、曲线等多种表现形式。在本系统的开发过程中,为了提高程序的健壮性和数据采集的稳定性,系统采用进程间通讯的消息传递方式与模型层和控制层进行交互。视图的实现本身就是一个独立的可执行程序,它通过TCP/IP网络与模型之间的进行通讯,视图主要包括绘图输出打印模块、数据显示模块和数据源模块等部分组成。数据源模块负责得到模型(Model)传递过来的数据,然后把数据再分配给相应的数据显示模块,数据显示模块设计成多个类的继承层次结构,其基类是全局绘图类(CDrawObj),从此父类派生出来的子类有图像类(CDrawImage)、波列类

(CDrawWave)、曲线类(CDrawCurve)0绘图输出打印模块提供

管理功能,负责数据显示的绘制和打印、视图的区域更新等功

能。

3控制的设计与实现

控制主要功能是提供用户的输入输出反馈,同时监控模

型的数据变化,通知视图进行更新。由于控制和视图的耦台

非常的紧密,在架构实现中,控制和视图是在一个应用程序中

实现的。控制主要分为井下设备控制和视图控制两个部分。视

图控制的功能是操作员调整视图显示的参数,包括鼠标的响应,

键盘的响应以及用户对测井原始图的特殊要求如

颜色的调整, 线相对输出界面的位置和线的大小等。井下

设备控制的功能主要是由操作人员根据呈现出的视图中曲





线和图像信息,对仪器发出对应的状态控制命令,以保证测井过程中数据和仪器的安全。

4使用可动态添加算模型
由于每次测井作业中下井仪器串的仪器种类和仪器的数量都是变化的,为了能更好的抽象出实际的测井模型,提高系统的灵活性,在模型中数据刻度计算部分,我们采用的动态添加 然的方式。我们把不同测井仪器的刻度算法封装到动态链接库,后根据测井作业的不同,调用用不同的仪器动态库中的刻度算法。由于视图和控制与模型之间的松耦合,当用户添加算法模块,视图与控制基本不要修改。

在采用MVC 模式的软件框架后,整个系统分为两个部分,
数据采集管理器和数据实时浏览器。数据采集管理器对应于模
(Model)的实现,数据实时浏览器器对应于视图(View)和控制Control)的实现。我们采用的是VisualC++, net 基 于Windows 2003平台来进行系统开发,采用MVC模式给我 们带来了如下好处:
1)由于模型(Model)与视图(View)和控制(Control)之间耦合关系很小,开发人员很快就在模型上建立了针对不同设备的视图,有地面系统控制室专用的视图系统,也有针对地下调试仪器临时用的视图系统,等等。这一举措极大地提高了调试人员的工作效率,显示了相当的实用性,硬件人员调试仪器时直接连接网线就可以一边看仪器一边看数据,不再需要象以前



必须到地面系统控制室查看数据了。

2适合多硬件平台的跨接。由于不同的硬件平台上采集

数据的方式部不同,有的系统采用的是PCI总线,有的是USB

,有的是ISA卡接入,由于模型Model和视图View

的松耦合,当要移植到不同的硬件平台上是我们只有修改相应

的模型Model,有可以实现对不同硬件平台的支持。

3良好的可维护性和扩展性。由于采用Model模式,系

统模块功能划分明确,代码实现也相对容易,代码的错误不会

在系统中扩散,同时由于可以动态添加仪器算法模块,当用户

添加新仪器时,不需要更改系统程序,只有添加仪器动态库

DLL就可以了。


5 结论

在使用软件设计模式的方法进行应用系统的设计和开发的

过程中,系统各个模块之间的逻辑关系相对独立,兼顾了高内

聚和低耦合的特点,一个模型可以对应多个视图,模型Model

视图View、控制Control三部分又相对独立,体现了更

好的重用性、维护性和扩展性。但是在实际应用软件设计模式

的过程中,笔者认为开发人员对设计模式的理解和应用程度直

接影响了使用的效果,经验越丰富,对设计模式的应用的就越

好。而且在项目开发过程中,采用哪种模式,或者采用几种模式

方案,这些需要在项目启动时多方论证,不断的尝试,判断模式

是否满足实际项目的需要。特别要注意的是不能为了设计模式





进行设计,也就是过分设计的问题。这样会导致设计过于复杂,偏离程序设计简约够用的基本原则。

目前设计模式在软件开发中的应用正引起广大开发人员的注意,各大软件开发商也在软件开发工具中提供了有关设计模式的自动应用的工具,相信设计模式会越来越多应用于软件的设计和开发中。





显示全文