基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用論文_第1頁
基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用論文_第2頁
基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用論文_第3頁
基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用論文_第4頁
基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用論文_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、碩士學(xué)位論文基于產(chǎn)品線的軟件開發(fā)技術(shù)研究與應(yīng)用摘要隨著軟件技術(shù)的不斷發(fā)展,軟件重用成為提高軟件生產(chǎn)效率的一個(gè)核心問題。就目前來看,不管是面向結(jié)構(gòu)還是面向?qū)ο蟮闹赜枚际菍儆谛×6鹊脑创a級(jí)重用,而構(gòu)件技術(shù)的出現(xiàn)雖然實(shí)現(xiàn)了軟件重用的大粒度,但是構(gòu)件模型在系統(tǒng)需要一種基于領(lǐng)域的大規(guī)模軟件重用的開發(fā)活動(dòng)中不能起到很好的效果。基于此,軟件產(chǎn)品線應(yīng)運(yùn)而生,軟件產(chǎn)品線工程不僅能夠降低開發(fā)成本還可以大大縮短產(chǎn)品上市時(shí)間,極改善了軟件開發(fā)過程。在軟件復(fù)用方面達(dá)到了空前未有的高水平。本課題根據(jù)軟件產(chǎn)品線技術(shù)的研究現(xiàn)狀,分析軟件產(chǎn)品線的優(yōu)勢(shì)、生命周期、難點(diǎn)與誤區(qū)。在此基礎(chǔ)上做成一個(gè)產(chǎn)品線模型做成工具。該工具的開發(fā)過

2、程以產(chǎn)品線作為指導(dǎo)思想,以方便快捷的做成產(chǎn)品線模型為目標(biāo)。做成后被作為核心資產(chǎn)在產(chǎn)品線的持續(xù)開發(fā)中起到至關(guān)重要的作用。之后該工具應(yīng)用在自動(dòng)售貨機(jī)電機(jī)部分軟件系統(tǒng)的開發(fā)上,做成了電機(jī)部分的平臺(tái)無關(guān)模型。目標(biāo)主要是為了驗(yàn)證模型做成工具作為核心資產(chǎn),在產(chǎn)品線的持續(xù)開發(fā)中起到的關(guān)鍵作用,為產(chǎn)品線的開發(fā)打下堅(jiān)實(shí)基礎(chǔ)。關(guān)鍵詞:產(chǎn)品線技術(shù),產(chǎn)品線模型做成工具,自動(dòng)售貨機(jī)41 / 48AbstractWith the continuous development of software technology, software reuse has become a core issue to improve

3、the production efficiency of software problems. From the current point of view, whether it is structure-oriented or object-oriented reuses belong to the source code-level reuse in small granularity. Although the emergence of component technology to achieve the software reuse in large granularity, th

4、e component model cant play a good effect when the system requiresa development activity based on the field of large-scale software reuse. As a result, software product line arises at the historic moment.The engineering of software product line can not only reduce the development costs, greatly shor

5、ten the product time to market, but also optimize the process of software development. In the aspect of software reuse has reached the unprecedented high level as well. According to the current research status of software product line technology, this topic analyzesthe advantages, life cycle, diffic

6、ulties and misunderstandings of software product line, and makes a product line modeling tool on this basis. The development process of the tool regards product line as the guiding ideology, in order to make product line model in a convenient and efficient way for the target. After being made, the p

7、roducts play a crucial role in the continuous developmentas the core assets in line.Then, the application in the automatic vending machine on the part of the software system development used by the tool, and made it to the platform independent model of motor parts successfully. The main goal is to v

8、erify the model which made tool as the core asset plays a significantpart in the product line of continuous development, and lay a solid foundation for the development of product line at the same time.Key Words: Product line technology, Product line modeling tool, Vendingmachine目錄摘要iAbstractii圖目錄III

9、表目錄IV第1章緒論11.1 引言11.1 論文研究背景與意義11.2 產(chǎn)品線技術(shù)國外研究現(xiàn)狀21.3 論文的研究容與組織結(jié)構(gòu)31.4 本章小結(jié)4第2章軟件產(chǎn)品線技術(shù)相關(guān)研究現(xiàn)狀52.1 軟件產(chǎn)品線基本理論52.2 核心資產(chǎn)開發(fā)的定義62.2.1 什么是產(chǎn)品開發(fā)72.2.2 管理的作用82.3 軟件產(chǎn)品線的實(shí)踐域82.4 軟件產(chǎn)品線的優(yōu)勢(shì)92.5 本章小結(jié)12第3章軟件產(chǎn)品線技術(shù)實(shí)現(xiàn)與應(yīng)用難點(diǎn)分析133.1 產(chǎn)品線方法實(shí)現(xiàn)的基本原則133.2 產(chǎn)品線方法的生命周期143.3 產(chǎn)品線方法的開發(fā)特點(diǎn)163.4 產(chǎn)品線方法開發(fā)的誤區(qū)與難點(diǎn)163.5 本章小結(jié)17第4章產(chǎn)品線模型做成工具的設(shè)計(jì)與實(shí)現(xiàn)1

10、84.1 概要184.2 邏輯機(jī)能194.2.1 PLSE項(xiàng)目構(gòu)成194.2.2 打開PLSE項(xiàng)目204.2.3 關(guān)閉PLSE項(xiàng)目224.3 畫面操作機(jī)能234.3.1 通常EA項(xiàng)目的場(chǎng)合234.3.2 PLSE項(xiàng)目的場(chǎng)合244.4 領(lǐng)域分析機(jī)能254.4.1 特性要素264.4.2狀態(tài)遷移圖的做成264.4.3 順序圖的做成274.5 需求分析機(jī)能274.5.1 特性要素刪除機(jī)能274.5.2 PSM模式檢查機(jī)能284.6 EA API一覽284.7 Add In在產(chǎn)品線開發(fā)中的作用294.8 本章小結(jié)30第5章產(chǎn)品線技術(shù)在自動(dòng)售貨機(jī)軟件開發(fā)中的應(yīng)用315.1 自動(dòng)售貨機(jī)軟件系統(tǒng)概述315.

11、2 產(chǎn)品線技術(shù)應(yīng)用在自動(dòng)售貨機(jī)系統(tǒng)的提出325.3 電機(jī)部分的設(shè)計(jì)與組織335.4 電機(jī)部分的領(lǐng)域工程模型做成345.5 電機(jī)部分的應(yīng)用工程模型做成355.6 本章小結(jié)39第6章本文工作總結(jié)與展望406.1 本文工作總結(jié)406.2 進(jìn)一步的研究與展望40參考文獻(xiàn)42作者簡(jiǎn)歷44致45圖目錄圖 2.1軟件產(chǎn)品線的三大基本活動(dòng)5圖 2.2軟件產(chǎn)品線核心資產(chǎn)開發(fā)過程6圖 2.3軟件產(chǎn)品線產(chǎn)品開發(fā)過程7圖 2.4軟件產(chǎn)品線的重用10圖 2.5產(chǎn)品線的經(jīng)濟(jì)走線圖11圖 3.1產(chǎn)品線雙生命周期14圖 3.2產(chǎn)品線方法生命周期15圖 4.1PLSE項(xiàng)目結(jié)構(gòu)圖20圖 4.2模式選擇功能流程圖21圖 4.3 P

12、LSE項(xiàng)目構(gòu)造檢查流程圖22圖 4.4核心資產(chǎn)設(shè)定確認(rèn)畫面22圖 4.5核心情報(bào)設(shè)定畫面23圖 4.6 PLSE項(xiàng)目Add In 菜單24圖 4.7特性元素追加畫面26圖 4.8狀態(tài)遷移圖追加畫面27圖 4.9順序圖追加畫面27圖 4.10特性圖畫面28圖 5.1自動(dòng)售貨機(jī)系統(tǒng)結(jié)構(gòu)圖31圖5.2 模擬平臺(tái)34圖5.3 自動(dòng)售貨機(jī)電機(jī)部分特性圖35圖5.4 電機(jī)狀態(tài)表示類的狀態(tài)遷移圖35圖5.5 狀態(tài)遷移圖的代碼實(shí)現(xiàn)36圖5.6電機(jī)類的狀態(tài)遷移圖37圖5.7電機(jī)狀態(tài)表示類和電機(jī)狀態(tài)類的順序圖38圖5.8 順序圖代碼實(shí)現(xiàn)39表目錄表 2.1軟件產(chǎn)品線的29個(gè)實(shí)踐域9表 4.1開發(fā)環(huán)境和動(dòng)作環(huán)境18

13、表 4.2各選項(xiàng)初始狀態(tài)23表 4.3領(lǐng)域分析模式子菜單初始狀態(tài)24表 4.4需求分析模式子菜單初始狀態(tài)25表 4.5 EA API一覽29表 5.1電機(jī)部分需求分析表33第1章 緒論1.1 引言近年來,軟件技術(shù)不斷的發(fā)展,重用慢慢成為提高軟件生產(chǎn)效率的一個(gè)最為核心的問題。重用技術(shù)不僅可以減少軟件開發(fā)活動(dòng)量重復(fù)的工作,還能大大的提高軟件生產(chǎn)率。降低開發(fā)成本的同時(shí),縮短開發(fā)周期。1軟件的架構(gòu)都需要經(jīng)過嚴(yán)格的品質(zhì)和質(zhì)量的認(rèn)證,并要求在實(shí)際運(yùn)行環(huán)境中得到校驗(yàn)。所以,軟件的重用能夠大大的改善軟件質(zhì)量的同時(shí),軟件開發(fā)的靈活性和軟件過程的標(biāo)準(zhǔn)化程度也能夠到顯著提高。就目前的軟件重用技術(shù)看來,不管是面向結(jié)構(gòu)

14、編程的函數(shù)重用還是面向過程和面向?qū)ο缶幊讨械念惡蛯?duì)象的重用,這些重用技術(shù)都能在目前的軟件開發(fā)活動(dòng)中得到大量的應(yīng)用,但是不能否認(rèn)這些重用方法都是在源代碼的基礎(chǔ)上進(jìn)行小粒度的重用,那就意味著這些重用有時(shí)可能只局限在某一個(gè)特定平臺(tái),不得不說這些重用對(duì)象的適用圍很小。在此之后有了構(gòu)件技術(shù),改變了小粒度的源代碼級(jí)重用的情況,實(shí)現(xiàn)重用的粒度大。但是構(gòu)件模型在解決一些特定領(lǐng)域的系列產(chǎn)品開發(fā)活動(dòng)中卻沒有能起到很好的效果。基于此,軟件產(chǎn)品線的出現(xiàn),完成系統(tǒng)需要一種基于領(lǐng)域的大規(guī)模軟件重用。軟件產(chǎn)品線工程對(duì)于開發(fā)成本和產(chǎn)品上市周期等方面都有著極改善意義,使在軟件復(fù)用方面達(dá)到了空前未有的高水平。21.1 論文研究背

15、景與意義隨著軟件應(yīng)用的普與,企業(yè)對(duì)軟件也越來越重視,不斷的要求采用軟件提高效率,提升技能增強(qiáng)企業(yè)競(jìng)爭(zhēng)力。隨著客戶的增多,軟件企業(yè)這時(shí)需要面對(duì)更多的客戶,處理共性和個(gè)性問題。軟件產(chǎn)品線在一個(gè)機(jī)構(gòu)的提供實(shí)現(xiàn)方法,用來實(shí)現(xiàn)軟件的復(fù)用,軟件資產(chǎn)的復(fù)用能夠提高軟件復(fù)用度、軟件質(zhì)量和提升開發(fā)速度并降低開發(fā)成本、維護(hù)成本。通常的軟件產(chǎn)品線技術(shù)的軟件開發(fā)包括兩個(gè)過程,首先是建立一個(gè)特定領(lǐng)域的公共的核心資產(chǎn)集,其次將核心資產(chǎn)集作為基礎(chǔ),用來滿足客戶所提出的需求,實(shí)現(xiàn)多項(xiàng)軟件產(chǎn)品。那么在軟件開發(fā)中,保證低成本的高質(zhì)量軟件產(chǎn)品開發(fā),做到快速上市等要求就成為了軟件企業(yè)競(jìng)爭(zhēng)力的主要表現(xiàn)之一,而產(chǎn)品線工程方法就是能夠支持

16、這種大粒度、大圍的重用。產(chǎn)品線區(qū)別于傳統(tǒng)的代碼重用最大的特點(diǎn)就是在代碼、需求和業(yè)務(wù)實(shí)現(xiàn)都能大量的重用。本課題將基于對(duì)軟件產(chǎn)品線的研究,提出一種產(chǎn)品線的模型做成工具,并做成自動(dòng)售貨機(jī)電機(jī)部分軟件的平臺(tái)無關(guān)模型。將自動(dòng)售貨機(jī)的電機(jī)系統(tǒng)軟件的各項(xiàng)關(guān)注點(diǎn)進(jìn)行全面的分離,并建立與之相對(duì)應(yīng)的平臺(tái)無關(guān)模型。主要是為了能夠?qū)㈦姍C(jī)模塊部分的模型做成該條產(chǎn)品線的核心資產(chǎn),在以后的持續(xù)開發(fā)中起到關(guān)鍵作用,為產(chǎn)品線的開發(fā)打下堅(jiān)實(shí)基礎(chǔ)。1.2 產(chǎn)品線技術(shù)國外研究現(xiàn)狀產(chǎn)品線(Product Line)的概念是由卡耐基-梅隆大學(xué)的軟件工程研究所(SEI)提出的。軟件產(chǎn)品線能夠提供在一個(gè)特定平臺(tái)即一個(gè)機(jī)構(gòu)部的實(shí)現(xiàn)軟件復(fù)用的方

17、法,軟件資產(chǎn)的復(fù)用,提高軟件復(fù)用度、軟件質(zhì)量,縮短開發(fā)周期并降低開發(fā)與維護(hù)成本。但是產(chǎn)品線的開發(fā)方式不僅需要強(qiáng)大的人力和物力支持,而且前期的開發(fā)耗時(shí)較長、成本高。3目前中國的軟件公司的平均規(guī)模都算是比較小的,但是項(xiàng)目的競(jìng)爭(zhēng)卻非常激烈,同時(shí)客戶要求的工期一般都比較緊,以上的這些因素都導(dǎo)致了目前基于產(chǎn)品線思想的軟件開發(fā)在中國的軟件開發(fā)還是比較少的。到目前為止,軟件業(yè)界從事產(chǎn)品線研究并且將其應(yīng)用于軟件生產(chǎn)領(lǐng)域的公司主要有東軟集團(tuán)和北大青鳥。東軟自主研發(fā)的UniEAP業(yè)務(wù)基礎(chǔ)平臺(tái)產(chǎn)品,就是一款面向軟件產(chǎn)品線開發(fā)模式的業(yè)務(wù)基礎(chǔ)平臺(tái),UniEAP充分的體現(xiàn)了面向軟件產(chǎn)品線的開發(fā)模式的優(yōu)勢(shì)。UniEAP是由

18、開發(fā)框架、公共構(gòu)件和方法學(xué)三個(gè)部分組成的。同時(shí)通過多層次、結(jié)構(gòu)化的基礎(chǔ)架構(gòu)、組件與相關(guān)開發(fā)工具,用于支撐應(yīng)用軟件快速構(gòu)造、支撐業(yè)務(wù)開發(fā)的全面解決方案。該解決方案的目標(biāo)是使應(yīng)用軟件的設(shè)計(jì)與開發(fā)人員能夠通過復(fù)用和重載的手段,快速的完成應(yīng)用軟件的構(gòu)造。當(dāng)用戶的需求發(fā)生變化時(shí),可以將對(duì)開發(fā)的影響降至最低,最終達(dá)到并滿足用戶需求。國大學(xué)在青鳥工程中引入了軟件產(chǎn)品線的概念和思想,實(shí)現(xiàn)了一個(gè)支持可復(fù)用構(gòu)件來描述、管理、存儲(chǔ)和檢索的構(gòu)件庫。將軟件的生產(chǎn)車間和基于構(gòu)件、體系結(jié)構(gòu)復(fù)用的應(yīng)用集成車間,將軟件開發(fā)人員劃分為構(gòu)件生產(chǎn)者、構(gòu)件庫管理者和構(gòu)件復(fù)用者,從而形成軟件產(chǎn)業(yè)部的合理分工,實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。以此來

