分享

汽车控制器软件开发的常用工具

 yeshuheng 2024-03-10 发布于浙江

来源 | 汽车电子与软件

图片

本文介绍下了解到的汽车控制器开发的工具链,本文侧重于系统和应用软件开发两个方面的工具。

1 需求管理

需求工具接触到的有DOORS, Polarion, and PTC Integrity,都是面向大型工程项目的需求管理工具,虽然它们都有类似的功能,但是它们也有一些显著的差异。

1、DOORS:DOORS是IBM开发的需求管理工具,特别强调需求的一致性和完整性。它支持多维数据结构,可以方便地组织和管理大量需求信息。

2、Polarion:Polarion是一款由Siemens开发的需求管理工具,特别强调需求的可视化和可操作性。它提供了一系列图形和表格,方便用户理解和访问需求信息。

3、PTC Integrity:PTC Integrity是PTC公司开发的需求管理工具,特别强调需求的协作性。它支持多用户协作,团队成员可以共享信息,协作完成需求管理任务。

总的来说,选择哪款需求管理工具取决于您的需求和项目的需求。目前个人偏向于用Polarion。Polarion的特点包括:

(1)协同合同的重点能力在于上下游的过程域串联,通过不同过程域的无缝集成和权限划分,保证了不同用户角色的交互协同,通过评注、审批和电子签名等方式无缝衔接业务流程,保证软件研发的效率和完整。

(2)可追溯性的重点能力在于系统层面的数据整合,软件研发的流程推进核心在于需求管理,通过建立并拆解分析完整的系统需求、软件需求形成详细的工作项作为驱动,推动流程并关联下游的代码、测试用例、产品发布包,形成完整的数据链条,保证信息从头到尾完整的追溯链条,具体到谁(用户名称)在什么时候(时间节点)做了什么事(操作内容属性)和操作原因(分析)。

(3)重用的重点能力在于形成全面的知识库,可以快速便捷地为并行项目提供文档层面、工作流层面和项目模板层面的重用、分支和数据合并,最大化提升软件开发效率。

2 架构设计

系统架构和软件架构设计工具包括:

1、Enterprise Architect(EA):这是一个高级系统和软件架构工具,可以帮助构建系统和软件的架构模型,以及记录和管理需求和元数据。

2、Microsoft Visio:这是一种图形化工具,可以帮助构建系统架构图和软件架构图。

以上工具都可以帮助设计人员在需求和限制的情况下,设计出可扩展、可维护的系统架构和软件架构,两者相较而言,EA更专业更强大,首选EA。

source: Moving Visio Diagrams into Enterprise Architect

3 详细设计

3.1 代码编辑器

ECU(汽车电子控制单元)软件开发中常用的代码编辑工具包括:

1、Source Insight: 一款功能强大的代码阅读和编辑工具,主要用于源代码的浏览、分析和编辑。

2、Text editors:如 Sublime Text、Notepad++等,这些工具是通用的文本编辑器,可以用于编写和编辑代码。

3、Eclipse:这是一个通用的IDE,支持多种编程语言,可以用于开发嵌入式系统。

4、Visual Studio:这是一个微软公司提供的IDE,支持多种编程语言,并且有丰富的插件库。

这些工具都可以帮助开发人员编写高质量的代码,并在编码过程中提供自动完成、语法检查等功能。在选择代码编辑工具时,需要考虑项目需求和团队偏好,以选择最合适的工具。

个人习惯用Source Insight,Source Insight主要用于源代码的浏览、分析和编辑。它可以帮助开发人员更好地理解代码,支持代码标记、代码注释、代码折叠等功能,方便开发人员阅读代码。Source Insight还支持语法高亮、代码提示、代码完成等功能,可以大大提高编码效率。此外,Source Insight还具有调试、搜索和替换等功能,可以帮助开发人员快速找到问题并进行解决。总的来说,Source Insight是一款很好的代码阅读和编辑工具,特别适合用于大型项目的代码开发。

