敏捷實踐由于其靈活、及時的交付、豐富的實現和迭代的特性而在軟件開發中被廣泛使用??紤]到廣泛的好處,汽車行業也正在從傳統的方法轉向汽車軟件開發的敏捷實踐。汽車軟件的主要挑戰是安全性、復雜性、用戶參與、靈活性和創新性;這些都是傳統方法難以處理的問題。為了克服這些挑戰,采用這種方法是必要的,它應該是靈活的,有快速的變更管理和用戶參與,并能夠完成汽車行業的要求和標準。因此,為了加快汽車軟件的開發過程,有必要整合敏捷開發流程。本文對敏捷方法的實施提出了見解,并了解了敏捷流程和V模型在汽車軟件開發中的綜合使用效果。本文揭示,從研究和產業的角度來看,如何將敏捷方法和V模型這兩種方法結合起來,目前還不清楚。本文的研究結果表明,在汽車軟件開發中結合使用敏捷過程和V模型是有前景的,有必要開發一種結合敏捷方法和V模型的汽車軟件開發方法。
I.引言
汽車軟件在復雜性、創新性、高可靠性、安全要求、變更管理和物理系統的特點方面都很復雜。因此,汽車行業最常見的汽車軟件開發過程遵循V模型。然而,隨著汽車系統的復雜性指數級增長,較晚的驗證和驗證過程導致了不可抗拒的更高的風險和成本的開發手段。一般來說,傳統的軟件開發過程不能滿足動態市場的需求。通過引入敏捷宣言(2001年),它承諾敏捷過程可以保證更早地將產品發布到市場。敏捷方法能夠對市場和客戶不斷變化的需求做出快速反應。此外,在開發過程中,他們提供用戶參與,以對不同的要求進行調整,并對最終的軟件進行后期改進。敏捷方法在汽車行業的整合是一個潛在的解決方案,以面對動態市場環境的挑戰和需求。采用敏捷方法的另一個關鍵因素是軟件開發的傳統過程的不靈活性。然而,敏捷是一種靈活的方法,它允許軟件的增量開發,并在迭代中開發軟件,在增量中交付軟件,而不是在開發過程結束時一次性交付所有軟件。通過在2001年引入敏捷宣言,敏捷方法在軟件開發中變得更加重要。根據敏捷宣言,敏捷方法可以獲得:
-
“個人和互動高于流程和工具
-
客戶參與合同協商與談判
-
工作軟件的全面文檔
-
應對變化而不是遵循計劃”
在汽車行業中,V模型是最常見和傳統的方法。然而,當涉及到軟件密集型系統的需求工程時,汽車領域的開發方法不能有效地適應需求。例如,當系統的復雜性相對較高時,傳統的V模型在后期驗證階段往往會導致非常高的成本,并且對后期市場和客戶的要求不靈活。
盡管這兩種方法--敏捷和V模式--都有它們的好處,但挑戰和限制仍然存在,特別是在汽車軟件開發方面。本文旨在提供關于敏捷方法在汽車軟件開發中的實施的見解,即敏捷方法如何被用于汽車軟件的開發,它們的好處、挑戰和限制。它顯示了一些與敏捷方法和傳統流程V模型的結合使用有關的效果。
II.相關工作
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模型的結合。
III.現有的挑戰
選擇敏捷方法融入V模型的第一步是分析當前使用V模型的主要挑戰,以及與敏捷方法普遍相關的主要優勢。表1根據V模型進行軟件開發項目中普遍發現的挑戰,構建了這些潛在的改進領域。所提到的挑戰是對汽車領域的詳細文獻分析的結果,主要在本文的第二部分描述。對于每一個挑戰,它都描述了V模型是如何解決這個問題的,以及與此相反,敏捷方法將如何處理這個挑戰。例如,客戶協作(表1中的 "協作類型")這一挑戰在傳統的V模型項目中通過詳細而全面的客戶合同來解決。這些合同在項目結束時成為一個問題,因為它們沒有充分反映現實,在復雜的項目中存在著不確定性,而且需要不斷地改變和適應。敏捷方法論建議在整個項目執行過程中不斷與客戶互動,重視個人的反饋和變更要求,在共同開發和審查軟件的過程中就預期結果達成共識。顯然,在復雜的汽車軟件開發項目中實施這種新的范式是一項困難的任務,正如第二節中引用的文獻所證明的那樣,它沒有得到充分的解決。

