![在现代嵌入式系统中集成遗留代码的最佳实践](https://www.qt.io/hubfs/Qt_Concept_visual_Cross-Platform_web%202.jpg)
研究显示,2024 年,选择定制软件还是标准化解决方案仍然是一项重大挑战。Qt Group委托Forrester Consulting进行的一项研究发现,即使平台已经到位,嵌入式软件领域的开发仍有很大一部分是定制化的,这凸显了平台工程中固有的复杂性和权衡。
这些挑战在具有多样化用例或车队的行业中尤为突出,例如工业车辆。在这里,一级供应商通常负责生产就绪的软件,这使得原始设备制造商(OEM)不得不做出一个关键决策:保留多少控制权,尤其是在用户体验、功能和品牌标识对其产品和未来成功至关重要的情况下。
以下是对哪种方式更有效、哪种方式不适合以及如何为您的项目做出最佳选择的简要分析。
当独特性至关重要时:独特的用户体验或品牌定义功能需要定制的解决方案才能脱颖而出。 当复杂的硬件有特殊需求:当标准化平台无法满足对特定工具或功能的需求时,定制化方案是理想的选择。 当一次性设计足够时:对于不需要可扩展性的特定需求,定制解决方案可以快速高效地应对挑战。 当遗留系统限制更新时:过去建立的系统环境难以轻松升级,但由于潜在风险,公司无法轻易放弃它们。
然而,当定制开发应用于重复性任务或具有相似需求的一系列产品时,就会变得问题重重。为每个项目从头开始不仅会导致效率低下,还会增加责任和成本,延迟上市时间,并经常导致预算超支。
简化开发:可复用组件加快开发进度,并减少重复工作量。
成本效益:利用共享框架优化资源,并确保可扩展性。
面向未来:平台支持持续改进,并简化更新,确保产品保持竞争力。
然而,平台方法并非没有缺陷。过度强调平台全面性或试图解决每一个边缘案例可能会阻碍进展,使遗留系统无法触及,并让团队承受不必要的复杂性。 然而,平台方式并非没有缺陷。过度强调平台准备度或试图解决所有边缘情况可能会阻碍进展,使遗留系统无法得到改进,并使团队陷入不必要的复杂性中。
遗留系统是一个重大障碍,尤其是在尤其是在工具分散且硬件定制化程度高的行业。解决方案是什么呢?混合策略:
渐进式现代化:渐进式迁移(例如Qt支持的方式)允许在单个HMI中集成新旧组件,实现设计、用例和功能的逐步推进,而不会给用户带来过多负担。
统一组件:构建可兼容各种输入的内部设计框架,简化未来的升级并确保兼容性。
在不了解当前系统和没有明确目标或目标状态的情况下就投入现代化,往往会导致代价高昂的失误。不一致的优先级或不切实际的期望可能会破坏进展,尤其是如果决策者没有尽早让开发人员参与进来,以帮助确定当前状态和目标状态之间的正确开发顺序和优先级。 在没有理解当前系统且不明确目标状态的情况下就盲目进行现代化改造,通常会导致代价高昂的错误。优先级不一致或不切实际的期望可能会阻碍进展,尤其是在决策者没有尽早让开发者参与以帮助确定适当的开发顺序和优先级的情况下。
✓ 评估产品多样性
对于具有过多独特需求的产品,优先考虑定制解决方案。
如果产品线之间存在相似性,标准化平台可能更高效,通过配置即可满足最终需求。
✓ 评估长期目标
如果目标是构建产品线或实现垂直领域的规模化和可复用性,应选择平台化方法。
如果是一次性项目或概念验证(PoC),定制解决方案可以专注于满足当前需求和验证,从而节省时间和资源。
✓ 计算适配度
如果某个平台能够满足约90%的需求,可以选择采用该平台,并通过定制或配置来满足剩余10%的需求。
如果适配度仅为60%或更低,则定制的工作量和限制可能会抵消标准化带来的好处,甚至可导致成本增加或开发周期延长。
✓ 优先考虑高影响领域
首先专注于现代化关键组件,例如复杂、跨领域使用且可能变化的项目或元素。此外,不仅要考虑数字HMI,还要考虑集成和功能,例如标准化传感器输入或触觉控制(按钮、开关、滚轮),它们可能不同,但最终驱动相同的元素或功能。
平台工程中应避免的陷阱
平台策略中的失误通常源于对成熟度的误判。过度承诺平台全面性可能导致延迟、过度定制以及错失高效标准化的机会。为避免这些问题:
强调可重用性:平台应能覆盖大部分甚至完整产品线。专注于实现模块化定制,同时不妨碍特定产品线的可扩展性和独特需求。
保持现实期望:平台并非万能解决方案;它需要深思熟虑的实施和迭代才能成功。促进协作:确保领导层、开发团队和业务部门之间的协作,以有效应对系统碎片化问题问题。
给工业车辆公司的实用建议
工业车辆企业必须在依赖一级供应商提供生产就绪软件的同时,保持对用户体验、功能和品牌标识的掌控。
以下是我的三点建议:
关注差异化:投资创新关键领域。为常规功能(如仪表)构建可复用组件,同时通过独特的增值能力实现差异化。
采用可扩展框架:选择支持多种硬件类型并在必要时允许定制开发的平台。Qt的平台独立性和灵活的构建模块是构建平台的绝佳起点,确保跨设备的兼容性和根据业务需求构建的灵活性。
主动解决遗留系统问题:首先现代化改造高影响领域,创建可扩展的基础,并在必要时整合或重建系统。平台是公司的一部分,永远不应被视为固定或终局的方案。
总之,在设计平台时,不要过度强调开箱即用的全面性和涵盖每个独特的业务需求。虽然标准化必不可少,但平台在满足独特需求和未来需求方面的可定制性和可扩展性同样具有重要价值。通过在灵活性与可复用、可扩展的组件之间取得平衡,公司可以加速创新、创造价值,并满足多样化的客户需求,而不受制于僵化的框架或过度定制化的解决方案。
如果希望进一步探讨这些理念,并从各行业高管的经验中获得洞见,不妨阅读Qt Group委托Forrester Consulting开展的研究报告——《促进高质量嵌入式软件开发》。 该研究揭示了平台工程在嵌入式软件领域的巨大优势、成熟度和挑战。它是您未来工作的灵感和动力源泉。
了解更多有关Qt在工业车辆领域的领用。
.Download the latest release here: www.qt.io/download.
Qt 6 was created to be the productivity platform for the future, with next-gen 2D & 3D UX and limitless scalability.
Find webinars, use cases, tutorials, videos & more at resources.qt.io
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Näytä tämä julkaisu Instagramissa.Henkilön Qt (@theqtcompany) jakama julkaisu