控制/MCU
随着科技的发展,大多数的电子系统和产品含有特定的硬件器件和功能模块,显然这些系统是多种类、嵌入式的。嵌入式的软/硬件设计是一项复杂工作,为了满足系统的可靠性、运行效果、内存受限等要求,嵌入式系统除了需要实现功能需求外,非功能性的约束(Non-functional constraints)也是非常重要的。非功能性约束包括实时性、程序性能、稳定性、可靠性、安全性、内存限制、存储空间限制等[1-2]。对于非功能性约束的考虑方法可以分为两大类:面向过程(process-oriented)的方法和面向产品的方法(product-oriented)。面向过程的方法,指使用非功能性约束信息指导软件的开发过程。面向产品的方法,指在组件内部描述非功能性约束信息,并检查组件构成的产品的非功能性约束信息判断软件是否满足要求的非功能性约束。本文中使用面向产品的方法对嵌入式组件模型SECOM(Simple Embedded Component Object Model)的非功能性约束进行分析,在组件内部采用Petri网方法描述非功能性约束信息。
1 时间Petri网
Petri网是一种可用图形表示的组合模型,具有直观、易懂和易用的优点,可用于模拟带有并发性、异步性、分布式、非确定性、并行性等特性的系统。而用时间Petri网[3-4](简称时间网TPN)建立系统的动态模型,可进一步将系统中事件从发生到结束所需的时间描述出来。
时间网TPN中表示事件的持续时间的方法有两种:一种是将各事件的持续时间标在库所的旁边,表示库所中产生的托肯要经过一定的时间后才能参与网中的运行;另一种方法是将时间标注在变迁的旁边,表示当该变迁具有发生条件时要延迟一段时间后才能发生,或该变迁发生后,立即从相应的输入库所中移走相应的托肯,但要延迟一段时间后才在相应的输出库所中产生相应的托肯[5-6]。在下面的时间P/T网定义中采用的是后一种方法。
定义1:当某一变迁的发生条件满足时,若该变迁要延迟一段时间后才从相应的输入库所中移走相应的托肯并得到发生后果,或该变迁发生后,立即从相应的输入库所中移走相应的托肯,但要延迟一段时间后才得到发生后果,则称这样的变迁为时间变迁。
定义2:当某一变迁的发生条件满足时,若该变迁立即从相应的输入库所中移走相应的托肯,且立即得到发生后果,则称这样的变迁为立即变迁。
在时间P/T网的图形表示中约定,用矩形框表示时间变迁,用黑线表示立即变迁。下面是时间P/T网模型的形式化定义。
2 SECOM组件模型
基于嵌入式系统高度可裁剪性、资源受限的特点和对当前现状的分析[6],本文给出一种新的、基于源代码复用的、精简的嵌入式组件模型SECOM。该组件模型包含以下元素:
(1)瘦组件:SECOM组件是设计、开发、重用的单元,是程序的基本组成块,是在完成基本功能前提下的极小化,所以称之为“瘦组件”。组件与接口相互独立,是接口功能的具体实现者。组件之间通过接口通信,互相协作完成软件功能。组件的定义是可递归的。
(2)简接口:接口用来定义功能函数,是一组相关函数的集合,分离了瘦组件的定义与实现,彻底消除了接口调用者和实现者之间的耦合关系,增强了信息封装性。接口具有唯一性、不变性、继承性和多态性。同一接口在不同组件内有不同的实现方式。接口分为两类:①服务接口(Provide Interface),接口所在组件已经实现了此接口类型的功能,可以向组件外部提供服务;②请求接口(Require Interface),接口所在组件内没有实现此接口的功能,组件需要向外部请求此接口的实现。
(3)灵敏桥接器:桥接器完成接口之间的连接。根据现有条件的不同,采取不同的连接模式。连接模式有:直接连接(connecting),选择连接(selecting)和代码块粘连(gluing)。接口之间的消息交换是通过一个桥接器连接两个或更多的接口实例来实现[7-9]。组件模型类图如图1所示。
全部0条评论
快来发表一下你的评论吧 !