UML在嵌入式系统开发中的应用

2013-10-10 02:15陶明江西省信息中心南昌市330046
江西通信科技 2013年2期
关键词:相框嵌入式建模

陶明 江西省信息中心 南昌市 330046

唐路其 南昌大学 南昌市 330031

随着后PC时代的到来,嵌入式系统的应用范围日益扩大,人们对嵌入式系统需求的日益增加,与此同时用户对嵌入式系统的功能、可靠性、体积、功耗等方面也有了更高的标准,正因如此,现如今的嵌入式系统变得更加复杂。那么如何高效率的开发一个嵌入式系统,是一个当前急需解决的课题。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言[1]。它即融入了软件工程领域的思想同时又能很好的建立硬件系统模式,所以如今借助UML来建立软件与硬件的整合设计的公司越来越来多。

1、UML建模应用概述

UML(Unified Modeling Language)统一建模语言是用来设计整个软件系统蓝图的可视化建模语言,支持基于OO系统的分析、设计、实现和交付等各个环节,对系统的理解、设计、浏览、维护和信息控制等方面都有着不小帮助。

在应用方面,采用OO技术设计系统时,采用用例图来刻画用户的需求;使用类图、对象图、包图、构件图和部署图此5种静态图来描述系统的静态结构;使用顺序图、合作图、活动图和状态图这4种图来显化系统的动态行为。即在系统开发的各个阶段UML都能发挥作用:

1.1、需求:用例图来刻画客户的需求,通过用例建模,发掘是谁与系统打交道、系统的主要功能、系统与外部的交互是是如何进行的。通过商业过程和用户需要构建的系统进行分析,可以准确把握住用户的需求,保证最终完成的系统完全符合用户的需要。

1.2、分析:此阶段主要是对用户给出的需求进行进一步的分析,明确问题的细节。UML中的类图能很好描述系统的静态结构,而顺序图、合作图、状态图则能用于描述系统的动态行为。

1.3、设计:根据分析提出具体的解决方案。将UML中的类图、包图把分析类和分析包转化成设计类和设计包。

1.4、实现:根据UML中详细设计的类图进行实际的编码。

1.5、集成:应用UML的构件图、包图、部署图来对系统进行集成和部署。

1.6、测试:根据类图来实现单元测试,根据类和包进行集成测试。最后对整个系统进行系统测试。

2、嵌入式系统开发的特点及建模分析

嵌入式系统作为一种专用的计算机系统,相较于桌面操作系统和服务器操作系统(即通用操作系统)下的软件系统开发有着很大的不同,为嵌入式系统开发不是仅限于应用程序,它的开发常常需深入到操作系统,甚至深入到硬件。按照一般工程开发过程,嵌入式系统的开发大体分为4个过程:

2.1、分析过程:类似于软件工程中的需求阶段,与客户交流,明确需要解决的问题。在客户给出的各种约束条件,理性的分析项目是否具有可行性。

2.2、设计过程:开发的关键阶段。此过程关注的是如何在给出的各种约束条件下给出恰当的项目解决方案,涉及到生成具体的抽象类及软硬件平台的选择,这个阶段好坏直接影响实现阶段任务的完成也在很大程度上决定着开发成本的大小。

2.3、实现过程:此过程就是在已选定的平台基础上进行软、硬件协调从而实现所指定的系统。这个阶段主要涉及到具体代码的编程、使用交叉编译器、宿主机与目标板的连接以及目标板中程序的调试等具体工作。

2.4、测试维护过程:开发的最终过程。首先检查各个程序模块是否正确地实现了规定的功能,再整合各个模块结合需求进行整个系统的测试,最后在将经过确认的系统纳入实际运行环境中进行最终测试。

