青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

兔子的技術博客

兔子

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評論

閱讀排行榜

評論排行榜

轉自:http://www.phpchina.com/?action_zendinfoview_itemid_34567.html
在敏捷開發中采用演進式架構設計

  在敏捷開發過程中,我們還需要對系統架構進行設計嗎?事實上,Martin Fowler在《Is Design Dead?》一文中已經給出了答案,那就是我們同樣不能忽略對系統架構的設計。與計劃性的設計(Planned Design)不同,我們需要演進式的設計(Evolutionary Design)。在敏捷開發的生命周期中,我們通過每一次迭代來豐富與更新我們的設計方案,以使其最大限度地符合客戶對系統的需求。這里所指的需求,包括功能性需求和非功能性需求。

  在Agile Journal四月刊中,IBM's Methods Group的敏捷專家Scott W. Ambler詳細地闡述了在敏捷語境中的架構設計方法,他提出了所謂“架構預測(Architectural Envisioning)”的方法,以應對敏捷開發中逐步演進的架構設計過程。

  Scott指出,敏捷模型驅動開發(Agile Model Driven Development,AMDD)明確地包括了初始需求分析與架構建模,這個過程發生在敏捷項目開發的第0次迭代中。所謂第0次迭代,就相當于項目的熱身活動,是項目得以啟動的基礎。在此迭代期間,團隊需要充分地理解項目的范圍,甄別可行地技術策略。這個階段所能夠收集到的信息將有助于你對整個項目最初的粗略估計,以制定合適的項目計劃,從而獲得啟動項目的資金與足夠的支持。

  敏捷模型驅動開發的生命周期如下圖所示:

  

  根據圖中所示,在每次迭代的初期,制定的迭代計劃都應該包括建模的工作。在此期間,可以召開建模的頭腦風暴會議,討論系統的功能特征,并思考實現這些特征的高層設計策略。大多數敏捷團隊都會通過測試驅動開發(TDD)確定需求與設計的細節。

  通過對架構的預測,可以在項目早期進行一些高層次的架構建模,以助于團隊與關鍵利益相關人商討系統采取的技術策略。這一行為的關鍵目標是識別出架構策略,而不是撰寫如山一般堆積的文檔,從而使得你能夠快速完成架構建模。其中的竅門就是盡量保持簡單。開發者不需要對大量的細節進行建模,而只需要足夠即可。如果你正在編寫用例,意味著你只需要以標注形式列出用例的要點就足夠好了。如果你正在對領域建模,可以直接在白板上繪圖,或者使用CRC卡片。你的目的在于對信息的共享與交流,而不是編寫細致的文檔。

  如果采用架構預測的方式,你需要對哪些內容進行建模呢?Scott在文中指出有如下四部分內容需要建模:

  技術圖表。例如UML部署圖。這些圖表有助于開發者預測主要的軟件和硬件組件,包括你需要訪問的舊系統和數據庫,系統有可能會與它們進行交互。

  用戶交互流程圖。通過分析用戶交互的主要頁面/外觀和報告,對系統的UI進行架構設計。如果在進行架構設計的時候不考慮用戶交互界面,就可能存在潛在危機,那就是你構建的系統不是利益相關人所希望看到的。請記住,UI才是最終用戶使用的系統。

  領域圖。在最初的架構建模中,一個重要的組成部分是對領域的高層建模。模型可以非常微小,只需要捕獲主要的業務實體,以及它們之間的關系。有的人可能認為領域模型應該屬于需求建模的一部分,而不是架構建模。但正如上圖所示,這兩者在第0次迭代中是并發進行的。

  變更情形。就是在架構級需求中描述可能的技術或業務變更,而這些變更需要在未來能夠提供支持。變更情形要求你考慮架構的擴展能力,但并不是過度構建你的系統。因為你只是要考慮由于變更所造成的影響,以確保你構建的系統還能夠正常工作。

  架構建模是貫穿于整個項目周期的,因此這些圖表就是在項目結束時形成的整體文檔的基礎。由于你事先明確架構是演進的,因此就不必承擔架構設計在項目早期必須“正確無誤”的壓力,而只需要在當前形勢下保證足夠好就可以了。Scott建議使用白板和草稿紙等簡便工具,勾勒出這些模型的初始版本。當然,如果團隊成員具有熟練的建模技巧,也可以使用專門的建模工具。這一建議足以體現架構設計的敏捷性,與長篇累牘的傳統架構設計方式迥然不同。

  對于這樣一種架構設計方式,熟悉傳統架構設計方式的架構師普遍不以為然。Scott對這一看法給與了強有力的反駁。他將架構設計場景分為三種類型。第一種是架構師熟悉系統架構設計所必需的技能與經驗。既然你已經熟悉了這些內容,當然就沒有必要作出完整的設計了。你只需要在白板上體現你的架構設計,保證團隊的每個人都能夠按照相同的體系架構進行實現就可以了。

  第二種場景是架構師對相關技巧與經驗完全不知。此時,仍然只需要作少量的初始建模即可。因為你缺乏足夠的知識來完成細致而又全面的架構設計,反而會因為了解不夠而導致錯誤,從而增加項目的風險,并且阻礙了項目的進度。

  第三種場景則是架構師熟悉部分知識。這種情形也是團隊開發中最常見的場景。在這種情況下,可以耗費幾天時間作出一個初始的架構建模,以驗證系統可能存在的風險,并制定可能策略以減輕風險可能造成的后果。你可以實現一些可工作的代碼來驗證架構。建模在這種情況下是非常有意義的,因為它使得你可以定義一個一致的技術愿景,為團隊成員所分享,并對系統的主要問題進行思考。

  當你的團隊成員是分散在各地時,或者當團隊非常龐大,下面分為多個小組時,這種初始的架構建模就能夠帶來無與倫比的價值。它有助于在團隊成員之間建立一個公共的愿景,更重要的是它能夠識別出分離的組件/子系統,以及這些組件的初始接口。一旦識別出這些耦合度較低的組件或子系統,就能夠合理地對團隊進行分組,并保證小組之間設計與實現的一致性。

  Scott指出,所謂的“架構預測”能夠提供如下價值:

  提高生產力

  降低技術風險

  減少開發時間

  增強溝通

  可伸縮的敏捷軟件開發。

  需要明確的是,這樣的一種架構預測方式,正好符合敏捷開發迭代的需要。在項目開發早期,對系統整體進行一次高層次的概覽,并對關鍵業務需求進行甄別與分析,劃分合理的系統模塊,有助于在迭代開發中為團隊成員建立一個統一的標準與目標。而在每次迭代過程中,團隊就可以對本次迭代期間的功能進行深入的架構建模,然后通過TDD充分理解需求,對模塊的細節進行設計與實現。這是敏捷架構設計的核心操作原理,它與敏捷開發原則是一脈相承的。

