第四節 係統開發
係統開發是根據係統設計階段最後提供的輸入輸出設計、文件設計、程序說明書等技術資料,進行程序的設計、編寫和調試的工作階段。如果前兩個階段相當於一般製造業的產品設計,則這個階段就相當於零部件的製造、裝配和檢驗。因此這是應用軟件的真正的-生產階段。如果前一段設計所提供的技術資料完整、具體、正確,實際上編寫程序並不太困難。但是程序調試卻是一件工作量較大、費用較高的工作。由於前幾個階段很難避免的各種疏忽、錯誤、不合理都要在程序運行中反映出來,從發現問題到解決問題是一個很費時、費事的工作。下麵簡單介紹程序設計和程序與係統的調試兩個問題。
一、程序設計
為了提高程序編寫和調試的效率,計算機管理係統的應用軟件已很少使用機器語言或彙編語言,而廣泛采用的是幾種高級語言。究竟采用哪一種語言,應該在係統設計階段,根據不同語言的特點、計算機係統所配置的係統軟件以及程序員掌握語言的情況等因素作出統一規定。
設計為完成程序說明書要求的程序功能所必須的算法。畫出程序框圖,這是一個簡化了的框圖,隻畫出了建立互助扣款暫存文件的處理流程。
二、程序與係統的調試
驗證程序的正確性有兩種方法,即理論法和實驗法。理論方法是利用數學方法證明程序的正確性,目前仍處於研究階段。實驗法即現在普遍使用的調試法。當前所有編出的程序都必須經過調試才能證明其正確性。調試就是在計算機上以各種可能的數據和操作條件對程序進行試驗,找出程序中存在的各種錯誤並加以修改,使之完全符合設計要求的過程。單個程序調試完畢以後還要進行整個係統程序的聯調,因為單個程序通過調試,並不一定能保證整個功能模塊、整個係統的功能。特別是大型應用軟件,各程序間的接口、控製比較複雜,聯調就更為重要。據統計,在軟件研製的總工作量中,調試約占40%-50%。而研製的總費用中,調試卻占90%左右。因此,如何更好地組織程序和係統的調試是個重要的問題。為減少程序的調試費用,保證調試的工作質量,首先要充分重視在辦公桌上的書麵查錯,其次是一定要做好調試前的準備工作。準備工作包括準備測試數據、掌握操作要領、準備好在調試中使用的例行程序等。
測試數據的準備是關係到調試質量的重要工作。測試數據應滿足以下幾個要求。
數據要分幾種,以便能用以查遍所有的程序步。隻用一種數據去通過程序中所有的變化分支是不可能的。
數據應能達到上下限和循環重複次數的要求。
要專有一套錯誤數據,以便檢驗程序是否能正確地執行出錯處理的功能。
有關數據間的相互關係應該正確。
下麵是主要的調試步驟和內容。
程序單調。即對單個程序進行語法檢查和邏輯檢查。
模塊分調。整個係統的應用軟件是按功能模塊分工編製的。應該由編製者親自進行調試。應用軟件中的主控製程序和調度程序,最好由係統設計者負責編製和調試。
分調的目的主要是保證模塊內部控製關係正確和數據處理內容正確,同時測試其運轉效率。分調的主要手段是確定調試數據集合,在模塊中安排測試點,這樣可以從輸出結果或從程序中斷現象中比較直接地確定錯誤位置。分調著重在程序上的正確性,不是對數據文件正確性進行嚴格考試,一般是采用人工假設編製一個“文件模型”,其格式與真實文件相同,但數據量非常小,以保證文件正確,不在調試中出現交叉性錯誤。
係統總調。各個分調試工作結束後,就應由係統設計者負責總調。總調包括兩部分內容:
主控製調度程序調試:這部分程序雖較短,但邏輯控製較複雜。調試時,在所有主控製程序與各功能模塊相聯的接口處都用“短路”程序代替原來的功能模塊與主控製程序相連接。所謂“短路”程序,就是直接輸出預先安排計算結果的聯絡程序。調試目的不是處理結果的正確性,而是控製往來通路和參數傳送的正確性。以及發現並解決資源調度中的問題。