前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统架构师论文-论软件产品线技术(测井工程服务)

系统架构师论文-论软件产品线技术(测井工程服务)

作者头像
cwl_java
发布2019-10-26 20:51:14
3770
发布2019-10-26 20:51:14
举报
文章被收录于专栏:cwl_Javacwl_Java

论软件产品线技术

-测井工程服务
[摘要]

根据公司软件系统开发的需要,我们在软件的开发过程中引入了软件产品线技术,成立了基于软件产品线的项目组。本人有幸参加了该项目,并在其中担任软件分析与设计、软件产品线核心资源开发的工作。 在软件产品线的开发过程中,我们使用了 ROSE建模工具,有效地完成了产品线中核心资源和产品的建模分析与设计实现;我们使用了国际标准POSC数据模型框架,有效地解决了数据的多样性与可扩展性,实现了统一开放的测井数据访问系统;建立了统一的可扩展的地质绘制组件和统一公用的数据处理模块。最终圆满的完成了公司产品线的建立和各子系统的开发。

[正文]

我公司是中国西部最大的石油测井服务公司,主要从事测井工程服务、测井仪器与测井软件的研发工作,在公司内部已经开发了多套测井数据软件,其中包括测井综合地面监控采集软件、测井数据解释处理系统、测井实时快速处理与解释系统、生产测井解释系统,分别由多个项目组分别开发。 其中,测井综合地面监控采集软件主要配合公司的综合地面系统,通过与地面硬件系统的前端计算机的通讯,实现対井下测井仪器状态的实时监视和控制、测井数据的实时采集和显示。整个软件分为通讯模块、数据采集模块、实时解码模块、实时简单处理模块、实时显示模块、实时出图模块和主控界面模块等。 测井数据解释处理系统主要完成测井数据的测后处理,包括测井数据的解码、数据编辑、环境校正、常规处理、成像处理、成果图绘制、解释报吿生成等功能,整个软件按分层架构开发,包括系统底层(包括数据底层、绘图底层、通讯层)、业务逻辑层(包括各种测井数据处理模块)和应用软件层(包括数据解码程序、数据编辑程序、深度校正程序、综合绘图程序、解释报吿生成程序等)。它主要是针対勘探开发测井中产生的新井的测井数据处理,所涉及到的数据主要是按深度采样的连续的测井曲线数据,而成果图主要是一种按深度比例的连续的测井图。 测井综合地面监控采集软件和测井数据解释处理系统均以推出了多个版本,进行了大范围的生产运用。而测井实时快速处理与解释系统和生产测井解释系统是我们正在准备开发的系统,测井实时快速处理与解释系统主要通过通讯卫星与在野外进行工作的测井车上的测井综合地面监控采集软件进行数据通讯,准实时的获得测井数据,然后由在解释中心的测井解释专家根据邻井资料和区块经验进行实时分析,整个平台分为实时数据通讯模块、实时解码 模块、实时处理模块、实时深度校正模块、实时环境校正模块和实时绘图模块等,而生产测井解释系统主要完成石油开采后期动态监测时的测井数据的数据处理,测井数据主要是离散的测井曲线数据,在数据绘制上和处理上与测井数据解释处理系统类似。 在以上的各个项目中本人主要负责了测井数据解释处理系统的软件分析与设计、软件构建的工作。対于以上的各个系统,如果用抽象的视角去观察,我们可以发现,其实他们处理的対象是一样的都是测井数据,在功能上都是获得数据后,处理数据,然后按规定的绘图格式展现给测井工程师,所不同时各系统的侧重点不一样,测井综合地面监控采集软件主要是完成対测井数据的采集工作,和通过数据的曲线图形方式监视井下仪器的工作状态和测井数 据的正确性,対系统的实时性要求比较高;测井数据解释处理系统主要完成测井数据的测后处理和测井数据的多角度观察分析,対实时性和可靠性要求不是很高;生产测井解释系统与测井数据解释处理系统基本层次结构相似,只是数据的格式和显示方式不一样;测井实时快速处理与解释系统対实时性要求稍高一些。通过以上対系统的分析可知,在以往的开发中我们各个项目组的人员实际在数据的存取、测井曲线的显示、测井数据的处理方面我们做了大 重了重复性工作,各个项目组都形成了自己的一套软件架构,在资源上造成浪费、且代码质量不能够得到有效保证。因此,由于数据存储和处理的一致性和绘图方式的一致性,我们可以引入产品线技术,有效的提高公司的软件系统的复用性和可扩展性,同时能够有效体提高公司软件的开发效率和质量。 我们给上级领导提出了合并测井综合地面监控采集软件项目组和测井数据解释处理系统软件项目组,成立公司的软件研发部,并将测井实时快速处理与解释系统和生产测井解释系统交由软件研发部来进行开发,在软件研发部,依托测井综合地面监控采集软件项目和测井数据解释处理系统软件项目的软件开发经验建立公司的软件产品线,这个建议得到了上级部门的一致肯定,最终成立了软件研发部,其下根据软件产品线的要求设立核心底层组、产品核心资源的建立。核心资源就是在测井行业软件中能够共事的部分。数据存储与访问部分、通用测井数据处理方法模块部分和测井曲线绘图部分,在我公司已建立和即将建立的各系统中都是高度共事的。由于我们的核心开发小组的成员就是原来各系统开发的核心成员,対原系统都有充分的理解,加上成立统一的核心小组后,更方便程序开发人员的之间的交流与沟通,我们很快就核心资源的需求达成了共识,対于需求的分析和核心资源的设计,由于核心资源涉及到的系统辺界较多,特别是测井数据的存储与访问接口,因此我们使用了 Rose建模工具,通过対原有系统的逆向工程和UML建模分析,理出了核心资源的接口设计和核心. 资源子系统的划分和子系统内各设计类,最终有利于我们建立合理的核心资源软件架构。在数据存储与访问部分,由于设及的测井数据格式较多,难以形成统一的数据存储格式和访问接口。通过采用国际石油软件组织的POSC行业标准有效的解决了这一问题,使用POSC的Epicentre数据模型实现测井数据的统一化存储,而POSC的DEA标准描述了数据的存取交换的方法,使用DEA使我们的系统具备了数据访问的标准接口。另外由于采用了国际通行的 POSC标准,使我们的软件具备了开放性,能够支持满足POSC・Epicentre数据模型的所有数据格式和対外提供基于POSC-DEA的标准数据访问接口,使得我们能够方便实现与第三方软件的数据交换。 测井数据处理部分,根据处理的通用性,将处理包分为通用数字值与处理包和测井专用处理软件包,将数据滤波等通用数字值与处理方法放到一个包中,将测井行业专用的POR处理方法等放到一个包中,实现了方法模块的高效复用。同时使用简单工厂模式实现了处理模块的动态加载。另外在构建测井数据处理构件时,由于测后处理和测时处理模块的处理方式不一样我们很难进行统一接口的设计,测时处理主要是基于深度点的单点处理模式,而测后 处理是基于深度段的处理方式,测后处理由于处理的复杂性可能会用到历史数据,在实现处理模块核心资源时,我们以单点处理模块为主,使用模块聚合方式实现了基于深度段的处理模块。而核心绘图资源的建立过程中也遇到了同样的问题,主要是实时系统和测后解释系统之间的绘图方式的不同,一个是基于深度点的行模式,一个是基于深度段的绘图模式,数据対象绘制图件较多,实时系统注重绘图的实时性,测后处理系统史关注绘图的效果。但是在图头的绘制上具有相同性対实时性要求不高,且图头的绘制要求基本一致,因此通过建立了一套图头绘制子系统和两个版本的绘图子系统,以应対不同的时间响应需求和绘图质量。 通过使用软件产品线技术,最终有效地提高了公司软件生产效率和质量、缩短了开发时间、降低了总体开发成本。但是也遇到了一些问题: 1)核心人员原先都没有从事软件产品线的开发,往往只关注自己熟悉领域的软件设计,没有全局的观念,为此我们通过加强团队人员间的沟通,互相了解彼此的领域,使开发人员的全局观念加强,另外通过软件架构设计培 训,提高软件人员的架构观念; 2)没有合适的构件集成工具,处理流程的建立主要依靠代码来实现,因此在未来的开发迭代周期里有必要开发集成工具。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论软件产品线技术
    • [摘要]
      • [正文]
      相关产品与服务
      数据保险箱
      数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档