摘 要: 拉曼光譜技術(shù)在危險(xiǎn)品檢測(cè),、海關(guān)/邊防查私,、藥品鑒定、文物真?zhèn)舞b定,、礦物勘探,、石油成分鑒定等領(lǐng)域有廣泛應(yīng)用,為了提高軟件產(chǎn)品研發(fā)效率和質(zhì)量,、降低工作量,,研究并設(shè)計(jì)了一種拉曼檢測(cè)儀軟件產(chǎn)品線。首先進(jìn)行核心資源開(kāi)發(fā),,在此基礎(chǔ)上再開(kāi)發(fā)具體的軟件產(chǎn)品,。通過(guò)對(duì)拉曼檢測(cè)儀軟件產(chǎn)品線的設(shè)計(jì)和應(yīng)用,對(duì)軟件產(chǎn)品線領(lǐng)域具體化作了一次有益嘗試,,為類(lèi)似應(yīng)用提供了可借鑒方案,。
關(guān)鍵詞: 軟件產(chǎn)品線;領(lǐng)域分析,;軟件重用,;領(lǐng)域具體化;拉曼光譜技術(shù)
近年來(lái),,利用拉曼光譜具有物質(zhì)“指紋”的特征,,拉曼光譜技術(shù)在危險(xiǎn)品檢測(cè)、海關(guān)/邊防查私,、珠寶鑒定,、食品安全、藥品鑒定,、文物真?zhèn)舞b定,、礦物勘探、石油成分鑒定等領(lǐng)域得到了廣泛的應(yīng)用,。經(jīng)分析,,雖然應(yīng)用行業(yè)不同,但各行業(yè)軟件的公用成分和交叉成分所占比重很大,,如果采用傳統(tǒng)方法開(kāi)發(fā),,不僅需要消耗巨大的人力、物力,、財(cái)力,、研發(fā)周期長(zhǎng),且相當(dāng)一部分工作是重復(fù)勞動(dòng),。針對(duì)這一情況,,本文采用軟件產(chǎn)品線的模式開(kāi)發(fā),,以期取得理想的效果,因此拉曼檢測(cè)儀軟件產(chǎn)品線應(yīng)運(yùn)而生,。
1 軟件產(chǎn)品線簡(jiǎn)介
軟件產(chǎn)品線是目前為止最大程度的軟件復(fù)用,,可以有效地降低成本、縮短產(chǎn)品面世時(shí)間,、提高軟件質(zhì)量,。產(chǎn)品線的起源可以追溯到1976年P(guān)ARNAS對(duì)程序族的研究[1]。軟件產(chǎn)品線的實(shí)踐早在20世紀(jì)80年代中期就已出現(xiàn),。據(jù)HP公司1996年對(duì)HP,、IBM、NEC,、AT&T等幾個(gè)大型公司分析研究,,這些公司在采用了軟件產(chǎn)品線開(kāi)發(fā)方法后,使產(chǎn)品的開(kāi)發(fā)時(shí)間減少了30%~50%,,維護(hù)成本降低了20%~50%,,軟件質(zhì)量提升了5~10倍,,軟件重用達(dá)50%~80%,,開(kāi)發(fā)成本降低12%~15%[1]。
1.1 軟件產(chǎn)品線的概念
產(chǎn)品線是一個(gè)產(chǎn)品集合,,每個(gè)新產(chǎn)品都可以由來(lái)自核心資源庫(kù)的可應(yīng)用組件組成,,通過(guò)預(yù)先設(shè)定的變化機(jī)制(如參數(shù)化)對(duì)這些組件進(jìn)行必要的剪裁,添加可能需要的新組件,,根據(jù)一個(gè)產(chǎn)品線范圍內(nèi)的公共構(gòu)架來(lái)組裝這些組件,。因此軟件產(chǎn)品線主要由兩部分組成:核心資源和產(chǎn)品集合。其中核心資源包括產(chǎn)品線中產(chǎn)品共享的構(gòu)架以及為貫穿產(chǎn)品線進(jìn)行系統(tǒng)化重用所開(kāi)發(fā)的軟件組件和其他相關(guān)配套資源,。
1.2 軟件產(chǎn)品線的過(guò)程模型
軟件產(chǎn)品線典型的過(guò)程模型是SEI模型,,它將產(chǎn)品線的基本活動(dòng)分為3部分:核心資源開(kāi)發(fā)(領(lǐng)域工程)、產(chǎn)品開(kāi)發(fā)(應(yīng)用工程)和管理,。圖1顯示了這三大基本活動(dòng)及其相互關(guān)系[2],。
三大基本活動(dòng)交錯(cuò)連接,可以任何次序發(fā)生,,且高度重疊,。旋轉(zhuǎn)的箭頭表示不但核心資源用來(lái)開(kāi)發(fā)產(chǎn)品,而且已存在的核心資源的修訂甚至新的核心資源常常來(lái)自產(chǎn)品開(kāi)發(fā),。核心資源開(kāi)發(fā)和產(chǎn)品開(kāi)發(fā)均需要技術(shù)和組織管理,。
1.3 軟件產(chǎn)品線的領(lǐng)域具體化
經(jīng)過(guò)多年發(fā)展,軟件產(chǎn)品線理論和工程的框架已比較完整,,未來(lái)研究的主要任務(wù)包括:領(lǐng)域具體化,、質(zhì)量保證,、模型驅(qū)動(dòng)開(kāi)發(fā)、進(jìn)化,、多條產(chǎn)品線,、工具支持、過(guò)程改進(jìn)和評(píng)估,、經(jīng)濟(jì)因素等,。本文側(cè)重軟件產(chǎn)品線的領(lǐng)域具體化設(shè)計(jì)與應(yīng)用,其主要任務(wù)是對(duì)于一個(gè)給定的應(yīng)用領(lǐng)域(如本文的拉曼檢測(cè)儀),,完成框架的具體化,。具體化將產(chǎn)生一組用于特定領(lǐng)域建模的變化點(diǎn)、變量,、變化依賴(lài)和約束的良好定義的類(lèi)型,。這樣的具體化將會(huì)增加模型的語(yǔ)義,其將是工具支持和有效解決變化的復(fù)雜性的重要基礎(chǔ),。例如,,標(biāo)準(zhǔn)的抽象級(jí)別和映射概念的機(jī)制以及可變性從一個(gè)級(jí)別到另一個(gè)級(jí)別的一致性定義,都應(yīng)該是領(lǐng)域具體化的結(jié)果[1],。
2 拉曼檢測(cè)儀軟件產(chǎn)品線的構(gòu)建
構(gòu)建拉曼檢測(cè)儀軟件產(chǎn)品線的首要任務(wù)是對(duì)拉曼產(chǎn)品領(lǐng)域進(jìn)行領(lǐng)域分析,、領(lǐng)域設(shè)計(jì)和領(lǐng)域?qū)崿F(xiàn)。其中,,領(lǐng)域分析利用現(xiàn)有系統(tǒng)的設(shè)計(jì),、架構(gòu)和需求建立領(lǐng)域模型;領(lǐng)域設(shè)計(jì)是用領(lǐng)域模型確定領(lǐng)域/產(chǎn)品線的共性和可變性,,為產(chǎn)品線設(shè)計(jì)架構(gòu),;領(lǐng)域?qū)崿F(xiàn)則基于領(lǐng)域架構(gòu)開(kāi)發(fā)領(lǐng)域可復(fù)用資源,例如構(gòu)件,、文檔和代碼生成器等,。在此基礎(chǔ)上導(dǎo)出軟件產(chǎn)品線構(gòu)架并實(shí)現(xiàn)其核心資源庫(kù)。
2.1 領(lǐng)域分析
拉曼效應(yīng)是由科學(xué)家拉曼(RAMAN C V)和克里斯南(RISHNAN K S K)在1928年觀察液體中的散射現(xiàn)象時(shí)發(fā)現(xiàn)的,。當(dāng)頻率為ω0的單色光入射到無(wú)塵的透明氣體,、液體或者光學(xué)上完全透明的固體時(shí),對(duì)其散射頻譜分析表明:除了與入射光頻譜相同的散射光外,,還有頻譜為ω′=ω0+Δω的新譜線,,這些譜線組成拉曼光譜[3]。由于不同的分子對(duì)應(yīng)不同的特征拉曼頻移,,因此可以用拉曼光譜對(duì)物質(zhì)進(jìn)行識(shí)別,。拉曼光譜技術(shù)具有無(wú)需取樣、無(wú)耗材,,并且準(zhǔn)確,、無(wú)損,、快速等特點(diǎn)。
經(jīng)分析,,雖然應(yīng)用行業(yè)不同,,但其檢測(cè)流程基本相同,典型的拉曼檢測(cè)系統(tǒng)如圖2 所示,。具體流程是:(1)拉曼檢測(cè)系統(tǒng)發(fā)出測(cè)量指令,,驅(qū)動(dòng)激光器出光;(2)應(yīng)用光譜儀采集本底,、原始光譜數(shù)據(jù),,計(jì)算出被測(cè)物拉曼光譜;(3)對(duì)被測(cè)物拉曼光譜去噪,、平滑處理,,調(diào)用算法識(shí)別接口,進(jìn)行物質(zhì)識(shí)別,,保存物質(zhì)和原始譜圖數(shù)據(jù),;(4)根據(jù)顯示策略進(jìn)行顯示處理;(5)顯示結(jié)果,,包括檢測(cè)結(jié)果,、檢測(cè)次數(shù)、危險(xiǎn)品次數(shù)和譜圖,,還可以通過(guò)蜂鳴器,、LED燈、警示界面,、警示文字提示用戶(hù)。
此外,,為了提高設(shè)備物質(zhì)識(shí)別能力,,提供了用戶(hù)補(bǔ)充譜圖功能,方便用戶(hù)在使用過(guò)程中不斷補(bǔ)充新的物質(zhì)譜圖,;為方便用戶(hù)使用設(shè)備,,提供了歷史數(shù)據(jù)管理、譜圖庫(kù)管理,、系統(tǒng)管理,、用戶(hù)切換等功能對(duì)設(shè)備進(jìn)行管理和維護(hù)。
2.2 領(lǐng)域設(shè)計(jì)
根據(jù)拉曼產(chǎn)品領(lǐng)域分析所得的領(lǐng)域共性和特性,,將軟件架構(gòu)劃分為UI交互層,、領(lǐng)域?qū)印?shù)據(jù)管理層和系統(tǒng)交互層,,如圖3所示,。
?。?)UI交互層,負(fù)責(zé)封裝與用戶(hù)的雙向交互,、屏蔽具體交互方式,。UI交互層又包括子系統(tǒng)UI和主控UI。其中,,子系統(tǒng)UI包括設(shè)備自檢,、用戶(hù)登錄、數(shù)據(jù)導(dǎo)出,、歷史數(shù)據(jù)管理,、譜圖庫(kù)管理、系統(tǒng)管理等基本功能,;主控UI包括測(cè)量,、顯示結(jié)果、詳情,、切換用戶(hù)和高級(jí)管理等功能,,為適應(yīng)不同的行業(yè)和用戶(hù),主控UI給出不同的應(yīng)用控制界面,。
?。?)領(lǐng)域?qū)樱?fù)責(zé)問(wèn)題領(lǐng)域或業(yè)務(wù)領(lǐng)域的抽象,、領(lǐng)域功能的實(shí)現(xiàn),。包括數(shù)據(jù)采集、預(yù)處理,、算法識(shí)別,、顯示策略、保存結(jié)果等功能,。
?。?)數(shù)據(jù)管理層,負(fù)責(zé)封裝各種持久化數(shù)據(jù)的具體管理方式,。
?。?)系統(tǒng)交互層,負(fù)責(zé)封裝硬件的具體交互方式以及封裝外部系統(tǒng)的交互,。
在上述功能資源中,,領(lǐng)域?qū)印?shù)據(jù)管理層和系統(tǒng)交互層將直接共享使用,;UI交互層部分共享使用,,大部分將重新設(shè)計(jì)。軟件構(gòu)架主要可變點(diǎn)包括以下幾點(diǎn):
?。?)數(shù)據(jù)采集,、識(shí)別算法,、顯示策略,根據(jù)具體應(yīng)用的不同,,調(diào)用不同的算法,。
(2)譜圖庫(kù),,根據(jù)不同的行業(yè),,配置不同的譜圖庫(kù)。
?。?)主控UI界面,,根據(jù)特定行業(yè)使用習(xí)慣重新設(shè)計(jì)。
?。?)子系統(tǒng)UI,,根據(jù)特定行業(yè)UI風(fēng)格,進(jìn)行局部調(diào)整,。
2.3 領(lǐng)域?qū)崿F(xiàn)
由于運(yùn)行平臺(tái)為WinCE,,為了得到一個(gè)開(kāi)放的、通用的拉曼系列產(chǎn)品,,本設(shè)計(jì)基于.NET Framework平臺(tái),,使用VC和C#語(yǔ)言開(kāi)發(fā)。其中識(shí)別算法,、網(wǎng)絡(luò),、驅(qū)動(dòng)、硬件控制等核心和底層功能采用VC實(shí)現(xiàn),;界面UI,、顯示、設(shè)備管理,、系統(tǒng)管理等功能使用C#實(shí)現(xiàn),。為方便數(shù)據(jù)維護(hù)和配置,系統(tǒng)配置和譜圖庫(kù)采用XML實(shí)現(xiàn),。
在軟件實(shí)現(xiàn)過(guò)程中,綜合考慮實(shí)際應(yīng)用,、模塊相對(duì)獨(dú)立,、操作簡(jiǎn)便等原則,采用面向?qū)ο蠹夹g(shù),、接口技術(shù),、設(shè)計(jì)模式、XML配置文件等實(shí)現(xiàn),。拉曼檢測(cè)儀軟件產(chǎn)品線部分核心資源如表1所示,。
3 拉曼檢測(cè)儀軟件產(chǎn)品線的應(yīng)用
應(yīng)用工程在領(lǐng)域工程成果的基礎(chǔ)上構(gòu)造新產(chǎn)品,。應(yīng)用工程需要根據(jù)每個(gè)應(yīng)用獨(dú)特的需求,經(jīng)過(guò)需求分析,、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn),,生成新產(chǎn)品。下面以拉曼珠寶檢測(cè)系統(tǒng)為例,,說(shuō)明應(yīng)用工程的過(guò)程,。
3.1 需求分析
拉曼珠寶檢測(cè)儀將建成更加完備的珠寶玉石譜圖庫(kù)及行業(yè)知識(shí)庫(kù),設(shè)計(jì)制造出更加符合專(zhuān)業(yè)用戶(hù)操作習(xí)慣的檢測(cè)平臺(tái)并力爭(zhēng)在業(yè)界難點(diǎn)問(wèn)題(如翡翠A,、B貨,,象牙等的檢測(cè))上實(shí)現(xiàn)技術(shù)突破、獲取差異化競(jìng)爭(zhēng)優(yōu)勢(shì),,為產(chǎn)品的市場(chǎng)推廣打下堅(jiān)實(shí)基礎(chǔ),。
一般拉曼檢測(cè)儀的普通用戶(hù)只關(guān)心檢測(cè)結(jié)果是什么,不關(guān)心拉曼譜圖,,也不關(guān)心更多的技術(shù)細(xì)節(jié),;而拉曼珠寶檢測(cè)儀的用戶(hù)是專(zhuān)業(yè)的用戶(hù),與普通用戶(hù)不同,,不僅關(guān)心檢測(cè)結(jié)果,,還關(guān)心譜圖、相關(guān)度,,經(jīng)常自行添加譜圖,,導(dǎo)出數(shù)據(jù)、生成檢測(cè)報(bào)告等,,還要根據(jù)檢測(cè)樣品的情況采取快檢和精檢模式,。將這些拉曼珠寶檢測(cè)儀個(gè)性化,特有的系統(tǒng)需求與領(lǐng)域需求比較,,即可劃分成領(lǐng)域公共需求和獨(dú)特需求兩部分,,得出了拉曼珠寶檢測(cè)儀系統(tǒng)需求規(guī)格說(shuō)明書(shū)。
3.2 系統(tǒng)設(shè)計(jì)
系統(tǒng)設(shè)計(jì)主要是在領(lǐng)域架構(gòu)基礎(chǔ)上,,結(jié)合系統(tǒng)獨(dú)特需求,,設(shè)計(jì)應(yīng)用的軟件架構(gòu)。根據(jù)需求分析,,軟件架構(gòu)需要作以下調(diào)整:
?。?)重新和調(diào)整設(shè)計(jì)
①主控界面:該界面提供測(cè)量,、導(dǎo)出,、生成報(bào)告、數(shù)據(jù)分析、添加到譜圖庫(kù),、切換用戶(hù)和高級(jí)等功能,;顯示檢測(cè)結(jié)果,包括物質(zhì)譜圖,、物質(zhì)名稱(chēng),、相似度、物質(zhì)屬性,、檢測(cè)次數(shù),、檢到珠寶次數(shù);還包括時(shí)間,、聲音,、電池電量等輔助功能元素。
?、谧V圖庫(kù)管理:由多庫(kù)顯示管理調(diào)整為只有珠寶玉石譜圖庫(kù)管理功能,,顯示元素、位置都作了調(diào)整,,界面更簡(jiǎn)潔,。
③添加譜圖庫(kù):由多庫(kù)添加譜圖庫(kù)調(diào)整為只有珠寶玉石譜圖庫(kù)添加功能,,顯示元素,、位置都作了調(diào)整,界面更簡(jiǎn)潔,。
?、芨呒?jí)界面:在功能分級(jí)中,由于海洛因檢測(cè),、選擇譜圖庫(kù)等功能模塊在本系統(tǒng)中去掉,,對(duì)功能按鈕位置和個(gè)數(shù)作了相應(yīng)調(diào)整。
?。?)新增功能
?、偃斯?duì)比分析:提供人工對(duì)比所有譜圖的功能,可以選擇譜圖庫(kù)中任意譜圖與檢測(cè)的樣品進(jìn)行對(duì)比,,同時(shí)對(duì)比的譜圖可以導(dǎo)出,。
②快檢和精檢模式:針對(duì)不同的應(yīng)用場(chǎng)合,,提供快檢和精檢模式,。其中,快檢應(yīng)用于一般工作場(chǎng)合,;精檢用于建庫(kù)或特定樣品細(xì)微差別鑒定場(chǎng)合。
3.3 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)的主要工作是遵照應(yīng)用架構(gòu),用領(lǐng)域可復(fù)用資源實(shí)現(xiàn)領(lǐng)域公共需求,,用定制開(kāi)發(fā)的構(gòu)件滿(mǎn)足系統(tǒng)獨(dú)特需求,,構(gòu)建新的系統(tǒng)。根據(jù)前述需求分析和系統(tǒng)設(shè)計(jì),,本文重新設(shè)計(jì)主控界面,、添加譜圖庫(kù)等功能模塊;增加人工分析,、兩種檢測(cè)模式等功能,;調(diào)整高級(jí)、譜圖庫(kù)管理,、系統(tǒng)管理等界面,;直接使用系統(tǒng)自檢、歷史數(shù)據(jù),、導(dǎo)出,、生成報(bào)告、數(shù)據(jù)分析,、切換用戶(hù),、修改密碼、用戶(hù)管理,、器件測(cè)試等功能,。最后進(jìn)行集成、測(cè)試,,形成拉曼珠寶檢測(cè)系統(tǒng),,其主界面如圖4所示。
由于采用了軟件產(chǎn)品線的開(kāi)發(fā)模式,,這個(gè)原來(lái)預(yù)計(jì)需要研發(fā)半年的系統(tǒng)只花了2個(gè)月的時(shí)間就完成了,。開(kāi)發(fā)效率、軟件質(zhì)量得到顯著提高,,工作量明顯減少,。
在拉曼檢測(cè)儀軟件產(chǎn)品線的設(shè)計(jì)和應(yīng)用過(guò)程中,采用演化方式,,將現(xiàn)有產(chǎn)品演化為產(chǎn)品線,。這種方法的優(yōu)點(diǎn)是通過(guò)對(duì)投資回報(bào)周期的分解、對(duì)現(xiàn)有系統(tǒng)演化的維持,,使產(chǎn)品線方法的實(shí)施風(fēng)險(xiǎn)降到了最小,。采用軟件產(chǎn)品線開(kāi)發(fā)的拉曼檢測(cè)儀,可以根據(jù)各個(gè)應(yīng)用領(lǐng)域?qū)嶋H需要而以極少的人力,、時(shí)間,、工作量等來(lái)研發(fā)出具體產(chǎn)品,由于軟件產(chǎn)品的主要成分是高可靠性、性能經(jīng)過(guò)驗(yàn)證的可復(fù)用構(gòu)件,,因此軟件產(chǎn)品的質(zhì)量也大大提高,。采用軟件產(chǎn)品線的模式已經(jīng)研制了拉曼安檢系統(tǒng)、拉曼珠寶檢測(cè)系統(tǒng),、拉曼監(jiān)管物項(xiàng)識(shí)別系統(tǒng)等一批拉曼產(chǎn)品,,大大推進(jìn)了企業(yè)產(chǎn)品化的效率。軟件產(chǎn)品線的建立需要企業(yè)有意識(shí)地,、長(zhǎng)期地努力才有可能成功,,要有一個(gè)構(gòu)建產(chǎn)品的好的核心資源庫(kù)、好的產(chǎn)品架構(gòu)以及好的管理(包括軟件資源,、人員組織和過(guò)程等)支持,。拉曼檢測(cè)儀軟件產(chǎn)品線的下一步工作是加強(qiáng)現(xiàn)有成果的深度和廣度。
參考文獻(xiàn)
[1] POHL K,,BCKLE G.Frank van der linder.軟件產(chǎn)品線工程[M].張佳驥,,譯.北京:國(guó)防工業(yè)出版社,2010.
[2] 姚建銓.奇異的光—激光[M].北京:清華大學(xué)出版社,,2000.
[3] 張友生,,王勇.系統(tǒng)分析師技術(shù)指南[M].北京:清華大學(xué)出版社,2009.