時間:2023-08-06 09:02:37
序論:速發表網結合其深厚的文秘經驗,特別為您篩選了11篇軟件開發與定制范文。如果您需要更多原創資料,歡迎隨時與我們的客服老師聯系,希望您能從中汲取靈感和知識!
隨著企業的不斷發展,信息資產的不斷壯大,標準而統一的管理方式越來越得到重視。在終端維護的領域中,為減少環境的復雜度,降低信息系統推廣成本,提高管理和維護效率,終端標準化配置是必要的。然而在維護這些標準化配置的過程中,很多操作都是重復的,耗時的?!督K端軟件安裝一鍵定置工具》(以下簡稱《軟件》)以應用軟件自動腳本配置為核心,實現多應用軟件的統一配置、一鍵打包、自動安裝的功能,從而提高終端軟件維護效率,減免人為操作的煩瑣和錯誤。
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
最后編譯成自安裝文件,將安裝文件一并封裝:
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.總結
1.建立領域特征的模型
1.1GIS應用軟件開發領域中建模的方式。在本研究中,主要是通過對領域工程中的理論知識進行研究,以面向特征領域工程的方法對特定領域邊界進行確定,并且在此基礎上對具體的信息源進行有效的識別,其具體的操作方法如下:首先,領域邊界模型主要是根據領域結構圖以及數據流程圖表示方式來建立的。其次,在獲取特征的時候,通常會采用需求聚類聯合人工分析的方式來獲取。再次,通常會采用FORM方式的特征模型來建立特征模型中元模型。另外,對其特征模型的檢驗主要采用fmp工具來檢驗[1]。
1.2GIS應用軟件開發建模的流程。在領域邊界模型中包括領域結構圖與領域數據流程圖,這些圖形需要通過信息源進行分析,在GIS應用軟件開發建模的過程中,其主要步驟與流程如圖1所示。
圖1GIS應用軟件建模流程圖
2.定制特定應用特征模型
2.1特征模型定制的基本原理。在特征模型定制的過程中,需要對其原理進行明確,以便為GIS應用軟件的開發提供基礎與前提條件。在特征模型的定制中,其主要原理是從領域特征模型逐漸向應用特征模型的定制流程,病按照提舉的應用特定需求對該模型的變化特征進行適當的綁定或刪除,以便得到適當的應用系統需求。在特征模型中,其特征根據變化性分析可以將其分為變化性特征與共性特征兩個方面。在特定額領域中,應用系統基本都存在的特征即共性特征,否則為變化性特征。共性特征主要是度領域的共性進行反映,其領域中的核心組成部分。而變化性特征是對領域中具有的變化進行提現,是以共性特征為基礎的,兩者不能對立存在。在特征模型定制的過程中國,共性特征是不可刪除的部分,其定制的核心問題是對變化性特征進行判斷與綁定。另外,按照領域征的可選擇以及相互之間的關系進行分類,可以將其分為可選特征、強制性特征以及可替換特征。其中可選特征指的是由無到有的可供選擇的特征;強制性特征是必備的特征,主要體現出領域中的核心與特點,是其基礎結構;可替換特征指的是至少有一個被選中的特征,不同系統中對統一特點具有不同的處理方式。此外,根據特征的內容可以將其分為領域技術類、實現技術了、操作環境了以及功能類特征[2]。
2.2特征模型定制的基本原則。在特征模型定制的時候,需要對其基本原則進行分析,其原則主要包括在符合領域特征模型中,在特征之間約束的前提下對領域特征模型進行適當的裁減,以便更好的滿足特定應用的序曲。但是,由于該模型中相應的形式化基礎比較缺乏,針對該模型的檢驗需要依靠其他邏輯方法,包括一階邏輯、命題邏輯方法等。在建立模型的時候,需要通過特征間的關系進行分析,以便建立特征間的約束關系,同時,還需要借助輸血命題邏輯演算方式對約束關系進行監控,以便更好的為領域特征模型的制定提供依據。
2.3特征模型定制的方式。在根據特征模型中的各種約束進行分析,并且在建立追蹤性領域特征模型之后,需要根據相關需求,對領域特征模型中的操作流程進行適當的剪裁,以便獲取適當的模型。但是在實際制定的過程中,需要對剪裁的結果進行適當的擴充。通過將反復機制引入其中,對特殊情況的需求進行不斷的更新與改進,將這些新的特征逐漸加入到應用模型當中,以便對該模型進行有效的開發與利用。
3.特定應用特征模型的實現方式
3.1特定應用特征模型的概念構件映射。在模型中,要想對需求急性有效的表達,需要通過特征來完成,只有將需求特征轉換成為主流的編程技術能顧識別的構件來達到目的。在實現的途徑中,將特征映射成為構件hi急需要解決的問題,其關系到領域工程的工作效率。在傳統軟件開發的時候,對象轉換主要是根據系統分析人員的工作經驗以及思考方式來完成的。如果在對象轉換的過程中,能夠及時發現存在的否中映射原則,就能夠有效的縮短軟件開發的時間,促進軟件生產質量的提高。其中FORM方法征轉換構建屬于一種一對一的映射關系,通過學者的研究發現,在此基礎上可以提出多對一或一對多的映射關系[3]。
3.2GIS概念構件的實現。在GIS組件概念的實踐過程中,由于其具有一定的復雜性,需要對其進行細致的研究。同時,為了有效的提高該軟件開發的質量與效率,以便減少排不必要的勞動力,需要在基于構件的軟件開發技術中對GIS軟件技術進行有效的開發。在其中大粒度構件與某個特定的領域具有密切的聯系,即存在一定的領域相關性,同時,其復用率較高,通過對進行全面的研究分析,GIS組件轉化成對象模型的具體方式如下:首先,需要對其基礎設置構件進行挖掘。其次,需要借助設計模型以及相關的理論知識,實現概念構件模型。
4.總結
隨著社會經濟的快速發展,在信息技術與計算機技術高速發展的前提下,GIS應用軟件開發變得尤為重要,其在各個領域中的應用也隨之擴大。通過對GIS軟甲進行有效的開發,確保其開發的產品更加符合特定領域的需求。通過對其進行開發與利用,可以確保開發的產品具有擴展性與可維護性的特點,更好的適應社會的發展需求。(作者單位:江西現代職業技術學院)
參考文獻:
從2004年8月成立時的不足30人,到如今的500人,以及預計年底的800人規模,神州數碼西安軟件開發中心在兩年的時間里獲得了幾何級數的成長。
“西安軟件開發中心的建設,標志著神州數碼正式擺脫了軟件定制化開發的傳統模式,邁向國際通行的規?;?、規范化的基地化開發新階段。通過基地化開發,軟件開發成本降低,軟件價值獲得極大的提升,公司業績也獲得了成倍的增長?!迸藮|說。
目前,國內絕大多數應用軟件廠商仍在沿用在客戶現場開發的定制化開發模式,缺乏規模化發展的能力,也缺少國際通行的規范的軟件研發管理流程,這嚴重阻礙了中國軟件業的未來發展。
“目前國內很多軟件企業的項目按計劃完成率不到70%,其中全球軟件開發項目中只有16%能按計劃完成?!?/p>
早在2002年,中國人民銀行支付科技司司長陳靜就表示,銀行業大型計算機系統和應用集成系統面臨著全面的改造,而國內的IT企業鮮有能承擔起金額在5000萬人民幣以上的系統的改造任務。
此外,專門為某一客戶開發的軟件系統,服務商需要從這個客戶那里收回全部的開發成本,因此往往造成項目開發費用的居高不下,使服務商和客戶均承受著巨大的壓力。試想,一個上千萬元的大型項目完全采用定制模式開發,系統的質量姑且不論,只系統開發所耗費的時間,又有幾家軟件公司承受得起呢?這樣的大型項目,客戶怎能不慎之又慎。
2004年8月,神州數碼在西安建設超大型軟件開發基地,并同步建立了規范的軟件開發過程、嚴格的質量管理體系、高效的員工培訓體系和優良的軟件開發集成環境。基地對銀行客戶項目、內部研發項目以及國外集成產品進行集中開發,同時還配套建立了提供專業測試服務的測試中心和IT外包的運維中心。
目前,神州數碼西安軟件開發中心已經通過了CMMI 3級認證,并采用國際標準的軟件工廠式集約管理,不僅軟件的開發時間被成倍乃至幾十倍地縮短,而且,由于建立了優良的集成開發環境,配備了先進的測試工具和質量管理體系,開發出的軟件系統的穩定性和質量也得到了很大提高。
開發中心執行“3P項目管理體系”,覆蓋了Project(項目)、 Procedure( 過程)和People(人員)三個管理層次,將“按預期交付”的目標自上而下貫徹到參與項目的每個人。
1 產品化與定制化軟件綜述
產品化軟件和定制化軟件在流程電子化方面,尤其是管理支撐類流程方面存在一定程度的重疊,但兩者的定位不管是從產品的體系架構,或者是在實施方法論等方面還是存在很大的差異。從更好地滿足客戶的核心業務需求的角度出發,相較于傳統的產品化軟件,定制化軟件在滿足企業核心業務流程管理方面是具有明顯優勢的。但是隨著產品化軟件的不斷發展和完善,對于數據處理要求不是很高,業務邏輯相對簡單的系統來說,產品化軟件已經逐漸體現出它的優勢。目前,主流的產品化平臺軟件中的一個核心功能應用在于流程管理,從專業角度來看,產品化平臺軟件已經含有流程管理的功能模型,并已經完全含有項目化平臺軟件的核心功能,例如表單建模、流程引擎、權限模型等核心功能點。
2 產品化軟件與定制化軟件優劣勢分析對比
2.1 用戶體驗和頁面友好性方面的對比
定制化開發軟件隨著使用年限的不斷增加,軟件開發技術的不斷發展,導致系統兼容性、UI可用性和易用性不斷下降,隨著計算機操作系統、瀏覽器軟件和OFFICE等辦公軟件的更新換代,經常發生按鈕功能不正常,系統頁面顯示不正常等問題。大多數企業員工信息技術水平有限,很難自行對瀏覽器和操作系統進行兼容性調整和設置,從而降低了日常的工作效率,也加大了信息化部門的工作量。而產品化軟件方面則不存在以上問題,由于產品版本迭代速度較快,能夠做到持續改進,所以能很好的適應其周邊軟件的不斷升級更新,系統頁面友好美觀,與日常辦公軟件能夠良好銜接,基本上不會發生由于系統兼容性而導致系統功能不正常的問題。
2.2 系統功能、開發周期與開發成本方面
產品化軟件其優點在于能夠滿足客戶絕大部分通用的需求,且建設費用相對較低。由于事前已經有較為成熟的產品化功能模塊,從而能夠在需求分析階段結束后直接進入系統的搭建與測試階段,省略了傳統軟件開發生命周期中基本設計、詳細設計、代碼編寫這幾個最為耗時費力的工程段,能夠做到快速搭建、快速部署、快速上線,大大加快了項目實施進度。由于有產品化功能模塊和可視化系統搭建平臺的存在,整個項目實施過程中不需要程序代碼的編寫,所以幾乎不需要有很強技術功底的開發人員的參與其中,從而也降低了整個項目建設的人力成本。相對于業務簡單通用,變化小,成熟性的公司,這種產品化軟件的性能價格比還是很有吸引力的。
定制化軟件方面,軟件自身完全可以按照客戶的需求來定制,能夠做到量身定制,在客戶一些細節需求的對應上較為靈活。但定制化軟件的建設實施工作由于是從零開始,從無到有,所以需要經歷完整的軟件開發生命周期,相對于產品化軟件來說開發周期長,對系統建設人員的技術水平要求較高。另外定制化軟件實施的成功必須建立在兩個前提條件下,一是客戶有一套清晰成熟的管理方法,能夠非常明確系統的提出自身的業務需求;二是供應商擁有一批既熟悉業務,又熟悉軟件開發技術,而且要具有豐富的開發經驗的業務技術專家。這兩個條件缺一不可,項目實施的成功與否,周期長短,所實現功能與顧客需求的差異性,都取決于這兩個方面。而作為在市場上被廣泛接受的成熟的產品化軟件來說,在一定程度上是為企業提供了一套管理的思路、管理方法的模板與建議,企業可以去主動地適應產品,把產品的設計理念、管理流程應用到企業自身的日常管理中。所以對于管理思路不是很清晰企業,購買產品化軟件不僅是購買了一套軟件更是購買了一套較為成熟的管理方法論,也是對成熟先進管理方法的一次學習和浸潤。
3 系統維護方面的對比
3.1 新增、變更需求對應方面
對于定制化軟件來說只要發生新增需求或者變更需求都必然需要通過修改代碼的方式去應對,代碼的修改和增加即會產生相應的開發工作量,則需按工作量付給供應商相應的開發費用。
而產品化軟件由于采用可視化、配置化的系統搭建平臺實現業務需求的理念,在流程的調整變更與新增、表單內容的調整變更、頁面布局的調整變更等方面,全都可以通過系統管理員在可視化管理平臺上自行調整,不需要通過修改增加代碼的方式去實現,所以節省了很大一部分由需求變更所產生的開發費用。只有通過后臺配置不能實現的新增、變更需求,才需要與供應商溝通進行定制化開發并產生相應的費用。另外,進入維護階段后只需支付供應商一定數量的電話服務費用,不需要供應商提供專員在客戶現場進行維護工作。
綜上所述,產品化軟件后期可以根據業務流程變化靈活調整,經過培訓的企業信息化人員可自主完成,無需依賴廠商,基本不產生系統升級開發費用,與定制化軟件相比大大節省了系統維護成本。
3.2 系統維護方式與服務響應時間方面
定制化軟件維護方式的優勢在于由于開發人員在長期客戶的現場服務,且對系統架構和源代碼以及公司業務相關業務較為熟悉所以響應速度較為迅速。但隨著定制化軟件使用年限的增加,維護人員的流動不可避免,所以會造成代碼的健壯性與可讀性不斷下降,導致只有專門的對系統極為熟悉的供應商開發人員才能對系統進行維護工作。通常的項目化軟件維護周期中,隨著系統上線時間的增加,系統運行越發穩定,項目團隊從維護成本上考慮通常會逐年遞減系統維護人員,甚至最后整個系統的維護工作只有一個維護人員擔當完成,如果維護人員較為單一,倘若此時人員發生變動,新的維護人員很難在短時間內理解系統實現方式以及所有源代碼,很難在短期內開展相關維護工作,從而使系統維護工作出現空窗期,這對系統的穩定運行可能造成較大的影響。
從傳統軟件分類
到四級開發模式
從軟件開發商的角度看,傳統的軟件包括兩類: 一類是針對企業業務需求定制的軟件系統,另一類是通用的商品化軟件產品。
定制軟件這種方式的優點是能最大程度地從企業實際業務管理需要出發,開發出適合本企業個性特點的管理軟件系統; 缺點是開發費用高、實施周期長,并且由于軟件沒有經過長時間的運行使用,存在可靠性、穩定性不足等風險,為此企業不得不配備一個技術過硬的團隊隨時維護軟件,這對企業的信息化管理部門提出了更高的要求。另外,在這類定制開發的項目中,往往會出現編碼不規范、技術文檔管理混亂等現象,當軟件需要再改造的時候,技術人員很可能讀不懂原始代碼,又無從可查,造成企業信息化投資的浪費。
商品化軟件的優點是在開發過程中融合了優秀的業內管理經驗,并且隨著市場的應用成熟度提升與積累,軟件不斷優化、升級、換代。但是,這類軟件無法解決企業的個性化業務需求。每個企業的管理模式、運營模式都不可能完全復制,正如每個企業的業務流程都不盡相同一樣。因此,不同的企業對管理軟件的應用需求是不同的。這種需求的不同既可以體現在不同的行業上,如醫藥流通企業選擇業務管理系統時對GSP管理模塊會重點考察; 需求的不同也體現在行業內部,如大中小不同規模的同行業企業對管理軟件的需求就會存在很大差異。更值得關注的是,企業在應對激烈的市場競爭時,其經營也在不斷變化,這就使得企業的管理軟件要具備隨需應變的能力,而商品化軟件對這方面的響應明顯要遲鈍得多。
顯然,不管是定制軟件還是商品化軟件,都有無法跨越的鴻溝。因此,業內一些專家一直都在探索一條介于定制軟件和商品化軟件之間的模式,比如平臺化軟件的提出、比如SOA架構的引入。但是,具體以何種模式讓軟件開發商與企業共同參與其中并沒有標準。筆者所在的時空軟件經過十余年的探索,積累了一套四級開發模式。這種模式可以兼顧軟件成熟穩定與滿足企業個性化需求的雙重需要,并在幾千家企業中得到成功實踐。
從通用的基礎平臺到形成行業解決方案的四級開發過程
四級開發模式解析
四級開發模式是指在軟件基礎平臺公共化的基礎上滿足企業個性化需要,適應企業功能擴展需求的一種方案。具體如下:
第一級,基礎技術平臺開發。軟件開發商技術研發部門完成管理軟件的底層技術架構,涉及開發語言、操作系統、數據庫等。在這一級,就要在開發團隊中植入“用較少開發資源適應最多客戶”的思想,既要搭建一個公共性的平臺,也要設計開發一系列的平臺工具,使開發簡單化、普遍化。簡單化就要求平臺工具易學易用,普遍化則要求不僅軟件公司的技術人員用得好,還要使軟件用戶的技術人員會用、用得好。
第二級,行業級解決方案研發。軟件開發商集合行業專家、信息化專家針對不同行業的特點應用基礎技術平臺提供的工具形成行業級通用解決方案,這是管理軟件的基本模型。在這一級,會設計出很多可復用的功能顆粒,最后根據不同用戶的需要,整合顆粒就可實現基本需求。這里的“顆?!庇写笥行?也就是說,功能顆粒既可以是單一功能,也可是一組功能的集合,具體視功能的關聯性而定。例如,管理軟件中組成業務流程的最細小功能有很多種,我們把它叫做服務顆粒,通過這些服務顆粒的不同組合就可以實現流程的個性化,例如采購管理由采購決策、采購計劃等功能組成,這些可以看成是粗的功能顆粒,然后采購計劃又有更多的細小功能,這些就是最底層的細顆粒。這些顆粒在軟件中的具體體現可以是業務報表、應用表單、各類方案等,但不管如何展現,這些顆粒都應該是數據化的。數據化的概念就是這些服務顆粒存儲在數據庫中,而非編程語言開發。各個服務顆粒都是獨立的,這樣有利于新增功能擴展。在應用部署時,可以將不同的服務顆粒整合,提高程序的伸縮性和擴展性。
第三級,服務商項目化。針對企業個性化管理需要,結合企業未來發展規劃,項目的實施團隊在行業級解決方案基礎上,應用基礎技術平臺提供的規范工具實現項目需求。在這一環節,一般是由軟件開發商的實施團隊(或其授權的有資質的實施團隊)與企業的信息化部門共同完成。這一點很重要,首先只有企業的員工才能更深刻理解企業的管理需求,其次也只有企業的員工能將業務性的語言轉化成技術性的語言傳遞給軟件實施的乙方,幫助乙方理解企業的管理特點、存在哪些管理瓶頸。在乙方深刻理解的基礎上項目化會更成功,也才能真正通過軟件工具實現提升整個企業的管理水平的目標。同時,共同參與的過程也是知識轉移的過程。
第四級,用戶個性化。服務商項目化后,管理軟件就可在企業內正常運轉。但是,企業是動態發展的。這時需要管理軟件也能迅速地“動”起來,以滿足企業管理過程中“變化”的需求,比如流程的修改、功能的修改等。這些“變化”可通過參數設置實現,比如為滿足不同用戶需求而設計的開關,類似業務流程中是否走某流程的選擇; 也可以在不改變程序的基礎上通過修改打印格式、報表格式、資料屬性、權限設置等進行個性化設置; 還可以借助基礎技術平臺提供的開發工具對軟件程序進行修改(當然,這是基于一定準則的)。只要基于開發標準,軟件開發人員、實施技術人員甚至客戶本身的技術力量都可以整合進來,而且能夠在現有基礎上進行有創新性的工作。
四級開發模式中,第一級和第二級需要在軟件開發商內部完成,面向客戶輸出的是具有行業特性的基本產品模型; 第三級的項目化成果是向客戶輸出的可運行的軟件系統,一般甲乙雙方會在《技術服務協議》中就項目范圍進行約定; 第四級是軟件系統的靈活性、適應性、開放性、重用性的集中體現階段。
值得提醒的是,四級開發模式的成功應用既是軟件開發商不斷積累行業經驗的過程和行業解決方案優化的過程,也是用戶建設適合企業個性化需求的信息化建設過程。因此,需要甲乙雙方的共同參與、共同努力,才能真正實現管理軟件的價值。
案 例
四級開發模式在同仁堂中藥調劑軟件中的實踐
對很多人來說,“藥店調劑部”是一個很陌生的名字,實際上中藥調劑就是指按照醫師處方所開列的中藥藥方,準確地為患者配制藥劑的操作技術。中藥調劑通常包括審方、計價、調配、復核、包裝、發藥等六個環節。因此在制作工藝、管理過程方面相比西藥管理有很多不同之處,而且更為復雜和繁瑣。在中藥調劑方面,同仁堂計劃把醫館和藥店作為一體進行統一管理,把醫館的診斷、開方等業務一并納入藥店的業務流程,與藥店的收款、付藥一體化管理。為此,同仁堂需要建立一個中藥調劑管理信息平臺,將數百年的調劑經驗、知識、流程數字化,內置到調劑信息管理系統中。
而通過時空KSOA平臺,同仁堂藥店建立了涵蓋調劑收方、審方、劃價、調劑、加工、復核、發藥的信息化流程,其中包括常用藥材400多種、非常用藥材1000多種以及這些藥材規格、等級、別名、處方、腳注、古方、茶方、用法用量、配伍禁忌等。
KSOA平臺是以技術平臺為基礎,提供大量的開發工具供各子系統應用,其子系統包括供應鏈管理系統、連鎖管理系統、電子商務系統、POS同步收款系統、財務管理系統、質量管理系統、人力資源管理系統、協同辦公系統、在線門店管理系統等。KSOA將業務流程和崗位職能相結合,搭建企業的采購、倉儲配送、銷售、財務結算、賬務處理、績效考核、對外協同等功能框架,滿足企業自上而下的縱向管理需求,橫向的業務、財務、人力資源、協同辦公等應用,為企業提供一個最大的應用空間。
同仁堂中藥調劑管理信息平臺項目就是在KSOA平臺提供的基礎的行業解決方案基礎上實現的。
如何將這三類服務系統化、觀念化、流程化,實現統一規劃、科學管理、提高服務質量,是現階段高校信息化建設成功實現的原則和標準。
二、數字化校園中云計算提供的三大服務
(一)提供基礎設施服務
在數字化校園中,各類應用的提供都依托于硬件設施,包括服務器的分配、虛擬機的設置、存儲空間的利用、數據庫的使用、網絡設備的搭建及機房的統一管理(安全、供電、溫濕度等)。學院中教學部門、行政部門及教輔部門都有各自的軟件應用,這些部門必須有基礎設施來提供支撐,它們統一由學院云計算中心來提供這些基礎服務,避免資源浪費,實現集中管理,資源共享。
(二)提供平臺的服務
服務平臺指各種業務運行所需的支撐系統,它包括操作系統、數據庫系統及網絡系統等,校園云計算可為用戶提供以下的服務:1、服務器/虛擬機的IP地址、用戶名和密碼等;2、數據庫空間的大小、用戶登錄和連接的方式等;3、網絡的VLAN的定義和劃分等;4、用戶操作系統類型的選擇、數據庫系統類型的確定等;5、為高端用戶提供各類軟件開發平臺。這一類服務也叫中間層服務,它是硬件和可見的應用之間的中間橋梁,是系統軟硬結合重要的組成部分,也是云計算服務的關鍵節點。
(三)提供軟件的服務
數字化校園是以計算機和網絡為基礎展開校園各項工作的一種環境架構,數字化校園中的各項活動的進行、信息通信的暢通,都是各類軟件的正常運行的結果,因此為校園中廣大用戶提供優質、便捷的軟件服務是校園云計算的重要工作,這種軟件服務包括:1、各類教學、辦公用軟件;2、安全防護軟件;3、各部門專門類的軟件(財務系統等);4、學院統一門戶網站、數字資源管理系統等。在當今互聯網+時代下,根據用戶需求實現個性化定制,智能推送對軟件的服務理念提出了新的特色和要求。
三、云計算服務模式在高校應用中的優勢
(一)提供統一管理的基礎設施服務在應用中的優勢
服務器、存儲、網絡設備的統一購置,集中管理維護,專業人員專門管理,避免盲目投資,減少硬件的重復采購,節省了人力物力。服務器、存儲云計算化后,采用虛擬技術、磁盤陣列技術,實現了系統的整合與集成,大大提高了基礎設施的利用率,更亦實現資源的共建共享。
校園云計算中心對基礎設施集中管理,為各系部提供硬件方面的服務,各部門作為申請人,通過申請流程,實現服務器和存儲的“租用”服務,作為使用者的申請部門,只需關心要“租用”的服務是什么硬件即可,與硬件的原理、價錢、安裝、維護、調試及硬件設備存放位置均無關。通過這種服務模式,實現了工作的細化,各司其職、各取所需,提高了工作效率,增大了協同辦公的能力,發揮了團隊的作用。
基礎設施機房的建設比較苛刻,資金投入也比較大。環境要求、電力要求、安全要求都要達到一定的標準,這樣才能保證服務器、存儲正常運行。校園云計算中心負責這些基礎設施的規劃、建設和管理,消除了各部門重復建設、設備冗余、信息孤島的狀況。這種服務方式不僅降低了學院運行成本,也體現了學院統籌規劃、加強服務的理念。
(二)為各種應用搭建平臺的服務體現了信息化工作的專業特色
1、應用軟件所需支撐平臺的統一建設與管理
各部門的網站、應用的建設,需要操作系統、數據庫系統的支持。這些系統類型、版本的選擇、安裝、調試都不是非專業人員所能及的工作,將此類工作轉化為云計算中心提供的服務,能大大減輕用戶的負擔,使用者只關心平臺的類型和功能即可。
2、提供安全、可靠及靈活的軟件開發平臺服務
軟件開發平臺作為服務提供給用戶,可以為那些有軟件開發能力的部門提供自主軟件開發的條件,實現各自的軟件定制,擴展某些應用的功能。云計算服務中心將用戶所需的開發平臺部署在虛擬服務器中,實時更新、升級,監控平臺的運行情況,保證開發平臺的正常使用。
(三)以個性化定制為理念、以推送為手段的軟件服務是互聯網+時代下的創新模式
1、校園云桌面的應用很好地體現了個性化定制的服務理念
根據各部門、各用戶的需求,其客戶端的操作系統(XP、WIN7/8/10等)將量身定制,不同應用的用戶可任意選擇,不同專業、不同課程所需的教學軟件將實時推送到其選擇的操作系統中,實現“即選即用、即推即見”的辦公與教學效果。例如:公共多媒體教室教學用計算機桌面隨課程表的變化,會被推送出不一樣桌面系統,供不同時間段的教師和學生使用。
2、云辦公、云維護策略的實施極大地提高了教師的工作效率
無論是大型還是小型軟件開發商都要融入軟件開發的全球競爭,那么就需要引進先進的國際標準規范(如ISO 9000、CMMI),通過評估認證來規范軟件開發過程管理。而同時在軟件開發這個充滿創意的領域,運用系統組織的思維、先進靈動的工具服務于過程管理,提高開發效率,也是企業發展過程中不可小瞧的力量。
案例:
高級電子表格軟件的開發商RxLaser公司運用TechExcel的跟蹤工具DevTrack,通過自動操作和控制軟件開發及客戶自定義過程,實現持續成長,提高產品質量,贏得客戶的滿意,是個具體而有借鑒意義的嘗試。
開發規模增大帶來的混亂
位于美國加利福尼亞州布瑞亞市的RxLaser公司作為高級電子表格軟件的開發商,其軟件產品通過一個服務器平臺與客戶使用的軟件集成,支持打印、傳真、收發電子郵件、EDI和數據存檔,并可以按照每個用戶的需要進行全方位定制。
過去的十年,眾多公司用傳真或電子郵件替代了點陣打印表格,不必再花費56美分郵寄一個發票的復印件,節約了大量成本。RxLaser公司將這種進步移植到電子表格上,成為業界領先者。
但成功和快速增長也帶來了許多新的挑戰,他們必須解決這些問題以保持其領先地位。他們曾使用過一個內部開發系統來跟蹤所有的開發和定制化項目。隨著業務量的快速增長,系統不堪重負。他們的客戶數量在三年間從700多家增長到6000多家,如果沒有一個可靠的跟蹤解決方案,公司業務將處于危險之中。
“我們不能應對日常事務?!惫究偛昧_伯特說:“形勢已經不在控制中了。當我們拿到一份文件的時候,我們不知道這份單子已經擱置了多久,我們原本打算如何實施。我們的業務增長得太快了,而越來越多的客戶感到不滿意。我們只有兩種選擇:要么尋找合適的跟蹤系統,要么被淘汰出局?!?/p>
精準問題跟蹤避免重復作業
RxLaser公司的開發團隊迅速評估和比較了市場上的許多跟蹤工具。大約兩周后,羅伯特發現他的所有員工都選用DevTrack?!懊總€人都很喜歡它,因為它快速輕松地滿足了所有人的需求?!绷_伯特說:“我的員工要求我購買它,他們甚至告訴我,如果我不這么做,他們就不能工作。”
現在,公司將其用于兩個業務領域:開發團隊和定制化編程,提高了軟件開發的效率。開發團隊負責運行、維護和管理電子表格軟件系統,定制化團隊則針對客戶的具體細節要求編寫對應的表格。
羅伯特認為,在任何軟件開發項目中提高效率的關鍵,都是通過精確跟蹤項目的每一部份來避免重復性工作。當把一個完整軟件分解成許多程序片段,并把這些片段分配給不同的開發人員時,每個人的工作會有與其他人工作重疊的傾向。
而DevTrack就能使每個開發人員在任何時間都能清楚知道其他人在做些什么。當一些人完成一子項目,他們可以輕松地看到這個子項目和其它子項目如何連接,然后把這些片段無重疊地連接起來,避免了許多重復性工作。此外,管理者還可以看到每一個程序員在開發什么功能,這使得他們可以輕松地管理和跟蹤整個項目。
“編寫代碼時,重復性的工作使公司既費時又費錢,并且不能按時交付?!绷_伯特說:“重復是研發工作的最大破壞者。我們的產品需要多人參與,并要在規定日期前完成,如果我們不能按時完成,將損失數目可觀的收入和機會,這是時間管理的問題,而DevTrack為我們很好地解決了這個問題?!?/p>
多人合作開發,項目很容易失去控制。每個人都在處理項目中相同部分的不同片段,這很容易讓人產生混淆,很快他們就會發現不知道對方在做些什么。DevTrack協調團隊工作,在任何時候都可以把一項編程工作轉交他人。
延伸應用于內部溝通和客戶服務
現在,RxLaser公司用DevTrack來制定工作進度,協調服務器產品的功能添加、缺陷修復以及功能增強工作。羅伯特介紹,DevTrack使整個修改工作的管理和協調非常容易,比如有一個開發人員負責項目中很大一塊工作,利用DevTrack,他的上級就能準確地知道他當前的工作內容和時間限制,而其他人也都可以看到他每天的工作進程。
最初,RxLaser公司用它做問題跟蹤,由于簡單易用,后來被用來做工序跟蹤??蛻舭惭b電子表格軟件過程相當緊張,一旦有新客戶登錄,他們就會為客戶發出標準表格,以基于客戶獨特的需要進行調整。經過相關人員設計調整和客戶授權確認,該調整就發送給定制化編程部門,程序員采用修訂過的標準,并將變化集成到用戶自定義的表格,最后的產品再次發送給客戶,等待最終的認可和安裝。整個客戶安裝過程利用DevTrack管理和跟蹤工作流和狀態,程序員能準確地知道過去3-4個月里的工作,并能在停止的地方準確地重新啟動。
羅伯特說:“使用DevTrack的最大收益,就是RxLaser的行業領先地位得以保持。除了幫助我們跟蹤客戶的優先級和需求,我們還可以使用它來管理設計員、程序員和客戶之間的日常內部活動,管理并記錄設計人員、編程人員以及客戶間的日常交流,這樣每個人都可以在任何時候知道問題的進展,并將其繼續推進。生病的或是其他部門的員工也可以通過其中的記錄,清楚地知道他下一步要為客戶做什么,以及客戶什么時候需要這些服務?!?/p>
研究視點一:跟蹤工具的行業應用
工欲善其事,必先利其器。軟件開發廠商也是一樣,要做到高效的軟件開發和過程管理,必須選擇運用靈活先進的開發管理工具。早在30年前大師弗雷德里克?布魯克斯就曾形象地論述說系統開發工作就像一個焦油坑,無論是大型、小型,龐雜、精干的開發團隊都在其中掙扎,沒有誰能掙脫束縛。這種情況到現在也還是如此――很少有軟件項目滿足目標、進度和預算的要求。做軟件開發項目delay是正常的,這已是圈內人士的共識。
眾所周知,對于傳統制造企業,其流程和現場管理提高生產效率至關重要,在此基礎上產生的JIT生產管理方式堪稱一代經典。同樣道理,對于人們看不見的產品――軟件的設計開發過程來說,也是一樣需要有方法、有工具來幫助實現提高其對應的生產效率。
作為問題跟蹤功能實現的產品,目前市場上已經有幾家或單獨成品,或鑲嵌在平臺之內實現該功能(如TechExcel的DevTrack和IBM Rational的Clear Quest等)。TechExcel的DevTrack贏得RxLaser信賴的關鍵,是它通過對項目中的每一個任務或細節的精確跟蹤,并借助可輕松配置的智能化工作流,使項目參與者能夠清楚地知道并執行自己的工作,避免了重復勞動,增強了團隊溝通,提高了開發效率。
在國外,整體信息化水平相對比較高,所以IT以外的行業的軟件開發和項目管理也是很愿意用工具管理實現的。圖一是DevTrack全球用戶行業分布圖,可以看得出軟件廠商是其主要客戶,但同時政府機關也在用其做流程管理,教育機構也可以買它做實驗室的項目管理。
研究視點二:工具的集成
單打獨斗的工具成不了氣候,平臺化的系列工具軟件是其作用最大化的有效途徑。DevTrack是TechExcel DevSuite產品系列中的一部分,該系列圍繞知識核心,無縫集成了從設計規劃到產品所需的所有ALM軟件,幫助數以千計像RxLaser一樣行業領先的企業實現了科學、愉悅、成熟的開發管理。廠商選擇、運用適合自己的集成工具實現開發過程管理。根據發展歷史和客戶需求以及市場環境的不同,軟件開發商的運用工具管理的模式也不同,下面以測試驅動的缺陷跟蹤管理、規劃驅動的項目管理、需求驅動的產品開發管理三種模式為例來闡述。
測試驅動缺陷跟蹤管理模式:某全球領先的軟件企業有超過3000多個程序員和測試員在使用DevSuite中的DevTrack和DevTest模塊來分別跟蹤編程缺陷和管理測試過程。測試團隊可以建立各種測試模版并為各個和構建制訂測試計劃和項目,測試過程中所發現的缺陷能直接建立新的缺陷任務,開發團隊解決的缺陷將進行新一輪的測試,如此往復直至完成。這種模式改善了大型開發團隊和測試團隊間的配合和溝通,確保每個缺陷得到有效的處理。但是項目管理層和設計人員卻不能通過這樣的模式來主動監控和指導項目的進展,只能根據測試結果做出被動的反應。
規劃驅動項目管理模式:某大型的美國游戲企業通過使用DevSuite中的DevPlan和DevTrack模塊組合來改善管理監控。這個模式中的DevTrack包括一個管理層工作項目和多個下屬的開發組工作項目。項目經理用DevPlan來細分和規劃項目,并與DevTrack中的管理層工作項目相連。而管理層工作項目中的每個功能或缺陷任務又與開發組工作項目中的多個工作任務相聯系。這樣,一個項目經理的每個工作任務都被細分并分派給多個程序員或小組,從而使他能有效確保按計劃實施項目。這種模式能有效管理控制開發過程、周期、預算和人員,但是子任務的變化和新功能的增加給整個過程的效率帶來挑戰。
需求驅動產品開發管理模式:有些企業進一步要求把需求管理也納入DevSuite系統,以提高整個應用生命周期的管理效率。DevSpec就是管理需求制訂并整合項目規劃和實施的模塊。使用它,產品經理能夠規劃各個產品版本的功能要求并管理設計文檔,以確保實施團隊充分理解設計團隊的概念產品,減少不必要的重復和廢工,最終產生理想的實際產品。
這些模式其實難分優劣,實際運用效果取決于企業自身的開發環境和實施力度,是否選擇了適合自己的模式和工具并恰當地運用。同類企業在不同階段可以運用不同模式,而不同企業也可以統一模式,運用得當能幫助企業提高30%左右的開發效率。
研究視點三:本土軟件廠商如何做
基于軟件構件的軟件開發過程,主要是在利用構件模型,對于構件庫中的軟件構件進行復制,然后再以組成的形式使其在軟件中完成信息交換,從而得到實際的應用。但是對于構件技術的應用,也要具備一定的要素,同時開發的形式,以及構件的模型應用也不盡相同,對此針對于這幾方面進行有效的分析,最后梳理出基于軟件構件的開發流程,對以后的軟件開發研究有所幫助。
1構件定義
構件主要指軟件系統中的單個元素,自身具備獨立、可替換、滿足功能和多次使用的特征;也是軟件重復使用時,可以的準確被識別的軟件實體,對此借助軟件的獨立和可重復使用的功能形式,構件完全被用來進行軟件研發,使其外界的訪問,可以利用構件提供的指定接口進行信息交換;構件之間會通過標準的接口進行信息轉換,從而更好的保證軟件開發的質量。同時基于構件軟件開發,也應當具備應用程序是由構件組裝,提供獨立服務,以及通用構件設施和服務等相關的要素。
2軟件開發形式
基于軟件構件的軟件開發流程,主要體現在構件定制、構件獨立以及接口統一幾方面,其中構件定制,主要是指基于軟件構件的軟件開發,利用到構件或是面向構件,都是事前明確功能和編制好的,同時軟件對于構件不同功能的需求,也可以通過構件版本的選擇,從而實現功能拓展的目的。其中構件獨立,主要是指將構件進行分解,這樣就可以有效的避免構件難以維護的情況出現。其中接口通過統一,主要是指軟件要想實現跨平臺的交互,可以通過指定的接口,從而有效的突破硬件設備,以及空間等方面的限制。
3構建模型分析
因為基于軟件構件的軟件開發,是在理想構件模型基礎之上進行操作的,對此對于目前常用的幾種構件模型分析,是非常有必要的;其理想的構件模型如下圖所示:目前常用的構件模型,主要包括OMG組織、SUN、Microsoft方面;其中OMG組織中的CORBA[1],是基于開放平臺制定的對象體系,同時其分布計算技術們,更是多種廠商所支持的技術;自身具有支持性高、語言開發、系統平立,以及模型完整、效率高的特點。其中SUN中Java2技術,具有語言開發、以及滿足不同的業務需求、簡化構件服務器繁瑣,以及應用廣泛的特點。其中Microsoft中COM構件模型,實現了模型之間的相互操作,同時自身也是標準的構件接口,有效的用遠程技術,使其構件技術被廣泛的應用。
4基于軟件構件的軟件開發流程研究
基于軟件構件的軟件開發流程,主要包括整體框架設計、構件庫建立、獲取構件、構件調整以及重組安裝等過程。
4.1整體框架設計
對于其整體框架設計,首先要對于業務需求進行有效的分析,然后找出與將要設計的軟件功能需求的共性,然后將功能構件從系統中進行分解,最戶將開發軟件系統構件化。
4.2構件庫建立
構件庫建立是為了使構件更好的符合軟件開發需求,從而將構件進行統一管理,同時構件庫對于軟件的重復使用,起到支持、描述、分類、保存等作用;從而更好的保證軟件開發的效率。
4.3獲取構件
需求分析后的構件,會將滿足應用環境的構件選取出來,并進行適當的修改,最后使其組裝到將要開發的軟件系統中。其中構件的獲取,可以通過發現階段、評估階段,利用以往開發過的構件,按照系統開發的需求進行選取,或是利用當前開發的系統功能模式,對于構件進行開發和獲取,再就是利用購買、利用網絡資源進行構件獲取。
4.4構件調整
當構件獲取后,為了是獲取的構件更加的滿足系統開發的功能需求,使其符合設計規則,對此需要對于構件的功能,進行一系列的調整;調整的形式分為白盒法、黑盒法以及灰盒法,其中白盒法的主要形式,是通過對于構件源碼的修改,使其構件之間的沖突降低,但是對于源碼的調整會影響其使用特性,給后期維護造成影響,對此進行有效的維護是非常有必要的。其中黑盒法以及灰盒法,是將源碼進行保留,提供構建的擴展機制,或是提供可編接口。
4.5構件的組裝
構件庫中的構件按照應用環境進行調整,然后將構件的端口進行相互連接,或者將構件與開發軟件元素進行連接,使其更好的進行軟件開發;每個構件的作用發揮,是在與群體構件組合之后發揮功能的;對此在進行系統研發時要將單個構件進行整合,利用可以容納不同性質構件的框架進行管理;同時對于構件的安裝,可將通用性、功能性強的構件,布置在中央數據服務器上;最后進行粘接代碼的編制的工作。
5總結
綜上所述,發現軟件開發是一項復雜且繁瑣的過程,相關設計人員不僅要掌握軟件構件的基本性能,還要做好軟件開發需求調研分析,工作任務繁重并且頭緒雜亂。本文對基于軟件構件的軟件開發的流程進行梳理,開發人員可以參照整體框架設計、構件庫建立、獲取構件、構件調整以及重組安裝等步驟進行標準化實施,一方面可以減輕開發人員繁雜的工作量,另一方面也能夠更好的保證軟件開發的質量和效率,希望對軟件開發者有所幫助。
參考文獻
[1]田容雨.基于軟件構件技術的Web系統開發平臺的研究[D].山東大學,2011.
[2]葉偉.構件化軟件開發及系統測試技術探究[J].計算機光盤軟件與應用,2012,03:176-177.
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)30-0738-02
The Application and Research of Embedded SOPC
QU Xiao-ping,GAO Ning
(Information Science and Technology College, Jiujiang University, Jiujiang 332005,China)
Abstract: Since the raditional means can not meet the current application requirements of embedded systems, a new development method for SOPC is discussed. A complete analysis and research of SOPC with embedded IP hardcor/softcore, which is based on FPGA, is carried out, and the development flow of embedded SOPC is systematically decribed, as well as the critical questions during hardware/software development is discussed in detail. Finally the full development progress of embedded SOPC is explained in detail with an LED as an example.
Key words: embedded; system on chip; SOPC; NIOS II Core
1 引言
隨著信息化技術的發展和數字化產品的普及,大規模集成電路技術的進步和制造工藝水平的提高,以計算機技術、芯片技術和軟件技術為核心的嵌入式系統開發變得日益復雜。傳統的嵌入式系統設計方法已經不能適應當前嵌入式系統的單片容量大、功能多、體積小、設計便利等需求。本文主要闡述一種全新的、靈活的、高效的嵌入式系統設計方法SOPC(System On Progranmable Chip,可編程的片上系統),它是基于FPGA解決方案的SOC,它將處理器、存儲器、I/O口、LVDS、CDR等系統設計需要的功能模塊集成到一個可編程的器件上,構成一個可編程的片上系統。
2 嵌入式SOPC概述
SOPC(System On Progranmable Chip,可編程的片上系統)是Altera公司提出的一種靈活高效的SOC的解決方案,它是PLD和ASIC技術融合的結果,目前,0.13um的ASIC產品制造價格仍然相當昂貴,而集成了硬核和軟核CPU、DSP、存儲器、I/O設備和可編程邏輯的SOPC芯片在應用靈活性上和價格上有相當大的優勢?,F今,普遍認為SOPC是基于FPGA解決方案的SOC,與ASIC的SOC解決方案相比,SOPC系統及其開發技術具有更多的特色,構成SOPC的方案也有多種途徑。
2.1 基于FPAG嵌入IP硬核的SOPC系統的優點[2]
基于FPGA嵌入IP硬核的SOPC系統是指在FPGA中預先移入處理器。目前最常用的嵌入式處理器大多是采用含有ARM32位知識產權處理器核的器件。為了達到通用性,必須為常規的嵌入式處理器集成諸多通用和專用的接口,但這樣無疑會增加芯片的成本和功耗。如果將ARM或其他處理器核以硬核方式植入FPGA中,利用FPGA中的可編程邏輯資源,可按照系統功能需求來添加接口功能模塊,這樣既能實現目標系統的功能,又能降低系統的成本和功耗。這樣就能使得FPGA靈活的硬件設計與處理器的強大軟件功能有機的結合在一起,高率的實現SOPC系統。
2.2 基于FPGA嵌入IP硬核的SOPC系統缺點[2,3]
將IP硬核直接植入FPGA的解決方案存在以下幾種不足:
1)由于此類硬核多來自第三方公司,FPGA廠商通常無法直接控制其知識產權費用,從而導致FPGA器件價格相對偏高。2)由于硬核是預先植入的,設計者無法根據實際需要改變處理器的結構,如總線規模、接口方式、指令形式、更不可能將FPGA邏輯資源構成的硬件模塊以指令的形式嵌入硬件加速模塊。3)無法根據實際設計需要在同一FPGA中集成多個處理器。4)無法根據需要裁減處理器硬件資源以降低FPGA成本。5)只能在特定的FPGA中使用硬核嵌入式處理器。
2.3 基于FPGA嵌入IP軟核的SOPC系統
為了解決基于FPGA嵌入IP硬核的SOPC系統存在的問題。人們設計了基于FPGA嵌入IP軟核的SOPC系統。目前最具有代表性的軟核處理器Altera公司的NIOSII核。
3 嵌入式SOPC應用開發
3.1 嵌入式SOPC應用開發流程簡介[3]
1)分析系統需求。2)建立Quartus II工程,建立頂層圖*.bdf。3)打開SOPC Builder定義和生成系統(使用NIOSII內核&標準外設和定制指令&定制外設邏輯)。說明:(4.1-4.7)硬件開發4.1)集成SOPC生成的系統到Quartus II工程(自定義的功能模塊和Altera的LPM模塊)。4.2)連接各功能模塊。4.3)選擇FPGA型號,并進行管腳分配。4.5)進行編譯選項設置。4.6)編譯硬件系統生成配置文件.sof。4.7)下載配置文件到到FPGA器件。說明:(5.1-5.4)軟件開發。
5.1)使用NIOSII IDE開發軟件(硬件抽象層(HAL)&外設驅動程序和用戶C/C++應用程序代碼和定制的庫)。
5.2)設置軟件運行硬件環境屬性。
5.3)編譯軟件生成可執行文件.elf。
5.4)在IDE中使用ISS運行/調式軟件。
6)在目標板上下載可執行軟件到NIOS II系統。
7)在目標板上運行/調試軟件。
8)調式好的硬件和軟件。
9)使用IDE編程工具燒寫配置文件和軟件代碼。
3.2 硬件開發[2,4]
硬件開發使用Quartus II和SOPC Builder。硬件設計過程如下:
首先,使用SOPC Builder軟件從NIOS II處理器內核和NIOS II開發套件提供的外設列表中選取合適的CPU、存儲器以及各外部器件并定制和配置它們的功能,分配外設地址及中斷號;設定復位地址;最后生成系統。用戶也可以添加用戶自身的定制指令邏輯到NIOS II內核以加速CPU性能,或添加用戶外設以減輕CPU的任務。
其次,使用SOPC Builder生成NIOS II 系統后,將其集成到整個QuartusII工程中??梢栽赒uartusII工程中加入NIOS II 以外的邏輯,大多數的SOPC設計都包括NIOS II系統以外的邏輯,這也是SOPC系統的優勢所在。用戶可以集成自身的定制的硬件模塊到SOPC設計,或集成從Altera或第3方IP供應商中得到的其它現成知識產權設計模塊。
再次,使用QuartusII軟件來選取具體的Altera FPGA器件型號;然后為NIOS II系統上的各I/O口分配管腳,另外,還要根據要求進行硬件編譯選項或時序約束的設置;最后編譯QuartusII工程,在編譯過程中QuartusII將對SOPC Builder生成系統的HDL設計文件進行布局布線,從HDL源文件綜合生成一個合適目標器件的網絡表,生成FPGA配置文件。
最后,使用QuartusII編程器和Altera下載電纜將配置文件(用戶定制的NIOS II 處理器系統的硬件設計)下載到目標板上。當校驗完當前硬件設計后,可將新的配置文件下載到目標板的非易失存儲器中。下載萬硬件配置文件后,軟件開發者就可以將此目標板作為軟件開發的初期硬件平臺進行軟件功能的開發驗證了。
3.3 軟件開發[2,4]
軟件開發使用NIOS II IDE,它是一個基于Eclipse IED架構的集成開發環境,它包括:
GUN開發工具(標準的GCC編譯器,連接器,匯編器和Makefile工具等);
基于GDB的調試器,包括軟件仿真和硬件調試;
提供用戶一個硬件抽象層;
提供嵌入式操作系統MicroC/OS-II和LwTCP/IP協議的支持;
提供幫助用戶快似入門的軟件模板;
提供Flash下載支持;
使用NIOSII IDE,可完成NIOSII處理器系統的所有軟件開發任務。使用SOPC Builder 生成系統后,可以直接使用NIOSII IDE開始設計C/C++應用程序代碼。Altera提供外設驅動程序和硬件抽象層(HAL),使用戶能夠快速的編寫與低級硬件細節無關的NIOSII程序。除了應用代碼外,用戶還可以在NIOSII IDE工程中設計和重新使用定制庫。
用戶在沒有目標板的情況下,可以通過NIOSII指令集仿真器(ISS)運行和調試代碼。ISS可以仿真處理器、存儲器、stdin/stdout/stderr流,使用戶可以檢驗程序流和算法的正確性。
4 嵌入式SOPC的應用實例
4.1 任務
建立一個基于NIOSII處理器的系統來控制一個LED燈閃爍。
4.2 開發步驟[5]
4.3.1 分析系統需求
本應用實例的開發任務是:
1)展示可用于控制LED閃爍的簡單NIOSII處理器系統;2)利用最通用的最有效的方法來建立實際的頂制NIOSII;3)整個系統僅使用片內資源,且不依賴于目標板。
分析任務可以知道FPGA內硬件系統組成應包含:
1)帶有2KB指令高速緩存的NIOSII/S處理器核;2)帶有1KB片內ROM存儲器用于存儲程序代碼以及程序運行空間;3)帶有1KB片內RAM存儲器用于變量存儲、Heap、stack;3有一位輸出I/O(PIO)來控制LED;4)系統識別設備(SystemID)。
說明:由于控制LED燈閃爍的用戶程序代碼很小,所以可將代碼固化在片內ROM來執行,變量,堆棧燈空間使用片內RAM,而不使用任何片外存儲器。使用片內存儲器能獲得非常高的執行性能。
4.3.2 使用Quartus II建立工程。
1)打開Quartus II軟件并建立工程;2)建立頂層模塊并命名為LED.BDF 。
4.3.3 使用SOPC Builder創建NIOSII系統
1)啟動SOPC Builder;2)指定目標FPGA和時鐘設置;3)添加NIOSII處理器核;4)添加片內存儲器;5)添加PIC;6)添加系統ID外觀;7)指定基地址和中斷請求優先級;8)設置NIOSII復位和異常地址;9)生成NIOSII系統。至此已經完成了NIOSII系統的創建。
4.3.4 集成NIOSII系統到到Quartus II工程
1)添加NIOSII系統模塊到NIOSII頂層模塊;2)添加引腳和其他基本單元;3)選擇器件型號;4)分配FPGA管腳;器件和管腳的其他設置。
4.3.5 設置編譯選項并編譯硬件系統(下轉第755頁)
(上接第739頁)
1)設置編譯選項;2)編譯硬件系統;3)查看編譯報告。
4.3.6 下載硬件設計到目標FPGA
4.3.7 使用NIOSII IDE創建用戶程序
1)創建一個新的C/C++應用工程;2)設置C/C++應用工程系統屬性;3)編譯連接工程;
4.3.8 調試/運行程序
1)在目標硬件系統上運行程序;2)在目標板上調試程序;3)經過重新編譯硬件系統后,程序將直接運行,目標板
上的LED將閃爍。
5 小結
本文主要介紹一種新的嵌入式設計方法即可編程的片上系統SOPC,通過對當前流行的基于FPGA的IP硬核、軟核SOPC系統的分析與研究,拋磚引玉,給目前從事傳統嵌入式開發人員指明一個方向,并快速入門提供幫助。
參考文獻:
[1] 周立功.SOPC嵌入式系統基礎教程[M].北京航空航天大學出版社,2006,(11):30-65.
[2] 周立功.SOPC 嵌入式系統實驗教程[M].北京航空航天大學出版社,2006,(11):103-124.
[3] 邵舒淵.SOPC教程[M].西安:西北工業大學,2005,(3):132-156.
注:以上所有網站均可從課程網站/jpkc進入。
教材編寫:考慮到雙語教學的需要,目前教學采用的是微軟出版社出版的權威原版教材:由Douglas Boling編寫的“Programming Microsoft Windows CE .NET”, Third Edition, Microsoft Press, 2003。同時,本課程主講教師編寫的本課程配套教材和中文版電子版也已完成,包括中英文兩個版本的教材、實驗指導書等都將在2006年正式出版。
主要工作業績
何宗鍵,畢業于同濟大學。國內首批微軟Windows Embedded認證講師。作為國內最早開設基于Windows CE的嵌入式系統課程的高校教師,在Windows CE嵌入式教學和研究領域已積累了相當豐富的經驗。其在Windows嵌入式教學領域的工作和成績主要包括:
2005年6月,在微軟亞洲研究院與同濟大學聯合舉辦的“微軟Windows Embedded教學研討培訓會”上作專題演講,介紹本課程的教學經驗,并對與會教師進行培訓教學。
2005年6月,作為主要參加者之一,參與微軟亞洲研究院的“國家發改委-微軟嵌入式系統教學包”制作,負責Windows CE實驗部分內容的編寫。
2005年9月,在微軟公司舉辦的Windows Embedded技術研討會上作關于Windows CE系統定制的專題講座。
2005年11月,在首屆全國Modern C++ Design & Programming大會上作關于Embedded Software技術講座。