Posted on 2009-12-06 12:23
canonical 閱讀(1222)
評論(0) 編輯 收藏 所屬分類:
設計理論
結(jié)構(gòu)的穩(wěn)定性,直觀的理解起來,就是結(jié)構(gòu)在存在外部擾動的情況下長時間保持某種形式不變性的能力。穩(wěn)定意味著小的擾動造成的后果也是“小”的。在數(shù)學中,Taylor級數(shù)為我們描繪了變化傳播的基本圖景。
F(x0 + dx) = F(x0) + F'(x0)*dx + 0.5*F''(x0)*dx^2 + 
擾動dx可能在系統(tǒng)F中引發(fā)非常復雜的作用過程,在系統(tǒng)各處產(chǎn)生一個個局部變化結(jié)果。表面上看起來,似乎這些變化結(jié)果存在著無窮多種可能的分組方式,例如 (F'(x0)-2)*dx + 2*dx^2, 但是基于微分分析,我們卻很容易了解到Taylor級數(shù)的每一級都對應著獨立的物理解釋,它們構(gòu)成自然的分組標準。某一量級下的所有變化匯總歸并到一起,并對應一個明確的整體描述。在抽象的數(shù)理空間中,我們具有一種無所不達的變化搜集能力。變化項可以從基礎(chǔ)結(jié)構(gòu)中分離出來,經(jīng)過匯總后可以對其進行獨立的研究。變化本身并不會直接導致基礎(chǔ)結(jié)構(gòu)的崩潰。
在軟件建模領(lǐng)域,模型的穩(wěn)定性面臨的卻是另一番場景。一個軟件模型一旦被實現(xiàn)之后,種種局部需求變更就都會形成對原有基礎(chǔ)結(jié)構(gòu)的沖擊。一些局部的需求變化可能造成大片原有實現(xiàn)失效,我們將被迫為類似的需求重新編寫類似的代碼。此時,軟件開發(fā)并不像是一種純粹的信息創(chuàng)造,而是宛若某種物質(zhì)產(chǎn)品的生產(chǎn)(參見從編寫代碼到制造代碼
http://canonical.javaeye.com/blog/333167 )。顯然,我們需要一種能力,將局部變化從基礎(chǔ)結(jié)構(gòu)中剝離出來,經(jīng)過匯總歸并之后再進行綜合分析和處理。這正是AOP(Aspect Oriented Programming)技術(shù)的價值所在。
M1 = (G0+dG0)<M0+dM0> ==> M1 = G0<M0> + dM
AOP本質(zhì)上是軟件結(jié)構(gòu)空間的自由修正機制。只有結(jié)合AOP技術(shù)之后,軟件模型才能夠重新恢復抽象的本質(zhì),在時間之河中逃離隨機變化的侵蝕,保持實現(xiàn)層面的穩(wěn)定性。在這一背景下,建模的目的將不是為了能夠跟蹤最終需求的變動,而是要在某個獨立的層面上能夠自圓其說,能夠具有某種獨立存在的完滿性,成為思維上可以把握的某個穩(wěn)定的基點。模型的真實性將因為自身結(jié)構(gòu)的完備性而得到證明,與外部世界的契合程度不再是價值判斷的唯一標準。
http://canonical.javaeye.com/blog/482620