走在架構(gòu)師的大道上 Jack.Wang's home

          Java, C++, linux c, C#.net 技術(shù),軟件架構(gòu),領(lǐng)域建模,IT 項目管理 Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
              架構(gòu),從字面上很容易聯(lián)想到建筑學(xué)中的構(gòu)建藍(lán)圖,不過他是相對穩(wěn)定的,而軟件中的架構(gòu)是需要不斷演進(jìn)的動態(tài)過程。軟件架構(gòu)是對系統(tǒng)構(gòu)件及其交互關(guān)系的高層抽象描述,是軟件系統(tǒng)的藍(lán)圖和整體結(jié)構(gòu),用于指導(dǎo)后續(xù)的設(shè)計與開發(fā),以使抽象具體化。軟件架構(gòu)一直沒有一個確切的定義,但是,普遍認(rèn)為軟件架構(gòu)是一種關(guān)注和描述軟件系統(tǒng)整體組織結(jié)構(gòu)和性能的抽象系統(tǒng)機(jī)制,為軟件系統(tǒng)提供了一個結(jié)構(gòu)、行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成   

              雖然軟件系結(jié)構(gòu)的概念早在20世紀(jì)80年代就已經(jīng)提出,但真正引起關(guān)注和重視是在90年代。
              1992年,Ikwayne Perry和Ales Wolf定義:軟件體系結(jié)構(gòu)={元素,形式,準(zhǔn)則}。軟件體系結(jié)構(gòu)是
          由具有特定形式的體系結(jié)構(gòu)元素或設(shè)計元素構(gòu)成,包括處理元素、數(shù)據(jù)元素和連接元素。處理元素負(fù)責(zé)對數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)元素是被加工的信息連接元素把體系結(jié)構(gòu)的不同部分組合連接起來。軟件體系結(jié)構(gòu)形式由專有特性和關(guān)系組成。而在多個體系結(jié)構(gòu)方案中選擇合適的體系結(jié)構(gòu)方案往往基于一組

          準(zhǔn)則。這一定義注重區(qū)分處理元素、數(shù)據(jù)元素和連接元素,這一方法在其它的定義和方法中基本上得到保持。
              1993年 DavidW an和MaryS haw提出:軟件體系結(jié)構(gòu)=}組件,連接件,約束}。組件可以是一組代
          碼,如程序的模塊;也可以是一個獨立的程序,如數(shù)據(jù)庫服務(wù)器。連接件可以是過程調(diào)用、管道、遠(yuǎn)程調(diào)用等,用于表示組件之間的相互作用。一個軟件體系結(jié)構(gòu)還包括某些約束,約束一般為對象連接時的規(guī)則或指明連接的勢態(tài)和條件。軟件體系結(jié)構(gòu)是設(shè)計過程的一個層次,它處理那些超越算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計,研究整體結(jié)構(gòu)設(shè)計和描述方法。
              1994年 , Bass等人提出:體系結(jié)構(gòu)設(shè)計至少應(yīng)包括應(yīng)用領(lǐng)域的功能分割、系統(tǒng)結(jié)構(gòu)、結(jié)構(gòu)的領(lǐng)域功能分配三個方面。
              1995年 , DavidG arlan和MaryS haw修正定義:軟件體系結(jié)構(gòu)包括系統(tǒng)組件的結(jié)構(gòu)、組件的相互關(guān)系以及控制組件設(shè)計演化的原則和指導(dǎo)三個方面。
              1996 年 ,Kmchten指出,軟件體系結(jié)構(gòu)有四個角度:概念角度、模塊角度、運行角度和代碼角度。概念角度描述系統(tǒng)的主要組件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運行角度描述一個系統(tǒng)的動態(tài)結(jié)構(gòu);代碼角度描述各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。
              1997年 , Bass,Cl ements和KazTnan提出:軟件體系結(jié)構(gòu)包括組件、組件的外部可見性以及相互的關(guān)系。其中軟件組件的外部可見性是指軟件組件提供的服務(wù)、性能、特性、共享資源使用等。該定義強(qiáng)調(diào)體系結(jié)構(gòu)分析需要從系統(tǒng)中抽象出用于分析、決策的信息。概括各種不同觀點,可發(fā)現(xiàn)它們都支持這樣的觀點,即:軟件體系結(jié)構(gòu)包括系統(tǒng)總體組織、全局控制、通信技術(shù)、同步、數(shù)據(jù)存取、設(shè)計元素的功能、組織、規(guī)模、性能、設(shè)計方案的選擇。





          本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請注明出處,如有版權(quán)問題請及時通知。由于博客時間倉促,錯誤之處敬請諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。
          posted on 2008-08-14 16:37 Jack.Wang 閱讀(3182) 評論(7)  編輯  收藏

          Feedback

          # re: 軟件架構(gòu)的六個定義 2008-08-15 22:09 長江三峽
          kuikui  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-08-17 18:09 dell電腦
          架構(gòu)這個詞我一直覺得是從港臺移植過來的。  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-08-18 09:02 Jack.Wang
          一般學(xué)院派都叫體系結(jié)構(gòu),實用派都叫架構(gòu)。有人考究過這兩個用詞有啥不同,其實是一個意思!英文都叫 software architecture  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-08-19 13:10 rocket
          鄙視這種文章,泛泛而談,沒有一點實際意義。
          對于不同需求的系統(tǒng)資源會有不同的構(gòu)架體系。
          學(xué)校里就是喜歡搞這些浪費時間浪費精力浪費資源的東西!!  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-08-19 13:26 ldd600
          一個名詞的概念,一個規(guī)范的定義都是很有意義的。  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-09-12 21:39 Jack.Wang
          所有軟件開發(fā)方法都要解決從需求到實現(xiàn)之間的轉(zhuǎn)換問題。基于體系結(jié)構(gòu)的軟件開發(fā)包含以下幾個主要階段:
          1)通過對特定領(lǐng)域應(yīng)用軟件進(jìn)行分析,提煉出其中的穩(wěn)定需求和易變需求,建立可重用的領(lǐng)域模型。依據(jù)領(lǐng)域模型和用戶需求,產(chǎn)生應(yīng)用系統(tǒng)的需求規(guī)格說明。
          2)在領(lǐng)域模型的基礎(chǔ)上,根據(jù)需求規(guī)格說明提煉出特定領(lǐng)域的軟件體系結(jié)構(gòu)。這是系統(tǒng)的高層設(shè)計,其目標(biāo)是通過重用領(lǐng)域體系結(jié)構(gòu)庫中已有的高質(zhì)量的體系結(jié)構(gòu),或生成最適合該用戶需求的體系結(jié)構(gòu),并加以提煉入庫,以備將來的重用,并在此體系結(jié)構(gòu)的指導(dǎo)下,把系統(tǒng)逐步分解成相應(yīng)的組件和連接件,直至組件
          和連接件可以被設(shè)計模式和面向?qū)ο蠓椒ㄌ幚頌橹埂?
          3)這個階段主要解決具體組件和連接件的設(shè)計問題。通過重用可重用組件庫中模式、對象和其它可重用的設(shè)計件,或重新設(shè)計的組件,并提煉入庫;然后通過具體的編程實現(xiàn),就可得到可運行的程序  回復(fù)  更多評論
            

          # re: 軟件架構(gòu)的六個定義 2008-09-13 10:38 Maggie
          層級理論是構(gòu)建復(fù)雜軟件體系的基本原則
          諾貝爾獎獲得者赫伯特A.西蒙曾論述到:“要構(gòu)造一門關(guān)于復(fù)雜系統(tǒng)的比較正規(guī)的理論,有一條路就是求助于層級理論??我們可以期望,在一個復(fù)雜性必然是從簡單性進(jìn)化而來的世界中,復(fù)雜系統(tǒng)是層級結(jié)構(gòu)的”。對于軟件這樣復(fù)雜的人造事務(wù),發(fā)現(xiàn)層級和運用層級,是分析和構(gòu)建的基本原則。粗略地觀察一下軟件表述方式(語言)的發(fā)展:從穿孔紙帶(機(jī)器的語言)開始,首先是匯編語言,然后是高級語言,再往后有面向?qū)ο笳Z言和所謂第四代語言(FGL)出現(xiàn)??但每一代的語言并不是在“取代”前一代語言,而是用上一代語言來“寫”下一代語言。在這個自然的進(jìn)化過程中,西蒙所論述的復(fù)雜體系的層級特征清晰地出現(xiàn)了。進(jìn)一步看,在由簡單到復(fù)雜的進(jìn)化道路上,軟件的體系結(jié)構(gòu)、軟件開發(fā)的體系結(jié)構(gòu)、軟件開發(fā)工具的體系結(jié)構(gòu)等等,都呈現(xiàn)出層級的特征。“好”的軟件體系具有更加清晰的層級  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 中阳县| 新野县| 嘉祥县| 留坝县| 清涧县| 泾川县| 斗六市| 曲松县| 扬中市| 桐城市| 孟州市| 定边县| 武川县| 海宁市| 通许县| 陇西县| 鄂托克旗| 大厂| 泾阳县| 保山市| 新和县| 彰化市| 内丘县| 晋州市| 昌宁县| 新余市| 澳门| 永德县| 青海省| 德江县| 宣城市| 临夏市| 南通市| 云南省| 牙克石市| 宁陵县| 丹棱县| 华池县| 江华| 高尔夫| 固镇县|