收 稿日期 : 2006-01-18; 修 返日期 : 2006-03-15 基 金项 目: 国 家自 然科学 基金 资助项 目( 60373075,60473055)
作 者简介 : 刘 刚( 1979- ) , 男 , 湖 北咸宁 人, 博士 研究生 , 主 要研 究方向 为软 件形式 化、嵌入 式软件 设计 ; 邵 志清( 1966- ) , 男, 江苏常 熟人 , 教授 ,
博导, 主要 研究 方向为 软件 开发与 验证方 法; 肖立 中( 1981- ) , 山 东寿光 人, 主要 研究方 向为 信息安 全.
基 于 组 件 的 嵌 入 式 软 件 开 发 中 的 几 个 关 键 问 题
*
刘 刚, 邵志清, 肖立中
( 华 东理 工大 学 信息科学 与技术 学院 , 上海 200237)
摘 要: 针 对嵌 入式 系统 的实 际特 性, 着重 从系 统的 角度 提 出构 造 一 个 嵌 入 式 应用 程 序 的 开 发 架 构, 也 可 以 称
为开 发框 架。该 开发 架构 是以 基于 组件 的方 法来开 发嵌 入 式 应 用程 序 的 , 其 主 要研 究 系 统 结 构 规 约、系 统 行 为
规约 、组 件配 置和 执行 、程 序产 生和 系统 配置 等几个 关 键问 题 。研 究 的 结 果将 指 导 一 个 分 布 嵌 入式 应 用 程 序 开
发框 架的 构造 。
关键 词: 嵌 入式 软件 ; 组件; 框架
中图 分类 号: TP311 文 献标 志码: A 文 章编 号: 1001-3695( 2007) 03-0062-04
Some Key Issues of Component Based on Development of Embedded Software
LIU Gang, SHAO Zhi-qing, XIAO Li-zhong
( College of Computer Science & Engineering, East China University of Science & Technology, Shanghai 200237, China)
Abstract: The main problemthat had to be addressed in this context is to systematically develop a software architecture or
framework for embedded applications, taking into accountthe true nature of embedded systems. There were a great number of
design issues and unresolved problems with existing architectures, whichhad to be carefullyanalyzed in order to develop avia-
ble component-based design method for embedded applications. Such an analysis was presented, which focuses on a number of
keyissues: specificationof system structure; specification of system behavior; component scheduling and execution; program
generation vs. systemconfiguration. The analysis had been used to formulate the guidelines used to develop asoftware frame-
work for distributed embedded applications.
Key words: embedded software; component; framework
随着嵌入式系统的 广泛 应用, 作为 嵌入 式系 统主 要部 分
的嵌入式软件的需求也越来 越大, 但因 为嵌入 式系统 的特性,
如实时性、安全性等, 在不同的 嵌入式 硬件平 台上开 发出高 质
量、符合各种要求的嵌入式软件的困难也越来越大。由于激烈
的市场竞争, 嵌入式系统的开发不仅强调要减少开发的时间和
费用, 更重要的是要求能开发出高质量的嵌入式应用程序。这
些嵌入式软件不仅要符合嵌 入式系 统稳定 性、无错性、实时 性
等要求, 还要求软件的可重用性、可配置性和扩展性, 以提高嵌
入式应用程序的开发效率 和质量。现 在开发 嵌入式 软件一 般
使用较低级的语 言, 如 C 语 言甚 至 汇编 语 言。 如果 一个 嵌 入
式系统函数很简单, 用这 些语言 来开发 是比较 合适的, 但随 着
嵌入式硬件功能的不断增强和嵌入式软件需求的不断变化, 使
用这些低级方法来开发嵌入式 应用程 序导致 了很多 不好的 后
果, 如开发过程中低效重 复的工 作将不 断出现, 软件 生产周 期
难以控制且软件质量难以 保证。这些 现状迫 切需要 嵌入式 软
件的开发人员遵循软件工程的开发原则, 采用一些更高级的软
件开发技术来开发嵌入式应用程序。这些技术有很多, 如基于
模型的开发技术、基 于组件 的开发 技术等。只 有这样, 才能 在
日益严峻的开发环境下, 开发出 不仅能 满足市 场需求, 也能 满
足嵌入式系统特性的高质量、高效率的嵌入式应用程序。
针对嵌入式系统的实际特性, 本文着重从系统的角度提出
构造一个嵌入式应用程序的 开发架 构, 也可以 称为开 发框架。
开发这样一个使用开发嵌入式 应用程 序的架 构及其 相关的 软
件设计方法是一项十分复杂的工程任务。到目前为止, 国内外
还没有一个公认的方法能够解决此问题, 这主要是由于嵌入式
系统的特殊性, 导致常用软件开发方法并不适用于嵌入式软件
开发。本文的开发架构是以基 于组件 的方法 来开发 嵌入式 应
用程序的。
1 组件技术
组件可以被认为是面向 对象和 其他软 件技术 的化 身。 区
分组件和其 他先 前 的技 术有 四 个 原则
[ 1]
, 即封 装 ( Encapsula-
tion) 、多态性( Polymorphism) 、后 期连 接 ( Late Binding) 和 安 全
性( Safety) 。这个列表与面向对象 是重复 的, 除了 它删 除了 继
承( Inheritance) 这个重点。在组件 思想中, 继 承是 紧密 耦合 的
白盒( White-box) 关系, 它对 于大 多数 的包装 和 重复 使用 都 是
不适合的。作为代替, 组件通过调用其他对象和组件重复使用
功能, 代替了从它们那 儿继承。在 组件术 语中, 这些调 用称 为
委托( Delegations) 。
根据惯例, 所有组件都拥有与其实现对应的规范。这种规
范定义了组件的封装( 如为其 他组件提供的 公共接口 ) 。组 件
规范的重复使用是多态性的一种形式, 它受到高度鼓励。理想
情形是, 组件规范是本地的或全局的标准, 它在系统、企业或行
第 24 卷 第 3 期
2007 年 3 月
计 算 机 应 用 研 究
Application Research of Computers
Vol. 24, No. 3
March 2007