RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)述Geant4 的軟件開發(fā)過程

紅心機(jī)器人 ? 來源:Geant4模擬學(xué)習(xí)交流 ? 作者:強(qiáng)哥同學(xué) ? 2021-08-26 16:22 ? 次閱讀

Geant4 的軟件開發(fā)過程

Gabriele Cosmo(歐洲核子研究中心,瑞士日內(nèi)瓦)用于 Geant4 協(xié)作。

摘要:

自其最早的研發(fā) [1] 以來,Geant4 仿真工具包已經(jīng)遵循決定項(xiàng)目整體發(fā)展的軟件過程標(biāo)準(zhǔn)進(jìn)行開發(fā)。所涉及軟件的復(fù)雜性包括,軟件產(chǎn)品的廣泛應(yīng)用領(lǐng)域、龐大的代碼量和類別的復(fù)雜性、規(guī)模和分布式性質(zhì)合作本身的所有要素都涉及并關(guān)聯(lián)了廣泛的各種軟件過程。

雖然在“生產(chǎn)”中并從1998 年 12 月向公眾開放,Geant4 軟件產(chǎn)品 [2] 包括所應(yīng)用的類別領(lǐng)域,它們?nèi)栽诜e極開發(fā)中。因此,關(guān)于改進(jìn)開發(fā)周期、系統(tǒng)測(cè)試和用戶支持,他們也需要不同的對(duì)待。這篇文章是旨在描述一些在 Geant4 中應(yīng)用的軟件過程,涵蓋了軟件的開發(fā)、測(cè)試和維護(hù)。關(guān)鍵詞:Geant4、PSS-05、SPICE、Booch、UML

簡(jiǎn)介(Introduction):

許多軟件過程在 Geant4 中得到解決,這些過程來自不同的過程類別:

軟件開發(fā)的主要生命周期

支持生命周期

管理過程

或組織生命周期

和用戶-供應(yīng)商流程。

由于質(zhì)量、穩(wěn)定性要求或特定領(lǐng)域的進(jìn)化階段,或者為了使過程適應(yīng)人們的習(xí)慣,有時(shí)需要定制流程。 軟件過程改進(jìn) (SPI,Software Process Improvement ) 是一個(gè)必須在有關(guān)各方的全力支持下逐步實(shí)施,并確定正確的優(yōu)先事項(xiàng)和目標(biāo) [8]的過程。 在本文中我們將提到一組與 Geant4 相關(guān)的軟件流程; 大多數(shù)相關(guān)的程序和應(yīng)用方法是在項(xiàng)目的開發(fā)階段已經(jīng)有效實(shí)施[1]。

主生命周期過程(Primary life-cycle processes)

Geant4 中大多數(shù)領(lǐng)域采用的生命周期模型是迭代和增量的(也稱為螺旋方法)[9]。 需求分析、設(shè)計(jì)、實(shí)施和測(cè)試之間的步驟是重復(fù)的。根據(jù)新要求或性能問題,對(duì)設(shè)計(jì)的改進(jìn)和擴(kuò)展。 在目前的生產(chǎn)和維護(hù)階段,生命周期模型對(duì)大多數(shù)領(lǐng)域都是迭代的。

需求獲取過程(Requirements elicitation process)

在項(xiàng)目的初始階段,領(lǐng)域問題和用例分析導(dǎo)致了用戶需求的引出 [10]。用戶需求已系統(tǒng)化地按照 ESA PSS-05 軟件工程標(biāo)準(zhǔn)進(jìn)行審查和更新 [11]。 用戶需求文檔 (URD) 現(xiàn)在保存在源代碼存儲(chǔ)倉庫中,能進(jìn)行自動(dòng)版本控制; 它將在 2001 年進(jìn)行修訂。特定項(xiàng)目領(lǐng)域的 URD 也在存儲(chǔ)庫中保存和維護(hù),并且對(duì)協(xié)作組成員可用。

軟件設(shè)計(jì)(Software Design)

