|
|
石油行业软件质量保证管理模式探讨 |
来源:中国化工信息中心 发布日期:2010/1/25 10:00:28 |
|
随着计算机与通讯技术的快速发展,促使石油企业向信息集成化、管理智能化发展。其中软件质量保证(Software Quality Assurance,简称SQA)在其发展过程中占有重要的位置。本文分析了目前油田行业软件质量保证过程中存在的问题,从软件项目方的角度探讨特殊行业软件质量保证的有关方面的内容,包括项目方在实施目前石油实施SQA应关注的几个部件和质量属性。
一、问题提出 胜利油田是一个集资源、资金、技术和人才密集的国有特大型企业,在实施中国石油工业“稳定东部,发展西部”战略方针中具有举足轻重的地位。从信息技术应用以来,一直是推动石油工业飞速发展的内在动力。促使石油企业向信息集成化、管理智能化发展。以东辛采油厂为例:自1998年以来,各级领导以及生产部门逐步认识到信息化建设对于“科学管理,降本增效”上发挥越来越重要作用,逐步加大了在软件开发和应用方面的投入;各个业务方面的软件相继不断到投入到生产和管理当中,发挥了一定服务与辅助生产的作用。但由于计算机软件开发技术不断地更新、开发工具越来越先进、各生产部门对应用软件期望也越来越高、以及油田机构体制的改革等多方面原因的影响,致使部分应用软件在应用中也逐渐不能满足生产需要。根据据采油厂信息中心对1998年至2005年这近八年时间内开发和应用软件情况调查分析来看:一类以对外承包方式开发的软件在实际应用中效果最不理想,周期短,存在诸多问题,甚至有的软件验收完毕既是软件生命周期结束之时;而以自主开发几乎很少投资为主的软件应用效果最好,一直在生产中发挥主导作用。通过分析表明:以自主开发的软件,一方面开发人员从事过油田基层技术方面的工作,熟悉相关业务,专业知识比较精通,能随着计算机技术发展而不断地对软件功能进行更新和维护;另一方面,这类软件主要针对特定的领域,软件规模相对较小,开发技术难度也不是太大;而以外包为主的这类软件,开发方(软件公司)对油田业务不熟悉,开发规模相对较大,在实施软件质量保证方面缺少必要的计划和项目方对软件公司也缺少相应技术方面监管,导致最终开发的软件类似“夹生饭”,在实际生产中很难推广,达不到预期的效果。如何改变这种状况,切实发挥信息化对生产的辅助作用,需要分析当前软件质量保证模式中存在的问题,以便有针对性地提出更好的SQA模式。
二、采油厂SQA模式以及存在问题分析 目前厂级软件项目立项分为局级和厂级两类,基本流程是:由相关生产部门针对生产中需要软件支持的业务提出相应项目,由厂科技办组织相关人员对所申报项目进行筛选,获得批准的项目由申报单位上报相应开题报告,其软件项目实施基本流程如下图: 图1 采油厂传统开发生命周期SQA模式流程 按照质量控制活动应贯穿整个项目始末原则分析,在这种SQA模式中,主要存在以下问题: (1)缺少质量计划;尽管在与开发方签定的合同中规定了一些软件产品应达到的要求条款,但这并不是真正意义上的质量计划; (2)分析设计阶段项目方应有相关专业技术人员参与其中,以此保证系统需求文档以及详细设计文档的正确性以及功能完备性; (3)缺少用户参与软件的功能测试;常常表现为易用性差; (4)软件验收只注重开发方的项目总结文档验收,文档与软件之间的一致性得不到保证; (5)部分软件开发方甚至不提供软件源代码,即使提供程序源代码,但源代码不规范造成项目方技术人员无法熟悉,不利于今后的维护与扩展; (6)软件项目一般是一次性投资,没有软件维护资金,在开发方软件维护期过后,软件出现问题,有时造成软件无法正常使用,容易造成“猴子掰棒子,开发一个丢掉一个”的现象。对于这种模式存在的缺陷,将在文章后面提出改进模式。
三、项目方SQA应关注的几个主要部件 高质量来自满足项目方需求的质量计划、质量保证、质量控制和质量改善活动,来自保证质量理念、规则、机制和方法。从项目方角度描述SQA需要关注的几个主要部件。 3.1严格合同评审内容 在石油行业中,一般的软件开发合同是针对某一特定的领域或专业中进行技术合作并受合同法保护的文本。行业软件具有与其他一般通用性软件不同特点,就是很难形成产品,往往是一次性,具有“投入大、回报低,风险高”等特点。合同的拟定应该在项目可行性分析以及基本需求确定的情况下进行。合同中不严格定义的需求、不现实的项目投入以及进度计划,往往导致低软件质量。因此,做好合同评审是软件质量保证的第一步。影响合同评审范围的因素有:项目规模、项目技术复杂性、开发方对相关专业领域熟悉程度与经验以及开发方的资质、信誉等。承担过类似项目并取得较好效果的开发方往往是最佳合作伙伴。 3.2配合开发方制定合理的开发计划与质量计划 在确定待开发项目合适的质量目标前提下,软件项目计划和质量计划应由软件开发方与项目方共同根据合同规定以及需求文档制定,作为项目方,应有石油行业相关专业技术人员配合开发方制定合理的开发计划和质量计划,有效地避免开发高风险。项目计划应包括以下要素:项目产品、项目接口、软件开发标准和规程、项目各阶段的详细定义、项目组成人员(项目方是否有相关专业专家或技术人员)、开发风险是否采取有效方式规避等;质量计划应包括以下要素:项目质量保证目标是否过低或过高、计划评审范围、类型以及规程、软件测试计划、石油行业验收测试计划、配置管理工具和规范。 3.3参与软件功能测试 对于项目方来说软件测试主要集中在功能测试,按照合同以及需求分析文档(包括文档变更)的要求进行。质量需求几个主要因素包括:正确性、可靠性、效率、整体性以及实用性等。测试类有:正确性测试、文档测试、可用性测试、可靠性测试、操作实用性测试、可维护性测试等。值得注意的是:文档测试在实际测试验收中几乎被忽略。测试最终结果应提交项目方项目负责人进行最终确认,是否达到合同规定的质量目标。 3.4同行评审和验收 项目方虽不参与开发方的设计评审,但有必要参加同行评审。参与同行评审至少包括两类人员:该项目相应的专业技术人员,负责审查设计中有关专业方面存在的问题;另一类人员为该软件运行的维护人员,关注开发的软件可维护性、灵活性、可扩展性和可测试性。 开发方在验收中应提交以下文档和资料: (1)项目可行性分析以及立项报告; (2)软件需求规格说明书; (3)项目实施计划; (4)数据库设计说明书; (5)软件设计说明书。对一些规模较大或复杂性较高的项目,应该把本文档分成概要设计说明书与详细设计说明书两个文档; (6)软件测试计划说明书; (7)软件测试结果分析说明书(包括项目方功能测试情况); (8)用户手册(包括使用手册与管理员维护手册); (9)源程序清单(以存储介质保存提交); (10)软件试运行情况总结以及使用单位证明; (11)项目开发总结报告。 经过开发方测试和项目方参与功能测试后,软件还应试运行一段时间,在软件试运行过程中项目方应组织人员特别是软件用户尽量发现软件中的错误,并反馈到开发方做出修改。开发方在此过程中应做好验收准备,按照合同要求由项目方组织项目验收。软件项目验收大致可分为三部分:文档代码一致性审核、软件配置审核和可执行程序测试。
四、探索构建新的SQA模式 4.1项目方关注的几个基本质量属性 作为项目方,只有深入细致了解软件质量属性,才能构造更好的软件质量保证模式。从项目方角度来分析,软件质量属性应关注以下几个最基本属性: 4.1.1正确性 正确性是最基本的软件质量属性。如果软件运行不正确,将会给用户造成不便甚至损失。 4.1.2可靠性 可靠性问题通常是由于设计中没有料到的异常和测试中没有暴露的代码缺陷引起的。可靠性通常用平均无故障时间(MTTF, mean-time to fault)来衡量。 4.1.3性能 性能一般指指软件的“时间空间”效率。尽管目前石油行业硬件配置比其他行业处于较高的领先水平,但开发的软件性能应该也是一个值得关注的质量属性。 4.1.4易用性 易用性一般是指用户使用软件的容易程度。软件的易用性应该让用户来评价,而不是由所谓的专家来评价。如: “界面友好”、操作“方便易用”等。其他的软件属性 如:兼容性、可移植性、健壮性、清晰性、 安全性、可扩展性应根据软件的性质、应用的专业领域范围分别加以强调。如安全性,对于涉及数据保密性高相关软件,安全性应特别要求。 4.2小型项目SQA模式 软件规模划分有很多种划分方法,站在不同的角度往往有不同的划分规则,目前还没有统一的标准。从开发方的角度,可能根据软件代码行的多少、规模大小、软件开发技术难易程度、投入开发人员多少等因素来划分;而从项目方角度,最常用的方法是按投资大小划分,但也只是一个相对的标准。对于不同规模软件采取不同的质量保证模式,一方面可节约投资,同时也能保证最终项目的质量。由于小型软件项目投资少,项目规模一般不是太大,软件质量比较容易控制,同时也为了保证开发方获得应有的利益,因此对于小规模软件仍源用于目前软件质量保证模式,但应对当前质量保证管理模式存在的问题进行以下改进。如下图2: 图2 采油厂传统开发生命周期SQA改进模式 改进后的质量保证管理模式是将质量控制活动贯穿到整个软件开发的生命周期当中,将项目方技术人员尽可能的参与到项目各个阶段的质量活动当中,与传统质量保证管理模式比较,具体改进如下: (1)细化软件开发生命周期各个阶段; (2)在确定软件质量目标的前提下,制定软件开发计划和质量计划,项目方严格监控各个阶段质量计划执行情况; (3)尽管编码阶段没有项目方参与,但必须在后面的阶段中有源代码规范检测,并执行文档与软件一致性检查; (4)在软件开发生命周期中增加了试运行阶段,虽然这个阶段与软件ß测试类似,从测试阶段分离出来是有必要的,在该阶段结束时须有用户试运行情况报告以及使用证明,作为验收的依据之一,以便将发现问题反馈到开发方,只有得到用户认可的情况下才能进入项目的交付与验收阶段; (5)依据以往经验,软件尽管经过了严格的质量保证管理,但仍很难保证软件在开发方维护期结束时不出现错误,或者是需求阶段考虑不周;因此在改进模式中提出了应考虑软件维护资金,以确保软件将发现的错误予以排除以及适应一定程度上的需求变化。 4.3大中型项目SQA模式 改进后的质量保证管理模式对于小型软件质量活动是适用的,但对于大中型软件来说是难以适用的。原因是大中型软件一般规模大,涉及业务部门多,复杂程度增加,质量控制难度大;另一方面项目方很难有软件质量保证的技术人员投入项目之中,这也就是为什么“软件规模越大,风险越高,成功的几率低”的原因。由于软件开发也是一项工程项目,可以借鉴大型建筑工程项目质量控制理论。近几年国内已有一些大型项目开始采用第三方参与质量保证模式。这种大型项目监理模式,将会将会降低开发大型软件高风险,提高成功率。这种三方合作软件质量模式关系如下图: 图3 大型软件项目项目方、开发方、质量保证方关系图 目前油田行业大型软件项目投资几乎没有引入质量保证三方合作SQA的模式,值得关注。结合油田特殊行业软件开发的特点,按照传统开发生命周期方式,构造采油厂大型软件项目质量保证模式如下图: 图4 三方协作传统开发生命周期SQA模式 采用这种模式的优点:质量保证方根据项目方委托代替项目方行使软件质量保证职能,解决项目方在开发性大型软件项目中缺少质量保证技术人员的矛盾。因此质量保证方应在项目立项后直到项目验收行使其职能以及承担其相应责任(有关质量保证方在各个开发阶段的如何协调三方共同做好大型项目,请参考其他资料,非本文探讨的主要问题)。采用这种模式存在缺点:主要是增加项目方的投资,但与大型项目的风险程度相比,增加适当的投资降低项目风险应该是值得的。
五、结束语 随着石油行业开发软件的规模越来越大,随之而来存在的风险也极大,预计不久项目监理SQA模式将会在油田的信息化建设得到应用;本文探讨的SQA模式只是针对传统串行软件开发方式,对于其他的开发方式,如并行开发、敏捷编程、无模式开发等,SQA管理模式应根据实际需要进行设计。当然,要使SQA管理贯穿整个项目始末,在企业中发挥真正的作用,还得有完善的用人体制、管理机制来做保障。
作者简介: 郭誉明(1970- ),男,湖南澧县人,工程师,毕业于西安石油大学,工学学士学位,山东省石油学会会员,目前在读上海交通大学软件学院软件工程方向工程硕士。主要从事采油工程、井下作业方面的软件开发与推广工作。曾先后参与或自主开发《机械采油井优化设计》、《油水井工况控制管理系统》、《井下作业施工设计》以及《井下作业施工总结》等软件。 |
|
|
|
|