tag:blogger.com,1999:blog-6528662161517981109.post7517834299352663518..comments2023-08-22T19:58:20.433+08:00Comments on 輕鬆談軟工: MDA續篇薛念林http://www.blogger.com/profile/12980029140541777743noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-6528662161517981109.post-79188228551839121782008-12-03T22:17:00.000+08:002008-12-03T22:17:00.000+08:00黃教授所言, 考慮model的建立方法來降低model的複雜度, 的確是所有model建構者應深思的...黃教授所言, 考慮model的建立方法來降低model的複雜度, 的確是所有model建構者應深思的, Agile Modeling 的技術是值得我們去探討的, 尤其在台灣的軟體專案中, 似乎不曾有過專案預算或時程可以容許我們去建構複雜又龐大的系統模型。羅治民https://www.blogger.com/profile/08032566233047597538noreply@blogger.comtag:blogger.com,1999:blog-6528662161517981109.post-11915343827989617772008-11-26T20:26:00.000+08:002008-11-26T20:26:00.000+08:00目前的UML無法完全模式化軟體系統,因此設計所謂"First-Class Extension Mec...目前的UML無法完全模式化軟體系統,因此設計所謂"First-Class Extension Mechanism"在metamodel層次的UML Profile,UML Profile是由UML tailor而使用在特殊領域的語言,因此有人說UML並非語言,而是各種語言的家族,這無關重要,UML Profile依OMG提供可用在PIM與PSM,EAI,EDOC,...等等,當然自己也可以依需要自行擬定,例如在原型樣式快速發展一文中,因需要擬定了一個profile,在MDA宣<BR/>言第一項中,我提到用UML Profile來創造完整的PIM(當然最好是DSL)。PIM事實上是比一般OO的分析模式更嚴格而完整的分析模式,如果是設計模式就違反SoC原則而不易保養,所以我說發展者只要管好PIM的發展就好,這句話是有點大而化之,但依MDA宣言第二項:Automation是有點道理。<BR/>黃為德https://www.blogger.com/profile/02964648045837160880noreply@blogger.comtag:blogger.com,1999:blog-6528662161517981109.post-60582754422952990452008-11-26T12:29:00.000+08:002008-11-26T12:29:00.000+08:00關於黃教授所發表的MDA文章中所述:讀者反應卻十分冷淡, 其實不是反應冷淡問題, 而是一位實務工作者...關於黃教授所發表的MDA文章中所述:讀者反應卻十分冷淡, 其實不是反應冷淡問題, 而是一位實務工作者很難去體會MDA與自己工作的切身連結, 我自己一直是系統分析方法的研究及實務工作者, 對MDA也從實務的觀點去深入的思考過, 也試著建立一些可有效執行PIM to PSM, PSM to Code的UML Profile 及模型轉換規則, 也有了好的效果, 最近也將之寫成文章投到 SCI 期刊去, 所以我個人認為要能實現 MDA 是需要從 Model 的建構開始便需要有一套屬於領域的UML Profile及轉換對映機制才有機會, 所以要談 MDA 可能需要從 UML Profile 及轉換規則的建立談起。<BR/>但是要建立一個大型系統的MDA其實是不容易的, 我從實務工作中得到了一個小的經驗, 若能降低Model的複雜度將有利於MDA的實現, 而如何降低Model的複雜度, 個人認為建立羅治民https://www.blogger.com/profile/08032566233047597538noreply@blogger.comtag:blogger.com,1999:blog-6528662161517981109.post-63105619393427713712008-11-25T07:08:00.000+08:002008-11-25T07:08:00.000+08:00謝謝。有點瞭解了。也就是說MOF提供了讓別人定義 metamodel 的機制。感覺起來野心真的不小,...謝謝。有點瞭解了。也就是說MOF提供了讓別人定義 metamodel 的機制。感覺起來野心真的不小,也感受到他細膩的部分。Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6528662161517981109.post-65136165268674564022008-11-24T18:27:00.000+08:002008-11-24T18:27:00.000+08:00當我們要設計一種程式語言,我們大多使用Backus Naur Form(BNF)來定義該語言的語法(...當我們要設計一種程式語言,我們大多使用Backus Naur Form(BNF)來定義該語言的語法(syntax),但是BNF只能定義文字程式語言,如果是模式語言則如何來定義,因為模式語言如UML是一種圖形語法(graphical syntax),因此在MDA中我們須要與BNF不同的機制來定義這種語言,這種機制稱為metamodeling。因為模式化語言並不只有UML,還可以有其他形式的語言,要產生各種模式語言,其源頭必須抽象化,例如許多Concrete Classes繼承自一個Abstract Class一樣,因此OMG設計一種MOF的骨架(framework),這種骨架有四種層次,比方說,「Mr.Huang是資工系學生」,這是一種資料,是MOF framework的M0層次,但是Mr.Huang是Student之一,Student就是一種Model,但Student代表許多人,如黃為德https://www.blogger.com/profile/02964648045837160880noreply@blogger.comtag:blogger.com,1999:blog-6528662161517981109.post-49104955223691636052008-11-24T11:00:00.000+08:002008-11-24T11:00:00.000+08:00過去曾survey 過MDA這樣的技術,但我的想像只能到 M2 (metamodel)這一層,完全無...過去曾survey 過MDA這樣的技術,但我的想像只能到 M2 (metamodel)這一層,完全無法理解 M3這一層(metametamodel)。可以舉一個例子嗎?(m0->m1->m2->4) example: (張山->People->Class->X)。X 是什麼?<BR/><BR/>也就是說,在 m3 中的 class 與在 m2 的 classes 有什麼不同?(參考文中的表)Anonymousnoreply@blogger.com