引言
隨著中國(guó)正式加入世界貿(mào)易組織(WTO),中國(guó)企業(yè)迫切需要盡快地實(shí)現(xiàn)信息化以適應(yīng)即將到來(lái)的市場(chǎng)競(jìng)爭(zhēng),但是目前中國(guó)不過(guò)有1000多家大中型企業(yè)開(kāi)始實(shí)施ERP(EntERPriseResourcePlan,企業(yè)資源計(jì)劃),這個(gè)數(shù)字占中國(guó)企業(yè)總數(shù)的比例還不到2.9%。由于ERP軟件功能復(fù)雜、耗資巨大、維護(hù)成本相對(duì)較高,因此,研究如何借助于軟件工程的軟件重用思想和方法,提高ERP軟件的開(kāi)發(fā)效率,具有重大的意義。
軟件重用是指,使用專(zhuān)為重用而設(shè)計(jì)的、預(yù)先定義的軟件資產(chǎn)來(lái)構(gòu)造組裝軟件系統(tǒng)的過(guò)程。軟件生產(chǎn)線(xiàn)和CBSE是當(dāng)前軟件工程領(lǐng)域比較流行的軟件重用實(shí)踐活動(dòng),它們對(duì)工業(yè)化軟件開(kāi)發(fā)和維護(hù)都具有潛在的促進(jìn)作用。它們解決軟件重用問(wèn)題的思路有所不同:軟件生產(chǎn)線(xiàn)強(qiáng)調(diào)"自頂向下的重用",即從體系結(jié)構(gòu)或領(lǐng)域模型出發(fā)考慮系統(tǒng)的重用;而CBSE強(qiáng)調(diào)"自底向上的重用"即從系統(tǒng)最基本構(gòu)件塊搭建的方,式考慮系統(tǒng)的重用。兩者的結(jié)合是目前最理想的重用手段。
UML是當(dāng)今在面向?qū)ο箢I(lǐng)域占主導(dǎo)地位的標(biāo)準(zhǔn)建模語(yǔ)言,它融合了Booch、OMT和OOSE方法中的主要概念。它不僅可以支持面向?qū)ο蟮姆治雠c設(shè)計(jì),更重要的是能夠有力的支持從需求分析開(kāi)始的軟件開(kāi)發(fā)全過(guò)程。UML目前已經(jīng)稱(chēng)為軟件開(kāi)發(fā)行業(yè)的既定標(biāo)準(zhǔn),在當(dāng)前和未來(lái)開(kāi)發(fā)軟件的過(guò)程中,使用UML建模已經(jīng)稱(chēng)為軟件成敗的關(guān)鍵所在。但是,UML作為一種通用的建模語(yǔ)言,不可避免地喪失了某些重要特征我們歸納為以下幾點(diǎn):
UML沒(méi)有明確地提供可變點(diǎn)的描述方法。
一個(gè)軟件生產(chǎn)線(xiàn)是一組軟件系統(tǒng),它們共享通用的、受管理的設(shè)計(jì)和標(biāo)準(zhǔn)(或資產(chǎn)),這些特征滿(mǎn)足一個(gè)特定市場(chǎng)范圍或任務(wù)的明確需求,而且它們按照規(guī)定的方式由公共的核心資產(chǎn)庫(kù)開(kāi)發(fā)而成。軟件生產(chǎn)線(xiàn)通過(guò)抽取某一類(lèi)應(yīng)用系統(tǒng)的共性,建立可重用的核心資產(chǎn);再通過(guò)對(duì)核心資產(chǎn)的定制生成多個(gè)類(lèi)似應(yīng)用系統(tǒng)的實(shí)例。因此,可變點(diǎn)對(duì)于軟件生產(chǎn)線(xiàn)的體系結(jié)構(gòu)(模型)描述十分重要。UML作為一種通用的建模語(yǔ)言,并未對(duì)軟件生產(chǎn)線(xiàn)中可變點(diǎn)的定義提供明確的支持。
UML 語(yǔ)言對(duì)構(gòu)件設(shè)計(jì)和描述沒(méi)有明確的支持。
采用UML中的面向?qū)ο髽?biāo)記只能描述方法調(diào)用的交互類(lèi)型,無(wú)法描述構(gòu)件之間多樣的連接類(lèi)型;而且它們還不支持構(gòu)件的層次結(jié)構(gòu)的描述、系統(tǒng)族的定義等。
本文的后幾節(jié)打算按以下幾部分進(jìn)行描述。第2節(jié)分析軟件生產(chǎn)線(xiàn)的可變點(diǎn)問(wèn)題,然后提供一種可變點(diǎn)描述方法。第3節(jié)描述基于可重用構(gòu)件的軟件生產(chǎn)線(xiàn)描述方法。第4節(jié)對(duì)本文工作進(jìn)行了總結(jié)和展望。
軟件生產(chǎn)線(xiàn)的可變點(diǎn)
軟件生產(chǎn)線(xiàn)的體系結(jié)構(gòu)
穩(wěn)定而不失靈活性的體系結(jié)構(gòu)是一個(gè)成功的軟件生產(chǎn)線(xiàn)的基礎(chǔ)。體系結(jié)構(gòu)描述了軟件產(chǎn)品線(xiàn)應(yīng)用領(lǐng)域的業(yè)務(wù)體系結(jié)構(gòu)共性和個(gè)性、支持該業(yè)務(wù)體系結(jié)構(gòu)的信息體系結(jié)構(gòu)、應(yīng)用體系結(jié)構(gòu)和技術(shù)體系結(jié)構(gòu)。軟件生產(chǎn)線(xiàn)為獲得體系結(jié)構(gòu)的重用,必須依據(jù)"低耦合、高內(nèi)聚"的原則,設(shè)計(jì)能夠適應(yīng)變更的體系結(jié)構(gòu),這就要求在捕獲需求時(shí)使用域分析的方法,對(duì)歷史和前景進(jìn)行分析(歷史分析用于總結(jié)該類(lèi)系統(tǒng)需求的不變點(diǎn)和可變點(diǎn),前景分析用來(lái)預(yù)測(cè)系統(tǒng)需求今后可能發(fā)生的變化),得到不變和可變的功能需求和質(zhì)量場(chǎng)景。從體系結(jié)構(gòu)的各個(gè)側(cè)面來(lái)看,變更對(duì)體系結(jié)構(gòu)影響的程度從大到小依次為業(yè)務(wù)、位置、技術(shù)、組織、信息和應(yīng)用。要特別注意對(duì)族體系結(jié)構(gòu)可變點(diǎn)的實(shí)現(xiàn)。詳細(xì)設(shè)計(jì)的方案應(yīng)使含有可變點(diǎn)的構(gòu)件盡可能靈活地適應(yīng)可變點(diǎn)的變化,提高構(gòu)件的可重用性。
軟件生產(chǎn)線(xiàn)的可變點(diǎn)分析
關(guān)于軟件生產(chǎn)線(xiàn)的可變點(diǎn)描述,我們將以ERP軟件的"庫(kù)存子系統(tǒng)"為實(shí)例詳細(xì)闡述。
對(duì)于單個(gè)應(yīng)用系統(tǒng)而言,其可變點(diǎn)可以通過(guò)UML建模來(lái)實(shí)現(xiàn)?勺凕c(diǎn)可以作為類(lèi)的屬性來(lái)實(shí)現(xiàn),例如:倉(cāng)庫(kù)中的某項(xiàng)器材的庫(kù)存數(shù)量經(jīng)常處于變動(dòng)之中,這樣我們可以為器材類(lèi)添加一個(gè)"庫(kù)存數(shù)量"的屬性?勺凕c(diǎn)還可以通過(guò)繼承的方式來(lái)實(shí)現(xiàn),由同一父類(lèi)派生出多個(gè)子類(lèi),每個(gè)子類(lèi)完成特定的功能。這些都是標(biāo)準(zhǔn)UML語(yǔ)言可以支持的。
對(duì)于軟件生產(chǎn)線(xiàn),它的可變點(diǎn)存在于從需求分析直到設(shè)計(jì)、實(shí)現(xiàn)的各個(gè)階段。例如:兩個(gè)制造企業(yè)都要完成器材的出入庫(kù)的功能,但是,某個(gè)企業(yè)在器材入合格庫(kù)之間需要首先進(jìn)入待驗(yàn)庫(kù),而另一個(gè)企業(yè)則無(wú)需經(jīng)過(guò)器材檢驗(yàn)的步驟。這種系統(tǒng)層的可變點(diǎn)通過(guò)標(biāo)準(zhǔn)UML語(yǔ)言無(wú)法實(shí)現(xiàn)。軟件生產(chǎn)線(xiàn)的可變點(diǎn)描述既要實(shí)現(xiàn)同一產(chǎn)品族系統(tǒng)的集成,又要清晰地表現(xiàn)同一產(chǎn)品族內(nèi)單個(gè)系統(tǒng)之間的可變性。
軟件生產(chǎn)線(xiàn)的可變點(diǎn)描述
為了滿(mǎn)足上述的可變點(diǎn)要求,我們提出了一種基于"選擇模型"的軟件生產(chǎn)線(xiàn)描述方法。該方法充分利用了UML語(yǔ)言的擴(kuò)展機(jī)制,使用"Stereotype(范型)"描述軟件生產(chǎn)線(xiàn)的體系結(jié)構(gòu)中的可變點(diǎn),其優(yōu)點(diǎn)在于保證了與標(biāo)準(zhǔn)UML語(yǔ)言的兼容性,適合于廣大熟悉UML語(yǔ)言的開(kāi)發(fā)人員使用。此外,為了有效地管理整個(gè)軟件生產(chǎn)線(xiàn)的可變點(diǎn),我們采用基于"選擇模型"的方式支持軟件可變點(diǎn)的查找和控制。
圖1是我們定義的一個(gè)庫(kù)存系統(tǒng)軟件生產(chǎn)線(xiàn)的用例圖。該用例圖中的可變點(diǎn)定義引入了"可選用例"和"可選角色"兩個(gè)范型。圖2和圖3分別是依據(jù)該庫(kù)存軟件生產(chǎn)線(xiàn)生成的兩個(gè)實(shí)例應(yīng)用系統(tǒng):A企業(yè)的庫(kù)存系統(tǒng)用例圖和B企業(yè)的庫(kù)存系統(tǒng)用例圖。
類(lèi)似的擴(kuò)展還同樣可以應(yīng)用于其他所需的UML圖中,包括:類(lèi)圖、活動(dòng)圖、協(xié)作圖等。從原則角度考慮,圖中的每個(gè)元素,如:類(lèi)、關(guān)聯(lián)、繼承,實(shí)際上都是可選的或者可以使用一套元素的其他進(jìn)行替換。因此,擴(kuò)展機(jī)制必須保證每種元素的可變性都可以進(jìn)行定義。目前,我們采用的擴(kuò)展機(jī)制還不是十分完善,有待于今后進(jìn)行進(jìn)一步研究。
"選擇模型"的定義
為有效地控制上述UML模型的可變點(diǎn)將它們有效地連接在一起,定義了一個(gè)"選擇模型",它可描述為一個(gè)四元組{定制要求,解答,UML圖,動(dòng)作}。定制要求:依據(jù)該軟件生產(chǎn)線(xiàn)進(jìn)行定制的開(kāi)發(fā)人員會(huì)產(chǎn)生的問(wèn)題,解答:開(kāi)發(fā)人員做出的選擇,UML圖:列出對(duì)應(yīng)該選擇應(yīng)該選擇的相應(yīng)的UML圖;動(dòng)作:列出這種選擇相應(yīng)產(chǎn)生的動(dòng)作。具體樣例如圖4所示。
軟件生產(chǎn)線(xiàn)的構(gòu)件描述
雖然當(dāng)前大多數(shù)方法都表明支持基于構(gòu)件的軟件工程(CBSE),但是它們的重點(diǎn)通常集中在實(shí)現(xiàn)和發(fā)布階段,而且趨向于將構(gòu)件看作軟件開(kāi)發(fā)的"結(jié)果",而不是軟件開(kāi)發(fā)的一個(gè)重要組成部分。
本文參考文獻(xiàn)中提到的KbroA方法,針對(duì)ERP軟件的特點(diǎn),進(jìn)行了擴(kuò)充,提出以下的軟件生產(chǎn)線(xiàn)的構(gòu)件描述方法(CDES)。這種方法使得在分析和設(shè)計(jì)階段就是完全面向構(gòu)件的,而且將構(gòu)件的實(shí)現(xiàn)描述與具體的構(gòu)件標(biāo)準(zhǔn)COM+/EJB/CORBA)分離。該方法中的所有構(gòu)件采用一組UML圖形進(jìn)行描述。
CDES方法將構(gòu)件的描述分為三部分:管理層、規(guī)范層和實(shí)現(xiàn)層。管理層通過(guò)描述ERP軟件的管理特征,提供構(gòu)件的語(yǔ)義描述,主要通過(guò)用例圖和活動(dòng)圖描述。規(guī)范層定義了構(gòu)件對(duì)外的接口特征,即對(duì)應(yīng)它所能滿(mǎn)足的管理層功能需求,主要通過(guò)類(lèi)圖和順序圖描述。實(shí)現(xiàn)層定義如何通過(guò)底層的實(shí)現(xiàn)構(gòu)件和實(shí)現(xiàn)類(lèi)完成規(guī)范層定義的功能需求,主要通過(guò)類(lèi)圖、順序圖、配置圖、構(gòu)件圖描述。
為了滿(mǎn)足軟件生產(chǎn)線(xiàn)的體系結(jié)構(gòu)描述所需的的集成性和可變點(diǎn)特性,構(gòu)件的描述應(yīng)該始終與選擇模型息息相關(guān)。選擇模型指明了對(duì)于不同的應(yīng)用系統(tǒng)應(yīng)該如何進(jìn)行構(gòu)件的選擇。規(guī)范層的類(lèi)圖描述通常十分簡(jiǎn)單,它只描述該系統(tǒng)對(duì)外所暴露的屬性和特征。構(gòu)件的實(shí)現(xiàn)層類(lèi)圖通常是規(guī)范層類(lèi)圖的子類(lèi),為了滿(mǎn)足功能需求,通常還需要加入比規(guī)范層類(lèi)圖更多的新類(lèi)。
結(jié)束語(yǔ)
本文的研究成果源自于作者在海爾工裝設(shè)備公司和沈陽(yáng)飛機(jī)工業(yè)集團(tuán)公司兩個(gè)企業(yè)的物資供應(yīng)系統(tǒng)的開(kāi)發(fā)經(jīng)驗(yàn),本文的研究成果已經(jīng)應(yīng)用于某制造企業(yè)的"物資采購(gòu)供應(yīng)系統(tǒng)",我們?cè)诹硪黄髽I(yè)的庫(kù)存子系統(tǒng)中應(yīng)用上述的軟件生產(chǎn)線(xiàn)體系結(jié)構(gòu)描述,快速、有效地生成了新的實(shí)例應(yīng)用系統(tǒng)。同時(shí),我們完善了最初創(chuàng)建的軟件生產(chǎn)線(xiàn)體系結(jié)構(gòu),使其可以面向更多領(lǐng)域的庫(kù)存系統(tǒng)。
目前,我們的研究成果還不是特別完善。下一步還需要改進(jìn)軟件生產(chǎn)線(xiàn)中可變點(diǎn)的描述方法。"選擇模型"還需要進(jìn)行準(zhǔn)確的形式化描述,以期能夠?qū)崿F(xiàn)一定程度的ERP軟件自動(dòng)生成功能。我們還希望在軟件生產(chǎn)線(xiàn)的體系結(jié)構(gòu)描述中借鑒Rational等公司正在極力推動(dòng)的可重用軟件資產(chǎn)規(guī)范(Reusable Asset Specification),使其可以描述更加豐富的可重用軟件資產(chǎn)。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于UML和構(gòu)件的ERP軟件生產(chǎn)線(xiàn)描述方法研究
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1082065302.html