體系結(jié)構(gòu)指的是什么
體系結(jié)構(gòu)包括一組部件以及部件之間的聯(lián)系,那么你對(duì)體系結(jié)構(gòu)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是體系結(jié)構(gòu)的內(nèi)容,希望大家喜歡!
體系結(jié)構(gòu)的分類
1、 數(shù)據(jù)流系統(tǒng),包括順序批處理、管道和過濾器;
2、 調(diào)用-返回系統(tǒng),包括主程序和子程序、面向?qū)ο笙到y(tǒng)、層次結(jié)構(gòu);
3、 獨(dú)立部件,包括通信進(jìn)程、事件隱式調(diào)用;
4、虛擬機(jī),包括解釋器、規(guī)則基系統(tǒng);
5、 以數(shù)據(jù)為中心的系統(tǒng)(庫),包括數(shù)據(jù)庫、超文本系統(tǒng)、黑板系統(tǒng);
6、 特殊領(lǐng)域風(fēng)格;例如過程控制、模擬器;
7、 特殊結(jié)構(gòu)的風(fēng)格,例如分布式處理、狀態(tài)轉(zhuǎn)移系統(tǒng);
8、 不同風(fēng)格合成建立的異構(gòu)結(jié)構(gòu);
9、 最初始、最基本的主程序/子程序。
體系結(jié)構(gòu)的出現(xiàn)原由
在傳統(tǒng)的程序設(shè)計(jì)領(lǐng)域中,人們使用流程圖來表達(dá)系統(tǒng)的基本功能和實(shí)現(xiàn)的具體邏輯,但是,流程圖實(shí)際上僅僅是源程序的圖形化表示,無法給系統(tǒng)的分析和開發(fā)者提供更多的信息,所以沒有在實(shí)際的系統(tǒng)開發(fā)過程中得到廣泛的應(yīng)用。隨著軟件系統(tǒng)的規(guī)模和復(fù)雜性的增加,對(duì)軟件系統(tǒng)的整體結(jié)構(gòu)(數(shù)據(jù)和控制的邏輯)進(jìn)行分析和描述成為大型系統(tǒng)開發(fā)的一個(gè)不可缺少的重要部分,顯然,使用流程圖是無法達(dá)到這個(gè)目標(biāo)的,我們必須使用新的方法和概念來對(duì)系統(tǒng)的整體結(jié)構(gòu)進(jìn)行把握。
體系結(jié)構(gòu)的開發(fā)觀點(diǎn)
在實(shí)際開發(fā)過程中,簡(jiǎn)單的判斷某一個(gè)具體的應(yīng)用應(yīng)該采取何種體系結(jié)構(gòu)是非常困難的,簡(jiǎn)單的管道、過濾器體系已經(jīng)非常少見,面向?qū)ο蟮乃枷胍呀?jīng)融合在幾乎所有的體系結(jié)構(gòu)之中,而層次化的思想同樣也被廣泛使用,所以,一個(gè)基本的系統(tǒng)分析方法應(yīng)該是功能和復(fù)雜性的分解,也就是說,從橫向分解(分模塊、子系統(tǒng)),縱向分解中得到系統(tǒng)的基本組件(分類、分層次的功能和對(duì)象)。然后根據(jù)問題領(lǐng)域的特性選擇系統(tǒng)的行為模式(具體的體系結(jié)構(gòu))。
體系結(jié)構(gòu)的常見結(jié)構(gòu)
嚴(yán)格的層次結(jié)構(gòu)
(系統(tǒng)可以清楚的分解成為不同的功能層次,例如基本的圖形庫,提供不同層次的繪圖接口) 這種體系結(jié)構(gòu)適合于系統(tǒng)的功能相對(duì)簡(jiǎn)單,并且可以按照復(fù)雜的程度、抽象的程度、和硬件平臺(tái)的關(guān)系等方面的特性加以分層的軟件中。
事件驅(qū)動(dòng)的體系
對(duì)互操作性、特別是異構(gòu)環(huán)境下的互操作性要求非常高的情況下,可以采用這種體系,當(dāng)整個(gè)系統(tǒng)中存在大量的并發(fā)的,相互之間沒有邏輯聯(lián)系的組件的時(shí)候(例如操作系統(tǒng)或者圖形用戶界面)可以使用這種體系結(jié)構(gòu)。現(xiàn)代軟件技術(shù)中微軟的COM和ISO的CORBA實(shí)際上都是這種體系結(jié)構(gòu)的例子。
知識(shí)庫的體系
以大量數(shù)據(jù)為核心的系統(tǒng)采用這種體系,一些人工智能的應(yīng)用同樣需要這種體系結(jié)構(gòu),面向?qū)ο蟮闹R(shí)庫是這種體系結(jié)構(gòu)的一個(gè)發(fā)展方向。將面向?qū)ο蠛蛯哟位乃枷胍胫R(shí)庫系統(tǒng)中,將得到一種非常強(qiáng)大的體系結(jié)構(gòu)。
基于解釋器的體系
如果應(yīng)用系統(tǒng)和用戶的交互非常復(fù)雜,采用這種體系結(jié)構(gòu)是最適合的方案,只有將系統(tǒng)的基本操作以指令的形式提供給用戶,同時(shí),提供一種簡(jiǎn)單明了的語法和基本的數(shù)據(jù)操作、處理的功能,才能得到功能最強(qiáng)大、最靈活、具有最佳擴(kuò)充新的應(yīng)用系統(tǒng);一個(gè)非常合適的例子是瀏覽器,一開始,瀏覽器只是簡(jiǎn)單的下載和顯示HTML的頁面,隨著用戶對(duì)界面交互要求的發(fā)展,開發(fā)出javascript,提供一種語言和基本的界面元素操縱的指令來得到擴(kuò)充性和強(qiáng)大的功能。
絕大多數(shù)實(shí)際運(yùn)行的系統(tǒng)都是上面幾種體系結(jié)構(gòu)的復(fù)合:在系統(tǒng)的某些部分采用一種體系結(jié)構(gòu)而在其他的部分采用另外的體系,我們可以將復(fù)合幾種基本體系結(jié)構(gòu)的系統(tǒng)稱作復(fù)合體系結(jié)構(gòu)。在實(shí)際的系統(tǒng)分析和設(shè)計(jì)中,可能首先將整個(gè)系統(tǒng)作為一個(gè)功能體進(jìn)行分析和權(quán)衡,得到適宜的、最上層的體系結(jié)構(gòu),如果該體系結(jié)構(gòu)中的元素較為復(fù)雜,可以繼續(xù)進(jìn)行分解,得到某一部分的,局部的體系。分析的層次應(yīng)該在可以清晰的使用簡(jiǎn)單的功能和界面描述表達(dá)結(jié)束,這樣,可以將我們?cè)诜治龊驮O(shè)計(jì)的這一階段將焦點(diǎn)集中在系統(tǒng)的總體結(jié)構(gòu)上,而避免引入和所使用的語言、實(shí)現(xiàn)所具體需要的技術(shù)等實(shí)現(xiàn)的細(xì)節(jié)上。
看過“體系結(jié)構(gòu)指的是什么”的人還看了:
2.網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu)