企業信息係統的開發方法(3 / 3)

(3)麵向對象(OO)方法

OO方法起源於麵向對象程序設計語言,如Simla67語言。從20世紀80年代開始,OO方法在信息係統開發領域中得到了應用和推廣,引起了人們的廣泛興趣與重視。雖然OO方法目前還處在發展階段,但是人們認為OO方法將是今後信息係統開發的核心技術和發展方向。

①OO方法的基本思想。OO方法既是一種世界觀,又是一種方法論,其出發點和追求的原則是模擬人的思維方式,設法爭取問題空間和解空間在結構上盡可能地一致,也就是使我們分析設計和實現係統的方法學同我們認識客觀世界的過程盡可能地一致。

OO方法學認為,客觀世界是由各種各樣的對象組成的,每種對象都有各自的內部狀態和運動規律,不同對象之間的相互作用和聯係就構成了各種不同的係統。在我們設計和實現一個客觀係統時,如能在滿足需求的條件下,把係統設計成由一些相對穩定的對象組成的最小集合,雖然對象的使用依賴於應用的細節並且在係統開發過程不斷變化,但是對象的性質卻不會隨周圍環境及用戶需求的不斷變動而改變。那麼,這樣設計出的係統就把握了事物的本質,就像具備了人的智能一樣能靈活應變。

因此,OO方法的基本思想是:以對象考察客觀事物,從客觀事物的共性中抽象出對象類,通過封裝和繼承,構造係統的類層次結構,並根據對象間的聯係,建立對象(類)的消息通訊機製,用戶通過消息的改善與傳遞,實現對象的操作,從而求得問題的解。可以將麵向對象方法簡單地表示為:麵向對象方法=對象+類+封裝與繼承+消息通訊。

②OO方法的開發過程。OO方法的係統開發是在對係統調查和需求分析(這一工作與結構化生命周期法中畫業務流程圖之前的工作是一致的)的基礎上進行的,其工作過程可分為以下三個階段:

第一,麵向對象分析階段(OOA):在當前要求解的複雜問題空間中,抽象地識別出對象及其行為、結構、屬性、方法等,建立未來信息係統的分析模型。

第二,麵向對象設計階段(OOD):對OOA階段得到的分析模型進一步抽象、歸類、整理,最終以範式的形式將它們確定下來。

第三,係統實現:用麵向對象的程序設計語言(OOPL)將OOD階段整理的範式直接映射為應用程序軟件。

3.係統開發方法的選擇

前麵介紹了當前係統開發的三種主要方法。由於企業的基本條件和所處環境千差萬別,這就造成了所要開發的信息係統的規模大小不同,處理功能繁簡不一。而每一種係統開發方法都有自己的特點和適用範圍,如何根據實際情況,選擇一種合適的方法保證係統開發的高效率、高質量,這是係統開發的重要戰略性問題之一。

(1)三種方法的比較

①結構化生命周期法。這種方法的基本思想是把信息係統看作是功能模塊的集合,這些功能模塊由一定的係統結構相聯係。於是,係統分析的過程是一個自頂向下地進行功能分解的過程,而係統設計的過程也就是一個自頂向下的功能合成的過程。這樣非常有利於,把一個複雜的大係統分解成許多子係統來求解。結構化方法的著眼點在於,一個信息係統需要什麼樣的加工方法和過程,並把數據結構和處理截然分開,以過程抽象來對待係統的要求。這也是和大多數第三代計算機語言都是麵向過程語言的工具特點相適應的。

對於一個係統來說,結構是相對穩定的,而行為(即功能)則是相對不穩定的。結構化方法的一個很大缺陷就在於把基點放在相對不穩定的行為上,因此難以適應係統的變化。另外,結構化方法主要由數據流程圖和控製結構圖等圖表工具來描述,它們一般隻能表達順序流程和平麵結構,且不太精確,不能全麵描述信息係統模型。因此,結構化方法是強調人們從計算機的角度而不是從用戶的角度來思考要實現的信息係統。

結構化方法對於開發那些信息需求比較明確的大中型TPS和MIS還是比較有效的,但對於開發偏重於領導決策使用的信息係統如DSS則難以適應。小項目使用這種方法,顯得過於複雜而不易控製,並且乏味冗長,容易束縛程序員和最終用戶的創造力。

