將敏捷方法(Agile)和基于模型的開發(MBD)結合能夠有效提升軟件開發的質量和效率。本文旨在介紹MBD在敏捷環境中的工作機制、實現方式以及面臨的挑戰。
什么是敏捷軟件開發?
傳統的軟件開發方法論是瀑布式(Waterfall)模型。然而,這一線性、自上而下的方法存在局限性。如今,在軟件開發中應用敏捷方法來應對軟件項目的動態性成為了推薦方法。
敏捷宣言中,敏捷的核心價值包括:
- 個體與互動高于流程和工具
- 可工作的軟件高于詳盡的文檔
- 客戶合作高于合同談判
- 響應變化高于遵循計劃
敏捷注重盡早、持續、頻繁地交付有價值的軟件產品,同時支持變化(即使是在開發流程的后期)。敏捷更注重工作流的簡化和技術的卓越。對于工作人員,敏捷方法鼓勵自我組織、個人激勵和高效的團隊協作。簡而言之,敏捷方法強調人、協作、快速回應和靈活調整。
Scrum是軟件開發中應用最廣泛的敏捷框架。Scrum基于迭代開發,流程由團隊量身定制,以及在流程框架內的持續改進。Scrum團隊中主要的角色有:Scrum Master,負責監督整個流程;Product Owner,負責產品愿景、優先級和利益相關方的溝通;以及Developers,負責實現每個sprint中的目標。
Scrum的主要工件包括產品待辦列表(Product Backlog)、Sprint待辦列表(Sprint Backlog)以及完成的定義(Definition of Done,DoD)。如下圖所示,Scrum被構建為一個持續的開發過程,其中包括多個小版本的發布,中間穿插的短的和迭代式的開發周期,稱為Sprints。

圖1:Scrum中的敏捷實踐:流程和Sprint
一個Sprint通常持續2至4周,具體時長由團隊根據需求決定。每一個Sprint始于計劃會議,團隊會從產品待辦列表中選擇用戶故事,納入Sprint待辦列表。盡管“產品待辦事項細化”是持續進行的,但通常會在Sprint前或期間進行。每日站立會議(或稱每日Scrum)幫助團隊進行同步,討論進程,并且解決阻礙。在每個Sprint結束時,團隊會與利益相關方一起組織一次Sprint評審會議,來展示已完成的工作,隨后進行Sprint回顧會議,以反思開發過程,分析下一輪迭代中可以改進的地方。
將敏捷與MBD結合:優勢和挑戰
基于模型的開發(MBD)被認為是最先進的軟件開發方法之一。MBD遵循傳統的軟件開發V-模型(見下圖),在開發高度復雜的項目時尤其實用。MBD原則強調迭代開發、使用統一建模語言、早期質量保證(質量保證活動前置),以及在整個開發生命周期中廣泛應用自動化。

圖2:將敏捷原則應用在MBD工作流程中的優勢
MBD將模型作為核心工件,優勢顯著,例如:
值得注意的是,這些關鍵的MBD特點與敏捷核心原則高度契合,并且能夠無縫集成,從而實現開發效率的最大化:
- 跨職能團隊通過模型實現更高效的溝通。與手寫代碼不同,不僅開發人員能理解模型,其他相關人員也能輕松理解
- 借助仿真模擬和質量保證前置,實現盡早且頻繁的測試
- 自動化工具鏈和代碼生成使可持續交付的軟件成為可能
- 通過應用建模規范和簡化架構提升設計質量
如應用得當,MBD能夠通過縮短回饋周期、提升模型設計和促進團隊協作,高效實現敏捷交付。
基于上述優勢,本節繼續探究如何高效地在MBD測試流程中實現敏捷方法。
通過將驗證與確認(V&V)流程前置,優化錯誤發現。如前所述,驗證與確認活動通常被安排在V模型的右側,接近軟件最終交付的位置。但,這可能導致模型中的錯誤和缺陷發現過晚,且因反饋周期過長而導致效率低下。某些情況下,這種延遲可能導致團隊無法交付真正符合客戶需求的軟件。為了更好地遵循敏捷原則,V&V活動應當被前置至V模型的左側。這樣既能保證更短的反饋周期,同時又可以支持可迭代的開發流程。開發人員同樣能從持續反饋中受益,從結果中學習到更多,并迭代精進。
通過完成的定義(DoD)明確“完成的用戶故事”的意義。增量式軟件開發有助于實現客戶不斷變化的需求,同時要求在每一個增量中實現質量保證。應用DoD意味著需要根據建模規范驗證模型質量,且通過對于模型和生成代碼的動態測試確保功能的正確性。自動化在此處十分重要——諸如MES Model Examiner (MXAM)這樣的工具能夠集成在流程中,有效減輕因質量保證活動造成的工作負擔。
盡管敏捷方法在MBD中有諸多優勢,仍有一些挑戰存在。其中一個常見問題是:如何實現與多個開發人員在同一個模型中的協作。關鍵的解決方法在于:合理分解模型。通過應用庫、引用模型以及子系統,團隊能夠簡化并促進溝通。另一個挑戰在于:難以在Git中直觀地比較模型的差異(diff)。為了解決這個問題,開發人員可以通過專業的差異(diff)工具來實現模型變化的可視化,并判斷適合合并的時機。
結論
傳統的瀑布式軟件開發流程存在諸多局限,這使得應用敏捷原則變得尤為重要,尤其是面對復雜且不斷變化的開發環境時。作為最高效的軟件開發方法之一,基于模型的開發(MBD)具有諸多優勢。將敏捷原則融入MBD流程,不僅能幫助開發團隊實現更短的反饋周期,更支持增量式開發,并最終交付更貼近客戶不斷變化需求的高質量最終產品。
文章內容來源:MES模賽思官方網站
-
嵌入式
+關注
關注
5150文章
19668瀏覽量
317465 -
軟件開發
+關注
關注
0文章
643瀏覽量
28661 -
敏捷開發
+關注
關注
0文章
10瀏覽量
2573
發布評論請先 登錄
【《軟件開發珠璣》閱讀體驗】+ 心得
學嵌入式軟件開發需要些什么知識?
嵌入式軟件開發需要學習哪些知識點
基于模型的嵌入式軟件開發設計
教學軟件開發模型探討設計

三種迭代軟件開發模型的主要重點
嵌入式軟件開發需要學習的知識點

評論