軟體架構設計 產品線及系統演化

2021-09-27 10:22:30 字數 2398 閱讀 8269

架構的本質在於其抽象性,包括連個方面:業務抽象性和技術抽象性、其中業務抽象面向特定的應用領域。

特定領域軟體架構(domain specific software architecture,dssa)可以看成產品線的乙個方法它的目標就是支援在乙個特定領域中有多個應用的生成。

dssa特徵:

(1)乙個嚴格定義的問題域或解決域;

(2)具有普遍性,使其可以用於領域中某個特定應用的開發;

(3)對整個領域的合適程度的抽象;

(4)具備該領域固定的、典型的在開發過程中的可復用元素。

從功能覆蓋範圍角度理解dssa中領域的含義兩種方法:

(1)垂直域。定義了乙個特定的系統族,匯出在該領域中可作為系統的可行解決方案的乙個通用軟體架構。

(2)水平域。定義了在多個系統和多個系統族中功能區域的共有部分,在子系統級上涵蓋多個系統(族)的特定部分功能。

在垂直域上定義的dssa只能應用於乙個成熟的穩定的領域,但這個條件比較難以滿足:若將領域分割為較小的範圍,則更相對容易,也容易得到乙個一致的解決方案。

對於中等複雜專案:應該在系統的領域模型中找到 50~100

實施dssa的過程中包含了一些基本的活動。雖然具體的dssa方法可能定義不同的概念、步驟和產品等,主要分三個階段。

(1)領域分析

這個階段的主要目的是獲得領域模型。

領域模型描述領域中系統之間共同的需求,即領域模型所描述的需求為領域需求。這個階段中收線要進行一些準備性的活動面包括定義領域的邊界。從而明確分析的物件;識別資訊源,整個領域工程過程中資訊的**,可能的資訊源包括現存系統、技術文獻、問題域和系統開發的專家、使用者調查和市場分析、領域演化的歷史記錄,在此基礎上就可以分析領域中系統需求,確定那些需求是領域中的系統廣泛共享,從而建立領域模型。當領域中存在大量系統時,需要選擇他們的乙個子集作為樣本系統。

(2)領域設計

這個階段設計的目標是獲得dssa。

(3)領域實現

這個階段的主要目標是依據領域模型和dssa開發和組織可重用資訊。

參與dssa的人員可以劃分為四種角色:領域專家、領域分析人員、領域設計人員、領域實現人員。

領域專家:

領域專家可能包括該領域中的系統有經驗的使用者,從事該領域中的系統的需求分析,設計,實現及專案管理的有經驗的軟體工程師。

主要任務:提供關於領域中系統的需求規約和實現的知識,幫助組織規範的,一致的領域字典,幫助選擇樣本系統作為領域工程的依據,複審領域模型,dssa等領域工程產品。

領域專家應該熟悉該領域系統中的軟體設計和實現,硬體限制,未來使用者需求及技術走向。

領域分析人員:

領域分析人員應該具有工程知識背景,有經驗的系統分析人員。應屬虛軟體重用和領域分析方法:熟悉進行知識獲取和知識表示所需的技術、語言和工具;應該具有一定的該領域的經驗,以便分析領域中的問題及與領域專家進行互動;應具有較高的進行抽象、模擬和關聯的能力;應該具有較高的與他人互動和合作的能力。

主要任務:控制整個領域分析過程,進行知識獲取,將獲取的只是組織到領域模型中,根據現有系統,標準規範等驗證領域模型的準確性和一致性,維護領域模型。

領域設計人員:

領域設計人員應該由有經驗的軟體設計人員來擔任。

主要任務:控制整個軟體設計過程,根據領域模型和現有的系統開發出dssa,對dssa的準確性和一致性進行驗證,建立領域模型和dssa之間的聯絡。

領域設計人員應該熟悉重用和領域設計方法;熟悉軟體設計方法;熟悉軟體設計方法,應該有一定的該領域的經驗,以便於分析領域中的問題與領域專家進行互動。

領域實現人員:

領域是實現人員應該由經驗的程式設計人員來擔任。領域實現人員的主要任務包括根據領域模型和dssa,或者從頭可重用構件,或者利用軟體再工程技術從現有系統中提取可重用構建,可對重用構建進行驗證,建立dssa與可重用構建之間的聯絡。

領域實現人員應熟悉軟體重用、領域實現及軟體在工程技術;熟悉程式設計;具有一定的該領域的經驗。

dssa 五個階段特點:每一步驟可以進一步劃分為一些步驟或子階段

dssa建立過程五個階段:

定義領域範圍

定於領域特定的元素

定於領域特定的設計和實現需求約束

定義領域模型和架構

產生,蒐集可重用的產品單元。

每個階段包括一組需要回答的問題,一組需要輸入,一組將產生的輸入和驗證標準。過程是併發(concurrent),遞迴(recusive)反覆(iterative)螺旋形。目的是將用的需求對映為基於實現限制集合的軟體需求,這些定義了dssa。在此之前的領域工程和領域分析過程並沒有對系統的功能呢個性需求和實現限制進行區分,而是統稱為"需求"

軟體系統產品線特徵及構建過程

根據sei定義,結合業界的一些研究,軟體產品線有如下幾個重要特徵 1.乙個軟體產品線應該有一系列的產品成員組成,既產品家族。2.產品家族中的所有產品都服務於一些特定的領域。3.產品家族成員之間在服務功能 產品質量 產品效能 產品應用範圍等方面有著明顯的差異。4.產品家族成員在構建時都利用了相同或者相...

軟體架構設計 二 系統總體架構設計

系統總體架構非常重要,但在表達上都不盡相同,下面介紹幾種常用的系統架構模式,供參考 assf access service biz standard fundation 模式 訪問 服務 業務功能 標準 基礎,對系統架構各個層次均有表達,但部署應用模式需要有單獨說明,如下圖方式組織系統總體架構 lo...

軟體架構設計 二 系統總體架構設計

系統總體架構非常重要,但在表達上都不盡相同,下面介紹幾種常用的系統架構模式,供參考 assf access service biz standard fundation 模式 訪問 服務 業務功能 標準 基礎,對系統架構各個層次均有表達,但部署應用模式需要有單獨說明,如下圖方式組織系統總體架構 lo...