本節書摘來自異步社群《uml面向對象設計基礎》一書中的第2章2.2節面向對象的成熟期,作者【美】meliir page-jones,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
2.2 面向對象的成熟期
uml面向對象設計基礎
本節介紹軟體工業如何促進面向對象時代的真正到來。
老生物學家們常愛發表這樣的言論:個體生物重演了生物發展史。其含義是個體生物胚胎的發展通常演繹着生物整體發展的進化過程(如人類胚胎的發育過程)。當然在時間上存在很大的差異。個體生物的發展可能隻有幾個月,而整體生物卻世代繁衍。
盡管老生物學家的說法無庸置疑,但在軟體工程中卻出現了一種新觀點:面向對象軟體工程的曆史重演了傳統軟體工程的曆史。當然在時間跨度上也存在很大的差異。形成成熟的過程和資料庫結構花費了幾十年的時間,而鑽研面向對象軟體隻有幾年的時間。
軟體開發幾乎是從程式設計開始的。随着系統規模擴大及人們經驗的不斷豐富,人們意識到編寫應用程式代碼僅僅依靠個人水準是有問題的。即便這樣開發出來的應用程式可以奇迹般地運作,但由于代碼缺乏規範而使得對代碼的任何修改幾乎是不可能的。
由此而引入設計。軟體設計是在編寫代碼之前,對代碼的相關部分進行規劃。這種根本的改進甚至可使人們解決潛在的維護問題。
到目前為止一切順利,現在可以生産出精緻的軟體。但一些敏銳的人發現這些精緻軟體大部分不能滿足使用者的需求。為滿足使用者對于可用軟體的不斷追求,有規律地以及更加嚴格的分析方法應運而生。
最終,我們有幸得到了計算機輔助軟體工程(computer-aided software-engineering,case)工具。起初,這些工具的名聲并不樂觀。但随着工具的改進,逐漸改變了狀況,并在聯邦保護軟體(federal protection program)中恢複了名譽。今天,以前的case工具稱為自動模組化工具。模組化工具幫助我們進行需求分析、軟體設計和軟體構造,并且使軟體開發和維護更加便于管理。
在軟體發展的整個曆史中,人們一直試圖提高軟體的可重用性。但不幸的是大多數代碼過程單元不是獨立的,是以難以獨立地重用。時至今日,面向對象的應用使軟體重用獲得生機。
然而,面向對象并不是萬能的。如果對象的類不按照本書後面介紹的指導精心設計,那麼面向對象也不可能提供可重用和可靠的軟體。發生這種不幸情形,多數源于管理者對面向對象缺乏真正的認識。
如前所述,面向對象的曆史是與軟體的主流史并行發展的。然而對面向對象而言,從實作到抽象的發展異常迅速。面向對象程式設計在20世紀80年代開始流行。在同一時期引入了面向對象設計和面向對象分析。大約在90年代出現了面向對象資料庫管理系統(odbms)和面向對象模組化工具。
面向對象領域的迅猛發展使人們患上了奇怪的健忘症。一些人經曆了面向對象的個體發展而一時忘記了整個軟體主流的發展。他們的口号是:“1990年以前的任何知識都不必了解!”他們是熱血而又執着的面向對象革命者。譴責當時使用已過時的cobol語言建立的軟體就像是紙老虎,而認為通向葉卡特琳堡的路隻有一條。
現在他們的革命熱情有所降溫。對象革命已經取得勝利,其煽動者和擁互者自身已成為建設者。現在軟體市場中的許多工具和技術或多或少地依賴于面向對象技術。客戶/伺服器領域和其他分布式系統更是如此。
軟體王國總是充滿着革命。下一場解放程式員的革命,分布式元件軟體已經影響着我們。從一些熱烈的講演中得知,使用分布式元件可以獲得比起初的對象革命更多的益處。
第15章讨論從面向對象到元件軟體的應用。
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。