軟件架構(gòu)設(shè)計(jì)教程_第1頁(yè)
軟件架構(gòu)設(shè)計(jì)教程_第2頁(yè)
軟件架構(gòu)設(shè)計(jì)教程_第3頁(yè)
軟件架構(gòu)設(shè)計(jì)教程_第4頁(yè)
軟件架構(gòu)設(shè)計(jì)教程_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件架構(gòu)設(shè)計(jì)主講:周榮輝1/59軟件開發(fā)技術(shù)發(fā)展第一批計(jì)算機(jī)誕生~50年代初:由0、1機(jī)器指令編程。50年代早期:用匯編語(yǔ)言編程最早軟件抽象

50年代中期:出現(xiàn)高級(jí)語(yǔ)言—FORTRAN。使用算術(shù)、邏輯運(yùn)算,過(guò)程調(diào)用,循環(huán)和條件等編程—編程高級(jí)抽象

監(jiān)控程序系統(tǒng)最早對(duì)硬件軟件抽象。60年代:以過(guò)程為基礎(chǔ)塊構(gòu)造編程—ALGOL語(yǔ)言

70年代:PASCAL、C語(yǔ)言出現(xiàn)構(gòu)造化程序設(shè)計(jì)自定義數(shù)據(jù)類型、數(shù)據(jù)構(gòu)造數(shù)據(jù)抽象操作系統(tǒng)出現(xiàn)軟件開發(fā)平臺(tái)抽象數(shù)據(jù)庫(kù)管理系統(tǒng)出現(xiàn):數(shù)據(jù)管理抽象80年代:面向?qū)ο蟪绦蛟O(shè)計(jì)抽象數(shù)據(jù)類型封裝、繼承、多態(tài)

90年代:WINDOWS操作系統(tǒng)、可視化編程、Internet、分布式計(jì)算、分布式數(shù)據(jù)庫(kù)、組件技術(shù)、代理、……2/59新發(fā)展趨勢(shì)1、WebService

依靠SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)消息,借助于XML強(qiáng)大描述能力,以及渙散藕合協(xié)議體系,各個(gè)WebService端點(diǎn)能夠無(wú)障礙通訊,這些端點(diǎn)大到能夠是IBM390大型機(jī),小到PDA手持設(shè)備,甚至是智能手表,通訊能夠跨越硬件、操作系統(tǒng)、虛擬機(jī)平臺(tái)等等。2、網(wǎng)格計(jì)算(GridComputing)利用互聯(lián)網(wǎng)把分散在不一樣地理位置電腦組織成一種“虛擬超級(jí)計(jì)算機(jī)”,其中每一臺(tái)參與計(jì)算計(jì)算機(jī)就是一種“節(jié)點(diǎn)”,而整個(gè)計(jì)算是由成千上萬(wàn)個(gè)“節(jié)點(diǎn)”組成“一張網(wǎng)格”,因此這種計(jì)算方式叫網(wǎng)格計(jì)算。這樣組織起來(lái)“虛擬超級(jí)計(jì)算機(jī)”有兩個(gè)優(yōu)勢(shì),一種是數(shù)據(jù)處理能力超強(qiáng);另一種是能充足利用網(wǎng)上閑置處理能力。3/59軟件抽象層次對(duì)軟件開發(fā)影響軟件開發(fā)抽象層次提升發(fā)展趨勢(shì)是以關(guān)注軟件開發(fā)技術(shù)問(wèn)題向關(guān)注顧客應(yīng)用問(wèn)題傾斜。匯編語(yǔ)言出現(xiàn),使開發(fā)人員能夠用一組便于理解和記憶符號(hào)來(lái)表達(dá)計(jì)算機(jī)可進(jìn)行基本運(yùn)算。高級(jí)語(yǔ)言出現(xiàn),能夠用常規(guī)體現(xiàn)式表達(dá)形式和人們處理問(wèn)題思維過(guò)程來(lái)表達(dá)對(duì)問(wèn)題求解。構(gòu)造化軟件設(shè)計(jì)關(guān)鍵是以模塊作為程序設(shè)計(jì)基本單位,能夠用模塊及模塊間構(gòu)造來(lái)體現(xiàn)問(wèn)題求解方案。面向?qū)ο筌浖_發(fā)技術(shù)用對(duì)象作為最基本元素,采取繼承、封裝、多態(tài)等機(jī)制,使軟件重用成為也許。軟件組件技術(shù)實(shí)現(xiàn)了對(duì)軟件最后形式—可執(zhí)行二進(jìn)制代碼復(fù)用,使軟件構(gòu)件組裝成為也許。4/59軟件對(duì)環(huán)境依賴性23年前,一種軟件就是一種獨(dú)立EXE文獻(xiàn),除了需要操作系統(tǒng)環(huán)境支持外,不再需要其他環(huán)境支持。所有程序模塊都是自己編寫,模塊之間調(diào)用關(guān)系清清楚楚。WINDOWS操作系統(tǒng)和可視化編程出現(xiàn)后,對(duì)環(huán)境依賴性顯著增加,程序員很難說(shuō)清楚模塊間調(diào)用關(guān)系,但大多數(shù)程序都在一臺(tái)計(jì)算機(jī)上完成運(yùn)算。Internet出現(xiàn)后,一種顧客應(yīng)用功能實(shí)現(xiàn),誰(shuí)也說(shuō)不清楚使用了哪些硬軟件資源,在哪臺(tái)設(shè)備上完成了什么任務(wù)。一種軟件及其數(shù)據(jù)也許布署在多臺(tái)計(jì)算機(jī)設(shè)備上,需要Web服務(wù)器、需要安裝瀏覽器軟件,需要對(duì)應(yīng)通信協(xié)議支持。軟件只有邏輯概念。在WebService和計(jì)算網(wǎng)格環(huán)境下,軟件概念將變得更含糊。

5/59軟件開發(fā)重點(diǎn)轉(zhuǎn)移面向?qū)ο蠹夹g(shù)、可視化編成技術(shù)、組件技術(shù),以及強(qiáng)大軟件工具支持,使得本來(lái)實(shí)現(xiàn)起來(lái)很復(fù)雜、很花費(fèi)精力軟件實(shí)現(xiàn)技術(shù)變得非常簡(jiǎn)單,并且在某些環(huán)境下,能夠不編程序代碼,或編很少程序代碼,就可實(shí)現(xiàn)一種界面美觀、可靠性高軟件。另一方面,軟件規(guī)模和復(fù)雜性越來(lái)越大,軟件運(yùn)行環(huán)境越來(lái)越復(fù)雜,使得軟件開發(fā)主要精力放在了軟件運(yùn)行基礎(chǔ)環(huán)境考慮、軟件開發(fā)環(huán)境配備、軟件開發(fā)總體方案制定、軟件架構(gòu)模式選擇、不一樣環(huán)境中軟件元素間通信實(shí)現(xiàn)、軟件安裝及運(yùn)行環(huán)境配備等事關(guān)全局問(wèn)題上。即軟件設(shè)計(jì)已經(jīng)從關(guān)懷基本構(gòu)造和算法轉(zhuǎn)移到了對(duì)宏觀構(gòu)造結(jié)識(shí)上;從關(guān)注功能實(shí)現(xiàn)轉(zhuǎn)移到了對(duì)綜合性能要求上,軟件架構(gòu)設(shè)計(jì)成了關(guān)注重點(diǎn)。6/59軟件體系構(gòu)造概念軟件體系構(gòu)造和軟件架構(gòu)對(duì)應(yīng)英文單詞都是“Softwarearchitecture”,即它們是意義完全相同兩個(gè)漢字單詞用語(yǔ)。在使用它們時(shí)往往帶有一種習(xí)慣上差異,一般學(xué)術(shù)上用“軟件體系構(gòu)造”較多,在軟件系統(tǒng)設(shè)計(jì)上用“軟件架構(gòu)”較多,如在軟件公司里,有“軟件架構(gòu)師”職位,但很難聽到“軟件體系構(gòu)造師”說(shuō)法。