由以上针对嵌入式系统开发的分析可知,在分析阶段需要有一套体系能够把客户的需求形象化的表述出来;在设计阶段针对五花八门的软、硬件整合方案也需要一套体系来选择与实际需求相适应的软、硬件平台;在实现阶段,就更需要一套体系来促进开发团队中各开发人员之间的沟通,以及把具体工程模块化、标准化,从而提高开发效率;最后在测试阶段中需要一套体系能够提供之前开发过程中的各项模块框图及说明文档,便于缩短测试周期[2]。UML就是这样可应用于嵌入式系统开发各个过程体系的建模语言。

3、嵌入式系统的建模分析

基于消费者对嵌入式系统的诸多方面严格的要求,现如今的嵌入式系统也一直再往尺寸大幅减小、性能更快、更可靠、更低功耗的方向快速发展。市场的需求千变万化而对于嵌入式技术来说,其系统架构的多样性,软、硬件组合的多变性,技术密集等诸多技术难点恰巧也成为了其适应市场的优势。而嵌入式产品开发的标准化、平台化已成为了诸多厂商开发的一大难题。但挑战与机遇是并存的,若是谁能率先提供标准化的嵌入式开发过程,使嵌入式系统开发更加简单,那就等于获得了市场的先机。

众所周知,嵌入式系统的复杂度日益增加,靠个人的能力是难以完成整个系统的开发的。团队开发才更有效率,而团队开发的基础就是设立统一的体系让成员之间的合作、软件模块和软硬件之间的协同开发,以及具体化客户需求的过程都更加规范。当前主流的UML正是这样一种标准化的建模语言,它所提供的各种模型图能很好的阐述系统的内容及工作方法,先建模而后编码,在开发的起始阶段就让团队每个成员对系统有整体的认识,也就保证了系统结构的合理性[3]。通过UML中的不同框图,各开发小组能够从多个角度来了解整个系统。其次,借助UML用统一的形式来描述整合软件和硬件,支持循环迭代并能够多次修改软硬件方案直至符合客户的要求,即可实现软硬件的协同设计。以UML模型来驱动实现嵌入式系统开发方法可以大大降低系统的复杂性和开发难度,从而提高开发效率使开发过程具有可扩充性、可重用性。使用UML进行系统建模在得到各种模型框图的同时还能生成大量丰富的说明文档,非常利于系统后期的测试和维护[4-5]。所以我们可以尝试结合UML语言而提出一套针对嵌入式系统的开发方法,以求为嵌入式系统开发的标准化提供一条新的途径。

4、基于UML的数码相框系统建模实例

数码相框是一种特殊的“相框”,相较于放入图片的方式来展示相片的传统相框,数码相框通常会提供与外部存储设备的接口,从而通过连接的方式获得图片数据,最后使用一个显示屏来显示系统已获得的图片数据。数码相框具有设置显示方式、特效等诸多功能,使得其使用起来非常灵活。按照本文上述,以下将借助UML建模工具Rational Rose 2003来为数码相框系统建模。

4.1 分析过程(需求阶段)

经过分析可知系统所要具备的功能有:1.开机后出现欢迎界面并提示用户插入存储设备2.当用户插入设备后自动开始播放位于设备中的所有图片3.每张相片的特效显示4.用户通过按键可以控制所有相片播放的暂停及继续用户拔出存储设备时出现提示信息并自动回到开机后的欢迎界面。

系统的参与者只有用户一个角色,通过以上分析可以识别出3个主要用例:设备启动,相片控制,存储设备控制。通过逐步分解得到以下系统用例图:

图1 数码相框系统用例图

4.2 设计过程

以需求阶段得出的结果为基础,通过用例图大致可得出系统需要的类、对象及其相互关系,再加上对硬件信息的整合,我们可以得到本系统的类图,如图二:

图2 数码相框系统类图

类图很好的描述了系统的静态结构以及逻辑层次,但为了更好的理解系统的动态行为,顺序图,状态图,活动图等都是十分必要的。对于嵌入式系统来说,状态图和时序图的设计尤为重要。以下就是相片控制类的之间状态转化的描述。

