论软件产品线技术
摘要
本人在测井行业的一个国有企业软件开发部工作,从2002年初开始,我陆续参加了多个测井软件开发项目,这些项目都是测井行业资料处理解释软件,具有很强的行业特征,其开发方向和应用范围都非常相似,从“测井资料处理集成软件”项目,开始我实施了软件产品线技术,虽然在开始阶段,由于经验不足和管理不善,遇到了一些问题,但是随着逐步实施,都得到的纠正和有效控制,目前这几个软件项目都非常顺利的完成,实施工期明显缩短,极大的提高了产品质量,本文就在这些项目中为什么实施软件产品线?在实施过程中遇到哪些问题?产品线开发支持工具选用情况和产品线实施带来的益处等进行论述,并分析总结在目前本单位产品线技术应用中存在的不足。
正文
本人在测井行业的一个国有企业软件开发部工作,在近几年来内,我陆续参加了几个的软件开发,2002年初参加“测井资料处理集成软件”项目,此项目的目的是集成本单位重点实验室研究成形的测井资料处理方法,提供一体化的应用,服务于各个测井公司,我负责底层平台设计和开发,2003年初参加“阵列感应实时分析软件”项目,主要针对单位自行研制测井仪器-阵列感应仪器MIT的现场资料实时处理,总体负责软件的设计和实现;2003年中,参加国家级项目“山地地震和矢量地震勘探研究”的“成像勘探开发处理软件”子项目,本项目的目的是实现国内勘探解释方法和仪器的大整合,“成像勘探开发处理软件”子项目完成成像勘探部分的软件开发,我负责成像勘探部分软件架构设计和分析实现;2004年初,参与总公司科技局“测井综合应用平台”项目,性质与“测井资料处理集成软件”类似,但集成范围扩大到整个测井行业,我参与了总体架构组,并完全负责底层平台的设计。
这几个项目都是测井行业资料处理解释软件,具有很强的行业特征,其开发方向和应用范围都非常相似。几个项目表现了很多共性特征,如数据录入接口方面,都采用测井行业标准的数据格式CIF、LIS和XIF等;数据表现方面,采用图件可视化方式;数据管理方面,除了第二个实时解释项目采用文件系统外,其他均采用数据库存储,使用测井国际化标准组织POSC的EPICentry规范,不仅如此,处理流程也大致相似,首先获取数据、进行数据转换,按照用户指定的方法进行资料处理,然后以形象化的方式反馈给用户一些处理特征,进行处理结果输出,各种资料归档等。除了这些共性外,几个项目也表现了一些个性特征,如“阵列感应实时分析软件”要求的实时性比较高,性能要求较高,采用文件系统,“测井资料处理集成软件”项目用于实验室方法集成,分析功能和研究性质略强于其他三个项目等,虽然存在个性,但是我认为几个项目更多地表现为一致性。
在这几个项目中我都实施了软件产品线技术。主要原因有以下几个:1、本部门长期承接测井行业软件开发,开发范围清晰,且容易界定,在多个连续的项目中,一直存在一些共性开发。在早期项目中,由于构架和开发接口不统一,造成重复开发的弊端,实施产品线可以有效节省人力、物力和财力。2、测井行业目前出现的软件都是层次架构,80%采用采用c/s模式,主要应用在测井资料处理上,其余采用B/S模式或者两种组合方式进行简单数据查询和处理结果显示,有利于产品线架构设计。3、由于行业特点,开发的软件很难适合所有的测井公司,而多数情况是量身定做,因此同一个项目可能出现多种软件版本,如华北油田专版,重点挂接生产测井解释功能,而长庆油田对斜井校正等方法较为重视,采用软件产品线可以方便解决这些问题。4、同时,测井行业中,方法的更新较快,但是一般的软件使用的方法都相同,如“测井资料处理集成软件”项目和“测井综合应用平台”项目使用同样的软件处理方法和图件绘制方式(测井行业特征,方法永远采用最新的),一旦解释方法和绘制方式改变,所有的软件要求能统一改变。
我在接手“测井资料处理集成软件”项目后,与其他开发人员向单位建议了软件产品线的开发技术,得到同意并开始实施。由于是新项目开始,而且软件规模不算很大,因此,我们直接采用了革命的方式,项目直接实施全新的软件产品线方式,我将团队分为两路,一路总结分析旧项目的软件,一路进行当前项目的分析界定,同时聘请行业专家和技术专家结合本项目从大局进行规划,首先进行行业分析,对行业分析结果与单位的规划进行整合,最后在形成的领域架构基础上进行当前系统的需求分析和设计界定,其中开发重点在核心资源库上,然后当前项目的软件直接复用资源库上的产品线构架和构件。这几个项目完成后,本单位的核心资源库得到了丰富和充实,由这几个项目直接构成的核心资源包括两套产品线架构,分别适用于测井资料处理和测井资料检索管理两种开发类型;数据格