嵌入式软件的8大支柱
扫描二维码
随时随地手机看文章
成功开发和推出嵌入式系统需要各种工程学科的广泛技能。每个嵌入式系统开发团队都需要八个不同的软件开发领域的知识。开发人员对嵌入式软件这八个支柱的掌握程度将直接影响开发成本、代码可扩展性和系统稳健性等关键开发指标。
让我们来看看每个支柱及其在嵌入式软件开发中的作用。
支柱 #1 –架构
软件架构是应用程序的蓝图。经过深思熟虑的蓝图可以让开发人员对主要软件组件、它们之间如何交互以及它们的环境有重要的了解。该架构应该提供可扩展性,并使团队成员了解正在构建的系统。
缺乏软件架构就像建造一座建筑物,但事先不知道它有多高、有多少层,甚至不知道建筑物将占用的总体面积。正如人们所想象的那样,建造这样一座建筑在开始之前就注定会失败。现在已经进入二十一世纪的第二个十年了,我仍然遇到太多的团队不了解软件架构基础知识,甚至不使用它们的用途。
支柱 #2 –代码分析
开发嵌入式系统不仅仅是尽快编写代码。许多系统需要健壮,并且必须在用户看来没有错误(即使实际上不存在无错误的系统)。为了在开发中实现这些属性,系统开发人员需要了解现代代码分析技术。静态、动态和最坏情况堆栈分析等技术只是有用技术的几个示例,但只是分析的冰山一角。团队分析代码、发现缺陷和错误以及揭露不合规之处的能力可以帮助确保用户安全并影响公司品牌。
支柱 #3 –调试
当今嵌入式软件团队面临的最大挑战是调试他们的系统。嵌入式系统每年都变得越来越复杂,系统越复杂,调试就越困难、耗时且昂贵。为了最大限度地减少调试,开发人员需要精通实时跟踪等现代调试技术。更少的调试时间意味着有更多的时间来添加创新的产品功能。
支柱 #4 –文档
开发嵌入式系统时,文档是不可避免的祸害。如果没有一些描述正在构建的内容的基本需求定义,就无法构建系统。同样,如果没有详细记录的代码库,开发人员就无法正确维护代码。如果回归测试没有测试有效的产品功能,那么它们就毫无用处。如果团队不具备该领域的专业知识,那么文档的开发成本可能会很高,并且需要花费宝贵的时间,因此掌握文档可以帮助降低项目的总拥有成本。
支柱 #5 –编程语言技能
并非所有编程语言都是平等的。不止一种语言可以完成这项工作,例如 C、C++、Python、Ada 或其他语言,因此如果不深入了解一种语言的优点和缺点,开发人员可能会遇到麻烦。例如,某些 C 编程语言区域具有不明确的定义,使用两个不同的编译器进行编译可能会导致两个不同的结果。同样,某些结构快速且高效,而另一些结构则使代码变得臃肿并减慢速度。如果开发人员不了解这些问题领域,那么糟糕的事情注定会发生。
支柱 #6 –标准
行业标准是开发人员应认真遵循的关键支柱。标准通常包含开发人员的见解和最佳实践,而这些只能通过反复试验来学习。 MISRA、CERT 和 IEC 61508 等行业标准及其行业衍生品充满了优秀的工程实践。开发周期中开发人员重新发明这些轮子的时间太少了。
支柱 #7 –测试
即使通过回归测试来正确测试和验证软件的能力对于开发团队来说也是至关重要的。最近修复错误的更改是否破坏了其他任何内容?系统是否满足要求?通过测试每个代码分支是否都正确执行?测试为开发人员提供了显着的舒适度,即系统在受控条件下按预期运行。
支柱 #8 –工具
专业的嵌入式软件开发人员需要访问并应该知道如何使用他们的行业工具。了解他们的工具和生态系统可以区分强大而完善的系统和不稳定的业余产品。许多团队放弃了行业工具,声称数千美元的投资不在预算之内。然而,针对正确的工作使用正确的工具,可以通过节省劳动力十倍地支付该工具的费用,并对上市时间产生巨大影响。
结论
掌握嵌入式软件的这八个支柱的团队将在坚实的基础上构建他们的软件。我看到的大多数失败的团队至少缺乏这些支柱之一的专业知识。为了确保成功,团队需要在每个 支柱上拥有专业知识,并使用严格的设计方法。