图3 系统显示相片状态图

为了符合客户对系统实时性的要求,就必须建立起能够清晰描述对象间消息传递的时间顺序的顺序图。以下就是在用户插入存储设备到相片播放整个系统的顺序图:

图4 系统显示相片过程顺序图

4.3 实现过程

4.3.1 物理建模

结合用户的需求,问了能在限定条件下更好的完整系统功能,本项目硬件采用ARM7开发板,使用Ubuntu(宿主机)与嵌入式Linux(目标机)的软件设计平台。以下是系统部署图:

图5 数码相框系统部署图

4.3.2 编码过程

Rational Rose可根据先前生成的各种模型框图自动生成C++代码,而基于嵌入式系统的频繁操作硬件的特点使用C编码的效率将会更高。那么要将软件生成的C++代码稍作修改,由于所有对象都是静态的,所以必须将每个对象的方法都修改成一个独立的函数。

如:void DeviceControl::InsertDevice(){} 修改为void DeviceControl_InsertDevice(){}

再将DeviceControl_InsertDevice()函数放入Device_Control.c文件中去即可。当然,变量的定义也要放入源文件中去,而后就是具体的编写各功能函数及调用过程了[6-7]。

4.4 测试过程

用户对数码相框的可靠性、实时性、稳定性都有着较高的要求。那么按照一般嵌入式系统的测试过程,本系统也将按照4阶段进行,即:模块测试、集成测试、系统测试、软/硬件集成测试[8]。测试方式也跟软件测试相同即:白盒测试,黑盒测试。通过以上UML建模过程中的大量说明文档,在宿主机上进行前三阶段的白盒测试,目标机则结合具体的目标环境进行第四阶段的黑盒测试。

5、结束语

UML在软件工程中已有了非常宽广的应用,可由于嵌入式系统编码的非面向对象性使得UML在嵌入式领域的应用很少。但诸如:抽象、功能模块化、增量开发等思想在嵌入式系统开发过程中也应是同样适用的。但嵌入式系统的结构复杂、规模庞大、开发周期长,导致其具体的建模细节也是一个不断修改完善的过程[9-10]。通过在实际项目开发中应用UML,我们得到了不错的效果。这表明在嵌入式系统的开发中引入UML,采用先建模后编码的开发方式是很实用的,它既可以优化程序结构、又能缩短系统开发周期,成功实现了快速开发又不降低系统效率的目标。

[1]徐宝文等.UML与软件建模.北京:清华大学出版社,2006.

[2]何宗奎,康积涛.基于UML的嵌入式系统设计[J].计算机系统应用.2009(10)

[3]唐庆,谢康林.基于UML的嵌入式系统设计[J].微型电脑应用.2007(08)

[4]王道乾,张杨.基于UML的嵌入式系统模型设计[J].计算机科学.2006(11)

[5]贾丽娜.基于UML的嵌入式软件开发[J].科技信息(学术研究).2007(27)

[6]王翠娥.浅析嵌入式C程序设计的优化[J].信息与电脑(理论版).2009(12)

[7]王小平,宣乐飞,张蔚.基于UML的嵌入式实时控制系统的建模与实现[J].计算机技术与发展.2006(07)

[8]段盛,李仁发,谢桂芳.基于UML的嵌入式系统建模及模型验证机制研究[J].计算机工程与科学.2007(08)

[9]周末.基于UML的嵌入式软件开发[J].世界电子元器件.2006(11)

[10]张承杰,蒋兴浩.基于UML的嵌入式系统设计分析[J].信息安全与通信保密.2007(03)

猜你喜欢
相框嵌入式建模
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
相框
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
TS系列红外传感器在嵌入式控制系统中的应用
基于PSS/E的风电场建模与动态分析
相框
沙滩相框
不对称半桥变换器的建模与仿真
搭建基于Qt的嵌入式开发平台
倍福 CX8091嵌入式控制器