所提議的研究將選擇最有希望將敏捷方法集成到V模型中的候選者,執行過程中的更改,并在示例項目(案例研究)中測試修改后的過程。這背后的一個普遍假設是繼續應用V模型作為汽車軟件開發的主要流程框架。因此,敏捷軟件開發不會完全取代V模型,也不會將V模型集成到敏捷框架中,例如通過多次迭代V周期來增量地生產軟件。關于V模型仍將是雨傘框架的假設還需要進一步研究和驗證。然而,如何在V模型框架中實現敏捷方法是本文研究的重點。
基于 V 模型和敏捷方法改進汽車軟件開發的主要杠桿體現在以下幾個方面:
-
在模塊層面上實施增量開發(見圖1),以打破復雜性,允許用戶參與并支持后期修改。
-
通過就增量短期的目標達成一致,而不是就完全交付軟件的合同進行談判,來培養用戶的參與。這就改變了計劃的范圍,從完整的項目運行時間變為一些敏捷短期的運行時間。
-
擺脫基于紙張(或文件)的規范,使用工作軟件(如原型、模擬、可執行規范),根據場景和用戶背景進行驗證。
這個列表將被擴展。這些陳述構成了擬議研究的假設。它們需要細化成如何在V模型中實現敏捷擴展的概念模型,并且需要驗證。它旨在使用行動研究,以便在示例項目中建立評估和驗證的實驗。
V模型將在特定區域進行修改,以評估和驗證已確定的改進(見表1)。作為該方法的一個例子,本節將更詳細地闡述模塊級增量開發的實現(見圖1)。建議將增量開發作為一種敏捷方法,以分解復雜性,允許用戶參與并支持后期更改。
將敏捷嵌入到V模型中--增量式迭代
在基于V模型的軟件開發中,整體軟件架構的分層分解形成了一組軟件模塊的定義,這些模塊實現了客戶要求的功能。在傳統的V模式中,這些模塊被完全開發和測試之后被集成到整個系統中,并再次進行測試。這個過程的最后一步是由客戶進行驗收測試。這導致了客戶很晚才參與進來,反饋也很晚,因此會導致很晚才提出修改要求。擬議的敏捷方法是將模塊開發分成幾個遞增的步驟。這些步驟以敏捷短期的方式進行,根據客戶要求的功能,以漸進的方式實現功能。對于每個短期階段(或一組短期階段),客戶都會參與到審查的結果中。這是一個挑戰,因為客戶可能無法評估所生產的軟件的質量,而不能集成到整個系統中。循環中的軟件(SiL)或循環中的模型(MiL)可能有助于驗證生產的軟件版本。
為了驗證這一發現,針對所提出的方法和確定的挑戰,我們與汽車領域的從業人員進行了一些討論。與從業人員討論的結果表明,本文提出的方法在汽車軟件開發中是有前景的。
下一步是將這些變化落實到一個實際項目的方法中。
在多特蒙德應用科學與藝術大學IDiAL學院內,開展了許多汽車軟件開發項目,這些項目將作為擬議行動研究的第一候選項目。規劃的環境是ita3項目全景1,它為復雜的汽車軟件開發工具和方法。它涉及到一些大型汽車供應商公司的相關軟件開發活動。
V.總結
從文獻中發現,汽車行業正在從傳統模式向更靈活的方法轉變,即敏捷方法。對于汽車行業來說,這種轉變并不容易,因為該行業幾十年來一直在遵循傳統的流程。相關的標準是基于這些流程的,項目管理和客戶互動也相應地進行。然而,敏捷轉型已經開始了。文獻還顯示,將敏捷方法與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).
轉自智能汽車開發者平臺