理论教育 电控软件开发流程优化指南

电控软件开发流程优化指南

时间:2023-06-27 理论教育 版权反馈
【摘要】:目前,国际流行的汽车电控软件遵循“V”形开发模式,如图8-54所示。

电控软件开发流程优化指南

在20世纪60年代中期,人们发现软件生产出现问题,主要表现在生产流程不规范,缺乏管理,此后人们在软件开发中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产流程中遇到的问题,但直至20世纪80年代还没有提出一套完整的管理软件开发的通用原则,软件开发过程中的问题依旧存在。随着软件开发的深入,人们越来越清楚地意识到软件流程管理的重要性,因此,将管理学的思想逐渐融入软件开发流程中并提出“软件工程”的概念,只有这样才能有效地控制项目进度和软件质量,从而提高效率,同时降低成本。目前,国际流行的汽车电控软件遵循“V”形开发模式,如图8-54所示。

978-7-111-28790-2-Chapter08-55.jpg

图8-54 电控软件V形开发模式

在这个“V”形开发模式中,每个节点都需要不同的工具和软件支持,且整个开发流程遵循科学合理的流程体系,项目组人员分工合理,对于项目中出现问题的解决方案也有规范流程,即利用规范的管理模型来保证软件开发的质量,如CMMI(Capacity Maturity Model In- tegrated,能力成熟度集成模型)、ISO/TS 16949、ISO 9000标准等。同时,在开发过程中,配置管理和软件测试技术要贯穿始终,以确保软件的功能和质量。

1.需求分析

在电控软件开发流程中,需求分析指的是在建立一个新的或改变一个现存的电控系统时,描写新系统的目的、范围、定义和功能而所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师需要了解与最终确定客户的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。

2.功能设计

功能设计是根据需求分析进行电控软件的架构和设计,比较通用的开发工具是美国MathWorks公司开发的MATLAB软件。通过使用MATLAB提供的Simulink、Stateflow等工具,完成控制方案的设计、功能模块的设计以及控制算法的设计等任务,从而可以在完全离线的状态下进行仿真模拟工作,初步验证控制算法的有效性并及时调整控制参数。

3.快速控制原型

快速控制原型(Rapid Control Prototyping,缩写RCP)是在开发的初期,快速地建立控制对象及控制器模型,并对整个控制系统进行多次离线及在线的测试来验证控制系统软、硬件方案的可行性。在快速控制原型阶段,允许反复修改模型设计,进行实时仿真。这样可以将错误及不当之处消除于设计初期,使设计修改费用减至最小。

使用RCP技术,可以在费用和性能之间进行折中,在最终产品硬件投产之前,仔细研究诸如离散化及采样频率等的影响和算法性能等方面的问题。通过将快速原型硬件系统与所要控制的实际设备相连,可以反复研究使用不同传感器及驱动机构时系统的性能特征。而且,还可以利用旁路(Bypass)技术将原型电控单元或控制器集成于开发过程中,从而逐步完成从原型控制器到产品型控制器的顺利转换。RCP的关键是原型控制器和控制算法程序之间的无缝连接,只需通过鼠标点击,就可以完成设计的修改。图8-55所示即为一个典型的快速控制原型平台,利用Bypass技术在现有控制算法上,完成对新增加的基于扭矩的发动机控制模块开发的具体实例。

4.自动代码生成

利用现代控制系统开发工具可以用最少的时间完成控制系统原型的设计,但如何从原型控制系统向产品型控制器转换仍然是最大的问题。传统目标代码的实现是采用既费时又易出错的手工编程方式。由于现代控制器的日渐复杂,手工编程将会耗费更多的时间。

978-7-111-28790-2-Chapter08-56.jpg

图8-55 快速控制原型开发系统结构图

978-7-111-28790-2-Chapter08-57.jpg

图8-56 硬件在环仿真系统结构图

德国dSPACE公司开发的TargetLink工具能够完成代码的生成。TargetLink是在汽车界用户的密切合作下开发的,能很好地满足工业用户的需求。用TargetLink可以直接从Simu- link/Stateflow模型生成产品代码,生成的代码可靠性高,易读性好,可产生定点运算代码,适应多种微处理器和编译器。

5.硬件在环仿真

硬件在环仿真是指将部分实际被控对象或系统部件用高速运行的实时仿真模型来代替,而控制系统则用实物(即硬件)与系统实时仿真模型连接成为一个硬件在环仿真系统,通过仿真试验对控制系统的控制策略、控制功能及系统可靠性等进行测试与评估。

硬件在环仿真系统结构如图8-56所示。硬件在环仿真系统主要由三部分组成,包括系统实时仿真模型、高速接口模块和PC机监控系统。系统实时仿真模型是整个硬件在环仿真系统的核心,其主要功能是实现系统模型的实时仿真计算;高速接口模块充分利用其高速计算能力,可以在系统实时仿真模型和控制系统实物之间进行各种信号的传递;PC机监控系统作为人机交互平台,既可以方便地修改系统仿真模型的参数,又能及时地监控系统实时仿真模型在控制系统中的实物作用。