Booch (Unified) [9] 方法已被用于面向?qū)ο蟮姆治?和軟件的設(shè)計(jì)。 Booch/UML 表示法被選為通用的設(shè)計(jì)文檔和內(nèi)部設(shè)計(jì)審查的語言。 Rational RoseCASE 工具 [12] 已廣泛用于設(shè)計(jì)文檔的初始生成。并在需要時(shí)用于逆向工程。 正確的域分解和一組經(jīng)過深思熟慮的依賴關(guān)系(避免循環(huán)使用關(guān)系),允許工作在每個(gè)類別域相關(guān)聯(lián)的組在很大程度上并行工作,同時(shí)建立交付的層次結(jié)構(gòu)。 為架構(gòu)和詳細(xì)設(shè)計(jì)提供的標(biāo)準(zhǔn)文件有:類類別圖(Category Diagram)、類圖(Class Diagrams)、場(chǎng)景圖(Scenario Diagrams )和類規(guī)格(Class Specifications)。

軟件創(chuàng)建(Software Construction)

從一開始就采用了編程和編碼指南 [13]。 感覺是——重要的是不要強(qiáng)加太固定的規(guī)則或風(fēng)格慣例,而只是靈活和足夠的指導(dǎo)方針,基本上能處理面向?qū)ο蠓妒降恼掣剑〝?shù)據(jù)隱藏,封裝等)、軟件的性能和可移植性。軟件的打包嚴(yán)格按照領(lǐng)域分解為類別和子類別,這是設(shè)計(jì)過程的結(jié)果。 在適用的情況下,定義接口的類與實(shí)現(xiàn)此類的具體類分開打包在子類別接口中。 通過這種方式,屬于一個(gè)類別的類協(xié)作以可重用的方式提供一組服務(wù)。

軟件集成和單元測(cè)試(Software Integration and Unit Testing)

可以一起測(cè)試的系統(tǒng)聚合體根據(jù)依賴關(guān)系確定類別的結(jié)構(gòu)。 作為例行程序的一部分,定期監(jiān)測(cè)相關(guān)測(cè)試測(cè)試程序[17]。 單元測(cè)試在每個(gè)類別或子類別獨(dú)立執(zhí)行,盡量最大化覆蓋范圍。

系統(tǒng)測(cè)試、驗(yàn)收和發(fā)布(System Testing, Acceptance and Releasing)

系統(tǒng)測(cè)試活動(dòng)由專業(yè)團(tuán)隊(duì)部署,系統(tǒng)測(cè)試團(tuán)隊(duì)(STT)。 測(cè)試 [17] 和發(fā)布 [18] 的程序被定義并嚴(yán)格應(yīng)用。發(fā)布程序預(yù)見到各種類別的標(biāo)簽提交順序遵循每個(gè)類別領(lǐng)域的類圖(Class Diagrams)定義的依賴結(jié)構(gòu)圖表。 驗(yàn)收測(cè)試也包含在常規(guī)系統(tǒng)測(cè)試中并在發(fā)布階段由發(fā)布經(jīng)理單獨(dú)運(yùn)行。 公開發(fā)布每年在固定日期安排兩次。 收集并定期進(jìn)行錯(cuò)誤修復(fù)可作為公共補(bǔ)丁或次要版本使用。

軟件維護(hù)(Software Maintenance)

為了實(shí)現(xiàn)軟件的可維護(hù)性并保證其質(zhì)量,在可能的情況下,都采用標(biāo)準(zhǔn)。 組件的封裝最大化,相互依賴性和單元復(fù)雜性被最小化。 我們努力確保軟件的可移植性主要是通過不斷監(jiān)控編譯器在不同系統(tǒng)架構(gòu)上的演變來實(shí)現(xiàn),并避免采用依賴于系統(tǒng)的解決方案或不可移植的語言特征。 代碼的更新、擴(kuò)展和錯(cuò)誤修復(fù)的可追溯性通過以下方式得到保證。維護(hù)臨時(shí)歷史文件的方法,定期標(biāo)記代碼并嘗試將常規(guī)開發(fā)與錯(cuò)誤修復(fù)更新分開 [18]。

用戶支持,分發(fā)(User Support, Distribution)

