軟件體系結構與軟件架構解析

軟件體系結構與軟件架構的中文翻譯都是英文Software Architecture。兩者都使用一樣的定義,如IEEE的“一個系統的基礎組織,包含各個構件、構件互相之間與環境的關係,還有指導其設計和演化的原則。”[IEEE-2000]
爲了找到兩者的區別,得先從應用的環境入手。我們利用網站搜索引擎對這個領域的常用關鍵詞進行了檢索,搜索區域分爲開發者網站、所有網站、學術網站,結果如下(檢索日期2007-04-08):
關鍵詞
IBM開發者
微軟
Google
百度
中國知網
軟件體系結構
177
9,041
79,500
123,000
368
軟件架構
233
10,478
236,000
462,000
56
軟件體系架構
15
998
13,300
8,530
5
架構師
2,027
7,656
175,000
121,000
18
架構設計師
287
3,607
6,990
79,600
3
http://www-128.ibm.com/developerworks/cn
http://www.miscrosoft.com/china
google.com 採用精確匹配。“架構師”改爲“軟件架構師”,“架構設計師”改爲“軟件架構設計師”減少領域差異
baidu.com 採用精確匹配。“架構師”改爲“軟件架構師”,“架構設計師”改爲“軟件架構設計師”減少領域差異
http://www.cnki.net/index.htm採用精確匹配。中國期刊全文數據庫(2000-2007
結果表明,在軟件開發者和軟件應用者來說,傾向於使用“軟件架構”,在一定程度上接受“軟件體系結構”。大家對軟件架構的設計人員,“架構師”得到廣泛的認同。對於學術界,普遍使用“軟件體系結構”,對架構師幾乎沒有關注。Software Architecture是一個實踐性非常強的領域,統計表明理論和實踐的鴻溝還是存在的。
其次,我們從詞源探討“體系”“結構”“架構”的解釋[字典-2001]
  • 體系:若干事物互相聯繫而構成的一個整體。思想~ | 工業~
  •  結構:①建築物承受重量和外力的部分及其製造。按材料分有鋼結構、木結構、磚石結構、框架結構、磚混結構等。按形式分有懸索結構、拱結構等。②構成整體的各個部分及其結合方式。經濟~│文章~。③文藝作品的內部構造。即作品的各部分(包括內容和形式)之間有機的組織聯繫。
  •  架構:①建造;構築。②框架;支架。③比喻事物的組織、結構、格局。市場~│故事~龐大
通過以上分析,我們不難看出學術界爲什麼用“軟件體系結構”。首先,體系結構的中文定義完全符合IEEE等的定義。強調整體與部分,部分與部分的關係;研究系統構成的方法學;提倡多角度研究系統。其次,從學科地位講,作爲一門獨立軟件子學科,和硬件學科(計算機組織與體系結構)直接對應。
從工程實踐需要看,軟件架構更能體現系統構成與相關技術。RUP過程或軟件生產線關注的軟件架構並不注重原理及表示,而是由結構和技術相結合的形成框架。
軟件架構在中文中很容易與軟件框架(Software Framework)混淆,對於一個應用的軟件框架通常稱爲應用程序框架(Application Framework)。框架是爲了構建完整的應用而必須詳細闡述的一種程序結構[Johnson-88]。框架在RUP和軟件產品線開發過程中是一個非常重要的過程。RUP中框架是細化階段的一個製品,軟件產品生產線中是一組應用共享的程序框架。
目前,沒有文獻表明軟件體系結構與軟件架構的差別。如果你強調方法論,應使用軟件體系結構。強調軟件開發實踐,應使用軟件架構。
 
[IEEE-2000] IEEE 1471-2000, IEEE Recommended Practice for Architectural Descriptions of Software Intensive Systems
[字典-2001] 新華詞典,2001年修訂版. 商務印書社 2005 北京
[Johnson-88] Ralph E.Johnson & Brian Foote. Designing reusable classes. Journal of Object-Oriented Programming 1,3(June/July 1988),22-35
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章