陳永光,萬近況,郝亞鋒,趙 鵬,楊樹森,趙 聰
(1.陜西煤業(yè)股份有限公司 生產(chǎn)技術(shù)部,陜西 西安 710076;2.西安交通大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710049;3.西安交通大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,陜西 西安 710049)
目前,我國在信息化建設(shè)方面對企業(yè)的支撐作用已不局限于業(yè)務(wù)運營范圍,更多的是為企業(yè)創(chuàng)造新的科技戰(zhàn)略競爭機(jī)遇[1,2].其中,建立企業(yè)信息化科技管理系統(tǒng)來保障信息化建設(shè)的順利推進(jìn)是提升企業(yè)效益和效率的關(guān)鍵因素之一[3,4].總體而言,當(dāng)前信息化系統(tǒng)的開發(fā)過程中存在三個普遍特征:一是信息化系統(tǒng)建設(shè)的特點集中體現(xiàn)在涵蓋工作面廣、功能多樣化、性能智能化等方面;二是隨著系統(tǒng)開發(fā)要求的不斷提高,相應(yīng)的系統(tǒng)建設(shè)開發(fā)周期反而越來越短,一旦立項,數(shù)月內(nèi)就要完成系統(tǒng)開發(fā)、測試及上線運行;三是企業(yè)客戶往往缺乏一個明確、細(xì)致的技術(shù)規(guī)格,這也是最讓開發(fā)人員感到困惑的系統(tǒng)業(yè)務(wù)需求之一[5].由于需求的不明確性和不穩(wěn)定性,需要根據(jù)實際開發(fā)過程的中間結(jié)果來階段性地不斷調(diào)正、修改與完善開發(fā)規(guī)劃.因此,承擔(dān)系統(tǒng)軟件開發(fā)任務(wù)的開發(fā)者既要滿足國標(biāo)GB/T 8566-2007《信息技術(shù)軟件生存周期過程》規(guī)定的諸多環(huán)節(jié)(如過程實施、需求分析、軟件設(shè)計、編碼和測試、軟件驗收支持等流程均不可或缺),又要在數(shù)月內(nèi)完成系統(tǒng)軟件的開發(fā)與上線,匹配當(dāng)年工作的開展,滿足客戶需求.其中,開發(fā)模型的選擇至關(guān)重要,選擇合適的開發(fā)模型會對系統(tǒng)開發(fā)工作起到事半功倍的作用[6].
軟件開發(fā)模型是涵蓋整個軟件生命周期中系統(tǒng)開發(fā)、運行和運維所實施的全部工作和任務(wù)的結(jié)構(gòu)框架.瀑布模型作為最早出現(xiàn)的軟件開發(fā)模型,在軟件工程中占據(jù)著重要地位[7,8].然而,瀑布模型對客戶需求的要求極高,其中軟件需求不能頻繁變更,且開發(fā)人員必須準(zhǔn)確理解需求[9,10].這往往導(dǎo)致開發(fā)完成的軟件項目與客戶預(yù)期中的效果存在差異,進(jìn)而導(dǎo)致軟件項目無法順利高效地完成,最終造成巨大的時間和經(jīng)濟(jì)損失.為解決這個問題,快速敏捷開發(fā)模型應(yīng)運而生[11].它保持了瀑布模型線性開發(fā)的特點,有利于對項目進(jìn)行有效的管理;與此同時,它側(cè)重于對客戶需求的精確捕獲,通過建立客戶與系統(tǒng)間的交互,使客戶對系統(tǒng)進(jìn)行簡單了解,從而提出簡要評價,成功細(xì)化了客戶對軟件產(chǎn)品的需求[12].
從上述需求出發(fā),本文認(rèn)為快速敏捷開發(fā)模型是滿足企業(yè)用戶要求的最可靠的開發(fā)模型.常見的快速敏捷開發(fā)框架包括SCRUM、XP、FDD、DSDM、ASD等[13].本文進(jìn)一步設(shè)計了Jet低代碼快速開發(fā)平臺,選取陜西煤業(yè)股份有限公司進(jìn)行實例驗證,基于所提出平臺完成了《陜西煤業(yè)科技管理信息系統(tǒng)》的開發(fā),驗證了其可用性、易用性和高效優(yōu)質(zhì)性.實驗結(jié)果表明,Jet低代碼快速開發(fā)平臺是一種開發(fā)效率高、操作簡單、實用性非常強(qiáng)的快速敏捷開發(fā)工具,對陜西煤業(yè)在科技信息管理、效益經(jīng)營、提高市場競爭力方面均有重要意義.此外,本研究也可為我國廣大企業(yè)信息化管理提供參考范例,從理論和實踐兩方面有效推動企業(yè)實現(xiàn)信息化和企業(yè)戰(zhàn)略的融合,提高信息化的投資回報率并降低企業(yè)信息化建設(shè)風(fēng)險,對企業(yè)信息化發(fā)展具有較大的意義和價值.
從業(yè)務(wù)角度出發(fā),科技管理系統(tǒng)主要包括項目管理、科技成果評價管理、評獎管理、科技引導(dǎo)資金申請與管理、科技工作考核與評選、科技成果管理、加計扣除管理、科技貢獻(xiàn)率計算、政府政策解讀、期刊管理、文檔管理、報表管理、科技人員管理、系統(tǒng)管理等十?dāng)?shù)個功能模塊,各功能模塊又有數(shù)個業(yè)務(wù)功能分支.功能詳細(xì)分類及功能點見表1所示.下面以陜西煤業(yè)股份有限公司為例,詳細(xì)討論其科技管理系統(tǒng)在構(gòu)建過程中的業(yè)務(wù)需求和架構(gòu)設(shè)計.
表1 科技管理系統(tǒng)主要業(yè)務(wù)功能列表
陜西煤業(yè)科技管理系統(tǒng)的業(yè)務(wù)需求可從管理架構(gòu)、性能要求、安全性要求、崗位職能要求和易用性要求等方面分別討論.首先,科技管理系統(tǒng)在管理架構(gòu)上由三級組織架構(gòu)構(gòu)成,要滿足陜西煤業(yè)、礦業(yè)公司、煤礦企業(yè)三層管理架構(gòu)的數(shù)據(jù)權(quán)限功能,因此,系統(tǒng)必須兼顧三級組織單位使用.之后,在性能要求方面,系統(tǒng)最少支持用戶數(shù)15萬人以上;最少支持并發(fā)訪問量5 000以上;并發(fā)訪問量5 000時,單個頁面響應(yīng)時間小于1秒(千兆內(nèi)部網(wǎng)絡(luò)環(huán)境).其次,在安全性要求方面,系統(tǒng)需滿足安全等級保護(hù)三級要求:當(dāng)系統(tǒng)檢測到攻擊行為時,記錄攻擊源IP、攻擊類型、攻擊目標(biāo)、攻擊時間,在發(fā)生嚴(yán)重入侵事件時提供報警,系統(tǒng)應(yīng)具有登錄失敗處理功能,應(yīng)配置并啟用結(jié)束會話、限制非法登錄次數(shù)和當(dāng)?shù)卿涍B接超時自動退出等相關(guān)措施,系統(tǒng)運行日志保存5年以上,要求每天自動生成一個日志文件,操作日志永久保存.此外,在崗位職能要求方面,登錄用戶需滿足一崗多人、一人兼數(shù)職.最后,在易用性要求方面,主要包括系統(tǒng)功能界面整體應(yīng)具備一致性、系統(tǒng)應(yīng)支持靈活自定義的查詢操作、系統(tǒng)應(yīng)提供在線幫助功能以方便用戶隨時查詢使用等.
基于以上對陜西煤業(yè)科技管理系統(tǒng)的業(yè)務(wù)需求和性能需求分析,可以得出該系統(tǒng)的實現(xiàn)需求具有以下四個方面特點:
(1)業(yè)務(wù)功能多且開發(fā)周期短,即要求快速開發(fā);
(2)運行快,BUG少,即開發(fā)質(zhì)量要有充分保障;
(3)保障運行操作安全、數(shù)據(jù)安全,即整體架構(gòu)有安全保障;
(4)可快速應(yīng)對系統(tǒng)功能的頻繁更新,即具有快速運維安全保障.
為此,本文以滿足上述需求特點為目標(biāo),對系統(tǒng)的業(yè)務(wù)架構(gòu)和實現(xiàn)途徑做架構(gòu)設(shè)計,同時選擇有效的開發(fā)工具來實現(xiàn)系統(tǒng)開發(fā).
如圖1所示,所設(shè)計業(yè)務(wù)架構(gòu)自下而上由接口層、數(shù)據(jù)層、服務(wù)層、業(yè)務(wù)功能層和顯示接入層構(gòu)成,整個過程貫穿著短信收發(fā)通知以及貫穿于整體聯(lián)系的消息總線.
圖1 陜西煤業(yè)科技管理信息系統(tǒng)業(yè)務(wù)架構(gòu)
針對上述業(yè)務(wù)架構(gòu),本文設(shè)計了如圖2所示的開發(fā)實現(xiàn)系統(tǒng)架構(gòu).其中,數(shù)據(jù)層采用開源的PostgreSQL數(shù)據(jù)庫,redis負(fù)責(zé)整個系統(tǒng)運行中的設(shè)備配置、狀態(tài)管理和各種緩存.業(yè)務(wù)層由SpringBoot、SpringMVC、JFinal等構(gòu)成的Jet低代碼快速開發(fā)平臺實現(xiàn).服務(wù)層由mybatis映射、rsbbitMq消息隊列、JWT token、Shiro鑒權(quán)等中間件實現(xiàn).
圖2 系統(tǒng)架構(gòu)
對于業(yè)務(wù)功能的設(shè)計,本文首先將系統(tǒng)按照功能屬性劃分為門戶網(wǎng)站、業(yè)務(wù)和后臺管理三個子系統(tǒng),本文內(nèi)容主要集中在業(yè)務(wù)子系統(tǒng)的技術(shù)實現(xiàn)上.業(yè)務(wù)子系統(tǒng)負(fù)責(zé)整個科技管理系統(tǒng)的業(yè)務(wù)處理,由龐大且復(fù)雜的業(yè)務(wù)處理細(xì)節(jié)組成.按照業(yè)務(wù)屬性,將其劃分為表1所示的十大功能分類(一級菜單),具體業(yè)務(wù)功能點見表1.
為了滿足陜西煤業(yè)科技管理信息系統(tǒng)開發(fā)周期短、穩(wěn)定性要求高、安全性要求高、后期頻繁更新運維保障要求高的非技術(shù)需求,本文研發(fā)了Jet低代碼快速開發(fā)平臺技術(shù).以下分別從Jet快速開發(fā)架構(gòu)、Jet快速開發(fā)平臺、工程實踐技術(shù)、多重系統(tǒng)安全防護(hù)技術(shù)和容器技術(shù)等方面詳細(xì)介紹平臺設(shè)計與實現(xiàn).
本文所設(shè)計Jet快速開發(fā)架構(gòu)基于編譯器技術(shù)自動生成前后端代碼,前端UI通過事件分發(fā)實現(xiàn)繼承機(jī)制,常規(guī)增刪查改導(dǎo)入導(dǎo)出不用寫一行代碼,內(nèi)置資源管理、角色管理、權(quán)限管理等11個基礎(chǔ)功能,開箱即用實現(xiàn)快速開發(fā);基于工程最佳實踐、確保代碼質(zhì)量,統(tǒng)一軟件供應(yīng)鏈管控,統(tǒng)一項目構(gòu)建管理,強(qiáng)制代碼靜態(tài)檢查、警告零容忍;多種安全舉措并用、確保系統(tǒng)安全,通過類型安全SQL,系統(tǒng)SQL注入漏洞為零,通過引入Shiro安全框架,安全管控全局統(tǒng)一處理,基于yubikey實現(xiàn)硬件級雙因子認(rèn)證,支持免密登錄;基于Jib自動將Java項目打包成Docker鏡像,通過Dcoker-Compose技術(shù)自動化部署最新代碼,基于容器相關(guān)技術(shù)實現(xiàn)快速更新部署,達(dá)到分鐘級部署.
2.2.1 基于編譯器技術(shù)的代碼自動生成
針對一個MIS信息系統(tǒng),傳統(tǒng)開發(fā)方式即便是開發(fā)一個增刪改查的CURD模塊,也需要逐個編寫POJO、ORM映射、DAO、Service、Controller和前端代碼.經(jīng)統(tǒng)計,一個中級工程師開發(fā)這樣一個CURD模塊,需要1~2天時間.本文基于上述Jet框架,通過實現(xiàn)一個編譯器直接生成這些增刪改查代碼,讓開發(fā)人員只專注于開發(fā)除增刪改查之外的個性化業(yè)務(wù)代碼.
編譯器的實現(xiàn)分為三個階段:
Step1獲取數(shù)據(jù)庫業(yè)務(wù)表信息,即通過數(shù)據(jù)庫的系統(tǒng)表獲得所有業(yè)務(wù)表的表名、字段名、字段類型、字段注釋;
Step2在內(nèi)存中重建系統(tǒng)業(yè)務(wù)信息,將這些業(yè)務(wù)表信息轉(zhuǎn)化為Java對象信息,并在內(nèi)存中重建依賴關(guān)系;
Step3依靠模板技術(shù),通過預(yù)先定義的業(yè)務(wù)模板,將內(nèi)存中的Java對象直接生成POJO、ORM映射、DAO、Service、Controller和前端代碼相關(guān)代碼,生成的代碼可不用修改直接正常運行.
通過編譯器代碼生成技術(shù),一個中級工程師從設(shè)計業(yè)務(wù)表到生成所有前后端代碼只需30 min左右.因此,本文所提出的Jet快速開發(fā)平臺可將開發(fā)一個CURD功能所需時間從傳統(tǒng)的1~2天縮短到30 min以內(nèi),大幅提升了開發(fā)效率.
2.2.2 基于事件分發(fā)的前端UI繼承機(jī)制
代碼生成器的優(yōu)勢是可以快速生成代碼,生成的后臺代碼往往通過繼承來復(fù)用,但是由于業(yè)務(wù)復(fù)雜,前端代碼難以復(fù)用.因此,如何在前端實現(xiàn)更好的代碼復(fù)用是一個亟待解決的問題.
本文通過事件派發(fā)方式實現(xiàn)了前端繼承機(jī)制,將事件的產(chǎn)生和事件的執(zhí)行分開,用戶界面操作產(chǎn)生系統(tǒng)事件,Jet前端將系統(tǒng)事件轉(zhuǎn)化為業(yè)務(wù)事件,再分發(fā)到綁定這個業(yè)務(wù)事件的業(yè)務(wù)函數(shù)上從而實現(xiàn)功能.通過事件機(jī)制實現(xiàn)了代碼復(fù)用,生成的代碼繼承基類后自動支持增刪改查相關(guān)操作,通用操作直接綁定到對應(yīng)的業(yè)務(wù)事件上,在基類中統(tǒng)一實現(xiàn),個性化操作只需定義新的事件和新的事件處理即可.
綜上所述,基于事件分發(fā)在前端實現(xiàn)集成機(jī)制,既保證了生成前端的基本CURD操作不用寫一行代碼,又可以通過輕松擴(kuò)展來支持復(fù)雜功能.
2.3.1 軟件供應(yīng)鏈統(tǒng)一管控
現(xiàn)代軟件開發(fā)過程通常以開源軟件為基礎(chǔ)原材料,結(jié)合實際業(yè)務(wù)需求和應(yīng)用場景補(bǔ)充添加相對獨立的業(yè)務(wù)代碼,最后形成一套軟件系統(tǒng).全球最權(quán)威的開源軟件安全分析報告指出,所調(diào)研的系統(tǒng)中99%包含開源組件,49%的開源組件包含高風(fēng)險漏洞,82%的代碼庫中包含過期4年的組件,存在安全風(fēng)險.為了對項目中使用的第三方組件進(jìn)行統(tǒng)一管控,本文采用POM來集中定義項目的私有Jar包依賴倉庫以及相應(yīng)Jar包的版本號,子模塊禁止引入新的Jar依賴,禁止使用Jar包版本號,只允許使用POM中定義的內(nèi)部依賴,從而達(dá)到統(tǒng)一管控依賴的效果.
2.3.2 項目構(gòu)建統(tǒng)一管理
Java項目自動構(gòu)建過程復(fù)雜,為了統(tǒng)一各個子模塊的構(gòu)建方法,本文定義了parent模塊,所有子模塊繼承自該模塊,自動繼承在parent中定義的構(gòu)建方法,包括自動更新版權(quán)、自動格式化代碼、自動進(jìn)行代碼靜態(tài)檢查、自動打包等.
2.3.3 靜態(tài)代碼檢查
靜態(tài)代碼分析[14]是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷.統(tǒng)計表明,在整個軟件開發(fā)生命周期中,30%至70%的代碼邏輯設(shè)計和編碼缺陷是可以通過靜態(tài)代碼分析來發(fā)現(xiàn)和修復(fù)的.對于軟件開發(fā)團(tuán)隊而言,使用靜態(tài)代碼分析工具自動化執(zhí)行代碼檢查和分析,能夠極大地提高軟件可靠性并節(jié)省軟件開發(fā)和測試成本.本文通過引入PMD靜態(tài)代碼檢查工具,可以自動發(fā)現(xiàn)以下問題:
(1)潛在的BUG:空的try/catch/finally/switch語句;
(2)未使用的代碼:未使用的局部變量、參數(shù)、私有方法等;
(3)可選的代碼:String/StringBuffer的濫用;
(4)復(fù)雜的表達(dá)式:不必須的if語句、可以使用while循環(huán)完成的for循環(huán);
(5)重復(fù)的代碼:拷貝/粘貼代碼意味著拷貝/粘貼BUG;
(6)循環(huán)體創(chuàng)建新對象:盡量不要在for或while循環(huán)體內(nèi)實例化一個新對象;
(7)資源關(guān)閉:Connect,Result,Statement等使用之后確保關(guān)閉掉.
近年來,信息安全事件層出不窮,信息安全越來越受到重視[15,16].圖3展示了2017年、2021年全球排名靠前的安全風(fēng)險.針對此問題,本文采用多重系統(tǒng)安全防護(hù)技術(shù)保障系統(tǒng)安全.
圖3 十大Web應(yīng)用程序安全風(fēng)險[15]
2.4.1 安全SQL技術(shù)
本文通過構(gòu)建類型安全SQL確保系統(tǒng)SQL注入漏洞為零.SQL注入漏洞連續(xù)多年排在安全漏洞的前列(如圖3所示,2017年排名第一,2021年排名第三).形成SQL注入漏洞的主要原因是在前端的數(shù)據(jù)傳入到后臺進(jìn)行處理時沒有經(jīng)過嚴(yán)格的判斷,因此,其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行,從而導(dǎo)致數(shù)據(jù)庫受損(被脫庫、被刪除、甚至整個服務(wù)器權(quán)限淪陷).為了解決這個問題,本文構(gòu)建了類型安全SQL,即用Java語言來描述數(shù)據(jù)庫結(jié)構(gòu),用Java語言來寫各種SQL語句,通過Java編譯器在構(gòu)建期間就自動檢查相關(guān)代碼,在運行期通過動態(tài)SQL生成技術(shù)實時安全地生成SQL代碼,從而從源頭上消除了SQL注入漏洞,確保系統(tǒng)SQL注入漏洞為零.
2.4.2 Shiro安全框架
本文通過引入Shiro安全框架[17]實現(xiàn)安全管控全局統(tǒng)一處理.訪問控制問題成為2021年排名第一的安全問題[15].由于獨自實現(xiàn)一套安全框架工作量過大,本文引入了Apache Shiro,一個功能強(qiáng)大、易于使用的Java安全框架.其可以執(zhí)行身份驗證、授權(quán)、加密和會話管理.通過Shiro易于理解的API,可以快速輕松地保護(hù)任何應(yīng)用程序——從最小的移動應(yīng)用程序到最大的web和企業(yè)應(yīng)用程序.本文通過Apache Shiro來支持賬號/密碼、硬件登錄、并對所有的請求進(jìn)行訪問控制,并支持用戶-角色-權(quán)限的經(jīng)典權(quán)限控制體系.
2.4.3 yubikey硬件級雙因子認(rèn)證
本文支持yubikey硬件級雙因子認(rèn)證,支持WebAuthn免密登錄協(xié)議,登錄系統(tǒng)只需插入yubikey硬件,并觸摸安全觸點即可實現(xiàn)自動登錄系統(tǒng),省卻了輸入用戶名和密碼的麻煩,即簡單又安全.
本文所構(gòu)建的Jet快速開發(fā)平臺采用目前常用的虛擬機(jī)(Virtual Machine,VM)技術(shù)與容器技術(shù)進(jìn)行虛擬化與資源隔離,構(gòu)建應(yīng)用開發(fā)測試與生產(chǎn)的環(huán)境.Docker是基于LXC容器技術(shù)的開源項目[18,19],可用于打包應(yīng)用代碼及其運行環(huán)境和依賴庫,構(gòu)建不可變基礎(chǔ)設(shè)施.同時,因為其輕便的特性,具有很強(qiáng)的移植能力,如圖4所示.
圖4 Docker容器與虛擬機(jī)架構(gòu)示意圖[18]
2.5.1 基于Jib技術(shù)的程序打包
Docker容器的體量要遠(yuǎn)小于虛擬機(jī),對主機(jī)CPU、內(nèi)存和存儲的資源開銷也更低,同時由于其輕量特性,更加便于服務(wù)遷移與負(fù)載均衡的實現(xiàn).Jib技術(shù)在不使用Dockerfile或不安裝Docker的情況下構(gòu)建容器,可以在用于Maven或Gradle的Jib插件中使用Jib技術(shù),也可以使用Jib Java庫.本文將Jib技術(shù)應(yīng)用于打包容器鏡像的所有步驟,因此,無需了解創(chuàng)建Dockerfile的最佳做法或安裝Docker.
具體來說,Jib將應(yīng)用整理成不同的層、依賴項、資源和類,并且利用Docker鏡像層緩存僅通過重建更改來保持構(gòu)建速度.Jib的層組織和小型基礎(chǔ)鏡像可使整體鏡像尺寸變小,從而提升性能和可攜性.傳統(tǒng)方式每次打包約需要五分鐘,且容易出錯,本文采用Jib方式可將打包時間最少縮短到一分鐘,且更為可靠、不易出錯.
2.5.2 基于Docker-compose的快速部署
Docker-compose技術(shù)是用于定義和運行多容器Docker應(yīng)用程序的工具[20].通過Compose,本文使用YML文件來配置應(yīng)用程序需要的所有服務(wù).然后,使用一個命令,就可以從YML文件配置中創(chuàng)建并啟動所有服務(wù).
傳統(tǒng)系統(tǒng)部署方式一般需要1到2天的時間,采用Docker-compose方式,僅需要1到2個小時即可完成部署,且更新時間只需要兩分鐘.
基于所提出Jet低代碼快速開發(fā)平臺技術(shù),本文實現(xiàn)了《陜西煤業(yè)科技管理信息系統(tǒng)》的具體設(shè)計和開發(fā),并在陜西煤業(yè)單位全面部署應(yīng)用.本系統(tǒng)共開發(fā)Web程序業(yè)務(wù)功能點130個,手機(jī)App業(yè)務(wù)功能點37個,完成代碼量約30萬行.
陜西煤業(yè)科技管理信息系統(tǒng)概況如圖5、圖6所示.圖5為系統(tǒng)駕駛艙,其布局有本單位科技進(jìn)步貢獻(xiàn)率、科技項目進(jìn)度可視化圖、科研成果統(tǒng)計圖、科研經(jīng)費支出統(tǒng)計圖、重要通知、該當(dāng)?shù)卿浗巧k事項、政策解讀等內(nèi)容.陜西煤業(yè)賬號還有下屬礦業(yè)公司最新科技項目概況鏈接.
圖5 陜西煤業(yè)科技管理信息系統(tǒng)—駕駛艙頁面
圖6為系統(tǒng)整體頁面布局,由一級菜單、二級菜單、數(shù)據(jù)列表區(qū)、數(shù)據(jù)查詢區(qū)、數(shù)據(jù)操作區(qū)(三級菜單)等五個功能區(qū)構(gòu)成.系統(tǒng)全體頁面的風(fēng)格、布局、排序等前后一致,使得學(xué)會一個頁面功能的操作,其他頁面隨之可用,大大提高了系統(tǒng)的易用性.同時,無論是什么角色,進(jìn)入哪個環(huán)節(jié),其可操作功能、不可操作功能、數(shù)據(jù)權(quán)限限制等,都智能地進(jìn)行了規(guī)制,其目的是防止誤操作,只進(jìn)行當(dāng)前該處理的業(yè)務(wù),從而大大提高了系統(tǒng)的智能性.
圖6 陜西煤業(yè)科技管理信息系統(tǒng)—頁面布局
相對于RAD快速模型將系統(tǒng)功能模塊化、獨立化,可并行工作、齊頭猛進(jìn),以大量人力的投入換取開發(fā)時間上的短縮等諸多開發(fā)手法,本文所提出Jet低代碼快速開發(fā)平臺采用的是代碼自動生成和頁面復(fù)用技術(shù),能夠在不增加人工數(shù)開支的前提下極大地提高代碼編程效率,大大縮減開發(fā)周期.
系統(tǒng)采用模塊化開發(fā),一方面通過模塊劃分以便多人合作開發(fā),另一方面通過模塊化來降低系統(tǒng)復(fù)雜性.項目最多時投入12名開發(fā)人員,Git上代碼提交了2 177次,數(shù)據(jù)庫表96張,采用代碼生成技術(shù)Java代碼66 765行,截止投稿時間累計開發(fā)Java代碼100 140行,僅Java代碼而言,代碼生成占比=66 765/100 140=66.6%,開發(fā)效率得到了大幅提升.
本文設(shè)計并實現(xiàn)了Jet低代碼快速開發(fā)平臺,其優(yōu)勢并不在于將整體化整為零,同時獨立開發(fā),而是將共通類的處理自動化,用機(jī)器實現(xiàn)60%的代碼開發(fā)量,使開發(fā)團(tuán)隊集中于業(yè)務(wù)處理,相互搭配以實現(xiàn)快速開發(fā),達(dá)到客戶認(rèn)定標(biāo)準(zhǔn).進(jìn)一步,本文選取陜西煤業(yè)股份有限公司進(jìn)行實例驗證,細(xì)致展現(xiàn)了《陜西煤業(yè)科技管理信息系統(tǒng)》的總體架構(gòu)及其業(yè)務(wù)和功能需求,詳細(xì)闡述了基于所提出Jet低代碼快速開發(fā)平臺的《陜西煤業(yè)科技管理信息系統(tǒng)》的開發(fā)過程.結(jié)果表明,本文所提出的Jet低代碼快速開發(fā)平臺是一種開發(fā)效率高、操作簡單、實用性非常強(qiáng)大的快速敏捷開發(fā)工具,對陜西煤業(yè)在科技信息管理、效益經(jīng)營、提高市場競爭力等方面具有重要意義.