新版軟件體系結構(SoftwareArchitecture)培訓課件.ppt_第1頁
新版軟件體系結構(SoftwareArchitecture)培訓課件.ppt_第2頁
新版軟件體系結構(SoftwareArchitecture)培訓課件.ppt_第3頁
新版軟件體系結構(SoftwareArchitecture)培訓課件.ppt_第4頁
新版軟件體系結構(SoftwareArchitecture)培訓課件.ppt_第5頁
已閱讀5頁,還剩309頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、軟件體系結構(Software Architecture)講義八:軟件產(chǎn)品線實踐與模式內(nèi)容軟件產(chǎn)品線簡介軟件產(chǎn)品線的基本活動典型的產(chǎn)品線實踐域產(chǎn)品線實踐模式案例研究小結軟件產(chǎn)品線簡介背景(Background)概念(Concept)產(chǎn)品線的好處和代價(Benefits and Costs of a Product Line)相關術語解釋(Note on Terminology)背景(1/2)一個產(chǎn)品線(Product Line)是共享一組公共的、可管理的特性,并且滿足特定市場需求的產(chǎn)品集合產(chǎn)品線方法必將成為新世紀中占主導地位的軟件生產(chǎn)模式,產(chǎn)品的靈活性是市場的必然需求,而產(chǎn)品線將通過裁剪,生產(chǎn)

2、出滿足特定用戶或用戶群需要的產(chǎn)品從開發(fā)者的角度,產(chǎn)品線的成功在于產(chǎn)品之間通過共性的共享,達到了生產(chǎn)上經(jīng)濟的目的產(chǎn)品線方法在制造業(yè)中并不新鮮!但在軟件開發(fā)中,CMU SEI提出的“軟件產(chǎn)品線” 還是比較新的概念,并被迄今為止的實踐證明是可行的,可以有效地提高生產(chǎn)率、縮短產(chǎn)品上市時間、提高質(zhì)量和客戶滿意度背景(2/2)從構成軟件成分的抽象粒度和面向應用的角度來看,軟件開發(fā)的手段是不斷提高的1960s,子程序(subroutines)1970s,模塊(modules)1980s,對象(objects)1990s,構件(components)Now,系統(tǒng)(Systems)產(chǎn)品線方法可以看作是軟件復用發(fā)

3、展的一個更高階段概念一個軟件產(chǎn)品線是滿足下列性質(zhì)的一組軟件系統(tǒng):共享一組相同的、可管理的特性集合滿足一類特定的市場需求以預先規(guī)定的方式基于公共核心資產(chǎn)集合開發(fā)在一個軟件產(chǎn)品線中,新產(chǎn)品形成通過以下步驟:從公共資產(chǎn)庫中選取合適的構件使用預定義的變化性機制進行裁剪,如參數(shù)化、繼承必要時增加新的構件在整個產(chǎn)品線范圍內(nèi)共同的體系結構指導下,進行構件組裝,形成系統(tǒng)新產(chǎn)品(系統(tǒng))的開發(fā)從“創(chuàng)造”變?yōu)椤敖M裝(生成)”其中,占支配地位的活動是“集成”而非“編程”使用產(chǎn)品線的好處和代價(1/7)使用產(chǎn)品線帶來的好處和付出的代價都是與產(chǎn)品線中產(chǎn)品之間的復用相關的好處1:產(chǎn)品線體系結構提供了在產(chǎn)品線中進行系統(tǒng)開發(fā)的

4、結構,構件間的關系和約束。一旦定義好了產(chǎn)品線體系結構,意味著產(chǎn)品線中所有產(chǎn)品的系統(tǒng)設計已基本完成代價1:產(chǎn)品線體系結構必須支持產(chǎn)品線內(nèi)部固有的變化性,所以除了定義構件本身和構件之間的約束(必需的,可選的,可替換的),還要定義在產(chǎn)品線中開發(fā)系統(tǒng)時構件使用和演化的原則,增加了產(chǎn)品線體系結構定義的復雜性 好處2:設計決策、數(shù)據(jù)結構、算法、文檔、編碼和調(diào)試信息等都屬于可復用資產(chǎn),它們在產(chǎn)品線的所有產(chǎn)品中可被反復使用代價2:因為可復用資產(chǎn)要適應不同產(chǎn)品之間的差異,所以要求可復用資產(chǎn)有足夠通用的特性,同時要保證性能不被降低,增加了資產(chǎn)設計和實現(xiàn)的復雜性使用產(chǎn)品線的好處和代價(2/7)好處3:為軟件開發(fā)購買

5、的開發(fā)環(huán)境、配置管理工具、設備管理工具可以在整個產(chǎn)品線中使用,相當于投資的“分期付款”代價3:要求這些可復用的工具和環(huán)境有足夠的適應性,適應一個產(chǎn)品線的通用性又可以適應單獨產(chǎn)品的變化性 ,因此對這些工具和環(huán)境的要求較高好處4:產(chǎn)品線是面向特定領域中的共性產(chǎn)品,開發(fā)人員具有適應整個產(chǎn)品線的經(jīng)驗,可以按照需要隨時轉換項目,提高生產(chǎn)效率代價4:專業(yè)人員的培訓需要花很大代價使用產(chǎn)品線的好處和代價(3/7)CEO更高的生產(chǎn)效率更快速的上市持續(xù)的成長和市場份額經(jīng)濟地獲取特定市場領域的能力COO勞動力的有效使用開拓新市場、新技術和新產(chǎn)品的能力流動的人力資源“池”技術經(jīng)理增長的可預測性良好建立的角色和責任有效

6、生產(chǎn)使用產(chǎn)品線的好處和代價(4/7)軟件產(chǎn)品開發(fā)人員高昂的士氣更大的工作滿足度集中于產(chǎn)品真正的獨特方面方便的軟件集成更少的交付延遲組織內(nèi)部更大的機動性更強的市場化能力有更多學習新技術的時間成為具有良好質(zhì)量記錄和信用記錄的產(chǎn)品開發(fā)隊伍成員使用產(chǎn)品線的好處和代價(5/7)體系結構設計師或核心資產(chǎn)開發(fā)人員更大的挑戰(zhàn)工作具有更大的影響組織內(nèi)重要性的提升象產(chǎn)品線一樣具有市場銷路市場銷售人員可預測的高質(zhì)量產(chǎn)品可預測的交付時間可以銷售家族系列產(chǎn)品使用產(chǎn)品線的好處和代價(6/7)客戶更高質(zhì)量的產(chǎn)品可預測的交付時間可預測的費用特定需求的已知費用良好測試的培訓材料和文檔分享維護費用加入一個用戶組的潛在可能終端用戶

