在1968年伴隨著軟件工程的概念提出,軟件工廠的概念也幾乎在同時被提了出來,最早提出軟件工廠概念的是R.W.Bemer。他是基于通用電氣公司為了開發(fā)一種提高軟件工程師生產(chǎn)力的新的軟件開發(fā)模式而提出的,在他的軟件工廠的設(shè)計里,通過使用標(biāo)準(zhǔn)化軟件生產(chǎn)工具、計算機(jī)接口和帶有歷史數(shù)據(jù)的數(shù)據(jù)庫組成的。而在1969年第一個標(biāo)榜自己的軟件組織為軟件工廠的公司是日本的日立公司;但是到了1975年以后,軟件工廠的概念才開始逐漸在日本和歐美的一些公司得到發(fā)展,如日本的NEC、東芝、富士通和三菱等公司。在此期間,軟件工程得到子決速的發(fā)展和提高,而軟件工廠大多都還處于探索和實(shí)踐階段,一直到最近幾年,隨著軟件外包的流行,軟件工廠才一又被提到學(xué)者們和各大軟件公司的面前。如美國的微軟公司、IBM公司以及中國的北大青鳥、東軟集團(tuán)和凱科思特(北京)科技有限公司等等雖然說已經(jīng)對軟件工廠做了一些研究,但目前人們對自動化軟件工廠的理解還是很模糊的。有鑒于此,提出了一種自動化軟件工廠的簡單模型,并對其可能使用的幾種實(shí)用技術(shù)進(jìn)行了初探。
1 軟件工廠的定義及其簡單模型
根據(jù)美國微軟公司的體系結(jié)構(gòu)設(shè)計師Jack Greenfield的定義,“所謂軟件工廠就是指為了支持某種特定應(yīng)用程序的快速開發(fā)而配置的開發(fā)環(huán)境。由此可以看出自動化軟件工廠應(yīng)該具有以下幾個特點(diǎn):
1)具有領(lǐng)域特性,一般上來講不同的領(lǐng)域具有不同的軟件工廠;
2)軟件開發(fā)過程是自動配置的,不需要或需要極少的編碼;
3)支持特定應(yīng)用程序的、特殊的、可配置的軟件開發(fā)環(huán)境;
4)能夠快速的開發(fā)特定的應(yīng)用軟件,從而大幅度減少軟件開發(fā)的時間和費(fèi)用,進(jìn)而提高軟件的開發(fā)效率。
根據(jù)軟件組件技術(shù)、軟件總線技術(shù)、工作流技術(shù)和軟件中間件技術(shù),給出軟件工廠簡單模型,如圖1所示。
2 領(lǐng)域標(biāo)準(zhǔn)與領(lǐng)域組件
領(lǐng)域標(biāo)準(zhǔn)和領(lǐng)域組件可以說是構(gòu)建自動化軟件工廠的基石。從當(dāng)今全球化的IT產(chǎn)業(yè)鏈來看,其過程是:標(biāo)準(zhǔn)、技術(shù)、設(shè)計凈制造、加工、包裝,全球采購與分銷,往復(fù)循環(huán);標(biāo)準(zhǔn)決定了制造,而制造又促進(jìn)了標(biāo)準(zhǔn)的完善。軟件科學(xué)雖然說是一門獨(dú)立的學(xué)科,然而把它看著成一門應(yīng)用學(xué)科更容易為社會大眾所接受,將軟件技術(shù)應(yīng)用于社會的各行各業(yè),并為相關(guān)的行業(yè)提供快速有效的強(qiáng)有力的服務(wù)。也正是由于有這種強(qiáng)烈的社會需求,軟件技術(shù)才從原始的程序設(shè)計模式進(jìn)化到軟件作坊模式,再進(jìn)化到現(xiàn)在的軟件工程時代和軟件工廠時代?墒巧鐣闲袠I(yè)多種多樣,龐大繁雜,不同的領(lǐng)域其標(biāo)準(zhǔn)、用戶要求和操作規(guī)范又差別很大,即使是同一領(lǐng)域的不同用戶,其區(qū)別也是很明顯的。因此,要想開發(fā)一個全部通用的應(yīng)用軟件或功能模塊都幾乎是不可能的。既然做通用的是不現(xiàn)實(shí)的,那么可以退而求其次,開發(fā)領(lǐng)域軟件和領(lǐng)域組件。圖1所示的一種自動化軟件工廠的簡單模型,就是在領(lǐng)域標(biāo)準(zhǔn)的涵蓋之下,為不同領(lǐng)域的快速軟件制造而設(shè)計的。
領(lǐng)域組件是以軟件構(gòu)件為基礎(chǔ)、結(jié)合領(lǐng)域內(nèi)的某個具體業(yè)務(wù)概念而實(shí)現(xiàn)的軟件模塊或子系統(tǒng)。它來源于軟件構(gòu)件卻又不同于軟件構(gòu)件。軟件構(gòu)件是一種定義良好的獨(dú)立、可重用的二進(jìn)制代碼,包括功能模塊、被封裝的對象類、軟件框架和軟件系統(tǒng)模型等。軟件構(gòu)件技術(shù)是基于面向?qū)ο蟮,以嵌人后馬上可以使用的即插即用型軟件構(gòu)件概念為中心,通過構(gòu)件的組合來建立應(yīng)用系統(tǒng)閉。而領(lǐng)域組件不僅是在開發(fā)時和運(yùn)行時的一個構(gòu)件,而且是整個軟件生命周期中的構(gòu)件,領(lǐng)域組件同時也是一個具體業(yè)務(wù)概念的軟件實(shí)現(xiàn)。領(lǐng)域組件不僅是在設(shè)計時所標(biāo)識的、在構(gòu)造時所實(shí)現(xiàn)的,以及在單元測試及集成測試時所測試的軟件產(chǎn)品,而且也是配置時所看到的產(chǎn)品。每個領(lǐng)域組件相應(yīng)于一組運(yùn)行時可獨(dú)立進(jìn)行配置的產(chǎn)品,它們可獨(dú)立于其他領(lǐng)域組件而存在,也可以被另一領(lǐng)域組件所代替而不必重新編譯系統(tǒng),從而實(shí)現(xiàn)真正意義上的即插即用‘圖i所示的一種自動化軟件工廠的簡單模型當(dāng)中,有下列主要領(lǐng)域軟件組件:
1)需求分析組件:按照應(yīng)用系統(tǒng)需求分析,使用工作流技術(shù)和軟件總線技術(shù)集成的領(lǐng)域組件。主要對手工處理后的系統(tǒng)需求,按領(lǐng)域標(biāo)準(zhǔn)的要求完成應(yīng)用系統(tǒng)的《需求規(guī)格說明書》,它通過配置領(lǐng)域需求分析組件庫的各種組件和集成,而形成的可以配置到領(lǐng)域軟件中間件的大型領(lǐng)域組件。
2)系統(tǒng)設(shè)計組件:依據(jù)需求分析組件所完成的《需求規(guī)格說明書》生成應(yīng)用軟件相應(yīng)的系統(tǒng)設(shè)計報告。主要包括應(yīng)用系統(tǒng)的體系結(jié)構(gòu)設(shè)計、組件之間的接口設(shè)計和數(shù)據(jù)設(shè)計。系統(tǒng)設(shè)計組件是一個大型的領(lǐng)域組件,它主要使用工作流技術(shù)和軟件總線技術(shù),通過配置領(lǐng)域設(shè)計組件庫中的各種組件集成而成,可以直接掛接到領(lǐng)域軟件中間件中使用。
3)組件配置組件:這是一個組件容器,可以說是一個中型的領(lǐng)域組件,主要是對應(yīng)用軟件所需要的組件進(jìn)行配置、擴(kuò)展和客戶化。由于所選擇的組件不一定完全滿足應(yīng)用軟件的要求(如接口和消息要求等),通過自動配置組件這個容器,可以自動對其進(jìn)行相關(guān)配置,并自動測試配置后的組件。
4)組件集成組件:這也是一個組件容器。它主要是根據(jù)應(yīng)用軟件的需求,對選定后的各級組件進(jìn)行集成以生成軟件產(chǎn)品,自動生成測試用例和進(jìn)行集成測試;同時也生成相應(yīng)的軟件產(chǎn)品的各種使用手冊和限制說明。
5)數(shù)據(jù)管理組件:按領(lǐng)域標(biāo)準(zhǔn)的要求,通過數(shù)據(jù)管理總線和調(diào)用通用數(shù)據(jù)組件庫中的相關(guān)組件,以組件的方式向領(lǐng)域軟件中間件提供不同的數(shù)據(jù)管理策略。如文件管理策略、數(shù)據(jù)庫管理策略等等。
6)網(wǎng)絡(luò)管理組件:按領(lǐng)域標(biāo)準(zhǔn)的要求,通過網(wǎng)絡(luò)管理總線和調(diào)用通用網(wǎng)絡(luò)組件庫中的相關(guān)組件,以組件的方式向領(lǐng)域軟件中間件提供不同的網(wǎng)絡(luò)管理策略。如有線網(wǎng)管理策略、無線網(wǎng)管理策略、互聯(lián)網(wǎng)管理策略等等。
3 領(lǐng)域軟件中間件技術(shù)
中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇,處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。根據(jù)IDC的表述:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。而中國科學(xué)院軟件所研究員仲萃豪形象地把中間件定義為:平臺+通信,這種定義雖然比較讓現(xiàn)在的人們所接受,但是也限定了只有用于分布式系統(tǒng)中才能稱為中間件。這類中間件是為了解決客戶端和服務(wù)器端的負(fù)載過重、跨平臺、傳輸不可靠等問題的。目前在社會上流行的大多數(shù)中間件均屬于這種中間件。
而領(lǐng)域軟件中間件則不同于這種傳統(tǒng)上的中間件的定義,它是基于某個特定應(yīng)用領(lǐng)域內(nèi),為相關(guān)領(lǐng)域的應(yīng)用軟件提供設(shè)計、開發(fā)、集成、部署、運(yùn)行和管理的集成化軟件平臺;它是在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,領(lǐng)域應(yīng)用軟件之下的可配置、可擴(kuò)展的軟件綜合架構(gòu)。圖1所示的一種自動化軟件工廠的簡單模型當(dāng)中,領(lǐng)域軟件中間件可以說是這個模型的核心部分(如圖1描述)。這里所說的領(lǐng)域軟件中間件控制器,其實(shí)它也是一個大型的領(lǐng)域組件。主要完成以下主要功能:
圖1軟件工廠簡單模型圖
1)支持并提供軟件總線技術(shù):這種總線主要是領(lǐng)域組件n置和插接,并對所有的組件進(jìn)行管理。如:配置、插接和管理需求分析組件、系統(tǒng)設(shè)計組件、組件配置組件、系統(tǒng)集成組件、數(shù)據(jù)管理組件和網(wǎng)絡(luò)管理組件等等。
2)支持并提供工作流技術(shù):可以按不同的工作流來組織和管理各級組件和各個組件之間的關(guān)系。如制造領(lǐng)域應(yīng)用軟件的工作流:需求分析~系統(tǒng)設(shè)計~組件配置,系統(tǒng)集成、系統(tǒng)測試等等。
至于在領(lǐng)域軟件中間件中,是不是支持分布式系統(tǒng),如何實(shí)現(xiàn)系統(tǒng)資源的共享和減輕客戶機(jī)c務(wù)器的負(fù)載和管理計算資源與網(wǎng)絡(luò)通信等等,領(lǐng)域軟件中問件控制器本身并不直接來處理,而是根據(jù)領(lǐng)域應(yīng)用軟件的不同需求,選擇和使用不同的領(lǐng)域組件來完成。這樣一來,不但簡化了模型的復(fù)雜性,也進(jìn)一步強(qiáng)化了責(zé)任到組件的功能。
4 工作流技術(shù)與軟件總線技術(shù)
工作流是針對工作中具有固定程序的常規(guī)活動而提出的一個概念。通過將工作活動分解成定義良好的任務(wù)、角色、規(guī)則和過程來進(jìn)行執(zhí)行和監(jiān)控,達(dá)到提高生產(chǎn)組織水平和工作效率的目的。1993年,國際工作流管理聯(lián)盟(Workflow Management COAlition,WFMC)的成立標(biāo)志著工作流技術(shù)開始進(jìn)入相對成熟的階段。為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作,WFMC在工作流管理系統(tǒng)的相關(guān)術(shù)語、體系結(jié)構(gòu)及應(yīng)用編程接口等方面制定了一系列標(biāo)準(zhǔn)。工作流管理聯(lián)盟給出的工作流定義是:工作流是指整個或部分經(jīng)營過程在計算機(jī)支持下的全自動或半白動化。在實(shí)際情況中可以更廣泛地把凡是由計算機(jī)軟件系統(tǒng)(工作流管理系統(tǒng))控制其執(zhí)行的過程都稱為工作流一個工作流包括一組活動及它們的相互順序關(guān)系,還包括過程及活動的啟動和終止條件,以及對每個活動的描述。工作流管理系統(tǒng)指運(yùn)行在一個或多個工作流引擎上用于定義、實(shí)現(xiàn)和管理工作流運(yùn)行的一套軟件系統(tǒng),它與工作流執(zhí)行者(人、應(yīng)用)交互,推進(jìn)工作流實(shí)例的執(zhí)行,并監(jiān)控工作流的運(yùn)行狀態(tài)。圖1所示的一種自動化軟件工廠的簡單模型當(dāng)中,工作流技術(shù)可以說貫穿于整個模型中的大中型領(lǐng)域組件中,因?yàn)閷τ谝恍┙M件來說,其本身就是一個子系統(tǒng),通過將其需要完成的業(yè)務(wù)分解成不同的工作流,再將工作流分解成不同的活動,進(jìn)而可以選擇、配置和使用不同的領(lǐng)域組件,從而制造出相關(guān)的領(lǐng)域組件和應(yīng)用軟件。
軟件總線技術(shù)是實(shí)現(xiàn)軟件工廠的另一個核心技術(shù),它和計算機(jī)的總線一樣,如ISA,PCI總線等,做軟件就像硬件的做法一樣,只要按照標(biāo)準(zhǔn)來做,就能夠無縫地進(jìn)行連接和通信。軟件總線負(fù)責(zé)在各個組件中傳遞信息流,將各個組件組織起來,完成一個具體的任務(wù)?偩是一個抽象的概念,在實(shí)際中總線也是由具體的技術(shù)構(gòu)成。例如,一個總線可能是一段代碼,負(fù)責(zé)調(diào)用各個組件;總線也能是一個消息系統(tǒng),負(fù)責(zé)收集和分派消息;總線也可能是一個工作流系統(tǒng),負(fù)責(zé)系統(tǒng)信息的流轉(zhuǎn);總線還可能是一個JMX,負(fù)責(zé)將消息路由到目標(biāo)組件。但無論總線的實(shí)現(xiàn)技術(shù)是什么,總線的特點(diǎn)就是采用一種松禍合的方式將組件組織起來。這樣,總線本身和掛接在總線上的組件就是松禍合的。如果要將總線分類的話,可以大致將其分為以下4類:
1)控制總線:主要控制各個組件的插接、激活、掛起、停止和撤出等;
2)數(shù)據(jù)總線:主要控制各個組件對不同數(shù)據(jù)的存取等;
3)消息總線:主要控制各個組件間的消息傳遞;
4)網(wǎng)絡(luò)總線:主要控制各個組件對不同網(wǎng)絡(luò)的傳輸。圖1所示的一種自動化軟件工廠的簡單模型當(dāng)中,軟件總線技術(shù)被用于許多部分,甚至大中型組件的內(nèi)部。而圖中所特別強(qiáng)調(diào)的是數(shù)據(jù)管理總線和網(wǎng)絡(luò)管理總線,在這兩種總線之中,它們都包含這4種總線,是這4種總線的復(fù)合體。
5 嵌入式軟件測試技術(shù)
目前,嵌入式方面的有關(guān)研究大都集中于硬件系統(tǒng)當(dāng)中,即使有些是軟件方面的,也大多數(shù)是用來探討如何有效地開發(fā)嵌入式的軟件來為嵌入式硬件服務(wù)的。然而就如何使用嵌入式的原理與方法來有效地進(jìn)行軟件的測試,則還不太多見。在上海創(chuàng)景計算機(jī)系統(tǒng)有限公司的LDRA Testbed系統(tǒng)當(dāng)中,其針對嵌入式系統(tǒng)特點(diǎn),專門提供嵌入式測試模塊,提供客戶完整的嵌入式測試解決方案,從單元測試、集成測試到系統(tǒng)測試,功能包括編碼規(guī)則檢查、軟件度量分析、數(shù)據(jù)流信息流分析、代碼覆蓋率分析及測試驅(qū)動/樁模塊自動生成。雖然說此系統(tǒng)是針對嵌人式系統(tǒng)的,但它體現(xiàn)了嵌入式測試模塊的思想。在本模型當(dāng)中,就是利用嵌入式測試模塊的思想,將嵌入式測試模塊嵌人到整個集成的軟件當(dāng)中,來對整個軟件甚至軟件的各個組件進(jìn)行測試。在使用本模型制造軟件的過程當(dāng)中,其主要是通過配置不同的組件進(jìn)而集成生成領(lǐng)域應(yīng)用軟件的。也就是說,各個組件都是經(jīng)過相當(dāng)?shù)臏y試以后才被引入組件庫,才被領(lǐng)域應(yīng)用軟件所使用的。因此對這種軟件的測試主要是軟件的功能測試及各個組件的接口及其關(guān)系的測試。通過應(yīng)用嵌入式測試模塊的思想,可以開發(fā)出一些可配置的嵌入式測試組件,并將它們放入到領(lǐng)域組件庫中;在集成制造領(lǐng)域應(yīng)用軟件的過程當(dāng)中,根據(jù)需要將配置后的嵌入式測試組件嵌入到相應(yīng)的地方(如業(yè)務(wù)流),以實(shí)現(xiàn)對相關(guān)部分的測試。同時,可以在軟件測試成功以后,根據(jù)需要卸載相關(guān)的嵌人式測試組件。
隨著軟件的生產(chǎn)模式的不斷變化,軟件工廠的研究與開發(fā)也將不斷的深入和細(xì)化。本文提出一種軟件工廠的粗框模型,并對其幾種實(shí)用的技術(shù)包括領(lǐng)域標(biāo)準(zhǔn)與領(lǐng)域組件、領(lǐng)域中問件技術(shù)、工作流技術(shù)與軟件總線技術(shù)以及嵌入式軟件測試技術(shù)進(jìn)行了初步的探索。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:關(guān)于自動化軟件工廠模型及其實(shí)用技術(shù)的探究
本文網(wǎng)址:http://www.oesoe.com/html/support/11121511102.html