本發(fā)明實(shí)施方式涉及一種面向行業(yè)或企業(yè)信息化的管理系統(tǒng),尤其是涉及一種業(yè)務(wù)人員能自行開發(fā)使用維護(hù)滿足自身業(yè)務(wù)需求的程序模塊的設(shè)計(jì)管理系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)科技的發(fā)展,社會各方面與軟件越來越緊密結(jié)合,尤其是事企業(yè)單位越來越依賴于基于關(guān)系型數(shù)據(jù)庫的應(yīng)用管理系統(tǒng)來處理日常事務(wù)。但是,開發(fā)一款滿足自身業(yè)務(wù)需求的軟件系統(tǒng),涉及技術(shù)種類多,專業(yè)性強(qiáng),企業(yè)往往會采取委托軟件開發(fā)商的方式進(jìn)行開發(fā),由于開發(fā)流程環(huán)節(jié)多,導(dǎo)致開發(fā)周期長,動輒花費(fèi)數(shù)月時(shí)間才能完成。如果需求變動大,已交付使用的軟件系統(tǒng)將面臨維護(hù)難度大,甚或需要重新設(shè)計(jì)該業(yè)務(wù)的情況。事企業(yè)在當(dāng)中處于被主導(dǎo)地位。
軟件開發(fā)商如果使用計(jì)算機(jī)輔助軟件工程(CASE)工具可以較大地加快開發(fā)進(jìn)度。CASE工具由許多部分組成,一般按軟件開發(fā)的不同階段分為上層CASE和下層CASE產(chǎn)品。上層CASE工具自動進(jìn)行應(yīng)用的計(jì)劃、設(shè)計(jì)和分析,幫助用戶定義需求,產(chǎn)生需求說明,并可完成與應(yīng)用開發(fā)相關(guān)的所有計(jì)劃工作。下層CASE工具自動進(jìn)行應(yīng)用系統(tǒng)的編程、測試和維護(hù)工作。除非下層CASE和上層CASE工具的供應(yīng)商提供統(tǒng)一界面,否則用戶必須編寫或重新將所有信息從上層CASE工具轉(zhuǎn)換到下層CASE工具。CASE工具主要包括:畫圖工具,報(bào)告生成工具,數(shù)據(jù)詞典、數(shù)據(jù)庫管理系統(tǒng)和規(guī)格說明檢查工具,代碼生成工具和文檔資料生成工具等。目前 CASE的標(biāo)準(zhǔn)是 UML。這些工具集成在統(tǒng)一的CASE環(huán)境中,就可以通過一個(gè)公共接口,實(shí)現(xiàn)工具之間數(shù)據(jù)的可傳遞性,連接系統(tǒng)開發(fā)和維護(hù)過程中各個(gè)步驟,最后,在統(tǒng)一的軟、硬件平臺上實(shí)現(xiàn)系統(tǒng)的全部開發(fā)工作。
本發(fā)明和CASE工具設(shè)計(jì)理念相似。本發(fā)明采用可視化設(shè)計(jì)工具,消息機(jī)制,設(shè)計(jì)處理的數(shù)據(jù)庫操作,代碼生成,設(shè)計(jì)文檔生成下載等,提供和CASE工具一般的高效率和高可靠性。但實(shí)施方式和CASE工具有明顯不同:CASE工具是屬于計(jì)算機(jī)輔助軟件工程技術(shù)領(lǐng)域,是面向開發(fā)人員服務(wù)的,不存在客戶界面,單個(gè)工具完成的是軟件生命周期的一部分,工具間不一定有關(guān)聯(lián)性,很難形成一個(gè)完整性系統(tǒng);本發(fā)明系統(tǒng)主要面向的是事企業(yè)中的業(yè)務(wù)人員,在實(shí)施中充分考慮到易用性和規(guī)范性,注重客戶界面,業(yè)務(wù)適應(yīng)性和復(fù)用性強(qiáng),針對業(yè)務(wù)的開發(fā)使用維護(hù)形成一個(gè)獨(dú)立的整體。事企業(yè)在當(dāng)中處于主導(dǎo)地位,是一種“用戶生成程序”的實(shí)施方法。
當(dāng)前軟件系統(tǒng)開發(fā)存在問題總結(jié)如下:
1、軟件系統(tǒng)技術(shù)要求高,開發(fā)周期長,事企業(yè)委托軟件開發(fā)商開發(fā)軟件系統(tǒng)成本高;
2、軟件開發(fā)商采用輔助工具提高的效率,不一定能大幅減少事企業(yè)開發(fā)軟件系統(tǒng)開銷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是,提出一種事企業(yè)業(yè)務(wù)人員能自行開發(fā)使用維護(hù)滿足自身業(yè)務(wù)需求的程序模塊,高效可復(fù)用的自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)。具體解決方案是:
自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng),包括服務(wù)器與客戶端,所述服務(wù)器包括自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)服務(wù)端程序和數(shù)據(jù)庫;所述客戶端包含自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)客戶端程序??蛻舳说淖詣踊瘶I(yè)務(wù)設(shè)計(jì)管理系統(tǒng)客戶端程序,通過設(shè)計(jì)工具收集用戶業(yè)務(wù)設(shè)計(jì)信息,提交到服務(wù)器。服務(wù)器的自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)服務(wù)端程序,用于接收用戶業(yè)務(wù)設(shè)計(jì)信息,進(jìn)行設(shè)計(jì)處理。服務(wù)器的自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)服務(wù)端程序,按客戶端業(yè)務(wù)使用需求提供該業(yè)務(wù)相關(guān)的數(shù)據(jù)信息或業(yè)務(wù)處理結(jié)果。客戶端的自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)客戶端程序,根據(jù)服務(wù)端程序返回的業(yè)務(wù)數(shù)據(jù)及界面信息,顯示相應(yīng)的業(yè)務(wù)使用界面。
本發(fā)明的有益效果是,通過在服務(wù)器和客戶端建立自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng),業(yè)務(wù)人員能使用設(shè)計(jì)工具設(shè)計(jì)根據(jù)業(yè)務(wù)需求建模的數(shù)據(jù)庫模型,設(shè)定相關(guān)界面屬性,并提交進(jìn)行設(shè)計(jì)處理,系統(tǒng)自動生成表或視圖,生成設(shè)計(jì)文檔,建立相關(guān)的實(shí)體類,完成該業(yè)務(wù)的程序模塊,為該業(yè)務(wù)的使用作好準(zhǔn)備,有效地減少對開發(fā)人員的依賴;業(yè)務(wù)人員使用業(yè)務(wù)模塊時(shí),客戶端程序自動根據(jù)使用的業(yè)務(wù)功能調(diào)用相關(guān)的界面控件向服務(wù)端程序發(fā)出請求并獲取該業(yè)務(wù)數(shù)據(jù)和相關(guān)界面屬性信息,完成界面的顯示,操作業(yè)務(wù)模塊時(shí),界面控件會提起處理具體業(yè)務(wù)記錄的請求,服務(wù)端程序根據(jù)請求完成相應(yīng)處理,并返回結(jié)果,達(dá)到控制業(yè)務(wù)的效果如同開發(fā)人員開發(fā)的效果,并有很強(qiáng)的適應(yīng)性和可復(fù)用性,大大提高了開發(fā)效率,可隨時(shí)維護(hù)修改,使開發(fā)一個(gè)程序模塊可以用“天”,甚至以“小時(shí)”為單位計(jì)算,極大節(jié)省了企業(yè)的軟件開發(fā)成本開銷。
附圖說明
圖1為本發(fā)明自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)使用開發(fā)工具進(jìn)行業(yè)務(wù)開發(fā)維護(hù)示意圖。
圖2為本發(fā)明自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)使用已開發(fā)業(yè)務(wù)示意圖。
具體實(shí)施方式
在如圖1所示的開發(fā)過程中,開發(fā)工具是一套表單集,開發(fā)工具負(fù)責(zé)收集業(yè)務(wù)信息,形成設(shè)計(jì)信息并提交自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)服務(wù)端程序進(jìn)行設(shè)計(jì)處理。提交的設(shè)計(jì)信息是根據(jù)業(yè)務(wù)需求所設(shè)定的不可缺少的信息,包含完整的數(shù)據(jù)庫建模該業(yè)務(wù)部分所需內(nèi)容(表、列、范圍、約束)和在客戶端中該業(yè)務(wù)部分的使用界面的屬性信息。把該業(yè)務(wù)部分通過一個(gè)二維表來表示,各業(yè)務(wù)要素轉(zhuǎn)化為這個(gè)二維表的列、范圍、約束。設(shè)計(jì)工具可以復(fù)用以前的設(shè)計(jì)方案。以表約束的方式復(fù)用:通過當(dāng)前設(shè)計(jì)的表的某列與復(fù)用的表(已設(shè)計(jì)處理過生成的數(shù)據(jù)庫的表)的某列設(shè)定外鍵約束關(guān)系進(jìn)行復(fù)用,體現(xiàn)業(yè)務(wù)間的邏輯關(guān)系,由設(shè)計(jì)工具提供設(shè)定步驟,被復(fù)用的表可為主鍵表,也可為外鍵表。生成視圖方式復(fù)用:以復(fù)用的表(已設(shè)計(jì)處理過生成的數(shù)據(jù)庫的表)為驅(qū)動表,利用該表的列已設(shè)定的與他表的外鍵約束關(guān)系,獲取他表的數(shù)據(jù),屬于典型的多表連接,并在數(shù)據(jù)庫生成視圖,體現(xiàn)以復(fù)用的表代表的業(yè)務(wù)為視口的所有相關(guān)業(yè)務(wù)邏輯,由設(shè)計(jì)工具提供設(shè)定步驟。以多表連接的sql語句方式復(fù)用:以復(fù)用的表(已設(shè)計(jì)處理過生成的數(shù)據(jù)庫的表)為驅(qū)動表,利用該表的列已設(shè)定的與他表的外鍵約束關(guān)系,獲取他表的數(shù)據(jù),屬于典型的多表連接,但不在數(shù)據(jù)庫生成視圖,體現(xiàn)以復(fù)用的表代表的業(yè)務(wù)為視口的所有相關(guān)業(yè)務(wù)邏輯,由設(shè)計(jì)工具提供設(shè)定步驟,使用是通過利用在設(shè)計(jì)處理中生成的設(shè)計(jì)冗余信息(設(shè)計(jì)信息冗余表或?qū)嶓w類標(biāo)記冗余信息)在運(yùn)行時(shí)動態(tài)生成相應(yīng)的多表連接sql語句來運(yùn)行,達(dá)到視圖一樣的效果。設(shè)計(jì)處理按業(yè)務(wù)的數(shù)據(jù)庫建模設(shè)計(jì)信息,在數(shù)據(jù)庫使用DDL語句生成表或視圖;按整體設(shè)計(jì)信息,可生成設(shè)計(jì)文檔供用戶保存下載,該設(shè)計(jì)文檔可提供可逆操作,能生成數(shù)據(jù)庫業(yè)務(wù)模型,也可從數(shù)據(jù)庫業(yè)務(wù)模型中生成該文檔,還能還原設(shè)計(jì)工具提交前的設(shè)計(jì)信息(供修改查看);根據(jù)生成的業(yè)務(wù)數(shù)據(jù)庫表或視圖生成對應(yīng)的實(shí)體類;使該實(shí)體類能在運(yùn)行時(shí)環(huán)境中運(yùn)行,方法包括但不限于“動態(tài)編譯”。設(shè)計(jì)處理可對提交的設(shè)計(jì)信息,在數(shù)據(jù)庫用表保存,形成獨(dú)立于設(shè)計(jì)文檔的冗余表,或在生成實(shí)體類時(shí)采用標(biāo)記方式作冗余記錄,或兩種方式兼有,也可不采用冗余,直接使用設(shè)計(jì)文檔獲取設(shè)計(jì)信息??筛鶕?jù)冗余表還原設(shè)計(jì)工具提交前的設(shè)計(jì)信息(供修改查看)。
如圖2所示的使用過程,界面控件屬于客戶端程序,擁有按業(yè)務(wù)使用需求從服務(wù)器獲取相關(guān)業(yè)務(wù)數(shù)據(jù)和自身界面屬性信息的接口或通過錄入業(yè)務(wù)數(shù)據(jù)并提交到服務(wù)器完成該業(yè)務(wù)相關(guān)功能的接口或兩種接口兼有。界面由1個(gè)或多個(gè)界面控件組成,界面控件按功能區(qū)分,包括但不限于搜索控件、功能按鈕區(qū)控件、表格控件、數(shù)據(jù)展示控件、新增表單控件、修改表單控件、導(dǎo)出數(shù)據(jù)控件。界面控件獲取自身界面屬性信息的接口與服務(wù)端程序提供的獲取業(yè)務(wù)相關(guān)界面屬性信息的業(yè)務(wù)功能對接,獲取界面屬性信息,按照約定的形式供界面控件生成相應(yīng)界面。自身界面屬性信息作用于業(yè)務(wù)列,體現(xiàn)該列在客戶端界面控件上的外觀,與列是多對1的對應(yīng)關(guān)系,它已被界面控件預(yù)先考慮,業(yè)務(wù)設(shè)計(jì)者最多只能在有限的范圍內(nèi)調(diào)整。業(yè)務(wù)列代表業(yè)務(wù)的一個(gè)要素,是設(shè)計(jì)處理中生成的業(yè)務(wù)表或業(yè)務(wù)視圖或等效于視圖但沒有在數(shù)據(jù)庫生成視圖的多表連接的一個(gè)列(投影)。服務(wù)端程序提供的獲取業(yè)務(wù)相關(guān)界面屬性信息的業(yè)務(wù)功能存在一個(gè)已有界面控件的所有界面屬性列表,該列表按所屬控件功能、所描述的業(yè)務(wù)表的列范圍的數(shù)據(jù)類型歸類,1個(gè)業(yè)務(wù)列可和列表上的一個(gè)或多個(gè)屬性存在對應(yīng)關(guān)系,該業(yè)務(wù)功能按調(diào)用控件功能分類獲取屬于該控件的業(yè)務(wù)的所有業(yè)務(wù)列的所有界面屬性,按約定的形式傳給客戶端調(diào)用的界面控件。已有界面控件的所有界面屬性列表存在方式包括但不限于:1個(gè)或多個(gè)數(shù)據(jù)表存放、1個(gè)或多個(gè)服務(wù)器文件存放、1個(gè)或多個(gè)服務(wù)端程序變量賦值。界面控件獲取界面屬性信息后,按業(yè)務(wù)列的設(shè)計(jì)順序,遵循一定的界面布局規(guī)則,逐一確定列的外觀:采用那個(gè)基本控件,形狀大小、色彩等等。一個(gè)界面控件可包括一個(gè)或多個(gè)基本控件?;究丶芙缑婵丶刂?,完成單一功能,是業(yè)務(wù)數(shù)據(jù)的基本容器。包括但不限于輸入控件、單(多)選下拉框控件、單(多)選樹控件、日期時(shí)間控件、上傳圖片控件、上傳附件控件、基本表格控件等。界面控件通過錄入業(yè)務(wù)數(shù)據(jù)并提交到服務(wù)器完成該業(yè)務(wù)相關(guān)功能的接口與服務(wù)端程序提供的業(yè)務(wù)增刪改導(dǎo)出等功能對接,服務(wù)端程序通過實(shí)體類對由接口傳入信息確定的業(yè)務(wù)表記錄進(jìn)行增刪改導(dǎo)出等處理,實(shí)現(xiàn)功能。
舉例說明:
某中學(xué)需要做個(gè)教職工管理系統(tǒng),委托編程興趣小組的小明同學(xué)使用B/S模式的自動化業(yè)務(wù)設(shè)計(jì)管理系統(tǒng)來設(shè)計(jì)。小明分析:滿足需求必須有個(gè)教職工主表,記錄基本信息、所屬級組信息及所屬科組信息。所以,小明在客戶端設(shè)計(jì)工具建模設(shè)定信息有:表(表名:教師表;表英文名:Teachers),列和范圍(【列名:教師編號,列英文名:TNO,數(shù)據(jù)類型:字符串,長度:6,界面控件屬性:新增修改控件必填該字段&新增修改控件使用輸入控件填入&數(shù)據(jù)展示用表格控件&表格控件該列顯示單元格長度150px&表格控件該列排序在前&搜索控件該字段的選擇判斷條件為模糊查詢】,【列名:出生年月,列英文名:Birthday,數(shù)據(jù)類型:日期,界面控件屬性:日期控件必填該字段&數(shù)據(jù)展示用表格控件&表格控件該列顯示單元格長度100px&表格控件該列排序在前&搜索控件該字段的選擇判斷條件為等于值】,……諸如姓名、手機(jī)號、地址等等基本信息字段),約束(【因?yàn)榻處熍c級組是多對一關(guān)系,所有設(shè)定教師表的所屬級組字段與級組表的主鍵為外鍵約束關(guān)系,列名:所屬級組,列英文名:BelongGrade,新增修改搜索界面控件使用單選下拉框,新增修改界面控件該字段必填】;【同理設(shè)定教師表的所屬科組字段與科組表的主鍵為外鍵約束關(guān)系】;【TNO設(shè)定為唯一約束】)。小明提交設(shè)計(jì)信息,服務(wù)器完成設(shè)計(jì)處理(在關(guān)系數(shù)據(jù)庫中生成Teachers表,表字段有TNO、Birthday、……、BelongGrade、BelongSubject,并建立BelongGrade和BelongSubject的外鍵關(guān)系,通過動態(tài)編譯生成了Teachers實(shí)體類,并在class和field上標(biāo)記冗余設(shè)計(jì)信息,如外鍵關(guān)系、主鍵信息等等,把設(shè)計(jì)信息按表、列、界面控件屬性分別插入入對應(yīng)冗余表,并生成一個(gè)設(shè)計(jì)文檔bkd文件),處理后,調(diào)用消息機(jī)制提示“生成成功”,并提供bkd文件下載。小明把生成好的“教師表”放在左側(cè)菜單的基礎(chǔ)數(shù)據(jù)菜單下,形成新一個(gè)子菜單“教師表”。這樣點(diǎn)擊子菜單“教師表”,就可以開始使用該業(yè)務(wù)模塊。
因?yàn)椤敖處煴怼睒I(yè)務(wù)設(shè)定為使用表格界面控件展示數(shù)據(jù),所以點(diǎn)擊子菜單“教師表”后,出現(xiàn)的是一個(gè)典型的表格展示數(shù)據(jù)的界面:有搜索界面控件、功能按鈕界面控件、表格界面控件。為了顯示這個(gè)界面,表格界面控件向服務(wù)器發(fā)出獲取業(yè)務(wù)數(shù)據(jù)和界面屬性的請求,服務(wù)器查詢業(yè)務(wù)功能返回表格界面控件所需的表名、列名、列排序信息、表單元格形狀大小等等界面屬性,表格界面控件根據(jù)信息完成表框架的繪制,并把業(yè)務(wù)數(shù)據(jù)按排序順序填入單元格,完成表格的展示;搜索控件根據(jù)返回的列名列表,形成一個(gè)搜索表單,表單形式為:【列名:基本控件】,例如:【所屬級組:(單選下拉框基本控件)】,當(dāng)提交該表單,服務(wù)端程序根據(jù)界面屬性設(shè)定的”等值“或”模糊“屬性生成實(shí)體類持久化概念的where子句,調(diào)用該業(yè)務(wù)的持久化的實(shí)體類完成搜索查詢功能,返回的數(shù)據(jù)結(jié)果在表格控件中顯示。功能按鈕區(qū)提供了通用的增刪改查、數(shù)據(jù)導(dǎo)出EXCEL功能按鈕,也會添加屬于當(dāng)前使用的界面控件特有的功能按鈕或設(shè)計(jì)者自定義的單個(gè)或組合的業(yè)務(wù)列進(jìn)行數(shù)學(xué)處理或邏輯判斷的功能按鈕。通過在表格控件確定需要處理的那條記錄,把記錄ID提交到服務(wù)端程序,服務(wù)端程序通過調(diào)用持久化的實(shí)體類對業(yè)務(wù)數(shù)據(jù)表的該條記錄作處理,并通過消息機(jī)制返回結(jié)果,同時(shí)更新表格界面控件的業(yè)務(wù)數(shù)據(jù)。
這樣,小明僅用了半小時(shí)不到的時(shí)間就完成了教職工主表的建模開發(fā),系統(tǒng)自動化完成業(yè)務(wù)的其他部分,得到一個(gè)完整功能的程序模塊。小明一鼓作氣,繼續(xù)進(jìn)行教職工薪酬表、考勤表等等的開發(fā)。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。