軟件體系結(jié)構(gòu)第十章

1. 產(chǎn)品線就是由在系統(tǒng)的組成元素和功能方面具有共性和個(gè)性的相似的多個(gè)系統(tǒng)組成的一個(gè)系統(tǒng)族。

2. 軟件產(chǎn)品線主要由兩部分組成:核心資源、產(chǎn)品集合。

(1)核心資源:領(lǐng)域工程的所有結(jié)果的集合。

(2)核心資源最重要的部分:產(chǎn)品線體系結(jié)構(gòu)和構(gòu)件。

【產(chǎn)品線體系結(jié)構(gòu)就像是拼圖的圖紙,構(gòu)件就像是拼圖】

3. 軟件產(chǎn)品線的過(guò)程模型——雙生命周期模型(產(chǎn)品線=領(lǐng)域工程+應(yīng)用工程)

(1)領(lǐng)域工程:針對(duì)所有的構(gòu)件,即共性部分。

任務(wù):

a. 領(lǐng)域分析:利用現(xiàn)有系統(tǒng)的設(shè)計(jì)、體系結(jié)構(gòu)和需求建立領(lǐng)域模型

b. 領(lǐng)域設(shè)計(jì):用領(lǐng)域模型確定領(lǐng)域/產(chǎn)品線的共性和可變性,為產(chǎn)品線設(shè)計(jì)體系結(jié)構(gòu)

c. 領(lǐng)域?qū)崿F(xiàn):基于領(lǐng)域體系結(jié)構(gòu)開發(fā)領(lǐng)域可重用資源(構(gòu)件、文檔、代碼生成器)

(2)應(yīng)用工程:針對(duì)個(gè)體,即個(gè)性部分。

任務(wù):

a. 需求分析:將系統(tǒng)需求與領(lǐng)域需求比較,劃分成領(lǐng)域公共需求和獨(dú)特需求兩部分,得出系統(tǒng)說(shuō)明書

b. 系統(tǒng)設(shè)計(jì):在領(lǐng)域體系結(jié)構(gòu)基礎(chǔ)上,結(jié)合系統(tǒng)獨(dú)特需求設(shè)計(jì)應(yīng)用的軟件體系結(jié)構(gòu)

c. 系統(tǒng)實(shí)現(xiàn):遵照應(yīng)用體系結(jié)構(gòu),用領(lǐng)域可重用資源實(shí)現(xiàn)領(lǐng)域公共需求,用定制開發(fā)的構(gòu)件滿足系統(tǒng)獨(dú)特需求,構(gòu)建新的系統(tǒng)

(3)應(yīng)用工程將產(chǎn)品線資源不能滿足的需求返回給領(lǐng)域工程以檢驗(yàn)是否將其并入產(chǎn)品線的需求中。領(lǐng)域工程從應(yīng)用工程中獲得反饋或結(jié)合新產(chǎn)品的需求進(jìn)入又一次周期開發(fā)。

【產(chǎn)品線的演化】

(4)優(yōu)點(diǎn):

a. 提高軟件生產(chǎn)率、可靠性和質(zhì)量

b. 降低開發(fā)成本

c. 縮短開發(fā)時(shí)間

4. SEI模型——三周期模型


(1)特點(diǎn):

a. 循環(huán)重復(fù)。

b. 核心資源開發(fā)和產(chǎn)品開發(fā)沒(méi)有先后之分。

c. 管理活動(dòng)協(xié)調(diào)整個(gè)產(chǎn)品線開發(fā)過(guò)程的各個(gè)活動(dòng),對(duì)產(chǎn)品線的成敗負(fù)責(zé)。

d. 核心資源開發(fā)和產(chǎn)品開發(fā)是兩個(gè)互動(dòng)的過(guò)程,三個(gè)活動(dòng)和整個(gè)產(chǎn)品線開發(fā)之間也是雙向互動(dòng)的。

(2)每一個(gè)旋轉(zhuǎn)環(huán)代表一個(gè)基本活動(dòng);三個(gè)基本活動(dòng)交錯(cuò)連接,可以以任何次序發(fā)生,且高度重疊;旋轉(zhuǎn)的箭頭表示不但核心資源庫(kù)被用來(lái)開發(fā)產(chǎn)品,而且已存在的核心資源的修訂甚至新的核心資源可以來(lái)自產(chǎn)品開發(fā)。

(3)

a. 領(lǐng)域工程增加了產(chǎn)品線確定作為起始階段,和領(lǐng)域分析階段、體系結(jié)構(gòu)開發(fā)階段、基礎(chǔ)資源開發(fā)階段組成整個(gè)領(lǐng)域工程。

?b. 領(lǐng)域分析階段增加市場(chǎng)分析的任務(wù),應(yīng)用領(lǐng)域階段增加了商務(wù)/市場(chǎng)分析和規(guī)劃

c. 在領(lǐng)域工程和應(yīng)用工程之間的雙向交互中添加核心資源管理作為橋梁

5. 軟件產(chǎn)品線的組織結(jié)構(gòu)


(1)軟件開發(fā)的組織分兩個(gè)基本部分:負(fù)責(zé)核心資源的小組、負(fù)責(zé)產(chǎn)品的小組。

【雙周期、三周期都有】

(2)體系結(jié)構(gòu)組:監(jiān)控核心資源開發(fā)組和產(chǎn)品開發(fā)組以保證核心資源和產(chǎn)品能夠遵循體系結(jié)構(gòu),同時(shí)負(fù)責(zé)體系結(jié)構(gòu)的演化

