體系結構指的是什麼

  體系結構包括一組部件以及部件之間的聯絡,那麼你對體系結構瞭解多少呢?以下是由小編整理關於什麼是體系結構的內容,希望大家喜歡!

  體系結構的分類

  1、 資料流系統,包括順序批處理、管道和過濾器;

  2、 呼叫-返回系統,包括主程式和子程式、面向物件系統、層次結構;

  3、 獨立部件,包括通訊程序、事件隱式呼叫;

  4、虛擬機器,包括直譯器、規則基系統;

  5、 以資料為中心的系統***庫***,包括資料庫、超文本系統、黑板系統;

  6、 特殊領域風格;例如過程控制、模擬器;

  7、 特殊結構的風格,例如分散式處理、狀態轉移系統;

  8、 不同風格合成建立的異構結構;

  9、 最初始、最基本的主程式/子程式。

  體系結構的出現原由

  在傳統的程式設計領域中,人們使用流程圖來表達系統的基本功能和實現的具體邏輯,但是,流程圖實際上僅僅是源程式的圖形化表示,無法給系統的分析和開發者提供更多的資訊,所以沒有在實際的系統開發過程中得到廣泛的應用。隨著軟體系統的規模和複雜性的增加,對軟體系統的整體結構***資料和控制的邏輯***進行分析和描述成為大型系統開發的一個不可缺少的重要部分,顯然,使用流程圖是無法達到這個目標的,我們必須使用新的方法和概念來對系統的整體結構進行把握。

  體系結構的開發觀點

  在實際開發過程中,簡單的判斷某一個具體的應用應該採取何種體系結構是非常困難的,簡單的管道、過濾器體系已經非常少見,面向物件的思想已經融合在幾乎所有的體系結構之中,而層次化的思想同樣也被廣泛使用,所以,一個基本的系統分析方法應該是功能和複雜性的分解,也就是說,從橫向分解***分模組、子系統***,縱向分解中得到系統的基本元件***分類、分層次的功能和物件***。然後根據問題領域的特性選擇系統的行為模式***具體的體系結構***。

  體系結構的常見結構

  嚴格的層次結構

  ***系統可以清楚的分解成為不同的功能層次,例如基本的圖形庫,提供不同層次的繪圖介面*** 這種體系結構適合於系統的功能相對簡單,並且可以按照複雜的程度、抽象的程度、和硬體平臺的關係等方面的特性加以分層的軟體中。

  事件驅動的體系

  對互操作性、特別是異構環境下的互操作性要求非常高的情況下,可以採用這種體系,當整個系統中存在大量的併發的,相互之間沒有邏輯聯絡的元件的時候***例如作業系統或者圖形使用者介面***可以使用這種體系結構。現代軟體技術中微軟的COM和ISO的CORBA實際上都是這種體系結構的例子。

  知識庫的體系

  以大量資料為核心的系統採用這種體系,一些人工智慧的應用同樣需要這種體系結構,面向物件的知識庫是這種體系結構的一個發展方向。將面向物件和層次化的思想引入知識庫系統中,將得到一種非常強大的體系結構。

  基於直譯器的體系

  如果應用系統和使用者的互動非常複雜,採用這種體系結構是最適合的方案,只有將系統的基本操作以指令的形式提供給使用者,同時,提供一種簡單明瞭的語法和基本的資料操作、處理的功能,才能得到功能最強大、最靈活、具有最佳擴充新的應用系統;一個非常合適的例子是瀏覽器,一開始,瀏覽器只是簡單的下載和顯示HTML的頁面,隨著使用者對介面互動要求的發展,開發出javascript,提供一種語言和基本的介面元素操縱的指令來得到擴充性和強大的功能。

  絕大多數實際執行的系統都是上面幾種體系結構的複合:在系統的某些部分採用一種體系結構而在其他的部分採用另外的體系,我們可以將複合幾種基本體系結構的系統稱作複合體繫結構。在實際的系統分析和設計中,可能首先將整個系統作為一個功能體進行分析和權衡,得到適宜的、最上層的體系結構,如果該體系結構中的元素較為複雜,可以繼續進行分解,得到某一部分的,區域性的體系。分析的層次應該在可以清晰的使用簡單的功能和介面描述表達結束,這樣,可以將我們在分析和設計的這一階段將焦點集中在系統的總體結構上,而避免引入和所使用的語言、實現所具體需要的技術等實現的細節上。