首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μC/OS—II的嵌入式构件系统设计 01

基于μC/OS—II的嵌入式构件系统设计 01

近些年来,随着嵌入式产品需求的不断增加,嵌入式软件正变得越来越复杂,而产品的开发周期也越来越短。嵌入式软件开发迫切需要更高效的软件重用手段。
  随着软件复用研究成为热点,其核心技术——构件化软件开发方法(CBD)引起了软件工程领域的高度关注,并且在工程应用领域获得了极大的成功。这种开发方法已在办公应用、电子商务、因特网及分布式网络应用中广泛使用;但在嵌入式领域,构件技术仍处于起步阶段,目前没有一个统一通用的构件规范。尽管如此,由于基于构件的软件设计方法能够极好地满足嵌入式软件几乎所有的特性(如定制、裁剪、动态演变等),有效缩短产品开发周期,这种设计方法无疑将给嵌入式系统的开发带来巨大的好处。
  本文尝试将构件化软件设计思想引入嵌入式软件设计中,提出了一种适用于嵌入式软件的基于构件的软件体系结构,并且在常用输入设备键盘的应用实践中,验证了此体系结构的可行性。
  1 嵌入式构件技术
  1.1 构 件
  构件可以视为一个通过接口对外界提供服务或向外界请求服务的黑盒,多个构件可以组成一个更高层次的构件,构件比对象提供了更高的设计抽象。构件是二进制可替换的,这个特点使它们与“类”有着显著的不同。当创建了一个构件的修订版本时,它可以替代同一构件的原先版本,而不必重新编译其他构件。通常,只要一个构件满足相同的接口,就可替换另一个构件,而不必对其他构件做任何修改。因此,构件能够很好地解决更新、维护、分布和复用等诸多问题。
  构件具备以下几个基本特征:可复用性、可封装性、组装性、可定制性、自治性、粗粒度、集成特征、接口连接机制。目前,构建模型大致可分为2类:在面向对象的程序设计中,构件即对象,例如JavaBean;在软件体系结构中,构件即结构单元,例如结构描述语言ADL。这些构件模型适合更高层的应用软件,但不适合在嵌入式软件开发中占主导地位的底层系统软件的开发。
  1.2 嵌入式构件
  1.2.1 嵌入式构件模型
  嵌入式构件为实现一定嵌入式系统功能的一组封装的、规范的、可重用的、具有嵌入特性的软件单元,是组成嵌入式系统的功能单位。它是被标准化的、具有重用性、支持QoS的、能够提供实时应用的软件资源。
  这里,从嵌入式构件的定义出发,将参考文献中通用软件构件模型作适当的扩展,使其成为适用于嵌入式系统的基本构件模型。
  每个嵌入式构件由4部分构成:构件体、属性、接口、依赖关系。图l为基本构件的示意图。构件体实现构件的基本功能,即对外提供的服务;属性描述了构件的基本信息;接口将构件与外界连接,在得到自己需要的服务后,为外界提供服务,每一种接口对应一个不同的服务;依赖关系标识构件间的所有关系,用于实现构件间的拼接。
  1.2.2 嵌入式构件属性
  属性是描述构件某个方面特征的元数据。属性定义了构件查找的方法,可以根据任意一条属性记录快速找到符合条件的构件。由于嵌入式构件的特殊性,可以将嵌入式软件构件的属性分为3种:描述属性、约束属性和服务质量(QoS)属性。
  (1)描述属性
  描述属性指的是一般构件都具有的公共属性。常见的描述属性有以下几种。
  名称:构件以名称作为标识。
  标识:每个构件都对应唯一的ID号,区别于其他构件。
  类型:将构件归类,便于检索与管理。
  版本号:用于构件的更新。
  编程语言:表示构件的实现语言。
  构件描述信息:简述构件功能。
  表示形式:一个构件可以是源代码、动态链接库、静态链接库,以及文档、图表等形式。
返回列表