
隨著計算機與通訊技術的快速發展,促使石油企業向信息集成化、管理智能化發展。其中軟件質量保證(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改進模式
改進后的質量保證管理模式是將質量控制活動貫穿到整個軟件開發的生命周期當中,將項目方技術人員盡可能的參與到項目各個階段的質量活動當中,與傳統質量保證管理模式比較,具體改進如下:
CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