Geant4 中的用戶支持條款在備忘錄的諒解 (MoU) [3] 文件第 2 條中定義。每個(gè)工作組的聯(lián)系人是提名的,負(fù)責(zé)管理和解決報(bào)告用戶通過 WWW 使用 Geant4 問題跟蹤系統(tǒng) [24]提交的問題,問題跟蹤系統(tǒng)是基于 Bugzilla [26] 的定制版本。 Geant4 WWW 站點(diǎn) [2] 還提供在線文檔、常見問題解答頁面和每個(gè)工作組域的聯(lián)系人列表。 最近建立了一個(gè)基于 Hypernews [25] 的公共用戶論壇

支持生命周期過程(Supporting life-cycle processes)

文檔(Documentation)

作為用戶文檔 [19],Geant4 提供了六個(gè)文檔(可從WWW) 解決固有的不同主題和專業(yè)知識(shí)水平的問題。用戶示例隨工具包分發(fā)的文檔以自學(xué)教程的形式引用,具有從“新手”到“高級(jí)”應(yīng)用程序的不同詳細(xì)程度。 訓(xùn)練套件教程、文檔、論文、出版物等也可從Geant4 WWW 站點(diǎn) [2]獲得。

配置和變更管理(Configuration and Change Management)

軟件配置管理:軟件和文檔的服務(wù)器存儲(chǔ)庫已就位; 它基于 CVS [20] 作為并發(fā)版本管理的基本工具。 存儲(chǔ)庫中的代碼和文檔可供通過歐洲核子研究中心的成員通過 AFS [21] 以及“pserver”讀/寫訪問。

標(biāo)記和版本控制:類別工作組協(xié)調(diào)員負(fù)責(zé)管理其類別內(nèi)的開發(fā)并提供遵循明確規(guī)定的規(guī)則 [18]的標(biāo)簽,用于測(cè)試和發(fā)布。然后 STT 將運(yùn)行系統(tǒng)支持的架構(gòu)的測(cè)試。 Bonsai [26] 工具用作數(shù)據(jù)庫以自動(dòng)檢測(cè)引入 CVS 的任何新標(biāo)簽。 全局引用標(biāo)記是每月提供,包括所有通過系統(tǒng)驗(yàn)證測(cè)試的標(biāo)簽。 這標(biāo)簽已公布并提供給開發(fā)人員和合作機(jī)構(gòu)繼續(xù)開發(fā)。 用戶文檔根據(jù)公開發(fā)行版本進(jìn)行標(biāo)記。

質(zhì)量保證和測(cè)量(Quality Assurance and Measurement)

通過專門的監(jiān)控工具定期執(zhí)行代碼演練,監(jiān)控違反既定的編碼規(guī)則。使用了 CodeWizard 工具 [14]; 一個(gè)單元類別提交代碼過濾的自動(dòng)機(jī)制已被引入,可供 Geant4 開發(fā)人員使用。 檢查運(yùn)行時(shí)內(nèi)存管理在每次公開發(fā)行前定期進(jìn)行; Insure++ [15] 和 SUN Workshop 等工具[16] 用于選定的試驗(yàn)臺(tái)應(yīng)用程序。定期執(zhí)行 檢查是否違反宏觀層面的類別依賴結(jié)構(gòu),并在與主類 Category Diagram 的 相關(guān)性被監(jiān)控。 性能監(jiān)控在選定的測(cè)試臺(tái)應(yīng)用程序上應(yīng)用在其中性能很關(guān)鍵的單元級(jí)別的類別上加以應(yīng)用。

雙V驗(yàn)證(Verification and Validation)

在宏觀層面,根據(jù)主類驗(yàn)證 Categories 的依賴結(jié)構(gòu)分類圖作為參考。 驗(yàn)證工具包在 URD [10] 的每個(gè)新修訂版中的一般功能。 功能和覆蓋范圍的單元級(jí)別驗(yàn)證以及單元測(cè)試和驗(yàn)證新的開發(fā)或修復(fù)由每個(gè)類別協(xié)調(diào)員負(fù)責(zé)。 一旦所有系統(tǒng)集成測(cè)試都成功執(zhí)行,新開發(fā)由 STT 驗(yàn)證,前提是,在與類別協(xié)調(diào)員合作,系統(tǒng)測(cè)試已擴(kuò)展到涵蓋新引入的功能。

補(bǔ)充雙V