7/59軟件架構(gòu)概念在軟件架構(gòu)概念理解上一般分為兩大流派:●組成派:軟件系統(tǒng)架構(gòu)將系統(tǒng)描述為計(jì)算組件及組件之間交互?!駴Q策派:軟件架構(gòu)是一系列主要決策集合。8/59與決策派有關(guān)軟件架構(gòu)定義Booch、Rumbaugh、Jacobson定義:架構(gòu)是一系列主要決策集合,這些決策與下列內(nèi)容有關(guān):軟件組織、組成系統(tǒng)構(gòu)造元素及其接口選擇,這些元素在互相協(xié)作中明確體現(xiàn)出行為,這些構(gòu)造元素和行為深入組合所組成更大規(guī)模子系統(tǒng),以及指導(dǎo)這一組織—包括這些元素及其接口、它們協(xié)作和它們組合—架構(gòu)格調(diào)。Woods觀點(diǎn):軟件架構(gòu)是一系列設(shè)計(jì)決策,假如作了不正確決策,你項(xiàng)目也許最后會(huì)被取消。9/59與組成派有關(guān)軟件架構(gòu)定義Garlan和Shaw定義:軟件架構(gòu)包括構(gòu)件、連接件和約束三大要素。構(gòu)件能夠是一組代碼(如程序模塊),也能夠是獨(dú)立程序(如數(shù)據(jù)庫(kù)服務(wù)器)。連接件能夠是過(guò)程調(diào)用、管道和消息等,用于表達(dá)組件之間互相關(guān)系。“約束”一般為組件連接條件。DewaynePerry和AlexWolf定義:軟件體系構(gòu)造是一組具有一定形式體系構(gòu)造元素。這組元素分為3類:負(fù)責(zé)完成數(shù)據(jù)加工處理元素,作為被加工信息數(shù)據(jù)元素和連接元素。連接元素用于把架構(gòu)不一樣部分組合連接在一起。

