随着计算机技术、网络技术和通信技术的迅速发展,当前的信息社会已从当初传统的个人计算机时代进入了后PC时代;而后PC时代的主要特征就是以嵌入式系统的广泛应用与发展为标志的。
关于嵌入式系统的定义虽然有很多种,不过国内普遍认可的定义是[1]:以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积和功耗要求的专用计算机系统。
嵌入式系统主要是使用微型的芯片及其固化的软件,嵌入在其他系统中,以达到对其他系统进行智能化或信息化实时控制等目的。
当前,嵌入式系统已在工业控制、航空航天、国防以及信息家电等领域得到广泛的应用,并发挥了重要作用,而且越来越多的领域都迫切需要嵌入式系统的支持。然而,由于嵌入式系统的硬件、软件、应用环境的千差万别,因此当前有限的嵌入式技术人员的时间和精力主要花在熟悉不同的硬件、软件及其代码的开发上。这样不但造成嵌入式系统开发的效率和质量得不到保证,而且也严重束缚了嵌入式技术人员进行更高层次的研究与开发。这些都成为日益复杂的嵌入式系统迅速发展的瓶颈。
1 UML引入到嵌入式系统中的可行性
20世纪六七十年代,软件产业遇到了危机。其原因就是软件越来越庞大和复杂,而软件的质量和生产率却越来越低。由此促进了软件工程的诞生,使得软件开发的规范化和效率都得到了很大提高。在20世纪90年代,随着面向对象技术的发展,软件工程向自动化、智能化方向发展,其突出的标志就是UML标准的出现与发展。随后,很多软硬件厂商相继开发出了许多基于UML标准的CASE工具。从此开发软件可以借助UML的CASE工具来完成从软件的分析、设计、实现到测试的一系列软件工程过程,大大提高了软件开发的复用性和效率,降低了软件开发过程中的返工率。
UML突出的特点就是以面向对象的观点来分析和设计所开发的系统,它把系统的每个功能都作为一个模块(以“类”来表示)。在UML中,使用用例视图、逻辑视图、组件视图、并发视图和展开视图来分别对软件实现需求分析、设计、实现、集成和测试等过程;并且每个视图都包括一系列的图来具体实现,上面的5类视图包括了用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图和展开图。其中,用例图、类图、对象图、组件图和展开图属于静态图,是从静态方面对系统进行分析和建模的;而状态图、序列图、协作图和活动图则是从动态方面对系统进行分析,模拟系统动态交互情况的。
2001年,UML2.0的发布标志着UML技术进一步成熟,也得到了越来越多的硬件和软件厂商的支持,这也使得UML的发展前景更加广阔。面对基于软件工程的UML在软件领域所取得的巨大成就,是否可以把UML引入到嵌入式系统开发中来,用来改变当前嵌入式系统开发效率低下的局面呢?通过研究分析发现,UML应用到嵌入式系统主要存在以下几个方面困难:
① 嵌入式系统包括硬件和软件两部分,不同厂商的硬件千差万别,在某个嵌入式芯片中能正确运行的软件在另外一个嵌入式硬件平台上就不一定能正常运行。
② 嵌入式系统软件平台也千差万别,各自对开发的要求差异较大。
③ 大部分嵌入式系统对实时性要求严格。
④ 嵌入式平台的软件一般不是采用面向对象语言开发的,主要采用C语言甚至是汇编语言编写。
所有以上这些特点,导致在实际的嵌入式系统中UML模型很难被构建。即使构建出模型,其正确性、实时性能也很难得到验证和保证。
虽然如此,各国的研究者和开发商为把UML引入到嵌入式系统中都做出了不懈的努力,并取得了一些成果,主要包括:
① 为了使所建立模型的正确性能够得到验证,有人提出采用形式化的方法。例如William和H. C. Cheng使用VHDL作为模型的形式化描述语言,通过分析UML模型中的类图和状态图得到嵌入式系统的VHDL描述,确定系统的结构和行为,并进行模型验证[2]。还有学者使用有限状态自动机与UML相结合来完成系统的分析、设计和验证[3]。
② 对于实时性要求,提供的解决方法主要包括:使用标准的UML及其构造型概念设计实时系统[4],以及扩充UML或改造UML以使其满足实时系统的要求[5]。
③ 对于语言的问题,主要有以下两种解决方法:一种是使用面向对象的C++语言开发,如SystemC[6];另一种是使用可以与C语言结合的UML开发环境,如美国ILogix公司推出的Rhapsody。
由以上3种解决方案可知,UML应用在嵌入式系统所产生的可验证性、实时性以及语言的问题,都是可以解决的,因而有可能广泛使用UML来分析、设计与指导嵌入式系统开发,以解决嵌入式系统开发效率低下的问题。
随着计算机技术、网络技术和通信技术的迅速发展,当前的信息社会已从当初传统的个人计算机时代进入了后PC时代;而后PC时代的主要特征就是以嵌入式系统的广泛应用与发展为标志的。
关于嵌入式系统的定义虽然有很多种,不过国内普遍认可的定义是[1]:以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积和功耗要求的专用计算机系统。
嵌入式系统主要是使用微型的芯片及其固化的软件,嵌入在其他系统中,以达到对其他系统进行智能化或信息化实时控制等目的。
当前,嵌入式系统已在工业控制、航空航天、国防以及信息家电等领域得到广泛的应用,并发挥了重要作用,而且越来越多的领域都迫切需要嵌入式系统的支持。然而,由于嵌入式系统的硬件、软件、应用环境的千差万别,因此当前有限的嵌入式技术人员的时间和精力主要花在熟悉不同的硬件、软件及其代码的开发上。这样不但造成嵌入式系统开发的效率和质量得不到保证,而且也严重束缚了嵌入式技术人员进行更高层次的研究与开发。这些都成为日益复杂的嵌入式系统迅速发展的瓶颈。
1 UML引入到嵌入式系统中的可行性
20世纪六七十年代,软件产业遇到了危机。其原因就是软件越来越庞大和复杂,而软件的质量和生产率却越来越低。由此促进了软件工程的诞生,使得软件开发的规范化和效率都得到了很大提高。在20世纪90年代,随着面向对象技术的发展,软件工程向自动化、智能化方向发展,其突出的标志就是UML标准的出现与发展。随后,很多软硬件厂商相继开发出了许多基于UML标准的CASE工具。从此开发软件可以借助UML的CASE工具来完成从软件的分析、设计、实现到测试的一系列软件工程过程,大大提高了软件开发的复用性和效率,降低了软件开发过程中的返工率。
UML突出的特点就是以面向对象的观点来分析和设计所开发的系统,它把系统的每个功能都作为一个模块(以“类”来表示)。在UML中,使用用例视图、逻辑视图、组件视图、并发视图和展开视图来分别对软件实现需求分析、设计、实现、集成和测试等过程;并且每个视图都包括一系列的图来具体实现,上面的5类视图包括了用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图和展开图。其中,用例图、类图、对象图、组件图和展开图属于静态图,是从静态方面对系统进行分析和建模的;而状态图、序列图、协作图和活动图则是从动态方面对系统进行分析,模拟系统动态交互情况的。
2001年,UML2.0的发布标志着UML技术进一步成熟,也得到了越来越多的硬件和软件厂商的支持,这也使得UML的发展前景更加广阔。面对基于软件工程的UML在软件领域所取得的巨大成就,是否可以把UML引入到嵌入式系统开发中来,用来改变当前嵌入式系统开发效率低下的局面呢?通过研究分析发现,UML应用到嵌入式系统主要存在以下几个方面困难:
① 嵌入式系统包括硬件和软件两部分,不同厂商的硬件千差万别,在某个嵌入式芯片中能正确运行的软件在另外一个嵌入式硬件平台上就不一定能正常运行。
② 嵌入式系统软件平台也千差万别,各自对开发的要求差异较大。
③ 大部分嵌入式系统对实时性要求严格。
④ 嵌入式平台的软件一般不是采用面向对象语言开发的,主要采用C语言甚至是汇编语言编写。
所有以上这些特点,导致在实际的嵌入式系统中UML模型很难被构建。即使构建出模型,其正确性、实时性能也很难得到验证和保证。
虽然如此,各国的研究者和开发商为把UML引入到嵌入式系统中都做出了不懈的努力,并取得了一些成果,主要包括:
① 为了使所建立模型的正确性能够得到验证,有人提出采用形式化的方法。例如William和H. C. Cheng使用VHDL作为模型的形式化描述语言,通过分析UML模型中的类图和状态图得到嵌入式系统的VHDL描述,确定系统的结构和行为,并进行模型验证[2]。还有学者使用有限状态自动机与UML相结合来完成系统的分析、设计和验证[3]。
② 对于实时性要求,提供的解决方法主要包括:使用标准的UML及其构造型概念设计实时系统[4],以及扩充UML或改造UML以使其满足实时系统的要求[5]。
③ 对于语言的问题,主要有以下两种解决方法:一种是使用面向对象的C++语言开发,如SystemC[6];另一种是使用可以与C语言结合的UML开发环境,如美国ILogix公司推出的Rhapsody。
由以上3种解决方案可知,UML应用在嵌入式系统所产生的可验证性、实时性以及语言的问题,都是可以解决的,因而有可能广泛使用UML来分析、设计与指导嵌入式系统开发,以解决嵌入式系统开发效率低下的问题。
举报