posted on 2010-04-07 10:42 會飛的兔子 閱讀(227) 評論(0)  編輯 收藏 引用 所屬分類: 開發過程管理
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久免费精品视频| 欧美视频在线观看一区| 亚洲一区二区三区四区中文| 亚洲福利免费| 一区二区在线视频| 极品尤物一区二区三区| 国产一区二区三区观看 | 久久久高清一区二区三区| 午夜亚洲伦理| 欧美主播一区二区三区| 久久精品人人做人人爽电影蜜月| 欧美在线视频观看免费网站| 久久精品国产精品亚洲综合 | 韩国v欧美v日本v亚洲v| 在线免费观看日本一区| 亚洲精品免费一二三区| 亚洲桃花岛网站| 久久精品夜色噜噜亚洲a∨| 久久久久久九九九九| 欧美成人精品在线| 99这里只有久久精品视频| 亚洲一区二区精品视频| 久久黄金**| 欧美精品18videos性欧美| 欧美日韩在线亚洲一区蜜芽| 国产日韩久久| 99精品视频免费观看| 午夜一区在线| 欧美激情亚洲一区| 欧美亚洲三级| 欧美三级小说| 亚洲人永久免费| 久久久久在线| 亚洲一级网站| 欧美日韩国产区| 亚洲国产精品va在线观看黑人| 亚洲欧美日韩区| 亚洲大胆人体在线| 一区二区三区日韩精品| 久久久久久久久久久一区| 欧美日韩国产精品专区| 国产手机视频一区二区| 亚洲特级毛片| 亚洲欧洲日本专区| 久久天堂精品| 国内精品视频666| 欧美亚洲免费电影| 亚洲免费观看高清在线观看| 久久精品欧洲| 国模私拍一区二区三区| 欧美一级视频| 日韩一级大片在线| 久久久国产精品一区二区中文| 欧美日韩国产一区二区三区| 老牛嫩草一区二区三区日本 | 亚洲欧洲在线免费| 欧美一级理论性理论a| 欧美福利视频一区| 狠狠久久亚洲欧美| 国模大胆一区二区三区| 久久av一区二区三区漫画| 亚洲美女视频网| 麻豆freexxxx性91精品| 国产欧美精品日韩精品| 一本大道久久精品懂色aⅴ | 91久久精品国产| 久久久久成人网| 亚洲午夜精品17c| 欧美激情91| 亚洲国产精品精华液网站| 欧美一区二区三区在线观看视频| 亚洲福利视频免费观看| 欧美成人69av| 久久久91精品国产| 国产一区二区观看| 久久精品国产99国产精品澳门| 一区二区福利| 欧美午夜理伦三级在线观看| 日韩午夜电影| 亚洲日本无吗高清不卡| 欧美大秀在线观看| 亚洲国产精品久久久久| 欧美第一黄色网| 亚洲影院色在线观看免费| 欧美日韩精品欧美日韩精品一| 亚洲国产欧美日韩精品| 你懂的一区二区| 久久久www| 亚洲欧洲一区二区在线播放| 亚洲高清123| 欧美成人黄色小视频| 精品成人一区二区三区四区| 蜜臀a∨国产成人精品| 欧美与黑人午夜性猛交久久久| 国产精品一区二区久久| 香蕉久久一区二区不卡无毒影院| 亚洲视频免费在线| 国产精品―色哟哟| 久久久久久久久久码影片| 久久精品亚洲热| 一区二区在线不卡| 亚洲经典三级| 欧美色精品天天在线观看视频| 亚洲一区欧美一区| 午夜精品视频网站| 欧美日韩国产另类不卡| 久久久噜久噜久久综合| 久久久久久久久一区二区| 亚洲国产精品成人久久综合一区| 亚洲国产一区视频| 欧美日韩人人澡狠狠躁视频| 欧美在线观看天堂一区二区三区| 欧美在现视频| 一本一本久久a久久精品牛牛影视| 亚洲视屏一区| 在线成人中文字幕| 亚洲激情国产| 国产一区二区高清不卡| 亚洲国产精品高清久久久| 国产精品激情偷乱一区二区∴| 欧美亚洲专区| 美日韩精品免费| 欧美一区二区在线观看| 欧美www视频| 欧美一区免费| 欧美黄色网络| 美女露胸一区二区三区| 国产精品国产a级| 欧美激情视频一区二区三区在线播放| 欧美视频精品一区| 欧美高清视频www夜色资源网| 欧美性事在线| 91久久久在线| 在线欧美三区| 夜夜夜久久久| 亚洲激情欧美激情| 欧美一区二区在线播放| 亚洲一区在线免费| 美女诱惑一区| 美日韩精品免费| 欧美日本乱大交xxxxx| 亚洲欧美一级二级三级| 欧美国产日韩精品| 久久伊人精品天天| 国产精品美女一区二区| 日韩亚洲欧美中文三级| 亚洲免费观看高清完整版在线观看熊 | 亚洲午夜久久久久久久久电影院| 性欧美xxxx视频在线观看| 日韩视频国产视频| 久久久久综合网| 久久xxxx| 国产精品自拍三区| 一区二区三区产品免费精品久久75| 亚洲高清在线精品| 久久久久久自在自线| 久久―日本道色综合久久| 国产精品日韩精品| 一本色道精品久久一区二区三区| 亚洲欧洲精品一区二区| 久久夜色精品一区| 免费的成人av| 亚洲国产精品视频| 欧美99久久| 亚洲狠狠丁香婷婷综合久久久| 亚洲电影免费观看高清完整版在线 | 在线观看日韩专区| 久久久精品性| 欧美h视频在线| 国产欧美亚洲一区| 亚洲欧美电影在线观看| 午夜日韩av| 国产日韩综合一区二区性色av| 午夜精品福利一区二区三区av| 欧美一区二区三区在线观看视频 | 亚洲高清视频一区二区| 久久久精品性| 亚洲电影av| 亚洲午夜一区二区三区| 国产精品高潮呻吟久久| 亚洲欧美日韩成人| 亚洲网站在线观看| 国产精品xvideos88| 亚洲综合色噜噜狠狠| 久久婷婷国产综合精品青草| 亚洲国产日韩欧美| 欧美视频在线观看一区二区| 亚洲欧美日韩一区在线观看| 麻豆精品视频在线| 久久久久国产精品一区二区| 亚洲美女色禁图| 欧美一区二区精品| 亚洲国产中文字幕在线观看| 欧美日韩xxxxx| 午夜精品一区二区三区四区 | 亚洲桃花岛网站| 精品成人在线视频| 久久综合婷婷| 亚洲在线1234| 亚洲国产一区二区三区青草影视 |