![]() 大型MIS軟件開(kāi)發(fā)的幾點(diǎn)體會(huì ) ![]() 在多年的開(kāi)發(fā)工作中,筆者主持過(guò)許多類(lèi)型管理系統的設計、開(kāi)發(fā)和項目管理工作,包括:學(xué)籍和考試管理、汽車(chē)租賃管理、圖書(shū)館管理、公路管理、MRPⅡ和ERP管理等。在這些項目的系統調研、總體設計、模塊設計、編程、測試和項目管理工作中,我深切體會(huì )到,要想高效率、高質(zhì)量地完成項目開(kāi)發(fā)工作,應努力做好下面的幾項工作。 一、制定開(kāi)發(fā)規范 MIS軟件,特別是大型的MIS軟件是一項浩大的工程,需要十幾個(gè)人、幾十個(gè)人甚至幾百個(gè)人合作開(kāi)發(fā)幾個(gè)月、十幾個(gè)月甚至幾年。要保證系統的協(xié)調性、統一性和連續性,就需要在開(kāi)發(fā)之前制定嚴格、詳細的開(kāi)發(fā)規范。 開(kāi)發(fā)規范的內容主要包括:系統設計規范、程序開(kāi)發(fā)規范和項目管理規范等。系統設計規范規定字段、數據庫、程序和文檔的命名規則,應用界面的標準和風(fēng)格,各類(lèi)報表的輸出格式等。 程序開(kāi)發(fā)規范對應用程序進(jìn)行分類(lèi),如可將程序分成代碼維護類(lèi)、業(yè)務(wù)處理類(lèi)、業(yè)務(wù)查詢(xún)類(lèi) 和統計報表類(lèi)等。并給出各類(lèi)應用程序的標準程序流程,有必要時(shí)可編制出標準程序。項目管理規范規定項目組中各類(lèi)開(kāi)發(fā)人員的職責和權力,開(kāi)發(fā)過(guò)程中各類(lèi)問(wèn)題(如設計問(wèn)題、程序問(wèn)題等)的處理規范和修改規則,開(kāi)發(fā)工作的總體進(jìn)度安排和獎懲措施等。 開(kāi)發(fā)規范的制定需要花費一定的時(shí)間和精力,但是"磨刀不誤砍柴功",它相當于把今后開(kāi)發(fā)過(guò)程中開(kāi)發(fā)人員都要遇到的問(wèn)題提前做了一個(gè)考慮。有了開(kāi)發(fā)規范,在后續的開(kāi)發(fā)過(guò)程中,設計人員就不必每次考慮如何為一個(gè)字段命名,編程人員也不必去想某個(gè)程序的結構和布局應當怎樣,測試人員也有了判斷程序對錯的標準。 開(kāi)發(fā)規范在項目開(kāi)發(fā)工作中起著(zhù)事前約定的作用,需要所有開(kāi)發(fā)人員共同遵守。它約束開(kāi)發(fā)人員的行為和設計、編程風(fēng)格,使不同子系統和模塊的設計、編程人員達成默契,以便形成整個(gè)系統的和諧步調和統一風(fēng)格,也便于今后的系統維護和擴展工作。 二、合理的人員構成與管理 開(kāi)發(fā)項目的成功需要有一個(gè)好的開(kāi)發(fā)組。高效的開(kāi)發(fā)小組要有一個(gè)合理的人員構成。一般開(kāi)發(fā)組應包括項目負責人、系統分析員、系統設計員、程序員和測試人員等。開(kāi)發(fā)組的人員要分層次,下層人員要服從上層人員的領(lǐng)導。 項目組要有一個(gè)項目負責人,他對整個(gè)項目有控制和決定權,對項目開(kāi)發(fā)的成敗負責。軟件開(kāi)發(fā)中遇到問(wèn)題的答案往往不止一個(gè),因此需要有人對這些問(wèn)題有決定權,避免扯皮。大型項目的負責人應有豐富的項目管理經(jīng)驗和數據庫設計經(jīng)驗,另外還需對用戶(hù)的實(shí)際業(yè)務(wù)有較全面和深入的理解。 系統分析員協(xié)助項目負責人進(jìn)行系統分析工作,并負責某一方面的具體設計工作;系統設計員幫助系統分析員進(jìn)行模塊設計;程序員按照模塊設計進(jìn)行編程;測試人員直接受項目負責人領(lǐng)導,為整個(gè)項目的質(zhì)量把關(guān)。所有項目組人員都應對用戶(hù)的實(shí)際業(yè)務(wù)有不同程度的了解, 這樣有助于系統的開(kāi)發(fā)工作和系統最后的成功。 三、嚴格控制開(kāi)發(fā)進(jìn)度 項目進(jìn)度管理是軟件開(kāi)發(fā)中最難以做好的一項工作。編程工作本身是一個(gè)難以量化的工作,再加上開(kāi)發(fā)過(guò)程中對設計的修改等因素,使得項目開(kāi)發(fā)工作經(jīng)常不能按預計的時(shí)間完成。為了管理好項目進(jìn)度,首先要制定一個(gè)可行的項目進(jìn)度計劃。一開(kāi)始,項目進(jìn)度計劃只能根據項目的內容、工作量和參加人員進(jìn)行大致地估算,包括系統分析和設計時(shí)間,編程、測試時(shí)間和文檔制作時(shí)間,估算時(shí)應根據業(yè)務(wù)復雜程度加入一些緩沖時(shí)間。系統分析、設計完成后,根據程序清單可估算出每個(gè)程序的編程時(shí)間(根據程序類(lèi)型和復雜程度),并在此基礎上估算這種程序量下的測試、文檔制作和緩沖時(shí)間,經(jīng)過(guò)這樣估算再做出的進(jìn)度計劃已經(jīng)可以做到相當準確和細致了。實(shí)際上項目進(jìn)度計劃是一個(gè)由粗到細且不斷調整的計劃。 每周要將項目進(jìn)度情況與項目進(jìn)度計劃進(jìn)行對比。對于拖延的工作如無(wú)充分理由,則應督促有關(guān)人員加班或提高工作效率趕上進(jìn)度;如有正常理由,在無(wú)法追回的情況下可以修改進(jìn)度計劃,申請延期。 項目進(jìn)度管理一定要細致和嚴格,像設計、編程這種難以量化的工作是很難籠統地去控制進(jìn)度的。 四、系統設計要超越業(yè)務(wù) 軟件設計的好壞直接關(guān)系到項目開(kāi)發(fā)的成敗。在設計之前一定要對用戶(hù)的業(yè)務(wù)做系統的調研,深入、全面地了解用戶(hù)業(yè)務(wù)。在調查時(shí)要注意以下幾點(diǎn): 1.有時(shí)某個(gè)部門(mén)的業(yè)務(wù)由幾個(gè)業(yè)務(wù)人員分管,調查時(shí)不能只聽(tīng)一個(gè)人的敘述。 2.要詳細了解一個(gè)部門(mén)與其他業(yè)務(wù)部門(mén)的業(yè)務(wù)關(guān)系。 3.要了解當前業(yè)務(wù)的難點(diǎn),在設計時(shí)著(zhù)重解決。 4.用戶(hù)不可能一次將所有業(yè)務(wù)描述清楚,所以調查要由淺入深,分多次進(jìn)行。 5.調研要以我為主,圍繞主題提出問(wèn)題,不要陷入用戶(hù)的瑣碎業(yè)務(wù)中。 6.要注意收集原始憑證、報表和文字資料。 在根據調研結果做設計的時(shí)候,不要過(guò)于迷信一些教科書(shū)上介紹的數據庫設計方法。在多年的實(shí)踐中,我發(fā)現許多方法不但沒(méi)用而且還增加工作量,在業(yè)務(wù)關(guān)系比較復雜的情況下,一些數據庫設計方法是根本不能推導出設計結果的。而且直接根據收集資料和現行業(yè)務(wù)去推導數據庫結構的做法也是不可取的。這是因為: 1.用戶(hù)描述的業(yè)務(wù)可能不是一個(gè)好的管理方法。 2.用戶(hù)描述的各部門(mén)間的業(yè)務(wù)數據傳遞仍是手工做法。 3.用戶(hù)描述的業(yè)務(wù)不是規律性的業(yè)務(wù)流程,因此會(huì )經(jīng)常發(fā)生改變。 4.用戶(hù)描述的業(yè)務(wù)不適合于用計算機去實(shí)現。 5.用戶(hù)的輸出表格為固定的內容,不能適應業(yè)務(wù)的變化和擴展。 所以在系統設計時(shí)要超越當前的業(yè)務(wù),抽象出業(yè)務(wù)中的管理思想和規律性的東西。為了適應計算機管理,有時(shí)也要改變用戶(hù)的業(yè)務(wù)流程,這時(shí)要與用戶(hù)協(xié)商,讓其理解這種改變的意義。另外設計還應留有可擴展的余地。 五、程序設計要實(shí)用 MIS軟件最終的目的是要用戶(hù)使用。因此在程序設計時(shí)必須立足于操作簡(jiǎn)單、實(shí)用,并真正能為用戶(hù)解決實(shí)際的業(yè)務(wù)問(wèn)題。不能因為怕編程麻煩而將程序功能設計得過(guò)于簡(jiǎn)陋。 為方便用戶(hù)使用,應用程序中起碼應具有下面這些功能: 1.提示功能。屏幕上的代碼信息(如客戶(hù)代碼、科目代碼等)要有提示操作,使用戶(hù)不必記憶很多的代碼。 2.操作確認。對于一些不可恢復的操作(如記錄刪除等)應有操作確認,避免誤操作。 3.數據校驗。對于一些有限制條件的輸入信息,可以自動(dòng)校驗其正確性,避免錯誤數據進(jìn)入系統。 4.錯誤恢復。用戶(hù)無(wú)意中進(jìn)行了錯誤操作,應能有相應的處理程序挽回錯誤。 5.缺省賦值。對于一些常用信息可以設置缺省值,使用戶(hù)不必每次都輸入這些信息。 6.記錄復制。用戶(hù)可以復制一條或多條已存在的記錄,并可修改復制結果,形成新的記錄。 六、測 試 測試是保證程序質(zhì)量的一項重要工作。但測試只能證明程序有錯,而不能證明程序無(wú)錯。所以任何軟件系統都不能保證內部沒(méi)有錯誤。為了確保軟件系統的安全與可靠性,一方面要加大測試力度,另一方面要抓住測試重點(diǎn)。 從測試的角度來(lái)說(shuō),可將MIS軟件的程序分為兩類(lèi):修改數據庫類(lèi)和信息輸出類(lèi)。前一類(lèi)主要是業(yè)務(wù)處理程序,是測試重點(diǎn)。對于前一類(lèi)程序還可以進(jìn)一步細分為:基礎數據采集程序和數據處理統計程序。數據采集程序主要記錄原始憑證信息(如發(fā)票、憑證、入/出庫單等),數據處理統計程序是對數據采集程序記錄下來(lái)的數據繼續做加工。這兩類(lèi)程序中基礎數據采集程序又是測試的重點(diǎn)。 以上是筆者在以往的MIS軟件開(kāi)發(fā)過(guò)程中總結出的幾點(diǎn)經(jīng)驗,希望能給從事相關(guān)工作的同行們提供一點(diǎn)幫助。 |
聯(lián)系客服