IEEE610.12-1990軟件工程標(biāo)準(zhǔn)詞匯定義:體系構(gòu)造是以構(gòu)件、構(gòu)件之間關(guān)系、構(gòu)件與環(huán)境之間關(guān)系為內(nèi)容某一系統(tǒng)基本組織構(gòu)造以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化原理。10/59與軟件架構(gòu)有關(guān)概念—構(gòu)件廣義上,構(gòu)件是軟件系統(tǒng)構(gòu)造塊單元,是軟件功能和承載體。因此,從系統(tǒng)組成上看,任何在系統(tǒng)中承當(dāng)一定功能、發(fā)揮一定作用軟件體都能夠當(dāng)作是構(gòu)件。構(gòu)件能夠分為計(jì)算構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。狹義上,把組成軟件系統(tǒng)構(gòu)造塊分為構(gòu)件和連接件,而構(gòu)件與連接件在一種軟件系統(tǒng)中扮演角色是可辨別。因此,狹義構(gòu)件指與系統(tǒng)設(shè)計(jì)目標(biāo)(業(yè)務(wù)功能需求)對(duì)應(yīng)構(gòu)造塊(處理單元和數(shù)據(jù)單元),為狹義構(gòu)件之間協(xié)同運(yùn)行穿針引線構(gòu)造塊稱為連接件。構(gòu)件與連接件主線區(qū)分是:構(gòu)件有領(lǐng)域業(yè)務(wù)處理功能,連接件只起業(yè)務(wù)構(gòu)件之間中介作用11/59與軟件架構(gòu)有關(guān)概念—構(gòu)件構(gòu)件有不一樣粒度。一種構(gòu)件能夠小到只有一種過(guò)程(或函數(shù)),也能夠大到包括整個(gè)應(yīng)用程序。函數(shù)、例程、對(duì)象、類庫(kù)、數(shù)據(jù)包、服務(wù)器、文獻(xiàn)等都能夠作為一種構(gòu)件。對(duì)應(yīng)一種軟件架構(gòu)實(shí)例來(lái)說(shuō),用什么粒度構(gòu)件來(lái)描述軟件架構(gòu)呢?應(yīng)當(dāng)從軟件“系統(tǒng)”層面上能夠把軟件提成多少個(gè)邏輯上相對(duì)獨(dú)立計(jì)算單元(子系統(tǒng))。每一種相對(duì)獨(dú)立計(jì)算單元就是一種構(gòu)件。假如每個(gè)子系統(tǒng)又是一種高度獨(dú)立系統(tǒng),又能夠以它作為觀測(cè)“系統(tǒng)”對(duì)象,將其分解為若干個(gè)邏輯上相對(duì)獨(dú)立計(jì)算單元,每個(gè)計(jì)算單元就是一種構(gòu)件。在不一樣設(shè)計(jì)環(huán)境中,構(gòu)件可體現(xiàn)為控件、組件、表、實(shí)體、包、設(shè)計(jì)模式、框架等。12/59與軟件架構(gòu)有關(guān)概念—連接件連接是構(gòu)件和構(gòu)件之間建立和維持行為關(guān)聯(lián)和信息傳遞途徑。連接包括:實(shí)現(xiàn)機(jī)制和信息交換協(xié)議。1、實(shí)現(xiàn)機(jī)制硬件層:過(guò)程調(diào)用、中斷、存放、棧等基礎(chǔ)控制描述層:過(guò)程調(diào)用、中斷/事件、流、文獻(xiàn)、網(wǎng)絡(luò)等。資源管理調(diào)度層:進(jìn)程、線程、共享、同步、并行、事件、異常、遠(yuǎn)程調(diào)用等。高級(jí)抽象層:管道、解釋器、轉(zhuǎn)換器、瀏覽器、組件/中間件、C/S、B/S、ODBC等。2、信息交換協(xié)議信息交換協(xié)議是連接規(guī)約,是實(shí)現(xiàn)故意義連接確保。最簡(jiǎn)單連接是過(guò)程調(diào)用,過(guò)程調(diào)用實(shí)現(xiàn)也有協(xié)議,如接口參數(shù)次序和類型、如何把參數(shù)放到取得數(shù)據(jù)一方能夠取得到地方等。13/59與軟件架構(gòu)有關(guān)概念—連接件連接件作用是構(gòu)件交互實(shí)現(xiàn)。構(gòu)件之間交互包括消息或信號(hào)量傳遞,功能或辦法調(diào)用,數(shù)據(jù)傳送和轉(zhuǎn)換,構(gòu)件之間同步關(guān)系、依賴關(guān)系等。在最簡(jiǎn)單情況下,構(gòu)件之間能夠直接完成交互,如C語(yǔ)言中函數(shù)調(diào)用,這時(shí)體系構(gòu)造中連接件就退化為直接連接語(yǔ)句(沒(méi)有物理存在形式,只有概念上連接件)。在復(fù)雜情況下,構(gòu)件間交互需要物理連接件來(lái)實(shí)現(xiàn)。常見連接件有管道(管道過(guò)濾器體系構(gòu)造)、通信協(xié)議和通信機(jī)制(客戶服務(wù)器體系構(gòu)造)等。14/59與軟件架構(gòu)有關(guān)概念—連接件連接件體現(xiàn)形式是多種多樣,如一種事先商定,A構(gòu)件把數(shù)據(jù)以事先商定文獻(xiàn)名和存放格式放到事先商定位置,B構(gòu)件就按事先商定讀取數(shù)據(jù)進(jìn)行處理。A構(gòu)件按事先商定實(shí)現(xiàn)文獻(xiàn)就是連接件。在系統(tǒng)功能構(gòu)造方面,構(gòu)件是更多是體現(xiàn)為功能實(shí)體,連接件是“使用”什么數(shù)據(jù)或傳遞數(shù)據(jù)。在系統(tǒng)代碼構(gòu)造方面,構(gòu)件也許是包、類、對(duì)象、過(guò)程、函數(shù)、辦法等不一樣粒度軟件元素。連接件包括“傳遞控制到……”、“傳遞數(shù)據(jù)到……”、“和……共享數(shù)據(jù)”、“是……實(shí)例”、調(diào)用、使用等。15/59與軟件架構(gòu)有關(guān)概念—連接件連接件設(shè)計(jì)已經(jīng)成為軟件開發(fā)關(guān)鍵技術(shù)。連接件設(shè)計(jì)要考慮原因包括不一樣涉眾需求、構(gòu)件形式、系統(tǒng)性能、系統(tǒng)可維護(hù)性、系統(tǒng)安全性、系統(tǒng)可靠性等。構(gòu)件能夠以多種形式出現(xiàn)。對(duì)于集中數(shù)據(jù)管理分布式應(yīng)用系統(tǒng),共享后臺(tái)數(shù)據(jù)庫(kù)不一樣構(gòu)件之間連接件?;ハ嗒?dú)立應(yīng)用系統(tǒng)之間交互能夠用WebService組件、消息中間件實(shí)現(xiàn)連接是目前廣泛采取技術(shù)。分布式系統(tǒng)采取選定機(jī)制和協(xié)議實(shí)現(xiàn)連接。與第三方認(rèn)證連接、與銀行交費(fèi)系統(tǒng)連接、與稅務(wù)系統(tǒng)連接,都與系統(tǒng)安全性、涉眾利益直接有關(guān),技術(shù)非常復(fù)雜。C/S、B/S模式構(gòu)件之間連接,都是通過(guò)中間件和協(xié)議實(shí)現(xiàn)。16/59兩種架構(gòu)設(shè)計(jì)區(qū)分和聯(lián)系組成派和決策派有關(guān)軟件架構(gòu)概念區(qū)分在于從不一樣角度來(lái)描述對(duì)軟件架構(gòu)概念結(jié)識(shí)。組成派是從軟件架構(gòu)最后形態(tài)角度來(lái)描述軟件架構(gòu),決策派是從軟件架構(gòu)形成過(guò)程來(lái)描述軟件架構(gòu)。軟件架構(gòu)最后要用構(gòu)件、連接件及其約束來(lái)描述,這既是決策主要內(nèi)容和決策成果,也是軟件架構(gòu)最后體現(xiàn)形式。這就是他們共同點(diǎn)。決策內(nèi)容范圍更廣,軟件架構(gòu)不但重視軟件本身構(gòu)造和行為,還重視可用性、功能性、性能、重用、可理解性、經(jīng)濟(jì)和技術(shù)限制等。任何一項(xiàng)決策都是屬于軟件架構(gòu)內(nèi)容,有決策也許與構(gòu)件、連接件選擇無(wú)關(guān)。一種軟件項(xiàng)目開發(fā)也許包括到多套方案,對(duì)方案選擇也許包括到復(fù)雜原因,需要高層決策者做出有遠(yuǎn)見決策這樣決策對(duì)系統(tǒng)開發(fā)產(chǎn)生主線性影響,軟件系統(tǒng)最后體現(xiàn)構(gòu)件、連接件及其約束選擇是這些決策造成產(chǎn)物。17/59實(shí)例—一種考試系統(tǒng)設(shè)計(jì)決策(1)對(duì)于一種考試系統(tǒng),考試公正性、可用性、系統(tǒng)性能是考試系統(tǒng)關(guān)鍵質(zhì)量屬性。1、對(duì)公正性考慮:避免剽竊是主要措施。方案:同一份母卷,產(chǎn)生不一樣考試試卷??忌卿浐螅苯由煽荚囋嚲?。2、可用性考慮:考生年紀(jì)差異大、工作崗位特殊、有考生計(jì)算機(jī)應(yīng)用水平很低,也許無(wú)法輸漢字。方案:①考生登錄只輸數(shù)字型考號(hào),登錄后顯示考生信息進(jìn)行核實(shí);②客觀題機(jī)考,主觀題可機(jī)考,也可筆試(通過(guò)投影儀顯示主觀題)3、系統(tǒng)性能不影響考試進(jìn)度和考生情緒。前面1、2條方案屬于軟件架構(gòu)內(nèi)容,由于它是考試系統(tǒng)設(shè)計(jì)必須遵循標(biāo)準(zhǔn)。性能問(wèn)題難以估計(jì),將逐漸處理。18/59實(shí)例—一種考試系統(tǒng)設(shè)計(jì)決策(2)1、生成試卷存在問(wèn)題:當(dāng)超出50人考試時(shí),生成試卷遇到性能瓶頸:等候時(shí)間長(zhǎng),甚至產(chǎn)生試卷不完整。原因:生成試卷是對(duì)母卷進(jìn)行隨機(jī)大題交換、小題交換、備選答案交換等一系列復(fù)雜運(yùn)算實(shí)現(xiàn),運(yùn)行時(shí)間長(zhǎng),并發(fā)操作不能太多。處理方案:將試卷生成功能獨(dú)立,提前一種時(shí)間量先生成考試試卷,考生登錄后直接取試卷。2、考生登錄遇到問(wèn)題:當(dāng)一次考試超出300人后,考生登錄輸入考號(hào)后不能如考生所盼望那樣立即顯示有關(guān)信息,需要等候一會(huì)兒,盡管只有幾秒鐘,但會(huì)影響考生情緒。原因:盡管考生身份驗(yàn)證簡(jiǎn)單,但并發(fā)操作太多同樣影響性能。處理方案:將考生提成不一樣邏輯班,不一樣邏輯班將考試時(shí)間錯(cuò)開一種小時(shí)間間隔(如5分鐘)。19/59實(shí)例—一種考試系統(tǒng)架構(gòu)設(shè)計(jì)(3)3、網(wǎng)絡(luò)環(huán)境對(duì)考試影響:有地域網(wǎng)絡(luò)環(huán)境差,難以確??荚図樌M(jìn)行;考生范圍局限在某個(gè)地域,將考生集中到某個(gè)地方參與考試成本大。處理方案:通過(guò)考試系統(tǒng)下載與安裝、考試數(shù)據(jù)下載、上傳、裝載等功能,輔之其他措施確??荚囉行浴T摲桨笇⒂绊懣荚囅到y(tǒng)物理架構(gòu),即系統(tǒng)是一種分布式架構(gòu),交互機(jī)制是通過(guò)網(wǎng)絡(luò)進(jìn)行文獻(xiàn)下載、上傳進(jìn)行。一種軟件系統(tǒng)設(shè)計(jì),首先要對(duì)需求中提出多種問(wèn)題提出合理處理方案。這些處理方案反應(yīng)是設(shè)計(jì)過(guò)程,代表是高層設(shè)計(jì)決策。對(duì)這些設(shè)計(jì)決策詳細(xì)化,綜合化,就組成了以構(gòu)件、連接件等形式表達(dá)軟件架構(gòu)。考試中心考點(diǎn)文獻(xiàn)下載上傳20/59軟件架構(gòu)設(shè)計(jì)關(guān)注點(diǎn)軟件設(shè)計(jì)首要任務(wù)是實(shí)現(xiàn)系統(tǒng)功能需求,功能不能滿足顧客需求軟件無(wú)論如何也算不上好軟件。同步軟件設(shè)計(jì)必須對(duì)軟件非功能要求提出處理方案,使開發(fā)軟件滿足那些非功能要求,不能滿足非功能要求軟件也不是一種好軟件。簡(jiǎn)單地說(shuō),不能滿足功能要求軟件是一種不能用軟件(不能處理顧客關(guān)注業(yè)務(wù)問(wèn)題),不能滿足非功能要求軟件是一種不好用軟件。在以計(jì)算機(jī)網(wǎng)絡(luò)和Internet為計(jì)算環(huán)境今天,僅僅滿足軟件功能要求是遠(yuǎn)遠(yuǎn)不夠。能夠構(gòu)想,假如學(xué)生學(xué)籍管理系統(tǒng)只由一臺(tái)微機(jī)來(lái)實(shí)現(xiàn),或者只能由連接相鄰幾個(gè)房間局域網(wǎng)來(lái)實(shí)現(xiàn),將是什么場(chǎng)景?軟件體系構(gòu)造設(shè)計(jì)關(guān)注點(diǎn)是顧客非功能需求。軟件非功能需求是軟件構(gòu)造設(shè)計(jì)驅(qū)動(dòng)力。21/59軟件質(zhì)量特性有關(guān)軟件設(shè)計(jì)從設(shè)計(jì)角度考慮,功能容易確保,也容易驗(yàn)證。最基本質(zhì)量要求還應(yīng)當(dāng)考慮:●安全性:基本安全要求包括:系統(tǒng)只允許合法顧客使用,合法顧客就是系統(tǒng)主要參與者;合法顧客只允許使用與自己有關(guān)功能和數(shù)據(jù)?!窨捎眯裕鹤詈箢櫩腿菀资褂贸潭?,主要體目前顧客與系統(tǒng)交互方面?!窨煽啃裕很浖\(yùn)行故障少,具有可恢復(fù)性。●性能:包括響應(yīng)時(shí)間、吞吐量、精確性、有效性、資源利用率。●可修改性:包括可維護(hù)性、可重用性、可移植性、系統(tǒng)配備靈活性等。。22/59系統(tǒng)安全性設(shè)計(jì)系統(tǒng)安全性包括到系統(tǒng)環(huán)境安全性、系統(tǒng)本身安全性。軟件系統(tǒng)本身安全性是只允許合法顧客使用系統(tǒng),并且只允許合法顧客做它份內(nèi)事?;谟?jì)算機(jī)網(wǎng)絡(luò)軟件系統(tǒng)必須同步考慮環(huán)境安全和系統(tǒng)本身安全。環(huán)境安全是軟件系統(tǒng)安全基礎(chǔ)。從設(shè)計(jì)角度考慮,網(wǎng)絡(luò)架構(gòu)選擇、鏈接方式、通信方式、網(wǎng)絡(luò)中資源訪問(wèn)方式等都與環(huán)境安全有關(guān)。必須從架構(gòu)、技術(shù)等多種方面入手來(lái)確保。與系統(tǒng)安全有關(guān)架構(gòu)設(shè)計(jì)目標(biāo)是系統(tǒng)安全總體策略和實(shí)行方案。系統(tǒng)安全總體策略是系統(tǒng)安全思緒抽象。對(duì)安全機(jī)制和安全規(guī)則謀求技術(shù)處理方案,從而組成安全實(shí)行方案。第三方認(rèn)證是系統(tǒng)安全主要伎倆,數(shù)架構(gòu)設(shè)計(jì)主要內(nèi)容。23/59系統(tǒng)可用性設(shè)計(jì)

