軍用軟件工程標準研究及意義分析
軍用軟件工程標準研究及意義分析
一、軟件工程標準產生的背景
眾所周知,計算機(硬件)一問世,軟件即如影隨形而來,井進而發展成一門產業--軟件開發。早在60年代,軟件開發通常還只是編程者個人行為,軟件開發者和使用者往往是同一個(或同一小組的)人。這種個體化的特性使軟件設計成為人頭腦中的一個隱含過程,除了程序清單之外,沒有其他文檔保存下來。
從60年代中期到70年代中期,隨著計算機應用的日益普及及軟件需求量的急劇增加,出現了以小組或小集體為單位的"軟件作坊",他們開發的軟件主要供本單位使用。這種"軟件作坊"基本上仍然沿用早期形成的"個體式"的軟件開發方法。但是,由于用戶不斷提出新需求,所以程序也必須不斷做出相應修改;隨著硬件或操作系統的頻繁更新,又要修改程序以適應新的環境;程序運行時發現錯誤也需設法改正,所以,不僅"作坊"式的開發方法不能滿足客觀需求,而且人們發現軟件維護工作以令人吃驚的比例在耗費著資源。更嚴重的是,程序設計的個體化特性使軟件最終難于甚至不能維護,于是出現了"軟件危機"。軟件危機主要體現在:
a. 不能正確估計軟件開發的成本和進度;
b. 對"已完成的"軟件系統,用戶經常不滿意;
c. 軟件質量靠不住;
d. 軟件常常不能維護;
e. 沒有建立適當的文檔資料記錄軟件開發過程中的信息及其變化;
f. 軟件費用占計算機系統總費用的比例逐年上升等等。
軟件危機的產生與軟件開發和維護時所使用的方法有關,但根本的還是軟件本身的特點使然。軟件是計算機系統中的邏輯部件而不是物理部件,在計算機上運行之前,軟件質量較難評價,因此,管理和控制軟件開發過程相當困難。軟件的另一個顯著特點是規模龐大,復雜程度高,如美國穿梭號飛船的軟件含4000萬行代碼,相當于4000人年的編程工作量,如何保證每個人完成的工作合在一起構成一個高質量的大型軟件顯然是一個極端復雜的問題。再者,軟件維護常常意味著要修改原來的設計,這樣大型復雜的軟件的修改,其難度之大是不難想像的。
總之,解決軟件危機,僅靠技術措施是辦不到的,它更需要有先進的管理措施。60年代后期計算機科學家們就開始研究解決軟件危機的方法,并逐漸形成了計算機科學技術領域中的一門新興學科一一軟件工程學。軟件工程學是研究采用工程的概念、原理和方法進行軟件開發和維護的一門學科。它是軟件發展到一定階段的產物。軟件工程學的出現既有工程技術發展提供的客觀背景,也是軟件發展的必然。
軟件發展到軟件工程學時代,根本上擺脫了軟件"個體式"或"作坊式"的生產方法,人們更注重項目管理和采納形式化的標準和規范,并以各種生命周期模型來指導項目的開發進程。在此期間出現了CASE(計機算機輔助軟件工程)工具,并被廣泛用于輔助人們的分析和設計活動,并試圖通過創建軟件開發環境和軟件工廠等途徑來提高軟件生產率和軟件產品質量。
隨著軟件工程學的蓬勃發展,政府部門、軟件開發機構以及使用部門等都深切感到了在軟件工程領域內制定各種標準的迫切性,于是軟件工程標準應運而生。
二、軟件工程標準體系
軟件工程標準是對軟件開發、運行、維護和引退的方法和過程所作的統一規定。根據GB/T15538,軟件工程標準體系可分為4個部分:過程標準、產品標準、行業標準和記法標準。其中過程標準和產品標準是軟件工程標準的最基本也是最主要的組成部分,ISO/JTC1/SC7《軟件工程》及我國軍用軟件工程標準通常也只包括這兩部分內容。過程標準是用來規定軟件工程過程中(如開發、維護等)所進行的一系列活動或操作以及所使用的方法、工具和技術的標準,如GJB2786《武器系統軟件開發》、GB/T 14079《軟件維護指南》和GB/T 15532《計算機軟件單元測試》等都為軟件工程過程標準。
產品標準是用于規定軟件工程過程中,正式或非正式使用或產生的那些產品的特性(如完整性、可接受性)。軟件開發和維護活動的文檔化結果就是軟件產品。這類標準有GJB2255《軍用軟件產品》、GJB 438A《武器系統軟件開發文檔》、GJB 9385《計算機軟件需求說明編制指南》等。以下提供的表1"軟件工程標準分類表"既可幫助標準化人員管理和規劃軟件工程標準也可幫助廣大科研人員選用軟件工程標準。
標 準 類 型 | ||||
過程標準 |
產品標準 | |||
任 務 功 能 |
驗證 與 確認 |
審查和審核 |
||
產品分析 |
||||
測 試 |
||||
技術 管理 |
過程管理 |
|||
產品管理 |
||||
資源管理 |
||||
軟 件 生 存 周 期 |
概念階段 |
|||
需求階段 |
||||
設計階段 |
||||
實現階段 |
||||
測試階段 |
||||
制造階段 |
||||
安裝和驗收階段 |
||||
運行和維護階段 |
||||
引退階段 |
三、國外軟件工程標準現狀及發展動向
ISO是國際標準化團體中最重要的一個組織,其宗旨是在世界范圍內促進標準化工作的開展。它發布的標準被越來越多的國家直接采用,因此,其標準也是最有影響的標準之一。 ISO/JTC1/SC7軟件工程分委員會已正式發布標準就有15項。另一個在軟件工程標準化方面相當活躍的組織為IEEE(電氣與電子工程師協會),其標準部和軟件工程分委員會經常舉辦有關軟件工程的研討班,并與有關標準化組織、協會以及政府部門保持密切聯系,到目前為止已正式發布的IEEE標準約30余項。
世界上第一個軟件工程標準是由美國軍方制定的。美國是國際上軟件工程最為發達的國家,尤其是軍用軟件,70年代前后美軍就開始陸續制定軍用軟件工程標準,到目前已發布的軟件工程標準約30項。提高軟件生產率、保證軟件質量一直是軟件界追求的目標。在過去幾十年里人們不斷探索新技術、新方法和新工具,并為實現這個目標做出了巨大努力。但是,仍有不盡如人意之處,諸如有成熟的技術方法和工具,但使用起來卻千差萬別;有嚴格的標準規范,但管理起來卻總很困難;有標準的開發模型作指導,但這些都起不到很大的控制作用。這里固然有人為因素、技術因素和管理因素,但其中重要的一點是缺少軟件過程的約束性。人們漸漸認識到,軟件產品開展成敗的關鍵在軟件過程。軟件過程評估技術和標準的研究成為近年來備受國際社會廣泛重視的熱點。
1987年,美國軟件工程研究所(SEI)發表了承包商軟件工程能力的評估方法標準,1991年該標準發展成為能力成熟度模型1.0版(CMM1.0)。該方法的研究本是受美國政府委托用來評估美國國防部潛在的軟件開發承包商軟件工程能力的,但在CMM試用過程中一個更加重要的作用越來越被人們重視,那就是描述了軟件過程不斷改進的科學途徑,從而使軟件開發組織能自我分析,找出提高軟件過程能力的方法,所以CMM也得到了國際軟件產業界和軟件工程界的廣泛關注和認可。1993年,ISO在調研國際社會對軟件過程評估標準需求的基礎上決定組織制定軟件過程標準,1995年完成了ISO/IEC15504《軟件過程評估》工作草案,該草案以CMM為基礎,并吸收了國際上軟件過程工作的成果。ISO/IEC 15504目前仍處于試用階段,可望今年完成標準定稿。
四、我國軍用軟件工程標準分析
1. 軍用軟件工程標準現狀
我國軟件工程標準化工作80年代初才開始起步,經過10余年的努力取得了喜人的成果,現已頒布國標22項、國軍標約15項,另如航空、航天、電子、機械等部門也基于行業軟件管理的需要分別制定了若干行業標準,國內大型工程項目也制定了自己的軟件工程標準規范,如921工程軟件研制管理辦法、青鳥工程軟件規范等。1983年軍用標準化工作實行統一管理以后,軟件工程標準化工作受到各有關方面的重視,取得了可喜的成績,迄今已頒布的15項國軍標中的大多數標準已被軍內外廣泛應用,對一些大型信息系統工程及重點武器型號的研制、生產及使用起到了積極的促進作用。按照"積極采用國際標準及國外先進標準"的技術政策,我國軍用軟件工程標準絕大多數都是參考美國軍用標準,并結合我國具體情況制定的,但由于共知的原因,我國軍用軟件工程標準整體水平還是落后于國外先進國家,這從表2中不難看出,我國同類標準的出臺,一般落后美國軍標近10年左右。然而相對于目前我國軟件工程化水平而言,這些標準確具有先進性和指導性,至少在今后的幾年內仍將會發揮重要的作用。
2. 重點標準分析
(1)GJB437《軍用軟件開發規范》是第一個軟件工程國軍標,它規定了軟件生命周期中軟件需求分析、軟件設計、軟件實現和軟件測試的基本要求,同時它還涉及到這些階段中的軟件質量保證、軟件配置管理、軟件開發管理和軟件文檔編制等方面的內容。GJB 437為軍用軟件開發規定了統一的最低要求,而GJB 438、GJB 439、GJB 1090、GJB 1267和GJB 1268則是對GJB 437要求的補充和細化,在GJB437的實施過程中,常常需要與這些標準配套使用。GJB 437、GJB 438和GJB 439等標準在我國軍用軟件的開發中曾起到十分重要的作用,然而隨著軟件工程技術的迅速發展以及計算機在軍事領域中更廣泛深入的應用,GJB 437已難以滿足當前軟件開發等各方面的需要。首先,現代武器裝備特別是大型武器系統的軟件往往嵌入到系統中,與設備或其他分系統密不可分,因此在系統研制一開始就必須考慮軟件問題。然而GJB 437則是將軟件系統作為單純軟件來考慮,淡化了軟件與整個武器系統的關系,因此導致系統的要求較難向下分解,軟件與設備或其他分系統的接口較難定義,系統集成和測試也較難實現。其次,采用GJB 327意味著按照瀑布式開發模型進行軟件開發,限制了軟件開發人員對目前較先進的開發模型、開發方法的使用,因此也給軍用軟件的開發工作帶來了很大不便。另外,GJB 437的內容也不夠完善,對開發過程中涉及到的風險管理、安全性等問題都未作出規定。對GJB 437進行修訂或制定新的軟件開發標準已經勢在必行。
標準號 |
標準名稱 |
參考標準 |
GJB 437-88 |
軍用軟件開發規范 |
DOD-STD-1679A:1983 |
GJB 438A-97 |
武器系統軟件開發文檔 |
DI-MCCR-8002 8:1986等 |
GJB 439-88 |
軍用軟件質量保證規范 |
MIL-STD-5277A:1979 |
GJB 1091-91 |
軍用軟件需求分析 |
IEEE-STD-830:1984 IEEE-STD-829:1983等 |
GJB 1267-91 |
軍用軟件維護 |
FIPS-PUB-106:1984等 |
GJB 1268-91 |
軍用軟件驗收 |
DOD-STD-1703:1987等 |
GJKB 1419-92 |
軍用計算機軟件摘要 |
FIPS-PUB-30:1974 |
GJB 1566-92 |
軍用計算機軟件文檔編制格式和內容 |
|
GJB 2115-94 |
軍用軟件項目管理規范 |
FIPS-PUB-105:1983 |
GJB 2255-94 |
軍用軟件產品 |
DOD-STD-1703:1987 |
GJB 2434-95 |
軍用軟件測試與評估通用要求 |
ISO 9126:1991等 |
GJB2694-96 |
軍用軟件支持環境 |
DOD-STD-1467A:1987 |
GJB 2786-96 |
武器系統軟件開發 |
DOD-STD-2167A:1988 |
GJB/Z 102-97 |
軟件可靠性和安全性設計規則 |
SWC-TR-89-33;MIL-HDBK-764:1990等 |
GJB 3181-98 |
軍用軟件支持環境選用要求 |
MIL-HDBK-764:1990 |
GJB 2786(武器系統軟件開發)剪裁指南 |
MIL-HDBK-287:1989 | |
軍用軟件驗證和確認指南 |
F IPS-PUB-132:1987(即IEEE-STD-1012)等 |
(2)GJB 2786《武器系統軟件開發》規定了武器系統軟件開發和保障的基本要求,適用于軟件生存周期的全過程,為軟件的訂購方或使用方了解承制方的軟件開發,測試和評價工作提供了依據。GJB 2786克服了GJB 437的不足,充分體現了系統工程和軟件工程的思想,具有鮮明的特點。特點之一就是提供了承制方在滿足合同或任務書要求前提下的靈活性。在標準中,它定義了軟件開發的8項主要活動,并特別說明這些活動可以重迭,也可以交叉或循環進行,因此GJB 2786對許多軟件開發模型來說都是可接受的,即其本身可接受多種不同的軟件開發方法。標準中唯一帶有約束性的是承制方應使用有充分的文件證明的、系統化的軟件開發方法,且該方法應支持合同要求的正式審查和審核。
GJB 2786規定了軟件開發的8項主要活動,即:
a. 系統要求分析和設計
b. 軟件需求分析
c. 概要設計
d. 詳細設計
e. 編碼和計算機軟件單元測試
f. 計算機軟件部件集成和測試
g. 計算機軟件配置項測試
h. 系統集成和測試
同時又從軟件開發管理、軟件工程、正式合格性測試、軟件產品評價、軟件配置管理、向軟件保障階段轉移等6個方面對上述8項活動提出了具體要求。
GJB 2786中每項要求都是唯一的,不存在冗余,一般要求與詳細要求具有嚴格的對應關系,可以很方便地對標準進行一致的剪裁;而且標準只包含要求,沒有其他指導或輔助性信息。便于剪裁是GJB 2786的另一大特點。
GJB 2786的參考標準DOD-STD-2167A《防務系統軟件開發》是美國國防部于80年代末期組織強有力的技術隊伍,包括各種不同意見的專家,政府部門、學術界及應用領域中的人才共同研究制定的,是這一時期美國標準化工作的一項重要成果。美國防部規定,凡國防部關鍵任務計算機資源項目一律要遵守該標準,足見其位置之重要。但隨著技術的發展,DOD-STD-2167A于1994年11月被美軍標MIL-STD-498《軟件開發和文檔》所代替,究其原因,主要有以下兩方面:一方面是受當時業已開始的美國軍用標準改革的沖擊;另一方面是進入90年代以后,軟件工程技術日益普及,軟件工具、平臺環境開始廣泛進展。MIL-STD-498與DOD-STD-2167A相比不論在指導思想上,還是標準的內容上都有較大改變,不僅增強了與不同開發模型的兼容性,而且還增強了與非層次結構設計方法以及與CASE工具的兼容性,對文檔的編制要求也更具靈活性,并對軟件重用提出了明確要求。另外還引進了軟件管理標準,更加強調了軟件的可支持性及與系統的聯系。
五、對軍用軟件工程標準化工作的幾點建議
1. 軍用軟件工程標準有待整頓和完善
軍用軟件工程標準體系應是一個動態的體系,以適應不斷變化的環境需求。對于一些不適用的標準應及時作廢或修訂,對于新的需求應制定新的標準及時給予反應。從目前情況來看,這方面我們雖然做了不少工作,但還有不少地方有待進一步改進完善,從前面的分析中可以看出,GJB 437和GJB 439已到了作廢的時候,GJB 437的內容完全可由GJB 2786取代:GJB 439的要求也在GJB/Z 90000系列中基本都得到反映。GJB 1091、GJB 1267和GJB 1268也應及時修訂以保證與GJB 2786的協調一致。對于不斷涌現的新的軟件工程技術如軟件過程評估、軟件安全性分析、軟件風險管理及軟件重用等也應積極開展標準化研究工作,加強有關標準的制定,以補充完善軍用軟件工程標準體系。
2. 加強軟件工程標準宣傳工作,促進標準的貫徹實施
計算機軟件已成為現代化武器裝備中不可缺少的組成部分,武器裝備的性能和功能越來越依賴于軟件來實現。然而,我們有些項目管理人員對此重要性沒有足夠的認識,他們知之甚少,對軟件開發缺乏足夠的重視,因而監督管理不力,致使軟件開發常常成為拖延武器裝備研制進度、費用增加的一個主要問題。對此,我們應通過各種方式加強軟件工程重要性及其標準內容的宣傳,提高廣大科研人員、管理人員的標準化意識和促進其對軟件工程的了解,從而使軟件工程標準在武器裝備研制、生產和使用中真正得到貫徹實施。
3. 積極跟蹤和研究國際。國外軟件工程標準發展動向
國際標準反映了世界工業發達國家當代的先進技術水平。通過積極研究和采用國際、國外軟件工程標準是一條加速標準制定、提高軟件工程化水平的捷徑。目前我們雖然擁有豐富的美國軍用標準資料,有能查詢各種標準最新信息的Internet網站點,然而由于這方面工作缺乏統一規劃和具體安排,加之標準化研究隊伍松散,致使新的標準技術跟蹤很不及時。因此,筆者認為,加強國際、國外軟件標準化發展動向的跟蹤,深入開展ISO 9000-3和ISO15504及 CMM等研究,對加速有關標準的制修訂,提高軟件質量是十分重要的,應當有組織、有計劃地開展好此項工作。
軟件工程標準化的意義
為什么要積極推行軟件工程標準化工作,其道理是顯而易見的。僅就一個軟件開發項目來說,有多個層次、不同分工的人員相配合,在開發項目的各個部分以及各開發階段之間也都存在著 許多聯系和銜接問題。如何把這些錯綜復雜的關系協調好,需要有一系列統一的約束和規定。在軟件開發項目取得階段成果或最后完成時,需要進行階段評審和驗收測試。投入運行的軟件,其維 護工作中遇到的問題又與開發工作有著密切的關系。軟件的管理 工作則滲透到軟件生存期的每一個環節。所有這些都要求提供統 一的行動規范和衡量準則,使得各種工作都能有章可循。
軟件工程的標準化會給軟件工作帶來許多好處,比如:提高軟件的可靠性、可維護性和可移植性(這表明軟件工程標準化可提高軟件產品的質量)提高軟件的生產率提高軟件人員的技術水平提高軟件人員之間的通信效率,減少差錯和誤解有利于軟件管理有利于降低軟件產品的成本和運行維護成本有利于縮短軟件開發周期。
非常好我支持^.^
(4) 100%
不好我反對
(0) 0%
相關閱讀:
- [無線局域網] 什么是軟件工程標準化 2010-04-14
- [無線局域網] 軟件工程標準的制定/推行及層次 2010-04-14
- [無線局域網] 中國軟件工程標準層次及標準化工作簡介 2010-04-14
- [無線局域網] 什么是軟件工程標準化 2010-04-13
( 發表人:admin )