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

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

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

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

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

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(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

    本文目錄:

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

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

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

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

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

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

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

    些部分組成?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    盡管目前對于面向方面軟件體系結(jié)構(gòu)這個概念尚未形成統(tǒng)一的認識,但是一般認為面向方面軟件體系結(jié)構(gòu)在傳統(tǒng)軟件體系結(jié)構(gòu)基礎(chǔ)上增加了方面構(gòu)件(aspect component)這一新的構(gòu)成單元,通過方面構(gòu)件來封裝系統(tǒng)的橫切關(guā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)思想擴展一個可更改的接口而形成的,但它關(guān)于請求接口和服務(wù)接口的定義很模糊,未能給出一個清晰的方面構(gòu)件模型。Pawlak等人[3]提出了一個面向方面的框架,該框架主要包含了一個方面構(gòu)件模型———Java方面構(gòu)件(Java aspect component,JAC),但該方面構(gòu)件模型僅包含了切點(pointcut),并把AOP中裝備(advice)集成到了切點的表達式中,它主要從實現(xiàn)的角度進行了闡述,并沒有給出詳細的方面構(gòu)件模型。本文沒有只關(guān)注面向方面軟件體系結(jié)構(gòu)中方面構(gòu)件這一構(gòu)成單元模型,還詳細分析了它的另外兩個構(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)一的、標準的定義。目前國內(nèi)外普遍認可的看法是軟件體系結(jié)構(gòu)包含構(gòu)件、連接件和約束[4]。其中約束描述了體系結(jié)構(gòu)配置和拓撲的要求,確定了體系結(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)的基本元素之一。一般認為,構(gòu)件是指具有一定功能、可明確辨識的軟件單位,并且具備語義完整、語法正確、有可重用價值的特點,然而目前對于構(gòu)件的具體結(jié)構(gòu)及構(gòu)成并沒有一個統(tǒng)一的標準[5],而且一些主要的構(gòu)件技術(shù)也沒有使用相同的構(gòu)件類型。另外,當(dāng)前被廣泛接受的構(gòu)件定義并不包含具體的軟件構(gòu)件模型(software component model)。例如,Szyperski等人[6]給出了軟件構(gòu)件一個很有名的定義:軟件構(gòu)件是一個僅帶特定契約接口和顯式語境依賴的結(jié)構(gòu)單位,它可以獨立部署,易于第三方整合。但是關(guān)于軟件構(gòu)件模型有一個被普遍接受的觀點是:軟件構(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)一的認識,盡管在軟件體系結(jié)構(gòu)中強調(diào)了連接件存在的必要性,但是關(guān)于連接件模型的研究還很少,連接件的實際應(yīng)用還不成熟。

    面向方面軟件體系結(jié)構(gòu)在傳統(tǒng)軟件體系結(jié)構(gòu)的基礎(chǔ)上增加了方面構(gòu)件單元。通常認為,方面構(gòu)件是封裝了系統(tǒng)橫切關(guā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ǔ)之上擴展了方面構(gòu)件,所以面向方面軟件體系模型結(jié)構(gòu)包含構(gòu)件、連接件、方面構(gòu)件和約束。其中約束描述了面向方面體系結(jié)構(gòu)配置和拓撲的要求,確定了體系結(jié)構(gòu)的構(gòu)件、連接件和方面構(gòu)件之間的連接關(guān)系,而構(gòu)件、連接件、方面構(gòu)件是它的三個基本的構(gòu)成單元。以下對這三個構(gòu)成單元的模型進行詳細的設(shè)計。

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


    推薦閱讀:

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

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

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

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

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