7、更少的缺陷更好的培訓材料和文檔建立與其他用戶的網(wǎng)絡使用產(chǎn)品線的好處和代價(7/7)好處一個人承擔150萬行Ada源代碼的集成和測試工作,該系統(tǒng)是一個實時的、安全要求很高的艦船指揮和控制系統(tǒng)在三年的時間里,生產(chǎn)效率翻了4番(以單位時間內(nèi)、每個工程師在每個發(fā)布的產(chǎn)品中完成的功能數(shù)目來衡量)一周完成驅(qū)動內(nèi)燃機運行的軟件系統(tǒng)(甚至一個特殊情況在一個周末),而不是以前的一年時間比沒有采用資產(chǎn)復用的預計時間提前了12個月,參加軍事模擬訓練代價把資源用于核心資產(chǎn)庫的開發(fā),為此取消了三個大項目重新安排不適應產(chǎn)品線方法的員工在新方法發(fā)揮作用之前,推遲產(chǎn)品發(fā)布一年時間相關術語解釋(1/4)核心資產(chǎn)庫(core a

8、ssets base)核心資產(chǎn)庫是產(chǎn)品線的基礎,是管理支持產(chǎn)品開發(fā)的可復用資源的機制核心資產(chǎn)庫中的資產(chǎn)通常包括體系結構、可復用軟件構件、框架、領域模型、需求描述、文檔和規(guī)約、性能模型和度量、日程、預算、測試計劃、測試用例、工作計劃、過程描述、通訊協(xié)議描述、用戶界面描述、應用生成器、設計準則和設計決策,其中,體系結構是最為關鍵的資產(chǎn)相關術語解釋(2/4)開發(fā)(development)“開發(fā)”在這里是一個廣義的詞,指的是如何獲得核心資產(chǎn)(或產(chǎn)品)軟件進入一個組織可以通過以下三個渠道之一:自己構建(build),包括從零開始或從遺產(chǎn)系統(tǒng)中挖掘直接購買(purchase),通常不做修改委托加工(com

9、mission),同別人簽訂合同為其特別定制這里的“開發(fā)”實際上包括構建、獲取、購買、翻新老系統(tǒng),或以上各種方式的組合相關術語解釋(3/4)產(chǎn)品線(product line) vs. 產(chǎn)品族(product family)產(chǎn)品線是共享一組公共的、可管理的特性,并且滿足特定市場需求的產(chǎn)品集合產(chǎn)品族是一組相關的軟件系統(tǒng),它們是基于公共的核心資產(chǎn)開發(fā)出來的盡管產(chǎn)品線以產(chǎn)品族的方式構造是最高效的,但從技術上來講,產(chǎn)品線可以不是產(chǎn)品族同樣,如果產(chǎn)品族的結果產(chǎn)品在市場目標上彼此關系不大,也不一定構成產(chǎn)品線注意:我們關于軟件產(chǎn)品線的定義隱含了產(chǎn)品線是作為一個產(chǎn)品族來開發(fā)的,并且其中的產(chǎn)品按照規(guī)定的方式開發(fā)術

10、語對照Product lineProduct familyCore assetsPlatformProduct familyPlatform-based familyBusiness unitProduct line相關術語解釋(4/4)內(nèi)容軟件產(chǎn)品線簡介軟件產(chǎn)品線的基本活動典型的產(chǎn)品線實踐域產(chǎn)品線實踐模式案例研究小結產(chǎn)品線方法的基本活動核心資產(chǎn)開發(fā)(Core Asset Development)產(chǎn)品開發(fā)(Product Development)管理(Management)產(chǎn)品線方法的基本活動領域工程和應用工程領域工程領域工程是為一組相似或相近系統(tǒng)的應用工程建立基本能力和必備基礎的過程,它覆蓋

11、了建立可復用軟件構件的所有活動。針對一個領域中的所有系統(tǒng),而不局限于某個特定的系統(tǒng)。應用工程:應用工程是開發(fā)單個特定應用系統(tǒng)的活動。針對一組特定的需求,產(chǎn)生一個特定的解決方案。與應用工程相比,領域工程處于一個較高的抽象級別上。行為產(chǎn)品領域工程領域分析領域設計領域?qū)崿F(xiàn)領域模型DSSA領域構件應用工程系統(tǒng)1系統(tǒng)2系統(tǒng)n分析用戶需求設計應用系統(tǒng)規(guī)約應用系統(tǒng)實現(xiàn)應用系統(tǒng)體系結構應用系統(tǒng)應用工程系統(tǒng)n+1基于領域模型的分析用戶需求基于DSSA的設計應用系統(tǒng)規(guī)約應用系統(tǒng)實現(xiàn)/集成應用系統(tǒng)體系結構應用系統(tǒng)活動1:核心資產(chǎn)開發(fā)核心資產(chǎn)開發(fā)活動的輸入(1/5)產(chǎn)品約束產(chǎn)品線中的產(chǎn)品有哪些共性和變化性?它們提供哪

12、些行為特性?根據(jù)市場和技術預測將來產(chǎn)品要具有哪些功能?遵循什么標準?滿足哪些性能要求?同哪些外部系統(tǒng)交互?滿足哪些物理限制?滿足哪些質(zhì)量要求(如可用性、安全性等)?核心資產(chǎn)必須以最小犧牲產(chǎn)品質(zhì)量(如安全性、可靠性、可用性等)的代價,換取對產(chǎn)品共性和個性的滿足核心資產(chǎn)開發(fā)活動的輸入(2/5)風格、模式和框架符合產(chǎn)品約束和生產(chǎn)約束的相關體系結構是什么?構件交互的協(xié)議和模式是什么?有哪些可用的設計模式?有哪些可用的應用框架?盡管這些是體系結構定義的輸入,它們被提高到如此高度的目的在于強調(diào)體系結構在軟件產(chǎn)品線實踐中的重要性核心資產(chǎn)開發(fā)活動的輸入(3/5)生產(chǎn)約束產(chǎn)品線的產(chǎn)品要遵循哪些商業(yè)、軍事或公司的

13、規(guī)范?產(chǎn)品線的產(chǎn)品所基于的底層基礎設施是什么?產(chǎn)品推向市場的時間需求是什么? 哪些COTS構件是可用的?哪些遺產(chǎn)構件可被復用?對這些問題的回答對核心資產(chǎn)的構造,以及核心資產(chǎn)自身具有顯著的影響核心資產(chǎn)開發(fā)活動的輸入(4/5)生產(chǎn)策略生產(chǎn)策略是實現(xiàn)核心資產(chǎn)的總體方法。產(chǎn)品線采用自頂向下還是自底向上的開發(fā)方法?轉移資產(chǎn)生產(chǎn)成本的策略是什么?通用構件是自行開發(fā)還是從市場購買? 產(chǎn)品是自動生成還是組裝?核心資產(chǎn)的生產(chǎn)如何管理?生產(chǎn)策略刻畫了體系結構和相關構件的獲得及演化途徑核心資產(chǎn)開發(fā)活動的輸入(5/5)已有資產(chǎn)的清單在開發(fā)產(chǎn)品線之前有哪些可用的軟件資產(chǎn),譬如:庫函數(shù)、框架、算法、工具、構件等? 有哪些

14、可用的技術管理過程、預算模型、培訓資源?資產(chǎn)清單包括所有事先存在的潛在資產(chǎn)。通過仔細分析,開發(fā)組織可以確定什么是最適合利用的核心資產(chǎn)開發(fā)活動的輸出(1/2)產(chǎn)品線空間(Scope)產(chǎn)品線空間描述了構成產(chǎn)品線的產(chǎn)品,不僅僅是產(chǎn)品名稱的枚舉列表,還包括這些產(chǎn)品的共性和變化性,例如產(chǎn)品提供的操作,性能和其他質(zhì)量屬性,運行的平臺等此外,產(chǎn)品線空間會隨著市場條件、組織計劃、商業(yè)目標等的改變而不斷演化,產(chǎn)品線空間的演化是產(chǎn)品線演化的起點核心資產(chǎn)庫資產(chǎn)庫是利用產(chǎn)品線進行產(chǎn)品開發(fā)的基礎,包括:產(chǎn)品線中所有產(chǎn)品共享的體系結構支持系統(tǒng)復用的軟件構件,包括設計和實現(xiàn)構件測試計劃,測試用例,集成計劃和各種文檔核心資產(chǎn)

