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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    53

    文章

    4404

    浏览量

    137645
  • 编程
    +关注

    关注

    90

    文章

    3707

    浏览量

    96741
  • 编码
    +关注

    关注

    6

    文章

    1015

    浏览量

    56645

原文标题:Geant4 的软件开发过程

文章出处:【微信号:RedHeartRobot,微信公众号:红心机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入软件单元测试的全面研究与实践

    作为软件开发过程中最早进行的测试活动,能够有效隔离代码片段,验证其功能是否符合设计预期,从而在早期阶段发现潜在缺陷,提升代码质量。本文将系统探讨嵌入软件单元测试的标准流程、方法论、工具选择、工程师能力要求、实际案例以及最
    的头像 发表于 12-01 14:31 149次阅读

    请问e203定义的地址空间是虚拟地址还是物理地址?

    蜂鸟e203实现的是物理地址,硬件端与软件端的地址分配相同,从而确定软件开发过程中能操作底层寄存器。 硬件端:在总线分发模块sirv_icb1to16_bus定义好各个端口寄存器的地址区间, 软件
    发表于 11-11 06:20

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化的软件开发
    的头像 发表于 10-27 16:45 716次阅读

    京微齐力新版福晞软件工具全面优化FPGA设计环境

    FPGA 设计开发过程中,软件是工程师必不可少的工具,好的软件开发环境可以简化设计者的设计流程,缩短开发时间,提升整体设计效率。
    的头像 发表于 10-23 17:48 4613次阅读
    京微齐力新版福晞<b class='flag-5'>软件</b>工具全面优化FPGA设计环境

    十大北京软件开发公司推荐:有哪些优点和缺点

    十大北京软件开发公司推荐:有哪些优点和缺点
    的头像 发表于 10-04 09:44 1111次阅读
    十大北京<b class='flag-5'>软件开发</b>公司推荐:有哪些优点和缺点

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司
    的头像 发表于 09-30 09:16 2442次阅读
    2025北京<b class='flag-5'>软件开发</b>公司推荐汇总:盘点10家优秀<b class='flag-5'>软件</b>定制<b class='flag-5'>开发</b>公司

    知识分享 | 敏捷方法在基于模型的软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型的开发(MBD)具有诸多优势。将敏捷原
    的头像 发表于 07-16 16:52 1049次阅读
    知识分享 | 敏捷方法在基于模型的<b class='flag-5'>软件开发</b>项目中的应用

    嵌入式软件开发常用的软件有哪些?

    对于初学嵌入式的朋友们,会想要了解嵌入式软件开发常用的软件有些,有什么用。那么看以下常用的软件介绍。 1.Visual Studio Code 简称VSCode:它是一款由微软开发且跨
    发表于 07-03 17:06

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 1592次阅读
    基于瑞萨64位MPU RZ/G2L进行32位应用<b class='flag-5'>软件开发</b>

    找电机控制软件开发兼职

    软件开发兼职人员,我现在有一个永磁无刷电机控制,220V,需要有相关经验的人来开发,兼职费用可以议谈,产品是增压泵相关产品,有兴趣给我留言,谢谢
    发表于 05-07 17:43

    一个优秀的嵌入式软件“架构师” — AWFlow

    在大型项目的软件开发过程中,模块化开发面临着接口设计不合理、代码冲突以及模块间不兼容等问题,导致团队协作效率低下。为了解决这些问题,嵌入式软件“架构师”—AWFlow,应运而生!在大型项目
    的头像 发表于 02-10 16:44 769次阅读
    一个优秀的嵌入式<b class='flag-5'>软件</b>“架构师” — AWFlow

    打破技术壁垒!AWFlow让嵌入式软件开发触手可及

    在嵌入式软件开发中,创意和技术创新常常难以融合。AWFlow通过其图形化组态方法,利用拖拽节点构建业务流程图,帮助用户实现奇思妙想。在嵌入式软件开发中,创意和技术创新常常难以融合。一方面,大量
    的头像 发表于 02-10 16:44 701次阅读
    打破技术壁垒!AWFlow让嵌入式<b class='flag-5'>软件开发</b>触手可及

    云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

    Jenkins 是一个开源的自动化服务器,用于持续集成(CI)和持续交付(CD)软件项目。它允许开发人员在软件开发过程中自动化各种任务,如构建、测试和部署,从而提高开发效率和
    的头像 发表于 12-29 15:43 669次阅读
    云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

    我国软件开发者数量突破940万

    2024开放原子开发者大会20到21日在武汉举办。工业和信息化部负责人透露,我国软件开发者数量突破940万。 开源就是开放软件的源代码,在遵守许可协议的前提下,任何人都可以使用、修改甚至再发布源代码
    的头像 发表于 12-24 13:52 709次阅读

    我国软件开发者数量超过940万

    在近日举办的开放原子开发者大会上,工业和信息化部负责人传来了一则令人振奋的消息:我国软件开发者数量已经突破940万大关。这一数据不仅彰显了我国在软件开发领域的雄厚实力,也预示着我国在全球软件开
    的头像 发表于 12-23 11:08 902次阅读