崔 潔,霍 杰,劉子陽,徐品烈
(北京中電科電子裝備有限公司,北京 100176)
一臺新型半導(dǎo)體專用設(shè)備的成功研發(fā),是橫跨電子、機械、自動化、光學(xué)和計算機等眾多學(xué)科,涉及機、光、電、軟件等眾多核心技術(shù)和高科技領(lǐng)域。所以,設(shè)備軟件是在特定的機械電氣硬件環(huán)境下運行滿足客戶的工藝要求。同時,設(shè)備軟件作為軟件的一部分,廣泛應(yīng)用于工業(yè)生產(chǎn)中。下面將從軟件的角度,結(jié)合專用設(shè)備的特點,具體介紹自頂向下的設(shè)備軟件的模塊化具體設(shè)計方法。
一般,半導(dǎo)體電子設(shè)備供應(yīng)商根據(jù)半導(dǎo)體市場需要、客戶的工藝要求,設(shè)計開發(fā)具備什么樣功能和性能的半導(dǎo)體專用設(shè)備;而要達(dá)到設(shè)備設(shè)計要求,需要機、電、軟件協(xié)調(diào)配合實現(xiàn)設(shè)備整機和各功能部件;然后通過裝配調(diào)試設(shè)備,最終滿足客戶工藝要求和市場的需要。另外,后續(xù)還需要對設(shè)備進行定期追蹤維護和技術(shù)升級。總起來說,設(shè)備開發(fā)的流程如圖1所示,是一個自頂向下、不斷細(xì)化的過程。

圖1 設(shè)備開發(fā)流程圖
自頂向下作為一種軟件工程化的設(shè)計思想,適用于設(shè)計各種規(guī)模的系統(tǒng)開發(fā),是一種逐步求精設(shè)計程序的過程和方法。軟件工程的目的是倡導(dǎo)工程的原理、原則和方法進行軟件開發(fā),軟件開發(fā)的流程是覆蓋整個軟件生存期的系統(tǒng)開發(fā)、運行和維護等全過程。
其中,瀑布式開發(fā)方法是經(jīng)典的軟件生命周期開發(fā)方法,是嚴(yán)格按照軟件開發(fā)的步驟進行實施的一種軟件開發(fā)方法。瀑布式開發(fā)方法將開發(fā)過程自上而下分為系統(tǒng)計劃、需求分析、系統(tǒng)設(shè)計、系統(tǒng)編碼、系統(tǒng)測試和系統(tǒng)運行維護6個階段。各個階段順序執(zhí)行,當(dāng)前活動接受上一項活動的工作結(jié)果,并作為輸出傳給下一項活動。同時評審該項活動的實施,若確認(rèn)則繼續(xù)下一項活動,否則返回到前面一個活動,甚至更前面的活動。具體軟件開發(fā)流程如圖2所示。

圖2 軟件開發(fā)流程
設(shè)備軟件是運行于電氣設(shè)計硬件平臺之上,驅(qū)動設(shè)備各個部件來完成系統(tǒng)的集成控制。從圖1、2不難看出,設(shè)備和軟件的開發(fā)流程無論是從過程還是時間控制上都是一致的。設(shè)備軟件主要根據(jù)設(shè)備機械結(jié)構(gòu)、電氣設(shè)計系統(tǒng),工藝特點,從軟件系統(tǒng)的主框架著手,細(xì)化系統(tǒng)構(gòu)成,自頂向下,逐步細(xì)化設(shè)計子系統(tǒng)的過程進行階段化、模塊化設(shè)計,具體包括分析、設(shè)計開發(fā)和測試階段完成設(shè)備軟件的需求分析、設(shè)計和實現(xiàn),以及測試維護。
在軟件工程思想中,模塊化是軟件設(shè)計的基本策略。模塊化設(shè)計的核心是保持模塊的獨立性,主要通過兩個方面來度量,一個是模塊本身的內(nèi)聚,另一個是模塊間的耦合。前者是模塊內(nèi)各個組成部分的相互聯(lián)系,后者是一個模塊與其他模塊間的聯(lián)系。模塊的獨立性愈高,模塊內(nèi)的聯(lián)系越強,模塊間的聯(lián)系越弱。因此,為了保證模塊化的獨立性高,主要通過加強內(nèi)聚和減少耦合來實現(xiàn)。設(shè)備系統(tǒng)由各個子系統(tǒng)(部件)組成,軟件系統(tǒng)設(shè)計過程也是子系統(tǒng)(部件)的設(shè)計過程,對應(yīng)設(shè)備軟件的模塊化設(shè)計。下面以切割清洗設(shè)備軟件設(shè)計為例,主要從模塊的內(nèi)聚和模塊間的耦合兩方面介紹設(shè)備軟件的模塊化設(shè)計。該設(shè)備軟件主要包含全自動上下料、切割和清洗等3個模塊,具體模塊化流程圖如圖3所示。