19、實(shí)現(xiàn)產(chǎn)品線技術(shù)的優(yōu)勢(shì)。1.3 論文的研究容與組織結(jié)構(gòu)本文主要針對(duì)本人工作所在公司的研究型項(xiàng)目,產(chǎn)品線技術(shù)開發(fā)Product Line Software Engine(以下簡(jiǎn)稱PLSE)?;趯?duì)產(chǎn)品線技術(shù)的研究,而開發(fā)的一個(gè)名叫的PLSE Support Add In(以下簡(jiǎn)稱 Add In)的產(chǎn)品線模型做成工具。該工具是以產(chǎn)品線作為指導(dǎo)思想,以方便快捷的做成產(chǎn)品線模型為目標(biāo)而開發(fā)工具,做成之后將作為核心資產(chǎn)在該條產(chǎn)品線的持續(xù)開發(fā)中起到至關(guān)重要的作用。根據(jù)論文的主要研究容,本文的組織結(jié)構(gòu)如下:第一章闡明論文的研究背景與意義以與產(chǎn)品線技術(shù)在國外的研究現(xiàn)狀,最后介紹論文的研究容和組織結(jié)構(gòu)。第二章主要

20、介紹軟件產(chǎn)品線技術(shù)的基本理論,核心資產(chǎn)以與產(chǎn)品開發(fā)的定義、目的與原則,以與管理的作用。其次,介紹了產(chǎn)品線技術(shù)的主要實(shí)踐域。最后,通過對(duì)產(chǎn)品線技術(shù)的相關(guān)概念的理解,對(duì)產(chǎn)品線的優(yōu)勢(shì)做了分析與總結(jié)。第三章主要介紹了產(chǎn)品線方法實(shí)現(xiàn)的基本原則與其類型,并且著重介紹了領(lǐng)域分析和需求分析的作用。其次通過分析產(chǎn)品線開發(fā)的生命周期,說明領(lǐng)域分析和需求分析之間的相互關(guān)系,最后著重分析介紹了軟件產(chǎn)品線開發(fā)的難點(diǎn)與誤區(qū)。第四章的重點(diǎn)為產(chǎn)品線模型做成工具的設(shè)計(jì)與實(shí)現(xiàn)。首先介紹了產(chǎn)品線模型做成工具的整體設(shè)計(jì)思路與原則,其次在了解了產(chǎn)品線技術(shù)相關(guān)知識(shí)的基礎(chǔ)上,對(duì)產(chǎn)品線模型做成工具需要實(shí)現(xiàn)的功能進(jìn)行了分析,表明其在產(chǎn)品線開發(fā)

21、中的重要作用與地位。第五章的重點(diǎn)在于產(chǎn)品線技術(shù)在自動(dòng)售貨機(jī)電機(jī)軟件開發(fā)的應(yīng)用。首先根據(jù)自動(dòng)售貨機(jī)電機(jī)部分軟件的需要實(shí)現(xiàn)的功能,介紹了電機(jī)部分軟件的設(shè)計(jì)和組織的方法,并將產(chǎn)品線模型做成工具為開發(fā)工具,做成了電機(jī)部分的平臺(tái)無關(guān)模型。用來表明產(chǎn)品線模型做成工具實(shí)際的產(chǎn)品線開發(fā)中確實(shí)的作用。第六章對(duì)全文進(jìn)行總結(jié),指出產(chǎn)品線開發(fā)中有待于進(jìn)一步改進(jìn)的地方以與對(duì)今后的工作進(jìn)行展望。1.4 本章小結(jié)本章首先介紹了論文的研究背景與意義,其次對(duì)于產(chǎn)品線技術(shù)在國外的發(fā)展情況進(jìn)行研究,最后闡述了本論文的主要研究容以與各個(gè)章節(jié)的組織與分布。第2章 軟件產(chǎn)品線技術(shù)相關(guān)研究現(xiàn)狀2.1 軟件產(chǎn)品線基本理論早期,卡耐基.梅隆大

22、學(xué)軟件工程研究所將軟件產(chǎn)品線定義為具有一組可管理的公共特性的軟件密集性系統(tǒng)的集合。這些系統(tǒng)滿足特定的市場(chǎng)需求或任務(wù)需求并且按預(yù)定義的方式使用一組公共的核心資產(chǎn)構(gòu)建而成。4軟件產(chǎn)品線包含了三大基本活動(dòng)。他們分別是核心資產(chǎn)開發(fā)(Core Asset Development)、產(chǎn)品開發(fā)(Product Development)與技術(shù)組織管理(Management)。產(chǎn)品線技術(shù)的三大基本活動(dòng)之間存在緊密的聯(lián)系,彼此之間不可分割,我們用圖2.1來顯示了這三大基本活動(dòng)的聯(lián)系,將核心資產(chǎn)開發(fā)、產(chǎn)品開發(fā)和技術(shù)組織管理連接在一起。持續(xù)運(yùn)作的同時(shí),要求反復(fù)的循環(huán)。為了能夠?qū)⒑诵馁Y產(chǎn)作用于開發(fā)產(chǎn)品,并且產(chǎn)品開發(fā)的過

23、程還能反過來促進(jìn)核心資產(chǎn)版本的更新和新資產(chǎn)數(shù)量的增加。那么理所當(dāng)然的,在圖中我們可以看到核心資產(chǎn)與產(chǎn)品開發(fā)之間存在著一種非常強(qiáng)勢(shì)的反饋循環(huán)。核心資產(chǎn)被用到產(chǎn)品開發(fā)過程時(shí),其價(jià)值被體現(xiàn),使用情況被反饋到資產(chǎn)開發(fā)活動(dòng)的同時(shí)反饋給核心資產(chǎn)。在這種反復(fù)的循環(huán)當(dāng)中,達(dá)到核心資產(chǎn)隨著新產(chǎn)品的開發(fā)而更新的目的;同時(shí)核心資產(chǎn)庫,通過對(duì)未來產(chǎn)品需求的開發(fā),使核心資產(chǎn)更為通用。這樣的迭代操作,使產(chǎn)品線的運(yùn)行需要持久的、強(qiáng)有力的、有遠(yuǎn)見的管理。圖 2.1軟件產(chǎn)品線的三大基本活動(dòng)2.2 核心資產(chǎn)開發(fā)的定義核心資產(chǎn)開發(fā)在產(chǎn)品線方法中的目標(biāo)是建立并保證產(chǎn)品的生產(chǎn)能力,核心資產(chǎn)是產(chǎn)品線方法中軟件產(chǎn)品做成的基礎(chǔ),地位至關(guān)重要

24、。在開發(fā)中利用什么得到核心資產(chǎn),得到的核型資產(chǎn)又被用于什么呢?用圖2.2描述了核心資產(chǎn)開發(fā)的輸入和輸出又分別是什么。其中輸入由以下四項(xiàng)組成:(1) 產(chǎn)品約束:包括各個(gè)產(chǎn)品之間的一樣點(diǎn)和差異,產(chǎn)品遵循的標(biāo)準(zhǔn)包含的外部系統(tǒng)有哪些接口,以與必須滿足的質(zhì)量屬性。(2) 生產(chǎn)約束:包括上市時(shí)間要求,產(chǎn)品開發(fā)中需要遵守的企業(yè)特定的標(biāo)準(zhǔn),構(gòu)建產(chǎn)品由誰來擔(dān)當(dāng),生產(chǎn)環(huán)境是否投入開發(fā)環(huán)境,以與核心資產(chǎn)提供的什么樣的變量管理方式方法。(3) 生產(chǎn)策略:這一方法是實(shí)現(xiàn)核心資產(chǎn)的總體方法。是從核心資產(chǎn)開始到產(chǎn)品導(dǎo)出的自頂向下的方式,還是從一系列產(chǎn)品開發(fā)出發(fā)到抽取核心資產(chǎn)的自底向上的方式。通用組件是通過部生產(chǎn),還是購買,