可用性在軟件質(zhì)量特性中占有主要位置。可用性是與功能性、可靠性并列關(guān)鍵軟件質(zhì)量特性。軟件產(chǎn)品最后為顧客所接收,可用性起到?jīng)Q定性作用。可用性定義:軟件被顧客學(xué)習(xí)、操作、準(zhǔn)備輸入和理解輸出所作努力程度,包括安裝簡(jiǎn)單方便、容易使用、界面友好,并能適用于不一樣特點(diǎn)顧客。計(jì)算機(jī)已經(jīng)成為人們工作基本工具,軟件可用性具有更廣泛含義,它首先是也許用,然后才是能夠用,即軟件能夠能夠方便地布署到人們工作環(huán)境中,在人們需要它時(shí)候,就能夠方便地使用它。

與軟件可用性設(shè)計(jì)有關(guān)架構(gòu)設(shè)計(jì)處理是人們?cè)谛枰胤胶托枰鼤r(shí)候能夠方便地使用上軟件,即處理也許用問(wèn)題。軟件人機(jī)交互設(shè)計(jì)重點(diǎn)是處理即處理能夠用問(wèn)題。一種用例實(shí)現(xiàn)界面設(shè)計(jì)及表達(dá)層設(shè)計(jì),屬于此類設(shè)計(jì)。24/59系統(tǒng)可靠性

軟件可靠性定義:軟件產(chǎn)品在要求條件下合要求時(shí)間內(nèi)完成要求功能能力,其無(wú)端障概率度量程為可靠度。與可靠性有關(guān)質(zhì)量指標(biāo)包括:●成熟性:一種軟件系統(tǒng)成熟程度

●可恢復(fù)性:當(dāng)某個(gè)功能失效發(fā)生時(shí),系統(tǒng)在目前環(huán)境下能實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移,重新自動(dòng)配備、繼續(xù)執(zhí)行能力。

●強(qiáng)健性:多種惡劣環(huán)境(大數(shù)量、大量顧客同步訪問(wèn))下系統(tǒng)能正常工作能力。

●“系統(tǒng)分布性”也作為其質(zhì)量指標(biāo),即把軟件系統(tǒng)某些子系統(tǒng)或部分定位于不一樣處理主機(jī)或存放設(shè)備上,能夠正常運(yùn)行能力。分布性包括網(wǎng)絡(luò)構(gòu)造分布性、系統(tǒng)接口分布性、系統(tǒng)功能分布性和數(shù)據(jù)分布性、顧客操作分布性。在不一樣設(shè)備上運(yùn)行相同關(guān)鍵功能或?qū)?shù)據(jù)存取和復(fù)制是處理單點(diǎn)失效問(wèn)題有效辦法。25/59系統(tǒng)可靠性設(shè)計(jì)

為了確保軟件系統(tǒng)可恢復(fù)性,需要在系統(tǒng)硬件配備、系統(tǒng)備份與恢復(fù)機(jī)制、數(shù)據(jù)備份/恢復(fù)機(jī)制、雙機(jī)熱備份等架構(gòu)設(shè)計(jì)方面進(jìn)行精心設(shè)計(jì)。只有做到有備,才能做到無(wú)患。為了確保系統(tǒng)強(qiáng)健性,需要在數(shù)據(jù)庫(kù)服務(wù)器集群、運(yùn)行服務(wù)器集群、分布服務(wù)器系統(tǒng)及負(fù)載平衡、雙機(jī)熱備份等架構(gòu)設(shè)計(jì)方面進(jìn)行精心設(shè)計(jì)。為使系統(tǒng)滿足系統(tǒng)分布性要求,需要在軟件架構(gòu)模式(C/S或B/S—顧客操作分布性、通信方式與通信協(xié)議、外部系統(tǒng)調(diào)用方式(如何應(yīng)對(duì)外部系統(tǒng)位置和接口變化)、系統(tǒng)功能調(diào)用方式(通過(guò)架構(gòu)設(shè)計(jì),確保功能調(diào)用與功能模塊所處位置無(wú)關(guān),以及功能模塊獨(dú)立性)、數(shù)據(jù)庫(kù)訪問(wèn)方式(通過(guò)架構(gòu)設(shè)計(jì)和模式選擇,使應(yīng)用程序?qū)?shù)據(jù)庫(kù)訪問(wèn)與數(shù)據(jù)庫(kù)物理位置無(wú)關(guān)、與數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān))等多種方面進(jìn)行精心設(shè)計(jì)。系統(tǒng)可靠性主要通過(guò)設(shè)計(jì)達(dá)成,是架構(gòu)設(shè)計(jì)主要內(nèi)容。26/59與性能有關(guān)設(shè)計(jì)

性能表達(dá)系統(tǒng)響應(yīng)性,也稱有效性,一般用對(duì)事件響應(yīng)時(shí)間或單位時(shí)間內(nèi)處理事件數(shù)目來(lái)度量。從宏觀上,系統(tǒng)性能與資源利用率有關(guān),性能達(dá)不到要求往往是受資源約束影響,尤其是硬件資源約束影響,假如能夠根據(jù)系統(tǒng)性能要求配備充足資源,處理性能問(wèn)題就變得很容易。但一種系統(tǒng)開發(fā)往往是受硬件資源約束。一種系統(tǒng)設(shè)計(jì)在合適成本和資源約束條件下處理性能問(wèn)題。其設(shè)計(jì)準(zhǔn)則是在資源能夠充足利用前提下,確保系統(tǒng)必要響應(yīng)時(shí)間。要使系統(tǒng)性能滿足顧客要求,首先必須從大局著眼,從系統(tǒng)架構(gòu)入手,謀求一種更全面處理方案。如分布式應(yīng)用系統(tǒng)、分布式數(shù)據(jù)庫(kù)等都是處理性能問(wèn)題。

27/59系統(tǒng)可修改性設(shè)計(jì)系統(tǒng)可修改性將作為系統(tǒng)設(shè)計(jì)重點(diǎn)考慮內(nèi)容,也是論文在系統(tǒng)設(shè)計(jì)方面研究主要內(nèi)容。與軟件設(shè)計(jì)有關(guān)理論、辦法、技術(shù),主要集中在軟件可修改性方面。設(shè)計(jì)模式重點(diǎn)處理軟件可修改性問(wèn)題。系統(tǒng)設(shè)計(jì)關(guān)注點(diǎn)是系統(tǒng)可變性,如顧客業(yè)務(wù)流程可變性、業(yè)務(wù)規(guī)則可變性(多種促銷活動(dòng))、數(shù)據(jù)庫(kù)管理系統(tǒng)可變性、運(yùn)行環(huán)境可變性(網(wǎng)絡(luò)環(huán)境)外部系統(tǒng)(組件)可變性(引發(fā)系統(tǒng)接口修改)等。

系統(tǒng)如何適應(yīng)這些可變性,是架構(gòu)設(shè)計(jì)必須考慮問(wèn)題。在系統(tǒng)設(shè)計(jì)中,必須充足地識(shí)別這些可變性,精確地抽象出這些可變性,在設(shè)計(jì)中選擇合適架構(gòu)模式,減少模塊耦合性,提升模塊內(nèi)聚等,使增加功能、替代對(duì)應(yīng)模塊等不會(huì)修改程序代碼,增強(qiáng)系統(tǒng)地能力和靈活性。對(duì)于局部可變性,利用先進(jìn)設(shè)計(jì)技術(shù)(如設(shè)計(jì)模式)建立穩(wěn)定內(nèi)部接口,以不變應(yīng)萬(wàn)變,增強(qiáng)系統(tǒng)可修改性。28/59系統(tǒng)設(shè)計(jì)要考慮問(wèn)題(1)在軟件需求分析階段,重點(diǎn)關(guān)注顧客業(yè)務(wù)方面向系統(tǒng)需求,包括功能需求和非功能需求。需求分析階段不考慮與軟件實(shí)現(xiàn)有關(guān)問(wèn)題。在軟件設(shè)計(jì)階段,所有顧客需求都要通過(guò)設(shè)計(jì),用對(duì)應(yīng)軟件元素來(lái)體現(xiàn)。1、需要增加功能:需求分析只考慮了顧客業(yè)務(wù)功能需求,假如一種系統(tǒng)只有獨(dú)立業(yè)務(wù)功能,不能確保系統(tǒng)安全、有序、有效地確保業(yè)務(wù)功能運(yùn)行。系統(tǒng)還必須提供許多輔助功能來(lái)支持業(yè)務(wù)功能有效實(shí)行。其中,最主要功能是顧客管理功能。2、系統(tǒng)交互設(shè)計(jì):界面設(shè)計(jì)已經(jīng)成為軟件設(shè)計(jì)最主要內(nèi)容。一種設(shè)計(jì)成功操作界面能夠?yàn)轭櫩吞峁┮环N優(yōu)雅工作環(huán)境,能夠激發(fā)顧客工作激情,是軟件系統(tǒng)易用性詳細(xì)體現(xiàn)。29/59系統(tǒng)設(shè)計(jì)要考慮問(wèn)題(2)3、數(shù)據(jù)存放設(shè)計(jì):數(shù)據(jù)持久化設(shè)計(jì)是主要設(shè)計(jì)內(nèi)容,包括與數(shù)據(jù)持久化有關(guān)對(duì)象數(shù)據(jù)初始化時(shí)機(jī),與對(duì)象數(shù)據(jù)存放操作事務(wù)設(shè)計(jì)及其策略,數(shù)據(jù)持久化機(jī)制(如何保持與領(lǐng)域?qū)ο蟮婉詈闲裕?,?shù)據(jù)持久化實(shí)現(xiàn)辦法(如引入第三方組件)等。數(shù)據(jù)庫(kù)設(shè)計(jì)和數(shù)據(jù)庫(kù)存取機(jī)制是數(shù)據(jù)存放主要設(shè)計(jì)內(nèi)容。4、系統(tǒng)接口設(shè)計(jì):一種軟件系統(tǒng)也許是一種更大系統(tǒng)子系統(tǒng),或者需要與其他系統(tǒng)協(xié)同工作。通過(guò)系統(tǒng)間接口實(shí)現(xiàn)不一樣信息系統(tǒng)間數(shù)據(jù)共享、同步等是最有效辦法。建立于其他信息系統(tǒng)之間交互系統(tǒng)接口設(shè)計(jì)是系統(tǒng)設(shè)計(jì)又一主要任務(wù)。接口設(shè)計(jì)要考慮可擴(kuò)展性和靈活性,能夠適應(yīng)外部系統(tǒng)變化。30/59軟件架構(gòu)設(shè)計(jì)顧客管理模型、系統(tǒng)交互模型、數(shù)據(jù)存放模型、系統(tǒng)接口模型,以及系統(tǒng)領(lǐng)域模型,如何組織起來(lái),組成一種邏輯上完整系統(tǒng),既滿足系統(tǒng)功能性和約束要求,又滿足可用性、可靠性、性能和可維護(hù)性要求,這就是軟件系統(tǒng)構(gòu)架設(shè)計(jì)任務(wù)。架構(gòu)設(shè)計(jì)成果也許不是一種模型,而是一系列模型,如邏輯架構(gòu)、物理架構(gòu)、開發(fā)架構(gòu)等?!熬哂腥忠饬x設(shè)計(jì)決策”指這些決策決定了將來(lái)系統(tǒng)基本形態(tài),對(duì)其他設(shè)計(jì)具有指導(dǎo)意義,有也許決定了其他設(shè)計(jì)必須遵循基本標(biāo)準(zhǔn)。如C/S、B/S架構(gòu)。既然是“設(shè)計(jì)決策”,不一定都能夠用現(xiàn)有專門術(shù)語(yǔ)來(lái)描述,即有可用軟件架構(gòu)中專門術(shù)語(yǔ)來(lái)描述,有些難以用專門術(shù)語(yǔ)來(lái)描述,但其決策抽象性更高,指導(dǎo)意義更強(qiáng)。31/59軟件框架基于框架軟件開發(fā)目前已經(jīng)成為一種時(shí)尚。目前軟件開發(fā)越來(lái)越倚重框架使用,選擇何種框架、每個(gè)框架在整個(gè)架構(gòu)中處于什么位置,都成為軟件架構(gòu)設(shè)計(jì)中主要步驟??蚣芗夹g(shù)有助于把通用專注點(diǎn)和專用關(guān)注點(diǎn)分離出來(lái),使系統(tǒng)具有更加好易修改性和可重用性。與軟件架構(gòu)有關(guān)尚有軟件架構(gòu)模式、軟件架構(gòu)格調(diào)和軟件架構(gòu)框架。軟件架構(gòu)模式是從具有共性多系統(tǒng)中精練出來(lái)能夠再現(xiàn)好設(shè)計(jì)方案。軟件架構(gòu)格調(diào)是對(duì)軟件架構(gòu)模式深入提煉,形成處理方案框架。軟件架構(gòu)格調(diào)比軟件架構(gòu)模式更具有應(yīng)用價(jià)值,如客戶服務(wù)器格調(diào)、管道過(guò)濾器格調(diào)。但有時(shí)不加辨別地使用軟件構(gòu)造模式和軟件架構(gòu)格調(diào),并且軟件架構(gòu)模式術(shù)語(yǔ)使用更廣發(fā),我們一般說(shuō)C/S模式、B/S模式,但很少說(shuō)C/S格調(diào)。32/59框架定義框架是一種已部分完成,需要擴(kuò)充或豐滿骨架。或:框架是能夠通過(guò)某種回調(diào)機(jī)制進(jìn)行擴(kuò)展軟件系統(tǒng)或子系統(tǒng)半成品。該定義強(qiáng)調(diào)三點(diǎn):1、框架是半成品。這是框架與其他軟件元素本質(zhì)區(qū)分??蚣芤呀?jīng)實(shí)現(xiàn)了軟件系統(tǒng)或子系統(tǒng)通用部分代碼。2、使用框架進(jìn)行軟件開發(fā)基本思想是:將特定應(yīng)用部分(容易變化部分)封裝成擴(kuò)展點(diǎn),以某種回調(diào)機(jī)制將顧客擴(kuò)展部分納入框架控制范圍之內(nèi)。3、采取“回調(diào)”機(jī)制將框架擴(kuò)展成軟件系統(tǒng)或子系統(tǒng)。所謂回調(diào)就是反過(guò)來(lái)調(diào)用。C語(yǔ)言中將另一種函數(shù)指針作為函數(shù)調(diào)用語(yǔ)句參數(shù)傳遞給被調(diào)用函數(shù),被調(diào)用函數(shù)又反過(guò)來(lái)調(diào)用由參數(shù)傳過(guò)來(lái)函數(shù)(反調(diào)用)完成部分功能。在面向?qū)ο缶幊陶Z(yǔ)言中,利用抽象辦法支持回調(diào)機(jī)制,開發(fā)人員通過(guò)抽象辦法實(shí)現(xiàn)來(lái)實(shí)現(xiàn)擴(kuò)展。33/59框架定義從設(shè)計(jì)模式看,框架是一種軟件系統(tǒng)模式,是大粒度可復(fù)用部件??蚣芸商岢衫潼c(diǎn)和熱點(diǎn)。冷點(diǎn)定義軟件系統(tǒng)完整構(gòu)造,包括它基本構(gòu)件和構(gòu)件之間關(guān)系,它們?cè)趹?yīng)用框架實(shí)例化過(guò)程中保持不變。熱點(diǎn)描述了應(yīng)用框架中那些隨詳細(xì)應(yīng)用需求不一樣部分。當(dāng)使用一種框架創(chuàng)建一種詳細(xì)軟件系統(tǒng)時(shí),主要工作是根據(jù)顧客尤其需求,對(duì)框架熱點(diǎn)進(jìn)行專門化。34/59框架與架構(gòu)區(qū)分本質(zhì)區(qū)分是:框架是軟件,架構(gòu)不是軟件??蚣苁且环N特殊軟件,它并不提供完整處理方案,而是為開發(fā)人員處理方案實(shí)現(xiàn)提供參照模版或支持基礎(chǔ)(或平臺(tái))??蚣苁前氤善罚蚣苤蟹?wù)(類和辦法)能夠被最后應(yīng)用系統(tǒng)直接調(diào)用,而框架中擴(kuò)展點(diǎn)是供應(yīng)用開發(fā)人員定制可變點(diǎn)。軟件架構(gòu)不是軟件,而是軟件如何被設(shè)計(jì)主要決策。通過(guò)完整開發(fā)過(guò)程之后,這些架構(gòu)決策將體目前最后開發(fā)軟件系統(tǒng)中。我們不能指著某些代碼說(shuō)它是軟件架構(gòu)。架構(gòu)勢(shì)必被代碼所體現(xiàn)和遵循。。35/59框架與架構(gòu)聯(lián)系框架技術(shù)和架構(gòu)技術(shù)所體現(xiàn)是處理復(fù)雜問(wèn)題“分而治之”思維方式—先大局后局部(架構(gòu))先通用后專用(框架)。架構(gòu)是問(wèn)題抽象處理方案,框架是半成品,需要根據(jù)詳細(xì)需求深入定制開發(fā)才能變成應(yīng)用系統(tǒng)。從系統(tǒng)設(shè)計(jì)角度看,一種軟件系統(tǒng)總是根據(jù)需求先進(jìn)行架構(gòu)設(shè)計(jì)形成抽象處理方案,再根據(jù)架構(gòu)模型選擇框架得到系統(tǒng)半成品,最后在框架擴(kuò)展點(diǎn)加入特定業(yè)務(wù)處理部分得到最后完整處理方案。這說(shuō)明一種框架往往是系統(tǒng)架構(gòu)或系統(tǒng)架構(gòu)某一部分實(shí)現(xiàn)半成品。從實(shí)現(xiàn)角度看,先構(gòu)建通用半成品(框架),再實(shí)現(xiàn)特定部分。在管理信息系統(tǒng)開發(fā)中,廣泛使用struts、spring等都是部分實(shí)現(xiàn)半成品,struts主要是處理體現(xiàn)層與業(yè)務(wù)邏輯層之間松耦合問(wèn)題。36/59軟件架構(gòu)模型為了指導(dǎo)軟件體系架構(gòu)設(shè)計(jì),許多學(xué)者總結(jié)出了多種體系架構(gòu)模型,其中著名體系架構(gòu)某些有“4+1”模型、“5視圖法”?!?+1”模型如下列圖所示。邏輯視圖開發(fā)視圖過(guò)程視圖物理視圖場(chǎng)景“5視圖法”包括:邏輯視圖、開發(fā)視圖、運(yùn)行視圖、物理視圖和數(shù)據(jù)視圖。運(yùn)行視圖就是過(guò)程視圖。37/59邏輯視圖軟件架構(gòu)邏輯架構(gòu)關(guān)注功能,不但包括顧客可見功能(與業(yè)務(wù)有關(guān)功能),還包括實(shí)現(xiàn)顧客功能必須提供輔助功能,如某顧客對(duì)數(shù)據(jù)訪問(wèn)時(shí)必須驗(yàn)證其權(quán)限,為滿足需求約束需要提供輔助功能等。邏輯架構(gòu)用邏輯元素和邏輯元素之間交互來(lái)描述。邏輯元素也許是子系統(tǒng)、邏輯層(功能邏輯劃分)、功能模塊和類等。子系統(tǒng)劃分、邏輯層劃分、系統(tǒng)功能模塊,以及類模型等,從邏輯建模角度看,都是邏輯架構(gòu)設(shè)計(jì)內(nèi)容。邏輯架構(gòu)關(guān)注是組成系統(tǒng)軟件元素及其關(guān)系—構(gòu)件及其連接。38/59開發(fā)視圖軟件架構(gòu)開發(fā)架構(gòu)關(guān)注是軟件系統(tǒng)程序組成及其關(guān)系,重點(diǎn)考慮開發(fā)期質(zhì)量,如可擴(kuò)展性、可重用性、可移植性、易理解性、易測(cè)試性等。其關(guān)注點(diǎn)是在軟件開發(fā)環(huán)境中軟件模塊實(shí)際組織方式,即軟件系統(tǒng)由那些程序包組成,以及它們之間關(guān)系。開發(fā)架構(gòu)是軟件開發(fā)組織進(jìn)行分工主要根據(jù)。三層構(gòu)造就是典型開發(fā)架構(gòu)。39/59運(yùn)行視圖軟件架構(gòu)運(yùn)行架構(gòu)設(shè)計(jì)重點(diǎn)考慮軟件運(yùn)行期質(zhì)量,如性能、可伸縮性、連續(xù)可用性、性能等。運(yùn)行架構(gòu)關(guān)注進(jìn)程、線程、對(duì)象等運(yùn)行時(shí)概念,以及有關(guān)并發(fā)、同步、通信等問(wèn)題。系統(tǒng)部件運(yùn)行控制方式,如客戶/服務(wù)器模式,屬于運(yùn)行架構(gòu)設(shè)計(jì)范圍。40/59物理視圖軟件架構(gòu)物理架構(gòu)設(shè)計(jì)重點(diǎn)考慮軟件運(yùn)行期質(zhì)量,即通過(guò)軟件系統(tǒng)“安裝和布署”來(lái)滿足軟件系統(tǒng)可靠性、易用性、安全性、性能、連續(xù)可用性等要求。它描述是運(yùn)行軟件計(jì)算機(jī)、網(wǎng)絡(luò)、硬件設(shè)施等情況,關(guān)注目標(biāo)程序及其依賴運(yùn)行庫(kù)和系統(tǒng)軟件如何安裝或布署到物理機(jī)器上,以及運(yùn)行時(shí)配備情況。網(wǎng)絡(luò)配備及拓?fù)錁?gòu)造、軟件模塊布署、數(shù)據(jù)庫(kù)布署,以及各部件之間通信實(shí)現(xiàn)等是物理架構(gòu)設(shè)計(jì)主要內(nèi)容。41/59數(shù)據(jù)視圖軟件架構(gòu)

數(shù)據(jù)架構(gòu)關(guān)注持久化數(shù)據(jù)存放方案,不但包括實(shí)體及實(shí)體關(guān)系數(shù)據(jù)存放格式,并且包括數(shù)據(jù)傳輸、數(shù)據(jù)復(fù)制和數(shù)據(jù)同步等策略。數(shù)據(jù)架構(gòu)關(guān)注是數(shù)據(jù)需求、數(shù)據(jù)安全性、系統(tǒng)可靠性。42/59基于視圖軟件架構(gòu)設(shè)計(jì)選擇針對(duì)一種詳細(xì)軟件系統(tǒng)架構(gòu)設(shè)計(jì),從架構(gòu)設(shè)計(jì)視圖考慮,并不一定要按照“5視圖法”進(jìn)行軟件架構(gòu)設(shè)計(jì),而是根據(jù)需要有選擇地進(jìn)行設(shè)計(jì)。假如不包括數(shù)據(jù)持久化問(wèn)題,就不需要進(jìn)行數(shù)據(jù)架構(gòu)設(shè)計(jì);假如不包括分布式應(yīng)用問(wèn)題,就不需要進(jìn)行物理架構(gòu)設(shè)計(jì);假如業(yè)務(wù)邏輯非常簡(jiǎn)單,邏輯架構(gòu)和開發(fā)構(gòu)造就能夠合二為一。假如需要,還能夠引入新架構(gòu),如能夠針對(duì)系統(tǒng)安全問(wèn)題引入系統(tǒng)安全架構(gòu)。43/59軟件架構(gòu)設(shè)計(jì)內(nèi)容始終記?。?、軟件架構(gòu)是一系列主要決策集合。2、軟件架構(gòu)=構(gòu)件+連接件+約束3、基于視圖架構(gòu)模型具有指導(dǎo)作用。凡是與軟件設(shè)計(jì)有關(guān)主要決策都是軟件架構(gòu)設(shè)計(jì)內(nèi)容,也許不一定用構(gòu)件或連接件體現(xiàn)出來(lái),但會(huì)影響最后產(chǎn)生構(gòu)件或連接件內(nèi)容。44/59架構(gòu)設(shè)計(jì)過(guò)程分析階段需求分析領(lǐng)域建模架構(gòu)設(shè)計(jì)階段確定關(guān)鍵需求概念性架構(gòu)設(shè)計(jì)細(xì)化架構(gòu)驗(yàn)證架構(gòu)概念性架構(gòu)實(shí)際架構(gòu)45/59關(guān)鍵需求決定架構(gòu)關(guān)鍵需求決定架構(gòu),其余需求驗(yàn)證架構(gòu),是架構(gòu)設(shè)計(jì)應(yīng)遵循基本策略。影響軟件架構(gòu)設(shè)計(jì)關(guān)鍵需求包括功能需求、質(zhì)量(屬性)需求、商業(yè)需求三類。關(guān)鍵功能指影響系統(tǒng)成敗功能。如考試系統(tǒng)在線考試功能是最關(guān)鍵功能,其它功能無(wú)論多么完善,假如在線考試功能過(guò)不了關(guān),就是一種不合格考試系統(tǒng)。有系統(tǒng)圍繞關(guān)鍵性能進(jìn)行架構(gòu)設(shè)計(jì)。電信系統(tǒng)、考試系統(tǒng)性能是最關(guān)鍵質(zhì)量特性。7*二十四小時(shí)不間斷運(yùn)行系統(tǒng),短暫停機(jī)就也許對(duì)生產(chǎn)造成重大影響。商業(yè)需求指軟件系統(tǒng)開發(fā)和應(yīng)用方面商業(yè)考慮,它關(guān)注從客戶群、公司現(xiàn)狀、未來(lái)發(fā)展、預(yù)算、立項(xiàng)、開發(fā)、運(yùn)行、維護(hù)在內(nèi)整個(gè)軟件生命周期包括到商業(yè)原因,包括了商業(yè)層面目標(biāo)、盼望和限制。系統(tǒng)開發(fā)預(yù)算會(huì)影響對(duì)技術(shù)選擇??蛻羧簩?duì)架構(gòu)影響,法律法規(guī)會(huì)影響系統(tǒng)可擴(kuò)展性、可修改性、可維護(hù)性。46/59概念架構(gòu)設(shè)計(jì)一種系統(tǒng)架構(gòu)設(shè)計(jì)首先進(jìn)行概念架構(gòu)設(shè)計(jì)。概念架構(gòu)設(shè)計(jì)是對(duì)系統(tǒng)設(shè)計(jì)最初構(gòu)想,是對(duì)系統(tǒng)戰(zhàn)略規(guī)劃,它決定了系統(tǒng)最關(guān)鍵設(shè)計(jì)要素和交互機(jī)制,使系統(tǒng)設(shè)計(jì)作出最關(guān)鍵決策,決定了實(shí)際架構(gòu)設(shè)計(jì)必須遵循設(shè)計(jì)標(biāo)準(zhǔn)。

概念性架構(gòu)不包括詳細(xì)技術(shù),其設(shè)計(jì)成果是系統(tǒng)最后展現(xiàn)宏觀概貌。制造公司管理信息系統(tǒng)零部件采購(gòu)管理汽車銷售管理售后服務(wù)管理第三方軟件平臺(tái)零部件采購(gòu)協(xié)作汽車銷售協(xié)作售后服務(wù)協(xié)作數(shù)據(jù)下載與上傳供應(yīng)商經(jīng)銷商服務(wù)商采購(gòu)部經(jīng)銷部服務(wù)部47/59基于J2EE應(yīng)用系統(tǒng)概念性架構(gòu)ApplicationClieentDynamicHTMLPagesClientTierJSPPagesWebTierEnterpriseBeansEnterpriseBeansBusinessTierDatabaseDatabaseEISTierClientMavhineJavaEEServerDatabaseServer48/59概念性架構(gòu)概念性架構(gòu)設(shè)計(jì)也許也不是一種設(shè)計(jì)決策,也許是多種設(shè)計(jì)決策,這些設(shè)計(jì)決策也許包括到多種方面,如基于應(yīng)用分布式架構(gòu),基于集成分布式架構(gòu)、基于中介分布式架構(gòu)、分布式數(shù)據(jù)庫(kù)架構(gòu)、B/S或C/S架構(gòu)、三層架構(gòu)、基于SOA架構(gòu)等,這些都是從概念層面上來(lái)討論系統(tǒng)架構(gòu),與實(shí)現(xiàn)技術(shù)無(wú)關(guān),都屬于概念性架構(gòu)內(nèi)容。一種系統(tǒng)概念性架構(gòu)也許包括其中幾項(xiàng)內(nèi)容。為了避免對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)依賴性,采取ORMapping框架。這些都是系統(tǒng)設(shè)計(jì)最初決策,都是軟件開發(fā)時(shí)必須遵循設(shè)計(jì)標(biāo)準(zhǔn),都屬于概念性架構(gòu)設(shè)計(jì)范圍。凡是與關(guān)鍵功能需求、關(guān)鍵質(zhì)量屬性需求和關(guān)鍵商業(yè)需求有關(guān)主要設(shè)計(jì)決策都應(yīng)當(dāng)首先從概念架構(gòu)上進(jìn)行規(guī)劃。碩士論文中給出架構(gòu)都是概念性架構(gòu)。49/59概念性架構(gòu)設(shè)計(jì)參照辦法1、假如待開發(fā)系統(tǒng)對(duì)其他系統(tǒng)有依賴關(guān)系,則第一種概念性架構(gòu)決策是確定本系統(tǒng)與待開發(fā)系統(tǒng)交互機(jī)制,即必須處理好帶開發(fā)系統(tǒng)與其他系統(tǒng)溝通渠道問(wèn)題。該決策中,待開發(fā)系統(tǒng)作為一種構(gòu)件,其他每個(gè)外部系統(tǒng)作為一種構(gòu)件,其連接件完成系統(tǒng)之間交互。2、假如待開發(fā)系統(tǒng)存在對(duì)原有系統(tǒng)集成應(yīng)用,則系統(tǒng)集成策略應(yīng)當(dāng)成為優(yōu)先概念性架構(gòu)設(shè)計(jì)決策。待開發(fā)系統(tǒng)和每個(gè)被集成系統(tǒng)各作為一種構(gòu)件。3、看待開發(fā)系統(tǒng),能夠根據(jù)業(yè)務(wù)邏輯提成若干個(gè)子系統(tǒng),確定子系統(tǒng)間交互內(nèi)容和交互機(jī)制,以此確定概念性邏輯架構(gòu)和概念性數(shù)據(jù)架構(gòu)。每個(gè)子系統(tǒng)作為一種構(gòu)件。子系統(tǒng)之間交互及機(jī)制確實(shí)定需要多方權(quán)衡。4、根據(jù)公司機(jī)構(gòu)分布、應(yīng)用人員工作地點(diǎn)分布,以及業(yè)務(wù)流量與性能要求,確定系統(tǒng)概念性物理架構(gòu)和概念性運(yùn)行架構(gòu)。50/59實(shí)際架構(gòu)設(shè)計(jì)概念性架構(gòu)設(shè)計(jì)確定了最為關(guān)鍵設(shè)計(jì)要素和交互機(jī)制,但不可直接用于實(shí)現(xiàn),由于實(shí)現(xiàn)與技術(shù)有關(guān),概念性架構(gòu)與實(shí)現(xiàn)技術(shù)無(wú)關(guān)。軟件開發(fā)人員最為關(guān)懷軟件架構(gòu)方案中有關(guān)模塊劃分決定、模塊之間接口如何定義、選用現(xiàn)成框架、已經(jīng)決定采取開發(fā)技術(shù)等。同步在“如何構(gòu)建軟件”方面,也許包括到邏輯層(Layer)、物理層(Tier)、子系統(tǒng)、模塊、接口、進(jìn)程、線程、消息、協(xié)議等概念。這些都是軟件開發(fā)中不可回避問(wèn)題。實(shí)際軟件架構(gòu)設(shè)計(jì)將利用更多詳細(xì)技術(shù),為軟件實(shí)際開發(fā)提供更多指導(dǎo)和限制。軟件系統(tǒng)關(guān)鍵技術(shù)就是實(shí)際架構(gòu)中實(shí)現(xiàn)技術(shù)。大量設(shè)計(jì)模式主要利用在實(shí)際架構(gòu)實(shí)現(xiàn)技術(shù)方面??蚣芗夹g(shù)也主要用于實(shí)際架構(gòu)實(shí)現(xiàn)技術(shù)方面。實(shí)際架構(gòu)設(shè)計(jì)主要利用5視圖法進(jìn)行架構(gòu)細(xì)化。51/59實(shí)際架構(gòu)設(shè)計(jì)—邏輯架構(gòu)設(shè)計(jì)邏輯架構(gòu)關(guān)懷是如何將系統(tǒng)分為不一樣部分以及各部分之間如何交互。但系統(tǒng)劃分為不一樣單元后,必須考慮這些邏輯單元之間是如何協(xié)作。確定子系統(tǒng)接口和交互機(jī)制是實(shí)際邏輯架構(gòu)設(shè)計(jì)主要內(nèi)容。

識(shí)別協(xié)作,并將具有共性協(xié)作抽象成通用機(jī)制,是邏輯架構(gòu)設(shè)計(jì)重點(diǎn)和難點(diǎn)。在大型軟件系統(tǒng)中不一樣子系統(tǒng)之間協(xié)作,在分布式集成系統(tǒng)中不一樣系統(tǒng)之間協(xié)作,不是編程時(shí)根據(jù)局部需要去考慮,都是通過(guò)通用機(jī)制來(lái)綜合考慮,避免子系統(tǒng)/系統(tǒng)之間緊耦合。

通用機(jī)制發(fā)覺(jué)也許抽象出新連接件邏輯單元。

數(shù)據(jù)庫(kù)共享、WebService、消息棧、分布數(shù)據(jù)庫(kù)與同步機(jī)制等都是某些通用機(jī)制。邏輯架構(gòu)設(shè)計(jì)工具有:子系統(tǒng)劃分,系統(tǒng)功能邏輯層次圖,類與對(duì)象模型,包圖,以及時(shí)序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖等52/59實(shí)際架構(gòu)設(shè)計(jì)—開發(fā)架構(gòu)設(shè)計(jì)開發(fā)架構(gòu)設(shè)計(jì)關(guān)注軟件開發(fā)環(huán)境中軟件模塊實(shí)際組織方式,即軟件系統(tǒng)由那些程序包組成,以及它們之間關(guān)系。程序包不但包括要編寫源程序,并且包括直接使用第三方SDK和現(xiàn)存框架、類庫(kù),支持系統(tǒng)運(yùn)行操作系統(tǒng)或中間件。開發(fā)架構(gòu)設(shè)計(jì)重點(diǎn)考慮開發(fā)期質(zhì)量,設(shè)計(jì)中關(guān)鍵技術(shù)主要體現(xiàn)軟件開發(fā)期質(zhì)量有關(guān)設(shè)計(jì),如設(shè)計(jì)模式利用,框架選擇等。開發(fā)架構(gòu)設(shè)計(jì)主要工作是:●確定要開發(fā)程序包或直接利用程序包(如函數(shù)庫(kù))之間依賴關(guān)系?!癫扇〖夹g(shù),包之間采取什么技術(shù)實(shí)現(xiàn)連接,以確保必要開發(fā)期質(zhì)量,如有依賴關(guān)系包之間松耦合。●確定采取框架。假如實(shí)現(xiàn)連接技術(shù)有對(duì)應(yīng)框架,采取框架是值得推薦選擇。53/59實(shí)際架構(gòu)設(shè)計(jì)—開發(fā)架構(gòu)設(shè)計(jì)分層模型是開發(fā)架構(gòu)設(shè)計(jì)主要工具

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論