系統(tǒng)實施階段是將新系統(tǒng)付諸實現(xiàn)的過程。它的主要活動是根據(jù)系統(tǒng)設計所提供的控制結(jié)構圖、數(shù)據(jù)庫設計、系統(tǒng)配置方案及詳細設計資料,編制和調(diào)試程序,調(diào)試系統(tǒng)、進行系統(tǒng)切換等工作,將技術設計轉(zhuǎn)化為物理實際系統(tǒng)。
8.l 系統(tǒng)實施的準備工作
1.建立系統(tǒng)平臺
包括購置和安裝必要的計算機和通信硬件設備、軟件系統(tǒng)。所需硬件設備包括主機、外部設備、輔助設備(如穩(wěn)壓電源、空氣調(diào)節(jié)裝置) 、機房設施。通信設備等。
2.培訓管理人員和操作人員
首先,對新系統(tǒng)的用戶,即各類管理人員要進行培訓。培訓內(nèi)容包括兩方面:一方面是關于先進管理思想和方法的教育;另一方面是面向業(yè)務的培訓,使管理者學會新系統(tǒng)的應用方法。
3.基礎數(shù)據(jù)的準備
企業(yè)中有許多基礎數(shù)據(jù),要把它們轉(zhuǎn)存到計算機存儲器中。
4.管理流程重組
由于計算機的應用,管理人員的工作內(nèi)容和工作方式也發(fā)生了很大變化。因此,必須根據(jù)系統(tǒng)設計的要求,重新規(guī)定系統(tǒng)業(yè)務流程、信息流向,改革組織機構,劃定各管理職能部門的職責范圍。
8.2 程序模塊的設計
在系統(tǒng)實施階段,重要的任務就是程序設計。在傳統(tǒng)的結(jié)構化程序設計方法中,程序設計就是處理過程的設計;而在面向?qū)ο蟮某绦蛟O計方法中,程序設計卻主要指對象的設計。
8.2.1 程序設計的概述
1.程序設計的任務
程序設計的任務,就是根據(jù)系統(tǒng)設計說明書中關于模塊的詳細描述和處理過程的描述,選擇合適的計算機語言來編制程序的工作。
2.程序設計的質(zhì)量要求
隨著計算機硬件技術的飛速發(fā)展,人們對程序設計的質(zhì)量要求發(fā)生了變化。過去強調(diào)程序的正確性、高效率和短小精悍,以適應設備資源有限的計算機系統(tǒng);現(xiàn)在則更加強調(diào)程序的正確性、可維護性、可*性和可理解性。
3.良好的編程習慣
編制程序需要熟悉所使用的語言,具有盡可能豐富的編程經(jīng)驗;但是更加重要的是要具有系統(tǒng)的觀點,采用結(jié)構化設計思想和工具,自上而下統(tǒng)籌考慮,避免編程時變量隨意增減,變量類型隨機指定,無法兼容時再任意轉(zhuǎn)換等。
8.2.2 結(jié)構化程序設計
結(jié)構化程序設計主要用于面向過程的編程方式,為了克服程序編制中的隨意性,避免錯誤的出現(xiàn),現(xiàn)代程序的編寫都遵照“結(jié)構化程序設計”的方法。其基本原則是自頂而下、逐步求精。結(jié)構化程序方法提出了順序、選擇和循環(huán)三種基本程序結(jié)構,任何一個程序都可以用這三種結(jié)構裝配起來。
1.順序結(jié)構
順序執(zhí)行,就是按照程序語句行的自然順序,一條語句接一條語句地執(zhí)行程序。順序結(jié)構十分簡單,它只是一種編寫和執(zhí)行程序的協(xié)議、規(guī)則,并不需要用專門的結(jié)構語句來支持。
2.判斷選擇結(jié)構
在用程序解決實際問題時,常常需要對問題的給定條件做出判斷,以便選擇不同的解決方法,這就必須使用判斷選擇(分支) 結(jié)構來編制程序。判斷選擇結(jié)構有相應的結(jié)構語句。
3.循環(huán)結(jié)構
在一個大程序段中,常常會重復使用某一段相同的或類似的程序段。在編制程序時,不必重復編寫這個程序段,可以用重復結(jié)構來替代它。重復結(jié)構也叫循環(huán)結(jié)構。系統(tǒng)提供了建立三種重復結(jié)構。
8.2.3 程序的調(diào)試
程序設計完成之后,很少有運行成功的,尤其是復雜程序,包含的缺陷可能更多,程序設計者必須經(jīng)過多次調(diào)試,不斷地發(fā)現(xiàn)并修正其中的錯誤,證實正確無誤以后才能投入使用。一個大的應用系統(tǒng)可以先對各模塊分調(diào),然后再連調(diào)和總調(diào)。
1.程序錯誤的分類
總結(jié)程序中出現(xiàn)的錯誤,一般可分為語法錯誤、系統(tǒng)錯誤和邏輯錯誤三類。
語法錯誤,因程序設計人員對程序設計語言的理解不夠,或程序設計基本功不扎實造成的結(jié)果。
系統(tǒng)錯誤,由于計算機硬件、軟件引起的錯誤,比如計算機硬件故障;病毒感染等。對于系統(tǒng)錯誤,主要是*經(jīng)驗和對硬件的了解,通過分析判斷排除。
邏輯錯誤,指那些雖然不違反系統(tǒng)規(guī)則,但是卻不合邏輯或不合題目語義的錯誤。這些錯誤系統(tǒng)一般很難自行檢測出來。
8.2.4 面向?qū)ο蟪绦蛟O計
面向?qū)ο蟪绦蛟O計的大特征是強調(diào)構成事物的每一個對象,描述的是每個對象的屬性與方法。而對于響應每個事件的程序,一般不再獨立構成一個文件,而被封裝在每個具體的對象之中。
1. 概念
(1) 對象(Object)。一般來說,現(xiàn)實世界中可以獨立存在的。能夠被區(qū)分的一切實體(事物) 都是對象。在 VFP中所研究的對象,只是現(xiàn)實世界中實體或概念在計算機中的一種抽象的模型化的表示。這種抽象事物中是封裝了數(shù)據(jù)和操作的對象,通過定義屬性和操作來描述其特征和功能,通過定義接口來描述其地位及與其他對象的相互關系,從而形成一個動態(tài)的對象模型。
(2) 類(Class)。類是一組對象的屬性和行為特征的抽象描述,或者說是具有共同屬性、共同操作性質(zhì)的對象的集合?;愔豢紤]通用特征與功能,用戶可以從基類中派生出許多子類。子類往往是在繼承基類的基礎上,又增加一些新的特性與功能構成。子類也像基類一樣可以派生出對象。類的基本特性是封裝性、繼承性和多態(tài)性。
(3) 屬性
屬性就是對象的特性,是對象外觀及行為的特征。對象的屬性可以在建立對象時由其所屬的類(或子類) 繼承,也可以在對象創(chuàng)建或運行時進行修改與設置。
(4) 事件
事件是對象可以識別和響應的行為與操作。它一般由用戶或系統(tǒng)來觸發(fā)。 VFP中事件是固定的,用戶不能再創(chuàng)建新的事件。
(5) 方法
方法是對象所具有的功能。因為一種功能必然是由一個過程來支持。所以過程也可以說就是一段程序(有時也叫方法程序)。
2.面向?qū)ο蟪绦蛟O計的特點
面向?qū)ο蟪绦蛟O計方法是一種支持模塊化設計和軟件重用的編程方法。它把程序設計的主要活動集中在建立對象和對象之間的聯(lián)系上。面向?qū)ο蟪绦蛟O計的基本思想是封裝性和可擴展性。
(l) 封裝性。面向?qū)ο蟪绦蛟O計中,數(shù)據(jù)結(jié)構及算法全部被封裝在對象中。對象的數(shù)據(jù)結(jié)構描述了對象的狀態(tài);對象的操作是它的行為。
(2) 可擴展性。可擴展性體現(xiàn)為繼承和行為擴展兩個方面。對象之間具有層次關系,下一層的對象是上一層對象的子對象,上一層對象就是下一層對象的父對象。
面向?qū)ο蟮某绦蛟O計的行為擴展,是指任何一個對象,除了可以繼承父對象的數(shù)據(jù)和操作外,也可以隨時為自己增加屬性和方法程序。
通過這種封裝和繼承的特性,引出了面向?qū)ο笤O計的另一個重要特性——多態(tài)性。所謂多態(tài),就是在程序中同名但是具體功能不同的方法可以共存。實現(xiàn)多態(tài)有兩種辦法,那就是“覆蓋”和“重載”。
3.類的設計和使用
用戶可以通過基類派生出對象及子類,也可以利用子類派生出對象或子類。把特殊需要的屬性、方法和事件定義在該子類中,從而創(chuàng)建出用戶的自定義類。
8.3 應用系統(tǒng)的設計
建立完整的以數(shù)據(jù)庫為核心的計算機應用系統(tǒng),是系統(tǒng)實施階段的終目的。一個完整的計算機應用系統(tǒng),一般應當具有以下一些不同模塊。
主程序、系統(tǒng)菜單、系統(tǒng)登錄界面、數(shù)據(jù)庫、數(shù)據(jù)輸入界面、數(shù)據(jù)輸出界面、數(shù)據(jù)維護功能、數(shù)據(jù)檢索功能、幫助功能和項目文件。
8.3.1 主控程序設計
系統(tǒng)主控程序簡稱為主程序,是用來設置應用系統(tǒng)的操作環(huán)境、控制和調(diào)用用戶初始界面、啟動事件循環(huán)的高一級的程序。同時在結(jié)束系統(tǒng)運行時,也負責關閉應用系統(tǒng),結(jié)束事件循環(huán),恢復 VFP系統(tǒng)初始環(huán)境的工作。
8.3.2 項目管理器
為了便于管理和使用數(shù)據(jù)表、數(shù)據(jù)庫、視圖等對象,可以使用 VFP的項目文件,它提供了對于任務中所有文件的管理和維護功能。創(chuàng)建項目文件的工具是 VFP系統(tǒng)提供的項目管理器。
項目管理器是開發(fā)及管理應用系統(tǒng)人員的工作平臺。這里所說的“項目”是相關文件、數(shù)據(jù)及對象的集合。項目管理器有以下幾種功能:
(1) 采用“目錄樹” 結(jié)構對資源信息進行集中管理。
(2) 以其集成環(huán)境為用戶提供了快捷訪問系統(tǒng)設計工具的窗口,在項目管理器窗口,有多種功能按鈕,可以根據(jù)需求創(chuàng)建、修改、增加和刪除資源文件。
(3) 支持建立數(shù)據(jù)字典,用以存儲各數(shù)據(jù)表間的關系。
(4) 用簡單面向?qū)ο蟮姆椒?,將其系統(tǒng)資源編譯成可獨立運行的。APP或。EXE文件。
8.4 系統(tǒng)測試
系統(tǒng)測試是保證系統(tǒng)質(zhì)量的關鍵,是對整個系統(tǒng)開發(fā)過程,包括系統(tǒng)分析、系統(tǒng)設計和實施的終審查。
8.4.1 系統(tǒng)測試的對象和目的
1.系統(tǒng)測試的對象
系統(tǒng)測試的對象是整個應用軟件系統(tǒng)。由于“程序十文檔=軟件”,所以系統(tǒng)測試的對象包括需求分析、系統(tǒng)總體設計、詳細設計各階段的文檔以及源程序。
2.系統(tǒng)測試的目的
應用軟件系統(tǒng)測試的目的是努力發(fā)現(xiàn)軟件中的錯誤,并改正錯誤……測試中可能發(fā)現(xiàn)的錯誤按其性質(zhì)可分為以下幾類:
(1) 功能錯誤。由于處理功能說明不夠完整或不夠確切,致使編程時對功能有誤解而產(chǎn)生的錯誤。
(2) 系統(tǒng)錯誤。指與外部接口錯誤、子程序調(diào)用錯誤、參數(shù)使用錯誤等。
(3) 過程錯誤。主要指算術運算錯誤、邏輯錯誤等。
(4) 數(shù)據(jù)錯誤。指數(shù)據(jù)結(jié)構、實體、屬性錯誤,參數(shù)與控制數(shù)據(jù)混淆等。
(5) 編程錯誤。指語法錯誤、程序邏輯錯誤、編程書寫錯誤等。
8.4.2 系統(tǒng)測試的基本原則與方法
1.系統(tǒng)測試的基本原則
系統(tǒng)測試應遵循以下基本原則:
(l) 成立測試小組,測試小組應與開發(fā)組分立。即測試工作應避免由原開發(fā)組人員承擔。
(2) 精心設計測試用例。一個測試用例必須由兩個部分組成:
① 對系統(tǒng)的輸入數(shù)據(jù)描述;
② 由這些輸入數(shù)據(jù)經(jīng)系統(tǒng)處理,預期的測試正確結(jié)果。
(3) 進行回歸測試。對于測試中發(fā)現(xiàn)錯誤的軟件,經(jīng)修正后,要用原來的測試用例再進行測試稱為回歸測試。利用回歸測試,一方面驗證原有錯誤是否確實修正了;另一方面能夠發(fā)現(xiàn)因修改而可能引入的新錯誤。
(4) 集中測試出錯多的模塊。一個模塊已發(fā)現(xiàn)的錯誤越多,則其中存在錯誤的概率也就越大。在進行深入測試時,要集中測試那些出錯多的模塊。
2.系統(tǒng)測試的方法
軟件產(chǎn)品測試,常用以下兩種方法:
(l) 黑盒法。又稱為功能測試,在完全不考慮程序的內(nèi)部結(jié)構和特性的情況下,測試軟件的外部特征。從程序的輸入和輸出特性上測試其是否滿足設定的功能。
(2) 白盒法。又稱為結(jié)構測試,按照程序的內(nèi)部結(jié)構和處理邏輯來設計測試用例,對軟件的邏輯路徑及過程進行測試,檢查它與設計是否相符。
8.4.3 系統(tǒng)測試過程
系統(tǒng)測試過程可分為四個步驟:
1.單元測試(模塊分調(diào))
每個模塊可以作為一個單獨的測試單元,而且也比較容易設計測試用例。單元測試中所發(fā)現(xiàn)的錯誤,往往是編程和詳細設計的錯誤。
2.子系統(tǒng)測試(模塊聯(lián)調(diào))
子系統(tǒng)測試是將經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)來測試。子系統(tǒng)測試的目的是測試模塊間接口的正確性。
3.系統(tǒng)測試
系統(tǒng)測試是將經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試。在這個測試中發(fā)現(xiàn)的錯誤有設計和編程的錯誤,也有需求分析中的錯誤。
4. 驗收測試
驗收測試是將系統(tǒng)作為單一的實體進行測試,測試內(nèi)容與系統(tǒng)測試基本相同,但是驗收測試是在用戶參與下進行的,它的目的是由用戶來測試軟件能否滿足用戶的需求。
模塊與程序的調(diào)試,主要采用白盒法,而在子系統(tǒng)測試、系統(tǒng)測試過程中主要采用黑盒法。
8.5 系統(tǒng)切換
系統(tǒng)切換就是指老系統(tǒng)停止使用、新系統(tǒng)開始運行的過程。系統(tǒng)切換的任務就是保證新、老系統(tǒng)進行平穩(wěn)而可*的交接,后使整個新系統(tǒng)能正式交付使用。
8.5.1 系統(tǒng)切換的方式
1.直接切換
在確定新系統(tǒng)運行準確無誤后,用新系統(tǒng)直接替換老系統(tǒng),終止老系統(tǒng)運行,中間沒有過渡階段。這種方式節(jié)省人員和設備費用,但風險大,很有可能出現(xiàn)意想不到的問題。因此,這種方式不能用于重要的系統(tǒng)。
2.平行切換
這種方式安排了一段新、老系統(tǒng)平行運行的時期。平行運行時間視業(yè)務內(nèi)容及系統(tǒng)運行狀況而定,直到新系統(tǒng)正常運行有保證時,才停止舊系統(tǒng)運行。其優(yōu)點是可以進行兩系統(tǒng)的對比,發(fā)現(xiàn)和改正新系統(tǒng)的問題,風險小,安全,可*;缺點是耗費人力和設備。
3.試點后直接切換
某些系統(tǒng)有一些相同部分,例如系統(tǒng)中包括有多個銷售點、多個倉庫等。切換時先選擇一個銷售點或倉庫作試點,試點成功后,其他部分可同時直接切換。這種方式風險較小,試點的部分可用來示范和培訓其他部分的工作人員。
4.逐步切換
它的特點是分期分批地進行切換。既避免了直接切換的風險性,又避免了平行切換時費用大的問題。但是,需要很好地處理新、老系統(tǒng)之間的接口。在系統(tǒng)切換過程中,要根據(jù)出現(xiàn)的問題進行修改、調(diào)試,因此它也是新系統(tǒng)不斷完善的過程。
8.5.2 系統(tǒng)切換的主要工作
1.建立系統(tǒng)使用說明文檔
系統(tǒng)使用說明文檔應當使用簡明、通用的語言說明系統(tǒng)各部分應如何工作、維護和恢復,主要使用說明文檔有:
(1) 用戶操作手冊(用戶使用說明書)。用戶操作手冊可針對不同子系統(tǒng)用戶編寫。在操作手冊中應指明的主要內(nèi)容有:手冊使用者及編寫手冊的目的;應用軟件(子系統(tǒng))目標、功能、性能概述;運行環(huán)境要求;系統(tǒng)支持軟件;用戶使用說明;操作舉例等。
(2) 計算機操作規(guī)程。根據(jù)具體系統(tǒng)制定。
(3) 程序說明書。程序說明書主要內(nèi)容為:整個系統(tǒng)程序的清單和說明;程序測試過程和測試用例;修改程序的規(guī)定等。
2.系統(tǒng)初始化
初始化包括對系統(tǒng)的運行環(huán)境和資源進行設置、系統(tǒng)運行和控制參數(shù)設定,數(shù)據(jù)加載以及調(diào)整系統(tǒng)與業(yè)務工作同步等內(nèi)容。
8.l 系統(tǒng)實施的準備工作
1.建立系統(tǒng)平臺
包括購置和安裝必要的計算機和通信硬件設備、軟件系統(tǒng)。所需硬件設備包括主機、外部設備、輔助設備(如穩(wěn)壓電源、空氣調(diào)節(jié)裝置) 、機房設施。通信設備等。
2.培訓管理人員和操作人員
首先,對新系統(tǒng)的用戶,即各類管理人員要進行培訓。培訓內(nèi)容包括兩方面:一方面是關于先進管理思想和方法的教育;另一方面是面向業(yè)務的培訓,使管理者學會新系統(tǒng)的應用方法。
3.基礎數(shù)據(jù)的準備
企業(yè)中有許多基礎數(shù)據(jù),要把它們轉(zhuǎn)存到計算機存儲器中。
4.管理流程重組
由于計算機的應用,管理人員的工作內(nèi)容和工作方式也發(fā)生了很大變化。因此,必須根據(jù)系統(tǒng)設計的要求,重新規(guī)定系統(tǒng)業(yè)務流程、信息流向,改革組織機構,劃定各管理職能部門的職責范圍。
8.2 程序模塊的設計
在系統(tǒng)實施階段,重要的任務就是程序設計。在傳統(tǒng)的結(jié)構化程序設計方法中,程序設計就是處理過程的設計;而在面向?qū)ο蟮某绦蛟O計方法中,程序設計卻主要指對象的設計。
8.2.1 程序設計的概述
1.程序設計的任務
程序設計的任務,就是根據(jù)系統(tǒng)設計說明書中關于模塊的詳細描述和處理過程的描述,選擇合適的計算機語言來編制程序的工作。
2.程序設計的質(zhì)量要求
隨著計算機硬件技術的飛速發(fā)展,人們對程序設計的質(zhì)量要求發(fā)生了變化。過去強調(diào)程序的正確性、高效率和短小精悍,以適應設備資源有限的計算機系統(tǒng);現(xiàn)在則更加強調(diào)程序的正確性、可維護性、可*性和可理解性。
3.良好的編程習慣
編制程序需要熟悉所使用的語言,具有盡可能豐富的編程經(jīng)驗;但是更加重要的是要具有系統(tǒng)的觀點,采用結(jié)構化設計思想和工具,自上而下統(tǒng)籌考慮,避免編程時變量隨意增減,變量類型隨機指定,無法兼容時再任意轉(zhuǎn)換等。
8.2.2 結(jié)構化程序設計
結(jié)構化程序設計主要用于面向過程的編程方式,為了克服程序編制中的隨意性,避免錯誤的出現(xiàn),現(xiàn)代程序的編寫都遵照“結(jié)構化程序設計”的方法。其基本原則是自頂而下、逐步求精。結(jié)構化程序方法提出了順序、選擇和循環(huán)三種基本程序結(jié)構,任何一個程序都可以用這三種結(jié)構裝配起來。
1.順序結(jié)構
順序執(zhí)行,就是按照程序語句行的自然順序,一條語句接一條語句地執(zhí)行程序。順序結(jié)構十分簡單,它只是一種編寫和執(zhí)行程序的協(xié)議、規(guī)則,并不需要用專門的結(jié)構語句來支持。
2.判斷選擇結(jié)構
在用程序解決實際問題時,常常需要對問題的給定條件做出判斷,以便選擇不同的解決方法,這就必須使用判斷選擇(分支) 結(jié)構來編制程序。判斷選擇結(jié)構有相應的結(jié)構語句。
3.循環(huán)結(jié)構
在一個大程序段中,常常會重復使用某一段相同的或類似的程序段。在編制程序時,不必重復編寫這個程序段,可以用重復結(jié)構來替代它。重復結(jié)構也叫循環(huán)結(jié)構。系統(tǒng)提供了建立三種重復結(jié)構。
8.2.3 程序的調(diào)試
程序設計完成之后,很少有運行成功的,尤其是復雜程序,包含的缺陷可能更多,程序設計者必須經(jīng)過多次調(diào)試,不斷地發(fā)現(xiàn)并修正其中的錯誤,證實正確無誤以后才能投入使用。一個大的應用系統(tǒng)可以先對各模塊分調(diào),然后再連調(diào)和總調(diào)。
1.程序錯誤的分類
總結(jié)程序中出現(xiàn)的錯誤,一般可分為語法錯誤、系統(tǒng)錯誤和邏輯錯誤三類。
語法錯誤,因程序設計人員對程序設計語言的理解不夠,或程序設計基本功不扎實造成的結(jié)果。
系統(tǒng)錯誤,由于計算機硬件、軟件引起的錯誤,比如計算機硬件故障;病毒感染等。對于系統(tǒng)錯誤,主要是*經(jīng)驗和對硬件的了解,通過分析判斷排除。
邏輯錯誤,指那些雖然不違反系統(tǒng)規(guī)則,但是卻不合邏輯或不合題目語義的錯誤。這些錯誤系統(tǒng)一般很難自行檢測出來。
8.2.4 面向?qū)ο蟪绦蛟O計
面向?qū)ο蟪绦蛟O計的大特征是強調(diào)構成事物的每一個對象,描述的是每個對象的屬性與方法。而對于響應每個事件的程序,一般不再獨立構成一個文件,而被封裝在每個具體的對象之中。
1. 概念
(1) 對象(Object)。一般來說,現(xiàn)實世界中可以獨立存在的。能夠被區(qū)分的一切實體(事物) 都是對象。在 VFP中所研究的對象,只是現(xiàn)實世界中實體或概念在計算機中的一種抽象的模型化的表示。這種抽象事物中是封裝了數(shù)據(jù)和操作的對象,通過定義屬性和操作來描述其特征和功能,通過定義接口來描述其地位及與其他對象的相互關系,從而形成一個動態(tài)的對象模型。
(2) 類(Class)。類是一組對象的屬性和行為特征的抽象描述,或者說是具有共同屬性、共同操作性質(zhì)的對象的集合?;愔豢紤]通用特征與功能,用戶可以從基類中派生出許多子類。子類往往是在繼承基類的基礎上,又增加一些新的特性與功能構成。子類也像基類一樣可以派生出對象。類的基本特性是封裝性、繼承性和多態(tài)性。
(3) 屬性
屬性就是對象的特性,是對象外觀及行為的特征。對象的屬性可以在建立對象時由其所屬的類(或子類) 繼承,也可以在對象創(chuàng)建或運行時進行修改與設置。
(4) 事件
事件是對象可以識別和響應的行為與操作。它一般由用戶或系統(tǒng)來觸發(fā)。 VFP中事件是固定的,用戶不能再創(chuàng)建新的事件。
(5) 方法
方法是對象所具有的功能。因為一種功能必然是由一個過程來支持。所以過程也可以說就是一段程序(有時也叫方法程序)。
2.面向?qū)ο蟪绦蛟O計的特點
面向?qū)ο蟪绦蛟O計方法是一種支持模塊化設計和軟件重用的編程方法。它把程序設計的主要活動集中在建立對象和對象之間的聯(lián)系上。面向?qū)ο蟪绦蛟O計的基本思想是封裝性和可擴展性。
(l) 封裝性。面向?qū)ο蟪绦蛟O計中,數(shù)據(jù)結(jié)構及算法全部被封裝在對象中。對象的數(shù)據(jù)結(jié)構描述了對象的狀態(tài);對象的操作是它的行為。
(2) 可擴展性。可擴展性體現(xiàn)為繼承和行為擴展兩個方面。對象之間具有層次關系,下一層的對象是上一層對象的子對象,上一層對象就是下一層對象的父對象。
面向?qū)ο蟮某绦蛟O計的行為擴展,是指任何一個對象,除了可以繼承父對象的數(shù)據(jù)和操作外,也可以隨時為自己增加屬性和方法程序。
通過這種封裝和繼承的特性,引出了面向?qū)ο笤O計的另一個重要特性——多態(tài)性。所謂多態(tài),就是在程序中同名但是具體功能不同的方法可以共存。實現(xiàn)多態(tài)有兩種辦法,那就是“覆蓋”和“重載”。
3.類的設計和使用
用戶可以通過基類派生出對象及子類,也可以利用子類派生出對象或子類。把特殊需要的屬性、方法和事件定義在該子類中,從而創(chuàng)建出用戶的自定義類。
8.3 應用系統(tǒng)的設計
建立完整的以數(shù)據(jù)庫為核心的計算機應用系統(tǒng),是系統(tǒng)實施階段的終目的。一個完整的計算機應用系統(tǒng),一般應當具有以下一些不同模塊。
主程序、系統(tǒng)菜單、系統(tǒng)登錄界面、數(shù)據(jù)庫、數(shù)據(jù)輸入界面、數(shù)據(jù)輸出界面、數(shù)據(jù)維護功能、數(shù)據(jù)檢索功能、幫助功能和項目文件。
8.3.1 主控程序設計
系統(tǒng)主控程序簡稱為主程序,是用來設置應用系統(tǒng)的操作環(huán)境、控制和調(diào)用用戶初始界面、啟動事件循環(huán)的高一級的程序。同時在結(jié)束系統(tǒng)運行時,也負責關閉應用系統(tǒng),結(jié)束事件循環(huán),恢復 VFP系統(tǒng)初始環(huán)境的工作。
8.3.2 項目管理器
為了便于管理和使用數(shù)據(jù)表、數(shù)據(jù)庫、視圖等對象,可以使用 VFP的項目文件,它提供了對于任務中所有文件的管理和維護功能。創(chuàng)建項目文件的工具是 VFP系統(tǒng)提供的項目管理器。
項目管理器是開發(fā)及管理應用系統(tǒng)人員的工作平臺。這里所說的“項目”是相關文件、數(shù)據(jù)及對象的集合。項目管理器有以下幾種功能:
(1) 采用“目錄樹” 結(jié)構對資源信息進行集中管理。
(2) 以其集成環(huán)境為用戶提供了快捷訪問系統(tǒng)設計工具的窗口,在項目管理器窗口,有多種功能按鈕,可以根據(jù)需求創(chuàng)建、修改、增加和刪除資源文件。
(3) 支持建立數(shù)據(jù)字典,用以存儲各數(shù)據(jù)表間的關系。
(4) 用簡單面向?qū)ο蟮姆椒?,將其系統(tǒng)資源編譯成可獨立運行的。APP或。EXE文件。
8.4 系統(tǒng)測試
系統(tǒng)測試是保證系統(tǒng)質(zhì)量的關鍵,是對整個系統(tǒng)開發(fā)過程,包括系統(tǒng)分析、系統(tǒng)設計和實施的終審查。
8.4.1 系統(tǒng)測試的對象和目的
1.系統(tǒng)測試的對象
系統(tǒng)測試的對象是整個應用軟件系統(tǒng)。由于“程序十文檔=軟件”,所以系統(tǒng)測試的對象包括需求分析、系統(tǒng)總體設計、詳細設計各階段的文檔以及源程序。
2.系統(tǒng)測試的目的
應用軟件系統(tǒng)測試的目的是努力發(fā)現(xiàn)軟件中的錯誤,并改正錯誤……測試中可能發(fā)現(xiàn)的錯誤按其性質(zhì)可分為以下幾類:
(1) 功能錯誤。由于處理功能說明不夠完整或不夠確切,致使編程時對功能有誤解而產(chǎn)生的錯誤。
(2) 系統(tǒng)錯誤。指與外部接口錯誤、子程序調(diào)用錯誤、參數(shù)使用錯誤等。
(3) 過程錯誤。主要指算術運算錯誤、邏輯錯誤等。
(4) 數(shù)據(jù)錯誤。指數(shù)據(jù)結(jié)構、實體、屬性錯誤,參數(shù)與控制數(shù)據(jù)混淆等。
(5) 編程錯誤。指語法錯誤、程序邏輯錯誤、編程書寫錯誤等。
8.4.2 系統(tǒng)測試的基本原則與方法
1.系統(tǒng)測試的基本原則
系統(tǒng)測試應遵循以下基本原則:
(l) 成立測試小組,測試小組應與開發(fā)組分立。即測試工作應避免由原開發(fā)組人員承擔。
(2) 精心設計測試用例。一個測試用例必須由兩個部分組成:
① 對系統(tǒng)的輸入數(shù)據(jù)描述;
② 由這些輸入數(shù)據(jù)經(jīng)系統(tǒng)處理,預期的測試正確結(jié)果。
(3) 進行回歸測試。對于測試中發(fā)現(xiàn)錯誤的軟件,經(jīng)修正后,要用原來的測試用例再進行測試稱為回歸測試。利用回歸測試,一方面驗證原有錯誤是否確實修正了;另一方面能夠發(fā)現(xiàn)因修改而可能引入的新錯誤。
(4) 集中測試出錯多的模塊。一個模塊已發(fā)現(xiàn)的錯誤越多,則其中存在錯誤的概率也就越大。在進行深入測試時,要集中測試那些出錯多的模塊。
2.系統(tǒng)測試的方法
軟件產(chǎn)品測試,常用以下兩種方法:
(l) 黑盒法。又稱為功能測試,在完全不考慮程序的內(nèi)部結(jié)構和特性的情況下,測試軟件的外部特征。從程序的輸入和輸出特性上測試其是否滿足設定的功能。
(2) 白盒法。又稱為結(jié)構測試,按照程序的內(nèi)部結(jié)構和處理邏輯來設計測試用例,對軟件的邏輯路徑及過程進行測試,檢查它與設計是否相符。
8.4.3 系統(tǒng)測試過程
系統(tǒng)測試過程可分為四個步驟:
1.單元測試(模塊分調(diào))
每個模塊可以作為一個單獨的測試單元,而且也比較容易設計測試用例。單元測試中所發(fā)現(xiàn)的錯誤,往往是編程和詳細設計的錯誤。
2.子系統(tǒng)測試(模塊聯(lián)調(diào))
子系統(tǒng)測試是將經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)來測試。子系統(tǒng)測試的目的是測試模塊間接口的正確性。
3.系統(tǒng)測試
系統(tǒng)測試是將經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試。在這個測試中發(fā)現(xiàn)的錯誤有設計和編程的錯誤,也有需求分析中的錯誤。
4. 驗收測試
驗收測試是將系統(tǒng)作為單一的實體進行測試,測試內(nèi)容與系統(tǒng)測試基本相同,但是驗收測試是在用戶參與下進行的,它的目的是由用戶來測試軟件能否滿足用戶的需求。
模塊與程序的調(diào)試,主要采用白盒法,而在子系統(tǒng)測試、系統(tǒng)測試過程中主要采用黑盒法。
8.5 系統(tǒng)切換
系統(tǒng)切換就是指老系統(tǒng)停止使用、新系統(tǒng)開始運行的過程。系統(tǒng)切換的任務就是保證新、老系統(tǒng)進行平穩(wěn)而可*的交接,后使整個新系統(tǒng)能正式交付使用。
8.5.1 系統(tǒng)切換的方式
1.直接切換
在確定新系統(tǒng)運行準確無誤后,用新系統(tǒng)直接替換老系統(tǒng),終止老系統(tǒng)運行,中間沒有過渡階段。這種方式節(jié)省人員和設備費用,但風險大,很有可能出現(xiàn)意想不到的問題。因此,這種方式不能用于重要的系統(tǒng)。
2.平行切換
這種方式安排了一段新、老系統(tǒng)平行運行的時期。平行運行時間視業(yè)務內(nèi)容及系統(tǒng)運行狀況而定,直到新系統(tǒng)正常運行有保證時,才停止舊系統(tǒng)運行。其優(yōu)點是可以進行兩系統(tǒng)的對比,發(fā)現(xiàn)和改正新系統(tǒng)的問題,風險小,安全,可*;缺點是耗費人力和設備。
3.試點后直接切換
某些系統(tǒng)有一些相同部分,例如系統(tǒng)中包括有多個銷售點、多個倉庫等。切換時先選擇一個銷售點或倉庫作試點,試點成功后,其他部分可同時直接切換。這種方式風險較小,試點的部分可用來示范和培訓其他部分的工作人員。
4.逐步切換
它的特點是分期分批地進行切換。既避免了直接切換的風險性,又避免了平行切換時費用大的問題。但是,需要很好地處理新、老系統(tǒng)之間的接口。在系統(tǒng)切換過程中,要根據(jù)出現(xiàn)的問題進行修改、調(diào)試,因此它也是新系統(tǒng)不斷完善的過程。
8.5.2 系統(tǒng)切換的主要工作
1.建立系統(tǒng)使用說明文檔
系統(tǒng)使用說明文檔應當使用簡明、通用的語言說明系統(tǒng)各部分應如何工作、維護和恢復,主要使用說明文檔有:
(1) 用戶操作手冊(用戶使用說明書)。用戶操作手冊可針對不同子系統(tǒng)用戶編寫。在操作手冊中應指明的主要內(nèi)容有:手冊使用者及編寫手冊的目的;應用軟件(子系統(tǒng))目標、功能、性能概述;運行環(huán)境要求;系統(tǒng)支持軟件;用戶使用說明;操作舉例等。
(2) 計算機操作規(guī)程。根據(jù)具體系統(tǒng)制定。
(3) 程序說明書。程序說明書主要內(nèi)容為:整個系統(tǒng)程序的清單和說明;程序測試過程和測試用例;修改程序的規(guī)定等。
2.系統(tǒng)初始化
初始化包括對系統(tǒng)的運行環(huán)境和資源進行設置、系統(tǒng)運行和控制參數(shù)設定,數(shù)據(jù)加載以及調(diào)整系統(tǒng)與業(yè)務工作同步等內(nèi)容。