1、一种适用于智能家电嵌入式软件的框架构件模型 67486本文由 mrchrsh贡献pdf文档可能在 WAP端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。第 35 卷 第 5 期 2006 年 10 月电 子 科 技 大 学 学 报 Journal of University of Electronic Science and Technology of ChinaVol.35 No.5 Oct. 2006一种适用于智能家电嵌入式软件的框架构件模型施俞行 ,高 峰,罗克露,梁军峰(电子科技大学计算机科学与工程学院 成都 610054)【摘要】通过对家电控制器常用 MCU体系结构、
2、程序设计语言、常用家电控制程序设计代码以及外设驱动源码的研究, 制定了一种应用于智能家电嵌入式软件的框架构件规范,实现了划分和设计框架代码片段,以及对框架代码片段封装的方法; 所设计的模型已成功应用于某 863项目中。 关 键 词 智能家电; 框架构件模型; 框架构件; 框架构件描述块 中图分类号 TN919.72 文献标识码 AA Frame Component Model Approach for Embedded Software of Intelligent Household AppliancesSHI Yu-heng,GAO Feng,LUO Ke-lu,LIANG Jun-fen
3、g(School of Computer Science and Engineering, Univ. of Electron. Sci. frame component model; frame component; frame component describing block 在家电控制器嵌入式软件的编码开发过程中,存在两个明显的问题:(1) 软件工程师编写的程序代码中 有大量的可重用片段;(2) 由于软件编写的随意性,某位软件工程师的离职常常导致其编写的程序在技术上 难以继承和管理上难以维护。为了缩短智能家电产品的开发周期,提高产品质量,增强市场竞争能力,降 低软件工程师的工作强度和
4、增强技术的继承性,有必要将众多的可重用的源代码片段进行封装,生成可重 用性高的代码构件,提供给软件工程师使用。 本文基于智能家电软件构件化开发集成平台项目的开发研究,制定了一套适合于智能家电领域的 嵌入式源码构件开发生成规范。家电控制器软件开发人员可以按照该规范向构件管理机构提交软件源代码 形成的源码构件,构件管理机构可以根据规范发布构件的概念信息及实体信息,以方便家电控制器软件开 发人员检索查询构件。此外,软件组装工具可以根据规范组合各源码构件,形成统一的面向特定家电整机 的嵌入式软件。为了实现构件的生成、组装以及管理等功能,制定的规范也要分别对应这些功能来进行指 导。如何生成构件是制定规范
5、的核心,它规范了构件的形式和内容,是实现构件组装和管理的基础。 通过对家电应用程序实例的分析,以及对构件特点的理解1-8,本文将构件主要分为框架构件和代码构 件两大类。框架提供了大粒度的重用技术,将一个系统抽象为相对独立的框架构件,并定义了各个代码构 件间的接口和作用关系,符合软件工程设计模块化、独立化和信息隐藏等特征;代码构件是能够实现一定 功能的代码片断,在头尾加以标识。在框架构件中加入相适应的代码构件,可以组成完整的程序源代码。 以下主要论述框架构件规范的制定。收稿日期:2004 - 10 - 09 基金项目:国家 863计划资助项目(2004AA1Z2400) 作者简介:施俞行(197
6、9 - ),男,硕士,主要从事嵌入式操作系统方面的研究.808电 子 科 技 大 学 学 报第 35 卷11.1框架构件设计模型框架构件模型的提出智能家电控制器所采用的主流 MCU一般使用汇编语言或者 C语言编程,不使用具体的嵌入式操作系统, 因此,不便于采用前述的通用构件模型。本文通过对常用 MCU体系结构、程序设计语言、常用家电功能及 外设驱动源代码的研究,制定构件模型规范,实现了源代码片段的划分和设计,以及源代码片段的封装。 家电控制器软件开发人员可以按照该规范生成框架构件,然后在框架构 程序初始化信息 件中进行代码构件组合,形成面向具体的 MCU型号和应用领域的嵌入式 软件源代码。 功
7、能 1; 生成框架构件划分和设计的源代码片段,基于源代码语句级,不是 功能 2; 一个独立的函数,虽然不能实现独立的功能,但却是一段可重用的代码。 功能扩展点 1:实现功能 1( ) 插入代码构件实现功能 1 功能扩展点 2:实现功能 2( ) 插入代码构件实现功能 2 1.2框架构件的层次模型图 1 框架构件结构图框架构件其实并没有具体的功能代码,只是嵌入式软件的程序结构 的描述,其结构模型如图 1所示。该模型抽象于具体的 MCU型号和解决 方案,适用于整个智能家电行业的嵌入式软件构件化,也可作为企业开 发软件的规范,为软件开发人员提供一个统一的软件开发模型。框架构 件工程师将符合该模型的框
8、架构件上传到构件库,实现对框架构件的检 索、下载和编辑,以及代码重用。1.3 1.3.1框架构件模型设计原则 定义框架构件模型需要考虑的原则有:(1) 表达能力强;(2) 简单性;(3) 一致性和完备性;(4) 实用性; (5)扩展性。1.3.2框架规范中的定义 构件定义为: 框架构件:=代码框架框架构件描述块 代码框架:=代码片断(循环结构|顺序结构|选择结构|中断跳跃|空结构功能扩展点) 框架构件描述块:=框架构件属性描述信息集 代码片段:=写在框架构件中相对固定的程序代码 功能扩展点:=实现根据具体功能定义的插入点 插入点:=BEGIN+复合代码片段|原子代码片段+END 框架构件由代码
9、框架和框架构件描述块组成,框架构件描述块描述框架构件的基本信息,包括名称、 编号、功能等,有利于框架构件的查询,检索以及出入库管理。而代码框架实际上是主程序结构的说明, 主要是主程序结构描述和由 MCU解决方案确定的框架代码片断,以及为可供代码构件进行插入的功能扩展 点。功能扩展点的位置由程序结构决定,用户能够根据自己的需求进行增删。功能扩展点提供的插入点用 保留字 BEGIN和 END定义。与框架构件相关的所有属性信息均存于构件描述块中,是源代码构件存在的唯 一标识。22.1框架构件的生成框架构件的生成过程框架构件工程师通过对源代码素材的分析,生成框架构件。在框架构件的生成过程中,框架构件工
10、程 师必须遵循框架构件规范,如图 2所示。在规范约束的前提下,代码构件的生成按以下步骤进行:(1) 收集 素材,提炼智能家电控制器软件源代码中的可重用语句片段,作为构成框架构件的代码片段;(2) 根据本模 型的要求,完成框架代码片段的封装,成为一个框架构件;(3) 构件提交到构件库进行统一管理。第 5期施俞行 等:一种适用于智能家电嵌入式软件的框架构件模型809规范约 束框架构件 1使用构件生 成工具生成框架构件 2构件库框架构件工程师提 取上传素 材多种类型 的 MCU图 2框架构件生成过程2.2框架构件的封装本文框架构件规范中提供的框架构件描述块是一个三元组,包括构件标识信息、构件上下文环
11、境和构 件附属信息。框架构件的制作者要为框架构件提供系统要求的所有属性描述信息。框架构件描述块各个子 块的内容如下。 1) 构件标识子块 构件标识子块中,标识信息=(构件 ID、构件名、构件类型),其中:(1) 构件 ID由构件管理子系统自动 产生,每个框架构件具有唯一的构件 ID;(2) 框架构件工程师为每个框架构件命名,构件名是由字符、数字 和下划线组成的字符串,且以字符或下划线开始,字符数至少为 6,但不超过 128;(3) 构件类型为一整型变 量,由用户指定,0 为代码构件,1 为框架构件。 2) 构件上下文信息 构件上下文信息包括该框架构件对应的解决方案(框架构件工程师指定框架构件面
12、向的解决方案)、 MCU(框架构件工程师指定框架构件面向的 MCU)、编写构件语言(框架构件工程师指定框架构件面向的语 言,如 C语言或汇编语言等),以及编译器信息(框架构件工程师指定框架构件面向的编译器信息)。此外,构 件上下文信息要描述构件的软、硬件使用环境和实现依赖。 3) 附属信息子块 构件附属信息子块提供与构件库相关的其他性质,这些性质是构件库管理所必须的信息,包括构件的 版本号、制作者、制作日期和修改日期。信息在构件入库和修改的时候由框架构件工程师作相应的录入和 修改。3框架构件的实现模型下面以东芝源代码为例(MCU 型号为 TMP87C846,实现的解决方案为空调控制程序),在框
13、架构件规范 指导下生成框架构件。东芝空调控制程序的基本结构在一个主函数中,另有多个针对不同功能的调用函数, 主程序不断进行轮循,当检测到有外部控制事件发生,调用该函数进行处理,处理完成后,返回主函数, 继续进行轮循。 根据以上框架规范,生成控制程序的框架构件所需要做的工作如下。(1) 书写该框架构件的代码信息,包括主程序结构和初始化时功能扩展点的信息,程序框架代码可写成: MAIN: CALL WDTCR ;定时器 CALL LTEST ;缩时检测,比如一小时变成一分钟 CALL ERROR ;出错处理 J MAIN810电 子 科 技 大 学 学 报第 35 卷;BEGIN: WDTCR:(
14、插入实现定时功能的代码构件) ;END; ;BEGIN: LTEST:(插入实现缩时功能的代码构件) ;END; ;BEGIN: ERROR: (插入实现出错处理的代码构件) ;END; ;BEGIN: ;END; (2) 框架构件描述块信息填写为: 框架构件描述块 = (XXXXXX、东芝_空调_框架构件、1), (空调、东芝TMP87C846、东芝汇编语言、东芝编译器), (该构件版本号为 X,构件作者为 XXXX,入库时间为 XXXX,修改情况) 通过以上步骤,就可在框架规范指导下完成框架构件的生成。4结 束 语与传统的构件规范相比, 本文提出的框架构件规范具有以下特点: 该规范基于家电
15、控制器常用 MCU (1) 体系结构、程序设计语言、常用家电功能及外设驱动源码研究,设计面向智能家电嵌入式软件构件化,针 对性强;(2) 该规范已经应用于某研究开发课题之中,具有可实现性;(3) 该规范抽象于具体应用领域和程 序设计语言,适用于智能家电嵌入式软件构件开发,具有很强的适用性和可扩展性。 参1 费玉奎, 2 江 峰, 3 古幼鹏, 1499. 4 胡文蕙, 5 马 亮, 6 肖 忠. 7 徐拥军. 8 谷今杰,考文献王志坚. 构件技术发展综述J . 河海大学学报(自然科学版), 2004, 32(6): 696-699. 陈文智, 吴朝晖. Liquid-构件化嵌入式操作系统J.
16、计算机工程, 2005, 31(4): 77-87. 熊光泽, 桑 楠. 基于构件的嵌入式软件仿真开发环境模型研究J. 系统工程与电子技术, 2004, 26(10): 1495 赵 文, 张世琨, 等. 基于构件技术的应用框架元模型的研究J. 软件学报, 2004, 15(1):1-8. 孙艳春. 软件构件概念的变迁J. 计算机科学, 2002, 29(4): 28-30. 构件软件工程研究D. 成都: 四川大学, 2005. 基于构件的软件开发方法及其支撑平台J. 软件工程与标准化, 2005, 3: 37-42. 莫继红. 基于构建的软件复用技术研究J. 科学技术与工程, 2005, 5
17、(12): 824-827.编 辑 熊思亮 (上接第 803页) 参 考 文 献1 Kam M, Zhu Q, Gray W W. Optimal data fusion of correlated local decisions in multiple sensor detection systemsJ. IEEE Trans. AES., 1988, 18(5): 916-920. 2 Nilsson N J. Artificial intelligence: A new synthesisM. 北京: 机械工业出版社, 1999. 3 罗光春, 卢显良, 张 骏, 等. 一种基于多传感器
18、数据融合的入侵检测机制J. 电子科技大学学报(自然版), 2004, 33(4): 71-74. 4 罗光春, 卢显良. IDS 决策过程中的时空一致性研究J. 计算机科学, 2005, 32(6): 121-123,139. 5 Bass T. Intrusion detection systems and multisensor data fusion: creating cyberspace situational awarenessJ. Communications of the ACM, 2000, 43(4): 99-105. 6 Baek W, Bommareddy S. Optimal m-ary data fusion with distributed sensorsJ. IEEE Trans. AES. 1995, 31(3): 1150-1152. 7 郑 辉. Internet 蠕虫研究D. 天津: 南开大学信息技术科学学院, 2003.编辑熊思亮1