中國航發(fā)網(wǎng)上商城首頁優(yōu)化課程設(shè)置
系列文章目錄
系統(tǒng)架構(gòu)設(shè)計(jì)高級(jí)技能 · 軟件架構(gòu)概念、架構(gòu)風(fēng)格、ABSD、架構(gòu)復(fù)用、DSSA(一)【系統(tǒng)架構(gòu)設(shè)計(jì)師】
系統(tǒng)架構(gòu)設(shè)計(jì)高級(jí)技能 · 系統(tǒng)質(zhì)量屬性與架構(gòu)評(píng)估(二)【系統(tǒng)架構(gòu)設(shè)計(jì)師】
系統(tǒng)架構(gòu)設(shè)計(jì)高級(jí)技能 · 軟件可靠性分析與設(shè)計(jì)(三)【系統(tǒng)架構(gòu)設(shè)計(jì)師】
現(xiàn)在的一切都是為將來的夢想編織翅膀,讓夢想在現(xiàn)實(shí)中展翅高飛。
Now everything is for the future of dream weaving wings, let the dream fly in reality.
系統(tǒng)架構(gòu)設(shè)計(jì) · 基礎(chǔ)(一)【系統(tǒng)架構(gòu)設(shè)計(jì)師】
- 系列文章目錄
- 一、軟件架構(gòu)的概念★★★
- 1.1 軟件架構(gòu)的定義
- 1.2 軟件架構(gòu)設(shè)計(jì)4 + 1視圖
- 1.3 軟件架構(gòu)設(shè)計(jì)與生命周期
- 1.4 軟件架構(gòu)的重要性
- 二、軟件架構(gòu)的風(fēng)格★★★★★
- 2.1 軟件架構(gòu)經(jīng)典五大風(fēng)格
- 2.1.1 數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格
- 2.1.1.1 批處理風(fēng)格
- 2.1.1.2 管道/過濾器風(fēng)格
- 2.1.2 調(diào)用/返回系結(jié)構(gòu)風(fēng)格
- 2.1.2.1 主程序/子程序風(fēng)格
- 2.1.2.2 面向?qū)ο箫L(fēng)格
- 2.1.2.3 層次結(jié)構(gòu)風(fēng)格
- 2.1.3 以數(shù)據(jù)為中心系結(jié)構(gòu)風(fēng)格
- 2.1.3.1 倉庫結(jié)構(gòu)風(fēng)格
- 2.1.3.2 黑板結(jié)構(gòu)風(fēng)格
- 2.1.3.3 超文本系統(tǒng)風(fēng)格
- 2.1.4 虛擬機(jī)體系結(jié)構(gòu)風(fēng)格
- 2.1.4.1 解釋器風(fēng)格
- 2.1.4.2 規(guī)則系統(tǒng)風(fēng)格
- 2.1.5 獨(dú)立構(gòu)件體系結(jié)構(gòu)風(fēng)格
- 2.1.5.1 進(jìn)程間通信風(fēng)格
- 2.1.5.2 事件驅(qū)動(dòng)系統(tǒng)風(fēng)格(隱式調(diào)用)
- 2.2 C2風(fēng)格
- 2.3 閉環(huán)風(fēng)格
- 三、基于架構(gòu)的軟件開發(fā)方法(ABSD)★★★★
- 3.1 體系機(jī)構(gòu)設(shè)計(jì)的方法概述
- 3.2 基于架構(gòu)的開發(fā)模型(ABSD)
- 四、特定領(lǐng)域的軟件架構(gòu)(DSSA)★★★
- 4.1 特定領(lǐng)域的軟件架構(gòu) - 基本活動(dòng)
- 4.2 特定領(lǐng)域的軟件架構(gòu) - 領(lǐng)域分析機(jī)制
- 4.3 特定領(lǐng)域的軟件架構(gòu) - 建立過程
- 五、軟件架構(gòu)的復(fù)用★★★
一、軟件架構(gòu)的概念★★★
1.1 軟件架構(gòu)的定義
軟件架構(gòu)概念
軟件架構(gòu)(Software Architecture) = 軟件體系結(jié)構(gòu)
指系統(tǒng)的一個(gè)或者多個(gè)結(jié)構(gòu),結(jié)構(gòu)包括:
(1)結(jié)構(gòu) - 軟件的構(gòu)件(可能是程序的模塊、類、或者中間件)
(2)屬性 - 構(gòu)件的外部可見屬性
(3)交互作用 - 構(gòu)件之間的相互關(guān)系
軟件架構(gòu)的本質(zhì)
軟件架構(gòu)為軟件系統(tǒng)提供了一個(gè) 結(jié)構(gòu)、行為和屬性的高級(jí)抽象。
軟件架構(gòu)風(fēng)格是特定應(yīng)用領(lǐng)域的 慣用模式,架構(gòu)定義 一個(gè)詞匯表和一組約束。
軟件架構(gòu)的作用
軟件架構(gòu)是 項(xiàng)目干系人進(jìn)行交流的手段。
軟件架構(gòu)是 可傳遞和可復(fù)用的模型,通過研究軟件架構(gòu)可能預(yù)測軟件的質(zhì)量。
軟件架構(gòu)使推理和控制的更改更加簡單, 有助于循序漸進(jìn)的原型設(shè)計(jì),可以作為培訓(xùn)的基礎(chǔ)。
需求分析 → 架構(gòu)(彌補(bǔ)需求到設(shè)計(jì)的鴻溝)→ 軟件設(shè)計(jì)
架構(gòu)設(shè)計(jì)就是需求分配,既 將滿足的需求的職責(zé)分配到組件上。
軟件架構(gòu)設(shè)計(jì)通過多種視圖全面描述 - 4 + 1 視圖。
1.2 軟件架構(gòu)設(shè)計(jì)4 + 1視圖
視角與視圖:
從不同的視角來檢查,所以會(huì)有不同的視圖。
Kruchten在1995年提出了一個(gè)“4+1”的視圖模型?!?+1”視圖模型從5個(gè)不同的視角包括邏輯視圖、進(jìn)程視圖、物理視圖、開發(fā)視圖和場景視圖來描述軟件架構(gòu)。每一個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面,5個(gè)視圖結(jié)合在一起才能反映系統(tǒng)的軟件架構(gòu)的全部內(nèi)容。
邏輯視圖:主要支持系統(tǒng)的功能需求,即系統(tǒng)提供給最終用戶的服務(wù)。邏輯視圖設(shè)計(jì)中要注意的主要問題是要保持一個(gè)單一的、內(nèi)聚的對象模型貫穿整個(gè)系統(tǒng),且描述對象模型和對象之間的關(guān)系。
開發(fā)視圖:也稱為模塊視圖,主要側(cè)重于軟件模塊的組織和管理。開發(fā)視圖通過系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖來描述。可以在確定了軟件包含的所有元素之后描述完整的開發(fā)角度,也可以在確定每個(gè)元素之前,列出開發(fā)視圖原則。
進(jìn)程視圖:也稱為過程視圖。側(cè)重于系統(tǒng)的運(yùn)行特性,主要關(guān)注一些非功能性的需求,例如系統(tǒng)的性能和可用性。進(jìn)程視圖強(qiáng)調(diào)并發(fā)性、分布性、系統(tǒng)集成性和容錯(cuò)能力,以及邏輯視圖中的主要抽象的進(jìn)程結(jié)構(gòu)。進(jìn)程視圖可以描述成多層抽象,每個(gè)級(jí)別分別關(guān)注不同的方面。
物理視圖:主要考慮如何把軟件映射到硬件上,它通常要考慮到解決系統(tǒng)拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝、通信等問題。
場景:可以看作是那些重要系統(tǒng)活動(dòng)的抽象,它使四個(gè)視圖有機(jī)地聯(lián)系起來,從某種意義上說,場景是最重要的需求抽象。在開發(fā)架構(gòu)時(shí),它可以幫助設(shè)計(jì)者找到架構(gòu)的構(gòu)件和它們之間的作用關(guān)系。同時(shí),也可以用場景來分析一個(gè)特定的視圖,或描述不同視圖構(gòu)件間是如何相互作用的。場景可以用文本表示,也可以用圖形表示。
邏輯視圖和開發(fā)視圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),而進(jìn)程視圖和物理視圖描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)。對于不同的軟件系統(tǒng)來說,側(cè)重的角度也有所不同。例如,對于管理信息系統(tǒng)來說,比較側(cè)重于從邏輯視圖和開發(fā)視圖來描述系統(tǒng),而對于實(shí)時(shí)控制系統(tǒng)來說,則比較注重于從進(jìn)程視圖和物理視圖來描述系統(tǒng)。
1.3 軟件架構(gòu)設(shè)計(jì)與生命周期
軟件架構(gòu)是貫穿整個(gè)生命周期的,不同階段的作用和意義不同,各階段架構(gòu)工作表現(xiàn)表:
階段 | 作用和意義 |
---|---|
需求分析階段 | 有利于各階段參與者的交流,也易于維護(hù)各階段的可追蹤性。 軟件需求模型向軟件架構(gòu)模型轉(zhuǎn)換關(guān)注兩個(gè)問題: 1)如何根據(jù)需求模型構(gòu)建軟件架構(gòu)模型 2)如何保證模型轉(zhuǎn)換的可追蹤性 |
設(shè)計(jì)階段 | 關(guān)注最早和最多的階段。 這一階段的研究主要包括: 1)軟件架構(gòu)模型的描述 2)軟件架構(gòu)模型的設(shè)計(jì)與分析方法 3)軟件架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)與復(fù)用 架構(gòu)模型的描述研究包括: ①組成SA(軟件架構(gòu))模型 - 構(gòu)件和連接的建模 ②架構(gòu)描述語言(Architecture Describe Language,ADL) ③多視圖 - 4 + 1視圖 ADL三個(gè)基本元素: 1)構(gòu)件:計(jì)算或數(shù)據(jù)存儲(chǔ)單元,包括構(gòu)件和相應(yīng)的構(gòu)件接口 2)連接件:用于構(gòu)件之間交互建模的體系結(jié)構(gòu)構(gòu)造塊及其支配這些交互的規(guī)則 3)架構(gòu)配置:描述體系結(jié)構(gòu)的構(gòu)件和連接件的連接圖 ADL是建模用的,是一些偽代碼 |
實(shí)現(xiàn)階段 | 有效實(shí)現(xiàn)從軟件架構(gòu)設(shè)計(jì)向?qū)崿F(xiàn)的轉(zhuǎn)換。 這一階段架構(gòu)研究包括: 1)基于架構(gòu)開發(fā)過程的支持 2)尋求從架構(gòu)向?qū)崿F(xiàn)過渡的途徑 3)研究基于架構(gòu)的測試技術(shù) |
構(gòu)件組裝階段 | 可復(fù)用構(gòu)件組裝的設(shè)計(jì)能夠提高系統(tǒng)實(shí)現(xiàn)的效率。 這一階段的研究內(nèi)容包括: 1)如何支持可復(fù)用構(gòu)件的互聯(lián),即對架構(gòu)設(shè)計(jì)模型中規(guī)約的連接子的實(shí)現(xiàn)提供支持 2)組裝過程中,如何檢測并消除架構(gòu)失配問題 適配問題主要包括: ①構(gòu)件本身適配 ②連接子(互聯(lián)機(jī)制)的失配 ③部分和整體的失配 |
部署階段 | 組織和展示部署階段的軟硬件架構(gòu)、評(píng)估分析部署方案。 部署階段的軟件架構(gòu)對軟件部署的作用: 1)提供高層的體系結(jié)構(gòu)視圖描述部署階段的軟硬件模型 2)基于軟件架構(gòu)模型可以分析部署方案的質(zhì)量屬性從而選擇合理的部署方案 |
后開發(fā)階段 | 主要圍繞維護(hù)、演化、復(fù)用進(jìn)行。 部署安裝后(后開發(fā)階段)的系統(tǒng)架構(gòu)研究方向包括: 1)動(dòng)態(tài)軟件體系結(jié)構(gòu) 2)體系結(jié)構(gòu)恢復(fù)與重建 |
1.4 軟件架構(gòu)的重要性
軟件架構(gòu)設(shè)計(jì)是降低成本、改進(jìn)質(zhì)量、按時(shí)和按需交付產(chǎn)品的關(guān)鍵因素。
二、軟件架構(gòu)的風(fēng)格★★★★★
- 架構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語表和一組指導(dǎo)構(gòu)建系統(tǒng)的規(guī)則。
- 架構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何將各個(gè)構(gòu)件有效地組織成一個(gè)完整的系統(tǒng)。
- 軟件架構(gòu)風(fēng)格是特定應(yīng)用領(lǐng)域的慣用模式,架構(gòu)定義一個(gè)詞匯表和一組約束。
2.1 軟件架構(gòu)經(jīng)典五大風(fēng)格
五大架構(gòu)風(fēng)格 | 子風(fēng)格 |
---|---|
數(shù)據(jù)流風(fēng)格 | 批處理、管道-過濾器 |
調(diào)用/返回風(fēng)格 | 程序/子程序、面向?qū)ο?、層次結(jié)構(gòu) |
以數(shù)據(jù)為中心風(fēng)格 | 數(shù)據(jù)庫系統(tǒng)、黑板系統(tǒng)、超文本系統(tǒng) |
虛擬機(jī)風(fēng)格 | 解釋器、規(guī)則系統(tǒng) |
獨(dú)立構(gòu)件風(fēng)格 | 進(jìn)程通信、事件驅(qū)動(dòng)系統(tǒng)(隱式調(diào)用) |
2.1.1 數(shù)據(jù)流體系結(jié)構(gòu)風(fēng)格
優(yōu)點(diǎn) | 缺點(diǎn) | 典型實(shí)例 |
---|---|---|
1、松耦合【高內(nèi)聚-低耦合】 2、良好的重用性/可維護(hù)性 3、可擴(kuò)展性【標(biāo)準(zhǔn)接口適配】 4、良好的隱蔽性 5、支持并行 | 1、交互性較差 2、復(fù)雜性高 3、性能較差(每個(gè)過濾器都需要解析與合成數(shù)據(jù)) | 傳統(tǒng)編譯器 網(wǎng)絡(luò)報(bào)文處理 |
2.1.1.1 批處理風(fēng)格
批處理風(fēng)格的每一步處理都是獨(dú)立的,并且每一步是順序執(zhí)行的。數(shù)據(jù)必須是完整的,以整體的方式傳遞。
2.1.1.2 管道/過濾器風(fēng)格
在管道/過濾器風(fēng)格的軟件架構(gòu)中,每個(gè)構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。
2.1.2 調(diào)用/返回系結(jié)構(gòu)風(fēng)格
2.1.2.1 主程序/子程序風(fēng)格
主程序/子程序風(fēng)格是結(jié)構(gòu)化開發(fā)時(shí)期的經(jīng)典架構(gòu)風(fēng)格。這種風(fēng)格一般采用單線程控制,把問題劃分為若干處理步驟,構(gòu)件即為主程序和子程序。子程序通??珊铣蔀槟K。過程調(diào)用作為交互機(jī)制,即充當(dāng)連接件。
2.1.2.2 面向?qū)ο箫L(fēng)格
這種風(fēng)格的構(gòu)件是對象,或者說是抽象數(shù)據(jù)類型的實(shí)例。對象是一種被稱作管理者的構(gòu)件,它負(fù)責(zé)保持資源的完整性。對象是通過函數(shù)和過程的調(diào)用來交互的。
2.1.2.3 層次結(jié)構(gòu)風(fēng)格
層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶。在一些層次系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層只對相鄰的層可見
2.1.3 以數(shù)據(jù)為中心系結(jié)構(gòu)風(fēng)格
2.1.3.1 倉庫結(jié)構(gòu)風(fēng)格
數(shù)據(jù)庫系統(tǒng)是倉庫風(fēng)格最常見的形式。在數(shù)據(jù)庫系統(tǒng)中,構(gòu)件主要有兩大類,一類是中央共享數(shù)據(jù)源,保存當(dāng)前系統(tǒng)的數(shù)據(jù)狀態(tài);另一類是多個(gè)獨(dú)立處理單元,處理單元對數(shù)據(jù)元素進(jìn)行操作。
2.1.3.2 黑板結(jié)構(gòu)風(fēng)格
黑板系統(tǒng)包括知識(shí)源、黑板和控制三個(gè)部分。知識(shí)源包括若干獨(dú)立計(jì)算的不同單元,提供解決問題的知識(shí)。知識(shí)源響應(yīng)黑板的變化,也只修改黑板;黑板是一個(gè)全局?jǐn)?shù)據(jù)庫,包含問題域解空間的全部狀態(tài),是知識(shí)源相互作用的唯一媒介;知識(shí)源響應(yīng)是通過黑板狀態(tài)的變化來控制的。黑板系統(tǒng)通常應(yīng)用在對于解決問題沒有確定性算法的軟件中,例如,信號(hào)處理、問題規(guī)劃和編譯器優(yōu)化等。語音識(shí)別、知識(shí)推理。
2.1.3.3 超文本系統(tǒng)風(fēng)格
超文本系統(tǒng)中出現(xiàn)的構(gòu)件以網(wǎng)狀鏈接方式相互連接,用戶可以在構(gòu)件之間進(jìn)行按照人類的聯(lián)想思維方式任意跳轉(zhuǎn)到相關(guān)構(gòu)件。超文本是一種非線性的網(wǎng)狀信息組織方法,它以結(jié)點(diǎn)為基本單位,鏈作為結(jié)點(diǎn)之間的聯(lián)想式關(guān)聯(lián)。超文本系統(tǒng)通常應(yīng)用在互聯(lián)網(wǎng)領(lǐng)域。
2.1.4 虛擬機(jī)體系結(jié)構(gòu)風(fēng)格
2.1.4.1 解釋器風(fēng)格
解釋器通常包括一個(gè)完成解釋工作的解釋引擎、一個(gè)包含將被解釋的代碼的存儲(chǔ)區(qū)、一個(gè)記錄解釋引擎當(dāng)前工作狀態(tài)的數(shù)據(jù)結(jié)構(gòu),以及一個(gè)記錄源代碼被解釋執(zhí)行的進(jìn)度的數(shù)據(jù)結(jié)構(gòu)。具有解釋器風(fēng)格的軟件中含有一個(gè)虛擬機(jī),可以仿真硬件的執(zhí)行過程和一些關(guān)鍵應(yīng)用,其缺點(diǎn)是執(zhí)行效率比較低。
2.1.4.2 規(guī)則系統(tǒng)風(fēng)格
基于規(guī)則的系統(tǒng)包括規(guī)則集、規(guī)則解釋器、規(guī)則/數(shù)據(jù)選擇器和工作內(nèi)存,一般用在人工智能領(lǐng)域和DSS中。
2.1.5 獨(dú)立構(gòu)件體系結(jié)構(gòu)風(fēng)格
2.1.5.1 進(jìn)程間通信風(fēng)格
構(gòu)件是獨(dú)立的過程,連接件是消息傳遞,構(gòu)件通常是命名過程,消息傳遞的方式可以是點(diǎn)對點(diǎn),異步或者同步的方式,以及遠(yuǎn)程過程方法調(diào)用等。
2.1.5.2 事件驅(qū)動(dòng)系統(tǒng)風(fēng)格(隱式調(diào)用)
構(gòu)件不直接調(diào)用一個(gè)過程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件。這種風(fēng)格中的構(gòu)件是匿名的過程,它們之間交互的連接件往往是以過程之間的隱式調(diào)用(implicit invocation)來實(shí)現(xiàn)的?;谑录碾[式調(diào)用風(fēng)格的主要優(yōu)點(diǎn)是為軟件復(fù)用提供了強(qiáng)大的支持,為構(gòu)件的維護(hù)和演化帶來了方便,其缺點(diǎn)是構(gòu)件放棄了對系統(tǒng)計(jì)算的控制。
2.2 C2風(fēng)格
C2風(fēng)格通過連接件連接構(gòu)件或某個(gè)構(gòu)件組,構(gòu)件與構(gòu)件之間無連接。
軟件體系結(jié)構(gòu)設(shè)計(jì)的一個(gè)核心問題就是能否使用重復(fù)的體系結(jié)構(gòu)模式,即能否達(dá)到體系結(jié)構(gòu)級(jí)的軟件重用。
C2 = EBI(基于事件的集成)+ LCS(分層客戶端服務(wù)器)
C2是一種基于構(gòu)件和消息的架構(gòu)風(fēng)格,可用于創(chuàng)建靈活的,可伸縮的軟件系統(tǒng)??梢詫⒓軜?gòu)看作是按照一定規(guī)則由連接件如消息路由設(shè)備連接的許多構(gòu)件組成的層次網(wǎng)絡(luò)系統(tǒng)中的構(gòu)件和連接件都有一個(gè)“頂部”和“底部”;一個(gè)構(gòu)件的“頂部”或“底部”可以連接到一個(gè)連接件的“底部”或“頂部”;對于一個(gè)連接件,和其相連的構(gòu)件或連接件的數(shù)量沒有限制,但是構(gòu)件和構(gòu)件之間不能直接相連。
C2架構(gòu)的基本規(guī)則:
- 構(gòu)件和連接件都有一個(gè)頂部和一個(gè)底部。
- 構(gòu)件的頂部要連接到連接件的底部,構(gòu)件的底部要連接到連接件的頂部,構(gòu)件之間不允許直連。
- 一個(gè)連接件可以和任意數(shù)目的其他構(gòu)件和連接件連接。
- 當(dāng)兩個(gè)連接件進(jìn)行直接連接時(shí),必須由其中一個(gè)的底部到另一個(gè)的頂部。
2.3 閉環(huán)風(fēng)格
- 適用于嵌入式系統(tǒng),用于解決簡單閉環(huán)控制問題。
- 經(jīng)典應(yīng)用:空調(diào)溫控,定速巡航。
三、基于架構(gòu)的軟件開發(fā)方法(ABSD)★★★★
3.1 體系機(jī)構(gòu)設(shè)計(jì)的方法概述
基于架構(gòu)的軟件設(shè)計(jì)(ABSD,Architecture-Based Software Design)是一種架構(gòu)驅(qū)動(dòng)方法,架構(gòu)驅(qū)動(dòng)也就是說架構(gòu)先行,需求獲取和分析還沒有完成就開始架構(gòu)設(shè)計(jì),需求獲取和分析與架構(gòu)設(shè)計(jì)并行,例如產(chǎn)品線系統(tǒng)和長期運(yùn)行的系統(tǒng),我們不可能開始就能決定所有的需求。
ABSD強(qiáng)調(diào)由業(yè)務(wù)、質(zhì)量和功能需求的組合驅(qū)動(dòng)架構(gòu)設(shè)計(jì) ,強(qiáng)調(diào)采用 視角和視圖 來 描述軟件架構(gòu) ,采用 用例(功能需求)和質(zhì)量場景(質(zhì)量需求) 來 描述需求 。
ABSD方法有三個(gè)基礎(chǔ):
- 第一個(gè)基礎(chǔ)是功能的分解。在功能分解中,ABSD方法使用已有的基于模塊的內(nèi)聚和耦合技術(shù)。
- 第二個(gè)基礎(chǔ)是通過選擇架構(gòu)風(fēng)格來實(shí)現(xiàn)質(zhì)量和業(yè)務(wù)需求。
- 第三個(gè)基礎(chǔ)是軟件模板的使用。
3.2 基于架構(gòu)的開發(fā)模型(ABSD)
傳統(tǒng)的軟件開發(fā)過程是問題定義,需求分析,軟件設(shè)計(jì),實(shí)現(xiàn),測試。ABSD把整個(gè)軟件過程分成六個(gè)部分,架構(gòu)需求,設(shè)計(jì),文檔化,復(fù)審,實(shí)現(xiàn),演化六個(gè)步驟。
四、特定領(lǐng)域的軟件架構(gòu)(DSSA)★★★
DSSA(Domain Specific Software Architecture)特定領(lǐng)域軟件架構(gòu),可以看做開發(fā)產(chǎn)品線的一個(gè)方法或理論,目標(biāo)就是支持一個(gè)特定領(lǐng)域中多應(yīng)用的生成。
4.1 特定領(lǐng)域的軟件架構(gòu) - 基本活動(dòng)
(1)建立領(lǐng)域模型,一個(gè)嚴(yán)格定義的問題域或解決域。其中,垂直域是在相同領(lǐng)域中深入;水平域是在不同領(lǐng)域中平移。
(2)具有普遍性,使其可以用于領(lǐng)域中某個(gè)特定應(yīng)用的開發(fā)。
(3)對整個(gè)領(lǐng)域的合適程序的抽象。
(4)具備該領(lǐng)域固定的、典型的在開發(fā)過程中的。可復(fù)用元素。
4.2 特定領(lǐng)域的軟件架構(gòu) - 領(lǐng)域分析機(jī)制
4.3 特定領(lǐng)域的軟件架構(gòu) - 建立過程
五、軟件架構(gòu)的復(fù)用★★★
-
軟件架構(gòu)復(fù)用的定義及分類
軟件架構(gòu)復(fù)用是系統(tǒng)化的軟件開發(fā)過程:開發(fā)一組基本的軟件構(gòu)件模塊,以覆蓋不同的需求/體系結(jié)構(gòu)之間的相似性,提高系統(tǒng)開發(fā)的效率、質(zhì)量和性能。 -
軟件架構(gòu)復(fù)用的原因
減少開發(fā)工作、減少開發(fā)時(shí)間、降低開發(fā)成本、提高生產(chǎn)力、提高產(chǎn)品質(zhì)量,更好的互操作性。 -
軟件架構(gòu)復(fù)用的對象及形式
可復(fù)用的資產(chǎn)包括:需求、架構(gòu)設(shè)計(jì)、元素、建模分析、測試、項(xiàng)目規(guī)劃、過程+方法+工具、人員、樣本系統(tǒng)、缺陷消除。
一般形式的復(fù)用包括:函數(shù)的復(fù)用、庫的復(fù)用、面向?qū)ο箝_發(fā)中的類、接口和包的復(fù)用。 -
軟件架構(gòu)復(fù)用的基本過程
(1) 首先構(gòu)建/獲取可復(fù)用的軟件資產(chǎn)(復(fù)用前提);
(2) 管理可復(fù)用資產(chǎn);
(3) 使用可復(fù)用資產(chǎn)。