殷群 郗永琳
摘要:軟件研發(fā)方式封閉、研制過程管理失控,可能造成軟件的可靠性和質量問題。企業(yè)的軟件過程體系文件本地化,需要建立一支真正懂技術、懂管理的綜合隊伍,才能確保體系持續(xù)有效推進。為探尋合理的創(chuàng)新舉措,以留存軟件開發(fā)過程中產生的必要的技術文檔和管理文檔,保留軟件開發(fā)項目的工作經驗。針對企業(yè)軟件過程體系文件本地化建設難、實施推進不力的問題,提出了體系建設與精益思想結合、優(yōu)化管理流程、明確管理職責等方法,以實現體系本地化建設。通過嚴把評審、測試和檢查關,以建立“走出去,請進來”培訓機制、加強體系建設人才培養(yǎng)、提升全員軟件質量意識等方法,確保體系有效實施,從而實現精細化、規(guī)范化管理;解決了由于人員流動引起的技術損失,實現成果可持續(xù)性繼承;解決了低水平重復,實現研制能力臺階式發(fā)展,實現了軟件研制過程質量意識的常態(tài)化提升。
關鍵詞:行業(yè)標準;軟件本地化;軟件開發(fā);培訓體系;質量意識
中圖分類號:TP 311文獻標識碼:A文章編號:1672-7312(2021)03-0321-05
Localization Method of the Construction of Software
Process Management System YIN Qun,XI Yonglin
(Xi’an Institute of Electromechanical Information Technology,Xi’an 710065,China)
Abstract:Closed software development methods and outofcontrol development process management may cause software reliability and quality problems.The localization of the software process system files of an enterprise requires the establishment of a comprehensive team that truly understands technology and management to ensure the continuous and effective advancement of the system.In order to explore reasonable innovation measures to retain the necessary technical documents and management documents generated in the software development process,and to retain the working experience of the software development project,this paper,in view of the difficulties in the construction of the file localization of the enterprise software process system and the ineffective implementation,put forward methods such as the combination of system construction and lean thinking,optimization of management processes,and clarification of management responsibilities to achieve system localization.Through strict review,testing and inspection,establishing a “go out,please come in” training mechanism,strengthening the system construction of personnel training,and improving the software quality awareness of all employees can ensure the effective implementation of the system so as to achieve refined and standardized management;The technical loss caused by the flow of personnel is realized,and the achievement of sustainable inheritance is realized;the lowlevel duplication is solved,the stepbystep development of the research capability is realized,and the quality awareness of the software development process is normalized.
Key words:industry standards;software localization;software development;training system;quality awareness
0引言
隨著信息化和數字化程度的飛速發(fā)展,軟件產品應用范圍越來越廣泛,數量越來越多,其規(guī)模和復雜程度也不斷擴大,軟件的核心地位和靈魂逐步凸現。軟件實現的功能大大超過了硬件,一旦發(fā)生質量問題,造成的影響是極為嚴重的,甚至是災難性的\[1-3\]。近年來在產品試驗和實際使用中,暴露了不少軟件質量方面的問題,軟件已成為目前產品質量和可靠性的薄弱環(huán)節(jié)之一\[4-7\]。軟件研制之所以容易出質量問題,是由軟件研制工作的特點決定的。硬件研制過程有設計文件和圖紙資料可查,配以硬件的實物測試,容易發(fā)現問題和解決問題,研制過程相對透明,過程監(jiān)控措施比較完善。軟件研制往往是基于個人作坊式的開發(fā)方式,軟件項目的開發(fā)依附于某個個體或某個項目組,整個項目的執(zhí)行過程對單位來說幾乎就是一個“黑匣子”,也許這個項目非常成功,但單位難以讓其他項目組共享經驗,因為他們的成功是難以復制的\[8-10\]。對軟件研制過程的監(jiān)控如果采用類似硬件研制的監(jiān)控方式,難以取得實質性效果,軟件研制中出現的質量問題,主要是由于軟件研發(fā)方式封閉、軟件研制過程管理失控位造成的。軟件質量已引起各級部門的高度重視,迫切需要尋求新的軟件開發(fā)模式和管理方式,建立軟件過程體系,將軟件開發(fā)的所有活動納入到體系中,使項目執(zhí)行不再是一個“黑匣子”,企業(yè)可以掌控軟件開發(fā)的每個環(huán)節(jié),及時發(fā)現軟件研制中的質量問題,消除質量隱患。為了解決軟件研制面臨的嚴峻形勢,借鑒先進管理經驗,發(fā)布了GJB5000A標準,企業(yè)按照標準建立企業(yè)的軟件過程體系文件,以實施型號軟件工程標準和規(guī)范的方式深入貫徹軟件工程化思想\[11-13\]。
第3期殷群等:軟件過程管理體系建設的本地化方法1推行過程存在的問題
在軟件過程管理體系運行中,存在著管理工作量遠大于軟件工程工作量、工作效率及生產率不高等問題。結合軟件開發(fā)大致流程,各個企業(yè)在推行和執(zhí)行GJB5000A標準過程中出現了不少問題,如實施與體系文件要求相違背,測試和評審流于形式等。其主要原因有幾個方面,一是對標準理解不透徹,未能做到融會貫通,在制定企業(yè)軟件過程管理文件時將標準中的要求生搬硬套在體系中,文件大量使用標準術語,體系文件本地化水平低,科研人員難以理解和執(zhí)行;二是對企業(yè)項目特點未進行深入分析和分類,沒有根據企業(yè)特點制定軟件研制流程和管理職責,重點不突出,管理不到位;三是培訓方式過于簡單單調,科研人員和管理人員培訓不到位。為保證企業(yè)軟件研制質量、提高軟件管理水平、全面貫徹執(zhí)行標準、增強企業(yè)軟件研制和管理能力,必須建立一支真正懂技術、懂管理的綜合隊伍,確保體系持續(xù)有效推進。最主要的是要建立適合企業(yè)特點的本地化軟件過程管理體系和分類分級加強各類人員培訓。
2建立本地化軟件過程管理體系的措施
GJB5000A行業(yè)標準,規(guī)定了軟件研制和維護活動中的主要管理、工程過程實踐,但未明確這些措施在軟件研制過程中如何實施\[14-17\]。這就意味著單位必須要根據標準的要求,結合企業(yè)的軟件研制實踐,建立本地化軟件管理體系,對研制過程實施管理。在符合標準的前提下,簡化運行流程,降低管理成本。軟件過程管理本地化,主要體現在幾個方面。一是軟件過程管理文件本地化,軟件過程管理文件是各企業(yè)按照GJB5000A的要求,根據企業(yè)軟件重要等級、規(guī)模、項目特點制定的規(guī)范軟件研制過程制度。二是軟件過程管理執(zhí)行本地化,企業(yè)應根據自身特點,提出軟件過程管理的特點。三是宣貫培訓本地化,宣貫培訓是建立軟件過程管理體系的重要管理過程,必須根據科研人員特點提出有效的宣貫培訓措施。四是建立本地化監(jiān)督檢查制度。建立本地化軟件過程,管理體系過程主要采取了以下3方面措施。
2.1制定本地化的軟件過程管理文件
一是采用本地化術語制定的本地化體系文件,減少體系中的標準術語。眾所周知,標準術語晦澀難懂,標準條款僅僅是提出大的目標和要點。而企業(yè)的體系建設不能過多出現標準用語,這些標準術語未轉化成符合項目特點的操作要求,項目組實施起來就比較困難,不知道如何具體實施,如“承諾、利益相關方、進展評審”等標準術語都應結合企業(yè)自身用語習慣、項目特點轉化為實際操作要求,確保文件指導項目運行的可操作性,提高實施效果。采用本地化方法制定體系文件,可以使不熟悉行業(yè)標準的科研人員能夠容易理解體系文件的要求,只有在充分理解體系文件的基礎上,才能準確執(zhí)行體系文件的要求。
二是根據企業(yè)軟件特點精簡體系文件。在滿足行業(yè)標準要求的前提下,根據企業(yè)軟件特點制定合理的軟件過程管理文件體系。軟件一般分為非嵌入式軟件和嵌入式軟件,根據規(guī)模分為微型、小型、中型、大型和巨大型軟件。GJB5000A標準是對軟件過程管理的通用要求,為了滿足大型復雜軟件的管理要求,行業(yè)標準推薦的過程管理文件體系完整、復雜,過程管理的文件多,對于一般以嵌入式應用軟件為主的企業(yè)顯得過于復雜,執(zhí)行起來費時費力,需要占用科研人員較多的時間編制軟件資料,導致執(zhí)行難度大,往往出現執(zhí)行不到位情況。在軟件過程管理體系文件制定中,根據企業(yè)主要從事嵌入式應用軟件開發(fā)的特點,在滿足行業(yè)標準要求的前提下,通過適當合并文件,制定了既符合行業(yè)標準要求又有利于執(zhí)行的軟件過程管理文件體系。比如對于單配置項軟件,配置項測試可以完成合格性測試的所有內容,而對于多配置項軟件,配置項測試和系統(tǒng)測試均執(zhí)行后才能完成合格性測試,在企業(yè)制定文件過程中,一定要考慮這些軟件項目特點。
2.2結合企業(yè)軟件特點制定軟件研制流程與管理職責根據軟件研制能力要求,結合企業(yè)軟件項目特點,依據GJB5000A、GJB2786A等軟件工程標準的要求,系統(tǒng)梳理軟件研制工作,制定了企業(yè)軟件研制流程,如圖1所示。在軟件研制過程中,加強對評審、測試等內容的要求以及研制過程規(guī)范性的監(jiān)督檢查,確保項目實施的規(guī)范性和可控性。
2.2.1嚴把評審、測試和檢查關
評審、測試和檢查是客觀評價軟件項目運行的有效方法,是項目能夠按要求執(zhí)行的有力保障。在項目研制過程中,評審和測試的作用不容忽視。建立以同行專家評審的節(jié)點評審制度。成立由管理專家和軟件研制專家組成的評審組,明確管理專家重點審查軟件研制過程的符合性、規(guī)范性內容,軟件研制專家重點審查技術文件是否符合要求,是否滿足輸入的技術要求等內容。圖1軟件研制流程示意
2.2.2嚴控評審節(jié)點,提高評審有效性
根據對所需型號軟件的實際工程數據分析,軟件研制普遍存在的突出問題是輕視、忽視文檔質量,軟件各文檔編制完成后的同行評審流于形式,未有效發(fā)現各文件存在的潛在缺陷,評審的有效性不足。同行評審的目的是通過及時進行軟件檢查,最大限度滿足客戶需求、保證質量和可靠性。有數據表明,在消除缺陷方面,同行評審的效率相比于軟件測試提高了10倍以上,相對于軟件獨立測試有高達30倍的投資回報率,同時降低了軟件缺陷率,提高了可靠性\[18-20\]。為了有效解決同行評審有效性問題,在軟件過程體系中明確同行評審時需要的“人、物、過程”3方面因素。明確工作產品、評審級別、評審類型、利益相關方等要素,對評審問題明確處理流程,保證評審的有效性。
2.2.3加強測試,消除缺陷
推進行業(yè)標準目的,是為了提高產品研制能力,保證軟件項目按照流程規(guī)范運行,而產品的使用結果取決于軟件代碼的質量,對代碼的檢查最有效的方法是測試。為了保證交付的代碼可靠運行,在過程中必須采取有效措施,優(yōu)化測試方法,加強軟件測試力度。
目前典型的企業(yè)用軟件開發(fā)過程普遍采用瀑布模型,軟件測試均在編碼完成后進行。軟件缺陷在軟件開發(fā)起始階段就可能產生,而且錯誤往往具有級聯效應,需求錯誤必然導致設計錯誤,設計錯誤必然導致實現錯誤,而且會逐級放大。如果軟件測試在編碼結束后才開始,軟件錯誤會集中在測試中暴露,給測試后的更改造成極大壓力,因此,必須在軟件開發(fā)的需求、設計、編碼過程中盡早融入驗證活動,即評審,可以降低軟件生存周期的后期就錯的代價。同時,對于測試說明的評審,在體系中明確要求,加強對測試說明覆蓋性和正確性的審查。
2.2.4建立本地化監(jiān)督檢查制度
結合企業(yè)項目管理流程,設置合理的檢查環(huán)節(jié),盡量與項目管理流程活動相結合,給出本單位項目管理的主要流程,應在什么點上相結合,提高管理效率。明確檢查要求,以檢查促實施。對于項目研制過程,定期或不定期組織質量保證人員對項目實施過程進行檢查。從體系運行符合性、項目實施過程的流程性等方面進行全覆蓋的檢查,通過定期或不定期檢查,促進項目嚴格按照體系文件執(zhí)行,對項目實施過程中的通用型問題進行實地指導、培訓,將檢查和培訓有機結合,促進項目組對標準、對體系的理解,保證項目的有效實施。
2.3培訓體系建設
完善的軟件過程體系和檢查機制,只是開展工作的一種手段,而真正要讓體系有效運行,必須保證每一位運行者都能了解自己對應的工作要求,并按照要求開展工作。因此,需要企業(yè)有一定數量的人員熟知體系,并不斷指導項目運行。
一是建立“走出去,請進來”培訓機制?!白叱鋈ィ堖M來”,特聘專家培訓指導。為了使軟件過程體系推進有效,相關人員熟悉標準,不定期邀請相應標準的編寫專家進行授課。通過講解標準要求及介紹兄弟單位的典型做法和經驗教訓,促進企業(yè)人員對標準的理解和掌握。同時在修訂體系時,針對標準條款對照項目實施進行舉例,使體系編寫人員深入理解標準,為后續(xù)的項目指導奠定良好的基礎。同時通過組織企業(yè)職工,尤其體系編寫人員和科研管理部門人員參與外部調研、學習,通過兄弟企業(yè)的講解和答疑等面對面形式的學習,加強相關人員對于標準和實際操作層面的理解,樹立全員軟件質量意識,推動企業(yè)軟件過程管理工作水平螺旋式提升。
二是分角色培訓。分角色培訓,提高培訓效果。軟件過程體系是依據GJB5000A和單位項目特點建立的項目研制要求,不同角色人員的職責分工不同,針對軟件研制和管理人員,開展相關制度、軟件研制體系、軟件開發(fā)技術、軟件測試技術等培訓。以往的培訓是相關人員統(tǒng)一進行學習,培訓出勤率低,聽眾精神不集中,培訓效果不明顯。針對這一現象,通過拓寬培訓方式,建立培訓快速響應機制,以講深講透為準則進行培訓。即采取分角色培訓的方式,即不同的角色人員進行專業(yè)不同的專業(yè)化的培訓,可使得不同的角色人員快速熟練地掌握和自身工作相關的文件要求,同時針對各角色的培訓需求,積極做出響應,手把手教學,務必達到講明白、講清楚的效果。通過這種定點清除知識點障礙的方法,提高培訓效果,有利于標準的宣貫和落實。
3實施效果
自2015年開始按照GJB5000A實施以來,經過5年的運行,對過程體系文件進行了5次修訂,改變了企業(yè)之前軟件研制過程隨意,文件未能有效受控的現象,現在所有型號項目均按照要求開展研制工作,確保了過程可控、管理規(guī)范、產品質量穩(wěn)定、研制能力提升的效果。
3.1初步實現了軟件過程的規(guī)范化
解決各自為政,實現精細化和規(guī)范化管理。結合企業(yè)軟件規(guī)模特點建立的體系文件,解決了以往項目組各自為政、管理粗放、隨意性較大的問題,在流程與運行模式上進行了改善。采用精益思想與軟件過程體系相結合的方式,在軟件過程體系中,規(guī)定了軟件研制過程的基本步驟和方法,使項目研制流程規(guī)范、可控,實現了從無序到有序、從有序到一致、從一致到量化、從量化到優(yōu)化的精細化和規(guī)范化管理。
3.2實現了軟件研制成果的繼承性
解決了由于人員流動引起的技術損失,實現成果可持續(xù)性繼承。隨著軟件系統(tǒng)規(guī)模的復雜度上升,軟件可靠性問題也越來越突出,原來的個人設計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產方式。軟件生產率軟件過程體系的全面實施,解決了人員流動帶來的技術流失及成果無法繼承的現象。企業(yè)的軟件研制能力,取決于單位的過程能力,而不是個人能力,持續(xù)的過程能力的改善,是實現軟件開發(fā)管理水平的重要參數。軟件過程體系的運行,針對成果的可持續(xù)性繼承方面做了明確要求;針對過程工作資料的管理,進行了細化和完善,從而使企業(yè)軟件項目成果達到可持續(xù)性繼承的效果。
3.3提高了企業(yè)軟件研發(fā)效率
通過規(guī)范化實施,軟件研制過程中的技術文件和代碼按照受控管理,建立了企業(yè)的組織資產庫,包含8部分內容,如圖2所示。對于系列化的產品或要求相近的產品,可以將前期已經完成的項目與新項目進行重用性分析,并對可重用的代碼或文件通過規(guī)范的受控渠道獲取,提高了設計人員和企業(yè)的工作效率。
3.4軟件研制質量得到充分保證
軟件過程管理體系的有效運行,企業(yè)的產品科研與生產質量保持了持續(xù)穩(wěn)定提高,產品研制和生產過程的質量損失大幅度降低??蒲腥藛T通過嚴格執(zhí)行軟件過程管理文件,顯著減少了軟件研發(fā)過程中的錯誤率,軟件研制質量得到充分保證。軟件研發(fā)過程的繼承性得到充分體現,研發(fā)效率得到大幅度提高。同時,也使企業(yè)員工的質量管理意識大幅度提高。
4結語
合理的軟件研發(fā)模式,以及軟件本地化過程體系文件的建立,是增強軟件研制能力、提高質量并消除隱患的重要途徑。在明確軟件本地化過程體系文件建立思路后,結合相關行業(yè)標準、完善的軟件過程體系和檢查機制,樹立全員質量意識,并嚴格落實,是實現企業(yè)軟件管理的創(chuàng)新舉措。實踐表明,本地化過程體系文件的建立,將軟件開發(fā)的所有活動納入到體系中,使項目經驗得以保留,實現了精細化和規(guī)范化管理,軟件研制能力得以跨越式發(fā)展。
參考文獻:
\[1\]于敏,楊春暉.軟件可信性相關指南標準對比研究\[J\].電子產品可靠性與環(huán)境試驗,2018,36(06):1-8.
\[2\]BRIAND L C,JRGEN WST,DALY J W,et al.Exploring the relationships between design measures and software quality in objectoriented systems\[J\].Journal of Systems & Software,2000,51(03):245-273.
\[3\]黃志明.互聯網軟件項目的開發(fā)進度和質量管理研究\[D\].北京:北京郵電大學,2019.
\[4\]肖祥.基于高斯過程的軟件開發(fā)可靠性研究\[J\].萍鄉(xiāng)學院學報,2019,36(06):72-75.
\[5\]畢翔,吳家偉,陸陽.基于遺傳算法優(yōu)化的軟件可靠性組合模型評估\[J\].合肥工業(yè)大學學報(自然科學版),2019,42(11):1498-1504.
\[6\]李玲玲,南楠,岳元.計算機通信網絡可靠性設計技術分析與探究\[J\].信息與電腦(理論版),2018(24):168-169.
\[7\]葛修婷,潘婭.機器學習技術在軟件測試領域的應用\[J\].西南科技大學學報,2018,33(04):90-97.
\[8\]張家良.軟件原型設計在軟件開發(fā)過程中的重要性\[J\].電腦編程技巧與維護,2019(12):24-25+55.
\[9\]趙海燕,李敏,陳慶奎,等.開源軟件開發(fā)中的代碼評審\[J\].小型微型計算機系統(tǒng),2020,41(04):861-867.
\[10\]倉業(yè)金.基于JAVA編程語言的計算機軟件開發(fā)應用\[J\].黑龍江教育(理論與實踐),2018(12):87-88.
\[11\]TAHVILDARI L,KONTOGIANNIS K,MYLOPOULOS J.Qualitydriven software reengineering\[J\].Journal of Systems and Software,2003,66(03):225-239.
\[12\]費晰,陳湘隴,付杰.軟件工程標準對航天型號軟件工程化規(guī)范作用分析\[J\].電腦知識與技術,2015,11(16):61-62.
\[13\]李宏.軟件開發(fā)標準化的意義\[J\].航天標準化,2001(06):24-25.