25、產(chǎn)品是否需要裝配或是通過核心資產(chǎn)自動(dòng)生產(chǎn)。(4) 現(xiàn)有資產(chǎn)清單:遺留的系統(tǒng)都有可能成為資產(chǎn)庫組件的重要候選者。圖 2.2軟件產(chǎn)品線核心資產(chǎn)開發(fā)過程根據(jù)輸入端的產(chǎn)品約束、框架、生產(chǎn)約束、生產(chǎn)策略和遺留資產(chǎn)清單,核心資產(chǎn)開發(fā)活動(dòng)產(chǎn)出三項(xiàng)輸出:(1) 產(chǎn)品線圍(Product Line Scope):產(chǎn)品線圍用來描述產(chǎn)品線所能包括的產(chǎn)品。描述中需要列舉出所有產(chǎn)品的共性和差異。如產(chǎn)品所特征和具體的操作、產(chǎn)品所應(yīng)該表現(xiàn)出的性能和其它品質(zhì)屬性等。(2) 核心資產(chǎn)(Core Assets):核心資產(chǎn)是產(chǎn)品線中產(chǎn)品生產(chǎn)的基礎(chǔ)。包括構(gòu)架、可重用軟件組件、領(lǐng)域模型、需求、文檔、測(cè)試用例、工作計(jì)劃和過程描述等都屬于

26、核心資產(chǎn)的疇,其中構(gòu)架是核心資產(chǎn)集合中的關(guān)鍵。5每種核心資產(chǎn)都應(yīng)和一個(gè)附屬過程相關(guān)聯(lián),以指出它將如何被應(yīng)用到實(shí)際產(chǎn)品的開發(fā)中。這個(gè)過程一般包括:基線需利用產(chǎn)品線的共性需求得到;變化的需求通過利用產(chǎn)品線的擴(kuò)展功能實(shí)現(xiàn);添加產(chǎn)品線需求之外的任何需求的方法;構(gòu)架所支持的變化和擴(kuò)展的確認(rèn);產(chǎn)品線中產(chǎn)品生產(chǎn)的基礎(chǔ)是核心資產(chǎn)。(3) 生產(chǎn)計(jì)劃(Production Plan):生產(chǎn)計(jì)劃描述了如何從核心資產(chǎn)中生產(chǎn)產(chǎn)品。每種核心資產(chǎn)都有一個(gè)附屬過程,其中定義了如何將其運(yùn)用到產(chǎn)品開發(fā)中。生產(chǎn)計(jì)劃描述了一個(gè)整體方案,說明如何將這些單個(gè)的過程裝配在一起構(gòu)建產(chǎn)品。第2章2.12.22.2.1 什么是產(chǎn)品開發(fā)成熟的產(chǎn)品

27、線組織優(yōu)先考慮整個(gè)產(chǎn)品線而不是個(gè)別產(chǎn)品的健壯性,但是生產(chǎn)最終產(chǎn)品的活動(dòng)才是產(chǎn)品線的最終目標(biāo)。產(chǎn)品開發(fā)活動(dòng)依賴于核心資產(chǎn)開發(fā)的三個(gè)輸出以與目標(biāo)產(chǎn)品的個(gè)性化需求。圖3描述了這些關(guān)系。圖 2.3軟件產(chǎn)品線產(chǎn)品開發(fā)過程從根本上講,軟件產(chǎn)品線就是一組相關(guān)產(chǎn)品,但是它們?nèi)绾未嬖趨s取決于具體的資產(chǎn)、生產(chǎn)計(jì)劃和組織環(huán)境,并且其產(chǎn)品生產(chǎn)過程通常不是線性的,產(chǎn)品的創(chuàng)建對(duì)產(chǎn)品線的圍、核心資產(chǎn)、生產(chǎn)計(jì)劃,甚至對(duì)特定的產(chǎn)品需求都會(huì)產(chǎn)生強(qiáng)烈的反饋?zhàn)饔谩?2.2.2 管理的作用管理在在軟件產(chǎn)品線技術(shù)開發(fā)中是至關(guān)重要的。軟件開發(fā)活動(dòng)必須有指定的資源、協(xié)調(diào)和監(jiān)督,而管理則是在技術(shù)和組織上為軟件產(chǎn)品線服務(wù)的。技術(shù)管理負(fù)責(zé)對(duì)核心資

28、產(chǎn)和產(chǎn)品的開發(fā)活動(dòng)進(jìn)行監(jiān)視,這樣的工作方式能夠最大限度的保證各開發(fā)組成員都在從事所要求的活動(dòng)、遵循產(chǎn)品線所定義的過程,并收集足夠的數(shù)據(jù),實(shí)時(shí)的跟蹤進(jìn)度。而組織管理必須建立起適當(dāng)?shù)慕M織結(jié)構(gòu),并確保各組織單元得到足夠的適當(dāng)資源。72.3 軟件產(chǎn)品線的實(shí)踐域軟件產(chǎn)品線有一個(gè)特點(diǎn),既可以稱之為優(yōu)點(diǎn)又可以稱為缺點(diǎn),那就是面向一種特定業(yè)務(wù)領(lǐng)域或系統(tǒng)化的開發(fā)方式。只有在這一基礎(chǔ)上,軟件產(chǎn)品線才能實(shí)現(xiàn)其大粒度低耦合的軟件開發(fā)復(fù)用。說是缺點(diǎn)是因?yàn)楫a(chǎn)品線的開發(fā)只能夠基于一種特定領(lǐng)域,或與之類似的領(lǐng)域之中,在長期的開發(fā)歷程之后,很可能局限于某一領(lǐng)域,移植性大大降低。稱為優(yōu)點(diǎn)是因?yàn)?,這樣的開發(fā)是在面向整個(gè)領(lǐng)域或系統(tǒng)的

29、共同需求以與可變部分的分析為基礎(chǔ),通過系統(tǒng)的產(chǎn)品線體系結(jié)構(gòu)設(shè)計(jì)以與領(lǐng)域構(gòu)件開發(fā),使得面向特定客戶的應(yīng)用產(chǎn)品可以在這些核心資產(chǎn)基礎(chǔ)上快速開發(fā)出來,從而降低開發(fā)成本、提高產(chǎn)品質(zhì)量、縮短產(chǎn)品上市時(shí)間。8這樣的優(yōu)點(diǎn)有很足夠的立場(chǎng)使我們忘卻它所存在的缺點(diǎn)。所以為了實(shí)現(xiàn)充分發(fā)揮產(chǎn)品線開發(fā)的優(yōu)點(diǎn),開發(fā)團(tuán)隊(duì)首先要做的事情,就是必須明確市場(chǎng)定位,對(duì)產(chǎn)品線圍各種現(xiàn)存的應(yīng)用產(chǎn)品的業(yè)務(wù)需求有所認(rèn)識(shí),并能夠全面而準(zhǔn)確的把握未來產(chǎn)品的需求走向趨勢(shì)。基于三大基本活動(dòng),以與對(duì)于產(chǎn)品線技術(shù)多年的研究后,專家們對(duì)于軟件產(chǎn)品線的實(shí)踐領(lǐng)域有了一個(gè)總結(jié)。明確了軟件產(chǎn)品線的29個(gè)實(shí)踐域,實(shí)踐域是用來描述產(chǎn)品線實(shí)施主體,以與它必須要掌握的

