[摘要]国际上硬/软件开发人力平均为1:8。因此,如何提高软件的开发质量和速度是嵌入式领域当前和今后相当长时间内一个突出问题。本文介绍了欧美国家较为先进的基于图形化开发工具的嵌入式软件开发方法,可有效提高嵌入式软件开发的工程化水平,并缩减30%左右的开发工作量。
一、前言
近年来,嵌入式硬件的发展日新月异,可实现强大功能的 RISC、DSP架构芯片不断涌现,国内企业也令人可喜地推出了龙芯、方舟等32位嵌入式处理器。面对众多的新型处理器,如何更好地实现应用、更方便地开发出功能强大的中间件、应用软件,将成为嵌入式软件开 发要面对的主要问题。
从当前我国从事嵌入式领域开发的人员构成来看,一方面大多数开发人员都属于半路出家,本身从事的是电力、汽车、航空航天等其他行业,工程化软件开发方面的知识较为缺乏;另一方面,目前的大学教育对软件工程概念仍然认识不足,教学方法和教育平台仍较落后。 这两方面原因造成了我国嵌入式软件的开发水平、尤其是工程化水平仍然较低。 与国外的嵌入式产品开发过程相比,我们自己开发的软件常常有源代码而无流程图、无详细说明文档、质量不高、升级维护困难。
而受产品上市时间、开发成本、开发人员素质等的限制,公司也常常“有心无力”,只能任由这种情况发生。可以说,嵌入式软件开发人员是是否具有较高的工程化开发水平将决定我国未来能否成为嵌入式软件大国。
国际上较成熟的嵌入式产品开发工程中,编写源代码只占整个开发过程的30%,从工程角度对产品功能进行划分,形成一系列相关文档:编写详细的代码说明、相关支持文档等工作将占去70%的开发时间。而在我国,这一数字正好相反,甚至尤有过之,编写源代码占去了开发的绝大部分时间。两种方法开发出的产品其成熟度是不言而喻的。造成这一情况固然有我国工程化开发水平较低的原因,开发观念、工具平台上的不足也是很重要的因素。
从国际上来看,现代软件技术的发展已经进入到自动化、图形化开发阶段。用户通过功能强大的系统级图形化软件开发工具对所开发的项目进行描述,建立整套系统的模型。只要能够建立起正确的系统模型,好的图形化开发工具就可以根据该模型生成C/C++/Java语言的源代码,提供完善的系统流程图、标准化的软件说明文档,甚至可对系统功能进行模拟仿真。可以极大提高软件产品的开发效率。
引入和掌握这些高水平的开发平台和软件工程方法,可使一般缺乏管理经验的软件工程师提升为系统工程师,使过去占开发比重很大的程序设计转为通过软件自动生成,并且在系统模型建立后就拥有了完善的支持文档。可有效节省30%到70%的开发工作量。借助自动化、图形化的嵌入式软件开发平台,软件团队的工程化能力和管理水平将大大提升,培养系统工程师的时间可以从5年以上缩减到1年左右。
二、先进的图形化嵌入式软件开发平台
德国的Blue River公司正是一家世界知名的图形化嵌入式软件开发平台供应商。该公司的开发平台具有方便的用户接口、优化的项目管理和友好的图形编程功能,能够支持各种类型的项目开发,并可为整个软件生命周期提供服务。
该软件的具体特点:
*简单、易学,支持即时的项目开发;
*生成高质量的技术文档和清晰的编程文档;
*清晰地描述结构化的项目开发流程,支持错误检测;
*代码生成模块能够实现自动编程,减少35%的开发时间;
*适于实现团队开发。
考虑不同微控制器系统和嵌入式软件的规模,Blue River公司可提供四个系列的软件开发平台: V32、E32、X32和O32。
1、V32开发平台
V32针对大型的应用系统进行设计,可有效支持用户对32位微处理器平台进行开发,可实现对软件工程项目的分析、描述、设计、实现、建立文档和维护。应用V32可以使开发人员从烦琐的日常工作中解脱出来,将精力集中到具有创造性的解决方案中。
V32开发平台采用Ward&Mellor的系统分析/系统设计(SA/SD)方法,采用清晰的图形来描述方式实现软件设计,并支持对实时过程的描述。通过不断提炼,项目设计更加优化,软件提供一个集成的查错功能,用于检查违反图形设计方法原则的错误。
图形化和文本化的描述是V32开发平台的基础,其中应用了 Nassi-Shneiderman控制结构,解决了高效率生成大型软件开发源代码的问题。在开发平台中,内部的编辑器可以直接将原代码转化为结构图。
对于单机用户来说,V32的功能包括:源代码生成器、编译器激活、检查器、浏览器和再造窗口等。通过这些功能,在“C”源代码上的所有的改变和优化都立即被显示,这将可以避免项目设计同工作结果出现的错误。这种开发方法将使结构化软件开发进入一个新的时代。
V32开发平台由分析和描述模块、代码生产模块、实现模块、再造模块、文档模块和集成用户接口组成。
(1)分析和描述模块
系统分析和设计(SA/SD)通过下面的方法来实现:
*数据变换框图
*状态转移框图
*组织关系框图
系统分析和设计是一种非常有效的设计方法,它能够确保有效地实现代码生成。
(2)代码生成模块
经过V32的分析和描述模块对一个软件项目进行描述,就可以直接根据图形化的描述生成C或C++的源代码了。已定义的软件结构将被转化为源代码模块。因为程序代码是根据项目的描述产生的,所以描述和实现是同一的,没有任何差别。
如果描述更改,程序代码自动更新。这是一种充分的、能够完全被理解的系统设计方法,因为开发者的想法被自动的实现。这可以使开发者从日常活动中解脱出来,随着项目的开发,很容易生成程序的文档。
(3)实现模块
V32的实现模块具有X32相同的功能。在程序模块中不会出现错误,这是因为以结构图进行编辑并且原代码自动生成。结构图中的错误通过编译器的显示可以简化调试过程;编译器的运行或工程文件的生成通过编译器接口从编辑器中来激活。工程文件中包括非常多的搜索 命令,能够实现快速的浏览和查找。
结构图的图形布置结合了压缩技术和工程树的方法,以确保大型软件项目能够被清晰地描述。
(4)再造模块
通过再造模块可以将源代码转换为结构图。在实现过程中编辑结构图时,在分析模块的描述图形中的任何改变都将立即被显示。
(5)文档模块
在V32的文档模块中,可以打印出描述图形和结构图。作为一个报告文件,所有图形、结构图和描述能够独立地进行设置。文档模块采用RTF文件格式输出。
(6)集成用户接口
在开发过程中整个项目工作,能够通过V32的集成用户接口来完成。工程树显示所有的图形和一个项目的模块,通过简单的点击能够操作 这些对象。界面中提供了一些工具条,如图形编辑、代码编辑和上下文菜单切换,能够快速地操作,同时提供在线帮助。
V32开发平台支持的编程语言:C/C++语言。
2、E32开发平台
E32开发平台包括所有V32的功能和特点,另外,增强的功能有:应用中断处理作为嵌入式应用中系统建模和优化C语言代码的基础。
在E32开发平台中,采用中断处理进行SA/SD建模,使得中断服务程序赋于数据处理成为可能。将嵌入式系统的这个重要特点正确地应用到软件开发的分析方面,这是一种将软件开发由复杂化为简单的方法。作为一个结论,在状态传输图中应用中断可以为状态机产生非常有效的代码。
采取一系列优化方法来优化E32自动生成的代码,目的是为了减少嵌入式系统对系统资源的需求。减少单一存取函数生成数量的增加,使得对整个数据结构的存取开销也减少;对于执行后就终止的简单函数的代码生成过程中,采用中断处理进行过程转移,而不用任务循环(查询)来实现,可以减少系统资源的开销。
在E32开发平台上生成的代码,适用于所有的实时多任务操作系统。由E32自动生成的代码作为实时操作系统的一个开放接口,使得E32成 为适用于每一种操作系统的开发工具,而用户不必考虑微控制器或者操作系统的差别。
3、X32开发平台
X32开发平台的主要功能包括结构图编辑、结构图压缩、源代码生成、正/反再造功能、语法检查和工程信息系统显示等。从功能上讲, X32具有V32的实现模块相同的功能。下面分别说明:
(1)结构图编辑
X32结构图编辑器是一个非常好的将源代码嵌入到结构图中的工具。它包括所有编辑器应用的功能,另外具有将源代码直接转换成结构图的功能,并且对可调整的语法结构进行着色。如果选定了编程语言,编辑器可以自动将原代码插入到结构图中。
(2)结构图压缩
对于大型软件项目的开发,复杂的结构图被压缩使得图形结构的轮廓清晰、明了。结构图中的任何一个部分都能够被压缩;快速的定位、查找、打印和设置功能能够借助于压缩树(工程树的一个部分) 来实现。
(3)源代码生成
X32平台上的源代码生成器能够将结构图转换为源代码,源代码生成器能够将结构图翻译为可编译的源代码。在X32平台上,应用XSF结构图格式直接将结构图信息保存在源代码中。因此,文件既是结构图文件,也是源代码文件,而且结构图和源代码之间没有任何转换错误。对于每一种编程语言,都有一种特定的源代码生成器。用户可以方便地选择源代码的格式。
(4)正/反再造功能
通过这种功能,可以将现存的源代码转换为结构图格式,而且可以在X32平台上编辑。集成的源代码再造部件能够自动将源代码翻译,并加入到X32开发环境中。根据开发者的需要,可以清晰方便地了解文档的结构图,也可以建立一个例程结构图打印输出。还可以象再造结构图一样来再造源代码。
(5)语法检查
X32 平台提供开发的用户接口来激活编译器。对于大多数编译器,已经隐含设置;对于特殊的编译器,也可以方便地建立特殊的设置。 在结构图中,源代码的语法纠正可以结合编译器的编译结果,通过语法检查功能重新检查。编译器中的错误信息能够随着结构图一起被分析和显示。光标会定位在结构图出错的地方。
(6)工程信息系统显示
对于编程语言C/C++,在X32的工程文件能够由源代码浏览器 View32来显示。除了数据类型、函数等,工程文件中类、程序、属性可以在不同的窗口进行显示;开发者可以通过双击工程信息系统中条目跳到结构图相应的位置,快速地浏览工程中的定义,也可以通过源代码进行浏览。工程中的源代码可以被文档编译器和连接器连接到View32的数据库中。
三、系统要求
32位操作系统下运行,Windows 95、Windows 98、Windows NT4.0/2000;分为单机版和网络版。X32需要7Mbytes硬盘空间,16M以上的内存空间; V32网络版需要10硬盘空间, 16M以上的内存空间。
如何攻克嵌入式软件开发的瓶颈
更新时间: 2005-08-26 00:00:00来源: 粤嵌教育浏览量:4382