走在架構師的大道上 Jack.Wang's home

          Java, C++, linux c, C#.net 技術,軟件架構,領域建模,IT 項目管理 Dict.CN 在線詞典, 英語學習, 在線翻譯

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
              架構,從字面上很容易聯想到建筑學中的構建藍圖,不過他是相對穩定的,而軟件中的架構是需要不斷演進的動態過程。軟件架構是對系統構件及其交互關系的高層抽象描述,是軟件系統的藍圖和整體結構,用于指導后續的設計與開發,以使抽象具體化。軟件架構一直沒有一個確切的定義,但是,普遍認為軟件架構是一種關注和描述軟件系統整體組織結構和性能的抽象系統機制,為軟件系統提供了一個結構、行為和屬性的高級抽象,由構成系統的元素描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成   

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

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





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

          Feedback

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

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

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

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

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

          # re: 軟件架構的六個定義 2008-09-12 21:39 Jack.Wang
          所有軟件開發方法都要解決從需求到實現之間的轉換問題。基于體系結構的軟件開發包含以下幾個主要階段:
          1)通過對特定領域應用軟件進行分析,提煉出其中的穩定需求和易變需求,建立可重用的領域模型。依據領域模型和用戶需求,產生應用系統的需求規格說明。
          2)在領域模型的基礎上,根據需求規格說明提煉出特定領域的軟件體系結構。這是系統的高層設計,其目標是通過重用領域體系結構庫中已有的高質量的體系結構,或生成最適合該用戶需求的體系結構,并加以提煉入庫,以備將來的重用,并在此體系結構的指導下,把系統逐步分解成相應的組件和連接件,直至組件
          和連接件可以被設計模式和面向對象方法處理為止。
          3)這個階段主要解決具體組件和連接件的設計問題。通過重用可重用組件庫中模式、對象和其它可重用的設計件,或重新設計的組件,并提煉入庫;然后通過具體的編程實現,就可得到可運行的程序  回復  更多評論
            

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


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


          網站導航:
           
          主站蜘蛛池模板: 华阴市| 沅江市| 建始县| 高尔夫| 凌海市| 丰镇市| 商南县| 舟山市| 昌黎县| 南雄市| 乌鲁木齐县| 拉孜县| 文水县| 雷山县| 曲阳县| 儋州市| 万山特区| 文成县| 海安县| 阳朔县| 延津县| 义马市| 上栗县| 四平市| 嫩江县| 新绛县| 荃湾区| 罗平县| 临邑县| 扎赉特旗| 彰化县| 长葛市| 隆林| 菏泽市| 乌兰浩特市| 博乐市| 康平县| 沅江市| 新源县| 和林格尔县| 灵台县|