本文介绍下了解到的汽车控制器开发的工具链,本文侧重于于系统和应用软件开发两个方面的工具。
1 需求管理
需求工具接触到的有DOORS, Polarion, and PTC Integrity,都是面向大型工程项目的需求管理工具,虽然它们都有类似的功能,但是它们也有一些显著的差异。
DOORS:DOORS是IBM开发的需求管理工具,特别强调需求的一致性和完整性。它支持多维数据结构,可以方便地组织和管理大量需求信息。
Polarion:Polarion是一款由Siemens开发的需求管理工具,特别强调需求的可视化和可操作性。它提供了一系列图形和表格,方便用户理解和访问需求信息。
PTC Integrity:PTC Integrity是PTC公司开发的需求管理工具,特别强调需求的协作性。它支持多用户协作,团队成员可以共享信息,协作完成需求管理任务。
总的来说,选择哪款需求管理工具取决于您的需求和项目的需求。目前个人偏向于用DOORS。DOORS (Dynamic Object-Oriented Requirements System)的特点包括:
需求跟踪:DOORS可以跟踪需求的生命周期,从需求收集到实现,并且可以确保需求的一致性和完整性。
多维数据结构:DOORS支持多维数据结构,可以方便地组织和管理大量需求信息。
可视化:DOORS提供了一系列图形和表格,可以帮助用户更好地理解和访问需求信息。
协作:DOORS支持多用户协作,团队成员可以共享信息,协作完成需求管理任务。
审查和审批:DOORS支持需求审查和审批,可以确保需求的质量和合法性。
Source: Sudo Null - Latest IT News
2 架构设计
系统架构和软件架构设计工具包括:
Enterprise Architect(EA):这是一个高级系统和软件架构工具,可以帮助构建系统和软件的架构模型,以及记录和管理需求和元数据。
Microsoft Visio:这是一种图形化工具,可以帮助构建系统架构图和软件架构图。
以上工具都可以帮助设计人员在需求和限制的情况下,设计出可扩展、可维护的系统架构和软件架构,两者相较而言,EA更专业更强大,首选EA。
source: Moving Visio Diagrams into Enterprise Architect
3 详细设计
3.1 代码编辑器
ECU(汽车电子控制单元)软件开发中常用的代码编辑工具包括:
Source Insight: 一款功能强大的代码阅读和编辑工具,主要用于源代码的浏览、分析和编辑。
Text editors:如 Sublime Text、Notepad++等,这些工具是通用的文本编辑器,可以用于编写和编辑代码。
Eclipse:这是一个通用的IDE,支持多种编程语言,可以用于开发嵌入式系统。
Visual Studio:这是一个微软公司提供的IDE,支持多种编程语言,并且有丰富的插件库。
这些工具都可以帮助开发人员编写高质量的代码,并在编码过程中提供自动完成、语法检查等功能。在选择代码编辑工具时,需要考虑项目需求和团队偏好,以选择最合适的工具。
个人习惯用Source Insight,Source Insight主要用于源代码的浏览、分析和编辑。它可以帮助开发人员更好地理解代码,支持代码标记、代码注释、代码折叠等功能,方便开发人员阅读代码。Source Insight还支持语法高亮、代码提示、代码完成等功能,可以大大提高编码效率。此外,Source Insight还具有调试、搜索和替换等功能,可以帮助开发人员快速找到问题并进行解决。总的来说,Source Insight是一款很好的代码阅读和编辑工具,特别适合用于大型项目的代码开发。
3.2 模型开发
Simulink, TargetLink 和 ASCET 是三种常用的建模工具,它们各具特点,主要区别如下:
Simulink:Simulink 是一款基于图形界面的模型开发工具,具有丰富的图形建模和仿真功能,适用于各种系统仿真需求。
TargetLink:TargetLink 是一款专门为汽车控制器开发而设计的建模工具,可以帮助用户快速生成高质量的 C 代码,适用于严格的汽车控制器开发流程。
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,均用于汽车通信网络分析和测试的工具。
CANalyzer:用于分析和测试控制器区域网络(CAN)通信系统的工具。它提供了数据监测、协议分析、错误注入和总线模拟等功能。
CANape:用于提供电子控制单元(ECU)高级测量和标定功能的工具。CANape 提供了一个环境,用于开发和测试控制算法,并实时标定 ECU 参数。
CANoe:用于在汽车行业中开发、测试和分析 ECU 和网络的工具。它提供了一个全面的环境,用于测试通信协议,标定ECU参数和模拟复杂的网络交互。
这三种工具可以一起使用,为汽车通信网络和 ECU 的开发和测试提供一个集成的解决方案。
5 版本管理
常见的软件项目管理和版本管理工具有:
Jira:一种广泛使用的软件开发团队的项目和问题跟踪工具。
GitHub:一个基于网页的版本控制和协作平台,被广泛应用于软件开发团队。
Bitbucket:一个基于网页的版本控制和协作平台,专门为专业软件开发团队设计。
SVN:一个广泛使用的软件开发项目版本控制系统。
PTC Integrity:一款综合性的软件项目管理和版本管理工具,
Git:一款开源的版本控制系统,主要用于软件项目的版本管理。
此处,以PTC Integrity进行说明,PTC Integrity可支持大型软件项目的开发、测试和交付。它提供了一系列的项目管理功能,如需求管理、项目计划、缺陷跟踪等。PTC Integrity 同时也提供了强大的版本管理功能,可以管理代码和文档的变更,以及控制软件的发布。PTC Integrity 可以让团队中的多个开发人员在同一个项目上并行工作,通过版本管理功能确保代码的完整性和一致性。也具有强大的分支管理功能,可以让开发人员在不同的分支上开发,并方便地合并到主分支。
当然具体选择哪个工具取决于软件开发项目和团队的具体需求和要求,如团队规模、开发流程和项目复杂度等。