source: https://www./wp-content/uploads/2016/03/mainappwide1130.png

3.2 模型开发

Simulink, TargetLink 和 ASCET 是三种常用的建模工具,它们各具特点,主要区别如下:

1、Simulink:Simulink 是一款基于图形界面的模型开发工具,具有丰富的图形建模和仿真功能,适用于各种系统仿真需求。

2、TargetLink:TargetLink 是一款专门为汽车控制器开发而设计的建模工具,可以帮助用户快速生成高质量的 C 代码,适用于严格的汽车控制器开发流程。

3、ASCET:ASCET 是一款专注于模型驱动开发的建模工具,可以帮助用户进行系统建模和仿真,并生成高效的代码。ASCET 也适用于汽车控制器的开发,但相比 TargetLink 更注重模型的仿真和代码生成。

这三种工具中,ASCET好像主要博世使用,其他家一般都使用Simulink,TargetLink。TargetLink 通过在 Simulink 模型中生成代码来支持高效的开发流程,这两款工具结合使用可以提高开发效率并帮助提高代码质量。

Source: TargetLink

4 测试

4.1 单元测试

单元测试包括静态单元测试和动态单元测试。其中静态单元测试,一般使用Polyspace,Tessy等工具。

Polyspace是一款强大的代码静态分析工具,用于检测软件代码中的潜在错误和安全漏洞。它可以分析代码并确定可能导致错误或漏洞的代码段,并提供详细的说明和建议以便开发人员可以解决问题。Polyspace支持许多编程语言,包括C,C++,Ada和MATLAB。它是一个高效的工具,可以在编写代码的同时对代码进行实时分析,从而减少开发周期并提高代码质量。

source: Polyspace

而动态单元测试则一般基于Simulink,TargetLink来实施。

4.2 集成和确认测试

对于集成和确认测试,这里主要介绍下Vector公司的三件套:CANalyzer、CANape 和 CANoe,均用于汽车通信网络分析和测试的工具。

1、CANalyzer:用于分析和测试控制器区域网络(CAN)通信系统的工具。它提供了数据监测、协议分析、错误注入和总线模拟等功能。

2、CANape:用于提供电子控制单元(ECU)高级测量和标定功能的工具。CANape 提供了一个环境,用于开发和测试控制算法,并实时标定 ECU 参数。

3、CANoe:用于在汽车行业中开发、测试和分析 ECU 和网络的工具。它提供了一个全面的环境,用于测试通信协议,标定ECU参数和模拟复杂的网络交互。

这三种工具可以一起使用,为汽车通信网络和 ECU 的开发和测试提供一个集成的解决方案。

Source: https://en./wiki/CANape

5 版本管理

常见的软件项目管理和版本管理工具有:

  • Jira:一种广泛使用的软件开发团队的项目和问题跟踪工具。

  • GitHub:一个基于网页的版本控制和协作平台,被广泛应用于软件开发团队。

  • Bitbucket:一个基于网页的版本控制和协作平台,专门为专业软件开发团队设计。

  • SVN:一个广泛使用的软件开发项目版本控制系统。

  • PTC Integrity:一款综合性的软件项目管理和版本管理工具,

  • Git:一款开源的版本控制系统,主要用于软件项目的版本管理。

此处,以PTC Integrity进行说明,PTC Integrity可支持大型软件项目的开发、测试和交付。它提供了一系列的项目管理功能,如需求管理、项目计划、缺陷跟踪等。PTC Integrity 同时也提供了强大的版本管理功能,可以管理代码和文档的变更,以及控制软件的发布。PTC Integrity 可以让团队中的多个开发人员在同一个项目上并行工作,通过版本管理功能确保代码的完整性和一致性。也具有强大的分支管理功能,可以让开发人员在不同的分支上开发,并方便地合并到主分支。

当然具体选择哪个工具取决于软件开发项目和团队的具体需求和要求,如团队规模、开发流程和项目复杂度等。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多