不管我们喜不喜欢,我们都会做出假设,这些假设构成了我们如何思考和设计嵌入式系统的基础。在许多情况下,我们所做的假设是微不足道的,并且会对我们设计的系统或我们工作的公司产生轻微影响。但有时,我们做出的假设可能很危险,会影响我们的产品甚至我们的公司是否会成功。让我们来看看我经常看到嵌入式系统行业的嵌入式开发团队做出的四个危险假设。
假设 1 – 硬件完美运行
软件工程师怀疑他们开始软件开发的原型硬件并不罕见。我们都知道,硬件就像软件一样,会经历多次迭代,直到它按照设计工程师的预期工作。但是,一旦硬件进行了可靠的修订,我们通常会假设硬件不会有任何问题,这是一个危险的假设!即使是设计完美的硬件也可能会遇到闩锁、单事件干扰和其他潜在问题。在受控条件下的几十个原型的开发过程中看到这些问题的可能性很小,但是一旦开始在世界各地在各种环境中部署数千甚至数十万台设备,系统将经历的变化要大得多这些问题,然后问题归结为系统和软件是否旨在恢复或处理此类事件。
假设 2 – 没有人对入侵我的设备感兴趣
很多大大小小的公司,他们对安全的思考过程是这样的:
– 谁会对入侵我们的设备感兴趣?
– 谁会想要破解我们的设备?
– 我们真的需要花时间在安全上吗?
– 安全性可能既耗时又昂贵!
– 让我们通过混淆来尝试安全性,希望这就足够了。
事实是,无论嵌入式开发团队可能觉得他们的设备多么微不足道,都会有人对该设备并将其用于自己的目的感兴趣。
假设3 – 开源软件将降低项目成本
你无法击败免费软件的价格。使用开源软件的危险,特别是当我们考虑设计在微控制器上运行的软件时,开发人员认为该软件已经:
• 测试
• 安全
• 符合他们的目的
• 已与他们正在使用的其他软件集成
• 无缺陷
• 遵循行业最佳实践
希望开发人员仔细考虑何时适合使用开源软件,考虑实际节省与实际成本。许多开发人员忽略了以下成本:
• 一体化
• 技术支援
• 调试
• 质量改进
这些假设是危险的,因为它们会显着影响项目时间和成本!
假设 4 – 我们没有时间……
测试、训练、指标跟踪,几乎每个嵌入式开发团队都没有足够的时间做某事,他们找借口说我们没有时间全面测试我们的产品,那时,质量不能成为优先事项,没有足够的时间来训练和学习新技术,利用新技术减少开发时间和成本绝不能成为优先事项。我已经确信,如果我们没有足够的时间来开发我们的产品,那么我们必须把精力集中在错误的事情上。整个开发周期中的测试不应该减少调试时间吗?学习新技术不应该减少做事情的时间,从而给我们更多的时间吗?
结论
我们在本文中看到的每个假设都有可能是危险的,这种危险可能就像嵌入式开发人员在调试软件时通过让公司破产而经历的思考过程一样简单,仔细考虑这些假设和未列出的假设,并确定你所做的假设是否会影响你正在从事的项目的成功甚至公司的成功。