成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

敏捷應用生命周期管理

開發 前端
Agile ALM有助有提供敏捷結構,有助于以一種堅定、務實的方式來逐步實現ALM。使用一種敏捷的ALM做法,您將贏來更快的勝利和更好的結果。

Agile ALM使用敏捷的價值觀和策略來充實了ALM,ALM的敏捷做法提升了產品的質量,縮短了上市時間,且有利于開發者以一種更加愉悅的心情來工作。我對Agile ALM的定義可歸結為,一些靈活的、對改變持開發態度的、高質量的過程和工具鏈。這是其中的一

敏捷應用生命周期管理(Agile Application Lifecycle Management,Agile ALM)正得到越來越大的推動,記得我在撰寫“Agile ALM”一書的書稿時,幾乎沒有人會想到使用敏捷來豐富ALM的做法,或是找出一種有實效的ALM做法,越來越多的工具廠商發現,他們的工具在貼上敏捷工具甚至是敏捷ALM工具的標簽之后好賣多了。

但,敏捷ALM(Agile ALM)指的是什么呢?我的看法是,ALM把一些技術性的和功能性的元素綜合在一起,為常見的項目活動和階段提供了一種全面的做法,解決了構建、配置、部署、發布、測試、質量、集成和需求管理等方面的問題,參見圖1。憑借其跨學科的做法,Agile ALM整合了項目的角色、項目的階段和各種工件。Agile ALM使用敏捷的價值觀和策略來充實了ALM,ALM的敏捷做法提升了產品的質量,縮短了上市時間,且有利于開發者以一種更加愉悅的心情來工作。我對Agile ALM的定義可歸結為,一些靈活的、對改變持開發態度的、高質量的過程和工具鏈。這是其中的一種ALM可借助來提供敏捷結構的方式。

敏捷應用生命周期管理

圖1. ALM處理不同學科和不同開發階段的問題

Agile ALM的一些基礎方面并非是全新的,您應該要尊重過去幾十年來的所有不同努力,認真研究所有結果,從中找出一個目前最適用的解決方案。在我看來,ALM是從軟件配置管理(software configuration management,SCM)演變過來的,其相應地也要扎根于基本版本控制。在選擇最適于給定任務的工具之前,您應該先定義自己的過程和需求。

個體和交互勝過過程和工具

最重要的是,敏捷ALM是一門學科和一種精神態度。使用敏捷ALM首先應從價值觀和人,以及其背后的概念入手,敏捷ALM工具就是催生出敏捷過程的ALM工具。

Agile ALM工具必須能夠增加系統的價值,促進相關利益者的合作。在我看來,Agile ALM工具鏈必須要實現 Agile ALM的一些構建塊,比如說持續集成(包括了持續檢查和持續部署)、功能/技術發布、利益相關者的關注(和協作開發)以及基于任務的開發等。許多項目非常適用于某些個單方面有著最佳優勢的工具的一個編排,把輕量級的、可配置的工具整合成靈活的工具鏈,這種做法最終會得到恰好提供了解決給定任務所需功能的一個工具混搭。

Agile ALM工具應該具備一種開放式的架構,其支持進一步加入一些工具或是功能。對輕量級工具鏈的依托可大大提高靈活性,因為您可以輕易地替換掉整體基礎設施的一些小單元,但又不會給基礎設施的其他方面帶來問題。現在我們來討論敏捷ALM的一些重要的構建塊,我們從基于任務的開發開始。

基于任務的開發

在使用基于任務的做法時,任務是交互的單元和工作的基礎。基于任務的開發是這樣的一種技術,其以一種可跟蹤的方式來把工作項目鏈接到一組特定的以完成工作項目為目標的變更上,一個例子用例可能會是這樣:您正在努力完成一項任務,該項任務列在您的簽派系統(ticket system)中,其有著唯一的標示符AGILEALM-9。您的IDE(例如安裝了Mylyn插件的Eclipse)與簽派系統(比如說JIRA)集成在一起,CI(Continuous Integration)服務器Jenkins與JIRA集成在一起,使用版本控制系統(VCS)和組件儲存庫(比如說Artifactory)來透明化工作的進展,以及工件和工作項目之間的依賴,您可以驅動階段構建來把發布版本部署到一些更高階段的環境中,而又無需重構建發布版本(“一次構建,隨處運行”)。圖2展示了Jenkins與其他工具的整合方式,Jenkins的一個構建結果頁面的放大顯示,該頁面很容易導航至VCS(查看底層的變更),導航至簽派系統(處理任務方面的事務),以及導航至組件儲存庫(處理二進制文件方面的事務)。

