軟件模式為我們提供了一套簡潔通用的設計、管理、組織方面的詞匯,同時模式也為我們提供了一個描述抽象事物的規范標準,可大大促進軟件開發過程中人與人之間的交流,而軟件開發中的交流是至關重要的,“軟件項目失敗的原因最終都可追溯到信息沒有及時準確地傳遞到應該接收它的人”。
架構和模式的關系
因為架構(Architecture)和模式(Pattern)在當前的軟件開發中經常地被提及,可是很多人容易混淆這兩個術語,而對此,學術界也沒有一個非常統一的定義。
架構和模式應該是一個屬于相互涵蓋的過程,但是總體來說Architecture更加關注的是所謂的High-Level Design,而模式關注的重點在于通過經驗提取的“準則或指導方案”在設計中的應用,因此在不同層面考慮問題的時候就形成了不同問題域上的Pattern。模式的目標是,把共通問題中的不變部分和變化部分分離出來。不變的部分,就構成了模式,因此,模式是一個經驗提取的“準則”,并且在一次一次的實踐中得到驗證,在不同的層次有不同的模式,小到語言實現(如Singleton)大到架構。在不同的層面上,模式提供不同層面的指導。根據處理問題的粒度不同,從高到低,模式分為3個層次:架構模式(Architectural Pattern)、設計模式(Design Pattern)、實現模式(Implementation Pattern).架構模式是模式中的最高層次,描述軟件系統里的基本的結構組織或綱要,通常提供一組事先定義好的子系統,指定它們的責任,并給出把它們組織在一起的法則和指南。比如,用戶和文件系統安全策略模型,N-層結構,組件對象服務等,我們熟知的MVC結構也屬于架構模式的層次。一個架構模式常?梢苑纸獬珊芏鄠設計模式的聯合使用。設計模式是模式中的第二層次,用來處理程序設計中反復出現的問題。例如,[GOF95][2]總結的23個基本設計模式——Factory Pattern, Observer Pattern等等。實現模式是最低也是最具體的層次,處理具體到編程語言的問題。比如,類名,變量名,函數名的命名規則;異常處理的規則等等。
相對于系統分析或者設計模式來說,體系結構從更高的層面去考慮問題,所以關注的問題就體現在“不變”因素上,比如系統部署中,更加關心應用程序的分層分級設計,而在這個基礎之上提出的部署方案,才是架構考慮的重點。體系結構關心應用程序模式,更加體現在通過技術去解決這些業務差異帶來的影響,關心是否是分布式應用程序,關心系統分層是如何設計,也關心性能和安全,因此在這樣的情況之下,會考慮集群,負載平衡,故障遷移等等一系列技術。
文章來源于領測軟件測試網 http://www.kjueaiud.com/