精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

簡述Geant4 的軟件開發過程

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

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,微信公眾號:紅心機器人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    自己做的TAS5825板子軟件開發過程中怎么接到PPC3上去調試呢?

    我們打算做一個TAS5825的板子,PPC3軟件已經申請下來了,有個問題是我們自己做的TAS5825板子軟件開發過程中怎么接到PPC3上去調試呢?
    發表于 10-15 08:15

    ECU電控軟件開發及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發、MBD開發模式下的軟件質量評估與優化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發表于 09-26 14:25 ?3227次閱讀
    ECU電控<b class='flag-5'>軟件開發</b>及測試介紹

    Vector DaVinci Team解決方案實現AUTOSAR Classic ECU軟件開發

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

    rup是一種什么模型

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

    軟件開發珠璣》+60條戒律

    包含需求、設計、項目管理、文化和團隊合作、質量、過程改進6個方面的內容,提供了豐富、實用的工具和方法。當開發人員更好的理解了需求時,便能夠從用戶的角度觸發思考更優秀的解決方案。從這點來看,每個軟件開發人員或團隊應人手一份這本書,
    發表于 06-24 19:27

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

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

    上位機軟件開發用什么語言

    上位機軟件開發是指開發用于與下位機(如PLC、單片機等)進行通信、控制和數據處理的計算機軟件。上位機軟件在工業自動化、物聯網、智能家居等領域有著廣泛的應用。選擇合適的編程語言對于
    的頭像 發表于 06-06 10:44 ?1456次閱讀

    共讀《軟件開發珠璣》

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

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

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

    廣告電商+超級云APP結合 # 軟件開發# 模式開發# 小程序開發# App開發

    軟件開發APP
    jf_01576396
    發布于 :2024年04月09日 17:42:13

    keil arm軟件開發指南

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

    嵌入式軟件開發軟件開發的區別

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

    區塊鏈系統軟件開發與應用

    。本文將詳細介紹區塊鏈系統軟件開發過程和應用推廣的關鍵要點。 一、區塊鏈系統軟件開發的基本原理和技術 1.1 區塊鏈的基本原理 區塊鏈是一種分布式賬本技術,通過多方參與、共識機制、密碼學等手段保證了數據的不可篡改
    的頭像 發表于 01-10 18:18 ?2429次閱讀

    ASIC芯片開發過程

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

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

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