15、開發(fā)活動的輸出(2/2)生產(chǎn)計劃生產(chǎn)計劃描述了怎樣基于資產(chǎn)庫開發(fā)產(chǎn)品所有上述核心資產(chǎn),例如領域模型、需求、體系結構、構件、測試計劃等,都有“附帶”的過程(process)定義它們?nèi)绾卧诋a(chǎn)品開發(fā)中使用。生產(chǎn)計劃基本上是這樣一組“附帶”的過程,它描述了這些個別的過程如何組合起來構建產(chǎn)品的總體方案生產(chǎn)計劃為復用者提供了一個基于產(chǎn)品線開發(fā)產(chǎn)品的指南。每個產(chǎn)品的變化性是同預定義的變化點相一致的,例如,從分類的構件中選擇一個提供某種特性,增加/刪除構件,通過繼承或參數(shù)化裁剪構件生產(chǎn)計劃描述了產(chǎn)品之間必要的變化性,缺乏了生產(chǎn)計劃,產(chǎn)品的開發(fā)者將不知道核心資產(chǎn)之間的聯(lián)系,如何有效地和在產(chǎn)品線約束下利用它們基于

16、核心資產(chǎn)、以生產(chǎn)計劃為指導、生產(chǎn)出產(chǎn)品線空間的產(chǎn)品開發(fā)核心資產(chǎn)庫(1/4)體系結構是產(chǎn)品線中最重要的核心資產(chǎn),產(chǎn)品線的體系結構既要滿足所有產(chǎn)品線空間中產(chǎn)品的共性,又要滿足每個產(chǎn)品的個性規(guī)定可能成為核心資產(chǎn)的軟件構件解決核心資產(chǎn)庫的構件和形成產(chǎn)品的構件之間的通信問題定義一致性規(guī)則以保證產(chǎn)品遵循體系結構規(guī)范保證體系結構在產(chǎn)品線生命周期中的可行性產(chǎn)品線空間的共性體現(xiàn)在體系結構中,變化性體現(xiàn)在可裁剪/可替換的構件中影響產(chǎn)品線體系結構開發(fā)的因素產(chǎn)品線空間相關的風格、模式和應用框架遺產(chǎn)系統(tǒng)的知識開發(fā)核心資產(chǎn)庫(2/4)體系結構在產(chǎn)品線中的意義體系結構是核心資產(chǎn)庫的關鍵部分,既體現(xiàn)了產(chǎn)品線的共性需求,又通過

17、變化點支持產(chǎn)品空間中的一個產(chǎn)品譜系; 體系結構描述了產(chǎn)品線中產(chǎn)品的結構,而且給出了核心資產(chǎn)庫中構件的接口規(guī)約;體系結構決定要開發(fā)哪些構件,決定哪些構件在整個產(chǎn)品線中是通用的而哪些構件在不同實例之間存在變化性;開發(fā)一個體系結構需要產(chǎn)品空間、相關風格、模式和框架知識以及已有資產(chǎn)清單。 開發(fā)核心資產(chǎn)庫(3/4)其他的核心資產(chǎn)包括同可復用軟件構件相關的資產(chǎn),需求規(guī)約設計/界面規(guī)約代碼測試計劃/案例/規(guī)程性能模型評審表格/規(guī)程最后,需要定義當產(chǎn)品線演化時,核心資產(chǎn)將如何更新。例如更多的可用資源、技術改進、市場轉向等影響了產(chǎn)品線空間開發(fā)核心資產(chǎn)庫(4/4)附加過程(attached processes)定

18、義產(chǎn)品空間產(chǎn)品線空間確定了產(chǎn)品線中包含的產(chǎn)品,定義了產(chǎn)品的共性和變化性。產(chǎn)品線空間必須被認真定義,過寬:核心資產(chǎn)將無法適應廣譜的變化性,生產(chǎn)的經(jīng)濟性將喪失,產(chǎn)品線將退化成“一次一個產(chǎn)品”的老的開發(fā)模式過窄:核心資產(chǎn)的通用性將無法適應未來發(fā)展的需要,并且規(guī)模經(jīng)濟無法實現(xiàn)影響產(chǎn)品線空間的因素市場需求、競爭對手和企業(yè)目標產(chǎn)品約束,例如產(chǎn)品可以在哪些平臺上運行和產(chǎn)品必須具有的性能相關系統(tǒng)和產(chǎn)品對于市場和技術的預測開發(fā)生產(chǎn)計劃成功的產(chǎn)品線實踐依賴于文檔化的、被良好理解的、有效的軟件實踐和過程,用于開發(fā)和演化產(chǎn)品、體系結構和其他核心資產(chǎn)生產(chǎn)計劃描述了如何基于資產(chǎn)庫開發(fā)產(chǎn)品,制定將單個資產(chǎn)的“附加”過程連接

19、起來的全局策略,這些過程包括:產(chǎn)品線的開發(fā)方式:自頂向下 vs. 自底向上體系結構的開發(fā)和維護可裁剪/可替換構件在開發(fā)產(chǎn)品過程中的使用方式為使用、裁剪和演化核心資產(chǎn),應用的特定工具度量由于產(chǎn)品線實踐(或其它過程改善)為企業(yè)帶來的效益,并制定為度量采集相關數(shù)據(jù)的計劃生產(chǎn)計劃在每次產(chǎn)品開發(fā)中被實例化產(chǎn)品線方法的基本活動活動2:產(chǎn)品開發(fā)活動產(chǎn)品開發(fā)產(chǎn)品開發(fā)活動是產(chǎn)品線的目標,核心資產(chǎn)開發(fā)只是達到該目的的一種手段。產(chǎn)品開發(fā)活動依賴于核心資產(chǎn)開發(fā)活動的三個輸出:產(chǎn)品線空間核心資產(chǎn)生產(chǎn)計劃,再加上特定產(chǎn)品的需求特定產(chǎn)品的需求經(jīng)常表現(xiàn)為產(chǎn)品線通用需求的一個增量(delta),或一組產(chǎn)品線需求的增量生產(chǎn)計劃要

20、被實例化為特定產(chǎn)品的生產(chǎn)計劃產(chǎn)品開發(fā)活動中輸入/輸出關系產(chǎn)品開發(fā)活動的輸入和輸出之間存在一個不斷反饋和迭代的過程快速生成產(chǎn)品線中特定成員的能力會影響產(chǎn)品線空間,也許被當初負責定義產(chǎn)品線空間的人所忽視每個新產(chǎn)品可能同其它產(chǎn)品相似,因此需要生成新的核心資產(chǎn)當更多的產(chǎn)品被生產(chǎn)出來時,生產(chǎn)的效率可能意味著需要新的系統(tǒng)生成過程,從而引起生產(chǎn)計劃的變更產(chǎn)品線對客戶的影響表現(xiàn)為,一個客戶可能改變他的需求,以便同產(chǎn)品線空間保持一致,從而達到利用產(chǎn)品線優(yōu)勢,縮短產(chǎn)品上市時間、提高可靠性和降低開發(fā)成本的目的軟件產(chǎn)品的開發(fā)/獲取 產(chǎn)品開發(fā)的方式產(chǎn)品線中的產(chǎn)品由一個產(chǎn)品組開發(fā);產(chǎn)品線中的產(chǎn)品由分布在整個企業(yè)的不同產(chǎn)品

