時間:2023-07-09 08:34:22
序論:在您撰寫軟件開發與定制時,參考他人的優秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。
[關鍵詞]數字化校園 軟件 定制開發 高職院校
隨著高職院校辦學規模的不斷壯大,數字化校園建設也提上了日程,數字化校園的基礎平臺建設較易實現,但軟件系統的建設卻不是十分順利。總的來說,學校在軟件建設時有兩種選擇:一是定制開發;二是采購成熟的商品軟件。學校需要什么樣的軟件產品?是定制開發還是采購成熟商品軟件?這是擺在學校領導面前的一個難題,因為軟件選擇的好壞直接影響到學校數字化校園建設的成敗。
1.定制開發軟件的優缺點分析
不同的學校,在管理模式、辦公流程上都存在很大差異,商品軟件很難滿足不同學校的需求,很多學校都希望按照自己的意圖來定制開發軟件。當然,學校在軟件定制開發模式上有多種選擇,一是學校自行組建開發團隊定制開發;二是由軟件公司根據學校的需求為學校量身定制開發;三是與軟件公司合作,共同定制開發。下面對定制開發軟件的優缺點作一個分析。
定制開發軟件的優點:(1)能完全按照學校的實際管理模式進行開發,能很好的滿足用戶的個性化的需求;(2)功能模塊清晰,冗余度低。
定制開發軟件的缺點:(1)開發周期長,存在很高的研發失敗的風險;(2)項目開發團隊的開發經驗和開發水平嚴重影響軟件性能;(3)學校的需求只是近期需求,或是部分人的需求,根據學校發展或領導更換,需求會發生質的變化,會導致很多功能模塊需要重新開發,增加開發成本;(4)無成型可參考的行業經驗和管理思想,開發人員可能一味的聽從使用部門或領導的要求,有可能把一些錯誤的或不合適的業務流程寫到軟件中去;(5)各功能模塊的正確性需要長時間試用驗證;(6)定制開發的軟件不具備通用性,必須配備一個技術團隊不斷的開發維護系統,由于軟件開發人員流動性大,后期維護難度很大,必定在人力成本和管理成本上付出巨大代價。
2.成熟商品軟件優缺點分析
學校在成熟商品軟件的選擇上也有多種模式,一是采購成熟的商品軟件,一次到位;二是采購成熟的商品軟件,然后根據學校的一些特殊需求進行二次開發。下面對商品軟件的優缺點作一個分析。
成熟商品軟件的優點:(1)經過大量用戶使用驗證,產品具有穩定性、可擴展性、健壯性、通用性和易維護性。(2)能夠快速實施部署上線運行,易于推廣使用,見效快。(3)風險小,只要學校在考察軟件時,選擇知名軟件商,在功能上能夠滿足學校的需要,能夠跑通學校的基本流程,基本上不用擔心軟件存在問題。
成熟商品軟件的缺點:(1)軟件的操作流程與學校的辦公流程不盡相同,需要學校改變觀念,適應軟件操作流程;(2)系統功能模塊較多,存在一定的冗余模塊。
3.高職院校數字化校園軟件建設的建議
高職院校數字化校園建設是一個長期積累的過程,特別是軟件建設,不能急于求成,在選擇軟件系統的時候要充分調研、綜合衡量,要遵循一定的原則:(1)功能上不能一味的追求強而全,能夠滿足學校大多數需要,能夠跑通學校的基本業務流程即可,百分之百滿足用戶需求的軟件是不現實的;(2)便于軟件能夠在短時間內普及推廣;(3)軟件具體良好的擴展性;(4)強有力的后期維護保障。
高職院校軟件建設到底選擇哪種模式好?這不能一概而論。如果學校選擇定制開發軟件,筆者認為有實力的院校最好自己組建開發團隊,自主定制開發。因為開發人員都是學校教職工,人員穩定、與業務部門溝通容易、便于各系統的集成并為后期系統維護、功能擴展提供強大的技術支持;如果學校開發水平有限,又想按自己的業務流程定制開發,則可選擇與軟件公司合作,聯合定制開發,學校也要組建開發團隊,全程參與整個軟件的開發、測試、部署、培訓、推廣使用等整個流程,這樣既可以鍛煉隊伍,也為軟件的后期維護和功能擴展提供技術保障;筆者不建議學校全全委托軟件公司定制開發,這種模式學校在經后的功能擴展和后期維護將會相當被動,因為軟件公司人員流動性很大,經過一段時間,原班開發人員基本不在原公司,軟件又是針對一個學校開發的,不具有通用性,軟件公司不可能長期投入大量人力為學校免費維護,學校將會付出巨大的代價。
軟件定制開發確實存在很大的風險,選擇定制開發模式,學校一定要組織人力全程參與,為軟件穩定運行和后期維護保駕護航。
如果學校購買成熟商品軟件,各方面的風險將大大降低,由于軟件具有通用性,有很多客戶使用,容易發現問題,公司可批量修改,維護成本低,學校也不用投入太多的人力就能保證系統的正常運行,但學校在使用軟件時,就得拋棄一些傳統的辦公模式,適應軟件的操作流程,這只是一個習慣問題,很容易解決。
通過上面的分析,筆者認為學校如沒有特殊的需求,采購成熟商品軟件利遠遠大于弊。
Abstract: This paper provides instructions on building a Man-hour quota system based on Access data base, refers to structure,piping,electrical, instrument, telecommunication, mechanical, HVAC, security, insulation, outfitting, painting, scaffolding, which combines with the characteristic of production reality of offshore engineering.
關鍵詞: 海洋工程;工時定額;Access 數據庫
Key words: offshore engineering;man-hour quota;Access data base
中圖分類號:P75 文獻標識碼:A 文章編號:1006-4311(2012)21-0058-02
0 引言
任何一個企業,都要按照市場經濟規律,建立符合自身要求的成本核算體系,編制和擁有自己的工時定額,作為參與市場競爭的計價依據。同時還要確定科學的計價方法和完善的信息數據庫,并將其作為企業管理和發展的重要內容。
蓬萊PL 19-3項目是中國海洋石油與康菲石油合作開發的最大的海上油田,包含六個生產平臺一個中心立管平臺以及“蓬勃號”FPSO,蓬萊 PL 19-3 連接調試項目組在對連接調試工時定額體系成功使用的基礎上,結合海洋工程項目的實際情況,開發了一套適用于海洋工程的工時定額體系,并利用Access數據庫工具開發形成了工時估算系統。
1 定額數據庫結構設計
本定額依據現行的工程施工及驗收規范、安全技術操作規程和現行勞動保護法律、法規、國家設計規范、各種類型具有代表性的標準圖集、施工圖紙、企業技術與管理水平、工程施工組織方案、工程具體結構和難易程度狀況、以及采用新工藝、新技術、新材料、新方法的情況等,根據項目的特殊性和技術含量等因素采用現場觀察測定法和類比法,進行工時定額的編制。它具有以下幾個特點:
1.1 包含兩個基礎工時定額數據庫,以滿足用戶不同的需求。包含粗估工時定額、精算工時定額兩個基礎工時定額數據庫,在進行施工管理及分包、投標,車間工時管理等活動時用戶可以根據自己的需求來選擇其中一種或兩種交叉使用,來進行工時估算。
1.2 覆蓋專業全面,分類合理。根據海洋工程的性質,本系統首先按專業進行劃分,分為結構、配管、電氣、儀表、通訊、機械、暖通空調、安全、保溫、舾裝、涂裝、腳手架、檢驗等專業。根據施工順序的相同性及作業要素的類似性,每個專業分為不同的作業,然后每個作業分為不同的規格,從而對應完成此項規格的作業需要消耗的時間。下面以精算工時定額結構專業為例,通過框架圖(圖1)的形式對本定額數據庫結構進行表述。
另外,數據庫中對每一個定額數據所包括的工作步驟、程序及未包括的工作情況都有詳細的備注說明。例如精算工時定額結構專業組對欄桿每米8.2人工時中不包含載荷試驗部分。
1.3 海上系數的應用。由于海上石油行業的特殊性,決定了大量的工作需要在海上完成。海上施工時,由于施工條件限制增加了相應的施工難度,故需要相應的海上施工系數作為修正。通過對幾個平臺各專業計劃工時與實際工時的比較及分析各專業的特點,定額中對不同的專業確定了不同的海上施工系數。所有的標準工時定額數據均以陸地的施工作為標準,故陸地系數默認為1.0。
2 工時估算系統計算原理
對應兩個基礎工時定額數據庫,本估算系統包含兩種計算模式。粗估計算模式指各專業以一個或幾個關鍵要素為參數來計算整個專業工時;精算計算模式指各專業按照施工的各個步驟分別計算相應的工時,從而比較準確地計算整個專業工時。計算原理為:
計算工時=定額所對應的工時*數量*施工地點系數*人工系數*綜合系數
人工系數是考慮人員的經驗和不同工機具的裝備水平應用可以直接影響施工的效率,故需要根據施工人員的經驗,不同經驗的人員配比以及不用水平機具情況等因素自主調整系數。綜合系數是考慮所有的標準工時定額估算數據均以適宜施工的氣候條件為基礎,故需要根據施工所在區域的氣候因素(如高溫、低溫、大風等影響施工的因素)自主調整系數。同時在考慮利潤因素時,可以在投標和分包時確定系數來實現。
3 工時估算系統軟件設計
為提高工程項目中查找和使用定額數據的效率,方便定額數據的維護,項目組在工時定額數據庫的基礎上開發了工時估算系統。
在過程控制中,控制系統往往各有不同。然而,無論控制系統的相同與否,其控制的最終目的都是要滿足對系統穩定性,準確性以及快速性的要求。為了達到上述目的,人們對控制器、調節器等進行了深入的研究。
本文主要介紹一種PID控制器參數整定軟件的開發及其應用,從軟件開發的背景、軟件開發工具的選擇,軟件功能實現的方法以及軟件界面的設計等多方面多角度的對其進行介紹。該軟件根據對過程模型的了解情況分別設有基于模型的參數整定,基于輸出數據的參數整定以及針對有豐富工作經驗的工作人員設有經驗整定功能。
1 軟件開發工具的選擇
在PID控制器參數整定的軟件中,不僅要有友好的人-機交互界面,更因其常常要對大量的數據信息進行處理,以及對整定結果進行實時、直觀的圖形化顯示等原因,要求開發工具既要有利于用戶界面的開發,又要有利于大量數據快速、準確的處理[1]。在科技發展日新月異的今天,編程語言也日趨多樣性,例如大家所熟知的C、C++、Fortran、Visual Basic(VB)、Matlab等,而其中VB在界面的設計具有其獨到之處,與此同時Matlab在數據處理方面更是許多編程語言所不能及的,若能將這兩種語言相互結合,則既可以實現友好的人-機交互界面又具有強大的數據處理功能。
2 軟件參數整定算法選擇與功能設計
好的軟件需要有好的界面,更需要有很好的核心內容,這樣才不至于“虛而不實”,因此對于一個標準的PID控制器參數整定軟件來說其控制算法無疑是這個軟件的核心部分,只有選擇了合適的PID參數整定算法,才能得出比較優秀的PID控制器參數,才能達到理想的控制效果。
軟件在算法的實現方面,采用VB與Matlab混合編程,將VB的友好界面與Matlab強大的運算功能相結合,當用戶在界面中輸入想要實現操作的命令,后臺將自動運行Matlab,實現對PID控制器參數的整定,與此同時將整定結果第一時間反應到界面上,使用戶可以很直觀的看到軟件整定的結果。ActiveX技術的運用為軟件功能的實現做了很好的鋪墊。在Visual Basic中,只需要兩句命令:
Dim Matlab As Object
Set Matlab=CreateObject"Matlab.applicetion"
即已完成Visual Basic與Matlab混合編程的一大部分工作。
3 軟件用戶界面的設計
本軟件界面設計充分利用Visual Basic編程語言中的優點,控件直觀、可視化效果良好,事件觸發信息明確,編程實現較為簡單,易于編譯調試等優點[2]。由于軟件要實現的功能較多,且其中各有不同,故建立多個form窗體,不同窗體實現不同功能,而不同的窗體,在軟件的主界面中均有快捷鍵,用戶在進入軟件后,只需點擊所要實現的功能,即可進入相應的界面,操作起來既簡單又方便。例如,當點擊Command1時,只顯示窗體1,則其實現命令如下:
Form1.Visible=True
Form2.Visible=False
Form3.Visible=False
只需簡單的幾行命令就可以實現不同界面切換自如的功能。
4 總結與展望
本軟件可以實現多種方法對PID控制器參數整定,用戶可根據具體需要來選擇參數整定的算法。其中包括Z-N法,內模控制法,直接綜合法,粒子群優化算法以及VRFT算法[3]。另外用戶也可以根據實際系統中被控對象模型的已知情況選擇基于模型的PID控制器參數整定算法或者基于控制系統輸出數據的PID控制器參數整定算法。與此同時,本軟件還設有經驗整定功能,即用戶可以根據多年的經驗來完成對PID控制器的參數整定。
我們可以通過ActiveX技術實現VB對Matlab的調用,實現了對PID參數快速整定,并將其分別以圖形,數據等形式直觀的顯示在界面上。
最后,在軟件基本功能得以充分實現的情況下,對軟件界面進行友好化,根據軟件界面的設計原則,對軟件界面進行設計,從而制作出友好的人-機交互界面。
1.引言
隨著企業的不斷發展,信息資產的不斷壯大,標準而統一的管理方式越來越得到重視。在終端維護的領域中,為減少環境的復雜度,降低信息系統推廣成本,提高管理和維護效率,終端標準化配置是必要的。然而在維護這些標準化配置的過程中,很多操作都是重復的,耗時的。《終端軟件安裝一鍵定置工具》(以下簡稱《軟件》)以應用軟件自動腳本配置為核心,實現多應用軟件的統一配置、一鍵打包、自動安裝的功能,從而提高終端軟件維護效率,減免人為操作的煩瑣和錯誤。
2.設計原理
桌面應用軟件的安裝操作以事件驅動為原理,即通過鼠標點擊、鍵盤敲擊等事件來觸發軟件下一步動作,要想實現應用軟件的自動安裝則必須按照一定的順序在既定的時機對應用軟件上的組件(控件)發送特定的事件,從而驅動軟件完成一系列動作,實現對目標軟件進行一系列操作的定義我們稱之為腳本錄制。將我們需要的操作錄制成腳本,可以實現自動、準確、重復的操作,提高執行效率。
腳本錄制在軟件測試中廣泛被應用,本軟件基于腳本錄制的原理,通過Hook技術獲取應用窗體控件信息,通過本軟件提供的功能先控件發送特定事件,完成安裝腳本的錄制。最后通過對錄制好的軟件進行管理,實現多應用軟件安裝腳本組合,最終導出完整的執行腳本。
本軟件錄制的腳本符合autoit腳本標準,通過autoit工具將腳本和源安裝文件統一打包成可執行文件,實現終端軟件安裝一鍵定置。
3.主要特點
(1)、兼容性好,《軟件》定置的軟件可以在不同的windows桌面環境自動運行。
(2)、配置簡易,只要理解自動安裝的工作原理,就可以簡單方便的配置軟件自安裝腳本。
(3)、擴展性強,《軟件》提供了基本的自動配置操作,同時也集成了自定義操作的輸入,只要熟悉autoit腳本就可以做出更為復雜的定置執行包。
4.具體功能
《軟件》包含了如下幾個功能模塊:自安裝腳本錄制、自安裝腳本管理和腳本編譯模塊。模塊具體功能如下:
(1)、自安裝腳本錄制:該模塊提供了制作應用軟件自安裝腳本的功能,通過鉤子技術實現對應用軟件句柄信息的獲取,然后再通過界面完成軟件安裝配置,最后通過流的方式叫腳本獨立保存在文件中。
(2)、自安裝腳本管理:該模塊提供對錄制腳本刪除、打包導出錄制腳本功能。
(3)、腳本編譯模塊:該模塊實現了對導出的自安裝腳本的封包工作,最終輸出一鍵自安裝包。
5.主要操作模塊
5.1錄制自安裝腳本
用戶通過系統主界面進入到“創建自動安裝腳本”界面,此時程序會在系統注冊鍵盤和鼠標的鉤子程序。選擇要錄制的文件,點擊“運行程序”按鈕,開始自安裝腳本的錄制。應用軟件啟動后,根據界面提示組合鍵“ctrl+s”啟動鼠標鉤子,此時用鼠標點擊應用軟件,激活應用軟件窗口,然后再按組合鍵 “ctrl+c”停止鼠標鉤子,程序將捕獲到應用軟件的句柄。通過該句柄我們可以獲取到應用軟件的組件信息,如圖1所示:
圖1
有了應用軟件的控件信息后,我們在通過程序提供更多操作選項操作應用程序上的控件。如點擊“確定”按鈕,如圖2所示:
圖2
自動安裝腳本是一種類似BASIC腳本語言,它運行于AutoIt環境。只要我們初步了解autoit的運行原理和簡單的語法規則,我們就可以做出復雜的而統一的自動操作。完成對應用軟件的控件操作后,點擊“保存”按鈕,系統將錄制腳本和應用軟件信息以流對象的方式保存到硬盤上。然后我們再通過自安裝腳本管理模塊去管理這些流對象。
5.2自安裝腳本管理
《軟件》在啟動后,會從特定的目錄下將錄制好的自安裝腳本對象讀取到內存顯示到界面,我們可以對這些腳本對象進行刪除、打包等操作。選擇需要打包的文件,添加到“打包文件”列表,然后點擊“導出腳本”按鈕,彈出“導出自動安裝腳本文件”界面,如圖3所示。通過該功能可以實現多應用軟件的自安裝腳本打包。
圖3
5.3腳本編譯模塊
有了打包好的腳本文件后,我們就可以編譯我們需要的自動安裝可執行文件了。編譯這些文件需要autoit環境,為此我們需要安裝autoit-v3-setup.exe(免費軟件)。右鍵腳本文件,選擇編譯,得到自安裝可執行文件,如圖4:
圖4
6.軟件應用
根據目前終端維護的需要,使用該系統定置出一款通用配置多應用安裝包,輸出腳本文件如下:
圖5
最后編譯成自安裝文件,將安裝文件一并封裝:
圖6
1.引言
外壓容器失穩教學實驗是將容器在外壓作用下造成失穩變形的一種典型實驗,具有操作簡單、結果直觀等特點,故長期被作為過程裝備與控制工程專業開設專業實驗課的必選實驗。由于早期實驗測試程序是基于VB6.0開發的,一直以來存在兩個顯著的缺點:一是功能拓展性較差,測試數據和參量有限;二是兼容性不好,目前無法應用于Win7,Win8及64位系統。為此,筆者針對傳統驗證型外壓容器失穩實驗的不足,采用大型工程軟件MATLAB開發外壓容器穩定性實驗測試程序和控制系統,便于監控外壓容器穩定性,確保實驗過程的安全性。
2.外壓容器失穩理論及外壓容器實驗測試系統介紹
2.1外壓容器及其穩定性說明
在外壓作用下,筒體突然失去原有形狀的現象稱為彈性失穩。容器發生彈性失穩將使容器不能維持正常操作,造成容器失效。外壓圓筒在失穩以前,筒壁內只有單純的壓縮應力。在失穩時,由于突然的變形,在筒壁內生了以彎曲應力為主的附加應力,而且這種變形和附加應力一直迅速發展到筒體被壓癟或發生褶縐為止。所以外壓容器的失穩,實際上是容器筒壁內的應力狀態由單純的壓應力平衡躍變為主要受彎曲應力的新平衡。
容器的失穩形式有整體失穩和局部失穩兩種。本實驗測試系統研究的是實驗試件整體失穩的情況,整體失穩根據失穩方向分為側向失穩和軸向失穩兩種[1]。
容器由于均勻側向外壓引起的失穩叫做側向失穩。側向失穩時殼體橫斷面由原來的圓形被壓癟而呈現波形,其波形數可以等于兩個、三個、四個。軸向外壓則引起容器軸向失穩,變形為徑線由直線變為曲線。
2.2外壓容器實驗及測試系統說明
外壓容器失穩實驗是將容器在外壓作用下造成失穩變形的一種教學實驗,也是壓力容器失效破壞的一個典型教學演示實例,它具有操作簡單、結果直觀等特點,被作為過程裝備與控制工程專業開設專業實驗課的首選實驗。國內高校如浙江大學、南京工業大學等一直致力于穩定性測試裝置的研究和開發。
3.基于MATLAB軟件開發外壓容器穩定性實驗控制系統
3.1MATLAB軟件簡介
MATLAB是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統非交互式程序設計語言的編輯模式,代表了當今國際科學計算軟件的先進水平。
3.2基于MATLAB軟件開發實驗系統
以下為初始界面的源代碼
functionvarargout = untitled1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled1_OpeningFcn, ...
'gui_OutputFcn', @untitled1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
ifnargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function untitled1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
functionvarargout = untitled1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
4.總結
應用先進工程計算軟件MATLAB實現外壓容器穩定性實驗測試程序的開發,為外壓容器失穩實驗提供了更加良好的測試環境,也為相關教學提供了一個更加便捷的工具。同時本研究克服外壓容器穩定性傳統實驗測試系統兼容性和功能拓展性不好等問題,使得系統控制方面更為完善。由于筆者水平和時間有限,因此開發的實驗系統仍有不足之處,希望在今后的研究中逐步克服,以期為過程裝備與控制工程專業教學盡綿薄之力。
“軟件危機”問題日益嚴重,主要表現在:軟件開發效率低,開發周期長,開發成本高,可維護性和適應性差,不能很好地滿足用戶個性化和頻繁的業務變化的需求.而日益激烈的市場競爭和經濟全球化,賦予軟件工程以新的特征:有效率有效用地滿足用戶個性化需求的定制化,快速響應和適應市場及業務的變化,以及低成本高收益等.
在軟件行業,大多數開發單位還處于手工勞動階段,軟件開發活動是針對單一用戶的具體需求,面向單個產品來組織的.近年來,產業界將“軟件作坊”轉變為“軟件工廠”的呼聲越來越高,試圖將軟件開發作為一種生產制造過程,像在生產線上生產物質產品一樣,大規模生產軟件產品.但目前的現狀并沒有達到期望的目標,當軟件開發項目比較大時,軟件危機依然存在,其中一個主要的原因是,認識一個系統的過程和方法同用于分析、設計和實現一個系統的過程和方法不一致,對軟件開發過程的認識不夠明確,同時,也缺乏合理和實用的軟件過程模型.為了解決軟件開發過程中的瓶頸問題,提高軟件業的競爭力,人們提出一些旨在促進軟件工程化的開發思想和方法,如軟件復用、過程重組面向對象的軟件工程基于構件的軟件工程和領域工程等.本文在這些軟件工程方法的基礎上,提出面向大規模定制的軟件開發模式(softwaredevelop?mentformasscustomization,SDMC),將大規模標準化軟件開發與面向單個用戶定制開發有機結合起來,既滿足用戶的個性化需求,又達到規模經濟的效益.
2面向大規模定制的軟件開發模式
1970年,托夫勒在其《FutureShock)(未來的沖擊)一書中提出了一種以類似于標準化或大規模生產的成本和時間,提供滿足用戶特定需求的產品和服務的生產方式的設想.1987年,StanDavis在《FuturePerfec)(未來的理想生產方式)一書中首次將這種生產方式稱為“masscustomization”,即大規模定制生產,簡稱mc.這種能滿足用戶的真正需求而又不犧牲效益和成本的新的生產方式目前在制造業得到了較快的發展,并作為一種有效的競爭手段逐漸被企業所采納.簡單地說,大規模定制是以大規模的生產成本和時間滿足用戶的個性化需求,其基本思想是:將個性化定制產品的生產問題通過產品重組和過程重組轉化為或部分轉化為批量生產問題.
與物質產品相比較,軟件產品的生命周期更短,受市場和客戶需求變化的影響更大,特別是領域應用軟件,每個企業的產品結構、規模大小和管理方式都不一樣,業務流程也各不相同,而且隨著市場的變化,企業重組和持續業務過程改善,都造成業務過程的動態不穩定.這要求軟件產品不僅在開發過程中要滿足多樣化的業務需要,而且在企業應用過程中,要能動態適應不斷變化的業務過程.因此,軟件產品應比物質產品更具有柔性和可定制性.根據不同軟件產品的特點,存在兩種軟件開發形式,如圖1所示.
①標準成品軟件(off~the~shelf)開發.面向較大規模的客戶群,開發和銷售成本低,相對價格便宜,交貨迅速,但滿足用戶特殊需求的集成和修改費用高.
②單個軟件定向開發(one^ff).完全按用戶需求組織開發,能貼近用戶需求,但開發費用高,周期長,而且可維護、可升級性差.面向大規模定制的軟件開發模式是以上兩種開發方式優點的結合,既可以快速響應個性化客戶需求,又可以實現標準軟件開發的效率和成本.
如圖2所示,SDMC除繼承領域工程和基于構件的軟件工程方法的特點外,還將并行工程的思想融于產品開發過程中.SDMC改變了傳統的面向單個軟件的開發方法,是對某一領域現在和未來市場、整體和細分市場以及相應的用戶群體進行分析,開發出對該領域現存和潛在用戶均有良好適應性和定制性的系列產品,即面向產品族開發,以實現范圍經濟與規模經濟的結合.可重用構件是實現SDMC的基石.采用基于構件的開發方法,可以將一個復雜的軟件產品分成多個構件的集合,相當于將復雜的單一問題簡單化,因此更便于軟件的管理、維護和升級.理論上,構件是與具體產品無關的相互獨立的單元,可以在廣泛范圍內共享和重用,是解決大規模軟件工程問題的有效方法.構件可以外購,還可以外協構造,這樣可以充分利用外部資源,縮短開發周期.
SDMC運用并行工程的思想,集成地、并行地開發軟件產品和過程,從軟件開發的開始就充分考慮軟件生命周期中所有因素,包括時間、成本、質量和用戶需求等.
綜上所述,SDMC繼承和發揚了領域工程、基于構件的軟件工程和并行工程的思想和方法,在系統方法指導下,用全局優化的觀念,充分利用內外部資源,以大規模生產軟件的效益,開發滿足用戶個性化需求的軟件產品.其目標是:
①縮短產品開發周期,以實現快速響應;
②提高開發規模,降低開發成本,以實現規模經濟;
③滿足用戶個性化需求,以實現范圍經濟.
3面向大規模定制的軟件開發過程
傳統的軟件開發過程模型是針對單個產品開發而提出的,將軟件開發過程分成需求分析、設計、編碼、測試和交付等串行的幾個階段.文獻分別給出了面向重用的過程模型.文獻[7]將制造業的產品生產過程分為新產品形成過程和訂單產品制造過程.本文根據SDMC的目標和特點,給出如圖3所示的面向大規模定制的軟件開發過程模型.與制造業一樣,將軟件開發過程分為面向市場的新產品開發和面向用戶的定制兩個循環.
圖3面向大規模定制的軟件開發過程模型
面向市場的新產品開發是根據市場的現在和未來需求收集信息,運用相關知識構造某一應用領域問題的解決方案,開發新的產品.新產品開發不是面向單個產品,而是面向產品族,建立面向產品族的領域框架和可重用構件,并在過程設計環節,設計以領域框架和構件為基型的軟件定制過程,為定制具體應用系統打下基礎.這一循環,所需時間相對較長,稱之為慢循環.面向用戶的定制過程是根據用戶的具體需求,在新產品開發過程中形成的面向產品族的領域框架和定制過程的基礎上,利用已有構件,進行配置設計和定制開發,形成滿足客戶個性化需求的軟件產品.這一過程在客觀上必須是一個快循環,以快速響應用戶需求,稱之為快循環.
SDMC主張軟件開發單位通過業務過程重組,將軟件開發的兩個循環相互分離:新產品開發部門負責面向市場的新產品開發,同時為軟件定制準備基型;定制部門利用可變型的基型,按訂單定制,快速滿足用戶的個性化需求.兩個循環相輔相成,能否完善結合的關鍵是可定制的領域框架和可重用的構件.每個循環均強調并行,并適時將演化模型[1]融入并行開發和定制過程中.
一般說來,軟件開發單位對兩個循環都應重視.新產品開發循環具有創新性,將給開發單位帶來創新的產品,增強競爭優勢.定制循環雖然不會有重大創新,但其優勢是在“快”上,能快速響應用戶的個性化需求.
4面向大規模定制的軟件產品族
可定制的產品族模型是實現SDMC的關鍵.因此,SDMC重點在于研究建立合理的產品族結構的軟件設計方法,不再每次只設計一個產品,而是同時完成一組產品的設計,即對整個產品族進行綜合設計,從而可以挖掘出產品族中的相似性信息,設計出面向產品族的可定制的領域框架和可重用構件.并利用并行工程的觀點,以時間、成本用戶滿意度為目標,集成地并行地設計產品族及定制過程,同時盡可能考慮到影響軟件定制過程的約束條件和條件約束下的軟件配置機制.
軟件產品族是利用共享資源構造的某一具體領域軟件產品的集合,是一系列相似產品的統一表達.軟件產品族對具體領域的相似問題進行歸類,用相似的解決方案來解決,并試圖覆蓋同一業務領域的所有現實或潛在需求.面向大規模定制的軟件產品族體系結構如圖4所示.
軟件產品族由領域框架、構件、定制過程和定制機制等部分組成.按照從用戶需求到軟件產品形成,在業務定義、技術方案和物理實現3個層面上建立領域框架模型和構件模型,層與層之間存在映射關系,右邊層次的模型是左邊層次的模型的變換,這樣從左到右,形成一種生成、推導和約束關系.
(1)業務模型.是根據用戶和市場需求,對業務對象、業務過程、業務服務和業務規則進行形式化描義莫型.在軟件產品族體系結構中,業務層面上描述的領域框架和構件,分別稱為領域框架業務模型和構件業務模型.
(2) 技術模型.是對適應業務模型的應用系統技術解決方案的一致性描述.在軟件產品族體系結構中,技術層面上描述的領域框架和構件,分別稱為領域框架技術模型和構件技術模型.
(3) 實現模型.是對實現技術模型的物理系統的一致性描述.在軟件產品族體系結構中,技術層面上描述的領域框架和構件,分別稱為領域框架技術模型和構件技術模型.
(4) 領域框架.是針對某一具體領域,包括構件及構件之間相互關系和約束規則,可定制、可擴展領域通用的軟件產品族架構.
(5) 構件.是在定義好的體系結構相關環境中具有明確功能的獨立的、可替代、可重用的系統組成部分.
(6) 定制過程.針對具體的開發環境所制定的,個性化定制具體應用系統的規程,包括與應用系統實現過程相關的規范、工具及相關文檔.
(7) 定制機制.包括約束條件^配置機制以及業務模型技術模型和實現模型之間的映射關系.約束條件是約束應用系統定制的環境因素和對定制過程的考慮,配置機制是條件約束下的對領域框架實例化和對構件進行配置的規則和推理機制.
基于產品族的軟件開發目標是提高產品族中的構件的通用性,從總體上降低開發成本,縮短交貨期.對現有客戶需求的理解和對未來需求的預測,及對客戶群需求的系統分析,是產品族規劃的關鍵,而產品族規劃又是面向產品族軟件開發的重要環節.
5面向大規模定制軟件開發的產品集成過程模型
傳統的軟件開發方法強調軟件實現技術,而忽略了對軟件開發過程的規范和管理.近年來,軟件開發過程越來越受到產業界和學術界的重視,如CMM(能力成熟度模型)就旨在顯著提高軟件開發過程管理能力[8].本文在制造業面向大規模定制的集成產品和過程模型基礎上,結合軟件產品的特點,給出了如圖5所示的面向大規模定制軟件開發的產品集成過程模型.
如圖5所示,面向大規模定制軟件開發的產品集成過程模型呈二維結構.時間維描述的是從客戶訂單到產品交付的過程,即軟件開發過程(包括新產空間維描述的是將不同產品的相似部分進行歸類處理,以增加軟件開發規模,可采用產品模型(包括領域框架模型構件模型和應用系統模型)來描述.
SDMC在時間維優化的關鍵是有效地將定制分離點(customizationdecouplingpoint,CDP)后移.CDP是軟件開發過程中由與訂單無關的、面向市場的預測型大規模開發轉向面向用戶的定制的轉換點.推遲CDP可以減少由于用戶訂單特殊需求而進行定制在時間和資源上的開銷.最理想的作法是在交貨點定制,即接到用戶訂單后,及時在用戶現場根據用戶需求完成產品開發和交付.實現CDP后移,需要準確預測市場需求,構建好可定制的領域框架,預制足夠的可重用構件,為產品定制做好充分的準備.時間維優化可以顯著提高開發效率.
SDMC在空間維優化的關鍵在于如何通過相似性原理和標準化技術有效擴大構件和框架的優化范圍并提高它們的可重用性.在軟件行業,大約65%的開發成本花費在重復系統開發上.對不同應用系統進行分解,可以發現存在大量相似性,可以對這些相似性內容進行歸類,形成領域內或領域間共享的
6面向大規模定制的敏捷軟件開發組織
根據SDMC的二維優化模型,顯然在一個地區或行業推廣實施大規模定制軟件要比僅在一個開發單位實施可以取得更好的效果.大規模定制軟件的最佳的模式應是在全球范圍進行推廣實施.事實上,軟件行業的全球化和專業化分工也正在促使大規模定制軟件開發擴展到全球范圍.如何組織廣泛范圍內的軟件大規模定制?本文主張將敏捷制造思想應用到軟件開發中,建立面向大規模定制的敏捷軟件開發組織.
敏捷制造是為實現企業生產制造的敏捷性,采用現代通信手段,通過快速配置各種資源,以有效和協同的方式響應用戶需求的一種企業發展戰略.虛擬組織是實現敏捷制造的重要組織手段.虛擬組織是一些相互獨立的開發單位通過信息技術(例如互連網)連接的暫時性的開發單位網絡,這些開發單位在軟件開發過程中貢獻出自己的核心能力,以實現技能利潤共享和成本風險共擔,迎合和把握快速變化的市場機遇.
充的動態組織.根據產品族設計中規劃好的領域框架和構件,進行工作任務分解(分解為不同類型的構件),按照各個公司或公司內某些部門的核心業務能力,動態組合資源、技術和人員最佳配置的虛擬組織.虛擬組織成員接受工作任務后,按照各種合作形式(如供應鏈式、策略聯盟式、合資經營式轉包加工式和虛擬合作式等[13])進行合作,在基于Internet的敏捷開發環境下,共享資源和技術,完成各自的工作任務(完成構件開發).根據客戶訂單要求,將領域框架實例化形成滿足訂單要求的應用系統框架,并如圖6所示,虛擬組織是可重構、可重用和可擴對虛擬組織成員提供的構件進行裝配,最終形成滿足用戶需求的應用系統.
7結論
【關鍵詞】大規模 定制軟件 敏捷開發 研究
如今應當說是一個高科技時代,人們的生活似乎被各種各樣的高新科技所包圍,無論是我們習以為常的網購還是離我們看似遙遠的全自動化生產線無不顯露著科技的風尚。人類已經進入了一個智能化的時代,因而各種專業化的軟件需求量也就越來越大,每個不同的企業或者部門對于軟件的需求也是不同的,定制軟件看似容易實際上其操作起來難度是極大的,而針對定制軟件開發最好的開發手段就應當說敏捷開發,這是一種將一個定制軟件拆分成數個乃是數十個甚至成百上千個小項目進行軟件開發的方式,其尤其適用于大規模定制軟件的開發。
1 大規模定制軟件的必要性
首先我們要對大規模定制的定義進行明確,大規模定制指的是大規模定制是指對定制的產品和服務進行個別的大規模生產,這種生產模式是把大規模生產與定制生產的優勢有機地結合起來,這種生產方式一方面不會由于個性化定制而讓企業的利益受到影響,另一方面也不會由于大規模的生產而忽視了軟件定制的個性化,應當說這一種雙贏的生產方式。對于企業而言其采用大規模定制能夠在最大程度上降低生產成本而保證產品質量,對于客戶而言其能夠以較低的價格而獲得質量優良且具有個性化定制色彩的產品,因此這是雙方都樂見其成的。從大趨勢來看大規模定制已經是大勢所趨,同樣也是工業3.0-的重要組成部分,因此我們必須對其給予一定的重視。
2 敏捷開發
大規模定制的_是一種極為有效的生產方式,不過這種大規模軟件定制想要真正的實現是需要一定前提的,這個前提就是采用更加有效的產方式從而完全實現產品大規模生產與個性化定制并存。這個方式就是敏捷開發,敏捷開發將一個軟件的開發轉化為了數個乃至數十個不同的小項目,每一個項目都負責了軟件的一部分,有的負責的可能是軟件的界面,有的則負責開發軟件的菜單,有的則負責軟件的核心運算公式,在這數十個項目全部完成后再將其整合起來就成為一個大型的成品軟件。例如同樣是財務軟件,可能企業需要側重的是利潤、庫存等方面,而機關事業單位所需要的更多的是收入與支出的合理性,兩者的需求不同因此不可能使用同一種軟件,但是除了側重之外其他的部分缺失完全相同的,因此如果采用傳統的軟件開發方式則必然需要反復開發兩套軟件來滿足不同客戶的需求,而敏捷開發只需要開發一套軟件,而對于二者不同的需求只需要在開發其個性化部分就能夠在降低開發成本的同時滿足用戶的個性化定制需求應當說這是解決大規模定制軟件開發的最好方式。
3 敏捷開發的各個階段
敏捷開發雖然對于大規模定制軟件十分有利但是其真正操作起來卻需要諸多方面的配合才能夠真正實現敏捷開發,因此我們應當對敏捷開發的各個關鍵環節進行了解。
3.1 敏捷開發的起始階段
敏捷開發與傳統的軟件開發不同,傳統的軟件開發幾乎只需要開發部門一個部門在了解客戶需求后進行軟件的開發,而敏捷開發則不然其在軟件開發的前期就需要企業當中不同部門的人員進行配合其中包括了軟件設計師、程序編寫員、營銷人員、財務人員,而在企業外部其還需要客戶的配合,這樣做能夠使得其各方面的問題能夠在開發初期就被提出從而被解決,使得軟件的基本框架被完全確定只有這樣才能在軟件開發過程中采用模塊化的方式進行開發。
3.2 敏捷開發的開發階段
在對客戶意圖以及軟件設計師進行了充分溝通并確定了軟件方案之后,就需要將軟件拆分成數個乃至數十個小型開發項目,這些開發項目有些是軟件的基礎有些則是客戶個性化定制部分,首先來說基礎開發部分,其必須注重這部分程序的通用性,即其不能單純地只能應用在一款軟件上而是應當能夠被未來多種不同的軟件進行利用,這些通用程序一般包括了軟件的數據輸出、輸入、導入導出程序以及各類軟件的菜單和工具欄等等,只有確保了基礎程序的通用性才能夠成為大規模定制軟件的開發基礎。另一部分則是個性化定制部分,在這一部分最為注重的應當是充分滿足客戶對于軟件的個性化需求。
3.3 敏捷開發的完成階段
敏捷開發其本身實際上就是講程序分為了多個不同的模塊,在最終的完成階段則是需要編程人員將開發完成的各類模塊化程序進行匯總和有效地連接和融合從而使得其成為一個個不同的軟件,這種模式與傳統一氣呵成的開發模式不同,其開發方式更加靈活便捷,許多軟件模塊都是通用的只需要在通用模塊的基礎上將個性化模塊進行開發并且融入到整個軟件當中就能夠徹底完成個性化定制的軟件。
4 結束語
大規模軟件定制是時展的需要,其在軟件開發領域的應用能夠在最大程度上降低軟件開發的成本并且提高軟件開發的效率應當說這是極為可喜的事情,不過我們必須清楚地意識到大規模軟件定制其本身必須是一敏捷開發為前提的,因此我們必須對敏捷開發這種軟件開發模式進行深入的研究從而使得我們能夠更好的掌握這種開發方式來支持大規模軟件定制。
參考文獻
[1]羅昱.淺談大規模定制的軟件開發模式[J].電子制作,2013(14):72-72.
[2]田清.軟件敏捷開發過程Scrum中的缺陷管理方法研究及應用[D].重慶大學,2010.