30、一整套活動(dòng)。為了使關(guān)鍵活動(dòng)在開發(fā)中更加易于實(shí)現(xiàn),通過定義實(shí)踐域中比基本活動(dòng)更精確、更有指導(dǎo)性的活動(dòng)。實(shí)踐域的定義為企業(yè)在使用軟件產(chǎn)品線方法中的不斷進(jìn)步提供了起點(diǎn)。表2.1總結(jié)了這29個(gè)實(shí)踐域。9表 2.1軟件產(chǎn)品線的29個(gè)實(shí)踐域軟件工程技術(shù)管理組織管理架構(gòu)定義配置管理建立業(yè)務(wù)案例架構(gòu)評(píng)估數(shù)據(jù)收集、度量和跟蹤客戶接口管理組件開發(fā)自制/購買/挖掘/委托分析實(shí)施需求獲取策略COTS利用過程定義資金籌備挖掘現(xiàn)有資產(chǎn)確定圍啟動(dòng)和貫徹執(zhí)行需求工程技術(shù)規(guī)劃市場(chǎng)分析軟件系統(tǒng)集成技術(shù)風(fēng)險(xiǎn)管理運(yùn)作測(cè)試工具支持組織規(guī)劃相關(guān)領(lǐng)域組織風(fēng)險(xiǎn)管理確定組織結(jié)構(gòu)技術(shù)預(yù)測(cè)培訓(xùn)2.4 軟件產(chǎn)品線的優(yōu)勢(shì)通過上面對(duì)于軟件產(chǎn)品線定義的介

31、紹,我們大致了解了軟件產(chǎn)品線的容。那么它在軟件開發(fā)中又有什么優(yōu)勢(shì)呢?軟件產(chǎn)品線簡(jiǎn)單的說就是一組軟件平臺(tái)它具有共同的體系構(gòu)架和大量的可復(fù)用組件,被用來構(gòu)建支持某一特定領(lǐng)域中的產(chǎn)品開發(fā)。體系結(jié)構(gòu)和重用技術(shù)的發(fā)展,使軟件產(chǎn)品線有了對(duì)于一種大規(guī)模、大粒度的軟件復(fù)用并集中實(shí)踐。除了滿足特定市場(chǎng)或特定任務(wù)需求,實(shí)現(xiàn)具有一組公共的、可管理特性的系統(tǒng)集合的同時(shí),它還增加了一些新容。首先在軟件產(chǎn)品線中增加系統(tǒng)開發(fā)方式上的限制,它需要按照某種指定的方式用來進(jìn)行核心資產(chǎn)的開發(fā),產(chǎn)品的獨(dú)立開發(fā)。這樣與傳統(tǒng)的從零開始開發(fā)、隨機(jī)開發(fā)等方式相比較,可以獲得顯著的生產(chǎn)經(jīng)濟(jì)效益。10其次,提高了生產(chǎn)的經(jīng)濟(jì)效益,因?yàn)楫?dāng)使用產(chǎn)品線

32、技術(shù)開發(fā)是,每個(gè)產(chǎn)品不再是傳統(tǒng)的單向開發(fā)實(shí)現(xiàn),而是根據(jù)一個(gè)產(chǎn)品線圍的公共架構(gòu)來組裝這些組件,簡(jiǎn)單的說就是從公共的核心資產(chǎn)庫抽出組件,并按照軟件產(chǎn)品的需求,分析出變化機(jī)制(如參數(shù)化、繼承等),對(duì)抽出的組件進(jìn)行相應(yīng)的裁剪或添加必須的新組件。做到根據(jù)預(yù)先的說明指南,來組裝這些組件組成產(chǎn)品。這樣的做法相比傳統(tǒng)的軟件開發(fā),保證質(zhì)量的同時(shí),大大的提高了生產(chǎn)的效益。最后,特定領(lǐng)域的產(chǎn)品線工程方法能夠支持大圍重用。產(chǎn)品線區(qū)別于傳統(tǒng)的開發(fā)模式,不僅僅是代碼的重用,在需求和業(yè)務(wù)上都能做到重用。最有效時(shí),重用可以達(dá)到90。我們圖2.4中來展現(xiàn)了一個(gè)重用的圖,從函數(shù)和類的重用到模塊和引擎的重用,最后甚至能實(shí)現(xiàn)應(yīng)用包和

33、框架的重用產(chǎn)品線將基于更大圍的重用進(jìn)行開發(fā)。函數(shù)/類 模塊/引擎 應(yīng)用包/框架復(fù)用的成本效益需求復(fù)合度、更改靈活性組件粒度有小到大影響組件粒度的因素圖 2.4軟件產(chǎn)品線的重用為了進(jìn)一步說明,產(chǎn)品線技術(shù)在軟件開發(fā)中的優(yōu)勢(shì),在圖2.5中,我們可以明顯的看到,產(chǎn)品線開發(fā)方式和傳統(tǒng)的開發(fā)方式之間的區(qū)別。產(chǎn)品線預(yù)計(jì)帶來經(jīng)濟(jì)效益讓人驚訝的同時(shí),它必須進(jìn)行前期的投資如核心資產(chǎn)的開發(fā)、組織的轉(zhuǎn)變等。這樣才能獲得回報(bào),經(jīng)過大量數(shù)據(jù)驗(yàn)證,一般的產(chǎn)品線軟件開發(fā)會(huì)在在第三個(gè)項(xiàng)目時(shí)達(dá)到收支平衡。 傳統(tǒng)開發(fā)產(chǎn)品線開發(fā)盈虧平衡點(diǎn)盈虧平衡點(diǎn)累計(jì)花費(fèi)前期投資工程數(shù)量大約在第三個(gè)工程圖 2.5產(chǎn)品線的經(jīng)濟(jì)走線圖通過上面的大量分析

34、,我們可以總結(jié)出產(chǎn)品線技術(shù)一下優(yōu)點(diǎn):(1)減少成本產(chǎn)品線工程因?yàn)槠洚a(chǎn)品開發(fā)中是核心資產(chǎn)抽出組裝的特性,不再需要維護(hù)大量不同版本、不同架構(gòu)的代碼,所以也沒有大量不同的文檔需要維護(hù)。減少開發(fā)成本外,維護(hù)成本也可以大大降低。軟件的維護(hù)成本在軟件開發(fā)中的比重之大,大家都知道,所以產(chǎn)品線具有可以減少成本的特點(diǎn)。11(2)快速上市同樣因?yàn)槠洚a(chǎn)品開發(fā)是從核心資產(chǎn)抽出組裝重用的特性。在開發(fā)中我們需要的只是集成核心資產(chǎn)庫中的組件,并不需要每個(gè)開發(fā)環(huán)節(jié)都重新設(shè)計(jì)編碼一遍,所以開發(fā)的周期大大縮短,上市時(shí)間大大提前。(3)減少風(fēng)險(xiǎn)由于產(chǎn)品線除了擁有可以重用函數(shù)、模塊以與框架的特性,在同類型產(chǎn)品的開發(fā)中也可以重用。這樣

35、對(duì)于任務(wù)的估計(jì)、開發(fā)的計(jì)劃都在核心資產(chǎn)庫的基礎(chǔ)上,得到很好的重用,達(dá)到可以減少項(xiàng)目開發(fā)風(fēng)險(xiǎn)的目的。(4)提高質(zhì)量產(chǎn)品線開發(fā)的基礎(chǔ)是核心資產(chǎn)庫,軟件產(chǎn)品的開發(fā)要求基于核心資產(chǎn),而核心資產(chǎn)大都是經(jīng)過成熟的、經(jīng)過驗(yàn)證的組件產(chǎn)品。這些特性都保證了產(chǎn)品線開發(fā)的高質(zhì)量。122.5 本章小結(jié)本章從軟件產(chǎn)品線技術(shù)的基本理論入手,介紹了核心資產(chǎn)以與產(chǎn)品開發(fā)的定義、目的與原則,以與管理的作用。其次,介紹了產(chǎn)品線技術(shù)的主要實(shí)踐域。最后,通過對(duì)產(chǎn)品線技術(shù)的相關(guān)概念的理解,對(duì)產(chǎn)品線的優(yōu)勢(shì)做了分析與總結(jié)。第3章 軟件產(chǎn)品線技術(shù)實(shí)現(xiàn)與應(yīng)用難點(diǎn)分析3.1 產(chǎn)品線方法實(shí)現(xiàn)的基本原則關(guān)注點(diǎn)的轉(zhuǎn)移標(biāo)志著,軟件產(chǎn)品線技術(shù)方法的開發(fā)到