21、組開發(fā);產(chǎn)品開發(fā)的活動(應用工程)特定系統(tǒng)需求獲取特定系統(tǒng)SA的獲取可復用構件的選擇和組裝變化性處理管理管理在成功的產(chǎn)品線實踐中起著關鍵的作用為產(chǎn)品線中的各個活動合理分配資源,起協(xié)調(diào)監(jiān)督的作用協(xié)調(diào)核心資產(chǎn)開發(fā)和產(chǎn)品開發(fā)迭代過程中的技術活動設置適當?shù)慕M織機構,以保證組織內(nèi)的各部門得到足夠數(shù)量的合適資源(如,良好訓練的員工)為保證核心資產(chǎn)演化,確定合適的預算模型,并提供相應的資金組織核心資產(chǎn)庫中的資產(chǎn),以方便查找合適的可復用資產(chǎn)如果產(chǎn)品線外包給其他公司,管理活動負責監(jiān)督承包人,確保資產(chǎn)和產(chǎn)品符合合同要求,通過資產(chǎn)庫達到企業(yè)目標管理部門與外部的接口推選一位稱職的管理者,稱為Product Line

22、Champion內(nèi)容軟件產(chǎn)品線簡介軟件產(chǎn)品線的基本活動典型的產(chǎn)品線實踐域產(chǎn)品線實踐模式案例研究小結典型的產(chǎn)品線實踐域基本概念 (Basic Terminology)產(chǎn)品線實踐域分類(Categories of Practice Areas)重要實踐域(Important Practice Areas)基本概念(1/2)一個實踐域是一組活動的集合或工作體 (body of work),組織必須掌握,以便成功地實施產(chǎn)品線的基本工作實踐域是對產(chǎn)品線基本活動(如“開發(fā)核心資產(chǎn)”)的細化,通過定義一組較小且易于管理的活動,有助于達到目標實踐域為組織采用產(chǎn)品線方法提供了起點為了能夠執(zhí)行每個實踐域的基本活動

23、,要求掌握相關的實踐域。這里的“掌握”意味著,能夠重復成功的實踐企業(yè)的能力成熟度需要達到CMM2級!基本概念(2/2)盡管很多實踐域在任何成功的軟件開發(fā)中都是基本要素,但在產(chǎn)品線方法中有其同單個系統(tǒng)工程不同的特性描述實踐域的模板描述(Introductory overview)產(chǎn)品線的特有之處(Aspects peculiar to product lines)應用于資產(chǎn)開發(fā)(How applied to core asset development)應用于產(chǎn)品開發(fā)(How applied to product development )具體實踐(Specific practices)實踐風險

24、(Practice risks)參考(References)初始級(1) 軟件配置管理 軟件質(zhì)量保證 軟件子合同管理 軟件項目跟蹤和監(jiān)督 軟件項目規(guī)劃需求管理可重復級(2)定義級(3) 軟件質(zhì)量管理量化的過程管理管理級(4) 過程變化管理 技術變化管理錯誤預防優(yōu)化級(5) 軟件配置管理 軟件質(zhì)量保證 軟件子合同管理 軟件項目跟蹤和監(jiān)督 軟件項目規(guī)劃需求管理 對等復審 組間協(xié)作 軟件產(chǎn)品工程 集成的軟件管理 培訓計劃 組織過程定義組織過程關注CMM的關鍵過程域(KPAs)產(chǎn)品線實踐域分類產(chǎn)品線的實踐域可以粗略地分為三類軟件工程實踐類:采用合適的技術創(chuàng)建和演化核心資產(chǎn)及產(chǎn)品的實踐技術管理實踐類:采

25、用工程化方法創(chuàng)建和演化核心資產(chǎn)及產(chǎn)品的管理實踐組織管理實踐類:協(xié)調(diào)整個產(chǎn)品線活動的管理實踐軟件工程實踐類軟件工程實踐類是那些采用合適的技術創(chuàng)建和演化核心資產(chǎn)及產(chǎn)品的實踐:9項體系結構定義(Architecture Definition)體系結構評價(Architecture Evaluation)構件開發(fā)(Component Development)COTS利用(COTS Utilization)挖掘現(xiàn)存資產(chǎn)(Mining Existing Assets)需求工程(Requirements Engineering)軟件系統(tǒng)集成(Software System Integration)測試(Te

26、sting)理解相關領域(Understanding Relevant Domains)技術管理實踐類技術管理實踐類是使創(chuàng)建和演化核心資產(chǎn)及產(chǎn)品“工程化”的管理實踐:8項配置管理(Configuration Management)數(shù)據(jù)收集、度量和跟蹤(Data Collection, Metrics, and Tracking)開發(fā)/購買/挖掘/委托的分析(Make/Buy/Mine/Commission Analysis)過程定義(Process Definition)產(chǎn)品線范圍確定(Product Line Scoping)技術規(guī)劃(Technical Planning)技術風險管理(Te

27、chnical Risk Management)工具支持(Tool Support)組織管理實踐類組織管理實踐類用于協(xié)調(diào)整個產(chǎn)品線的活動:12項形成合適的組織結構(Achieving the Right Organizational Structure)構建和交流商業(yè)實例(Building and Communicating a Business Case)用戶界面管理(Customer Interface Management)開發(fā)和實現(xiàn)獲取策略(Developing and Implementing an Acquisition Strategy)投資預算(Funding)啟動和制度化產(chǎn)品

28、線(Launching and Institutionalizing a Product Line)市場分析(Market Analysis)操作(Operations)組織計劃(Organizational Planning)組織風險管理(Organizational Risk Management)技術預測(Technology Forecasting)培訓(Training)實踐域同基本活動的關系(1/3)軟件工程實踐域和基本活動“開發(fā)核心資產(chǎn)”的輸出“開發(fā)產(chǎn)品”的輸出管理產(chǎn)品線范圍核心資產(chǎn)生產(chǎn)計劃產(chǎn)品體系結構定義X體系結構評估XX構件開發(fā)XCOTS利用X挖掘現(xiàn)存資產(chǎn)X需求工程XXX軟件

29、系統(tǒng)集成XX測試XX理解相關領域X實踐域同基本活動的關系(2/3)技術管理實踐域和基本活動“開發(fā)核心資產(chǎn)”的輸出“開發(fā)產(chǎn)品”的輸出管理產(chǎn)品線范圍核心資產(chǎn)生產(chǎn)計劃產(chǎn)品配置管理XX數(shù)據(jù)收集、度量和跟蹤XX開發(fā)/購買/挖掘/委托的分析X過程分析XX產(chǎn)品線范圍確定X技術規(guī)劃XX技術風險管理XXX工具支持XXX實踐域同基本活動的關系(3/3)組織管理實踐域和基本活動“開發(fā)核心資產(chǎn)”的輸出“開發(fā)產(chǎn)品”的輸出管理產(chǎn)品線范圍核心資產(chǎn)生產(chǎn)計劃產(chǎn)品形成合適的組織結構X構建和交流商業(yè)實例X用戶界面管理X開發(fā)和實現(xiàn)獲取策略XXXX投資預算X啟動和制度化產(chǎn)品線X市場分析XX操作XX組織計劃X組織風險管理X技術預測XX培

