首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年3月29日星期五
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
基于UML的嵌入式软件开发

Telelogic,中国区嵌入式软件开发专员 周末



缘何选择基于模型的开发

当前,嵌入式软件开发多采用文档形式。文档式嵌入式系统的局限在于,文档本身在传递过程中不可被测试,由此各阶段间形成了沟通障碍。由于不可测试,需求的错误被逐层积累,只有系统测试时才能发现。这就产生了矛盾:大部分错误在前面已经形成,但只能在后面发现。因此,在纠正错误时,文档架构代价高昂。

上述矛盾会给开发工作带来较大障碍,甚至是负面结果。它极大地浪费了人力资源,据调查近37%的文档式嵌入式系统项目会选择增加开发人员,56%的开发项目会取消部分功能以降低系统复杂度,甚至有近18%的项目可能被直接撤消。

为了解决该矛盾,需要改进开发流程、提高团队的开发效率,因此Telelogic推出模型驱动开发方案。模型驱动开发的特点在于各阶段都存在具体的模型与之相对应。如,在需求阶段,提供领域模型(概念模型),可以把需求以模型的方式表达出来;在架构阶段,提供系统模型,它关注系统的划分,包括大的系统怎么样划分为子系统及系统间的接口。在编程阶段,提供软件模型,它以抽象或建模的方式表达系统功能,为后续编程人员带来方便。

建模不等于直接提供完整模型,它要求分阶段的层次感,即要求后来的模型是在前面模型基础上的叠加,从而保证模型与模型间、阶段与阶段间具有一致性。

相对于文档驱动开发,基于模型的开发是可验证的,它包括静态及动态检查,静态检查是指在通讯出现故障时,系统会自动报错;动态检查是指检测系统早期行为,通过发送激励并根据需求文档去模拟功能,在动态基础上检测系统是否能完成需求规定的要素。动态检查可在系统早期去除逻辑缺陷。

基于模型的开发可定义为MD D,即在开发的各个阶段形成涵盖大部分系统活动的模型,保证阶段和阶段间的一致性。


用UML进行嵌入式软件建模

UML适于嵌入式软件建模

UML是极好的建模语言,因为UML具有很详细的语法语义,它可以构建完善的系统并最终打印成文档。UML的特点包括:UML面向对象;它与平台语言无关,嵌入式开发会大量应用到C或C++,UML既不是C,C++或Java但它可被转化成任何语言;UML是构成MDD方法论的基础和关键技术。

UML语言提供了多视角,可用于描述系统中被关注的不同事物及实现的不同行为,视角在UML语言中被称之为图。随着参与项目的人越来越多,产生的图也就越来越多,当它们叠加在一起时即可说明一个模型。UML多视角,可在系统开发的不同阶段使用,因此UML覆盖了系统开发的全过程,从设计描述、开发到测试,均有不同的图与之对应。
不同于一般性软件开发,嵌入式软件开发有其特别之处。首先,嵌入式系统大部分属于反应式的系统。只有当受到激励,系统才会产生响应。UML内含的状态机可以对该行为进行精确描述。其次,嵌入式软件往往对实时性要求苛刻,因此时序对于嵌入式系统非常重要。UML提供了众多描述时序的机制,很多图都包含时序的概念,因此可用于描述实时性要求。另外,嵌入式软件有时要求运行在多任务环境下,而UML本身也包含多任务环境,当任务间需要交互消息时,也可通过UML发送。最后,嵌入式还要求良好的可移植性,因此要求应用的语言能对硬件进行描述,硬件描述相当于一个接口,UML语言包含各个图接口,可满足嵌入式需求。

家庭报警系统实例

家庭报警系统要求能感应门的移动从而获知是否有侵入者进入,当有侵入者进入,要立即生成报警信号,以警示主人。扩展功能包括设置密码保护:只有输入密码后才可激活系统及延时功能:防止主人被误认为侵入者。

用UML实现该系统,首先进行需求分析,用模型替代文本方式进行描述:如,对象模型包括:主人与侵入者;系统实现的功能模型包括:检测、移动、发生、开关、关闭、输入密码、更换密码等,一目了然(如下图所示)。

而后进行系统架构,系统由两部分构成:软件及硬件。硬件方面,需掌握硬件提供的功能,如发光发声、键盘输入及其具体接口;软件方面,报警控制器是软件的主架构,而如何控制硬件如马达、发光二极管等,则是一个系统级架构。

明确系统架构后,则需给出可行性设计方案,通常会先提供几种不同的设计方案以备选择。以本系统为例,既可以采用复位的解决方案也可以采用中断的解决方案。
具体的模型设计可利用UML的状态机实现,它特别适用于异步或反应式通信。具体设计可以很简单,也可以很复杂,因设计方案而异。

系统设计过程中,有时需要从流或对象的角度考虑问题。系统开始有什么,后来有什么,叫做对象的视角或并发的视角。以本系统为例,当有人触动键盘,会带动硬件中断,硬件中断会触动相应的服务程序,而后服务程序将信号传送至系统,这就是所谓的对象视角。UML提供多个角度有助开发人员完成设计。


Rhapsody: 基于模型的嵌入式软件开发环境

Telelogic提供了一款基于模型的嵌入式软件开发环境Rhapsody,中文名:狂想曲。它的设计思想是用一个平台概括或近乎概括设计的各个环节。如,它可用于建模的前期分析、验证、测试或生成文档等。在该环境中客户可加入自己的C或C++代码。

R hapsody的功能包括:一,自动生成代码,在系统中输入状态机、模型架构或软件架构,系统即可生成C语言代码;二,验证模型(如右图所示),可对完成的模型,一步步跟踪调试,它的特别之处在于,Rhapsody可令开发人员直接在图形界面进行调试,消除逻辑错误及功能性需求错误;三,代码和模型的自动相关,嵌入式设计大部分用于军工、通信乃至医疗领域,因此希望能实时看到模型各部分对应的代码。Rhapsody系统中的代码可读、可修改,修改后的代码还可进行自动更新,这对嵌入式系统非常重要。

Rhapsody还提供了自由定义的方式,它可以和市面上任何一种商业的实时操作系统集成,操作系统也可以由客户自行定义。Rhapsody基于UML思想实现,它已成功应用于医药、汽车及通信等领域,如美国公司设计的癌症早期探测系统及宝马公司的汽车电子系统等。

《世界电子元器件》2006.11
         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com