連載16:軟件體系設計新方向:數學抽象、設計模式、系統架構與方案設計(簡化版)(袁曉河著)

結構化對象

軟件系統中存在的對象都爲結構化的對象,例如函數、類、模板類等都可以認爲是一種具有某種特徵的結構化對象。這裏大家需要關注的是,這些結構化對象不關心所處的“質”的處理,而只關注於其“量”的關係,這點可能會導致大家的質疑,比如面向對象中類不是不同實質的物體用不同的類來進行表達,而爲什麼又不關心其“質”的區別呢?這是因爲我們無法通過有線的步驟來描述一個對象的“實質”,我們只能通過“量”的描述來抽象(置換的一種特殊方式)和模擬一個對象,因此,這有些讓人感到失望,但是,由於我們只是關心“量”的關係,所以我們才能夠將對象的共性進行抽離和統一,這樣才形成了與具體對象無關的抽象的“結構化”對象,而這些結構化對象可以幫助我們更好的進行軟件系統的設計工作。簡單來說,這些函數、類、模板等等已經形成的對象,能夠適用於軟件設計中與實體對象的“置換”和對應之中。從其中的一個角度來看,軟件設計實際上就是研究這些結構化對象的科學。因此,在這個角度上軟件設計和數學研究的方式和方法等效,此時,軟件設計等於數學研究。

當然,不是說我們的任何的軟件設計就是公式計算的推導和演繹,而對於基礎和核心的原理和原則我們是能夠建構起數學模型來進行研究,形式上我們可比喻爲一個“花生”,“花生仁”是包含的數學方式構建的數學模型(例如“公理化體系下的置換方法”),而“花生殼”就是我們使用軟件設計本身的一些方法和方式(例如結構化的設計模式、註冊機制、MVC模型等等)進行研究和處理,而這兩部分對於軟件設計來說都非常重要,只是目前在“花生仁”的研究方面我們還顯得非常的不足而已,希望本書能夠開啓這方面的研究^_^。

當結構對象能夠以一種清晰明確的定義,通過構造性的活動,再通過一種演繹的方式來論證軟件設計的基礎,並通過脫離物理世界的特殊性和侷限性,在抽象的層次上進行擴展。這種方式能夠獲取到值得信賴的構建方法,但是,我們其實一直以來並非通過這樣的處理搭建軟件設計的體系,而採用的是一種歸納總結的方式,給出一些定性方面的原則或理論,通過經驗的方法,也獲取到巨大的成功。只是,目前這種方式導致了軟件設計領域越來越無法更好的進行超越式的發展,因此讓人頗感失望。

同時,這些通過“邏輯構建”的結構對象,能夠將我們的思想映射到具體的軟件設計之中,讓我們的思維活動轉化爲“外部的”獨立存在,讓我們的結論擺脫思維活動而形成客觀的實體。這樣不僅僅讓軟件設計能夠具有廣泛的“普遍性”,同時也能夠在不同的設計者之中形成統一、客觀的概念,從而消除軟件設計一直以來的模糊性,能夠讓設計者更好的把握以及驗證和推導。

軟件設計的結構對象都是具有關係的結構對象,因爲可以通過明確的映射關係來表達這些結構對象,而此處的映射關係就體現在“置換”的處理過程中,因此這些結構對象都是通過“置換”的處理建立了相關的關係,我們可以通過不同的“置換”的層次,不同“置換”的處理方式來對我們的結構對象進行分類。

結構對象通過關係將這些對象聯繫在一起,結構對象不是孤立存在的,每個對象都必須和其他的所有或者部分對象存在一種聯繫,有些屬於包含、有些屬於位置排序,而有些則屬於對稱或者非對稱的關係。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章