30、訓X軟件工程實踐類軟件工程實踐類是那些采用合適的技術創(chuàng)建和演化核心資產(chǎn)及產(chǎn)品的實踐:9項體系結構定義(Architecture Definition)(P54)體系結構評價(Architecture Evaluation)構件開發(fā)(Component Development)COTS利用(COTS Utilization)挖掘現(xiàn)存資產(chǎn)(Mining Existing Assets)需求工程(Requirements Engineering)軟件系統(tǒng)集成(Software System Integration)測試(Testing)理解相關領域(Understanding Relevant Do

31、mains)實踐域1:體系結構定義該實踐域描述了定義產(chǎn)品線體系結構所必須的活動。體系結構將決定一個組織能否高效地從共享的資產(chǎn)庫中生產(chǎn)出產(chǎn)品體系結構是任何軟件項目成功的關鍵因素,當然包括產(chǎn)品線。體系結構是從問題空間(用戶需求)向解空間(設計)過渡的第一個制品,它決定了結果產(chǎn)品的質(zhì)量屬性,例如性能、可修改性、可移植性項目組織結構和管理模式理解軟件系統(tǒng)如何工作的起點體系結構定義體系結構需求產(chǎn)品的質(zhì)量屬性是否同其他系統(tǒng)交互開發(fā)組織的業(yè)務目標可用的構件資源(制作/購買/挖掘/訂做)體系結構方法自頂向下(從需求到設計到實現(xiàn))在設計應用功能之前,關注系統(tǒng)基礎結構方面在研究基礎結構之前,關注應用功能體系結構風

32、格體系結構定義構件接口接口包括了構件使用者可以確實做的一組假設靜態(tài)特征:合約(contract)描述了每個服務的前置條件、后置條件、構件不變式動態(tài)特征:狀態(tài)機、時態(tài)邏輯一個完整的合約同時包括了對外提供的服務和對外要求的資源協(xié)議(protocol)描述構件之間的交互連接構件(connecting components)應用是通過連接構件進行構造的,以使能通訊和協(xié)作過程調(diào)用、遠程過程調(diào)用CORBA、COM+、JavaBeans產(chǎn)品線的特有之處(1/2)同單個系統(tǒng)的體系結構幾乎固定了系統(tǒng)中可能存在的變化性,產(chǎn)品線體系結構明確規(guī)定了產(chǎn)品線空間允許的變化性,并提供內(nèi)在的機制在具體產(chǎn)品中實例化這些變化性相

33、對于單個系統(tǒng),產(chǎn)品線對體系結構在變化性方面提出了更高的要求。產(chǎn)品線中產(chǎn)品之間的差異可能表現(xiàn)在行為、質(zhì)量-屬性、運行平臺、網(wǎng)絡、物理配置、中間件、規(guī)模等許多方面,例如,一個產(chǎn)品可能要求高度安全,處理速度較慢另一個產(chǎn)品要求速度快,安全性較低體系結構必須具有足夠的靈活性同時支持這兩個產(chǎn)品產(chǎn)品線的特有之處(2/2)產(chǎn)品線體系結構對變化性的支持可以采取多種形式:參數(shù)化:所有的變化性事先明確,并固化在代碼內(nèi),在系統(tǒng)構造時對構件、子系統(tǒng)等的形式參數(shù)進行賦值繼承和代理:面向?qū)ο笙到y(tǒng)提供的子類對父類的屬性和行為進行改變的機制構件替換:在保持接口一致的前提下,可以用功能強大的構件替換以前較弱的構件;此外,還包括構

34、件數(shù)目的擴充應用于核心資產(chǎn)開發(fā)產(chǎn)品線體系結構是核心資產(chǎn)中關鍵成員,預期在同整個產(chǎn)品線保持相同的生存期,并且保持相對穩(wěn)定體系結構定義了核心資產(chǎn)庫中的軟件構件集合,以及相關的支撐資產(chǎn),如各種文檔和測試制品體系結構本身的“附屬”過程(或產(chǎn)品開發(fā)者指南)也是產(chǎn)品線保持持久的重要核心資產(chǎn)應用于產(chǎn)品開發(fā)在構造新產(chǎn)品時,按照“附屬”的過程,對產(chǎn)品線體系結構進行實例化,其中最重要的是固定變化性在構造新產(chǎn)品時,如果發(fā)現(xiàn)產(chǎn)品線體系結構無法支持的變化性,應考慮對其進行擴充具體實踐體系結構定義和基于體系結構的開發(fā)體系結構風格和模式產(chǎn)品開發(fā)者指南在產(chǎn)品線體系結構實現(xiàn)變化性繼承擴充和擴充點參數(shù)化配置和模塊連接語言(MIL

35、)自動生成,如Yacc,Lex編譯時刻的不同實現(xiàn)選擇,如#ifdef實踐風險沒有熟練的體系結構設計師管理和文化落后的工具過度參數(shù)化過多的固定點實踐域2:體系結構評價體系結構是軟件產(chǎn)品線的基礎之一,必須盡早對其評估,降低修改成本該實踐可以在不同階段實施在體系結構還在設計時在初步體系結構設計完成和詳細設計開始之間甚至在系統(tǒng)開發(fā)完成之后(例如再工程或挖掘)體系結構評價必須同組織的商業(yè)目標緊密聯(lián)系起來,例如如果其中一個商業(yè)目標是希望系統(tǒng)有較長的生命周期,可修改性就是一個重要的質(zhì)量屬性質(zhì)量屬性的目標必須具體,例如易修改性這一抽象質(zhì)量屬性在評價具體體系結構時必須說明是針對什么樣的變化該體系結構具有(或沒有

36、)易修改性產(chǎn)品線的特有之處產(chǎn)品線的體系結構和每個產(chǎn)品的體系結構都要進行評價,但評價的標準有所不同對產(chǎn)品線體系結構的評價注重其健壯性和通用性對產(chǎn)品體系結構的評價注重其能否滿足該產(chǎn)品的行為(behavioral)和質(zhì)量要求必須考慮到體系結構為產(chǎn)品線服務這一事實產(chǎn)品線體系結構評估必須在限定硬件和其他變量變化范圍的基礎上確定體系結構所能達到的性能應用于核心資產(chǎn)開發(fā)很明顯,體系結構評價要應用于作為產(chǎn)品線核心資產(chǎn)一部分的產(chǎn)品線體系結構由于需求、商業(yè)目標和體系結構都是不斷變化的,因此需要周期性的小型評估來保證體系結構和商業(yè)目標的一致體系結構評估也可應用于核心資產(chǎn)的候選構件和內(nèi)部開發(fā)的構件不適用于黑盒復用的體

37、系結構用于評估的質(zhì)量屬性目標包括候選的核心資產(chǎn)是否支持產(chǎn)品線的質(zhì)量目標是否能夠支持產(chǎn)品線中產(chǎn)品的預期發(fā)展應用于產(chǎn)品開發(fā)體系結構評估應當在體系結構的實例或變化點上進行,這些實例或變化點用來創(chuàng)建產(chǎn)品線上的一個或多個產(chǎn)品對于產(chǎn)品線體系結構來說,產(chǎn)品體系結構評估是否是一個相對獨立的過程取決于產(chǎn)品體系結構和產(chǎn)品線體系結構在質(zhì)量屬性影響方式(quality-attribute-affecting ways)上的差異大小由于產(chǎn)品體系結構評估是產(chǎn)品線體系結構評估的變種(variation),評估制品當然可以根據(jù)所使用的評估方法進行復用把產(chǎn)品線體系結構評估或產(chǎn)品體系結構評估的附屬過程建檔當提出一個超出原產(chǎn)品線范

