嵌入式开发:高技能工程师如何管理嵌入式系统设计的复杂性

更新时间: 2022-12-08 16:04:29来源: 粤嵌教育浏览量:6635

  嵌入式系统应用的复杂性正在显著增加。大多数电子设备都有嵌入式系统,在嵌入式开发中,即使是最小的错误也会对相关公司的声誉造成毁灭性的影响。此外,测试和调试错误极其复杂、耗时且昂贵。

  相关报告中强调,嵌入式系统复杂性增加的主要驱动因素可以归结为需要标准或法规来满足日益增长的安全和安全问题、自动化程度的提高、连接性的提高以及实现软硬件兼容性。他们认为,紧密的集成通常需要大量的相互依赖,这会使嵌入式系统的开发和维护变得极其复杂。嵌入式系统和应用程序的复杂性要求在嵌入式系统设计生命周期中使用多种工具和技术。

  这通常是在不断要求率先推出新的创新应用、产品和性能的背景下出现的。

  因此,有大量证据表明,公司和嵌入式开发工程师无法应对复杂性的挑战,这导致了几个月的发布延迟、代价高昂的召回、巨额预算超支、客户不满,甚至安全问题。

  嵌入式系统日益复杂的一个主要例子可以在现代汽车的软件和电子架构中看到。一辆典型的汽车有大约100个控制单元,数千个软件组件,以及子系统之间交换的数万个信号。所有这些都需要设计、开发、集成、测试和验证,以便单独工作以及相互协作。在过去的十年中,汽车行业中的单个软件项目的平均复杂性增长了300%。

  嵌入式系统中的复杂性从电子硬件提供的特征和功能的数量、嵌入式软件中的功能实现以及通过通信网络互连以实现一组功能的多个处理单元之间的交互中延伸出来。

  然而,人们通常认为复杂性是一种过度规范,这是基于一种错误的信念,即需要满足所有当前和潜在的需求,或者嵌入式系统需要反映所有环境的复杂性和安全性。虽然这可能是真的,但是嵌入式系统和应用的复杂本质要求在嵌入式系统设计生命周期中采用多种多样的工具和技术。或者至少有一个现代思维的嵌入式开发工程团队愿意对旧的和过时的工程实践做出改变。

  一些公司已经精通通过先进的工程工作技术来管理复杂性,例如:

  1.引入模型驱动的工程方法,改进嵌入式系统的验证和测试,从而减少开发嵌入式系统所需的时间、成本和工作量。开发人员和程序员可以专注于创造性和智力问题,因为他们不必执行重复的任务,如脚本编写或手动测试执行。

  2.采用敏捷方法有助于消除嵌入式系统开发中的复杂性,使相关团队了解所需的开发和修改。这确保了跨团队的并行开发,并提高了相关开发人员、测试人员和客户的效率。嵌入式系统开发中采用的敏捷方法(如持续集成)有助于工程师在不牺牲质量的情况下以闪电般的速度前进。

  3.或者使用集成开发环境,该环境可以显著提高生产率并减少嵌入式系统中的错误。IDE是一个可以编写代码、调试代码并将其转换为最终产品(如web应用程序)的程序。通过使用DevOps原则和工具,团队能够以敏捷开发周期的速度扩展他们的嵌入式开发。

  将DevOps与嵌入式系统相结合不再是问题。它广泛用于基于云的基础设施、软件即服务和企业领域产品。

  鉴于当今的相互依赖性,不仅需要测试硬件的变体,还需要测试嵌入式网络中硬件网络或组件的版本兼容性。使用协同设计方法来管理决策和执行之间的权衡,确保所需的功能满足要求需要一种集成的法规遵从性方法。新的嵌入式DevOps解决方案现在提供一种闭环方法,涵盖典型DevOps生命周期的连续规划、开发、集成、测试、监控和反馈阶段。

  HCL等公司也在开发DevOps环境中的框架,以定义与嵌入式软件和系统工程过程开发相辅相成的实践和工具。其Rapid Hadron 框架消除了硬件、网络和工具配置的复杂性,并通过自动化、低代码协调、连续集成、连续部署(CI-CD)和基础设施管道加快开发。

  然而,开发运维要取得成功,需要特定的专业知识,而这些专业知识在内部嵌入式开发团队成员中可能无法立即获得。快速发展会导致安全出口,安全在每一步都很重要。DevOps是一项组织变革,需要改变战略思维,这可能很耗时。

  其他软件开发方法,如精益或特性驱动开发,可以通过消除浪费来提高质量,从而降低复杂性。

  最重要的是,团队中缺乏足够有经验的人才和领域专业知识经常是不能有效管理复杂性的原因。因此,在团队中拥有专门针对架构和工具链开发的专家是至关重要的,因为他们可以利用自己的经验来确定如何解决权衡决策。由于全球缺乏高技能嵌入式开发工程师,管理嵌入式系统的复杂性仍将是一个问题。利用专家来找到这些专家将是关键。

免费预约试听课