敏捷應用生命周期管理

圖2. 整合了VCS、簽派系統和組件儲存庫的CI服務器Jenkins

協作開發

軟件開發就是實現需求,需求是軟件發布的核心單元和驅動器。單元測試(驗證正確的事物是以正確方式開發出來的)和驗收測試(驗證正確的事物已被開發出來)一類的方法是早就存在了的。但在以前,這些方法往往是以一種孤立或是單純的方式加以管理。而實際上,一種全面、務實的解決方案才是更加應該考慮的,這種解決方案把重點投放在需求本身之上,時刻為所有利益相關者打算。您可以使用一些專用的、輕量級的工具來編寫驗收代碼,比如說Fit這個工具;或者使用一些特定的語言。Scala和Groovy這兩種語言都提供了一些很有意思的功能,這些功能設置了一個多語言生態系統,通過提供涉及特殊用途語言的解決方案來利用現有的平臺。您可以使用Scala和Groovy編寫測試,這有助于跨越一些壁壘:

1. 項目階段和項目活動之間的壁壘(因為編碼和測試之間的合作更為密切)

2. 各種類型的工件之間的壁壘(因為代碼和執行規范都是在同一個統一的基礎設施上編寫的)

3. 項目角色之間的壁壘(因為測試是以協作方式來編寫的,其機制使用的術語與問題域的相近)

4. 工具之間的壁壘(因為使用了相同的工具來進行編程和測試)

