|  首页  |  资讯  |  评测  |  活动  |  学院  |  访谈  |  专题  |  杂志  |  产服  |  
您现在的位置:硅谷网> 学院> 论文>

基于组件的嵌入式软件开发方法研究

2013-02-19 13:51 作者:郑久寿 夏德天 何小 来源:硅谷网-《硅谷》杂志 HV: 编辑: 【搜索试试
  据《硅谷》杂志2012年第22期刊文称,为提高嵌入式系统软件的通用性和重用性,缩短同类软件的开发周期,从嵌入式系统的特点出发,提出一种基于可重用组件的嵌入式软件开发方法。首先介绍组件的基本概念,然后着重阐述嵌入式系统组件划分方法及设计具体组件接口的一般原则。最后通过对比传统嵌入式系统和基于组件的嵌入式系统软件开发方法的异同,提炼出基于组件的嵌入式软件开发方法的特点。具体项目实践证明该方法的可行性,具有良好的应用前景。
  关键词:嵌入式系统;软件重用;组件;接口设计
  0引言
  目前嵌入式电子产品发展日新月异,更新换代很快,软件代码量和复杂度随着功能的复杂性呈几何级的增加。在这种情况下,传统的基于先前基础代码进行二次开发变的愈发困难。倘若原来程序员离去,其他人员或新手修改源程序则变的愈加困难和不可控。另外由于绝大多数程序内部结构之间相互耦合,即使只对源代码的很小一部分进行修改,为了保证产品的质量,也应该对整个产品的源代码进行回归测试。在这种开发模式下,程序的可重用性低,整个产品的软件开发和测试周期长,软件成本高。因此寻求一种新的可重用可扩展的软件开发方法是解决这些问题的根本途径。
  针对这些问题,本文从嵌入式软件开发的特点和需求出发,提出了一种新的基于可重用组件的软件开发方法,并在实践中取得了较好的效果。
  1组件概述
  软件组件(Component)的概念共生于软件重用。早在1968年,在北大西洋公约组织(NATO)会议上就提出了软件重用的概念,后来还为此制定了一整套软件重用的指导性标准,其中包含了利用标准组件实现软件重用的基本思路。也是在这次会议上,Mcllroy提出了软件组件、组件工厂等概念[1]。
  基于组件的软件重用是产品重用的主要形式,软件组件技术是当前重用研究的焦点。组件技术的基本思想在于,创建和利用可重用的软件组件来解决应用软件的开发问题。与面向对象编程语言不同,组件技术是一种更高层次的对象技术。它独立于语言,只面向应用程序,只规定组件的外在表现,而不关心其实现方法。
  目前关于组件还没有一个统一的定义,以下是关于组件的一些有代表性的观点[2]:
  1)组件是一个独立的可传递的操作的集合;
  2)组件是由对象类组合起来的物理意义上的包;
  3)组件是软件开发过程中一个可替换的软件单元,它封装了设计决策,并作为一个大单元的一部分和其他组件组合起来;
  4)组件是具有特定功能,能够跨越进程的边界实现网络、语言、应用程序、开发工具和操作系统的“即插即用”的独立对象;
  5)组件是指应用系统中可以明确辨识的构成成分。而可重用组件是指具有相对独立的功能和可重用价值的组件。
  关于组件的定义可以从狭义和广义两方面来理解。从狭义上来说,软件组件是指软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、且多由第三方提供的可组装的软件实体。它既包括以EJB,COM/DCOM,ActiveX,WebServices等形式存在的可运行二进制程序,也包括经过封装的源代码程序。从广义上来说,随着对软件重用理解的不断深入,软件组件概念的外延在不断扩展,从组件实体到规格需求、系统架构、设计文档、测试用例等各种具有重用价值的软件资源都是组件的组成部分。
  2嵌入式系统组件架构
  根据IEEE的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”,从中可以看出嵌入式系统是软件和硬件的综合体。另外由于嵌入式系统涉及的领域很广,各个不同领域的应用往往差别很大。因此不同领域应该针对本领域特定应用来开发组件,应用组件构建自己的应用系统。开发出来的组件可以在本领域的不同型号产品间广泛重用。本文选取温度控制器作为应用对象来进行说明基于组件的嵌入式软件开发方法。所谓的温度控制器简单来说就是在暖通系统中通过控制压缩机的开关来达到精确控制温度的装置。具体来说,温度控制器定期测量环境温度,通过其温度算法将环境温度和该时间段的设定温度进行对比决定何时应开启或关闭压缩机使环境温度能迅速而平缓的达到设定温度而又不会产生温度的过冲,始终给用户舒适的感受。用户在任何时候也可对实时时钟和各个不同的时间段的温度设置点进行编辑或设定,并使其应用到温度算法中。另外点式或段式显示屏可以给用户显示环境温度、设定温度、时钟信息、电源状态等信息。
  组件是软件系统中具有相对独立功能的软件实体,合理的划分组件,有利于组件的复用和实现,以及系统的配置管理。组件粒度越大,其复用程度就越高,但实现和理解组件就相对困难,重用难度加大;粒度越小,组件越易于复用,但管理组件等代价将增大,甚至大于复用带来的好处。划分组件时应从功能模块的完整性、高内聚和低耦合性等方面出发。依据重用原则、闭包原则、单人组件原则、消息传递原则[3],将通用温控器组件划分如图1所示(虚线框内为可重用组件)。
  
  
  图1组件架构
  3嵌入式组件接口设计
  组件划分后需要进行接口设计,它是组件设计的重要部分。一个组件接口是一组逻辑上相互关联的操作,这些操作定义了某类公共行为。接口是一组操作的规范,而非任何特定的实现。接口和具体实现的分离,使其具有较高的抽象性,提高了系统的复用能力,有利于系统的维护和扩充。接口设计要兼顾简单和实用性。组件的内部细节不应反映到接口中。接口与内部实现细节的隔离程度越高,组件发生变化对接口的影响就越小。原则上组件的接口应该是不变的,一旦被发表,它们就不能被修改。也就是说,一旦组件使用者通过某接口获得某项服务,则总可以从这个接口获得此项服务。因此,组件封装后,只能通过已定义的接口来提供合理的、一致的服务。这种接口定义的稳定性使客户应用开发者能构造出坚固的应用。当一个组件需要提供新的服务,可通过增加新的接口来完成,不会影响原接口已存在的用户。
  嵌入式组件接口设计应在遵循上述原则的基础上同时考虑嵌入式系统自身的特点:软件与硬件的结合。对于需要硬件提供支持的组件,应分析底层硬件对组件的作用并进行抽象和提炼,通过设计通用且与硬件环境无关的接口将组件与具体硬件平台隔离。此外,在设计组件的过程中还应认真分析哪些组件功能的实现需要用户的设置或调用,哪些功能可以提供给用户使用,然后按照简单实用的原则去设计相应的接口。以温度控制器的实时时钟组件为例加以说明。实时时钟组件的主要功能是提供实时更新的时间信息供其它组件或应用系统使用,其组件接口设计如图2所示。
  
  
  图2实时时钟组件接口设计
  对实时时钟组件接口图进行简单说明:首先为了维持实时时钟时间的准确性以及确保组件内部相应标志的及时更新,组件需要外部提供一个秒驱动。至于该驱动是来自秒中断还是来自某个每秒钟运行一次的线程等等,组件设计时并不关心,只提供一个RTC_tick接口供外部调用。各个不同应用根据各自应用的具体情况,只需确保在合适的地方每秒钟调用RTC_tick接口一次即可。通过这种方式有效隔离了组件与具体硬件平台的关联。另外由于需要在正常运行组件之前对组件的初始时间及供组件使用的标志等置正确的初始值,用户需在使用组件功能之前调用接口函数RTC_init。完成以上两个接口函数的正确使用后,用户就可以很方便的通过接口RTC_proc实现相应的功能。其中RTC_proc接口函数有两个参数。第一个参数为枚举型变量,列举了接口提供的功能,包括获取时间、设置时间、获取星期信息等,第二个参数是一个实时时间类型的结构体,当需要设置或者获取信息时均可通过该参数实现。
  所有接口函数的定义及使用方法均应在组件接口设计文档中详细描述。
  4基于组件的嵌入式软件开发流程
  4.1传统的嵌入式软件开发流程
  传统的嵌入式软件一般采取瀑布模型进行开发,其基本流程如图3。在这种模式下,每个应用系统的开发总是从头开始,开发过程涉及大量的重复劳动,包括用户需求获取的重复、需求分析设计的重复、编码实现的重复、测试及文档工作的重复。
  
  
  图3传统嵌入式软件开发流程
  4.2基于组件的嵌入式软件开发流程
  基于组件的嵌入式软件开发是把传统的软件编码工作转换为以组件为基础的系统集成组装。应用系统的开发不再采用一切“从零开始”的模式,充分利用过去应用开发中积累的知识和经验,只需重点关注每个应用的特殊性,其一般开发过程可描述如图4。对于特定领域的嵌入式系统,通过分析该领域内不同应用系统,抽取出其领域共性,并以此为基础开发出功能相对独立的组件构成组件仓库。当需要开发新的应用系统时,只需从组件仓库中提取出满足其功能需求的相应组件进行组装。对于现有组件仓库未覆盖的功能,应深入分析这些功能是否可能成为新的通用功能。如果是则应该按照组件的完整开发流程将这些功能开发成新的组件并丰富现有组件仓库。反之如果新的功能只是为特定应用系统所特有,不具备通用性,则只需针对该应用系统来开发这些功能。
  
  
  
  
  
  
  
  图4基于组件的嵌入式软件开发流程
  5结论
  本文介绍的基于组件的嵌入式软件开发方法已成功应用于某新型温度控制器的项目开发过程中,取得了很好的效果。虽然在开发各个功能组件阶段花费的时间、精力要多一些,但这些组件在后期的项目中得到重用,大大提高了项目开发效率,大幅度降低了开发成本,并使整个项目的质量得到了更好的保证。并且当项目需求发生变动,只需对相应的组件进行升级,而不会影响系统的其他部分。另外,基于该方法可以很好的实现项目的并行开发。因此基于组件的嵌入式软件开发方法为嵌入式软件开发提供了一种很好的思路,具有光明的应用前景。
  作者简介:
  郑久寿(1983-),男,安徽安庆人,硕士研究生,助理工程师,主要从事计算机容错技术及软件工程方向的研究;夏德天(1980-),男,安徽芜湖人,大学本科,工程师,主要从事计算机容错技术方向研究;何小亚(1986-),男,湖南衡阳人,硕士研究生,助理工程师,主要从事计算机航空总线测控方向研究。
  