雙V是系統(tǒng)工程最核心的思想,這種思想也可以用來解釋我們?nèi)粘I钪忻鎸?duì)的各種各樣的事情。

簡(jiǎn)單的說:Verification,中文翻譯叫“驗(yàn)證”,就是把事情做對(duì)(do things right);Validation,中文翻譯叫“確認(rèn)”,就是做對(duì)的事情(do right things)

提供一副簡(jiǎn)圖,供大家揣摩其中的奧秘

組織生命周期流程

項(xiàng)目任務(wù)管理

項(xiàng)目的管理在指定的 Geant4 Collaboration 的控制之下并在 Geant4 補(bǔ)充備忘錄 [3] 中有所規(guī)定。 Geant 4 通過工作組組織起來; 每個(gè)工作組負(fù)責(zé)工具包的一個(gè)特定領(lǐng)域,其中明確指定的任務(wù)與其相關(guān)聯(lián)。 每個(gè)工作組在TSB都由其協(xié)調(diào)員代表。 每年都會(huì)確定目標(biāo),并在 TSB 會(huì)議內(nèi)進(jìn)行討論并提交給 CB。 在 TSB 會(huì)議期間對(duì)它們進(jìn)行一般性審查,聯(lián)合審查或在每年組織一次的合作研討會(huì)上進(jìn)行。

改進(jìn)過程

SPI [4] 計(jì)劃在 TSB 會(huì)議上正式提出并被批準(zhǔn)為2000-2001 年的里程碑。 確定了優(yōu)先事項(xiàng)和目標(biāo)并批準(zhǔn)了目前正在申請(qǐng)SPI程序。基于范例的正式評(píng)估執(zhí)行模型 ISO-15504 (SPICE) [6]。 SPI 被認(rèn)為是生命周期驅(qū)動(dòng)的,因此既定方案的進(jìn)展不斷得到監(jiān)測(cè)。 達(dá)到項(xiàng)目中既定流程 [5] 的能力級(jí)別是 Geant4 的關(guān)鍵目標(biāo)。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4070

    瀏覽量

    133552
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3614

    瀏覽量

    93686
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    940

    瀏覽量

    54814

原文標(biāo)題:Geant4 的軟件開發(fā)過程