下面這個簡單的例子展示了如何使用Scala和specs2庫來編寫驗收測試,以便你對這一做法有一個初步印象。

  1. package alm  
  2. import org.specs2._  
  3. class AccSpec extends Specification { def is =  
  4.  "This is a specification to check the 'Agile ALM' string" 
  5.  "The 'Agile ALM' string should"    
  6.  "The 'Agile ALM' string should"    
  7.  "end with 'ALM'"    
  8.  def e1 = "Agile" must startWith("Agile")  
  9.  def e2 = "Agile ALM" must endWith("ALM")   

代碼定義的是方法列表的一些規格段(specification fragment),內容是簡單的文本、例子或是格式段(p的作用是增加一個空行并開始一個新代碼塊),段由^字符來隔開和鏈接,欲了解更多關于specs2的內容,請參閱specs2.org

#p#

發布管理

發布管理包括了根據定義的過程來生成軟件工件并發布這些工件,發布管理可細分成一個功能性的部分和一個技術性的部分。若要成功交付軟件,這兩個組成部分都要受到重視,而且應該彼此整合在一起。自動化和持續集成是軟件發布和交付過程的至關重要的兩個方面。

功能發布管理

功能發布管理包括了高質量地分揀客戶的需求、指定發布的需求和向客戶交付功能。敏捷實踐往往會被用來支持這一過程,許多項目通過使用管理模板Scrum達成了很好的效果。雖然只是定了一小組規則,但Scrum促進了原則的遵守并可視化了(軟件和過程中的)缺陷。可惜Scrum過于抽象,只限于“紙上談兵”。您必須要實現Scrum,再把它用到軟件工程中。例如,在某個微觀層面上,在某個Scrum版本內部,一些實現做法可能會包括了一些特殊開發階段之間的區別:在發布階段,您可能會考慮使用一個凍結區來關閉開發階段,凍結區只允許開發者進行錯誤修正方面的工作,不考慮新功能的實現。另一種有效做法是使用代碼凍結時間間隔來完成和發行最終的版本。

技術發布管理

技術發布包括了構建軟件和向用戶提供最終的產品,構建管理(包括了編譯腳本、打包和分發組件)是Agile ALM必不可少的組成部分。技術發布管理描述了這樣的一些活動:識別配置項、記錄和審計需求和配置項的變更,以及整合和交付實現。在軟件工程中,變更會經常發生而非偶然出現。因為需求會發生變化,故保持需求及其實現之間的同步是非常重要的。功能和技術發布之間可能會存在的差距應該被彌合,VCS鉤子一類的策略有助于嫁接起發布管理的這兩個組成部分。

持續集成(包括持續檢查和持續部署)

自動化手工步驟意指以一種客觀的并且是可再現的方式來交付結果。

自動化最容易出錯、最經常重復的和最耗時的活動是絕對必要的,持續集成(CI,Continuous Integration)就是構建、測試和發布過程的自動化,其目標是整合同事的活動和其他人產出的工作項目。這可催生出一個構建的生態環境,在這一環境中,新代碼的提交會直接觸發一個包括了編譯、技術測試、審計、打包、功能測試和部署在內的持續構建。所有不同的工件類型、平臺和語言,比如說Java(Groovy、Scala……)、.NET、PHP和Cobol等,都應該使用一個統一的基礎設施來進行整合,參見圖3。若各種語言/平臺沒有各自相應的本地化構建系統存在,則可使用CI場中非本地化的構建技術來這些工件包含進來。

敏捷應用生命周期管理

圖3. 一個在統一基礎設施上整合了不同工件類型的完善的CI生態系統

在一個持續集成過程中,構建報告和通知方法是要有的,信息要被共享和匯總。匯總信息意味著集成工具鏈橫跨了整個異構的生態系統,這使得利益相關者可以聚焦“放大”需要了解的地方,獲得更多的信息,從這些信息中得出一些結論。

這方面的一些例子是:給定一次具體的構建,您可以追溯出VCS中的底層變化,或者:收集組件儲存庫中所有語義上屬于同一類的二進制產出,目的是把它們作為一個集合來在上面執行某些操作。

結束語

Agile ALM跨越了軟件工程中的多個學科,Agile ALM關乎人和策略,以及使用輕量級的工具鏈來實現這些策略。Agile ALM有助有提供敏捷結構,有助于以一種堅定、務實的方式來逐步實現ALM。使用一種敏捷的ALM做法,您將贏來更快的勝利和更好的結果。可以談及的內容還有很多,但我希望本文能夠給您建立起這樣一個初始印象,即什么是Agile ALM,以及哪些是我所著的“Agile ALM”一書會更加深入探討的內容。

原文鏈接:http://www.linuxeden.com/html/develop/20120620/126049.html

【編輯推薦】

  1. 看敏捷開發提升大型機性能
  2. Qcon 2012北京站:開發者關注云計算與敏捷開發
  3. 敏捷開發中比每日會議更瘋狂的半日會議!
  4. 敏捷開發過程中個人執行力的內容框架
  5. 精益和敏捷開發大型應用實戰
責任編輯:張偉 來源: linuxeden
相關推薦

2023-04-19 07:50:59

?云原生生命周期管理

2021-07-19 05:52:29

網絡生命周期網絡框架

2013-09-26 11:20:34

Informatica

2012-12-04 10:02:03

2014-07-16 13:39:30

Windows Pho

2015-07-09 15:42:48

ios應用生命周期

2013-07-31 14:50:32

Windows PhoWP應用程序生命周期

2009-06-24 10:34:39

JSF生命周期JSF應用程序

2011-07-20 15:58:58

iPhone 應用程序 生命周期

2015-07-08 16:28:23

weak生命周期

2011-08-10 16:50:10

iPhone生命周期

2014-07-11 11:09:10

App應用程序生命周期

2012-05-28 15:37:20

WP程序生命周期

2009-05-21 09:12:41

Java開發平臺生命周期管理

2010-12-03 12:22:02

局域網文檔文檔安全數據保護

2022-06-01 09:25:16

嵌套生命周期智能技術工業資產

2024-05-28 07:55:31

SpringBean用域

2022-04-19 07:20:24

軟件開發安全生命周期SSDLC應用安全

2010-05-17 22:06:41

數據安全電子文檔鼎普科技

2020-03-13 07:33:28

物聯網生命周期管理IOT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区在线 | 久久久综合网 | 日本一区二区电影 | 一区二区三区四区在线 | 精品不卡 | 国产精品无码久久久久 | 你懂的免费在线 | 亚洲成av人片在线观看 | 在线观看视频一区 | 久久精品一区 | 99色在线| h视频免费观看 | www.国产一区 | 精品三区 | 色综合久久久 | 国产99免费 | 亚洲一区二区三区四区av | 国产欧美日韩在线观看 | 黄网站涩免费蜜桃网站 | 中文字幕精品一区二区三区精品 | 天堂网中文| 亚洲视频在线观看 | 亚洲福利在线视频 | 国产精品美女一区二区三区 | 天堂在线1 | 亚洲精品免费观看 | 亚洲播放| 成人在线视频免费观看 | 国产ts人妖一区二区三区 | av中文在线观看 | 久久久国产精品一区 | 一区二区三区四区免费视频 | 精品国产91 | 欧美黑人国产人伦爽爽爽 | 日韩欧美不卡 | 五月婷婷 六月丁香 | 国内精品视频免费观看 | 亚洲精品美女视频 | 中文字幕韩在线第一页 | 69性欧美高清影院 | 91看片视频 |