CODARTS建模方法在嵌入式软件开发中的应用
(3)子系统环境图
通常所开发的系统都是复杂的,所以COBRA要求将系统分解成为子系统,各个子系统之间应该是相对独立的和松散耦合的。子系统内部要求具有较强的内聚性,并且要求合理定义子系统之间的接口,这样子系统可以独立进行设计。子系统划分原则:①子系统可以由一个或多个功能紧密联系的对象构成;②外部实体仅与一个子系统存在接口;③数据存储应该封装在一个子系统中;④一个控制对象应该构成一个子系统。按照上面的标准,结合系统环境图
进行分解可以得到子系统环境图,如图2所示。
系统分解为系统控制和检测两个子系统。这两个子系统之间的接口有两个,分别是启动检测事件和检测结果。
(4)建立系统行为模型
行为模型是指描述系统在外部环境输入的作用下的响应。通常,系统的响应是基于系统状态的,因此,要用状态/数据转换图作为描述系统行为的方法是十分直观和有效的。图2中“系统控制”子系统通过控制转化图进行行为建模,如图3所示。
从图3中可以看到,“系统控制”子系统的状态转化均是基于外部环境事件和系统内部事件触发而产生的。因此在开发了控制状态转换图之后,设计人员需要考虑来自外部环境的输入,即开发场景。每个场景都是由若干外部事件的序列组成的。采用不同场景作为输入,可以很好地验证系统控制状态转换的正确性。
(5)划分对象、确定相应功能
对象和功能是系统中最小的具有并发性的组成成分。将子系统进一步细化成对象和功能,先要确定问题域中的对象,然后确定与这些对象进行交互的功能。COBRA建模标准规定了以下几个标准的对象:外中设备I/O对象、用户角色对象、控制对象、数据抽象对象和算法对象。按照这个划分标准,实时检测系统具有电源监控I/O对象、时钟对象、4个参数检测I/O对象、LCD显示I/O对象和上位PC对象;同时具有本地键盘角色对象、系统控制对象、检测控制对象、抗干扰滤波算法对象。数据抽象对象则有检测通道配置参数对象和参数检测结构对象。
(6)任务结构化
嵌入式系统多为并发系统,因此将系统划分为多个任务可以使系统结构更加清晰,提高系统的执行效率,提高任务调度灵活性。CODARTS方法的任务结构化标准可以分为4个主要的类:I/O任务结构化标准、内部任务结构化标准、任务内聚标准和任务优先级标准。
I/O任务结构化标准将任务分成:异步I/O设备任务(I/O设备多采用中断通知系统)、定期I/O任务(基于系统时钟)、资源监视任务。由前述分析可以确定:在系统中,手动参数检测任务、PC指令处理任务、数据上传任务和参数设置任务为异步I/O设备任务,自动参数检测任务和LCD显示任务为定期I/O任务。
内部任务结构化标准同样将内部任务划分成为定期任务、异步任务,并增加了控制任务、用户角色任务。其中系统抗干扰数字滤波任务属于定期任务,用户使用键盘进行本地输入控制属于用户角色任务,执行控制子系统控制状态转化任务则属于控制任务。
对于嵌入式系统而言,实时性要求是非常重要的。根据具体应用情况,通过赋予系统任务不同的优先级别,可以提高系统的整体性能,在一定范围内(一定的硬件平台基础上)满足实时性要求。任务优先级标准将任务分成时间关键型任务和非时间关键计算集中型任务。在本系统中,属于时间关键型任务的有6个,分别是手动参数检测任务、PC指令处理任务、数据上传任务、参数设置任务、自动参数检测任务和键盘输入处理及响应。这6个任务各自的优先权有所不同。为保证系统采样的精度,需要以等间隔时间进行采样,因此具有自动参数检测任务高优先级,其它5项任务则具有相对较低的任务优先权。系统抗干扰数字滤波任务则属于典型的非时间关键计算集中型任务。
(7)其它
《CODARTS建模方法在嵌入式软件开发中的应用(第2页)》