Geant4 的軟件開發過程
Gabriele Cosmo(歐洲核子研究中心,瑞士日內瓦)用于 Geant4 協作。
摘要:
自其最早的研發 [1] 以來,Geant4 仿真工具包已經遵循決定項目整體發展的軟件過程標準進行開發。所涉及軟件的復雜性包括,軟件產品的廣泛應用領域、龐大的代碼量和類別的復雜性、規模和分布式性質合作本身的所有要素都涉及并關聯了廣泛的各種軟件過程。
雖然在“生產”中并從1998 年 12 月向公眾開放,Geant4 軟件產品 [2] 包括所應用的類別領域,它們仍在積極開發中。因此,關于改進開發周期、系統測試和用戶支持,他們也需要不同的對待。這篇文章是旨在描述一些在 Geant4 中應用的軟件過程,涵蓋了軟件的開發、測試和維護。關鍵詞:Geant4、PSS-05、SPICE、Booch、UML
簡介(Introduction):
許多軟件過程在 Geant4 中得到解決,這些過程來自不同的過程類別:
軟件開發的主要生命周期
支持生命周期
管理過程
或組織生命周期
和用戶-供應商流程。
由于質量、穩定性要求或特定領域的進化階段,或者為了使過程適應人們的習慣,有時需要定制流程。 軟件過程改進 (SPI,Software Process Improvement ) 是一個必須在有關各方的全力支持下逐步實施,并確定正確的優先事項和目標 [8]的過程。 在本文中我們將提到一組與 Geant4 相關的軟件流程; 大多數相關的程序和應用方法是在項目的開發階段已經有效實施[1]。
主生命周期過程(Primary life-cycle processes)
Geant4 中大多數領域采用的生命周期模型是迭代和增量的(也稱為螺旋方法)[9]。 需求分析、設計、實施和測試之間的步驟是重復的。根據新要求或性能問題,對設計的改進和擴展。 在目前的生產和維護階段,生命周期模型對大多數領域都是迭代的。
需求獲取過程(Requirements elicitation process)
在項目的初始階段,領域問題和用例分析導致了用戶需求的引出 [10]。用戶需求已系統化地按照 ESA PSS-05 軟件工程標準進行審查和更新 [11]。 用戶需求文檔 (URD) 現在保存在源代碼存儲倉庫中,能進行自動版本控制; 它將在 2001 年進行修訂。特定項目領域的 URD 也在存儲庫中保存和維護,并且對協作組成員可用。
軟件設計(Software Design)
Booch (Unified) [9] 方法已被用于面向對象的分析 和軟件的設計。 Booch/UML 表示法被選為通用的設計文檔和內部設計審查的語言。 Rational RoseCASE 工具 [12] 已廣泛用于設計文檔的初始生成。并在需要時用于逆向工程。 正確的域分解和一組經過深思熟慮的依賴關系(避免循環使用關系),允許工作在每個類別域相關聯的組在很大程度上并行工作,同時建立交付的層次結構。 為架構和詳細設計提供的標準文件有:類類別圖(Category Diagram)、類圖(Class Diagrams)、場景圖(Scenario Diagrams )和類規格(Class Specifications)。
軟件創建(Software Construction)
從一開始就采用了編程和編碼指南 [13]。 感覺是——重要的是不要強加太固定的規則或風格慣例,而只是靈活和足夠的指導方針,基本上能處理面向對象范式的粘附(數據隱藏,封裝等)、軟件的性能和可移植性。軟件的打包嚴格按照領域分解為類別和子類別,這是設計過程的結果。 在適用的情況下,定義接口的類與實現此類的具體類分開打包在子類別接口中。 通過這種方式,屬于一個類別的類協作以可重用的方式提供一組服務。
軟件集成和單元測試(Software Integration and Unit Testing)
可以一起測試的系統聚合體根據依賴關系確定類別的結構。 作為例行程序的一部分,定期監測相關測試測試程序[17]。 單元測試在每個類別或子類別獨立執行,盡量最大化覆蓋范圍。
系統測試、驗收和發布(System Testing, Acceptance and Releasing)
系統測試活動由專業團隊部署,系統測試團隊(STT)。 測試 [17] 和發布 [18] 的程序被定義并嚴格應用。發布程序預見到各種類別的標簽提交順序遵循每個類別領域的類圖(Class Diagrams)定義的依賴結構圖表。 驗收測試也包含在常規系統測試中并在發布階段由發布經理單獨運行。 公開發布每年在固定日期安排兩次。 收集并定期進行錯誤修復可作為公共補丁或次要版本使用。
軟件維護(Software Maintenance)
為了實現軟件的可維護性并保證其質量,在可能的情況下,都采用標準。 組件的封裝最大化,相互依賴性和單元復雜性被最小化。 我們努力確保軟件的可移植性主要是通過不斷監控編譯器在不同系統架構上的演變來實現,并避免采用依賴于系統的解決方案或不可移植的語言特征。 代碼的更新、擴展和錯誤修復的可追溯性通過以下方式得到保證。維護臨時歷史文件的方法,定期標記代碼并嘗試將常規開發與錯誤修復更新分開 [18]。
用戶支持,分發(User Support, Distribution)
Geant4 中的用戶支持條款在備忘錄的諒解 (MoU) [3] 文件第 2 條中定義。每個工作組的聯系人是提名的,負責管理和解決報告用戶通過 WWW 使用 Geant4 問題跟蹤系統 [24]提交的問題,問題跟蹤系統是基于 Bugzilla [26] 的定制版本。 Geant4 WWW 站點 [2] 還提供在線文檔、常見問題解答頁面和每個工作組域的聯系人列表。 最近建立了一個基于 Hypernews [25] 的公共用戶論壇。
支持生命周期過程(Supporting life-cycle processes)
文檔(Documentation)
作為用戶文檔 [19],Geant4 提供了六個文檔(可從WWW) 解決固有的不同主題和專業知識水平的問題。用戶示例隨工具包分發的文檔以自學教程的形式引用,具有從“新手”到“高級”應用程序的不同詳細程度。 訓練套件教程、文檔、論文、出版物等也可從Geant4 WWW 站點 [2]獲得。
配置和變更管理(Configuration and Change Management)
軟件配置管理:軟件和文檔的服務器存儲庫已就位; 它基于 CVS [20] 作為并發版本管理的基本工具。 存儲庫中的代碼和文檔可供通過歐洲核子研究中心的成員通過 AFS [21] 以及“pserver”讀/寫訪問。
標記和版本控制:類別工作組協調員負責管理其類別內的開發并提供遵循明確規定的規則 [18]的標簽,用于測試和發布。然后 STT 將運行系統支持的架構的測試。 Bonsai [26] 工具用作數據庫以自動檢測引入 CVS 的任何新標簽。 全局引用標記是每月提供,包括所有通過系統驗證測試的標簽。 這標簽已公布并提供給開發人員和合作機構繼續開發。 用戶文檔根據公開發行版本進行標記。
質量保證和測量(Quality Assurance and Measurement)
通過專門的監控工具定期執行代碼演練,監控違反既定的編碼規則。使用了 CodeWizard 工具 [14]; 一個單元類別提交代碼過濾的自動機制已被引入,可供 Geant4 開發人員使用。 檢查運行時內存管理在每次公開發行前定期進行; Insure++ [15] 和 SUN Workshop 等工具[16] 用于選定的試驗臺應用程序。定期執行 檢查是否違反宏觀層面的類別依賴結構,并在與主類 Category Diagram 的 相關性被監控。 性能監控在選定的測試臺應用程序上應用在其中性能很關鍵的單元級別的類別上加以應用。
雙V驗證(Verification and Validation)
在宏觀層面,根據主類驗證 Categories 的依賴結構分類圖作為參考。 驗證工具包在 URD [10] 的每個新修訂版中的一般功能。 功能和覆蓋范圍的單元級別驗證以及單元測試和驗證新的開發或修復由每個類別協調員負責。 一旦所有系統集成測試都成功執行,新開發由 STT 驗證,前提是,在與類別協調員合作,系統測試已擴展到涵蓋新引入的功能。
補充雙V
雙V是系統工程最核心的思想,這種思想也可以用來解釋我們日常生活中面對的各種各樣的事情。
簡單的說:Verification,中文翻譯叫“驗證”,就是把事情做對(do things right);Validation,中文翻譯叫“確認”,就是做對的事情(do right things)
提供一副簡圖,供大家揣摩其中的奧秘
組織生命周期流程
項目任務管理
項目的管理在指定的 Geant4 Collaboration 的控制之下并在 Geant4 補充備忘錄 [3] 中有所規定。 Geant 4 通過工作組組織起來; 每個工作組負責工具包的一個特定領域,其中明確指定的任務與其相關聯。 每個工作組在TSB都由其協調員代表。 每年都會確定目標,并在 TSB 會議內進行討論并提交給 CB。 在 TSB 會議期間對它們進行一般性審查,聯合審查或在每年組織一次的合作研討會上進行。
改進過程
SPI [4] 計劃在 TSB 會議上正式提出并被批準為2000-2001 年的里程碑。 確定了優先事項和目標并批準了目前正在申請SPI程序。基于范例的正式評估執行模型 ISO-15504 (SPICE) [6]。 SPI 被認為是生命周期驅動的,因此既定方案的進展不斷得到監測。 達到項目中既定流程 [5] 的能力級別是 Geant4 的關鍵目標。
編輯:jq
-
仿真
+關注
關注
50文章
4043瀏覽量
133416 -
編程
+關注
關注
88文章
3592瀏覽量
93596 -
編碼
+關注
關注
6文章
935瀏覽量
54762
原文標題:Geant4 的軟件開發過程
文章出處:【微信號:RedHeartRobot,微信公眾號:紅心機器人】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論