复杂汽车软件开发项目中错误的快速定位

描述

汽车行业的当前趋势意味着开发软件项目已成为一项日益复杂的任务。软件团队和项目经理需要在复杂和异构的软件系统中使用专门的错误搜索和流程优化框架。

在这次与 Elektrobit Automotive 的Torsten Mosis 和 Sebastian König 的问答 中,两人讨论了在复杂的汽车软件供应链中在破坏开发项目之前检测出代价高昂的错误的机制。

嵌入式计算设计:哪些因素导致汽车软件开发项目日益复杂,在复杂的汽车供应链中,谁最终负责确保软件质量?

König: 如今,主机中已经可以找到广泛的软件技术。它们通常基于 HTML5、Java 或 Qt 等标准系统,其下层的应用程序和服务利用了已建立的框架(如 Android、QNX Car Platform 或 GENIVI Linux)的优势。

在此期间,用户可以体验的功能由智能手机应用程序和Android Auto或Apple CarPlay等镜像方法的集成来补充。除此之外,还有大量数据从车辆到云端的迁移和处理。市场发展表明,在未来,分布在不同硬件实体上或在虚拟机管理程序上运行在虚拟化环境中的几种不同操作系统通常会同时运行。在这里,导航系统等复杂功能通常会渗透到所有软件和硬件层。

虽然基本集成通常由 OEM 自己完成,但几个供应商通常会在不同程度上对整体功能做出贡献。因此,对于开发人员和程序员来说,为了测试和保证整个软件系统的质量和稳健性,需要进行重大的协调工作。除了久经考验的标准系统和技术外,还需要考虑许多专有扩展。

嵌入式计算设计:在软件开发生命周期早期发现的错误远低于在生产后期发现的错误。开发人员可以使用哪些机制来简化错误检测,以免对生产产生负面影响?

摩西:某些软件开发工具使工程师能够在早期开发阶段识别和定位功能性和非功能性错误。涉及导航系统开发的日常项目工作中的一个典型示例是,经常过早或过晚宣布关闭机动的语言指令。这方面的潜在错误来源差异很大,并且通常只能在某些情况下重现。通常,错误的原因不在于单个软件模块本身,而在于模块之间的交互,因为它们的接口经常被错误地使用,例如以错误的顺序、错误的值或错误的时间点。 纠正这种类型的错误是昂贵的,因为通常,

例如,EB solys 是一种用于高度复杂的汽车开发项目的工具,不仅支持单个组件的错误搜索和流程优化,而且支持整个系统结构的更高级别。 这里的重点是收集、聚合和关联正在研究的软件系统的数据和操作状态。通常,只有在不同来源的数据相互关联时才能检测到错误和异常。为了收集数据,将在要监控的系统上安装一个目标代理,Elektrobit 将作为开源软件提供该代理。在这里,对目标系统的监控是被动的。该分析观察正在进行的数据处理和进程间通信,并且不仅基于对检测源代码的访问。

目标代理支持插件架构,以便能够访问目标系统上的特定进程间通信或开发人员跟踪(图 1)。相比之下,数据在运行在 Windows PC 上的主机系统上进行聚合和关联。以与目标代理类似的方式,主机系统的体系结构也被设计为使其自身易于适应,例如,适应特定的数据格式和不同的进程间通信过程。单独调整的导入器可以从所需的任何日志文件向核心系统提供数据,以便将特定数据内容(例如二进制跟踪)转换为结构文本格式。

API

图 1. EB solys 的进程间通信架构。

许多细节功能源于 Elektrobit 的开发实践,从而满足程序员、集成商和系统开发人员的特定需求。例如,可视化数据始终以不同的方式保持相互关联 - 例如,如果用户在图形图像中设置标记,则该标记也会自动采用并显示在所有链接的图表和表格中。根据需要,分析和描述可以在比功能或流程更高的抽象层次上进行,也可以在接口、服务或对象等较低层次上进行。(图2)

API

图 2.不同的抽象级别可以分析 EB solys 中的特定功能、流程和服务。

目前,该代理可用于 Linux、QNX、Android 和 Windows Embedded 目标系统,随后还会有其他系统。

嵌入式计算设计:自动化监控和验证怎么样?鉴于车辆中越来越多的软件,这对于系统分析和错误发现似乎至关重要。

König: 通常,在后期开发阶段,系统分析和错误搜索之后是对关键 KPI 和流程的持续监控和验证。为此,“EB solys Auto”版本支持批处理模式操作,使其功能能够集成到自动化测试环境中。这些还包括记录和可视化 KPI 的方法,例如系统资源的使用、各个部分系统和热点的性能以及组件和流程之间的通信。

通过这种方式,开发人员可以评估系统的健康和稳定性,例如,测试是否满足某些规范和开发标准,监控性能指标并检测趋势,以便及早定义度量。结果,开发过程得到了改进,特别是在分散的开发团队中。项目经理可以及早给他们的团队反馈并确定有针对性的措施,以提高质量和稳定性。

基于为 Java 设计的 Xtend 编程语言的内置脚本语言可实现功能扩展,而无需适应主机系统或目标代理的源代码。可以通过编程接口访问脚本和收集的数据并生成新的操作元素。此外,脚本 API 还提供了在 Auto 版本中记录和存储 KPI 的方法。为了在更长的时间内显示 KPI,EB solys 使用了 InfluxDB(作为指标数据库)和 Grafana(作为仪表板)的技术配对接口。

作为主要针对汽车行业的开发工具,EB solys 还支持日志数据与地理数据的关联。例如,这允许它结合地图显示显示系统事件,如果需要,还可以记录摄像机图像。

尽管它明显植根于汽车市场,但开放式架构通常也允许它适应其他市场或开发环境。

作者:Torsten Mosis ,Sebastian König

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分