TWI695284B - 敏捷式軟體開發系統及其方法 - Google Patents
敏捷式軟體開發系統及其方法 Download PDFInfo
- Publication number
- TWI695284B TWI695284B TW107147755A TW107147755A TWI695284B TW I695284 B TWI695284 B TW I695284B TW 107147755 A TW107147755 A TW 107147755A TW 107147755 A TW107147755 A TW 107147755A TW I695284 B TWI695284 B TW I695284B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- control module
- project
- management
- service management
- Prior art date
Links
Images
Abstract
本發明揭露一種敏捷式軟體開發系統及其方法,其中,該系統包括專案管理服務管控模組、程式碼審查服務管控模組、自動化研發模擬環境管控模組與持續整合服務管控模組。專案管理服務管控模組可創建或管理專案任務,並定義使用者故事以建立使用者故事物件。程式碼審查服務管控模組可檢視程式碼之審查進度,並抓取使用者故事物件相關聯的遞交程式碼。自動化研發模擬環境管控模組可自動化建置使用者故事的研發模擬環境。持續整合服務管控模組可持續整合專案任務以自動化建置使用者故事之專案任務,俾利用品質檢測軟體進行使用者故事之專案任務的品質評估。
Description
本發明係關於一種敏捷式軟體開發技術,特別是指一種敏捷式軟體開發系統及其方法。
DevOps為Development與Operations的組合詞,乃一種重視「軟體開發人員(Dev)」及「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。隨著DevOps文化熱潮推動下,跨部門協作比以往更加緊密結合,透過自動化軟體不斷地交付及架構變更,使得軟體的建構、測試及發佈能夠比以往更加敏捷可靠,並可藉由持續發佈來提早發現問題及回饋修正。於軟體專案(如Scrum)下,對管理使用者故事(User Story)的故事管理者(Story Owner)而言,如何管控使用者故事之實作品質或研發進度便是重要課題。
在自動化測試方面,依現有技術提出可結合版控系統與持續整合系統,以達到自動化單元測試之目的,當研發者遞交程式碼至版控系統時,可觸發持續整合系統進行單元測試,測試通過才能進版,隨後進行版本發佈來部署;反之,測試未通過則無法進版,需人工進行審查,待審核
通過才可以進版。此現有技術雖能進行程式碼品質的初步檢測,但無法進行較完善的自動化回歸測試,且若以專案管理角度而言,專案管理者也無法有效追蹤相關任務的實作品質。
在自動化建置驗測研發環境方面,另一現有技術提出可利用程式碼審查軟體(如Gerrit)來追蹤每次研發者的程式碼遞交,然後啟動多個相互隔離的容器同時進行測試,以縮短單次持續整合週期所耗費的時間。然而,此現有技術無法有效追蹤各使用者故事及任務的實作進度或品質,只能單純透過增加測試案例的方式增加品質。
因此,如何檢視程式碼之審查進度、自動化建置使用者故事的研發模擬環境(研發環境)、或提供相關的品質檢測軟體以進行專案任務的品質評估,實已成為本領域技術人員之一大課題。
本發明提供一種敏捷式軟體開發系統及其方法,其可檢視程式碼之審查進度、自動化建置使用者故事的研發模擬環境(研發環境)、或提供相關的品質檢測軟體以進行專案任務的品質評估。
本發明之敏捷式軟體開發系統包括:專案管理服務管控模組,係創建、管理或規劃專案任務,並定義使用者故事及其子任務以建立使用者故事物件;程式碼審查服務管控模組,係檢視程式碼之審查進度,並抓取專案管理服務管控模組所建立之使用者故事物件相關聯的遞交程式碼;
自動化研發模擬環境管控模組,係依據來自專案管理服務管控模組之使用者故事自動化建置使用者故事的研發模擬環境;以及持續整合服務管控模組,係持續整合來自專案管理服務管控模組之專案任務,以自動化建置使用者故事之專案任務,俾利用品質檢測軟體進行使用者故事之專案任務的品質評估。
本發明之敏捷式軟體開發方法包括:由專案管理服務管控模組創建、管理或規劃專案任務,並定義使用者故事及其子任務以建立使用者故事物件;由程式碼審查服務管控模組檢視程式碼之審查進度,並抓取專案管理服務管控模組所建立之使用者故事物件相關聯的遞交程式碼;由自動化研發模擬環境管控模組依據來自專案管理服務管控模組之使用者故事自動化建置使用者故事的研發模擬環境;以及由持續整合服務管控模組持續整合來自專案管理服務管控模組之專案任務,以自動化建置使用者故事之專案任務,俾利用品質檢測軟體進行使用者故事之專案任務的品質評估。
為讓本發明上述特徵與優點能更明顯易懂,下文特舉實施例,並配合所附圖示作詳細說明。以下描述內容中將部分闡述本發明之額外特徵及優點,且此等特徵及優點將部分自所述描述內容顯而易見,或可藉由對本發明之實踐習得。本發明之特徵及優點借助於在申請專利範圍中特別指出的元件及組合來認識到並達到。應理解,前文一般描述與以下詳細描述兩者均僅為例示性及解釋性的,且不欲
約束本發明所主張之範圍。
1‧‧‧敏捷式軟體開發系統
10‧‧‧敏捷式軟體專案管控平台
11‧‧‧使用者介面
12‧‧‧專案管理服務管控模組
13‧‧‧程式碼審查服務管控模組
131‧‧‧決策單元
14‧‧‧專案程式碼版本管控模組
15‧‧‧自動化研發模擬環境管控模組
16‧‧‧持續整合服務管控模組
161、162‧‧‧決策單元
17‧‧‧容器倉庫管控模組
20‧‧‧資料庫
30‧‧‧告警模組
A‧‧‧系統使用者端
A1‧‧‧研發者端
A2‧‧‧專案管理者端
A3‧‧‧故事管理者端
S11、S21至S23‧‧‧步驟
第1圖為本發明之敏捷式軟體開發系統的架構示意圖;第2圖為本發明之敏捷式軟體開發方法的研發生命週期流程圖;以及第3圖為本發明之敏捷式軟體開發方法的告警機制流程圖。
以下藉由特定的具體實施形態說明本發明之實施方式,熟悉此技術之人士可由本說明書所揭示之內容輕易地了解本發明之其他優點與功效,亦可藉由其他不同的具體實施形態加以施行或應用。
本發明下述之研發團隊或系統使用者端(系統使用者)可包括例如研發者端(研發者)、專案管理者端(專案管理者)、故事管理者端(故事管理者)等,研發者端、專案管理者端、故事管理者端分別為研發者、專案管理者、故事管理者所使用之電子裝置,且電子裝置可為行動裝置(如智慧手機,個人數位數理)、電腦(如個人電腦,平板電腦,筆記型電腦)、伺服器(如雲端伺服器,遠端伺服器,網路伺服器)等,但不以此為限。
本發明提出一種敏捷式軟體開發系統及其方法,利用自動化軟體專案品質管控驗證機制,讓故事管理者端(故事管理者)在將產品研發成果交付給產品管理者端(產品管理
者,Product Owner)之前,先進行功能的測試及驗證,以在確認無誤後才完成任務交付。同時,本發明可協助研發團隊快速自行建置研發環境以進行驗收測試,亦可提供所需功能之驗收環境,以在開發週期中有效掌握使用者故事及任務實作品質。
本發明建構一種管控敏捷式專案所定義使用者故事及任務的敏捷式軟體專案管控平台,透過自動化技術協助研發團隊自動地驗測所遞交的程式碼品質,並提供一站式(one-click button)自動建置研發模擬環境。同時,研發團隊可藉由使用者故事及任務的實際研發狀況以進行成果檢視,從而改善以往專案管理者端(專案管理者)無法有效得知實際研發狀況是否如預期進展的窘境。
本發明可協助敏捷式軟體之研發團隊進行軟體專案管理及研發。基於軟體專案(如Scrum)之開發方式的團隊,可幫助專案管理者端(專案管理者)對使用者故事任務品質之生命週期的跨專案管控,並利用單一入口實現軟體專案從使用者故事規劃、研發者端(研發者)之任務實作進度管理、自動化建置研發環境(Testbed)進行測試、故事管理者端(故事管理者)之驗收任務,直到研發者端(研發者)之實作使用者故事,亦可於實作完成後對相關任務之程式碼進版,提供告警機制輔佐研發團隊儘快解決程式碼合併衝突,大幅降低傳統研發團隊需耗費不少人力成本與時間檢查可能的程式碼衝突。
DevOps為Development與Operations的組合詞,乃一
種重視「軟體開發人員(Dev)」及「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。本發明結合多種DevOps軟體或工具(toolkits),實現單一平台管控敏捷式軟體專案的生命週期,提供一站式專案任務的建置編譯、自動化建置研發環境及智慧型程式碼合併衝突告警等,有助於解決以往相依專案間之生命週期管控的議題,亦能降低相依專案間建置的複雜度。同時,藉由自動化生成研發環境與智慧型程式碼合併機制,亦可提升研發者端(研發者)的作業效率。
請參閱第1圖,係為本發明之敏捷式軟體開發系統1的架構示意圖。為協助敏捷式軟體專案之研發生命週期管控,可將一站式自動化管控機制實現於敏捷式軟體開發系統1之一敏捷式軟體專案管控平台(StoryBoard)10上,且敏捷式軟體專案管控平台10為整個軟體專案管控之服務平台。
敏捷式軟體開發系統1主要包括專案管理服務管控模組12、程式碼審查服務管控模組13、自動化研發模擬環境管控模組15與持續整合服務管控模組16。專案管理服務管控模組12可創建、管理或規劃專案任務,並定義使用者故事及其相關的子任務以建立使用者故事物件。程式碼審查服務管控模組13可檢視程式碼之審查進度,並抓取專案管理服務管控模組12所建立之使用者故事物件相關聯的遞交程式碼。自動化研發模擬環境管控模組15可依據來自專案管理服務管控模組12之使用者故事自動化建置使用
者故事的研發模擬環境。持續整合服務管控模組16可持續整合來自專案管理服務管控模組12之專案任務,以自動化建置使用者故事之專案任務,俾利用品質檢測軟體進行使用者故事之專案任務的品質評估。
具體而言,敏捷式軟體開發系統1(敏捷式軟體專案管控平台10)可包括:
[1]使用者介面11:用以提供圖形化介面或應用程式介面(API)給系統使用者端A(系統使用者)使用。例如,使用者介面11可提供UI管理介面,以方便系統使用者端A(系統使用者)使用。申言之,使用者介面11可提供系統使用者端A管控敏捷式專案中的使用者故事及相關任務、或程式碼遞交紀錄,且一個使用者故事具有多個任務。
[2]專案管理服務管控模組12:用以創建及管理專案任務、使用者故事之定義及任務規劃。例如,專案管理服務管控模組12可創建、管理或規劃專案任務,並協助定義使用者故事及相關的子任務以建立使用者故事物件。申言之,專案管理服務管控模組12可負責整合專案管理軟體(如Redmine),並協助定義使用者故事及相關的子任務以建立使用者故事物件,其中一個專案具有多個使用者故事,且一個使用者故事具有多個任務。
[3]程式碼審查服務管控模組13:用於專案協同開發程式碼審查,以確保專案源碼(source code)之品質合乎規範。例如,程式碼審查服務管控模組13可透過程式碼審查軟體(如Gerrit)協助檢視專案之程式碼的審查進度,並抓
取專案管理服務管控模組12所建立之使用者故事物件相關聯的遞交程式碼。申言之,程式碼審查服務管控模組13可負責整合程式碼審查軟體(如Gerrit),協助檢視程式碼之審查進度的管控,並抓取專案管理服務管控模組12所建立之使用者故事物件相關聯之所有遞交程式碼,其中一個使用者故事具有多個任務,且各個任務具有多個程式碼遞交單據。
[4]專案程式碼版本管控模組14:用以管理或封存專案源碼。例如,專案程式碼版本管控模組14為各專案之原始碼的管理或封存的倉庫(即程式碼之版本管理倉庫),能定期檢查程式碼審查服務管控模組13是否同步。申言之,專案程式碼版本管控模組14可作為程式碼之版本管理倉庫,以管理或封存各專案之原始碼,並定期檢查程式碼審查服務管控模組13是否同步。
[5]自動化研發模擬環境管控模組15:用以自動化生產研發模擬環境的管理平台。例如,自動化研發模擬環境管控模組15可依據來自專案管理服務管控模組12之使用者故事自動化建置使用者故事的研發模擬環境,以快速提供研發者端A1(研發者)的研發環境。
[6]持續整合服務管控模組16:用於專案任務之持續整合、建置、測試或打包發佈。例如,持續整合服務管控模組16可持續整合或建置來自專案管理服務管控模組12之專案任務,以自動化建置使用者故事之專案任務,並利用相關的品質檢測軟體進行使用者故事之專案任務的品質評
估。申言之,持續整合服務管控模組16可負責專案任務的持續整合建置,以自動化的方式建置使用者故事之專案任務,提供相關的品質檢測軟體進行專案任務的品質評估。
[7]容器倉庫管控模組17:用以管理專案任務之映像檔案的版本。例如,容器倉庫管控模組17可以將由持續整合服務管控模組16編譯出的映像檔案進行封存管理,並將映像檔案打上對應的版本標籤。
基於上述第1圖之敏捷式軟體開發系統1的架構,本發明可透過敏捷式軟體專案管控平台10,以快速提供一站式的專案任務的實作品質管理、一站式的自動化建置使用者故事情境的研發模擬環境、或一站式的使用者故事任務的實作程式碼合併予研發團隊。
上述專案管理服務管控模組12、程式碼審查服務管控模組13、專案程式碼版本管控模組14、自動化研發模擬環境管控模組15、持續整合服務管控模組16與容器倉庫管控模組17等六個模組,可互相連接、通訊、交換資料或程式碼或訊息,並能採用硬體、韌體或軟體之形式予以建構、組成或實現。例如,此六個模組可採用硬體之單一晶片或多個晶片予以建構。或者,專案管理服務管控模組12可為專案管理服務管控軟體或程式,程式碼審查服務管控模組13可為程式碼審查服務管控軟體或程式,專案程式碼版本管控模組14可為專案程式碼版本管控軟體或程式,自動化研發模擬環境管控模組15可為自動化研發模擬環境管控軟體或程式,持續整合服務管控模組16可為持續整合服務
管控軟體或程式,容器倉庫管控模組17可為容器倉庫管控軟體或程式。但是,本發明並不以此為限。
請參閱第2圖,係為本發明之敏捷式軟體開發方法的研發生命週期流程圖,亦適用於上述第1圖之敏捷式軟體開發系統1。
如第2圖所示,敏捷式軟體開發方法主要包括:由專案管理服務管控模組12創建、管理或規劃專案任務,並定義使用者故事及其相關的子任務以建立使用者故事物件;由程式碼審查服務管控模組13檢視程式碼之審查進度,並抓取專案管理服務管控模組12所建立之使用者故事物件相關聯的遞交程式碼;由自動化研發模擬環境管控模組15依據來自專案管理服務管控模組12之使用者故事自動化建置使用者故事的研發模擬環境;以及由持續整合服務管控模組16持續整合來自專案管理服務管控模組12之專案任務,以自動化建置使用者故事之專案任務,俾利用品質檢測軟體進行使用者故事之專案任務的品質評估。
同時,第2圖之敏捷式軟體開發方法的研發生命週期可包括下列程序P11至程序P19,亦請一併參閱第1圖。
在程序P11中,當為例如研發者端A1(研發者)或專案管理者端A2(專案管理者)之系統使用者端A(系統使用者),欲快速建置一使用者故事的研發環境時,可先透過使用者介面11登入以操作使用者故事。
在程序P12中,由專案管理服務管控模組12呼叫程式碼審查服務管控模組13進行解析,以抓取屬於使用者故
事及其下任務所有關聯之程式碼遞交紀錄來建立一個使用者故事物件。
在程序P13中,由程式碼審查服務管控模組13之決策單元131驗證使用者故事物件所關聯的程式碼遞交是否為有效。若程式碼遞交為無效,則返回「開始」。反之,若程式碼遞交為有效,則進入專案程式碼版本管控模組14以進行程式碼合併,又若專案程式碼版本管控模組14對程式碼合併失敗,則回傳「錯誤訊息」予系統使用者端A(系統使用者),以返回「開始」。
在程序P14中,若專案程式碼版本管控模組14對程式碼合併成功,則呼叫自動化研發模擬環境管控模組15。若自動化研發模擬環境管控模組15沒有資源,則會等待資源,直到取得資源以順利建置可用環境。又,若可用環境為建置失敗,則自動化研發模擬環境管控模組15回傳「錯誤訊息」予系統使用者端A(系統使用者),以返回「開始」。
在程序P15中,由自動化研發模擬環境管控模組15觸發持續整合服務管控模組16,以由持續整合服務管控模組16進行最新版本之研發模擬環境之自動化管線的建置任務。在此,自動化管線建置可指一系列建置流程,包括資料庫20(見第1圖)的準備、初始化資料的建置、啟動的順序與相依性。
在程序P16中,當系統環境有預存水位的研發模擬環境時,持續整合服務管控模組16可直接取用研發模擬環境,以減少建置所需時間。反之,當系統環境無預存水位
的研發模擬環境時,則需重新建置新的研發模擬環境。新的研發模擬環境的建置任務可重新透過專案程式碼版本管控模組14抓取各專案之原始碼,以依據各專案之原始碼依序建置。在完成建置研發模擬環境時,自動化研發模擬環境管控模組15可回報給程式碼審查服務管控模組13。
在程序P17中,由程式碼審查服務管控模組13依據先前所建立的使用者故事物件抓取相關任務的(實作)程式碼,再依照相關任務的程式碼之遞交順序的相依關係重新排序程式碼,然後將已排序的程式碼重新編譯、自動化測試或打包安裝於研發模擬環境上。
在程序P18中,在服務正常啟動完畢與完成相關初始化後,由持續整合服務管控模組16之決策單元161驗證研發模擬環境是否為建置成功。若研發模擬環境為建置成功,則持續整合服務管控模組16之決策單元161交付研發模擬環境給系統使用者端A,以供系統使用者端A取得研發模擬環境(見步驟S11)。反之,若研發模擬環境為建置失敗,則持續整合服務管控模組16之決策單元161通過告警模組30回報「錯誤訊息」給系統使用者端A,以返回「開始」。
最後,在程序P19中,若系統使用者端A(系統使用者)為故事管理者端A3(故事管理者),則持續整合服務管控模組16之決策單元162評估是否要將程式碼合併進版。若要將程式碼合併進版,則持續整合服務管控模組16之決策單元162會判斷是否為有效的程式碼合併。若為有效的程式
碼合併(如允許進版或正常合併),則持續整合服務管控模組16進行程式碼合併進版之作業,並透過容器倉庫管控模組17上傳至容器倉庫進行封存,完成此使用者故事任務的研發。反之,若為無效的程式碼合併(如否定進版或無法正常合併),則持續整合服務管控模組16通過告警模組30回報「錯誤訊息」給系統使用者端A,以返回「開始」。
進一步言之,如第2圖與第1圖所示,本發明之敏捷式軟體開發系統1(敏捷式軟體專案管控平台10)管理使用者故事,從建置研發模擬環境到程式碼合併的流程可包括下列程序S21至程序S27。
在程序P21中,由研發團隊依據客戶需求定義使用者故事及劃分任務。例如,研發團隊可至專案管理軟體(如Redmine)進行使用者故事之定義及任務的劃分。
在程序P22中,由研發者端A1(研發者)認領使用者故事任務後進行任務程式碼之實作,並上傳任務程式碼至程式碼審查軟體(如Gerrit)。例如,研發者端A1(研發者)於軟體專案(如Scrum)之小組會議後,先認領使用者故事任務以開始實作任務程式碼,再將任務程式碼上傳至程式碼審查軟體進行審查。接著,敏捷式軟體專案管控平台10可在背景自動解析專案管理軟體(如Redmine)之使用者故事任務與代碼審查軟體的實作程式碼之關聯性,以繪製成相關的表格呈現給系統使用者端A(如研發者端A1、專案管理者端A2或故事管理者端A3)。
在程序P23中,由研發者端A1(研發者)依據使用者故
事自行建置使用者故事之研發模擬環境。例如,當研發者端A1(研發者)需要快速建置基於使用者故事情境的研發模擬環境時,研發者端A1(研發者)可至敏捷式軟體專案管控平台10上點選建置使用者故事的研發模擬環境。
在程序P24中,由程式碼審查服務管控模組13抓取各專案之相關程式碼,並依據各專案之程式碼的遞交順序對程式碼進行重新排序及建置編譯打包。例如,程式碼審查服務管控模組13可至資料庫20查詢使用者故事所關聯的程式碼遞交單據,以透過程式碼審查軟體(如Gerrit)抓取相關程式碼,再由程式碼審查服務管控模組13依據各專案之程式碼的遞交順序對程式碼進行重新排序及建置編譯打包。
在程序P25中,由自動化研發模擬環境管控模組15呼叫持續整合服務管控模組16建置新的實驗環境。例如,當觸發自動化研發模擬環境管控模組15時,自動化研發模擬環境管控模組15可呼叫持續整合服務管控模組16開始建置最新版本之研發環境。
在程序P26中,由自動化研發模擬環境管控模組15將程式碼審查服務管控模組13所打包的編譯檔案安裝於新的實驗環境。例如,自動化研發模擬環境管控模組15可將已打包之編譯檔案及相關配置檔安裝到最新版本之研發環境裡的各研發專案上,再將服務重新啟動,完成後交付環境資訊給研發團隊。
最後,在程序P27中,由故事管理者端A3藉由敏捷
式軟體專案管控平台10進行使用者故事任務的實作進度追蹤及驗收使用者故事任務之實作品質,若合乎預期,則故事管理者端A3可以點選[同意]按鈕以同意使用者故事的進版。繼之,故事管理者端A3(故事管理者)可至敏捷式軟體專案管控平台10之介面上點選使用者故事的內容,以檢視使用者故事任務的實作進度及任務狀況,並評估使用者故事的品質是否合乎預期。若使用者故事的品質有合乎預期,則故事管理者端A3(故事管理者)可至敏捷式軟體專案管控平台10之介面上點選[同意]按鈕,以將使用者故事的程式碼合併進版。
請參閱第3圖,係為本發明之敏捷式軟體開發方法的告警機制流程圖,亦適用於上述第1圖之敏捷式軟體開發系統1。當研發團隊在開發使用者故事任務時,敏捷式軟體專案管控平台10可定期在背景自動進行專案程式碼之品質監測,並掃描程式碼是否有可能的錯誤發生,例如是否含有潛在的程式碼合併衝突等,以提早回饋給研發團隊知悉及修復。
具體而言,敏捷式軟體開發方法的告警機制可包括下列程序P31至程序P33,亦請一併參閱第1圖。
在程序P31中,由敏捷式軟體專案管控平台10先掃描所有的使用者故事(見步驟S21)。
在程序P32中,由專案管理服務管控模組12呼叫程式碼審查服務管控模組13至程式碼審查軟體(如Gerrit)上進行解析,以由程式碼審查服務管控模組13抓取各使用者
故事所關聯的程式碼遞交紀錄及建立使用者故事物件,並由程式碼審查服務管控模組13依據各專案之程式碼遞交紀錄的父子代關係對程式碼重新排序(見步驟S22)。
最後,在程序P33中,在程式碼完成排序時,由程式碼審查服務管控模組13之決策單元131分析各使用者故事之程式碼的遞交相依關係圖是否為有向無環圖(Directed Acyclic Graph,DAG)。若程式碼的遞交相依關係圖為有向無環圖(DAG),則程式碼審查服務管控模組13可利用三向合併(3-way merge)演算法執行三向程式碼合併之模擬作業,以判斷是否可以正常合併程式碼。若無法正常合併程式碼,則程式碼審查服務管控模組13可將有問題的程式碼遞交紀錄通過告警模組30發送「告警訊息」至研發團隊。
進一步言之,如第3圖與第1圖所示,敏捷式軟體開發系統1於自動化程式碼合併衝突告警服務的流程可包括下列程序P41至程序P43。
在程序P41中,由程式碼審查服務管控模組13啟動程式碼合併衝突告警服務排程。例如,程式碼審查服務管控模組13可依據系統配置檔於背景自動定期或掃描敏捷式軟體專案管控平台10上的各使用者故事。
在程序P42中,由程式碼審查服務管控模組13抓取各專案之相關程式碼,並依據各專案之程式碼的遞交順序對程式碼進行重新排序,亦可偵測程式碼的遞交相依關係圖是否為有向無環圖(DAG)。例如,程式碼審查服務管控模組13可抓取每個使用者故事所相關的程式碼,並依據
程式碼之遞交順序的父子代關係對程式碼進行排序。同時,程式碼審查服務管控模組13亦可偵測程式碼的遞交相依關係圖是否為有向無環圖(DAG),若為有向無環圖(DAG),則開始進行三向合併(3-way merge)演算法進行程式碼之合併,以模擬是否有程式碼之合併衝突。
最後,在程序P43中,由程式碼審查服務管控模組13將有衝突的程式碼通知相關研發團隊。例如,當程式碼有合併衝突發生時,程式碼審查服務管控模組13可將各使用者故事中含有衝突的程式碼的部分以電子郵件(email)方式告知研發團隊。
綜上,本發明之敏捷式軟體開發系統及其方法可至少具有下列特色、優點或技術功效:
一、本發明可包括例如(1)協助專案管理者端(專案管理者)進行相關的任務規劃;(2)提供研發者端(研發者)及故事管理者端(故事管理者)進行任務實作成果檢視;(3)實現單一平台管控敏捷式軟體專案的生命週期;(4)提供一站式專案任務的建置編譯;(5)解決以往相依專案間生命週期管控的議題,及降低建置相依專案間的複雜度;或(6)自動化生成研發環境與智慧型程式碼合併進版機制,亦提升研發者端(研發者)的作業效率。
二、本發明可讓研發者端(研發者)自行檢測所遞交之程式碼品質,並能隨時追蹤本身的研發進度。同時,專案管理者端(專案管理者)亦可透過本發明所提出的機制進行專案任務之驗收,以確保相關程式碼的實作品質佳與進度
如期完成,從而改善傳統無法有效掌握實際研發品質的窘境。
三、本發明可快速生成使用者故事任務之研發模擬環境,亦能啟動多個相互隔離的容器環境來進行測試,提供給研發者端(研發者)進行交叉測試開發。
四、本發明乃關於自動化敏捷式軟體開發的應用技術,可將目前盛行的DevOps軟體整合應用於敏捷式軟體開發管理,以彌補現行專案管理軟體對於程式碼之實作品質於驗證方面的不足,降低日後漏洞(Bugs)修復所需要的時間與人力成本。
五、本發明可能應用之產業:基於微服務開發的系統或平台,特別是雲端化需求的軟體開發產業,例如電商、遊戲產業、或利用雲端特性開發的產業等。
六、本發明可能應用之產品:例如開發軟體定義資料中心方案(ECoreCloud)、於雲端平台內實現DevOps產品的服務、或提供平台即服務(platform as a service,PaaS)應用服務。
上述實施形態僅例示性說明本發明之原理、特點及其功效,並非用以限制本發明之可實施範疇,任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。任何運用本發明所揭示內容而完成之等效改變及修飾,均仍應為申請專利範圍所涵蓋。因此,本發明之權利保護範圍,應如申請專利範圍所列。
1‧‧‧敏捷式軟體開發系統
10‧‧‧敏捷式軟體專案管控平台
11‧‧‧使用者介面
12‧‧‧專案管理服務管控模組
13‧‧‧程式碼審查服務管控模組
14‧‧‧專案程式碼版本管控模組
15‧‧‧自動化研發模擬環境管控模組
16‧‧‧持續整合服務管控模組
17‧‧‧容器倉庫管控模組
20‧‧‧資料庫
30‧‧‧告警模組
A‧‧‧系統使用者端
A1‧‧‧研發者端
A2‧‧‧專案管理者端
A3‧‧‧故事管理者端
Claims (20)
- 一種敏捷式軟體開發系統,包括:專案管理服務管控模組,係創建、管理或規劃專案任務,並定義使用者故事及其子任務以建立使用者故事物件;程式碼審查服務管控模組,係檢視程式碼之審查進度,並抓取該專案管理服務管控模組所建立之該使用者故事物件相關聯的遞交程式碼;自動化研發模擬環境管控模組,係依據來自該專案管理服務管控模組之使用者故事自動化建置該使用者故事的研發模擬環境;以及持續整合服務管控模組,係持續整合來自該專案管理服務管控模組之專案任務,以自動化建置該使用者故事之專案任務,俾利用品質檢測軟體進行該使用者故事之專案任務的品質評估。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,係透過敏捷式軟體專案管控平台,以提供一站式的專案任務的實作品質管理、一站式的自動化建置使用者故事情境的研發模擬環境、或一站式的使用者故事任務的實作程式碼合併。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,其中,該程式碼審查服務管控模組更依據該使用者故事物件抓取相關任務的程式碼,再依照該相關任務的程式碼之遞交順序的相依關係重新排序該程式碼,然後將已排 序的該程式碼重新編譯、自動化測試或打包安裝於該研發模擬環境上。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,其中,該程式碼審查服務管控模組更啟動程式碼合併衝突告警服務排程,以依據系統配置檔自動或定期掃描該使用者故事。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,其中,該程式碼審查服務管控模組更分析該使用者故事之程式碼的遞交相依關係圖是否為有向無環圖(DAG),若是,則該程式碼審查服務管控模組利用三向合併演算法執行三向程式碼合併之模擬作業。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,其中,該自動化研發模擬環境管控模組更觸發該持續整合服務管控模組,以由該持續整合服務管控模組進行最新版本之研發模擬環境之自動化管線的建置任務。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,其中,該持續整合服務管控模組更評估是否要將該程式碼合併進版,若要將該程式碼合併進版且為有效的程式碼合併,則該持續整合服務管控模組進行該程式碼合併進版之作業。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,更包括使用者介面,係提供系統使用者端管控該使用者故事及相關任務、或程式碼遞交紀錄。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,更 包括專案程式碼版本管控模組,係作為該程式碼之版本管理倉庫以管理或封存各專案之原始碼。
- 如申請專利範圍第1項所述之敏捷式軟體開發系統,更包括容器倉庫管控模組,係將該持續整合服務管控模組編譯出的映像檔案進行封存管理,並將該映像檔案打上對應的版本標籤。
- 一種敏捷式軟體開發方法,包括:由專案管理服務管控模組創建、管理或規劃專案任務,並定義使用者故事及其子任務以建立使用者故事物件;由程式碼審查服務管控模組檢視程式碼之審查進度,並抓取該專案管理服務管控模組所建立之該使用者故事物件相關聯的遞交程式碼;由自動化研發模擬環境管控模組依據來自該專案管理服務管控模組之使用者故事自動化建置該使用者故事的研發模擬環境;以及由持續整合服務管控模組持續整合來自該專案管理服務管控模組之專案任務,以自動化建置該使用者故事之專案任務,俾利用品質檢測軟體進行該使用者故事之專案任務的品質評估。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,係透過敏捷式軟體專案管控平台,以提供一站式的專案任務的實作品質管理、一站式的自動化建置使用者故事情境的研發模擬環境、或一站式的使用者故事任務的實 作程式碼合併。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由該程式碼審查服務管控模組依據該使用者故事物件抓取相關任務的程式碼,再依照該相關任務的程式碼之遞交順序的相依關係重新排序該程式碼,然後將已排序的該程式碼重新編譯、自動化測試或打包安裝於該研發模擬環境上。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由該程式碼審查服務管控模組啟動程式碼合併衝突告警服務排程,以依據系統配置檔自動或定期掃描該使用者故事。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由該程式碼審查服務管控模組分析該使用者故事之程式碼的遞交相依關係圖是否為有向無環圖(DAG),若是,則該程式碼審查服務管控模組利用三向合併演算法執行三向程式碼合併之模擬作業。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由該自動化研發模擬環境管控模組觸發該持續整合服務管控模組,以由該持續整合服務管控模組進行最新版本之研發模擬環境之自動化管線的建置任務。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由該持續整合服務管控模組評估是否要將該程式碼合併進版,若要將該程式碼合併進版且為有效的程式碼合併,則該持續整合服務管控模組進行該程式碼合 併進版之作業。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由系統使用者端透過使用者介面管控該使用者故事及相關任務、或程式碼遞交紀錄。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由專案程式碼版本管控模組作為該程式碼之版本管理倉庫以管理或封存各專案之原始碼。
- 如申請專利範圍第11項所述之敏捷式軟體開發方法,更包括由容器倉庫管控模組將該持續整合服務管控模組編譯出的映像檔案進行封存管理,並將該映像檔案打上對應的版本標籤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147755A TWI695284B (zh) | 2018-12-28 | 2018-12-28 | 敏捷式軟體開發系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107147755A TWI695284B (zh) | 2018-12-28 | 2018-12-28 | 敏捷式軟體開發系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI695284B true TWI695284B (zh) | 2020-06-01 |
TW202026916A TW202026916A (zh) | 2020-07-16 |
Family
ID=72176091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107147755A TWI695284B (zh) | 2018-12-28 | 2018-12-28 | 敏捷式軟體開發系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI695284B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734649B1 (en) | 2022-06-03 | 2023-08-22 | International Business Machines Corporation | Automated evaluation of code delivery |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487977A (zh) * | 2015-11-30 | 2016-04-13 | 北京锐安科技有限公司 | 一种面向敏捷的自动化测试管理系统和方法 |
TW201721434A (zh) * | 2015-12-01 | 2017-06-16 | Chunghwa Telecom Co Ltd | 用於自動化生成軟體測試資料之電腦程式產品及其方法 |
US9858069B2 (en) * | 2008-10-08 | 2018-01-02 | Versionone, Inc. | Transitioning between iterations in agile software development |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线系统及其方法 |
-
2018
- 2018-12-28 TW TW107147755A patent/TWI695284B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858069B2 (en) * | 2008-10-08 | 2018-01-02 | Versionone, Inc. | Transitioning between iterations in agile software development |
CN105487977A (zh) * | 2015-11-30 | 2016-04-13 | 北京锐安科技有限公司 | 一种面向敏捷的自动化测试管理系统和方法 |
TW201721434A (zh) * | 2015-12-01 | 2017-06-16 | Chunghwa Telecom Co Ltd | 用於自動化生成軟體測試資料之電腦程式產品及其方法 |
CN107621944A (zh) * | 2017-09-22 | 2018-01-23 | 天翼电子商务有限公司 | 基于自动化运维的持续集成流水线系统及其方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734649B1 (en) | 2022-06-03 | 2023-08-22 | International Business Machines Corporation | Automated evaluation of code delivery |
Also Published As
Publication number | Publication date |
---|---|
TW202026916A (zh) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
EP3769223B1 (en) | Unified test automation system | |
CN109960643B (zh) | 一种代码测试方法和装置 | |
US20220245062A1 (en) | Feature-based deployment pipelines | |
US20060005157A1 (en) | Engineering standard work framework method and system | |
CN105701010A (zh) | 一种加速软件测试的方法和装置 | |
JP2010231782A (ja) | 機能自動化のための方法およびシステム | |
CN110413316B (zh) | 面向区块链智能合约的非侵入式测试系统及方法 | |
CN112527349A (zh) | 动态部署策略优化及持续部署业务保障系统 | |
CN105138386A (zh) | 基于Jenkins与vManager的逻辑设计验证持续集成平台 | |
CN105955749A (zh) | 软件项目的持续集成方法和装置 | |
JP2009534773A (ja) | プロセス符号化 | |
Affonso et al. | A reference architecture based on reflection for self-adaptive software | |
TWI695284B (zh) | 敏捷式軟體開發系統及其方法 | |
CN114297056A (zh) | 一种自动化测试方法及系统 | |
CN113050929A (zh) | 一种基于Hyperledger Fabric的智能合约开发运维一体化平台 | |
CN114610368B (zh) | 一种平台工具链整合及维护方法、系统、设备和介质 | |
Pendyala | Evolution of integration, build, test, and release engineering into devops and to DevSecOps | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
Orviz et al. | A set of common software quality assurance baseline criteria for research projects | |
US11113105B1 (en) | Computer implemented system and method for generating platform agnostic digital worker | |
Grubic et al. | Conveyor:{One-Tool-Fits-All} Continuous Software Deployment at Meta | |
CN115796754A (zh) | 面向it研发管理过程的软件发布管理方法、系统及平台 | |
Mulder | Enterprise DevOps for Architects: Leverage AIOps and DevSecOps for secure digital transformation | |
Pastrana-Pardo et al. | Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities |