敏捷实践由于其灵活、及时的交付、丰富的实现和迭代的特性而在软件开发中被广泛使用。考虑到广泛的好处,汽车行业也正在从传统的方法转向汽车软件开发的敏捷实践。汽车软件的主要挑战是安全性、复杂性、用户参与、灵活性和创新性;这些都是传统方法难以处理的问题。为了克服这些挑战,采用这种方法是必要的,它应该是灵活的,有快速的变更管理和用户参与,并能够完成汽车行业的要求和标准。因此,为了加快汽车软件的开发过程,有必要整合敏捷开发流程。本文对敏捷方法的实施提出了见解,并了解了敏捷流程和V模型在汽车软件开发中的综合使用效果。本文揭示,从研究和产业的角度来看,如何将敏捷方法和V模型这两种方法结合起来,目前还不清楚。本文的研究结果表明,在汽车软件开发中结合使用敏捷过程和V模型是有前景的,有必要开发一种结合敏捷方法和V模型的汽车软件开发方法。
汽车软件在复杂性、创新性、高可靠性、安全要求、变更管理和物理系统的特点方面都很复杂。因此,汽车行业最常见的汽车软件开发过程遵循V模型。然而,随着汽车系统的复杂性指数级增长,较晚的验证和验证过程导致了不可抗拒的更高的风险和成本的开发手段。一般来说,传统的软件开发过程不能满足动态市场的需求。通过引入敏捷宣言(2001年),它承诺敏捷过程可以保证更早地将产品发布到市场。敏捷方法能够对市场和客户不断变化的需求做出快速反应。此外,在开发过程中,他们提供用户参与,以对不同的要求进行调整,并对最终的软件进行后期改进。敏捷方法在汽车行业的整合是一个潜在的解决方案,以面对动态市场环境的挑战和需求。采用敏捷方法的另一个关键因素是软件开发的传统过程的不灵活性。然而,敏捷是一种灵活的方法,它允许软件的增量开发,并在迭代中开发软件,在增量中交付软件,而不是在开发过程结束时一次性交付所有软件。通过在2001年引入敏捷宣言,敏捷方法在软件开发中变得更加重要。根据敏捷宣言,敏捷方法可以获得:在汽车行业中,V模型是最常见和传统的方法。然而,当涉及到软件密集型系统的需求工程时,汽车领域的开发方法不能有效地适应需求。例如,当系统的复杂性相对较高时,传统的V模型在后期验证阶段往往会导致非常高的成本,并且对后期市场和客户的要求不灵活。尽管这两种方法--敏捷和V模式--都有它们的好处,但挑战和限制仍然存在,特别是在汽车软件开发方面。本文旨在提供关于敏捷方法在汽车软件开发中的实施的见解,即敏捷方法如何被用于汽车软件的开发,它们的好处、挑战和限制。它显示了一些与敏捷方法和传统流程V模型的结合使用有关的效果。Pfeffer等人进行了一项研究,描述了自动驾驶系统开发过程中发现的挑战,特别是在设计功能方面出现的问题。所进行的研究是探索性的,采访了与德国大批量汽车OEMs相关的人员。Manfred Broy在他的研究中,通过陈述汽车嵌入式系统的主要焦点领域和流程问题,解释了汽车软件设计中发现的挑战。Marner等人说明了传统范式和敏捷流程的综合效应,并提出了在汽车SW领域发布计划中的挑战。此外,本研究还解释了敏捷属性如何能够克服已有的挑战。Hohl等人在他的研究中考察了汽车行业的嵌入式软件、敏捷开发和软件产品系列管理之间的关系。Schloßer等人通过解释敏捷和V模型的优点和缺点,提出了开发汽车软件的不同框架。本研究对V模型和敏捷过程的结合使用提出了见解。在汽车领域提出了一种混合方法,用于改进流程,解释了在安全关键型软件开发环境中,通过整合Scrum和传统的V模型,可以加快开发流程的因素对于安全关键软件的开发,另一项研究提出了一种开发方法,即在需求分析阶段采用形式化规范,并在软件实施阶段后整合形式化验证。然而,这个方法论主要是针对高可靠性软件或安全关键软件。一种评估模型“A HAA-敏捷混合评估法”将 CMMI 元素和 Automotive Spice 与敏捷属性相结合,引入汽车领域。Liu等人提出了一项研究,通过引入基于仿真的开发和建立连续和早期的集成验证,提出了一个改进版的V流程模型,称为 "增量V开发流程"。基于一个实例项目(案例研究)的初步研究结果表明,增量式V模型可以通过缩短时间周期和持续时间、最小化工作量和提高产品质量来改进V模型。因此,现有的文献中没有关于结合敏捷方法和V模型的结论或最终结果。目前还没有任何一种方法能专门解决汽车软件开发中结合敏捷和V模型的所有主要影响。为了解决这个问题,本文的研究打算开发一种方法,通过研究V模型使用中面临的挑战,用适当的敏捷方法解决这些问题,同时仍然满足汽车行业的要求,例如关于安全或流程成熟度,从而实现敏捷方法和V模型的结合。选择敏捷方法融入V模型的第一步是分析当前使用V模型的主要挑战,以及与敏捷方法普遍相关的主要优势。表1根据V模型进行软件开发项目中普遍发现的挑战,构建了这些潜在的改进领域。所提到的挑战是对汽车领域的详细文献分析的结果,主要在本文的第二部分描述。对于每一个挑战,它都描述了V模型是如何解决这个问题的,以及与此相反,敏捷方法将如何处理这个挑战。例如,客户协作(表1中的 "协作类型")这一挑战在传统的V模型项目中通过详细而全面的客户合同来解决。这些合同在项目结束时成为一个问题,因为它们没有充分反映现实,在复杂的项目中存在着不确定性,而且需要不断地改变和适应。敏捷方法论建议在整个项目执行过程中不断与客户互动,重视个人的反馈和变更要求,在共同开发和审查软件的过程中就预期结果达成共识。显然,在复杂的汽车软件开发项目中实施这种新的范式是一项困难的任务,正如第二节中引用的文献所证明的那样,它没有得到充分的解决。所提议的研究将选择最有希望将敏捷方法集成到V模型中的候选者,执行过程中的更改,并在示例项目(案例研究)中测试修改后的过程。这背后的一个普遍假设是继续应用V模型作为汽车软件开发的主要流程框架。因此,敏捷软件开发不会完全取代V模型,也不会将V模型集成到敏捷框架中,例如通过多次迭代V周期来增量地生产软件。关于V模型仍将是雨伞框架的假设还需要进一步研究和验证。然而,如何在V模型框架中实现敏捷方法是本文研究的重点。基于 V 模型和敏捷方法改进汽车软件开发的主要杠杆体现在以下几个方面:- 在模块层面上实施增量开发(见图1),以打破复杂性,允许用户参与并支持后期修改。
- 通过就增量短期的目标达成一致,而不是就完全交付软件的合同进行谈判,来培养用户的参与。这就改变了计划的范围,从完整的项目运行时间变为一些敏捷短期的运行时间。
- 摆脱基于纸张(或文件)的规范,使用工作软件(如原型、模拟、可执行规范),根据场景和用户背景进行验证。
这个列表将被扩展。这些陈述构成了拟议研究的假设。它们需要细化成如何在V模型中实现敏捷扩展的概念模型,并且需要验证。它旨在使用行动研究,以便在示例项目中建立评估和验证的实验。V模型将在特定区域进行修改,以评估和验证已确定的改进(见表1)。作为该方法的一个例子,本节将更详细地阐述模块级增量开发的实现(见图1)。建议将增量开发作为一种敏捷方法,以分解复杂性,允许用户参与并支持后期更改。在基于V模型的软件开发中,整体软件架构的分层分解形成了一组软件模块的定义,这些模块实现了客户要求的功能。在传统的V模式中,这些模块被完全开发和测试之后被集成到整个系统中,并再次进行测试。这个过程的最后一步是由客户进行验收测试。这导致了客户很晚才参与进来,反馈也很晚,因此会导致很晚才提出修改要求。拟议的敏捷方法是将模块开发分成几个递增的步骤。这些步骤以敏捷短期的方式进行,根据客户要求的功能,以渐进的方式实现功能。对于每个短期阶段(或一组短期阶段),客户都会参与到审查的结果中。这是一个挑战,因为客户可能无法评估所生产的软件的质量,而不能集成到整个系统中。循环中的软件(SiL)或循环中的模型(MiL)可能有助于验证生产的软件版本。为了验证这一发现,针对所提出的方法和确定的挑战,我们与汽车领域的从业人员进行了一些讨论。与从业人员讨论的结果表明,本文提出的方法在汽车软件开发中是有前景的。在多特蒙德应用科学与艺术大学IDiAL学院内,开展了许多汽车软件开发项目,这些项目将作为拟议行动研究的第一候选项目。规划的环境是ita3项目全景1,它为复杂的汽车软件开发工具和方法。它涉及到一些大型汽车供应商公司的相关软件开发活动。
从文献中发现,汽车行业正在从传统模式向更灵活的方法转变,即敏捷方法。对于汽车行业来说,这种转变并不容易,因为该行业几十年来一直在遵循传统的流程。相关的标准是基于这些流程的,项目管理和客户互动也相应地进行。然而,敏捷转型已经开始了。文献还显示,将敏捷方法与V模型相结合的成果很少,也没有任何方法专门解决敏捷方法与V模型相结合对汽车软件开发的影响。在本文中,敏捷元素被嵌入到传统的V模型中以获得更好的结果。目前,正在研究哪些开发阶段可以集成敏捷迭代。并确定了一些候选项目,将在实例项目中进一步研究。从文献资料和对从业人员的访谈结果显示,所进行的方法是有希望的,需要进一步研究。在未来的工作中,计划基于现有的挑战来评估所提出的方法:它如何解决已确定的挑战,以及所提出的方法在多大程度上可以应用于汽车软件的开发过程。
[1]J. Bosch and P. M. Bosch-Sijtsema, “Introducing agile customer centered development in a legacy software product line,” Software Practice and Experience, 2011, vol. 41, no. 8, pp. 871–882.[2]K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R.C. Martin, S. Mellor, K. Schwaber,J. Sutherland, D. Thomas, “Manifesto for Agile Software Development”, 2001.[3]B. Katumba and E. Knauss, “Agile development in automotive software development: Challenges and opportunities,” in Product- Focused Software Process Improvement, A. Jedlitschka, P. Kuvaja,M. Kuhrmann, T. M¨annist, J. M¨unch, and M. Raatikainen, Eds. Cham: Springer International Publishing, 2014, vol. 8892, pp. 33– 47.[4]Liu, B., Zhang, H., & Zhu, S, “An incremental V-model process for automotive development,” in 23rd Asia-Pacific Software Engineering Conference (APSEC) IEEE, December 2016, pp. 225- 232.[5]R. Pfeffer, Basedow, G. N., Thiesen, N. R., M. Spadinger, A. Albers, & E. Sax, “Automated Driving-Challenges for the Automotive Industry in Product Development with Focus on Process Models and Organizational Structure”, in IEEE International Systems Conference (SysCon) April 2019 (pp. 1-6). IEEE.[6]M. Broy, “Automotive software and systems engineering,” Proc. 2nd ACM and IEEE Int. Conf. Formal Methods and Models for Co- Design, 2005, MEMOCODE'05, (pp. 143-149).[7]K. Marner, S. Theobald, & S. Wagner, “Real-Life challenges in automotive release planning,” in Federated Conf. Computer Science and Information Systems (FedCSIS) (Sep 2019) (pp. 831- 839).[8]P. Hohl, J. Ghofrani, J. M¨unch, M. Stupperich, and K. Schneider, “Searching for common ground: Existing literature on automotive agile software product lines,” in Proc. International Conference on Software and System Process - ICSSP 2017, R. Bendraou, D. Raffo,H. LiGuo, and F. M. Maggi, Eds. New York, New York, USA: ACM Press, 2017, pp. 70–79.[9]A. Schloßer, J. Schnitzler, T. Sentis, & J. Richenhagen, “Agile processes in automotive industry–Efficiency and quality in softwaredevelopment” in 16 Internationales Stuttgarter Symposium2016 (pp. 489-503). Springer, Wiesbaden.[10]Takahira, R. Y., Laraia, L. R., Dias, F. A., Abraham, S. Y., Nascimento, P. T., & Camargo, A. S. “Scrum and Embedded Software development for the automotive industry”, in Proc. PICMET'14 Conference: Portland International Center for Management of Engineering and Technology; Infrastructure and Service Integration, IEEE (2014, July) (pp. 2664-2672).[11]Q. Fang, C. Zhang, X. Ye, J. Shi, & X. Zhang, “A new approach for developing safety-critical software in automotive industry” IEEE 5th International Conference on Software Engineering and Service Science, August 2013, (pp. 64-69).[12]F. McCaffery, M. Pikkarainen, & I. Richardson, “Ahaa--agile, hybrid assessment method for automotive, safety critical smes”. in Proc. 30th international conference on Software engineering, May 2008 (pp. 551-560).[13]B. Liu, H. Zhang, & S. Zhu, “An incremental V-model process for automotive development,” in 23rd Asia-Pacific Software Engineering Conference (APSEC) IEEE (2016, December), (pp. 225-232).[14]D. Feldmüller, “Usage of agile practices in Mechatronics System Design Potentials, Challenges and Actual Surveys,” in 19th International Conference on Research and Education in Mechatronics (REM) (June 2018) (pp. 30-35).[15]M. Broy,“Challenges in automotive software engineering,” in Proc. 28th International Conference on Software Engineering, ser. ICSE06. New York, NY, USA: ACM, 2006, pp. 33–42. [Online]. Available: http://doi.acm.org/10.1145/1134285.[16]A. Dresch, D. P. Lacerda, & Antunes, J. A. V, “An overflight in research” in Design science research, Springer, Cham Heidelberg, New York, Dordrecht, London: Springer International Publishing Switzerland 2015.[17]Wiecher, C., Japs, S., Kaiser, L., Greenyer, J., Dumitrescu, R., & Wolff, C. “Scenarios in the loop: integrated requirements analysis and automotive system validation”, in Proc. 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings (October 2020), (pp. 1-10).