36、傳統(tǒng)的單體項(xiàng)目開發(fā)的改變,標(biāo)志著從單獨(dú)的產(chǎn)品開發(fā)到基于產(chǎn)品線技術(shù)的項(xiàng)目開發(fā)的提升。這個(gè)轉(zhuǎn)移同時(shí)顯示著從特定的項(xiàng)目開發(fā)到特定業(yè)務(wù)領(lǐng)域產(chǎn)品的策略。產(chǎn)品線工程對(duì)開發(fā)用以重用和使用重用來開發(fā)進(jìn)行了明確的區(qū)分。產(chǎn)品線技術(shù)的重用包括了框架、業(yè)務(wù)模塊、需求分析、開發(fā)計(jì)劃和測(cè)試的全部資產(chǎn)的重用。相對(duì)于傳統(tǒng)的源代碼與重用,重用的量大大增加,并且對(duì)有所有重用的資產(chǎn)都包含明確可變性說明,只有這樣才能體現(xiàn)出產(chǎn)品線方法的優(yōu)勢(shì)。那么在產(chǎn)品線開發(fā)中主要遵循的原則有哪些呢?四個(gè)主要原則(1) 可變性管理(Variability management)在產(chǎn)品線開發(fā)的過程中,產(chǎn)品開發(fā)簡(jiǎn)單的說就是核心資產(chǎn)的變體。在開發(fā)過程中,必須

37、有一套系統(tǒng)化的管理方式。那么產(chǎn)品不可能是固定的,必定具有的可變性,因此對(duì)業(yè)務(wù)分析的要求就更高了。13(2) 商業(yè)驅(qū)動(dòng)(Business-centric)由于產(chǎn)品線開發(fā)周期長的特點(diǎn),因此產(chǎn)品線的開發(fā)必須是一個(gè)長期的商業(yè)戰(zhàn)略。相對(duì)于傳統(tǒng)的軟件開發(fā)具有的開發(fā)周期短,各個(gè)項(xiàng)目單獨(dú)進(jìn)行的特點(diǎn),產(chǎn)品線需要的是對(duì)市場(chǎng)進(jìn)行全面的而精準(zhǔn)的定位。商業(yè)驅(qū)動(dòng)方法的作業(yè)中需要判斷產(chǎn)品線應(yīng)該包含哪些功能,這些功能是在是在領(lǐng)域工程還是應(yīng)用工程中進(jìn)行。一個(gè)公司在現(xiàn)實(shí)產(chǎn)品線工程時(shí),是使用一條還是多條產(chǎn)品線呢?在軟件產(chǎn)品線實(shí)踐和模式中提出在大型產(chǎn)品線只有同時(shí)具備第一,產(chǎn)品具有足夠多的一樣點(diǎn),將它們作為一條產(chǎn)品線是有利可圖的。14

38、第二,公司有能力控制這樣大型的市場(chǎng)運(yùn)作、開發(fā)以與其他方面的特點(diǎn)。如果不能滿足以上的這兩個(gè)特點(diǎn),還是需要分為兩個(gè)或兩個(gè)以上的產(chǎn)品線進(jìn)行開發(fā)。(3) 架構(gòu)驅(qū)動(dòng)(Architecture-centric)產(chǎn)品線的開發(fā)在技術(shù)上需要支持最大化的重用,大規(guī)模、大粒度、低耦合的重用方法是產(chǎn)品線的目標(biāo),那么產(chǎn)品線工程需要依賴一個(gè)通用的參考架構(gòu),特定項(xiàng)目架構(gòu)都基于參考架構(gòu)進(jìn)行開發(fā)。15(4) 兩階段生命周期(Two-life-cycle approach)產(chǎn)品線開發(fā)中,每個(gè)產(chǎn)品基于平臺(tái)即核心資產(chǎn)庫開發(fā),產(chǎn)品和平臺(tái)的開發(fā)是相互支持,相互反饋的過程。所以產(chǎn)品開發(fā)和平臺(tái)開發(fā)有應(yīng)該有各自的開發(fā)生命周期。最好的是兩個(gè)工程

39、同時(shí)進(jìn)行開發(fā),但是如果因?yàn)闂l件的限制不能同時(shí)進(jìn)行開發(fā)的話,那么開發(fā)人員清晰的區(qū)別出應(yīng)用工程和領(lǐng)域工程。16圖3.1將這兩個(gè)兩階段劃分出來。領(lǐng)域工程領(lǐng)域設(shè)計(jì)領(lǐng)域分析領(lǐng)域?qū)崿F(xiàn)應(yīng)用工程系統(tǒng)實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)需求分析圖 3.1產(chǎn)品線雙生命周期開發(fā)框架被分為兩個(gè)階段領(lǐng)域工程開發(fā)和應(yīng)用工程開發(fā)。領(lǐng)域工程開發(fā)產(chǎn)品線的公共核心資產(chǎn)庫,應(yīng)用工程利用核心資產(chǎn)庫組裝出產(chǎn)品。在整個(gè)雙生命的周期中,不管是領(lǐng)域工程還是應(yīng)用工程都存在需求、分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試階段。每個(gè)工程中這些流程都是緊密聯(lián)系,并且一一進(jìn)行的,同時(shí)兩個(gè)工程一樣階段也存在直接的聯(lián)系。領(lǐng)域工程的子流程是用來開發(fā)公共平臺(tái)的核心資產(chǎn),應(yīng)用工程子流程是為了生產(chǎn)產(chǎn)品。在

40、生產(chǎn)過程中會(huì)不斷的提供反饋給領(lǐng)域工程,這種循環(huán)反饋才能確保平臺(tái)一直都能有效的生產(chǎn)出最終產(chǎn)品。173.2 產(chǎn)品線方法的生命周期為了能夠正確的識(shí)別出開發(fā)中某一特定領(lǐng)域的核心資產(chǎn),產(chǎn)品線工程必須經(jīng)歷從選取到精化和構(gòu)建的開發(fā)過程。從上文我們可以知道產(chǎn)品線方法具有雙生命周期的特定,在生命周期上可分為領(lǐng)域工程和應(yīng)用工程兩個(gè)部分如圖3.2中所描述的,領(lǐng)域工程是從領(lǐng)域分析,領(lǐng)域定義,構(gòu)建領(lǐng)域體系結(jié)構(gòu),構(gòu)建領(lǐng)域組件的開發(fā)過程,而應(yīng)用工程則是從產(chǎn)品分析、到具體產(chǎn)品、產(chǎn)品設(shè)計(jì)、具體產(chǎn)品結(jié)構(gòu)、產(chǎn)品開發(fā)到最終產(chǎn)品的開發(fā)過程。18圖 3.2產(chǎn)品線方法生命周期領(lǐng)域分析工程以獲得領(lǐng)域模型為最終目標(biāo)。得到的領(lǐng)域模型用來描述該特

41、定領(lǐng)域產(chǎn)品的共同需求,在這個(gè)階段中確定領(lǐng)域邊界,識(shí)別信息源,分析領(lǐng)域中系統(tǒng)的需求成為主要作業(yè)。領(lǐng)域設(shè)計(jì)階段的目標(biāo)是獲得領(lǐng)域構(gòu)架Domainspecific software architecture(以下簡(jiǎn)稱DSSA)。該階段用來做成領(lǐng)域模型中的需求解決方案,該解決方案不是用來表示單個(gè)系統(tǒng)的,而是一個(gè)能夠適應(yīng)領(lǐng)域中多個(gè)產(chǎn)品的共同需求的設(shè)計(jì)。建立了領(lǐng)域模型之后,經(jīng)過領(lǐng)域分析夠,生成出DSSA。當(dāng)然領(lǐng)域需在不斷變化的,DSSA也要隨之相應(yīng)地發(fā)生變化。19領(lǐng)域?qū)崿F(xiàn)階段其實(shí)是一種機(jī)制,它將需求變成為可復(fù)用構(gòu)件。所采用的復(fù)用方法和核心資產(chǎn)的成熟與穩(wěn)定程度,這種機(jī)制有可能是一組與DSSA和領(lǐng)域模型相互聯(lián)系

