<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷途書童

    敏感、勤學、多思
    隨筆 - 77, 文章 - 4, 評論 - 86, 引用 - 0
    數(shù)據(jù)加載中……

    軟件架構設計(一)——軟件架構的概念和表述

    做了好幾年架構設計的事了,一直沒有好好的總結。實在不好,花點時間總結一下,寫出來,有興趣的朋友可以一起探討。

    軟件架構設計的主題狠深狠難,本文打算從架構的概念,架構的表述方法,架構設計的過程三個方面來講一下我的理解。

    一、什么是軟件架構?

          溫昱在《軟件架構設計》一書中,給了下面的定義:

          組合派:軟件系統(tǒng)的架構將系統(tǒng)描述為計算組件及組件之間的交互。
          決策派:架構是一系列重要決策的集合,這些決策與以下內(nèi)容有關:軟件的組織,構成系統(tǒng)的結構元素及其接口的選擇,這些元素在相互協(xié)作中明確表現(xiàn)出的行為,這些結構元素和行為元素進一步組合所構成的更大規(guī)模的子系統(tǒng),以及指導這一組織--包括這些元素及其接口、它們的協(xié)作和它們的組合--架構風格。

          在我看來,決策派的定義更為具體和準確,注意決策派用了元素這一詞而沒有用組件,組件是有具體含義的,指一個可獨立替換的物理單元,而架構需要能夠指導涉眾,如開發(fā)人員、用戶、部署人員等等,對開發(fā)人員來講,開發(fā)過程中如何分包、如何將包打包為組件,架構師需不需要提供指導呢,答案是肯定的。因此,如果將架構限定在組件和組件的交互上,是不完整的。

    二、架構的表述方法

         這個現(xiàn)在都有共識,就是4+1視圖表述法:邏輯視圖,實現(xiàn)視圖,進程視圖,部署視圖,用例視圖。 參見下圖RUP 4+1視圖:

    82250175980 

          用例視圖關注系統(tǒng)的人、事、物、規(guī)則,人是指系統(tǒng)的Actor,包括業(yè)務主角和業(yè)務工人,事是指系統(tǒng)用例,物是指業(yè)務實體,規(guī)則指做事情的前置條件、后置條件,做事情過程中的規(guī)則。下面這個圖很精辟:

      image

          用例視圖是4+1視圖中的+1,它定義需求標準,跟其它視圖描述系統(tǒng)某一方面的結構有很大的不同。

          邏輯視圖關注系統(tǒng)的邏輯功能模塊和領域模型,不僅包括用戶可見的功能模塊,還包括實現(xiàn)用戶功能而必須提供的“輔助功能模塊”;它們可能是邏輯層、功能模塊、類等。

          實現(xiàn)視圖關注程序包,不僅包括要編寫的源程序,還包括可以直接使用的第三方SDK和現(xiàn)成框架、類庫,以及開發(fā)的系統(tǒng)將運行于其上的系統(tǒng)軟件或中間件。開發(fā)架構和邏輯架構之間可能存在一定的映射關系:比如邏輯架構中的邏輯層一般會映射到實現(xiàn)架構中的多個程序包;再比如實現(xiàn)架構中的源碼文件可以包含邏輯架構中的一到多個類(在C++里一個源碼文件可以包含多個類,即使在Java里一個源碼文件也可以同時包含一個類和幾個內(nèi)部類)。

          進程視圖關注進程、線程、對象等運行時概念,以及相關的并發(fā)、同步、通信等問題。

          進程視圖和實現(xiàn)視圖的關系:實現(xiàn)視圖一般偏重程序包在編譯時期的靜態(tài)依賴關系,而這些程序運行起來之后會表現(xiàn)為對象、線程、進程,進程視圖比較關注的是這些運行時單元的交互問題。

          物理視圖關注“目標程序及其依賴的運行庫和系統(tǒng)軟件”最終如何安裝或部署到物理機器,以及如何部署機器和網(wǎng)絡來配合軟件系統(tǒng)的可靠性、可伸縮性等要求。物理架構和運行架構的關系:運行架構特別關注目標程序的動態(tài)執(zhí)行情況,而物理架構重視目標程序的靜態(tài)位置問題;物理架構還要考慮軟件系統(tǒng)和包括硬件在內(nèi)的整個IT系統(tǒng)之間是如何相互影響的。

          上面幾個視圖是最典型的視圖,不管你是通信中間件,還是依賴于數(shù)據(jù)庫的企業(yè)應用都需要的。對于依賴數(shù)據(jù)庫的企業(yè)應用,通常還需要數(shù)據(jù)視圖,數(shù)據(jù)視圖關注對象如何存儲,如數(shù)據(jù)庫表等

           4+1視圖不僅僅是軟件架構的表述方法,它們各自從不同的視角去展現(xiàn)架構,因此,還是一種比較好的思維方式,引導我們從不同的視角去思考,從而做出比較系統(tǒng)的架構設計。

    posted on 2012-06-28 23:29 迷途書童 閱讀(1310) 評論(0)  編輯  收藏 所屬分類: 系統(tǒng)設計

    主站蜘蛛池模板: 国产99精品一区二区三区免费 | 久久免费美女视频| 全亚洲最新黄色特级网站 | 免费观看亚洲人成网站| 四虎www免费人成| 四虎必出精品亚洲高清| 4虎永免费最新永久免费地址| 亚洲成a人片在线观看中文动漫| 在线观看免费黄网站| 亚洲va中文字幕无码久久不卡| 国产在线观看无码免费视频| 亚洲综合色在线观看亚洲| 国产免费内射又粗又爽密桃视频 | 国产在线观看无码免费视频| 亚洲国产成人片在线观看| 免费无码又爽又刺激高潮软件| 亚洲av综合色区| 美丽的姑娘免费观看在线播放| 亚洲免费在线观看视频| 无码中文在线二区免费| 亚洲日韩精品无码AV海量| 免费人成激情视频| 中文字幕免费观看全部电影| 亚洲天天做日日做天天欢毛片| 免费福利在线播放| 亚洲av永久无码精品秋霞电影秋| 国产成人啪精品视频免费网| 成在线人直播免费视频| 亚洲伦另类中文字幕| 午夜性色一区二区三区免费不卡视频 | 亚洲色偷偷偷鲁综合| 久久午夜无码免费| 在线精品亚洲一区二区| 亚洲日本在线观看视频| 免费无码一区二区三区| 亚洲人成人网站18禁| 亚洲精品无码av人在线观看| 亚洲一级免费视频| 日韩久久无码免费毛片软件| 中文字幕在线观看亚洲| 精品久久洲久久久久护士免费 |