本文结合统一建模语言UML,提出一种嵌入式系统可视化开发方法,并将其实际运用到了嵌入式远程温度系统的开发过程中,验证了该方法的可行性和有效性。
UML(Unified Modeling Language) 是一种定义良好、易于表达、功能强大且普遍适用的面向对象和基于构件的系统建模语言。它扩展了现有方法的应用范围,不仅可建立软件系统的模型,还可建立非软件系统的模型,可广泛用于描述系统软件、嵌入式系统、企业机构或业务过程等。 UML由图、视图、模型元素、通用机制和扩展机制等几个部分组成 [2] 。其中图是UML建模的关键,根据图在系统开发过程中不同阶段的应用,可以分为用例图、静态图、行为图、交互图、实现图等五类,这些图为系统的开发提供了多种图形表达形式,应用于建模的不同阶段。
随着嵌入式系统的日趋复杂化,方逸华有孩子吗较多的系统都需要由一个团队共同完成,因此,团队之间的相互合作,软硬件之间的协同开发,乃至开发人员和客户之间的交流都需要有一个统一的标准作为基础。UML正是这样一种标准的系统建模语言。它详细描述系统的内容和工作方法,先进行系统建模后再编写代码,在开始阶段就了系统结构的合。UML系统模型包含许多不同框图,使项目小组可以从不同角度了解整个系统。另外,UML可以用统一的形式表现软件和硬件,支持循环迭代并可多次修改软硬件方案直到满足要求,可实现软硬件协同设计。 特别的,UML是一种语言,不是方法,它于开发过程 [3] ,所以我们可以结合UML语言提出一套针对嵌入式系统的开发过程,从而为嵌入式系统的开发提供一条新的途径。来源:
文中提出的基于UML的嵌入式系统开发方法支持需求、分析、设计、实现、测试的循环迭代,使用面向对象思想,通过细化分析和设计阶段的步骤,使得整个过程更有条理、充实,更适合于多任务的嵌入式系统开发。方法的需求、分析、设计过程被细化后分别包括了以下几个步骤:
需求阶段明确了系统所要实现的功能以及所要达到的性能,是整个系统开发的目标。
分析阶段主要是精化和结构化需求,清楚地描述系统内部,是设计阶段的基础。分为两个步骤:
设计阶段是在对系统各方面有了解的基础上来确定特定的解决方案。分为两个步骤:
详细设计:在软件方面是深入到了系统低层信息,如操作的属性、类的流程等;硬件方面则是到了设计具体电板的阶段。
本方法利用面向对象的概念将系统分成了相互关联却又较的模块,一方面方便了系统开发时的迭代过程以及系统的后期,设计人员可以根据不同的新的需要对各个步骤中相应部分进行调整来实现改进,这样就可以大量减少重复分析或设计的过程;另一方面,对象概念可以和嵌入式系统中的任务概念很好的映射起来。任务可看成是由一个或多个对象协作而成的,在分析、设计过程中确立对象的同时也就确定了系统的多个任务,为嵌入式系统的多任务特性提供了很好的支持。
功能性需求是系统功能的陈述。在UML中是应用用例图来描述系统功能的。如图1所示,系统大致由下述几个角色和用例组成:
五个用例:当前温度信息显示、更改最高警戒温度、更改最低警戒温度、修改测温仪工作状态以及登陆服务器(身份验证)。
在系统分析阶段,通过细化和结构化系统需求,可将系统需求转换成系统中的结构、类、对象和关系等实体元素,并从静态和动态两个角度来清楚描述这些实体元素。
首先用部署图来描述系统的物理架构,如图2所示,其中带有阴影的为处理器,未带有阴影的是外部设备;系统采用了目前远程系统中比较流行的浏览器/服务器模式(B/S)。这样系统的4个功能用例都将主要由嵌入式Web服务器实现。此外,根据非功能性需求中的无线约束,在工控现场,运用了蓝牙技术。
然后用类图来描述系统静态的对象结构及其相互关系。从用例图(图1)中我们可分解出一些类,并将这些类之间的结构描述出来。比如从远端用户的“登录服务器”用例就可分解出嵌入式Web服务器中的网卡、TCP/IP、HTTP类,本地用户的“登录服务器”用例则可分解出嵌入式Web服务器中的键盘、显示器和本地等类。依次略推在嵌入式Web服务器定义了网卡、TCP/IP、HTTP、蓝牙模块、键盘、显示屏、本地、数据处理等类。
每个类可以设置属性和操作,但我们在这个步骤中并没有定义,而仅仅是对嵌入式Web服务器的 对象结构作静态描述,类的属性和操作的定义将随着完整的类图在后文中出现。
系统行为分析就是从多个角度来描述所研究系统的动态部分。我们可用状态图描述系统的状态行为,然后根据系统内部所具有的行为来定义和精化类的操作,另外也可用顺序图和协作图从不同的角度来显示动态的信息流。
这里采用嵌入式Web服务器的状态图来简单说明(如图3所示)。根据嵌入式系统的特点,在此处,状态图不但包括嵌套层次结构状态的概念,还可用并发的概念来表示那些可以和其他状态同时处于活动状态的状态,图中用虚线 嵌入式Web服务器状态图
我们在系统的分析阶段,一直使用统一的标识来描述系统,但系统具体实现时还是需要将软、硬件分开实现,所以我们要在系统设计阶段对软硬件层次进行划分。若这次的划分最终不能满足要求,也可以通过迭代在以后的循环中尝试多种方案,直到满足要求。
在系统结构分析中用类图所作的统一描述涵盖了软件层和硬件层共同组成的系统结构,所有软件层和硬件层都是由类图中提取而来的,但类图中既可由软件实现又可由硬件提供的一部分内容则要根据性能、价格、规格大小等因素来加以选择。如本系统中TCP/IP协议栈的实现,就即可通过软件编程,也可选择购买提供TCP/IP协议栈的网卡芯片,相比较而言,自带TCP/IP协议栈的网卡芯片提供的性能更高、更稳定,但成本也较高,但本系统对网络实现并没有特别高的要求,所以从成本上考虑,还是选择了软件实现TCP/IP协议栈。这样,TCP/IP协议栈也就将在软件层中描述而不在硬件层中出现。
这里用部署图描述的系统硬件层(如图4),它将类图中的数据处理对象,即软件层中的操作系统所具有的任务映射到了处理器的各个线程,并且还设置了每个线程的优先级。而蓝牙模块所带的操作:蓝牙底层协议,表示蓝牙底层协议是由蓝牙模块硬件实现的。系统的软件层也可以通过组件图来描述。
详细设计是一次循环中需求、分析、设计的最后一步,指定了细节问题,明确了单个对象的范围、内数据结构和算法的实现等。
依照这些类的行为流程图,在编程阶段就可以容易的实现代码,并且由于有了统一的设计决策, 即使是由不同的编程人员编写,最后的代码体现出的思都是大同小异的,也方便非开发人员了解 和系统。
通过对UML语言的分析,文中提出了一种基于UML的嵌入式系统可视化开发方法,并实际应用到嵌入式远程温度系统的开发过程中。此方法面向对象,步骤清晰流畅,并全部由UML的统一标准符号加以描述,有效的提高了系统的开发效率,也有利于系统以后的和升级。
本文由 恒宇国际(www.neivn.cn)整理发布