基于架構(gòu)軟件設(shè)計(jì)研討
時(shí)間:2022-07-03 05:44:41
導(dǎo)語(yǔ):基于架構(gòu)軟件設(shè)計(jì)研討一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
一、關(guān)于軟件設(shè)計(jì)的現(xiàn)狀
隨著社會(huì)的發(fā)展,軟件應(yīng)用規(guī)模和應(yīng)用領(lǐng)域的不斷擴(kuò)大,作為相應(yīng)支撐的各種軟件系統(tǒng)將與之相適應(yīng),使得軟件開發(fā)成了一項(xiàng)的系統(tǒng)工程,而這對(duì)軟件開發(fā)方式也提出了更大的挑戰(zhàn)。基于架構(gòu)的軟件設(shè)計(jì)方法著重于在軟件開發(fā)的設(shè)計(jì)階段即按照業(yè)務(wù)特點(diǎn)及軟件設(shè)計(jì)原則,在軟件設(shè)計(jì)方法上采用一定的方法隔離業(yè)務(wù)關(guān)注點(diǎn),設(shè)計(jì)及代碼局部化,為需求變更及業(yè)務(wù)邏輯變化,采用遞歸分解的方法將大的業(yè)務(wù)分解,增加程序的可擴(kuò)展性、可修改性,并將設(shè)計(jì)元素歸類管理,在可預(yù)測(cè)范圍內(nèi)預(yù)留可變空間,應(yīng)對(duì)需求變更及業(yè)務(wù)邏輯變化?;诩軜?gòu)的軟件設(shè)計(jì)根據(jù)業(yè)務(wù)需求隔離關(guān)注點(diǎn),它可以在可預(yù)見(jiàn)的范圍內(nèi)考慮可變性,為應(yīng)對(duì)變化預(yù)留空間。信息技術(shù)的發(fā)展改變了人們的工作方式,由于軟件工程管理的出現(xiàn),促進(jìn)了制造業(yè)等傳統(tǒng)產(chǎn)業(yè)的發(fā)展,而軟件開發(fā)也面臨著現(xiàn)實(shí)的問(wèn)題,即業(yè)務(wù)邏輯的易變性。如何將變化縮小到最小范圍,業(yè)務(wù)功能的隔離無(wú)疑可以起到一定的作用。從另一方面講,軟件開發(fā)方式自身也存在一定的問(wèn)題,開發(fā)過(guò)程中某些環(huán)節(jié)需要細(xì)化。軟件架構(gòu)是軟件設(shè)計(jì)階段的產(chǎn)物,具體地說(shuō),軟件架構(gòu)包含了結(jié)構(gòu)、協(xié)作和技術(shù)等方面的重要決策,它對(duì)后期的軟件維護(hù),為系統(tǒng)的開發(fā)活動(dòng)建立基礎(chǔ),對(duì)改動(dòng)力度比較大的軟件升級(jí)都起著重要的作用?,F(xiàn)在,大多數(shù)企業(yè)都開始注重產(chǎn)品線的開發(fā),完成從面向業(yè)務(wù)到面向技術(shù)的轉(zhuǎn)換,因此要為整個(gè)產(chǎn)品線設(shè)計(jì)軟件架構(gòu)。一般內(nèi)容是:上承業(yè)務(wù)目標(biāo)、下接技術(shù)決策、.控制復(fù)雜性、組織開發(fā)、利于迭代開發(fā)和增量交付、提高質(zhì)量。軟件開發(fā)方法隨著軟件系統(tǒng)的規(guī)模增大而不斷變化,20世紀(jì)70年代以前,軟件開發(fā)基本上都是匯編程序設(shè)計(jì);70年代中后期,軟件開發(fā)中出現(xiàn)了概要設(shè)計(jì)與詳細(xì)設(shè)計(jì);90年代中期,是面向?qū)ο箝_發(fā)方法;90年代以后則是基于構(gòu)件的軟件開發(fā)。縱觀軟件體系結(jié)構(gòu)技術(shù)發(fā)展過(guò)程,架構(gòu)設(shè)計(jì)得到了充足的發(fā)展,并成為軟件工程領(lǐng)域的研究熱點(diǎn)?;诩軜?gòu)的軟件設(shè)計(jì)方法能更好地隔離業(yè)務(wù)關(guān)注點(diǎn)及決策,可以更好地應(yīng)對(duì)需求變更,以及更好地采用模塊化設(shè)計(jì)方法。
二、基于架構(gòu)的軟件設(shè)計(jì)方法的理論
基于架構(gòu)的設(shè)計(jì)提供了一個(gè)系統(tǒng)化的步驟,此方法在發(fā)展中不斷在完善,用于設(shè)計(jì)概念性軟件架構(gòu),包含了一些基礎(chǔ)的理論概念,如設(shè)計(jì)元素、所采用的視圖、用例及質(zhì)量場(chǎng)景等。架構(gòu)設(shè)計(jì)包括共性與可變性,軟件模板與系統(tǒng)基礎(chǔ)設(shè)施,架構(gòu)驅(qū)動(dòng)元組需求,質(zhì)量屬性、功能及架構(gòu)模型。其中基于架構(gòu)的設(shè)計(jì)關(guān)注對(duì)架構(gòu)設(shè)計(jì)有影響的變化粒度,共性是指變化中的不變部分,可變性可以發(fā)生在功能、平臺(tái)或環(huán)境中;軟件模板與特定的設(shè)計(jì)元素相對(duì)應(yīng),包括設(shè)計(jì)元素與公共服務(wù)的交互模式、設(shè)計(jì)元素與基礎(chǔ)設(shè)施的交互模式、自身職責(zé)功能。軟件模板作用具體為有助于集成、對(duì)于系統(tǒng)中可重用的組件是一個(gè)庫(kù),并為構(gòu)成系統(tǒng)架構(gòu)提供基礎(chǔ)。而對(duì)于一些質(zhì)量屬性建模技術(shù),軟件模板的定義決定了交互模式;架構(gòu)驅(qū)動(dòng)元組包括功能需求、質(zhì)量屬性及業(yè)務(wù)需求。架構(gòu)驅(qū)動(dòng)元素依賴抽象的功能需求,確定架構(gòu)驅(qū)動(dòng)元素要進(jìn)行特定方面需求的詳細(xì)調(diào)查,架構(gòu)驅(qū)動(dòng)元素滿足了,設(shè)計(jì)就可以開始;架構(gòu)模型包括組件類型集合及它們互操作模式,確定操作數(shù)量及功能的標(biāo)準(zhǔn)將會(huì)不同于驅(qū)動(dòng)需求,架構(gòu)風(fēng)格就是實(shí)時(shí)計(jì)劃策略。需求階段結(jié)果包括功能需求、質(zhì)量屬性、業(yè)務(wù)需求及約束,運(yùn)用基于架構(gòu)的設(shè)計(jì)方法進(jìn)行設(shè)計(jì),為考慮決策跟蹤,需要重新審視決策?;诩軜?gòu)的設(shè)計(jì)方法包括:抽象功能需求?;诩軜?gòu)的設(shè)計(jì)假定需求輸出是抽象的功能需求,各種終端用戶與特定系統(tǒng)相關(guān)聯(lián),理解需求間的相關(guān)性對(duì)設(shè)計(jì)來(lái)說(shuō)是很重要,抽象功能的需求捕獲可以對(duì)詳細(xì)需求提供分類;用例。用例是終端用戶與系統(tǒng)間互操作的具體描述;質(zhì)量屬性及業(yè)務(wù)目標(biāo)。每個(gè)質(zhì)量需求應(yīng)當(dāng)包括具體的輸入及設(shè)想的應(yīng)答,而業(yè)務(wù)目標(biāo)與質(zhì)量屬性的區(qū)別不是很明晰。架構(gòu)可選方案。方案的列舉,邏輯上屬于基于架構(gòu)的設(shè)計(jì)階段,它針對(duì)每,一個(gè)質(zhì)量屬性及業(yè)務(wù)目標(biāo),作為需求階段的一個(gè)一輸出,并將凡是滿足需求的架構(gòu)都應(yīng)當(dāng)列出來(lái)。質(zhì)量場(chǎng)景。質(zhì)量場(chǎng)景也可以具體化質(zhì)量需求,應(yīng)當(dāng)對(duì)它們分優(yōu)先級(jí)進(jìn)行管理。約束。約束是預(yù)先指定的設(shè)計(jì)決策,約束來(lái)自于業(yè)務(wù)還是技術(shù)并沒(méi)有關(guān)系,其設(shè)計(jì)過(guò)程就是做決策。很少有系統(tǒng)設(shè)計(jì)時(shí)無(wú)需考慮現(xiàn)存系統(tǒng),遺留系統(tǒng)將影響當(dāng)前系統(tǒng)的設(shè)計(jì)。
三、基于架構(gòu)的軟件設(shè)計(jì)方法
首先要定義設(shè)計(jì)元素。它包括概念子系統(tǒng)、概念組件、具體組件、軟件模板、基礎(chǔ)設(shè)計(jì)的應(yīng)用?;诩軜?gòu)的軟件設(shè)計(jì)方法是對(duì)整個(gè)系統(tǒng)的分解。其次是設(shè)計(jì)元素的生成順序。隨著理解的深入,要對(duì)前期的決策重新考慮,必須在適當(dāng)?shù)牡胤浇o以予記錄。要考慮相關(guān)領(lǐng)域知識(shí)、新知識(shí)的融合應(yīng)用和架構(gòu)組人員的素質(zhì)。第三是設(shè)計(jì)元素內(nèi)部的活動(dòng)。它包括功能拆分,選擇基礎(chǔ)架構(gòu),功能分配。在功能分解中要基于功能一致性、數(shù)據(jù)或基于數(shù)據(jù)之上的操作行為模式相似、相似的抽象層和功能局部化標(biāo)準(zhǔn);設(shè)計(jì)元素應(yīng)有一個(gè)首要的架構(gòu)風(fēng)格模型,確定的架構(gòu)方案必須滿足質(zhì)量需求,在設(shè)計(jì)記錄中與設(shè)計(jì)元素相關(guān)聯(lián);架構(gòu)模型的選擇產(chǎn)生了組件類型集合,每個(gè)設(shè)計(jì)元素的概念性接口也應(yīng)當(dāng)確定,依據(jù)質(zhì)量屬性進(jìn)行權(quán)衡;設(shè)計(jì)元素都有一個(gè)依附于它軟件模板,對(duì)于模板中的每一個(gè)功能,要考慮是傳遞到子設(shè)計(jì)元素還是保留在當(dāng)前位置,并對(duì)子設(shè)計(jì)元素的功能也將進(jìn)行核對(duì)。在這個(gè)過(guò)程中輸出一個(gè)子設(shè)計(jì)元素列表,表現(xiàn)帶反饋循環(huán)的拆分設(shè)計(jì)元素的順序步驟,每執(zhí)行一步都要對(duì)系統(tǒng)的更深入理解。用例可以用來(lái)對(duì)所選擇的架構(gòu)進(jìn)行校驗(yàn),用例檢驗(yàn)設(shè)計(jì)對(duì)需求的覆蓋度,然后生成生成并發(fā)視圖、生成部署視圖、校驗(yàn)質(zhì)量場(chǎng)景以及校驗(yàn)約束。最后,按項(xiàng)目不同,基于架構(gòu)的軟件設(shè)計(jì)依據(jù)一定的優(yōu)先級(jí)順序,執(zhí)行相應(yīng)過(guò)程后生成設(shè)計(jì)元素的集合。