文章出處:【微信號(hào):RedHeartRobot,微信公眾號(hào):紅心機(jī)器人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自己做的TAS5825板子軟件開發(fā)過程中怎么接到PPC3上去調(diào)試呢?

    我們打算做一個(gè)TAS5825的板子,PPC3軟件已經(jīng)申請(qǐng)下來了,有個(gè)問題是我們自己做的TAS5825板子軟件開發(fā)過程中怎么接到PPC3上去調(diào)試呢?
    發(fā)表于 10-15 08:15

    ECU電控軟件開發(fā)及測(cè)試介紹

    本文重點(diǎn)介紹符合AutoSar架構(gòu)的應(yīng)用軟件開發(fā)、MBD開發(fā)模式下的軟件質(zhì)量評(píng)估與優(yōu)化方案、復(fù)雜場(chǎng)景下的ECU性能壓力測(cè)試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3328次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及測(cè)試介紹

    Vector DaVinci Team解決方案實(shí)現(xiàn)AUTOSAR Classic ECU軟件開發(fā)

    隨著軟件技術(shù)的發(fā)展,車輛的開發(fā)過程從硬件主導(dǎo)轉(zhuǎn)變?yōu)?b class='flag-5'>軟件定義汽車(SDV),軟件開發(fā)在汽車的開發(fā)過程中扮演著舉足輕重的角色。車輛E/E架構(gòu)由原
    的頭像 發(fā)表于 09-13 11:23 ?1056次閱讀
    Vector DaVinci Team解決方案實(shí)現(xiàn)AUTOSAR Classic ECU<b class='flag-5'>軟件開發(fā)</b>

    嵌入式軟件開發(fā)與AI整合

    嵌入式軟件開發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢(shì)之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式軟件開發(fā)與AI整合的詳細(xì)分析
    的頭像 發(fā)表于 07-31 09:25 ?696次閱讀
    嵌入式<b class='flag-5'>軟件開發(fā)</b>與AI整合

    rup是一種什么模型

    RUP(Rational Unified Process,統(tǒng)一建模語言)是一種軟件開發(fā)過程模型,它是一種迭代和增量的軟件開發(fā)方法。RUP是由Rational Software公司(現(xiàn)為IBM的一部分
    的頭像 發(fā)表于 07-09 10:13 ?1240次閱讀

    軟件開發(fā)珠璣》+60條戒律

    包含需求、設(shè)計(jì)、項(xiàng)目管理、文化和團(tuán)隊(duì)合作、質(zhì)量、過程改進(jìn)6個(gè)方面的內(nèi)容,提供了豐富、實(shí)用的工具和方法。當(dāng)開發(fā)人員更好的理解了需求時(shí),便能夠從用戶的角度觸發(fā)思考更優(yōu)秀的解決方案。從這點(diǎn)來看,每個(gè)軟件開發(fā)人員或團(tuán)隊(duì)?wèi)?yīng)人手一份這本書,
    發(fā)表于 06-24 19:27

    【《軟件開發(fā)珠璣》閱讀體驗(yàn)】+ 心得

    的財(cái)富。 人類是單線程工作的,同時(shí)只能完成一項(xiàng)任務(wù)。感慨頗深。只能根據(jù)優(yōu)先級(jí)選擇重要的任務(wù)了(或事情)。需要養(yǎng)成單日單任務(wù)的習(xí)慣。 此外,《軟件開發(fā)珠璣》還強(qiáng)調(diào)了團(tuán)隊(duì)協(xié)作和溝通的重要性。在軟件開發(fā)過程
    發(fā)表于 06-23 17:56

    上位機(jī)軟件開發(fā)用什么語言

    上位機(jī)軟件開發(fā)是指開發(fā)用于與下位機(jī)(如PLC、單片機(jī)等)進(jìn)行通信、控制和數(shù)據(jù)處理的計(jì)算機(jī)軟件。上位機(jī)軟件在工業(yè)自動(dòng)化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域有著廣泛的應(yīng)用。選擇合適的編程語言對(duì)于
    的頭像 發(fā)表于 06-06 10:44 ?1756次閱讀

    共讀《軟件開發(fā)珠璣》

    作為項(xiàng)目經(jīng)理,要處理好五大過程組和十大領(lǐng)域; 作為軟件配置管理,對(duì)軟件工程、算法和應(yīng)用開發(fā)還不夠了解,本書介紹的軟件開發(fā)和管理60條經(jīng)驗(yàn)教訓(xùn)
    發(fā)表于 05-21 11:28

    嵌入軟件單元測(cè)試工具的作用

    嵌入軟件單元測(cè)試工具是現(xiàn)代軟件開發(fā)過程中不可或缺的一環(huán)。它的作用在于幫助開發(fā)人員對(duì)軟件中的各個(gè)單元進(jìn)行測(cè)試,以確保其功能的正確性和穩(wěn)定性。單元測(cè)試是
    的頭像 發(fā)表于 04-23 15:31 ?428次閱讀
    嵌入<b class='flag-5'>軟件</b>單元測(cè)試工具的作用

    keil arm軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-26 15:51 ?7次下載

    嵌入式軟件開發(fā)軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)軟件開發(fā)是兩個(gè)不同的概念,它們?cè)谝恍╆P(guān)鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設(shè)備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?2269次閱讀

    區(qū)塊鏈系統(tǒng)軟件開發(fā)與應(yīng)用

    。本文將詳細(xì)介紹區(qū)塊鏈系統(tǒng)軟件開發(fā)過程和應(yīng)用推廣的關(guān)鍵要點(diǎn)。 一、區(qū)塊鏈系統(tǒng)軟件開發(fā)的基本原理和技術(shù) 1.1 區(qū)塊鏈的基本原理 區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù),通過多方參與、共識(shí)機(jī)制、密碼學(xué)等手段保證了數(shù)據(jù)的不可篡改
    的頭像 發(fā)表于 01-10 18:18 ?2509次閱讀

    ASIC芯片開發(fā)過程

    電子發(fā)燒友網(wǎng)站提供《ASIC芯片開發(fā)過程.ppt》資料免費(fèi)下載
    發(fā)表于 12-25 10:04 ?1次下載
    RM新时代网站-首页