![]() |
|||||
|
|||||
Yahoo!全球技術資深副總裁約翰林伍德(John Linwood)昨天表示,Yahoo!將開放網友參與Yahoo!相關的軟體開發,以開放軟體Linux 製作,所有權歸網友… 【 轉載自中國時報 2007/08/17 】 .............................................................................................................................. 想多了解軟體設計嗎?其立基點為何?David Parnas(軟體物件概念的創始者)曾說過:「我要建議學生們,多將注意力放在基礎概念上,勝於追求最新的技術。因為技術會在出局之前就已落伍,而基礎概念永不會落伍。...注意!我指的基礎概念,是物件導向、結構化程式設計等(基礎設計知識)。」 由現今發展最成熟的二種設計方法入手:結構化設計(structural design)與物件導向設計(object-oriented design),軟體設計發展出一系列解決問題的基本法則有: 一 . 分析與征服(divide and conquer): 是一項傳統的解題智慧,將不易處理的問題,經過分解之後,簡化成更簡單的問題 二 . 抽象化: 其意涵是將一個實體或活動模型化(modeling),只表達其中重要的事物與屬性,但排除或隱藏與目的無關的細節,因此簡化了事情的複雜度。抽象化在軟體開發上的應用很廣。在需求分析與系統設計上,所用的各種模型工具就是抽象化的產物。藉由模型可幫助我們在概念上理解和分析系統。 三 . 模組化: 將系統模組化,意味著將系統分解成由簡單、相對獨立的組件(稱為module)所構成的集合。良好的模組化可獲得許多好處,包括:降低系統複雜度、易於組裝、維護與再利用、便於團隊合作等等。 四 . 逐步精細化(stepwise refinement): 與抽象化正好相反,是將抽象化的物件逐漸加入細節,以展現其具體的樣貌。有幾個不同的稱呼如:功能分解(functional decomposition)或結構化程式(structural programming)設計。其優點是符合直覺,適合用來設計演算法。 五 . 資訊隱藏: 是抽象化原則的應用,也是模組化的另一個指導原則。將模組內的資訊隱藏有許多好處,例如:降低模組間的耦合度,使得出現意外副作用的可能性降低等。 六 . 繼承: 是一種設計再用的機制,也是降低系統複雜度的好方法。透過繼承,可將原本複雜的事務加以歸納與整理。其另一好處是改進系統承受變動的能力。透過繼承使用,元件可以被再定義,以適應變動的需要,而不必修改原始設計。但過度使用繼承會增加系統的複雜度,且某種程度上破壞了模組化的價值。因此應避免過長的繼承路徑,且進行定期檢討與結構的重整。 .............................................................................................................................. |
|||||
![]() 9折特價468 (定價520) ![]() ![]() |
軟體工程—從實務出發 鄭 炳 強 .............................................................................................................................. 推薦本書三大理由
•物件導向系統分析與設計 / 吳仁和 著 |
||||
高點網路書店 台北市開封街一段2號8樓 02-2311-7787# 519 ![]() |