38、圍的新產(chǎn)品時,要重新評估產(chǎn)品線體系結構。如果不適用于新產(chǎn)品,評估可用于決定如何修改體系結構來適應新產(chǎn)品具體實踐ATAM(Architecture Trade-off Analysis Method)SAAM (Software Architecture Analysis Method)SPE (Software Performance Engineering)ARID (Active Reviews for Intermediate Designs)主動設計評審(Active Design Reviews)實踐風險不恰當?shù)娜藚⑴c評估生命周期中的不恰當時機沒有時間進行評估評估的不恰當解釋重新評估

39、失敗實踐域3:構件開發(fā)軟件構件是一個復合單元,具有“契約”規(guī)定的接口和明確的環(huán)境依賴。軟件構件可以被獨立發(fā)布,并可以被第三方合成構件開發(fā)指的是在體系結構上下文中,生產(chǎn)實現(xiàn)特定功能的構件。構件是被封裝的,通過接口對外呈現(xiàn)其功能,并同其他構件集成構件接口靜態(tài)方面:接口經(jīng)常通過“契約”的方式進行說明,即每個服務的前置、后置條件,以及表達構件內(nèi)服務交互的不變式動態(tài)方面:狀態(tài)機,時態(tài)邏輯等完整的“契約”應包括構件“對外提供的”和“為完成自身功能所需的”構件連接連接機制提供了構件通訊和協(xié)調(diào)的機制,例如CORBA,COM,IIOP和其它基礎設施構件的連接方式限制了構件的可復用性產(chǎn)品線的特有之處產(chǎn)品線的共性體

40、現(xiàn)在體系結構中,變化性體現(xiàn)在可裁剪/可替換的構件中。因此,構件必須具有足夠的靈活性以滿足體系結構定義的變化點構件開發(fā)同產(chǎn)品線相關的方面包括:計劃構件開發(fā)關鍵基礎設施、體系結構規(guī)則或模式、實現(xiàn)技術說明構件UML+OCL提供變化性支持Inheritance, Extension, Uses, Configuration, Parameters, Template instantiation, and Generation應用于核心資產(chǎn)開發(fā)構件和相關的制品(接口規(guī)范,“附屬”的過程,測試支持等)構成了核心資產(chǎn)庫的最大部分。相應的,構件開發(fā)是產(chǎn)品線核心資產(chǎn)開發(fā)最大的部分構件同軟件體系結構一起構成了開發(fā)

41、產(chǎn)品的概念基礎應用于產(chǎn)品開發(fā)構件是填充產(chǎn)品體系結構“骨架”的構造塊。特定產(chǎn)品的體系結構是通過綁定產(chǎn)品線體系結構的變化點實現(xiàn)的,變化的綁定是為了達到特定的產(chǎn)品屬性,例如實時效率、容錯等,這就有助于確定使用哪些構件,以及如何對這些構件的變化性進行實例化一個產(chǎn)品中的構件可以通過下述途徑獲得:直接來自核心資產(chǎn)庫固定內(nèi)在的變化性經(jīng)過修改和裁剪:adapter設計模式,繼承,Wrapper重新開發(fā)核心資產(chǎn)庫中構件的“附屬”過程描述了如何選擇和綁定變化性具體實踐特定的構件模型產(chǎn)品線體系結構應包括一個基本構件模型,用作實現(xiàn)的基礎CORBA (Common Object Request Broker Archi

42、tecture)DCOM (Distributed Common Object Model)JavaBeans實踐風險Decomposition flawsLack of conformance to specified interfaceInadequate specificationsWrong level of specificityExcessive inter-component dependencies實踐域4:COTS利用COTS產(chǎn)品獨立存在于特定的系統(tǒng),由商業(yè)組織為商業(yè)目的而開發(fā),COTS產(chǎn)品一般通過購買或許可證的方式獲得。在政府環(huán)境中,又稱為NDI (non-developm

43、ental items)產(chǎn)品在過去的10年中,中間件技術和標準的爆炸性增長使其在大型系統(tǒng)開發(fā)中普遍采用COTS產(chǎn)品的利用有以下特點:降低成本利用公共體系結構促進大規(guī)模復用失去對構件適應體系結構和構件演化的控制COTS產(chǎn)品的利用步驟COTS產(chǎn)品的利用一般需要以下的步驟:仔細分析體系結構,COTS構件和體系結構存在互動關系理解組織需求,某些組織有特定的技術約束或標準仔細研究市場,特別注意不斷發(fā)展的新技術、新標準和新構件以靈活的方式處理用戶需求,在需求和COTS之間需要折衷開發(fā)評價產(chǎn)品和技術的方法,包括評價步驟和評價策略選擇可行的產(chǎn)品和技術購買產(chǎn)品把COTS產(chǎn)品集成到體系結構中測試產(chǎn)品配置,即集成測

44、試以發(fā)展的觀點管理和演化系統(tǒng)產(chǎn)品線的特有之處同其它產(chǎn)品線構件一樣,COTS構件必須具有足夠的靈活性以適應產(chǎn)品線變化性的需要采用COTS構件時,必須考慮到產(chǎn)品維護和升級的周期同COTS構件周期的不一致COTS構件需要的新活動包括:鑒定潛在適用的COTS構件采用包裝器、中間件等對構件進行裁剪組裝經(jīng)過裁剪后的構件當新版本發(fā)布時,考慮對COTS構件進行升級應用于核心資產(chǎn)開發(fā)COTS產(chǎn)品是核心資產(chǎn)的可行選擇,現(xiàn)有的商業(yè)構件,包括數(shù)據(jù)庫、GUI、WWW瀏覽器、基于Java的產(chǎn)品和其它基于DCOM或 CORBA的中間件代表了資產(chǎn)基礎設施的重要部分選擇COTS構件作為核心資產(chǎn),需要考慮以下因素:COTS構件的

45、相對穩(wěn)定性接口、相關協(xié)議和標準COTS構件可能會對產(chǎn)品線需求和體系結構產(chǎn)生反作用應用于產(chǎn)品開發(fā)當一個產(chǎn)品的特有部分恰好可以由COTS構件完成時,沒有理由不考慮采用COTS構件這時需要考慮上述提到的各種活動,即鑒定潛在適用的COTS構件采用包裝器、中間件等對構件進行裁剪組裝經(jīng)過裁剪后的構件當新版本發(fā)布時,考慮對COTS構件進行升級具體實踐基于COTS的系統(tǒng)實踐COTS使用風險評估 (Cots Usage Risk Evaluation)實踐風險COTS構件之間交互的未知性對COTS產(chǎn)品的修改COTS構件的替換缺乏嚴格的配置管理缺乏適應性缺乏COTS產(chǎn)品的支持實踐域5:挖掘現(xiàn)有資產(chǎn)挖掘現(xiàn)有資產(chǎn)是指

