HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    發(fā)布時間:2023-04-14 14:05:33     稿源: 創(chuàng)意嶺    閱讀: 55        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于軟件架構(gòu)體系結(jié)構(gòu)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    一、軟件工程的體系結(jié)構(gòu)

    軟件體系結(jié)構(gòu)表示了一個軟件系統(tǒng)的高層結(jié)構(gòu),主要特點(diǎn)有:1)軟件系統(tǒng)結(jié)構(gòu)是一個高層次上的抽象,它并不涉及具體的系統(tǒng)結(jié)構(gòu)(比如B/S還是C/S),也不關(guān)心具體的實現(xiàn)。2)軟件體系結(jié)構(gòu)必須支持系統(tǒng)所要求的功能,在設(shè)計軟件體系結(jié)構(gòu)的時候,必須考慮系統(tǒng)的動態(tài)行為。3)在設(shè)計軟件體系結(jié)構(gòu)的時候,必須考慮有現(xiàn)有系統(tǒng)的兼容性、安全性和可靠性。同時還要考慮系統(tǒng)以后的擴(kuò)展性和伸縮性。所以有時候必須在多個不同方向的目標(biāo)中進(jìn)行決策。

    當(dāng)前已經(jīng)有一些關(guān)于規(guī)范化軟件體系結(jié)構(gòu),比如:ISO的開放系統(tǒng)互聯(lián)模型、X Window系統(tǒng)等等。軟件系統(tǒng)的結(jié)構(gòu)通常被定義為兩個部分:一個是計算部件。另一個就是部件之間的交互。如果把軟件系統(tǒng)看成一幅圖的話,計算部件就是其中的節(jié)點(diǎn),而部件之間的交互就是節(jié)點(diǎn)之間的弧線。部件之間的連接可以被認(rèn)為是一種連接器,比如過程調(diào)用、事件廣播、數(shù)據(jù)庫查詢等等。正確的體系結(jié)構(gòu)設(shè)計是軟件系統(tǒng)成功的關(guān)鍵。

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    二、軟件體系結(jié)構(gòu)的定義

    雖然軟件體系結(jié)構(gòu)已經(jīng)在軟件工程領(lǐng)域中有著廣泛的應(yīng)用,但迄今為止還沒有一個被大家所公認(rèn)的定義。許多專家學(xué)者從不同角度和不同側(cè)面對軟件體系結(jié)構(gòu)進(jìn)行了刻畫,較為典型的定義有:

    (2)Mary Shaw和David Garlan認(rèn)為軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素的組織,規(guī)模和性能,在各設(shè)計方案間進(jìn)行選擇等。軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計和描述方面的一些問題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計構(gòu)件功能定義,物理分布與合成,設(shè)計方案的選擇、評估與實現(xiàn)等

    (3)Kruchten指出,軟件體系結(jié)構(gòu)有四個角度,它們從不同方面對系統(tǒng)進(jìn)行描述:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述了一個系統(tǒng)的動態(tài)結(jié)構(gòu);代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。

    (4)Hayes Roth則認(rèn)為軟件體系結(jié)構(gòu)是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。

    (5)David Garlan和Dewne Perry于1995年在IEEE軟件工程學(xué)報上又采用如下的定義:軟件體系結(jié)構(gòu)是一個程序/系統(tǒng)各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進(jìn)行設(shè)計的原則和隨時間進(jìn)化的指導(dǎo)方針。

    (6)Barry Boehm和他的學(xué)生提出,一個軟件體系結(jié)構(gòu)包括一個軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合;一個系統(tǒng)需求說明的集合;一個基本原理用以說明這一構(gòu)件,互聯(lián)和約束能夠滿足系統(tǒng)需求。

    (7)1997年,Bass,Ctements和Kazman在《使用軟件體系結(jié)構(gòu)》一書中給出如下的定義:一個程序或計算機(jī)系統(tǒng)的軟件體系結(jié)構(gòu)包括一個或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見特性及其相互關(guān)系。其中,軟件外部的可見特性是指軟件構(gòu)件提供的服務(wù)、性能、特性、錯誤處理、共享資源使用等。

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    三、軟件工程中的主要體系結(jié)構(gòu)有哪些,并說明區(qū)別

    20世紀(jì)60年代的軟件危機(jī)使得人們開始重視軟件工程的研究。起初,人們把軟件設(shè)計的重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,然而隨著軟件系統(tǒng)規(guī)模越來越大,對總體的系統(tǒng)結(jié)構(gòu)設(shè)計和規(guī)格說明變得異常重要。隨著軟件危機(jī)程度的加劇,軟件體系結(jié)構(gòu)(software architecture)這一概念應(yīng)運(yùn)而生。軟件體系結(jié)構(gòu)著眼于軟件系統(tǒng)的全局組織形式,在較高層次上把握系統(tǒng)各部分之間的內(nèi)在聯(lián)系,將軟件開發(fā)的焦點(diǎn)從成百上千的代碼上轉(zhuǎn)移到粒度較大的體系結(jié)構(gòu)元素及其交互的設(shè)計上。與傳統(tǒng)軟件技術(shù)相比,軟件體系結(jié)構(gòu)理論的提出不僅有利于解決軟件系統(tǒng)日益增加的規(guī)模和復(fù)雜度的問題,有利于構(gòu)件的重用,也有利于軟件生產(chǎn)率的提高。面向方面軟件開發(fā)(AOSD)認(rèn)為系統(tǒng)是由核心關(guān)注點(diǎn)(corn concern)和橫切關(guān)注點(diǎn)(cross-cutting concern)有機(jī)地交織在一起而形成的。核心關(guān)注點(diǎn)是軟件要實現(xiàn)的主要功能和目標(biāo),橫切關(guān)注點(diǎn)是那些與核心關(guān)注點(diǎn)之間有橫切作用的關(guān)注點(diǎn),如系統(tǒng)日志、事務(wù)處理和權(quán)限驗證等。AOSD通過分離系統(tǒng)的橫切關(guān)注點(diǎn)和核心關(guān)注點(diǎn),使得系統(tǒng)的設(shè)計和維護(hù)變得容易很多。

    Extremadura大學(xué)的Navasa等人[1]在2002年提出了將面向方面軟件開發(fā)技術(shù)引入到軟件體系結(jié)構(gòu)的設(shè)計中,稱之為面向方面軟件體系結(jié)構(gòu)(aspect oriented software architecture,AO-SA),這樣能夠結(jié)合兩者的優(yōu)點(diǎn),但是并沒有給出構(gòu)建面向方面軟件體系結(jié)構(gòu)的詳細(xì)方法。

    盡管目前對于面向方面軟件體系結(jié)構(gòu)這個概念尚未形成統(tǒng)一的認(rèn)識,但是一般認(rèn)為面向方面軟件體系結(jié)構(gòu)在傳統(tǒng)軟件體系結(jié)構(gòu)基礎(chǔ)上增加了方面構(gòu)件(aspect component)這一新的構(gòu)成單元,通過方面構(gòu)件來封裝系統(tǒng)的橫切關(guān)注點(diǎn)。目前國內(nèi)外對于面向方面軟件體系模型的研究還相對較少,對它的構(gòu)成單元模型的研究更少,通常只關(guān)注方面構(gòu)件這一構(gòu)成單元。方面構(gòu)件最早是由Lieberherr等人[2]提出的,它是在自適應(yīng)可插拔構(gòu)件(adaptive plug and play component,APPC)基礎(chǔ)之上通過引入面向方面編程(AOP)思想擴(kuò)展一個可更改的接口而形成的,但它關(guān)于請求接口和服務(wù)接口的定義很模糊,未能給出一個清晰的方面構(gòu)件模型。Pawlak等人[3]提出了一個面向方面的框架,該框架主要包含了一個方面構(gòu)件模型———Java方面構(gòu)件(Java aspect component,JAC),但該方面構(gòu)件模型僅包含了切點(diǎn)(pointcut),并把AOP中裝備(advice)集成到了切點(diǎn)的表達(dá)式中,它主要從實現(xiàn)的角度進(jìn)行了闡述,并沒有給出詳細(xì)的方面構(gòu)件模型。本文沒有只關(guān)注面向方面軟件體系結(jié)構(gòu)中方面構(gòu)件這一構(gòu)成單元模型,還詳細(xì)分析了它的另外兩個構(gòu)成單元,即構(gòu)件和連接件,因為面向方面軟件體系結(jié)構(gòu)各部分之間是相互關(guān)聯(lián)的。

    1面向方面軟件體系結(jié)構(gòu)相關(guān)概念

    面向方面軟件體系結(jié)構(gòu)涉及諸多概念,以下將分別介紹。軟件體系結(jié)構(gòu)在軟件工程領(lǐng)域有著廣泛的影響,但當(dāng)前仍未形成一個統(tǒng)一的、標(biāo)準(zhǔn)的定義。目前國內(nèi)外普遍認(rèn)可的看法是軟件體系結(jié)構(gòu)包含構(gòu)件、連接件和約束[4]。其中約束描述了體系結(jié)構(gòu)配置和拓?fù)涞囊?,確定了體系結(jié)構(gòu)的構(gòu)件與連接件的連接關(guān)系。這樣就可以把軟件體系結(jié)構(gòu)寫成

    軟件體系結(jié)構(gòu)(software architecture)=構(gòu)件(components)+

    連接件(connectors)+約束(constraints)

    構(gòu)件是軟件體系結(jié)構(gòu)的基本元素之一。一般認(rèn)為,構(gòu)件是指具有一定功能、可明確辨識的軟件單位,并且具備語義完整、語法正確、有可重用價值的特點(diǎn),然而目前對于構(gòu)件的具體結(jié)構(gòu)及構(gòu)成并沒有一個統(tǒng)一的標(biāo)準(zhǔn)[5],而且一些主要的構(gòu)件技術(shù)也沒有使用相同的構(gòu)件類型。另外,當(dāng)前被廣泛接受的構(gòu)件定義并不包含具體的軟件構(gòu)件模型(software component model)。例如,Szyperski等人[6]給出了軟件構(gòu)件一個很有名的定義:軟件構(gòu)件是一個僅帶特定契約接口和顯式語境依賴的結(jié)構(gòu)單位,它可以獨(dú)立部署,易于第三方整合。但是關(guān)于軟件構(gòu)件模型有一個被普遍接受的觀點(diǎn)是:軟件構(gòu)件是一個具有服務(wù)提供和服務(wù)請求功能的軟件單元[7]。

    連接件是軟件體系結(jié)構(gòu)另一個基本的構(gòu)成元素,是用來建立構(gòu)件間交互以及支配這些交互規(guī)則的構(gòu)造模塊。連接件最先是由Shaw[8]提出來的,她建議把連接件作為軟件體系結(jié)構(gòu)中第一類實體,用來表示普通構(gòu)件之間的交互關(guān)系。目前對于連接件尚未形成統(tǒng)一的認(rèn)識,盡管在軟件體系結(jié)構(gòu)中強(qiáng)調(diào)了連接件存在的必要性,但是關(guān)于連接件模型的研究還很少,連接件的實際應(yīng)用還不成熟。

    面向方面軟件體系結(jié)構(gòu)在傳統(tǒng)軟件體系結(jié)構(gòu)的基礎(chǔ)上增加了方面構(gòu)件單元。通常認(rèn)為,方面構(gòu)件是封裝了系統(tǒng)橫切關(guān)注點(diǎn)的一類特殊的構(gòu)件。目前關(guān)于方面構(gòu)件模型的研究還處于起步階段。

    2面向方面軟件體系結(jié)構(gòu)模型

    由于傳統(tǒng)軟件體系結(jié)構(gòu)模型包含構(gòu)件、連接件和約束,而面向方面軟件體系結(jié)構(gòu)是在傳統(tǒng)軟件體系結(jié)構(gòu)的基礎(chǔ)之上擴(kuò)展了方面構(gòu)件,所以面向方面軟件體系模型結(jié)構(gòu)包含構(gòu)件、連接件、方面構(gòu)件和約束。其中約束描述了面向方面體系結(jié)構(gòu)配置和拓?fù)涞囊?,確定了體系結(jié)構(gòu)的構(gòu)件、連接件和方面構(gòu)件之間的連接關(guān)系,而構(gòu)件、連接件、方面構(gòu)件是它的三個基本的構(gòu)成單元。以下對這三個構(gòu)成單元的模型進(jìn)行詳細(xì)的設(shè)計。

    四、為什么要研究軟件體系結(jié)構(gòu)

    軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個結(jié)構(gòu) •行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素的描述。這些元素的相互作用 。

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    指導(dǎo)元素成的模式以及這些模式的約束組成。不僅指定了系

    統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),而且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應(yīng)關(guān)系,提供了

    一些設(shè)計決策的基本原理。根據(jù)軟件體系結(jié)構(gòu)的定義,你認(rèn)為軟件體系結(jié)枸的模型應(yīng)該有哪

    些部分組成?

    軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)

    構(gòu)件:可以是一組代碼,如程序的模塊也可以是一個獨(dú)立的程序 如數(shù)據(jù)庫 的sQL服務(wù)器;連接件:是關(guān)系的抽象,用以表示構(gòu)件之間的相互作用。如過程調(diào)用、管道、遠(yuǎn)程過程調(diào)用等:限制:用于對構(gòu)件和連接件的語義說明。

    以上就是關(guān)于軟件架構(gòu)體系結(jié)構(gòu)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    設(shè)計商標(biāo)軟件(商標(biāo)設(shè)計用什么軟件最好)

    快手快幣免費(fèi)刷(快手免費(fèi)刷快幣的軟件下載)

    漁夫微信互投票群二維碼(漁夫微信互投票群軟件)

    空氣源排行榜(空氣源品牌排行榜前十名)

    seo公司杭州(杭州seo服務(wù)公司)