-
當前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
軟件架構(gòu)體系結(jié)構(gòu)(軟件架構(gòu)體系結(jié)構(gòu)包括)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于軟件架構(gòu)體系結(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)表示了一個軟件系統(tǒng)的高層結(jié)構(gòu),主要特點有: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)以后的擴展性和伸縮性。所以有時候必須在多個不同方向的目標中進行決策。
當前已經(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é)點,而部件之間的交互就是節(jié)點之間的弧線。部件之間的連接可以被認為是一種連接器,比如過程調(diào)用、事件廣播、數(shù)據(jù)庫查詢等等。正確的體系結(jié)構(gòu)設(shè)計是軟件系統(tǒng)成功的關(guān)鍵。
二、軟件體系結(jié)構(gòu)的定義
雖然軟件體系結(jié)構(gòu)已經(jīng)在軟件工程領(lǐng)域中有著廣泛的應(yīng)用,但迄今為止還沒有一個被大家所公認的定義。許多專家學(xué)者從不同角度和不同側(cè)面對軟件體系結(jié)構(gòu)進行了刻畫,較為典型的定義有:
(2)Mary Shaw和David Garlan認為軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素的組織,規(guī)模和性能,在各設(shè)計方案間進行選擇等。軟件體系結(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)進行描述:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運行角度描述了一個系統(tǒng)的動態(tài)結(jié)構(gòu);代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。
(4)Hayes Roth則認為軟件體系結(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)系以及進行設(shè)計的原則和隨時間進化的指導(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)》一書中給出如下的定義:一個程序或計算機系統(tǒng)的軟件體系結(jié)構(gòu)包括一個或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見特性及其相互關(guān)系。其中,軟件外部的可見特性是指軟件構(gòu)件提供的服務(wù)、性能、特性、錯誤處理、共享資源使用等。
三、軟件工程中的主要體系結(jié)構(gòu)有哪些,并說明區(qū)別
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)域有著廣泛的影響,但當前仍未形成一個統(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)件類型。另外,當前被廣泛接受的構(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è)計。
四、為什么要研究軟件體系結(jié)構(gòu)
軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個結(jié)構(gòu) •行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素的描述。這些元素的相互作用 。
指導(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)該有哪
些部分組成?
構(gòu)件:可以是一組代碼,如程序的模塊也可以是一個獨立的程序 如數(shù)據(jù)庫 的sQL服務(wù)器;連接件:是關(guān)系的抽象,用以表示構(gòu)件之間的相互作用。如過程調(diào)用、管道、遠程過程調(diào)用等:限制:用于對構(gòu)件和連接件的語義說明。
以上就是關(guān)于軟件架構(gòu)體系結(jié)構(gòu)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
問大家
在濟南,哪一個相親交友軟件比較靠譜?白領(lǐng)同城交友哪家服務(wù)好?
包裝設(shè)計需要學(xué)哪些軟件?包裝效果圖怎么做?
請問我想學(xué)室內(nèi)設(shè)計軟件,是在網(wǎng)上報班好還是在當?shù)貓髠€班比較好呢,我是大學(xué)生?
濟南交友軟件哪個好用而且還是免費的?免費聊天的同城交友有哪些
免費的相親交友軟件哪個真實、可靠呢?或婚介所,要正規(guī)靠譜的!
廣告公司,項目多,一個項目多個供應(yīng)商,多個設(shè)計師跟單,應(yīng)該用什么軟件分類?
家裝設(shè)計師軟件要簡單易學(xué),應(yīng)該用什么?
在濟南,哪一個相親交友軟件、單身男女婚戀交友平臺正規(guī)、靠譜?
濟南真實可信的婚姻介紹所有哪些?齊魯軟件園附近靠譜的紅娘?。?/a>