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