46、對舊系統(tǒng)的一部分進行挖掘和改善,然后應用于原本并不支持的新系統(tǒng)中。不僅包含對代碼的重用,還包括對業(yè)務模型、規(guī)則庫(rule bases)、需求規(guī)格說明等要正確計算對遺留資產(chǎn)復用所需的成本由于資產(chǎn)挖掘時資源密集型的活動,所以小粒度的復用幾乎不可能產(chǎn)生任何經(jīng)濟效益產(chǎn)品線的特有之處為產(chǎn)品線挖掘的資產(chǎn)必須同新開發(fā)的核心資產(chǎn)有相同的質(zhì)量挖掘的資產(chǎn)必須被打包,同時要考慮到復用,必須滿足產(chǎn)品線的需求、必須與產(chǎn)品線體系結構保持一致、必須滿足產(chǎn)品線的質(zhì)量目標挖掘的資產(chǎn)必須滿足產(chǎn)品線中大多數(shù)產(chǎn)品的需求為軟件產(chǎn)品線挖掘資產(chǎn)要考慮到如下幾個方面在共性和變化點這兩個方面,與現(xiàn)有產(chǎn)品的一致性對未來潛在產(chǎn)品的適應性使資產(chǎn)接

47、口遵循產(chǎn)品線體系結構約束所需要的工作量從體系結構未來的演化發(fā)展對資產(chǎn)提出的潛在需求,考慮它的可擴展性資產(chǎn)的維護歷史應用于核心資產(chǎn)開發(fā)挖掘現(xiàn)有資產(chǎn)的過程主要是在為產(chǎn)品線尋找合適的候選對象具有良好結構和文檔,并且經(jīng)過長時間使用的資產(chǎn),可以直接或稍作修改就放入核心資產(chǎn)庫通過包裝能夠滿足新的交互性需求的資產(chǎn),也是需要的反之,是我們不需要的。如果包含進來,就需要長期高額的維護費用候選構件資產(chǎn)必須與產(chǎn)品線體系結構一致,必須滿足對該構件的行為需求,必須適應每一個變化點應用于產(chǎn)品開發(fā)可以用于產(chǎn)品開發(fā),但與非產(chǎn)品線情況下沒有任何區(qū)別對所挖掘的構件值得花較多時間考慮它是真的專用于某個產(chǎn)品,還是可廣泛應用于產(chǎn)品線中

48、其它產(chǎn)品,從而能更準確的確定修復(rehabilitation)成本具體實踐再工程的選擇分析(Options Analysis)建立挖掘上下文建立遺產(chǎn)構件庫分析候選構件分析挖掘選項選擇挖掘選項實踐風險(1/2)與挖掘相關的主要風險無法找到適用的資產(chǎn)選擇了錯誤的資產(chǎn)與挖掘活動相關的風險不成功的搜索過于成功的搜索標準模糊(Fuzzy criteria)沒有搜索出非軟件資產(chǎn)不合適的資產(chǎn)糟糕的修復(rehabilitation)評估實踐風險(2/2)導致挖掘風險的組織因素存儲空間不足(Lack of corporate memory)采用的方法不當缺少工具支持Turf conflict無法獲得開發(fā)所需

49、的資源實踐域6:需求工程(1/2)需求是對系統(tǒng)要做什么、系統(tǒng)如何工作、要表現(xiàn)出的性質(zhì)、系統(tǒng)必須具備的質(zhì)量以及系統(tǒng)及其開發(fā)必須滿足的約束等內(nèi)容的表述,包括:需求獲?。╮equirements elicitation)需求分析需求驗證需求管理涉及到的角色需求者(IEEE中定義的用戶)開發(fā)者(設計和實現(xiàn)系統(tǒng)的人)作者(編寫需求文檔的人)需求工程(2/2)角色之間的溝通對不同相關人員提出的需求之間潛在的矛盾進行決策需求的易變性導致需要一種管理變更的機制,即需求變更管理過程。這個過程的基礎是需求和系統(tǒng)產(chǎn)品之間的可跟蹤性(traceability links)以及需求和相關決策、折中之間的可跟蹤性需求者開

50、發(fā)者作者溝通產(chǎn)品線的特有之處產(chǎn)品線需求定義了產(chǎn)品線中的產(chǎn)品及其特性涵蓋整個產(chǎn)品線的共有需求是極其重要的核心資產(chǎn),必須與只針對產(chǎn)品某個子集(或者單個產(chǎn)品)的需求分開描述。只針對產(chǎn)品某個子集(或者單個產(chǎn)品)的需求同樣也需要維護和管理整個產(chǎn)品線的公共需求由很多變化點組成,這些變化點同樣也可以用來創(chuàng)建產(chǎn)品特有需求產(chǎn)品線范圍與產(chǎn)品線需求的關系針對產(chǎn)品線的需求工程和針對具體產(chǎn)品的需求工程的區(qū)別需求抽取需求分析需求規(guī)格說明需求驗證(verification)需求管理應用于核心資產(chǎn)的開發(fā)由需求工程生產(chǎn)的需求制品本身就是非常重要的核心資產(chǎn)。另外,產(chǎn)品線需求還有助于其他核心資產(chǎn)的開發(fā)和獲取。需求制品將有助于:確定

51、一條產(chǎn)品線的可行性,精化其范圍和業(yè)務用例(business case)為產(chǎn)品線體系結構奠定基礎確保其他核心資產(chǎn)支持預期的變化確定產(chǎn)品線和產(chǎn)品的進度和預算創(chuàng)建產(chǎn)品線中產(chǎn)品的測試用例以及其他測試制品產(chǎn)品線需求工程還有一個顯著特點是存在一個快速的早期設計,用來捕獲影響初始設計的高層需求應用于產(chǎn)品開發(fā) 需求工程在以下幾個方面起重要作用確定將某個產(chǎn)品作為產(chǎn)品線的一部分進行開發(fā)的可行性特定產(chǎn)品的開發(fā)、測試和部署由產(chǎn)品開發(fā)而導致的產(chǎn)品線演化具體實踐領域分析技術相關人員視圖 (stakeholder-view) 建模特征建模Use-case建模Change-case建模需求與相關工作產(chǎn)品的可跟蹤性實踐風險主要

52、風險在于在產(chǎn)品線的整個生命周期中不能正確地捕獲需求。文檔中包含錯誤的或不適當?shù)男枨螅瑳]有及時更新需求或者根本沒有對需求建檔錯誤的需求可能由以下原因造成:沒有正確區(qū)分產(chǎn)品線范圍的需求和產(chǎn)品特有的需求通用性不足通用性過度變化點不正確只考慮到行為而沒考慮到質(zhì)量實踐域7:軟件系統(tǒng)集成軟件系統(tǒng)集成是指將獨立的軟件構件組合成一個集成的整體集成受到構件接口定義的限制接口:構件生產(chǎn)者對其他構件所能做的一系列安全的假設產(chǎn)品線的特有之處軟件的系統(tǒng)集成出現(xiàn)在將核心資產(chǎn)安裝到核心資產(chǎn)庫和構建單個產(chǎn)品的過程中集成所需要做的工作量在產(chǎn)品線的軟件系統(tǒng)集成中,集成成本被分攤到眾多產(chǎn)品中去“持續(xù)集成”(continuously

53、 integration)幾乎為0每個產(chǎn)品都完全由核心資產(chǎn)組成,不存在針對特定產(chǎn)品的代碼非常大需要相當多的編碼工作把需要的核心構件集成為一個內(nèi)聚的整體0considerable大多數(shù)產(chǎn)品線位于中間某一點應用于核心資產(chǎn)開發(fā)采購和挖掘核心資產(chǎn)的過程中,一定要考慮到集成的因素。盡量不要單純使用自然語言,還要使用一種機器可檢查的形式來描述要評估所挖掘和采購的構件的可集成性和粒度應用于產(chǎn)品開發(fā)產(chǎn)品線的一個好處在于,對產(chǎn)品線中的每個后續(xù)產(chǎn)品,軟件的系統(tǒng)集成成本呈下降趨勢任何情況下,必須根據(jù)與定義的、經(jīng)過測試的計劃來進行集成具體實踐接口語言封裝中間件系統(tǒng)生成FAST生成器實踐風險自然語言描述的接口文檔構件粒