42、的構(gòu)件,也可能是具體產(chǎn)品的生成器。應(yīng)用工程主要的作業(yè)圍應(yīng)具體到具體產(chǎn)品的需求分析、框架的實(shí)例化、核心組件資產(chǎn)的利用等。最終的成果物是產(chǎn)品規(guī)約、特定應(yīng)用的框架、復(fù)用記錄和具體產(chǎn)品。在具體的開發(fā)中,領(lǐng)域工程作為具體的指南,指導(dǎo)應(yīng)用工程中具體產(chǎn)品的開發(fā)。在產(chǎn)品線開發(fā)的早期階段,首先進(jìn)行的是應(yīng)用工程開發(fā),之后將抽出低級(jí)框架,經(jīng)過整合,得到領(lǐng)域工程中的資產(chǎn)。隨著應(yīng)用工程的多次實(shí)施,核心資產(chǎn)庫的不斷壯大,框架的復(fù)用記錄也越來越多。在這些演變中,抽象框架逐漸演進(jìn)成為高級(jí)框架。然后,在新的產(chǎn)品線應(yīng)用工程的開發(fā)中,核心資產(chǎn)庫中的高級(jí)框架將取代低級(jí)框架,得到開發(fā)效率提高的目的。3.3 產(chǎn)品線方法的開發(fā)特點(diǎn)領(lǐng)域工程

43、與應(yīng)用工程的相互作用,產(chǎn)品開發(fā)中不斷的復(fù)用領(lǐng)域工程的核心資源和組件是產(chǎn)品線開發(fā)的最大特點(diǎn)。根據(jù)產(chǎn)品線的開發(fā)周期我們可以得出產(chǎn)品線開發(fā)的主要特點(diǎn)如下:首先在一般情況下,在產(chǎn)品線開發(fā)過程中體系結(jié)構(gòu)在初期階段就需要被確定;組件在產(chǎn)品族中具有一樣特性,復(fù)用領(lǐng)域工程則是產(chǎn)品線組件的關(guān)鍵過程,產(chǎn)品線中復(fù)用技術(shù)是一項(xiàng)常見并且必要的操作;開發(fā)過程由核心資產(chǎn)庫提供分析并驅(qū)動(dòng)產(chǎn)品線的開發(fā)過程;20由于產(chǎn)品線開發(fā)中某些特定領(lǐng)域具有相似體系結(jié)構(gòu)的產(chǎn)品族,成本的投入根據(jù)產(chǎn)品線的需求,還根據(jù)市場(chǎng)的需求;產(chǎn)品族是在某一特定領(lǐng)域圍進(jìn)行開發(fā),產(chǎn)品線的領(lǐng)域不是屬于單一產(chǎn)品,而是應(yīng)用于整個(gè)產(chǎn)品家族。產(chǎn)品線開發(fā)周期包括兩個(gè)階段,在領(lǐng)

44、域工程階段開發(fā)軟件產(chǎn)品族所需的公有資源、組件,這一階段可以被認(rèn)為是生產(chǎn)者。應(yīng)用工程階段使用已有資源、組件去開發(fā)相應(yīng)產(chǎn)品,可以被看作是消費(fèi)者。這種相互緊密地關(guān)系最大化地提高了產(chǎn)品線的開發(fā)效率。3.4 產(chǎn)品線方法開發(fā)的誤區(qū)與難點(diǎn)可能很多人都有這樣的疑惑,什么樣的方法才能稱之為產(chǎn)品線方法。因?yàn)榇蠖鄶?shù)產(chǎn)品線方法乍看起來與傳統(tǒng)的單體看法方式并沒有很大的區(qū)別。為了能讓大家在以前的軟件知識(shí)和開發(fā)經(jīng)驗(yàn)的基礎(chǔ)上,認(rèn)識(shí)軟件產(chǎn)品線。我們不僅需要知道產(chǎn)品線的定義,還需要知道產(chǎn)品線開發(fā)時(shí)可能遇到的誤區(qū)和難點(diǎn)。21第一,在軟件產(chǎn)品線開發(fā)中,資產(chǎn)的重用是必須是有計(jì)劃的并且能夠?qū)崿F(xiàn)的。核心資產(chǎn)庫的需求、領(lǐng)域建模、軟件架構(gòu)、性

45、能模型、測(cè)試用例和組件開發(fā)過程,從一開始就需要投入大量的成本,而看不到收益。這里所有資產(chǎn)都為了重用、為多個(gè)系統(tǒng)的重用進(jìn)行了優(yōu)化。軟件產(chǎn)品線的重用是全面的、有計(jì)劃的、有經(jīng)濟(jì)效益的。第二,軟件產(chǎn)品線重用的資產(chǎn)是明確為重用而設(shè)計(jì)的。產(chǎn)品線是一個(gè)整體,并不是生產(chǎn)或維護(hù)多個(gè)產(chǎn)品。在一個(gè)成熟的產(chǎn)品線中,已經(jīng)不再是多個(gè)產(chǎn)品的開發(fā),每個(gè)產(chǎn)品是通過核心資產(chǎn)而定制的。22第三,軟件產(chǎn)品線的開發(fā)是完全依賴于組件的開發(fā)形式,其中涉與到的要素也很多。簡(jiǎn)單的說就是部庫或是從市場(chǎng)當(dāng)中選擇組件來構(gòu)建產(chǎn)品。反過來這些組件也都是由產(chǎn)品線架構(gòu)按照預(yù)先定義的方式進(jìn)行組裝。例如,在構(gòu)架和生產(chǎn)計(jì)劃中明確指出我們要生成指定的產(chǎn)品,那就需要

46、在組件中采用置變體機(jī)制。在組件應(yīng)該是在核心資產(chǎn)庫中進(jìn)行演進(jìn)和維護(hù)的。一般都是通過編寫代碼來完成組件的變化,單獨(dú)的基于組件的開發(fā)常常缺乏技術(shù)和組織管理方面的支持,而這點(diǎn)對(duì)軟件產(chǎn)品的成功非常重要。第四,為了達(dá)到能重用于多個(gè)系統(tǒng)的目的,設(shè)計(jì)參考架構(gòu)和面向?qū)ο罂蚣芏际强梢灾匦屡渲?。架?gòu)對(duì)任何系統(tǒng)而言都至關(guān)重要,付出代價(jià)較高。所以重用架構(gòu)在產(chǎn)品線設(shè)計(jì)中至關(guān)重要。必須支持產(chǎn)品線中個(gè)產(chǎn)品間變化,所以它必須是可配置的。23第五,在產(chǎn)品線開發(fā)中如果同時(shí)存在多個(gè)產(chǎn)品,那么要求每個(gè)產(chǎn)品都有其自己的發(fā)布版本的周期。傳統(tǒng)的開發(fā)模式中,認(rèn)為上下文環(huán)境成為考慮單個(gè)產(chǎn)品的演進(jìn)的重要指標(biāo),所以早期產(chǎn)品生產(chǎn)中的任何東西都不再有價(jià)

