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