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

    什么是軟件體系結(jié)構(gòu)

    發(fā)布時(shí)間:2023-04-08 01:54:11     稿源: 創(chuàng)意嶺    閱讀: 96        

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

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

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

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

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

    本文目錄:

    什么是軟件體系結(jié)構(gòu)

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

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

    什么是軟件體系結(jié)構(gòu)

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

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

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

    些部分組成?

    什么是軟件體系結(jié)構(gòu)

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

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

    軟件體系結(jié)構(gòu)貫穿于軟件研發(fā)的整個(gè)生命周期內(nèi),具有重要的影響。這主要從以下三個(gè)方面來(lái)進(jìn)行考察:

    利益相關(guān)人員之間的交流

    :軟件體系結(jié)構(gòu)是一種常見的對(duì)系統(tǒng)的抽象,代碼級(jí)別的系統(tǒng)抽象僅僅可以成為程序員的交流工具,而包括程序員在內(nèi)的絕大多數(shù)系統(tǒng)的利益相關(guān)人員都借助軟件體系結(jié)構(gòu)來(lái)進(jìn)行彼此理解、協(xié)商、達(dá)成共識(shí)或者相互溝通的基礎(chǔ)。

    系統(tǒng)設(shè)計(jì)的前期決策

    :軟件體系結(jié)構(gòu)是我們所開發(fā)的軟件系統(tǒng)最早期設(shè)計(jì)決策的體現(xiàn),而這些早期決策對(duì)軟件系統(tǒng)的后續(xù)開發(fā)、部署和維護(hù)具有相當(dāng)重要的影響。這也是能夠?qū)λ_發(fā)系統(tǒng)進(jìn)行分析的最早時(shí)間點(diǎn)。

    可傳遞的系統(tǒng)級(jí)抽象

    :軟件體系結(jié)構(gòu)是關(guān)于系統(tǒng)構(gòu)造以及系統(tǒng)各個(gè)元素工作機(jī)制的相對(duì)較小、卻又能夠突出反映問題的模型。由于軟件系統(tǒng)具有的一些共通特性,這種模型可以在多個(gè)系統(tǒng)之間傳遞,特別是可以應(yīng)用到具有相似質(zhì)量屬性和功能需求的系統(tǒng)中,并能夠促進(jìn)大規(guī)模軟件的系統(tǒng)級(jí)復(fù)用。

    什么是軟件體系結(jié)構(gòu)

    三、什么是動(dòng)態(tài)軟件體系結(jié)構(gòu)

    ‍百度百科:軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu)件負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組組合連接起來(lái)。這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方法在其他的定義和方法中基本上得到保持。

    四、幾種常見的軟件體系結(jié)構(gòu)及特點(diǎn)分析

    20世紀(jì)60年代的軟件危機(jī)使得人們開始重視軟件工程的研究。起初,人們把軟件設(shè)計(jì)的重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,然而隨著軟件系統(tǒng)規(guī)模越來(lái)越大,對(duì)總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和規(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è)計(jì)上。與傳統(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)是軟件要實(shí)現(xiàn)的主要功能和目標(biāo),橫切關(guān)注點(diǎn)是那些與核心關(guān)注點(diǎn)之間有橫切作用的關(guān)注點(diǎn),如系統(tǒng)日志、事務(wù)處理和權(quán)限驗(yàn)證等。AOSD通過分離系統(tǒng)的橫切關(guān)注點(diǎn)和核心關(guān)注點(diǎn),使得系統(tǒng)的設(shè)計(jì)和維護(hù)變得容易很多。

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

    盡管目前對(duì)于面向方面軟件體系結(jié)構(gòu)這個(gè)概念尚未形成統(tǒng)一的認(rèn)識(shí),但是一般認(rèn)為面向方面軟件體系結(jié)構(gòu)在傳統(tǒng)軟件體系結(jié)構(gòu)基礎(chǔ)上增加了方面構(gòu)件(aspect component)這一新的構(gòu)成單元,通過方面構(gòu)件來(lái)封裝系統(tǒng)的橫切關(guān)注點(diǎn)。目前國(guó)內(nèi)外對(duì)于面向方面軟件體系模型的研究還相對(duì)較少,對(duì)它的構(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ò)展一個(gè)可更改的接口而形成的,但它關(guān)于請(qǐng)求接口和服務(wù)接口的定義很模糊,未能給出一個(gè)清晰的方面構(gòu)件模型。Pawlak等人[3]提出了一個(gè)面向方面的框架,該框架主要包含了一個(gè)方面構(gòu)件模型———Java方面構(gòu)件(Java aspect component,JAC),但該方面構(gòu)件模型僅包含了切點(diǎn)(pointcut),并把AOP中裝備(advice)集成到了切點(diǎn)的表達(dá)式中,它主要從實(shí)現(xiàn)的角度進(jìn)行了闡述,并沒有給出詳細(xì)的方面構(gòu)件模型。本文沒有只關(guān)注面向方面軟件體系結(jié)構(gòu)中方面構(gòu)件這一構(gòu)成單元模型,還詳細(xì)分析了它的另外兩個(gè)構(gòu)成單元,即構(gòu)件和連接件,因?yàn)槊嫦蚍矫孳浖w系結(jié)構(gòu)各部分之間是相互關(guān)聯(lián)的。

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

    面向方面軟件體系結(jié)構(gòu)涉及諸多概念,以下將分別介紹。軟件體系結(jié)構(gòu)在軟件工程領(lǐng)域有著廣泛的影響,但當(dāng)前仍未形成一個(gè)統(tǒng)一的、標(biāo)準(zhǔn)的定義。目前國(guó)內(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)件是指具有一定功能、可明確辨識(shí)的軟件單位,并且具備語(yǔ)義完整、語(yǔ)法正確、有可重用價(jià)值的特點(diǎn),然而目前對(duì)于構(gòu)件的具體結(jié)構(gòu)及構(gòu)成并沒有一個(gè)統(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è)很有名的定義:軟件構(gòu)件是一個(gè)僅帶特定契約接口和顯式語(yǔ)境依賴的結(jié)構(gòu)單位,它可以獨(dú)立部署,易于第三方整合。但是關(guān)于軟件構(gòu)件模型有一個(gè)被普遍接受的觀點(diǎn)是:軟件構(gòu)件是一個(gè)具有服務(wù)提供和服務(wù)請(qǐng)求功能的軟件單元[7]。

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

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


    推薦閱讀:

    抖推貓會(huì)員有必要開嗎(抖推貓開通會(huì)員有什么好處)

    小紅書kol和koc的區(qū)別(小紅書的kol是什么意思)

    線上直播課需要什么資質(zhì)(線上直播課需要什么資質(zhì)和證書)

    景觀設(shè)計(jì)快題任務(wù)書(景觀設(shè)計(jì)快題任務(wù)書怎么寫)

    松江庭院景觀設(shè)計(jì)工作室(松江庭院景觀設(shè)計(jì)工作室電話)