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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

紅心機器人 ? 來源:Geant4模擬學習交流 ? 作者:強哥同學 ? 2021-08-26 16:22 ? 次閱讀

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

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

摘要:

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

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

簡介(Introduction):

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

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

支持生命周期

管理過程

或組織生命周期

和用戶-供應商流程。

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

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

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

需求獲取過程(Requirements elicitation process)

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

軟件設計(Software Design)

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

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

從一開始就采用了編程和編碼指南 [13]。 感覺是——重要的是不要強加太固定的規(guī)則或風格慣例,而只是靈活和足夠的指導方針,基本上能處理面向對象范式的粘附(數(shù)據(jù)隱藏,封裝等)、軟件的性能和可移植性。軟件的打包嚴格按照領域分解為類別和子類別,這是設計過程的結果。 在適用的情況下,定義接口的類與實現(xiàn)此類的具體類分開打包在子類別接口中。 通過這種方式,屬于一個類別的類協(xié)作以可重用的方式提供一組服務。

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

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

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

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

軟件維護(Software Maintenance)

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

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

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

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

文檔(Documentation)

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

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

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

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

質量保證和測量(Quality Assurance and Measurement)

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

雙V驗證(Verification and Validation)

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

補充雙V

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

簡單的說:Verification,中文翻譯叫“驗證”,就是把事情做對(do things right);Validation,中文翻譯叫“確認”,就是做對的事情(do right things)

提供一副簡圖,供大家揣摩其中的奧秘

組織生命周期流程

項目任務管理

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

改進過程

SPI [4] 計劃在 TSB 會議上正式提出并被批準為2000-2001 年的里程碑。 確定了優(yōu)先事項和目標并批準了目前正在申請SPI程序?;诜独恼皆u估執(zhí)行模型 ISO-15504 (SPICE) [6]。 SPI 被認為是生命周期驅動的,因此既定方案的進展不斷得到監(jiān)測。 達到項目中既定流程 [5] 的能力級別是 Geant4 的關鍵目標。

編輯:jq

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

    關注

    50

    文章

    3972

    瀏覽量

    132963
  • 編程
    +關注

    關注

    88

    文章

    3521

    瀏覽量

    93272
  • 編碼
    +關注

    關注

    6

    文章

    915

    瀏覽量

    54651

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

文章出處:【微信號:RedHeartRobot,微信公眾號:紅心機器人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    rup是一種什么模型

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

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

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

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

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

    嵌入軟件單元測試工具的作用

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

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

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

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

    嵌入式軟件開發(fā)軟件開發(fā)是兩個不同的概念,它們在一些關鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?1789次閱讀

    ASIC芯片開發(fā)過程

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

    從定義和實施幫你對軟件測試進行全解析

    軟件測試 是軟件開發(fā)過程中的一項重要環(huán)節(jié),它的目的是確保軟件能夠滿足預期的需求和質量標準,為客戶提供高質量的產(chǎn)品或服務。本文將從定義和實施角度對軟件測試進行解析,幫助讀者更好地了解
    的頭像 發(fā)表于 12-21 14:25 ?387次閱讀

    嵌入式軟件開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件開發(fā)流程.ppt》資料免費下載
    發(fā)表于 11-17 14:37 ?3次下載
    嵌入式<b class='flag-5'>軟件開發(fā)</b>流程

    LabVIEW多線程編程解析 LabVIEW的VI優(yōu)先級和并行循環(huán)等相關知識

    軟件開發(fā)過程中總會遇到需要多線程同步運行的情況,尤其是一些復雜的測試系統(tǒng)和大型項目,僅靠單線程運行的程序是遠遠無法滿足用戶需求的,甚至可以說在復雜測試系統(tǒng)的軟件開發(fā)中,多線程運行是最基本的。
    的頭像 發(fā)表于 11-10 10:20 ?9097次閱讀
    LabVIEW多線程編程解析 LabVIEW的VI優(yōu)先級和并行循環(huán)等相關知識

    功能安全驗證之軟件故障注入方法

    軟件故障注入是一種假設實驗,它可能起源于軟件開發(fā)過程的任何階段,包括需求分析、設計和編碼活動。在給定的工作負載下執(zhí)行目標,并將故障插入目標系統(tǒng)的特定軟件組件中。
    的頭像 發(fā)表于 11-06 18:22 ?1556次閱讀
    功能安全驗證之<b class='flag-5'>軟件</b>故障注入方法

    AUTOSAR軟件開發(fā)流程簡介

    AUTOSAR軟件開發(fā)流程簡介 AUTOSAR軟件開發(fā)流程是指在AUTOSAR架構下進行軟件開發(fā)的一系列步驟和方法。它包括以下幾個主要階段: 需求分析:在這個階段,根據(jù)汽車電子系統(tǒng)的需求,定義和分析
    的頭像 發(fā)表于 10-27 15:55 ?2727次閱讀
    AUTOSAR<b class='flag-5'>軟件開發(fā)</b>流程簡介

    Android校園應用開發(fā)過程

    電子發(fā)燒友網(wǎng)站提供《Android校園應用開發(fā)過程.pdf》資料免費下載
    發(fā)表于 10-19 11:36 ?0次下載
    Android校園應用<b class='flag-5'>開發(fā)過程</b>

    基于Android的應用軟件開發(fā)實例初探

    電子發(fā)燒友網(wǎng)站提供《基于Android的應用軟件開發(fā)實例初探.pdf》資料免費下載
    發(fā)表于 10-09 16:57 ?0次下載
    基于Android的應用<b class='flag-5'>軟件開發(fā)</b>實例初探