硬件在环仿真系统的工作过程如下:首先让系统实时仿真模型按照用户设定的初始参数运行,同时将仿真模型的计算结果通过高速接口模块送往控制系统实物,并在PC机监控系统中显示计算结果;控制系统实物根据接收到的系统实时仿真模型的计算结果,按照一定的控制策略计算出控制参数,然后将控制参数通过高速接口模块反馈给系统实时仿真模型,系统实时仿真模型根据控制参数改变其运行状态;用户可以根据需要在PC机监控系统的图形用户界面上改变仿真模型的系统参数,从而实现对系统状态的控制。

6.软件测试(www.daowen.com)

软件测试定义是:在规定的条件下对程序进行操作,以便发现程序错误、衡量软件质量并对其是否能够满足设计要求进行评估的过程。

软件测试的进程依次包括Alpha测试、Beta测试和Gamma测试。

Alpha测试通常是在阶段性的开发完成后开始进行,一直持续到进入Beta测试阶段前的阶段。在这个阶段中,软件由潜在使用者(客户)或一个独立的测试团队,采用现成软件,以模拟或实际操作性的黑盒测试和灰盒测试进行内部验收测试。

当Alpha阶段完成后,开发过程进入到Beta测试阶段。在Beta测试阶段,用于Beta测试的产品被发布到一部分受控制的公司外部人员手中,通过他们外部人员的测试和反馈,尽可能发现产品中存在的缺陷和错误。在某些情况下,Beta版本可能被发放到范围更广的外部人员手中(例如,通过网站下载或是其他方式面向公众发放),Beta测试阶段的测试主要使用黑盒测试技术,也可以使用白盒测试技术对产品继续进行测试。

Gamma测试是一个很少被提及的非正式测试阶段,该测试阶段对应的是对“存在缺陷”产品的测试。考虑到任何产品都可以被称为“存在缺陷”的产品(测试只能发现产品中存在的问题,不能说明产品不存在问题),因此这个概念存在一定的不确定性。

对Alpha测试和Beta测试常见的一个认识误区是“Beta测试=黑盒测试”。实际上,Al- pha测试和Beta测试对应软件在产品发布之前的阶段,而白盒、黑盒和灰盒测试技术是从技术和方法层面对测试的描述,不应该将这两部分概念混淆。

软件测试的方法有黑盒测试和白盒测试两种。

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

白盒测试也称结构测试、逻辑驱动测试或基于程序本身的测试。测试者需了解待测试程序的内部结构及算法等信息,这是从程序设计者的角度对程序进行的测试。

灰盒测试则为介于上述两种方法之间的测试。

7.配置管理

配置管理系通过技术或行政手段对软件产品及其开发过程和生命周期进行控制和规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。

配置管理系统应该具备以下主要功能:

(1)并行开发支持 因开发和维护的原因,要求能够实现多位开发人员同时在同一个软件模块上工作,同时对同一个代码部分作不同的修改,即使是跨地域分布的开发团队也能互不干扰,协同工作,而又不失去控制。

(2)修订版管理 跟踪每一个变更的创造者、时间和原因,从而加快对问题和缺陷的确定。

(3)版本控制 能够简单、明确地重现软件系统的任何一个历史版本。

(4)产品发布管理 使管理、计划软件的变更与软件的发布计划、预先定制好的生命周期或相关的质量过程保持一致,让项目经理能够随时清晰地了解项目的状态。

(5)自动建立管理 基于软件存储库的版本控制功能,实现过程建立自动化。

(6)过程控制 贯彻实施开发规范,包括访问权限控制、开发规则的实施等。

(7)变更请求管理 跟踪、管理开发过程中出现的缺陷、功能或任务增强请求,加强沟通和协作,能够随时了解变更的状态。

(8)代码共享 提供良好的存储和访问机制,开发人员可以共享各自的开发资源。

当前,主要的配置管理工具有:Visual Source Safe(简称VSS)、Concurrent Version System(简称CVS)、Star Team及Clear Case等。其中,VSS的使用简便易学,但其的功能和安全性较弱,且只对Windows平台进行支持,故可作为项目配置管理的入门时采用的工具;CVS的安全性和版本管理功能较强,可以实现异地开发的支持,但CVS安装和使用多采用命令行方式,不提供变更管理的功能,适用于小型团队;Clear Case功能完善,安全性好,可以支持复杂的管理,但学习成本高,需要集成Clear Quest才能完成完整的配置管理功能;Star Team很好地平衡了功能性、易用性和安全性,同时集成了版本管理、变更管理和缺陷管理等功能。因此,对大型的团队开发和建立组织级的配置管理体系,可采用Clear Case和Star Team作为配置管理工具。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