基本信息
文件名称:系统架构师论文范文论基于构件的软件开发 .docx
文件大小:21.83 KB
总页数:3 页
更新时间:2025-05-16
总字数:约4.27千字
文档摘要

论基于构件的软件开发

摘要

去年初,单位承担了新立的“测井资料处理与解释集成软件”项目,目的是集成目前国内零散的测井解释方法,我有幸参加该项目,并负责软件系统平台设计和部分开发工作,在项目的实施过程中,我充分进行基于构件的软件开发,复用成熟的商业构件和本单位的构件资源库,同时考虑了本项目开发资源的进一步复用,形成了绘制组件包,数据交换组件和数值计算组件包等。基于构件开发,大大提高了软件的质量,缩短软件的开发周期。开发的软件目前在石油测井几个油田现场使用,并得到用户的好评。本文就在本项目中如何进行基于构件开发进行描述,并在复用构件的使用和丰富方面谈一些自己看法。

正文

2004年3月,我有幸参加了单位软件开发项目——“测井资料处理与解释集成软件”,并负责系统平台设计和部分开发工作,本项目是由中国石油天然气集团公司科技部的测井软件类项目,在项目立项之前,国内测井行业为了提高石油解释的分析和决策能力,在解释方法方面广泛与各大高校进行合作,经过长时间的积累,形成的非常多而且实用的方法和处理模型,并开发了简单的使用系统,但这些应用非常零散,不统一,无法协调工作,处理效率低,多个解释系统之间没有必然联系,而且数据格式多种多样,不利于测井的精细解释和综合应用。本项目的目的是为了综合决策能力,提高石油解释的准确率,考察了解国内流行的测井资料处理解释方法,将成形和半成形的解释方法进行筛选和整理,集成到统一的系统平

台上,增强一体化处理功能和商业化能力,并有偿反馈给石油测井现场用户使用。

在本项目立项前,单位承担了较多的软件开发项目,软件开发方法一直在改进更新。单位早期的软件以数值计算为主,主要采用面向过程开发方法,但随着软件的复杂度增加,可视化要求和开发效率,在面向过程方法不能满足要求的情况下,开发方法转为面向对象方法,实现界面编程,可视化操作交互,开发效率得到大幅度提升,但是这种方法也存在一些不足,无法有效实现资源复用,多个项目之间的资源复用仅限于部分开发过程和偶尔可以复用的模块类,新项目很少能借鉴老项目,即使存在明显类似的项目也无法有效复用,出现了多个项目组软件界面不统一,操作习惯不一致等情况,因为新项目只注重眼前效率和操作适应性,

根本没有考虑以后的复用,导致重复开发,浪费人力物力。因此,在面向对象开发方法的基础上进行改进,采用基于构件的开发方法,在每一次项目中,尽可能地考虑以后可重用的部分,以构件形式进行设计开发,虽然在单部分的开发工作可能增加,但是多项目综合考虑,大大提升软件的开发效率。而且,本单位大部分项目为测井类软件项目,在软件的设计思路和最终成品上看,很多部分非常相似甚至雷同,几个连续项目存在联系,基于构件开发的软件方法在本单位更能体现作用。

在“测井资料处理与解释集成软件”项目的设计和实施过程中,我使用了基于构件开发的方法,充分利用公认的构件技术-COM/DCOM和ADO等,使用已有的商业构件-Xtreme和Esstentails等,复用单位的构件资源-数据转换组件,并开发了新的构件,如绘制组件包,

数据交换组件和数值计算组件包等。

本软件系统以测井解释分析为主,主要包括图件绘制、用户交互操作、数值处理和数据存储等几个部分,我将软件设计为c/s四层体系架构。客户端应用程序采用MicrosoftVisualC+开发,本单位已经购买了Xtreme的使用权,Xtreme是基于c的MEC框架的界面构件,它是微软的合作伙伴,能经过简单的几步向导就能产生美观的软件界面,它生成的界面具有一致性,对于测井解释集成应用,统一的界面可以降低软件的学习难度,增强软件的易用性,使用Xtreme,我非常方便地实现了界面设计和开发工作。

图件绘制基于GDI和GDI+开发,每个绘制对象采用单独的一个类进行封装,绘制的载体

对象派生于MFC的窗口类,其他对象派生于同一个基类,基类设计足够的消息响应函数,对象采用重载虚函数或者操作自动定向,实现鼠标响应,属性修改和递归型子对象管理。绘制载体类和基类封装在一起,形成绘制核心库,其他对象单独以MFC扩展动态库实现,一个或者几个对象设计成一个扩展对象库,如果要增加和删除某个对象,只需修改相应的扩展动态库。这样,只需要绘制核心库与必要的绘制对象扩展库,就可以提供相应的绘制功能,而且绘制的对象可以定制并进行二次开发。在某些绘制图件的设计中,考虑到算法的难度,直接利用较为成熟的绘制构件-GigasoftProEssentials,如等值线图,区块三维分布图和多井连通图等图件的绘制算法,核心绘制部分直接由Essentials完成,用户交互响应由对象封装。测井解释的核心部分