圖3 切割清洗設(shè)備軟件模塊化流程圖
內(nèi)聚是從功能的角度對模塊內(nèi)部的聚合能力進行度量。按聚合能力的從強到弱,模塊可以劃分為功能性、順序性、通訊性、過程性、時間性、邏輯性和偶然性模塊。
設(shè)備軟件的設(shè)計是以設(shè)備系統(tǒng)的功能實現(xiàn)為基礎(chǔ),尤其是各個部件的具體功能。因此,我們選擇功能性模塊進行設(shè)備軟件的模塊化設(shè)計,功能性模塊作為模塊內(nèi)聯(lián)系最強的一類模塊,其中所有的部分功能都結(jié)合在一起,用于完成一個單一的功能。例如在圖3中,切割清洗設(shè)備的全自動上下料模塊內(nèi),包含上片/預(yù)上片、傳輸和下片等子功能,傳輸內(nèi)又分從工作臺傳輸料到清洗臺和把下一個預(yù)作業(yè)料放到工作臺上兩個子功能。綜上所述,所有的子功能組合在一起就組成了全自動上下料模塊,實現(xiàn)了設(shè)備傳輸全自動化功能。
綜上所述,“一個模塊,一個功能”已成為模塊化設(shè)計的一條準(zhǔn)則。功能性模塊的高內(nèi)聚的特點以及設(shè)備系統(tǒng)的特點,功能性模塊成為了設(shè)備軟件設(shè)計的最佳首選。
軟件系統(tǒng)之所以劃分為若干模塊,是為了便于解決大問題,化整為零,但最后總要將各個模塊聯(lián)系起來,所以模塊間發(fā)生聯(lián)系是必然的。因此,為完成一個設(shè)備系統(tǒng)軟件除了考慮功能(實現(xiàn)什么)和邏輯(內(nèi)部怎樣)還需要考慮狀態(tài)(使用的條件與環(huán)境)的設(shè)計。
功能模塊間的理想關(guān)系是怎樣的,耦合對這一關(guān)系進行了說明,和內(nèi)聚類似,同樣從強到弱可以劃化為內(nèi)容耦合、公共耦合、外部耦合、控制耦合、特征耦合、數(shù)據(jù)耦合和非直接耦合等。作為相對比較弱的耦合方式,數(shù)據(jù)耦合是通過參數(shù)表進行模塊間交換數(shù)據(jù),實現(xiàn)模塊間數(shù)據(jù)通信,交換的數(shù)據(jù)都是比較簡單的變量,如果交換的是數(shù)據(jù)結(jié)構(gòu),就變成了特征耦合,耦合程度會比數(shù)據(jù)耦合稍高。
在設(shè)備系統(tǒng)中,各個部件間的過渡會通過一些連接件或者中間件實現(xiàn),設(shè)備軟件系統(tǒng)模塊間的設(shè)計主要通過數(shù)據(jù)耦合實現(xiàn),如圖3所示,自動上下料模塊的上片完成,或者下一個作業(yè)料傳輸?shù)焦ぷ魑缓髸ㄖ獙?zhǔn)切割模塊進行對準(zhǔn)切割功能,該功能完成后會通知上下料模塊進行傳輸,傳輸料到清洗位會通知清洗模塊進行清洗。總之模塊間的耦合關(guān)系通過簡單的開始、結(jié)束等變量就可以實現(xiàn)模塊間的聯(lián)系。另外,相對復(fù)雜龐大的設(shè)備軟件系統(tǒng)也可以選耦合相對數(shù)據(jù)耦合稍高些的特征耦合方法實現(xiàn)。
綜合上述,設(shè)備軟件設(shè)計不僅需要能實現(xiàn)設(shè)備的功能,滿足客戶的要求,而且要有一個良好的設(shè)計。這里,結(jié)合設(shè)備軟件具有獨特電氣硬件平臺環(huán)境的特點,最終選擇符合軟件工程化思想的自頂向下、逐步細(xì)化、高內(nèi)聚低耦合的模塊化設(shè)計進行設(shè)備軟件的設(shè)計,完成設(shè)備的工藝需求。