【对“基于组件的嵌入式软件开发方法研究”发布评论】

版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
广告
相关
·基于视频会议终端QoS(服务质量)技术方案探析
·基于学习兴趣培养的《C语言程序设计》教学研究
·基于“面向服务架构”SOA的PLM系统浅析
·基于LPC1114的加窗差值FFT算法的谐波检测设计
·基于SDM模型的250T转炉钢包底吹模型开发
·《硅谷》杂志:基于制品挤压方法的研究
·基于C/S模式的学生学籍信息管理系统的设计与实现
·基于机构运动精度的平稳性车辆轮轴探伤研究
头条
硅谷网解密:4G网络中的微波传输解决方案 硅谷网解密:4G网络中的微波传输解决方案
在2013年12月4日,工信部向中国移动、中国联通、中国电信颁发TD-LTE(4G)经营许可之后……
·硅谷网解密:4G网络中的微波传输解决方案
·创意产业的批量化规律 工业造型方法论之加减
·《硅谷》杂志:浅谈电信运营商开展IPTV业务
·《硅谷》杂志:新型桌面搜索关键技术的研究与
·硅谷杂志:基于时间技术的搜索引擎排名算法
图文
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
最新
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·利用重力势能做功发电介绍和势能输出系统介绍
·李磊:新时代下电网调度自动化技术的发展分析
·提升企业竞争力以及企业人力资源管理优化思考
·《硅谷》杂志:采油分层测静压工艺技术浅究
热点
·判断连续时间系统的线性非时变性和因果性
·3DMAX+Vary室内漫游动画制作的技法浅析
·长期使人困惑的问题:TCP连接中断的实时检测
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·关于汽轮机油系统失火原因分析及防范措施的一
旧闻
·徐海:智能变坡水槽控制系统的设计与实现
·探讨气体检测中如何应用数字信号处理技术
·硅谷杂志:关于网络安全解决方案的探讨
·硅谷杂志:云计算在飞行试验数据处理中的探索
·博物馆数字化展示应用研究
广告
硅谷影像
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介绍
公关负责人离职背后:危机公关案例分析
公关负责人离职背后:危机公关案例分析
硅谷网解密:4G网络中的微波传输解决方案
硅谷网解密:4G网络中的微波传输解决方案
使用Autoit脚本在虚拟内存盘设置考试模拟系统
使用Autoit脚本在虚拟内存盘设置考试模拟系统
探秘开滦集团设备租赁管理系统的设计和实现
探秘开滦集团设备租赁管理系统的设计和实现
关于我们·About | 联系我们·contact | 加入我们·Join | 关注我们·Invest | Site Map | Tags | RSS Map
电脑版·PC版 移动版·MD版 网站热线:(+86)010-57255600
Copyright © 2007-2020 硅谷网. 版权所有. All Rights Reserved. <京ICP备12003855号-2>