开源与嵌入式软件设计:需要被管理的复用

分享到:

 近十年来,开源软件已经主宰了嵌入式系统。网景公司的联合创始人,同时也是LinkedIn主要投资人的Marc Andressen,最近发表了一篇“软件正在鲸吞世界”的文章。当今嵌入式软件的适用场合比任何其他种类软件加起来还要广。嵌入式软件是交通、安全、医疗、食品、农业、国防和娱乐等应用系统的核心,事实上这些行业的每个领域都以各种方式深入到我们日常生活中。

嵌入式软件设计的复杂度在以指数级的速度增加。在一定程度上,它反映并且遵循了集成式设备中,门电路的复杂度在过去的40年里每18个月增加一倍的 规律。代码复杂度的增加和互不分割的全球化市场变革有所重叠。对于缺货产品的需求成倍增长,产品的功能增多,开发成本降低,这些都导致采购需求、合作和代 码复用的增加。开源软件作为代码复用的最终表现,已经成了当今嵌入式市场竞争的主要推动因素。

从1983年首个GNU,到2011侵入到整个IT系统,开源已经渗透到了软件开发的每个层面。开源软件已经成为40%嵌入式项目的选择(下载报告 全文:选择研究:嵌入式工程调查,来自VDC Research),因为它能提供的优势包括:快速面市、低开发成本、更好的安全性、反复经过检验的质量、多样性、令授权成本、诸多知名供应商提供的多个 选择等等。

开源征服嵌入式设备

开源软件在嵌入式应用的典型例子包括Android(嵌入式Linux和其他开源实时操作系统RTOS),用于手机和PDA的Qt用户界面,冰箱和 工业控制系统,大约十万种其他项目,涵盖从通信软件栈,网络浏览、用户界面、远程管理、嵌入式数据库、音频和视频编解码,甚至虚拟机(例如Java虚拟 机)。40%用于嵌入式环境的实时操作系统(RTOS)都是开源的,除了Android外还包括重量级的厂商如MontaVista,QNX和 Mentor。

应该管理开源应用

开源软件的优势只有在其实际应用得到管理的时候才能体现。开源软件从来都有明确的条款,有相应的授权、版权、安全隐患说明和出口管制分类。如果不了 解或者不遵守这些条款,就有可能导致产品质量问题。消费产品等嵌入式设备大量售出,任何质量问题或损害授权条款的问题都有可能造成严重的经济损失。

项目层面,或者组织层面的政策通常限定了条款的可接受度。虽然有人觉得很难承认,但今天占有丰富资源的开发者都不会从最基础的部分开始写代码,因为 他们知道哪儿能获得所需代码,自己只要靠创造力优化代码就可以了。指望开发者在软件开发时间紧张的情况下了解并管理代码条例不太合理也不现实,因此相关组 织就越来越多地允许管理下的开源软件在项目中的使用,缩短开发间隔,降低开发成本。

曾经有专门针对100多个覆盖跨国大组织到50人以下的小技术公司进行的调查,发现了嵌入式领域应用并管理开源软件的最好的做法。在产品推出市场之 前建立授权政策、采用软件包预批核流程、对现有的软件目录创建基本准则、实时而且定期规范软件分析等,都是嵌入式领域采取的做法。

开源软件开始主导嵌入式设备市场,其对于嵌入式系统公司的开发者和管理层,以及对嵌入式解决方案最终用户都能带来广泛的优势。这些优势包括更低的开 发成本、更低的市场产品成本、更短的面市时间、更快的产品进化速度、反复经过检验的高质量方案、方案的多样性以及确保长期产品可用,同时降低了供需变化不 确定性的资源。每一项采用开源软件带来的优势对于资源丰富的开发者来说都极具吸引力,他们可以集中注意力于在现有代码,在此基础上加上自己的创造力,实现 更快的创新周期。立即可用的开源代码也有短处,例如用来了解整个嵌入式项目的开源内容的代码记录和整理会有滞后、需要保持新版本的更新进度、存在潜在的授 权和版权条款问题以及要考虑安全可行性和修补并减轻这些问题。

架构完善的开源软件使用流程(OSSAP)让组织能够使用可控制和可管理的模式发挥开源软件的优势。OSSAP所包含的步骤包括建立政策、软件包的 预批核、建立现有代码和来自商业供应商和外包团体的代码扫描的基本准则。定期扫描项目代码合集,进入项目库或在开发者进行开发的时候实时发现并管理软件, 确保任何时候项目中的开源软件内容都可以被知晓或了解,而构建时间的扫描确保了最终推向市场的产品满足采取的开源政策。

 

 
 
 
继续阅读
嵌入式软件的基本测试方法

设计和开发工作需要设立里程碑。每个里程碑结束前都需要进行评审工作。由于嵌入式软件的运行环境不同,受到很大的限制,所以在进行开发之前需要进行编程规范工作,编码的时候需要严格按照编码要求进行工作,每一个条款都需要认真执行和审查。

嵌入式软件运行剖面建模及测试用例生成

对航天软件来说,是否满足任务要求是软件的重点,因此,从用户的角度对软件运行剖面进行数学建模,对系统是怎样的以及它会怎样被使用做出一个定量描述,根据这些量值可以对软件中至关重要的、生命攸关的、关系到系统成败的部分给与充分的测试。

使用基于模型的实时测试软件开发智能设备

随着基于软件的设备变得更加普遍和复杂,嵌入式工程师越来越面临着简化设备的设计和测试过程,实现设备缺陷可追溯性的巨大挑战。

谭军:互联产品的嵌入式软件发展 (1)

最后的主题演讲人是谭军博士,他发言的题目为《互联产品的嵌入式软件发展》。谭军从热点应用——互联网设备的软件需要分析出发,指出WEB2.0软件将为移动互联产品带来全新和一致的用户体验。

魏永明:回顾MiniGUI,展望应用软件平台

20世纪90年代末从事嵌入式软件开发的人,一定都还记得MiniGUI软件,当时除了WinCE外,商业嵌入式图形软件不多。魏永明的发言《回顾MiniGUI发展,展望嵌入式应用软件平台》让与会者重温了这款国产嵌入式软件发展的历程。