- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
相关研究探讨
第二章
相關研究探討
2.1 軟體工程領域
2.1.1 重構
「重構」一詞,已知最早在一九九○年,由William F. Opdyke和 Ralph E. Johnson 共同
提出,代表在不改動程式的外在表現下,改寫程式以增進其可讀性並簡化結構【 10】。
重構在程式碼層次,提供一次性的相關構造物( Artifact )自動同步變動服務,因而得以
為我們建立許多可高度重用的、系統化的改寫程式準則。常見的程式重構技術有封裝屬
性(Encapsulate Field )、萃取方法(Extract Method )、一般化型態(Generalize Type )、
提升所屬繼承層級( Pull Up )、降低所屬繼承層級(Push Down )以及改名(Rename
Package/Type/Method/Field/Variable, etc. )等等【10】。
在系統演進( Evolving )的過程裡,有多種變更系統設計的作法,重構僅是其中之
一,但它強調的是不影響系統的產出。因此,重構力求「忠於原味」般的精確,必定以
識別項( Identifier )完全匹配的構造物,做為變更設計的起點,以不影響程式語意為前
提。
起源於程式設計的重構,本質就是資料結構上的重組(程式碼即為剖析樹[ Parse
Tree ]資料結構),其他結構化資料當然也適用──包括結構化的自然語言文件。【10】
特別提到了在程式設計以外,自然語言 以及生物基因組(Genome )層次的重構,顯現
- 7 -
講求嚴謹結構的重構和非結構 化處理為主的自然語言之間 ,其實也不見得必為楚河漢
界。
2.1.2 資料連結( Data Binding )
雙向工程同步,講的是模型與模型間的資料同步。另外有個比雙向工程同步更一般化、
歷史也相當悠久的研究議題──資料連結【 11】【12】問題──同樣累積了不少成果,
值得借鏡。資料連結問題,是研究物件與物件間的資料,如何藉由連結技術而維持同步。
譬如 Beans連結( Beans Binding ,JSR 295 【11】)便是針對 Java Beans 物件提出的資料
連結同步標準;而在 Eclipse 平台上,也有其專屬的資料連結架構──JFace 資料連結
(JFace Data Binding ,JDB 【12】),JDB的連結對象甚至允許型態更廣泛的物件。
基本上,這些架構的運作,皆符合「模型-視界-控制器(Model-View-Controller ,
MVC )」樣式;來源端即模型,目的端即視界,而連結兩端、監控兩端、維持資料同步
的,就屬控制器了。半自動雙向工程系統 CODEX 【13】,也是以MVC 樣式運作半自動
雙向工程,更加說明了資料連結與雙向工程間的異曲同工之妙。
另外,若比喻為規則系統,則資料連結架構,可以看作是一個簡單的同步規則系統:
來源端資料的異動與否,可以看做前提( Antecedent ),而目的端資料的異動便成了結
論( Consequent );來源與目的端的資料同步,剛好就是前提匹配直接帶動結論套用,
是非常直覺的規則運作模擬。像 JDB支援抽象化的來源與目的物件,更有可能成功模擬
複雜的規則前提與結論。但要是我們的同步規則系統再複雜一些,還能處理「建議型」
的前提匹配與結論套用(即資料來源和目的端是間接、不立即同步的,隔著一層建議做
緩衝),那勢必還要進行一番不小的調適工程。
2.1.3 模型
作為物件的範本、準則,模型在工業上,代表大量生產的第一步;在知識上,則是一以
貫之、舉一反三的開始。模型之於系統,猶如藍圖之於建築、或塑膠賞玩之於鋼鐵巨械
或血肉之軀。模型是最終結果的抽象化,將有特別意義的部份自結果中抽取出來、特別
- 8 -
強調,以方便大量生產,或人們理解,因此平面模型往往搭配圖形化,如建築藍圖。此
特性對軟體系統同樣成立,當軟體模型有圖型化加持,開發者的思考變得立體化、意象
化、更生活化;不同層次的需求藉由圖、文分離,讓開發者也不再迷失於茫茫原始碼大
海。
挾著圖形化的優勢,模型越來越受軟體開發者的重視與青睞
文档评论(0)