54、度不夠大對變化的支持太大太復雜實踐域8:測試(1/2)測試的兩個基本目的在開發(fā)過程中,測試用于幫助開發(fā)人員識別導致失敗的錯誤,進而對其修復。測試用于確定一個產(chǎn)品是否滿足其需求。測試包括以下三個基本活動分析構造執(zhí)行和評價測試要遵循以下幾個原則測試是客觀的測試是系統(tǒng)化的測試是完整(thorough)的測試是開發(fā)過程中不可或缺的一部分測試(2/2)下面幾點是我們討論測試的基礎分析和設計模型確認(validation)單元測試子系統(tǒng)集成測試系統(tǒng)集成測試回歸測試適應性測試驗收(acceptance)測試部署測試可靠性模型(reliability models)產(chǎn)品線的特有之處在產(chǎn)品線組織中的測試對象必須

55、包括核心軟件資產(chǎn)、具體軟件產(chǎn)品,以及它們之間的交互與單個系統(tǒng)開發(fā)不同,測試的職責分布在組織的不同部分。另一個不同點是測試是一個可以在很多產(chǎn)品中復用的活動指導方針為復用構造測試軟件的結構產(chǎn)品線體系結構提供對測試的支持為了系統(tǒng)集成測試復用資產(chǎn)采用回歸測試保持對驗收(acceptance)測試的跟蹤應用于核心資產(chǎn)開發(fā)(1/2)以兩種方式應用于核心資產(chǎn)開發(fā)測試本身就是可復用的核心資產(chǎn),包括:文檔測試數(shù)據(jù)集測試軟件測試其他核心資產(chǎn)測試非軟件的核心資產(chǎn)測試軟件核心資產(chǎn)應用于核心資產(chǎn)開發(fā)(2/2)界面規(guī)格說明結構測試套件規(guī)格說明的實現(xiàn)結構測試套件多種實現(xiàn)導致多種測試套件(suite)應用于產(chǎn)品開發(fā)以兩種基本

56、方式應用于產(chǎn)品開發(fā)驗證(verification)確認(validation)具體實踐對分析和模型評審(review)而言,指導性審查包括審查檢查表和測試。審查過程由測試用例引導實踐風險主要風險是測試不充分,以及沒有采用能帶來高回報的方式。包括:不充分的單元測試工具支持的不足導致的不充分的單元測試不充分的規(guī)格說明不充分的集成測試不充分的測試基礎設施實踐域9:理解相關領域必要性應履行以下職責標識出對建造當前(或未來)產(chǎn)品有用的專業(yè)領域標識出領域內(nèi)重復出現(xiàn)的問題及已知的解決方案使用便于相關人員交流的方式獲取和表達這些信息,在整個過程中使用和重用這些信息對相關領域的一個正式分析的范圍依賴于組織的領域

57、經(jīng)驗的深度能夠用于分析的資源數(shù)量當組織成功應用如下幾點時,表明它已充分理解了產(chǎn)品相關領域能夠推理出一個要進行的設計所蘊含的技術和業(yè)務要求決定所要生產(chǎn)的產(chǎn)品應具有什么樣的特性、能力以及需要的技術生產(chǎn)一組使用了相關領域知識的制品產(chǎn)品線的特有之處理解相關領域是理解產(chǎn)品線范圍內(nèi)所定義產(chǎn)品的共性和變化性的第一步不同于單個產(chǎn)品,產(chǎn)品線開發(fā)強調(diào)獲取和描述覆蓋多領域的多個系統(tǒng)的共性和變化性。產(chǎn)品線的領域模型將明確識別領域中的共性和變化性,而單個系統(tǒng)的領域模型可能不會這樣領域模型尤其有助于判別:哪些功能(capability)會成為領域中各系統(tǒng)的共性以及有哪些變化點哪些功能的子集會被打包并作為產(chǎn)品線的資產(chǎn)領域中

58、的系統(tǒng)要受到哪些約束(如標準、法律約束、業(yè)務限制、特定硬件平臺)哪些資產(chǎn)構成典型的領域成員是否繼續(xù)產(chǎn)品線的開發(fā)應用于核心資產(chǎn)開發(fā)為產(chǎn)品線生命周期中早期整個產(chǎn)品線中可實現(xiàn)大力度軟件復用的機會進行標識和建模還支持產(chǎn)品線的業(yè)務用例(business case),以及“確定范圍(scoping)”和“需求工程”實踐域應用于產(chǎn)品開發(fā)消費者兌現(xiàn)產(chǎn)品或現(xiàn)有產(chǎn)品新功能(capability)的需求導致業(yè)務決策。這些決策可以也應該受到領域理解的支持。最簡單的情況是所要求的功能已作為核心資產(chǎn)開發(fā)的一部分完成了建模和分析否則,就要根據(jù)該需求對產(chǎn)品線的影響作出決策新產(chǎn)品或新功能是作為特定消費者的一次性解決方案來開發(fā)嗎

59、?考慮到將來復用的可能性,是否把所要求的新功能加入到產(chǎn)品線中。對相關領域的理解有助于對這些問題的判定具體實踐主要的實踐是找到相關領域中的資深人員。提取和表達相關領域信息的實踐具體體現(xiàn)在以下分析過程中:范圍、共性和變化性分析領域分析和設計過程面向特征的領域分析復用驅(qū)動的軟件過程方法的合成過程 (synthesis process of the reuse-driven software process approach)組織領域建模的領域分析過程實踐風險分析癱瘓(analysis paralysis)缺少必須的領域?qū)<椅臋n和相關領域信息的共享不充分缺乏對分析過程的理解缺乏適當?shù)墓ぞ咧С诸I域分析過

60、程和領域產(chǎn)品缺少管理委員會技術管理實踐域技術管理實踐是指那些對核心資產(chǎn)和產(chǎn)品的創(chuàng)建及其演化進行設計和工程化所必須的管理實踐技術管理中的實踐域包括8項:配置管理數(shù)據(jù)收集、度量(metrics)和跟蹤開發(fā)/購買/挖掘/委托分析過程定義確定范圍技術規(guī)劃(Technical Planning)技術風險管理工具支持實踐域1:配置管理(1/2)配置管理是對制品的變化進行評估、調(diào)整、審批以及實現(xiàn)的一種規(guī)范,這些制品用來構造和維護軟件系統(tǒng)軟件配置管理的目的是在項目的軟件生命周期中建立和維護軟件項目中產(chǎn)品的完整性軟件配置管理包括識別軟件項目中的配置項、控制這些配置項及其變更,并且記錄和報告這些配置項的狀態(tài)及其變

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論