(3)配置管理組:維護(hù)每個(gè)資源的版本

【體系結(jié)構(gòu)組、核心資源開發(fā)組與負(fù)責(zé)獨(dú)立產(chǎn)品開發(fā)的小組相互獨(dú)立】

6. SEI產(chǎn)品線組織結(jié)構(gòu)

(1)將產(chǎn)品線組織分為四個(gè)工作小組:

a. 市場(chǎng)人員是產(chǎn)品線和產(chǎn)品能力、客戶需求之間的溝通橋梁;

b. 核心資源組負(fù)責(zé)體系結(jié)構(gòu)和其他核心資源的開發(fā);

c. 應(yīng)用組負(fù)責(zé)交付給客戶的系統(tǒng)的開發(fā);

d. 管理者負(fù)責(zé)開發(fā)過(guò)程的協(xié)調(diào)、商務(wù)計(jì)劃等。

(2)設(shè)有獨(dú)立核心資源小組的組織結(jié)構(gòu)通常合適于至少由50到100人組成的較大型的軟件開發(fā)組織。

(3)在不設(shè)立獨(dú)立的核心資源小組中,核心資源的開發(fā)融入各系統(tǒng)開發(fā)小組中,只是設(shè)立專人負(fù)責(zé)核心資源開發(fā)的管理。

7. Jan Bosch產(chǎn)品線組織結(jié)構(gòu)

(1)開發(fā)部門:所有的軟件開發(fā)集中在一個(gè)部門,每個(gè)人都可承擔(dān)領(lǐng)域工程和應(yīng)用工程中適合的任務(wù)。

【特點(diǎn):簡(jiǎn)單、利于溝通】【適用于不超過(guò)30人的組織】

(2)業(yè)務(wù)部門:每個(gè)部門負(fù)責(zé)產(chǎn)品線中一個(gè)和多個(gè)相似的系統(tǒng),共性資源由需要使用它的一個(gè)和幾個(gè)部門協(xié)作開發(fā),整個(gè)團(tuán)體都可享用。

【優(yōu)點(diǎn):資源更容易共享?!?/p>

【缺點(diǎn):業(yè)務(wù)部門更注重自己的產(chǎn)品而將產(chǎn)品線的整體利益放在第二位?!?/p>

【適用于30-100人的組織】

(3)領(lǐng)域工程部門:有一個(gè)專門的單位——領(lǐng)域工程部門負(fù)責(zé)核心資源庫(kù)的開發(fā)和維護(hù),其他業(yè)務(wù)單位使用這些核心資源來(lái)構(gòu)建產(chǎn)品。

【優(yōu)點(diǎn):可有效的降低通訊的復(fù)雜度、保持資源的通用性】

【缺點(diǎn):難以管理領(lǐng)域工程部門和不同產(chǎn)品工程部門之間的需求沖突和因此導(dǎo)致的開發(fā)周期增長(zhǎng)?!?/p>

【適于超過(guò)100人的組織?!?/p>

(4)層次領(lǐng)域工程部門:對(duì)于非常巨大和復(fù)雜的產(chǎn)品線可以設(shè)立多層(一般為兩層)領(lǐng)域工程部門

【優(yōu)點(diǎn):不同層部門服務(wù)的范圍不同】

【缺點(diǎn):模型趨向臃腫,對(duì)新需求的響應(yīng)慢】

8. 軟件產(chǎn)品線的建立方式

9. 軟件產(chǎn)品線的演化

(1)從整體來(lái)看,軟件產(chǎn)品線的發(fā)展過(guò)程有三個(gè)階段,開發(fā)階段、配置分發(fā)階段和演化階段。

(2)產(chǎn)品線的演化包括產(chǎn)品線核心資源的演化、產(chǎn)品的演化和產(chǎn)品的版本升級(jí)。

10. 產(chǎn)品線分析

(1)產(chǎn)品線分析是產(chǎn)品線的需求工程,是商業(yè)機(jī)遇的確認(rèn)和產(chǎn)品線體系結(jié)構(gòu)的設(shè)計(jì)之間的橋梁。

【確認(rèn)機(jī)遇:是否有現(xiàn)成的產(chǎn)品線】

12. 產(chǎn)品開發(fā)

(1)產(chǎn)品開發(fā)活動(dòng)取決于產(chǎn)品線范圍、核心資源庫(kù)、產(chǎn)品計(jì)劃和需求的輸出。


13. 產(chǎn)品線體系結(jié)構(gòu)

(1)軟件產(chǎn)品線體系結(jié)構(gòu)指一個(gè)軟件開發(fā)組織為一組相關(guān)應(yīng)用或產(chǎn)品建立的公共體系結(jié)構(gòu)。

(2)同領(lǐng)域模型一樣,軟件產(chǎn)品線體系結(jié)構(gòu)中也可以分為共性部分和個(gè)性部分。

a. 共性部分是產(chǎn)品線中所有產(chǎn)品在體系結(jié)構(gòu)上的共享部分,是不可改變的

b. 個(gè)性部分指產(chǎn)品線體系結(jié)構(gòu)可以變化的部分

【產(chǎn)品線結(jié)構(gòu)的設(shè)計(jì)目的是盡量擴(kuò)展產(chǎn)品線中所有產(chǎn)品共享的共性部分,同時(shí)提供一個(gè)盡量靈活的體系結(jié)構(gòu)變化機(jī)制】

(3)在產(chǎn)品線的生命周期中,產(chǎn)品線體系結(jié)構(gòu)應(yīng)該保持相對(duì)小和緩慢的變化以便在生命周期中盡量保持一致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容