什么是架構(gòu)_架構(gòu)的介紹
什么是架構(gòu)_架構(gòu)的介紹
架構(gòu)是有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。那么你對架構(gòu)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是架構(gòu)的內(nèi)容,希望大家喜歡!
什么是架構(gòu)
架構(gòu),又名軟件架構(gòu),是有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。架構(gòu)描述語言(ADL)用于描述軟件的體系架構(gòu)?,F(xiàn)在已有多種架構(gòu)描述語言,如Wright(由卡內(nèi)基梅隆大學(xué)開發(fā)),Acme(由卡內(nèi)基梅隆大學(xué)開發(fā)),C2(由UCI開發(fā)),Darwin(由倫敦帝國學(xué)院開發(fā))。ADL的基本構(gòu)成包括組件、連接器和配置。
架構(gòu)的特性
架構(gòu)是對存儲在Active Directory中的對象類別和屬性的描述。對于每一個對象類別來說,該架構(gòu)定義了對象類必須具有的屬性,它也可以有附加的屬性,并且該對象可以是它的父對象。
可以動態(tài)更新的Active Directory 架構(gòu)。應(yīng)用程序可以使用新的屬性和類擴展該架構(gòu),并能立刻使用該擴展。通過在Active Directory 中創(chuàng)建或修改存儲在 Active Directory 中的架構(gòu)對象來完成架構(gòu)的更新。與Active Directory 中的所有對象一樣,架構(gòu)對象能訪問控制列表,因此只有授權(quán)的用戶才可以更改架構(gòu)。
軟件的架構(gòu)
軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。 軟件架構(gòu)是一個系統(tǒng)的草圖。軟件架構(gòu)描述的對象是直接構(gòu)成系統(tǒng)的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。在實現(xiàn)階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通常用接口(計算機科學(xué))來實現(xiàn)。 軟件體系結(jié)構(gòu)是構(gòu)建計算機軟件實踐的基礎(chǔ)。與建筑師設(shè)定建筑項目的設(shè)計原則和目標,作為繪圖員畫圖的基礎(chǔ)一樣,一個軟件架構(gòu)師或者系統(tǒng)架構(gòu)師陳述軟件構(gòu)架以作為滿足不同客戶需求的實際系統(tǒng)設(shè)計方案的基礎(chǔ)。
軟件構(gòu)架是一個容易理解的概念,多數(shù)工程師(尤其是經(jīng)驗不多的工程師)會從直覺上來認識它,但要給出精確的定義很困難。特別是,很難明確地區(qū)分設(shè)計和構(gòu)架:構(gòu)架屬于設(shè)計的一方面,它集中于某些具體的特征。
在“軟件構(gòu)架簡介”中,David Garlan 和 Mary Shaw 認為軟件構(gòu)架是有關(guān)如下問題的設(shè)計層次:“在計算的算法和數(shù)據(jù)結(jié)構(gòu)之外,設(shè)計并確定系統(tǒng)整體結(jié)構(gòu)成為了新的問題。結(jié)構(gòu)問題包括總體組織結(jié)構(gòu)和全局控制結(jié)構(gòu);通信、同步和數(shù)據(jù)訪問的協(xié)議;設(shè)計元素的功能分配;物理分布;設(shè)計元素的組成;定標與性能;備選設(shè)計的選擇。”
但構(gòu)架不僅是結(jié)構(gòu)。IEEE Working Group on Architecture 把其定義為“系統(tǒng)在其環(huán)境中的最高層概念”。構(gòu)架還包括“符合”系統(tǒng)完整性、經(jīng)濟約束條件、審美需求和樣式。它并不僅注重對內(nèi)部的考慮,而且還在系統(tǒng)的用戶環(huán)境和開發(fā)環(huán)境中對系統(tǒng)進行整體考慮,即同時注重對外部的考慮。
在 Rational Unified Process 中,軟件系統(tǒng)的構(gòu)架(在某一給定點)是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進行交互。
從和目的、主題、材料和結(jié)構(gòu)的聯(lián)系上來說,軟件架構(gòu)可以和建筑物的架構(gòu)相比擬。一個軟件架構(gòu)師需要有廣泛的軟件理論知識和相應(yīng)的經(jīng)驗來實施和管理軟件產(chǎn)品的高級設(shè)計。軟件架構(gòu)師定義和設(shè)計軟件的模塊化,模塊之間的交互,用戶界面風(fēng)格,對外接口方法,創(chuàng)新的設(shè)計特性,以及高層事物的對象操作、邏輯和流程。
一般而言,軟件系統(tǒng)的架構(gòu)(Architecture)有兩個要素:
1、它是一個軟件系統(tǒng)從整體到部分的最高層次的劃分。一個系統(tǒng)通常是由元件組成的,而這些元件如何形成、相互之間如何發(fā)生作用,則是關(guān)于這個系統(tǒng)本身結(jié)構(gòu)的重要信息。詳細地說,就是要包括架構(gòu)元件(Architecture Component)、聯(lián)結(jié)器(Connector)、任務(wù)流(Task-flow)。所謂架構(gòu)元素,也就是組成系統(tǒng)的核心"磚瓦",而聯(lián)結(jié)器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預(yù)期結(jié)果,任務(wù)流則描述系統(tǒng)如何使用這些元件和聯(lián)結(jié)器完成某一項需求。
2、建造一個系統(tǒng)所作出的最高層次的、以后難以更改的,商業(yè)的和技術(shù)的決定。在建造一個系統(tǒng)之前會有很多的重要決定需要事先作出,而一旦系統(tǒng)開始進行詳細設(shè)計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關(guān)系統(tǒng)設(shè)計成敗的最重要決定,必須經(jīng)過非常慎重的研究和考察。
看過“架構(gòu)的介紹“的人還看了: