基于架構(gòu)軟件設(shè)計研討

時間:2022-07-03 05:44:41

導(dǎo)語:基于架構(gòu)軟件設(shè)計研討一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

基于架構(gòu)軟件設(shè)計研討

一、關(guān)于軟件設(shè)計的現(xiàn)狀

隨著社會的發(fā)展,軟件應(yīng)用規(guī)模和應(yīng)用領(lǐng)域的不斷擴(kuò)大,作為相應(yīng)支撐的各種軟件系統(tǒng)將與之相適應(yīng),使得軟件開發(fā)成了一項的系統(tǒng)工程,而這對軟件開發(fā)方式也提出了更大的挑戰(zhàn)。基于架構(gòu)軟件設(shè)計方法著重于在軟件開發(fā)的設(shè)計階段即按照業(yè)務(wù)特點及軟件設(shè)計原則,在軟件設(shè)計方法上采用一定的方法隔離業(yè)務(wù)關(guān)注點,設(shè)計及代碼局部化,為需求變更及業(yè)務(wù)邏輯變化,采用遞歸分解的方法將大的業(yè)務(wù)分解,增加程序的可擴(kuò)展性、可修改性,并將設(shè)計元素歸類管理,在可預(yù)測范圍內(nèi)預(yù)留可變空間,應(yīng)對需求變更及業(yè)務(wù)邏輯變化?;诩軜?gòu)的軟件設(shè)計根據(jù)業(yè)務(wù)需求隔離關(guān)注點,它可以在可預(yù)見的范圍內(nèi)考慮可變性,為應(yīng)對變化預(yù)留空間。信息技術(shù)的發(fā)展改變了人們的工作方式,由于軟件工程管理的出現(xiàn),促進(jìn)了制造業(yè)等傳統(tǒng)產(chǎn)業(yè)的發(fā)展,而軟件開發(fā)也面臨著現(xiàn)實的問題,即業(yè)務(wù)邏輯的易變性。如何將變化縮小到最小范圍,業(yè)務(wù)功能的隔離無疑可以起到一定的作用。從另一方面講,軟件開發(fā)方式自身也存在一定的問題,開發(fā)過程中某些環(huán)節(jié)需要細(xì)化。軟件架構(gòu)是軟件設(shè)計階段的產(chǎn)物,具體地說,軟件架構(gòu)包含了結(jié)構(gòu)、協(xié)作和技術(shù)等方面的重要決策,它對后期的軟件維護(hù),為系統(tǒng)的開發(fā)活動建立基礎(chǔ),對改動力度比較大的軟件升級都起著重要的作用。現(xiàn)在,大多數(shù)企業(yè)都開始注重產(chǎn)品線的開發(fā),完成從面向業(yè)務(wù)到面向技術(shù)的轉(zhuǎn)換,因此要為整個產(chǎn)品線設(shè)計軟件架構(gòu)。一般內(nèi)容是:上承業(yè)務(wù)目標(biāo)、下接技術(shù)決策、.控制復(fù)雜性、組織開發(fā)、利于迭代開發(fā)和增量交付、提高質(zhì)量。軟件開發(fā)方法隨著軟件系統(tǒng)的規(guī)模增大而不斷變化,20世紀(jì)70年代以前,軟件開發(fā)基本上都是匯編程序設(shè)計;70年代中后期,軟件開發(fā)中出現(xiàn)了概要設(shè)計與詳細(xì)設(shè)計;90年代中期,是面向?qū)ο箝_發(fā)方法;90年代以后則是基于構(gòu)件的軟件開發(fā)??v觀軟件體系結(jié)構(gòu)技術(shù)發(fā)展過程,架構(gòu)設(shè)計得到了充足的發(fā)展,并成為軟件工程領(lǐng)域的研究熱點?;诩軜?gòu)的軟件設(shè)計方法能更好地隔離業(yè)務(wù)關(guān)注點及決策,可以更好地應(yīng)對需求變更,以及更好地采用模塊化設(shè)計方法。

二、基于架構(gòu)的軟件設(shè)計方法的理論

基于架構(gòu)的設(shè)計提供了一個系統(tǒng)化的步驟,此方法在發(fā)展中不斷在完善,用于設(shè)計概念性軟件架構(gòu),包含了一些基礎(chǔ)的理論概念,如設(shè)計元素、所采用的視圖、用例及質(zhì)量場景等。架構(gòu)設(shè)計包括共性與可變性,軟件模板與系統(tǒng)基礎(chǔ)設(shè)施,架構(gòu)驅(qū)動元組需求,質(zhì)量屬性、功能及架構(gòu)模型。其中基于架構(gòu)的設(shè)計關(guān)注對架構(gòu)設(shè)計有影響的變化粒度,共性是指變化中的不變部分,可變性可以發(fā)生在功能、平臺或環(huán)境中;軟件模板與特定的設(shè)計元素相對應(yīng),包括設(shè)計元素與公共服務(wù)的交互模式、設(shè)計元素與基礎(chǔ)設(shè)施的交互模式、自身職責(zé)功能。軟件模板作用具體為有助于集成、對于系統(tǒng)中可重用的組件是一個庫,并為構(gòu)成系統(tǒng)架構(gòu)提供基礎(chǔ)。而對于一些質(zhì)量屬性建模技術(shù),軟件模板的定義決定了交互模式;架構(gòu)驅(qū)動元組包括功能需求、質(zhì)量屬性及業(yè)務(wù)需求。架構(gòu)驅(qū)動元素依賴抽象的功能需求,確定架構(gòu)驅(qū)動元素要進(jìn)行特定方面需求的詳細(xì)調(diào)查,架構(gòu)驅(qū)動元素滿足了,設(shè)計就可以開始;架構(gòu)模型包括組件類型集合及它們互操作模式,確定操作數(shù)量及功能的標(biāo)準(zhǔn)將會不同于驅(qū)動需求,架構(gòu)風(fēng)格就是實時計劃策略。需求階段結(jié)果包括功能需求、質(zhì)量屬性、業(yè)務(wù)需求及約束,運用基于架構(gòu)的設(shè)計方法進(jìn)行設(shè)計,為考慮決策跟蹤,需要重新審視決策。基于架構(gòu)的設(shè)計方法包括:抽象功能需求。基于架構(gòu)的設(shè)計假定需求輸出是抽象的功能需求,各種終端用戶與特定系統(tǒng)相關(guān)聯(lián),理解需求間的相關(guān)性對設(shè)計來說是很重要,抽象功能的需求捕獲可以對詳細(xì)需求提供分類;用例。用例是終端用戶與系統(tǒng)間互操作的具體描述;質(zhì)量屬性及業(yè)務(wù)目標(biāo)。每個質(zhì)量需求應(yīng)當(dāng)包括具體的輸入及設(shè)想的應(yīng)答,而業(yè)務(wù)目標(biāo)與質(zhì)量屬性的區(qū)別不是很明晰。架構(gòu)可選方案。方案的列舉,邏輯上屬于基于架構(gòu)的設(shè)計階段,它針對每,一個質(zhì)量屬性及業(yè)務(wù)目標(biāo),作為需求階段的一個一輸出,并將凡是滿足需求的架構(gòu)都應(yīng)當(dāng)列出來。質(zhì)量場景。質(zhì)量場景也可以具體化質(zhì)量需求,應(yīng)當(dāng)對它們分優(yōu)先級進(jìn)行管理。約束。約束是預(yù)先指定的設(shè)計決策,約束來自于業(yè)務(wù)還是技術(shù)并沒有關(guān)系,其設(shè)計過程就是做決策。很少有系統(tǒng)設(shè)計時無需考慮現(xiàn)存系統(tǒng),遺留系統(tǒng)將影響當(dāng)前系統(tǒng)的設(shè)計。

三、基于架構(gòu)的軟件設(shè)計方法

首先要定義設(shè)計元素。它包括概念子系統(tǒng)、概念組件、具體組件、軟件模板、基礎(chǔ)設(shè)計的應(yīng)用?;诩軜?gòu)的軟件設(shè)計方法是對整個系統(tǒng)的分解。其次是設(shè)計元素的生成順序。隨著理解的深入,要對前期的決策重新考慮,必須在適當(dāng)?shù)牡胤浇o以予記錄。要考慮相關(guān)領(lǐng)域知識、新知識的融合應(yīng)用和架構(gòu)組人員的素質(zhì)。第三是設(shè)計元素內(nèi)部的活動。它包括功能拆分,選擇基礎(chǔ)架構(gòu),功能分配。在功能分解中要基于功能一致性、數(shù)據(jù)或基于數(shù)據(jù)之上的操作行為模式相似、相似的抽象層和功能局部化標(biāo)準(zhǔn);設(shè)計元素應(yīng)有一個首要的架構(gòu)風(fēng)格模型,確定的架構(gòu)方案必須滿足質(zhì)量需求,在設(shè)計記錄中與設(shè)計元素相關(guān)聯(lián);架構(gòu)模型的選擇產(chǎn)生了組件類型集合,每個設(shè)計元素的概念性接口也應(yīng)當(dāng)確定,依據(jù)質(zhì)量屬性進(jìn)行權(quán)衡;設(shè)計元素都有一個依附于它軟件模板,對于模板中的每一個功能,要考慮是傳遞到子設(shè)計元素還是保留在當(dāng)前位置,并對子設(shè)計元素的功能也將進(jìn)行核對。在這個過程中輸出一個子設(shè)計元素列表,表現(xiàn)帶反饋循環(huán)的拆分設(shè)計元素的順序步驟,每執(zhí)行一步都要對系統(tǒng)的更深入理解。用例可以用來對所選擇的架構(gòu)進(jìn)行校驗,用例檢驗設(shè)計對需求的覆蓋度,然后生成生成并發(fā)視圖、生成部署視圖、校驗質(zhì)量場景以及校驗約束。最后,按項目不同,基于架構(gòu)的軟件設(shè)計依據(jù)一定的優(yōu)先級順序,執(zhí)行相應(yīng)過程后生成設(shè)計元素的集合。