- UID
- 872238
|
(2)约束属性
约束属性描述构件所依赖的环境。约束属性可分为2类:描述绝大多数构件都具有的公有约束属性和描述单独构件特殊需求的专有约束属性。公有约束属性包括CPU类型、操作系统、依赖的类库等。专有约束属性包括特殊硬件需求、时间约束和内存需求等。
(3)QoS属性
QoS属性是嵌入式软件构件最重要的要素。为了选取合适的构件来开发嵌入式系统,必须考虑构件的QoS属性,以评估它所提供的性能指标。常见的QoS属性包括平均执行时间、最差执行时间、最优执行时间、内存消耗、功耗、健壮性、可靠性和安全性等。
2 嵌入式软件构件设计
2.1 μC/OS—II嵌入式实时操作系统
μC/0S—II是一个可移植、占先式、实时的多任务内核,以任务为基本处理单位,能同时管理高达63个任务。它实时性强,可靠性高,对处理器以及ROM、RAM资源的要求不高;另外,它的代码大部分用AI C语言编写,只有少部分微处理器专用的代码用汇编语言编写,有利于程序的移植。
2.2 基于构件的嵌入式软件体系结构
一个构件系统的体系结构由一系列定义的构件框架和针对该框架设计的构件间的相互作用关系组成。体系结构是所要实现系统的整体规划,它为构件的组装提供基础框架和接口规范。
目前,嵌入式构件技术研究的核心之一是构件模型和软件体系结构(软件构架)这两个相互关联的问题。不同的构件只能在相应的软件构架中使用,因此基于构件的应用软件设计也可认为是基于体系结构(构架)的软件设计,也称之为基于“构件一构架”的应用软件设计。
根据上述的嵌入式基本构件模型,本文提出了一适用于嵌入式系统的软件体系结构。其中,定义“构件系统”为一特定应用,实现某一具体功能。例如,键盘为一构件系统,显示器也为一构件系统。另外,定义“构件子系统”。它类似于UML中的包概念,代表元素的逻辑分组,将具体的应用从实际问题中抽象出来,同时对各个关注区域进行相对分离,这样做可以独立地分析各个关注点,从而可以更好地分析系统的结构。一个构件子系统可以包含一个构件或者是多个构件的集合。
我们把构件系统构造成抽象层次中的不同部分,最抽象(最接近应用领域)的位于“顶部”,最具体(最接近硬件)的位于“底部”。这样,可以将构件系统从结构上构造为6个独立的层次:应用层、用户接口层、通信层、OS层、硬件抽象层和配置描述层。
每个层次为一个构件子系统,每个构件子系统内包含有一个或多个构件。通过构件间的依赖关系来定位和拼接构件,组装构件子系统,最终生成所需要的构件系统。其中,配置描述层记录构件系统属性、结构说明、相关参数设置与系统类型定义,以及构件系统中各构件的依赖关系。配置描述层作用于其他各个层次,记录了构件系统所需的一切信息,使得构件系统的移植更为方便,同时也易于构件的查询、检索、维护及出入库管理。
硬件抽象层实现硬件的驱动、I/O控制,可以用于同一种硬件平台的很多应用中。OS层主要用于与操作系统相关的操作,包括系统任务的创建、消息的创建等。通信层实现数据的传递、数据格式的转换。
用户接口层提供与底层应用相关的基本操作函数、对外接口函数,实现上下层之间的互操作。应用层位于顶层,用于实现用户的应用程序。用户无需关心底层的硬件结构,直接使用用户接口层提供的基本操作函数,即可编程实现自己需要的功能。
层(即构件子系统)的接口是所包含的构件接口的组合。分层接口从上层看是透明的,对下层则是不透明的。在层接口处定义的构件仅对整个层次结构中该层或者该层之上的构件可见。只要符合一定的条件,每一层都可实现相当程度的复用,只需要替换相关的构件即可。
这里,特别要提到“原型”的概念。在各个层中,每个垂直切片仅实现与切片的目的相关的部分。这种实现方案称为“迭代式原型(iterative prototyping)”,每个切片称为一个“原型(prototype)”。实现原型时,每个原型都在其前驱所实现的特性的基础上进行构造。原型的序列根据逻辑上特性的优先顺序来确定。本体系结构引入原型的概念,每个原型包含来自各层的一个或者多个构件,后面的原型构造于先前原型所提供的服务的基础上。每个原型将实现一种特定的功能,逐渐增加功能,最终实现用户应用程序。
分层的结构设计保持了顶层与低层很好的一致性,实现了横向分离;同时,原型的引用使得各层间的连接更为紧密,纵向相连,从而得到集成度更高、更可靠的系统。 |
|