②原型法。實踐證明,在信息係統開發的初期,用戶的要求是經常變動的,有時甚至是模糊的。原型法正是為了加快同用戶的交流,盡早明確用戶的需求,縮短係統開發周期,提高軟件開發效率而提出來的。這種方法使用戶在大規模的係統開發展開之前,能夠盡快看到未來係統的全貌,了解係統功能及效果,在用戶的自始至終參與下,使開發人員可以及時對模型修改、補充,為用戶展開新的模型,直到用戶滿意為止,形成最終用戶產品。這種方法需要借助強大的DASE工具等開發平台的支持。

但是,讓用戶自始至終控製著係統開發的進程,將導致開發者不能確定自己的工作進度表,從而使工期無法保證;另外,用戶的參與有時可能會成為用戶自身的一種負擔,往往會力不從心。

對於大型的信息係統工程,由於其複雜性而導致無法快速建立原型,因此原型法比較適合開發小型的靈活性要求較高的信息係統。

③麵向對象方法。這種方法的基本思想是把信息係統本身看成是一係列離散的對象的集合,這些對象既包括數據結構,也包括這些數據的行為。各對象之間由事件觸發,引起互通消息而實現互操作。這樣設計出的軟件必然是模塊化的、可重用的、可擴充的和可移植的,克服了結構化方法中分析設計與實施割裂所造成的程序編製必須到設計後期才能進行的程序沉澱現象。可重用性對於軟件的維護以及通過對象剪切生產新的軟件是至關重要的支持。實際上,麵向對象方法的主要優點並不是減少了開發時間,它可能比傳統的結構化方法的開發時間還長一點。它的主要目標是促進未來係統的可重用性,減少後續階段的開發量,從而大大提高軟件生產率和可維護性。

麵向對象方法有關的許多概念和方法還不成熟,需要不斷發展和完善,但它是信息係統開發方法的未來發展趨勢。

從以上三種方法對企業管理的要求來看,結構化方法離計算機人員近一些,原型法離用戶近一些,而麵向對象方法介於二者之間。

(2)開發方法的組合

上述三種方法都是信息係統發展曆史上的產物,不論選擇哪一種方法,都必須堅持一條總的原則,即應該盡量完整地如實反映用戶的需求。然而由於係統開發過程中需求的不確定性,使得各種方法都存在各自的優、缺點和不同適用領域。從本質上看,這三種方法又可以劃分為兩大類。第一類包括結構化方法和麵向對象方法,它們都具有明確的工程階段定義,而且它們自身都具有一套較為完整的、具體可操作的係統分析、設計及實現的模型、方法及步驟。第二類是原型法,它隻是在分析階段形成一個小的軟件生命周期,並由此驗證係統需求上的一個開發策略上的方法。亦即它隻是一種開發策略,其具體的分析、設計及實現仍然還得依賴於第一類方法。因此,在實際的係統開發過程中,通常將這兩類方法組合起來,互為補充,揚長避短。

①原型法與結構化方法組合。在開發規模較大的MIS時,就可將原型法與結構化方法進行有機地組合。首先采用結構化方法對係統作總體規劃,從頂往下,能充分考慮到各子係統的關聯和數據庫的設計,而具體開發到某個子係統時則采用原型法,加速開發過程,讓用戶較早地參與到係統開發中去。

這種組合方法把原型法的交互能力強和結構化方法的階段分工結合起來,在保證開發過程具有一定彈性的同時,利用裏程碑作為階段的標誌來協調開發進程。在每個開發裏程碑上始終對資源、功能特性和進度進行合適的調節,使得係統能夠按期保質完成。這種組合方法已成為當前廣為采用的一種開發方法。

②原型法與麵向對象方法組合。原型法提倡模糊係統開發生命周期各個階段間的界限,盡早提出一個工作原型。而由於麵向對象方法是從係統處理的對象出發,把客觀世界的實體和對象、實體關係和對象關係一一對應起來,所設計的軟件具有極強的可維護性、適應性和很好的重用性,提供了豐富的軟件構件。原型法可充分利用這些軟件構件快速構造係統原型。因此,將原型開發過程結合到麵向對象的係統開發方法的有關階段中,二者相得益彰,大大提高了係統開發的效率。