電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1596|回復(fù): 0
收起左側(cè)

學(xué)嵌入式先學(xué)什么_中小型嵌入式軟件的高效管理

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-26 22:01:30 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
學(xué)嵌入式先學(xué)什么_中小型嵌入式軟件的高效管理,   

  隨著GJB5000A-2008《軍用軟件研制能力成熟度模型》在我國科研單位的逐步應(yīng)用推廣,軟件產(chǎn)品研制過程的工程化要求越來越科學(xué)和嚴(yán)格。因此我們在某些重點(diǎn)項(xiàng)目上進(jìn)行了GJB5000A二級的首批實(shí)踐。這次實(shí)踐有效地提高了軟件研制的工程化水平,但是同時也發(fā)現(xiàn)了許多問題和和失誤。通過管理人員和技術(shù)人員的分析和總結(jié),得出結(jié)論:GJB5000A二級的應(yīng)用需要關(guān)注的兩方面工作重點(diǎn),一是建立適應(yīng)于中小型嵌入式軟件的高效的項(xiàng)目管理體系,二是利用軟件測試技術(shù)提高軟件的可靠性,保證軟件的質(zhì)量。

  1 中小型嵌入式軟件的高效管理

  1.1 軟件研制的現(xiàn)狀

  在電子信息系統(tǒng)及相關(guān)產(chǎn)品中,主要包含三類軟件:

 。1)人機(jī)交互類軟件,采集目標(biāo)狀態(tài)信息和各分系統(tǒng)狀態(tài)信息顯示于終端圖形界面上,同時由操縱員進(jìn)行人工操作;

  (2)數(shù)據(jù)處理類軟件,包括數(shù)據(jù)處理、信號處理、數(shù)據(jù)融合、數(shù)據(jù)交換等;

  (3)控制類軟件,包括波束控制,機(jī)械裝置控制,時序控制,系統(tǒng)校準(zhǔn),系統(tǒng)自檢等。這三類軟件的功能模塊基本相同,包括系統(tǒng)初始化、任務(wù)調(diào)度、數(shù)據(jù)解算、時序控制、I/O通信定時管理、中斷管理、任務(wù)問的通信/同步/互斥管理及內(nèi)存管理等。它們的研制特點(diǎn)如表1所示:

    

  表1反映出三類軟件均存高實(shí)時性的嵌入式芯片或平臺上開發(fā)和運(yùn)行,三類軟件規(guī)模較小,研制周期短,不同項(xiàng)目的軟件之間具有重復(fù)性。在實(shí)際工作當(dāng)中,每個軟件項(xiàng)目組的人員配置上,全部軟件研發(fā)人員人數(shù)一般不多于10人,項(xiàng)目組成員同時分擔(dān)大量的硬件研制、系統(tǒng)組成、系統(tǒng)聯(lián)調(diào)、試驗(yàn)的工作。因此我們面對的主要是中小型軟件項(xiàng)目的嵌入式軟件。

  在軟件工程化的首次實(shí)踐中,軟件研制過程反映出4類共性的問題:

 。1)項(xiàng)目軟件研發(fā)時間緊,人員少,人員投入度不足,人員職責(zé)不明晰,造成部分執(zhí)行要求被人為簡化,甚至隨意取消;

  (2)項(xiàng)目軟件的計(jì)劃性不強(qiáng),經(jīng)常出現(xiàn)需求、人員、資源的變動,造成了進(jìn)度拖延,計(jì)劃無法得到保證;

 。3)項(xiàng)目軟件研發(fā)過程中會議和文檔較多,但利益相關(guān)方的界定不明晰,造成不必要的“文山會!爆F(xiàn)象,降低管理效率,影響軟件設(shè)計(jì)工作;

 。4)管理人員和技術(shù)人員的工作過程缺乏足夠的監(jiān)管和測量分析,造成了項(xiàng)目管理進(jìn)程缺乏統(tǒng)一性和技術(shù)可重復(fù)性。

  為了解決通過上述問題,我們在實(shí)踐過程中逐漸摸索和總結(jié)出一些適合中小型嵌入式軟件研制方法。下面將從軟件項(xiàng)目管理體系和軟件項(xiàng)目研制過程兩方面進(jìn)行闡述。

  1.2 軟件項(xiàng)目管理體系

  成功的軟件取決于科學(xué)的管理體系。GJB5000A二級的七個過程域中,項(xiàng)目策劃(PP)、配置管理(CM)、過程和產(chǎn)品質(zhì)量保證(PPQA)這三個過程域是十分重要的管理過程域。

  項(xiàng)目策劃的目的是制定和維護(hù)定義項(xiàng)目活動的計(jì)劃,具體分為四項(xiàng)工作:

 。1)制定項(xiàng)目軟件研制計(jì)劃;

 。2)適當(dāng)?shù)嘏c利益相關(guān)方交換意見;

 。3)獲得對計(jì)劃的承諾;

 。4)維護(hù)該計(jì)劃。

  項(xiàng)目策劃可以理解為整個軟件研制過程的劇本,其規(guī)定了“WWWHI0”——(When、Who、Where、How、Input、Output)六個要素,即規(guī)定時間內(nèi)安排項(xiàng)目人員及相關(guān)管理人員在一定環(huán)境下按照軟件工程化的方法,以項(xiàng)目的早期需求或軟件研制任務(wù)書為輸入,依靠項(xiàng)目軟件經(jīng)理與所級主管領(lǐng)導(dǎo)、項(xiàng)目總師、科研開發(fā)部、質(zhì)量管理部、設(shè)計(jì)師、同行專家經(jīng)過多方協(xié)調(diào),在需求管理、軟件生命周期、代碼規(guī)模估計(jì)、文檔規(guī)模估計(jì)、工作量估計(jì)、進(jìn)度、風(fēng)險(xiǎn)管理、培訓(xùn)管理、數(shù)據(jù)測量、數(shù)據(jù)管理等達(dá)成一致.輸出整個項(xiàng)目的軟件開發(fā)計(jì)劃。

  初期的計(jì)劃往往無法做到盡善盡美,需求和承諾的更改,不準(zhǔn)確的前期估計(jì)都會影響計(jì)劃的實(shí)施,導(dǎo)致項(xiàng)目計(jì)劃需要在過程中調(diào)整甚至重新制定,因此對于研制周期較長、軟件模塊之間存在復(fù)雜依賴關(guān)系的項(xiàng)目,需要分每一階段進(jìn)行更細(xì)化的項(xiàng)目策劃。

  配置管理緊緊依賴于軟件開發(fā)計(jì)劃,目的是利用配置標(biāo)識、配置控制、配置狀態(tài)紀(jì)文和配置審核建立和維護(hù)工作產(chǎn)品的完整性。整個軟件生命周期中,配置管理起到 “數(shù)據(jù)庫”和“錄像機(jī)”的作用。首先組織級配置管理員規(guī)定三類基線:功能基線、分配基線、產(chǎn)品基線;規(guī)定三類文件存儲庫:開發(fā)庫、受控庫、產(chǎn)品庫 然后項(xiàng)目級配置管理員規(guī)定基線下的工作產(chǎn)品,如技術(shù)文檔、軟件源代碼及可執(zhí)行程序、評審報(bào)告等,根據(jù)軟件研制階段不同分別放置于對應(yīng)基線下的庫中。組織級和項(xiàng)目級配置管理員進(jìn)行合理計(jì)劃,輸出配置管理計(jì)劃。

  配置管理工作不能誤認(rèn)為僅僅是檔案工作,作為組織級項(xiàng)目配置管理員,其職責(zé)為:

 。1)定制標(biāo)準(zhǔn)化的開發(fā)流程;

 。2)定制訪問控制、變更控制的條例;

  (3)監(jiān)督配置管理事件并驅(qū)動相應(yīng)的對策;

  (4)軟件配置管理工具的日常管理與維護(hù)。

  作為項(xiàng)目級配置管理員,其職責(zé)為:

 。1)提交配置管理汁劃;

 。2)各配置項(xiàng)的管理與維護(hù):

  (3)執(zhí)行版本控制和變更控制方案;

 。4)完成配置管理階段工作報(bào)告。

  過程與產(chǎn)品質(zhì)量保證是從制度和規(guī)范上嚴(yán)格保證了軟件工程化的實(shí)施。質(zhì)量管理人員應(yīng)該具備軟件研制開發(fā)的經(jīng)驗(yàn),熟悉各種軟件的研制流程。首先建立對研制過程、工作產(chǎn)品的評價(jià)標(biāo)準(zhǔn);其次通過檢查標(biāo)識并文檔化不符合項(xiàng),追蹤不符合項(xiàng)的閉環(huán);然后定期將軟件研制過程的質(zhì)量情況通報(bào)整個項(xiàng)目組和高層,并做出階段總結(jié)報(bào)告。

  項(xiàng)目軟件經(jīng)理、組織級/項(xiàng)目級配置管理員、質(zhì)量保證人員三者應(yīng)該及時溝通,從不同的角度管理軟件研制項(xiàng)目組成員,包括相互之間的監(jiān)督,促使軟件研制過程嚴(yán)格按照GJB5000A二級標(biāo)準(zhǔn)執(zhí)行。他們也需要按階段或定期向項(xiàng)目總師、部門領(lǐng)導(dǎo)以及所領(lǐng)導(dǎo)匯報(bào)軟件工程化的實(shí)施情況以獲得上級對項(xiàng)目的支持。

  1.3 軟件項(xiàng)目研制過程

  項(xiàng)目策劃和配置管理雖然已經(jīng)定義了流程化或模板式的操作方法,但大部分項(xiàng)目軟件人員會犯“先做事,后補(bǔ)義檔”的錯誤。因?yàn)閷τ诳値煛⒎窒到y(tǒng)負(fù)責(zé)人、設(shè)計(jì)師等項(xiàng)目組技術(shù)人員來說,他們更關(guān)注如何能夠促進(jìn)軟件研制過程又好又快的進(jìn)行。為了這個目的,必須重視需求管理(REQM)、項(xiàng)曰監(jiān)控(PMC)、測量與分析(MA)這三個工程過程域。

  下面以一個瀑布模型的軟件研制過程為例說明如何進(jìn)行過程中的監(jiān)控。

  項(xiàng)目監(jiān)控從圖1中的軟件需求分析階段開始直至項(xiàng)目結(jié)束。項(xiàng)目監(jiān)控過程中,設(shè)計(jì)師和管理人員需要提供個人工作周報(bào),記錄自己實(shí)際的工作完成情況;在雙周或整月時,項(xiàng)目軟件經(jīng)理組織項(xiàng)目組成員交流項(xiàng)目情況并記錄;階段結(jié)束后,組織針對階段工作產(chǎn)品的評審會,然后輸出里程碑報(bào)告。管理人員對照《軟件開發(fā)計(jì)劃》中的進(jìn)度計(jì)劃、風(fēng)險(xiǎn)管理計(jì)劃、數(shù)據(jù)管理計(jì)劃、利益相關(guān)方參與計(jì)劃等文檔監(jiān)控進(jìn)度偏差、工作量偏差、規(guī)模偏差、風(fēng)險(xiǎn)變化、培訓(xùn)情況、評審狀況、問題數(shù)量和回歸狀況。一旦出現(xiàn)偏差加大的趨勢,就需要及時開會交流,查明原因,迅速糾偏。

    

  測量與分析更加詳細(xì)地規(guī)定了對于能夠證明過程的文檔的采集和存儲方法,而且需要對采集數(shù)據(jù)匯總后進(jìn)行統(tǒng)計(jì)分析,將分析結(jié)果,如偏差、趨勢、錯誤數(shù)目等展示給項(xiàng)目組成員和高層領(lǐng)導(dǎo),由他們進(jìn)行項(xiàng)目開發(fā)的決策。

  項(xiàng)目監(jiān)控是手段,測量與分析為輔助,需求管理則是最終目的。結(jié)合圖1,需求在整個軟件研制周期內(nèi)不可能是一成不變的,是逐步細(xì)化的。用戶需求是第一步,隨后軟件研制任務(wù)書將用戶需求工程化,需求規(guī)格說明對任務(wù)書的需求細(xì)化,設(shè)計(jì)說明對需求規(guī)格說明的需求細(xì)化,軟件源代碼將設(shè)計(jì)說明對應(yīng)到代碼。單元測試、集成測試、系統(tǒng)測試是對細(xì)化后的需求進(jìn)行回歸。根據(jù)GJB438B-2009中的《軟件需求規(guī)格說明》模板,需求包括10類技術(shù)需求和4類非技術(shù)需求。非技術(shù)類需求一般可以得到客觀保證,因此不會出現(xiàn)大的變動,可以暫不納入需求跟蹤矩陣。技術(shù)需求由于項(xiàng)目研制情況會出現(xiàn)變化,需要納入需求跟蹤矩陣進(jìn)行管理,確保軟件工作產(chǎn)品巾需求能夠進(jìn)行雙向追溯。一旦需求變更狀況時,及時記錄并且上報(bào)整個項(xiàng)目組,獲得項(xiàng)目組的一致認(rèn)可。

  1.4 項(xiàng)目管理信息化手段的應(yīng)用

  工欲善其事,必先利其器。軟件工程化管理主要通過文檔來反映過程。如果通過傳統(tǒng)的人工撰寫文檔和凡事開會溝通的方式進(jìn)行軟件項(xiàng)目管理的話,將會大大增加管理人員和設(shè)計(jì)師人員的工作量,況且這種方式的效率是十分低下的。因此有必要應(yīng)用先進(jìn)的項(xiàng)目管理信息化工具。

  目前,關(guān)鍵科技公司推出專門針對GJB5000A二級軟件工程化產(chǎn)品的解決方案,包括KPFLOW、KRFLOW、KCFLOW和KTFLOW四類工具:

 。1)KPFLOW:對軟件項(xiàng)目的進(jìn)度、成本、質(zhì)量、資源等情況進(jìn)行集成管理的平臺。其主要功能包括:任務(wù)分配與跟蹤、項(xiàng)目估計(jì)、項(xiàng)目周報(bào)和個人周報(bào)記錄、問題與風(fēng)險(xiǎn)管理、項(xiàng)目度量分析。該平臺支持系統(tǒng)建模,即意味著可以針對不同項(xiàng)目設(shè)計(jì)對應(yīng)的模板和模塊。該平臺主要體現(xiàn)PP、PMC、MA和PPOA四個過程域的信息化管理;

 。2)KRFLOW:需求管理工具,其主要功能包括:需求的獲取和編輯、需求跟蹤和分析、變更建議系統(tǒng)、基線管理。該軟件主要實(shí)現(xiàn)REQM過程域的信息化管理工作;

  (3)KCFLOW:確保軟件項(xiàng)目生存周期內(nèi)產(chǎn)品的完整性、一致性和可追溯性。其主要功能包括:配置計(jì)劃管理、變更控制、版本管理、產(chǎn)品依賴關(guān)系和一致性管理、軟件問題跟蹤管理、軟件配置狀態(tài)審計(jì)。該軟件實(shí)現(xiàn)了CM過程域的信息化管理,同時也可以管理REQM和PPQA兩個過程域;

 。4)KTFLOW:測試過程的管理軟件,其主要功能包括:梳理測試需求、制定測試計(jì)劃、設(shè)計(jì)測試用例、執(zhí)行測試過程、輸出測試報(bào)告。該軟件幫助測試人員在短時間內(nèi)、大批量的完成多個項(xiàng)目的軟件測試。

  這四類工具有兩個特色:一是它們相互之間可以進(jìn)行數(shù)據(jù)互聯(lián),幫助管理人員從不同角度監(jiān)督研制過程;二是工具支持文檔自動生成,項(xiàng)目組人員只需要按照GJB438B模板,填寫部分軟件研制過程的信息,即可輸出標(biāo)準(zhǔn)化的文檔。

  盡管具有功能強(qiáng)大的工具,但是在初期實(shí)踐階段,由于丁具普及的程度參差不一,我們先使用KCFLOW配置管理工具,先由組織級配置管理員負(fù)責(zé)使用,然后逐步對項(xiàng)目級配置管理員以及項(xiàng)目相關(guān)成員進(jìn)行推廣。在這個過程中,項(xiàng)目組成員需要不斷的實(shí)踐,逐步提高勞動效率。

  2 嵌入式軟件可靠性的提高

  2.1 嵌入式軟件可靠性

  軟件工程化的核心是為了實(shí)現(xiàn)好的軟件,而評價(jià)軟件好壞的關(guān)鍵標(biāo)準(zhǔn)是軟件可靠性。軟件可靠性(Software Reliability)指的是在給定時間和特定環(huán)境要求下,軟件完成規(guī)定功能的能力。針對在雷達(dá)系統(tǒng)中使用的嵌入式軟件中,可靠性指標(biāo)一般隸屬于分系統(tǒng)或整機(jī)的指標(biāo),即在初始系統(tǒng)正常的條件下,在規(guī)定時間內(nèi),軟件不引起系統(tǒng)故障的能力。

  由于嵌入式軟件與硬件結(jié)合相當(dāng)緊密,其可靠性指標(biāo)具有很大的隨機(jī)性,如外界環(huán)境變化、系統(tǒng)輸入出錯、使用不當(dāng)以及軟硬件設(shè)計(jì)的固有缺陷等原因都會導(dǎo)致軟件可靠性指標(biāo)降低,但是不能因?yàn)檫@些困難,使得嵌入式軟件可靠性的保證成為空談。軟件可靠性是可以通過軟件工程化的實(shí)踐來提高。

  2.2 軟件可靠性的提高

  嚴(yán)格進(jìn)行軟件工程化管理是提高軟件可靠性的必經(jīng)之路。按照軟件工程化要求,需要做好如下五方面工作:

  (1)前期項(xiàng)目組針對軟件進(jìn)行充分的論證和分析,爭取將軟件需求明確體現(xiàn)在軟件研制任務(wù)書中;

 。2)設(shè)計(jì)過程中,盡量提高軟件模塊或單元的高內(nèi)聚性、低耦合性。單元之間的接口盡量明晰,整個系統(tǒng)軟件的復(fù)雜度不易過高,該拆分的就需要合理拆分為多個組成部分;

 。3)加強(qiáng)軟件文檔的健全性和準(zhǔn)確性,按照GJB438B-2009《武器系統(tǒng)軟件開發(fā)文檔》的要求,軟件研制過程中的文檔不能有缺失、描述不清、前后矛盾等情況出現(xiàn)。這些文檔必須經(jīng)過專業(yè)人士的評審認(rèn)可,并且問題回歸后才能進(jìn)行歸檔;

 。4)逐步建立軟件標(biāo)準(zhǔn)化工作,包括文檔標(biāo)準(zhǔn)化和代碼模塊標(biāo)準(zhǔn)化,這樣可以有利的縮短研制周期,降低研制風(fēng)險(xiǎn),提高軟件產(chǎn)品的重用率;

 。5)切實(shí)加強(qiáng)嵌入式軟件的測試工作。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表