47、值。但是恰恰相反,在產(chǎn)品線中,產(chǎn)品的早期版本仍被認(rèn)為具有市場(chǎng)潛力,并很容易地作為產(chǎn)品家族中的核心資產(chǎn)被保留下來。24以上就是產(chǎn)品線開發(fā)中的誤區(qū)和難點(diǎn),只有了解這些誤區(qū)和難點(diǎn),我們才能真正意義上的認(rèn)識(shí)產(chǎn)品線方法。3.5 本章小結(jié)本章首先介紹了產(chǎn)品線方法實(shí)現(xiàn)的基本原則與其類型,并且著重介紹了領(lǐng)域分析和需求分析的作用。其次通過分析產(chǎn)品線開發(fā)的生命周期,說明領(lǐng)域分析和需求分析之間的相互關(guān)系,最后著重分析簡(jiǎn)要介紹了軟件產(chǎn)品線開發(fā)的難點(diǎn)與誤區(qū)。第4章 產(chǎn)品線模型做成工具的設(shè)計(jì)與實(shí)現(xiàn)上文對(duì)產(chǎn)品線技術(shù)進(jìn)行了詳細(xì)的介紹與分析,我們將采用UML進(jìn)行系統(tǒng)分析設(shè)計(jì),以Enterprise Architect(以下簡(jiǎn)稱

48、EA)作為開發(fā)工具,基于面向?qū)ο蟮拈_發(fā)思想實(shí)現(xiàn)軟件產(chǎn)品線模型做成工具Add In。4.1 概要Add In是產(chǎn)品線開發(fā)過程中,領(lǐng)域分析和需求分析階段使用的工具,主要包括領(lǐng)域分析機(jī)能和需求分析機(jī)能。在領(lǐng)域分析中我們主要完成核心資產(chǎn)的開發(fā)工作,具體到圖上包括特性圖的做成,圖中特性元素的創(chuàng)建、編輯和刪除。在圖做成之后對(duì)該領(lǐng)域模型進(jìn)行檢測(cè),并進(jìn)行核心資產(chǎn)情報(bào)的設(shè)定。在產(chǎn)品開發(fā)中進(jìn)行需求分析,從系統(tǒng)設(shè)計(jì)中刪除特性元素、對(duì)做成的產(chǎn)品模型進(jìn)行檢測(cè),合格之后做成產(chǎn)品模型。Add In的主要開發(fā)環(huán)境和動(dòng)作環(huán)境如下表所示表 4.1開發(fā)環(huán)境和動(dòng)作環(huán)境開發(fā)環(huán)境動(dòng)作環(huán)境Visual Studio 2005Enterpr

49、ise Architect7.5.847以下版本Net Framework 2.0 Visual B其中我們著重對(duì)EA進(jìn)行介紹,EA的工程文件.EAP本身是由Microsoft Access數(shù)據(jù)庫提供。是由Sparks Systems公司開發(fā)的建模軟件。EA是一個(gè)對(duì)于軟件系統(tǒng)開發(fā)有著極好支持的CASE軟件(Computer Aided Software Engineering)。EA不同于普通的UML畫圖工具(如VISIO),它能夠支撐全過程的系統(tǒng)開發(fā)。擁有10種編程語言的正反向工程在需求分析階段,不管是在系統(tǒng)分析與設(shè)計(jì)階段還是系統(tǒng)開發(fā)與部署等方面都能提供給用戶強(qiáng)大的支持。再加上對(duì)項(xiàng)目管理,文

50、檔生成,數(shù)據(jù)建模等方面的優(yōu)勢(shì)。EA可以讓系統(tǒng)開發(fā)中各個(gè)角色都獲得最好的開發(fā)效率。25同時(shí)EA是以目標(biāo)為導(dǎo)向的軟件系統(tǒng)。它覆蓋了系統(tǒng)開發(fā)的整個(gè)周期,除了開發(fā)類模型之外,還能夠處理事務(wù)進(jìn)程分析,使用案例需求,動(dòng)態(tài)模型,組件和布局,系統(tǒng)管理,非功能需求,用戶界面設(shè)計(jì),測(cè)試和維護(hù)等。264.2 邏輯機(jī)能第3章第4章4.14.24.2.1 PLSE項(xiàng)目構(gòu)成為了能夠做成最基本的PLSE項(xiàng)目,我們做成PLSEBase.EAP文件,該文件中包含PLSE項(xiàng)目的規(guī)定結(jié)構(gòu),如圖4.1所示。包含根目錄名用來描述該P(yáng)LSE項(xiàng)目的具體名稱,用產(chǎn)品線領(lǐng)域工程模型Product Line Software Model(以下簡(jiǎn)

51、稱PLSM)的組件包承載項(xiàng)目具體組件,產(chǎn)品線領(lǐng)域工程模型Product Line Software Application(以下簡(jiǎn)稱PLA)的組件包描述組件與組件之間的關(guān)系,組件之前的相互作用。除圖中所示的構(gòu)造之外,之后可以追加另外的包和視圖。Project_Name /項(xiàng)目根目錄 PLSM /用例圖視圖 2 Capability /包 2 Capability /特性圖表 2 OperatingEnvironment /包 2 OperatingEnvironment /特性圖表 2 DomainTechnology /包 2 DomainTechnology /特性圖表 2 Impleme

52、ntationTechnique /包 2 ImplementationTechnique /特性圖 2 LayerRelation /包 2LayerRelation /特性図 3PLA /組件圖視圖2 SuperClass /包 2 SuperClass /類圖 4 Architecture /包 2 Architecture /組件圖 41 項(xiàng)目根目錄的名稱可變,1個(gè)項(xiàng)目中只有一個(gè)根目錄包。2 名稱固定不能更改3 Layer Relation圖中、特性元素的名稱用包名表示。4 圖名稱可變。圖 4.1 PLSE項(xiàng)目結(jié)構(gòu)圖4.2.2 打開PLSE項(xiàng)目PLSE項(xiàng)目的EAP文件打開時(shí),需要進(jìn)行如

53、下的檢查。(1) PLSE項(xiàng)目的互換性的檢查PLSE項(xiàng)目的互換性檢查的流程圖如4.2所示。在互換性檢查中我們著重檢測(cè)該P(yáng)LSE項(xiàng)目的EAP文件Add In版本輸,之后判斷是否為PLSE工程。是否有特性圖?開始圖是否包含版本數(shù)信息版本數(shù)與基礎(chǔ)版本比較版本數(shù)比較判斷是否是PLSE工程模式選擇模式選擇成功開啟關(guān)閉NYNY1.5=NY注1注2注1.5圖 4.2模式選擇功能流程圖注1:有特性圖做成時(shí),將 Add In的版本數(shù)被保存在EAP文件中。注2:當(dāng)前基礎(chǔ)版本數(shù)是Ver1.5.0.注3:不能打開版本數(shù)低于1.5.0的PLSE圖。(2) PLSE項(xiàng)目構(gòu)造的檢查在打開EAP文件是,Add In 會(huì)對(duì)EA

54、文件的部結(jié)構(gòu)進(jìn)行審查,是否符合PLSE結(jié)構(gòu)標(biāo)準(zhǔn)化。具體檢查流程如圖4.3所示,先檢查根目錄是否存在,如果存在判斷是否包含命名為PLSM和PLA的包目錄,如果都存在,則檢查PLSM下的包是否符合圖4.1中所必需包含的容,如果存在則認(rèn)為該EAP文件為一個(gè)PLSE項(xiàng)目圖。開始根目錄檢查PLSM包和PLA包的檢查PLSM包中項(xiàng)目的檢查普通UML項(xiàng)目PLSE項(xiàng)目FalseFalseFalseTrueTrueTrue圖 4.3 PLSE項(xiàng)目構(gòu)造檢查流程圖4.2.3 關(guān)閉PLSE項(xiàng)目關(guān)閉PLSE項(xiàng)目的EAP文件時(shí),先判核心資產(chǎn)的相關(guān)情報(bào)是否已經(jīng)錄入,如果沒有,則如圖4.4中顯示核心情報(bào)設(shè)定確認(rèn)的畫面。圖 4.4核心資產(chǎn)設(shè)定確認(rèn)畫面選擇YES則表示核心情報(bào)設(shè)定畫面如圖4.5,NO核心情報(bào)不進(jìn)行設(shè)定,對(duì)相應(yīng)的PLSE項(xiàng)目EAP文件進(jìn)行保存。 圖 4.5核心情報(bào)設(shè)定畫面同時(shí)我們對(duì)錄入的信息也進(jìn)行規(guī)定,名稱和版本都屬于必須設(shè)定的疇,對(duì)于名稱沒有限制,包括長度和文字格式的限制。版本的長度必須控制在15Byte。核心情報(bào)設(shè)定之后,將被保存在數(shù)據(jù)庫之中,按下OK按鈕之后該畫面關(guān)閉。4.3 畫面操作機(jī)能Add In的菜單機(jī)能鼠標(biāo)右鍵點(diǎn)擊EA工具菜單,添加Add In的菜單。菜單包括子菜單,其中不可以

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論