返回參數方向正如我通讀UML規範由OMG 2.5(測試版)作爲促進了以下概念:由 指示參數值傳遞中:IN,OUT,INOUT在UML
在呼叫者。
INOUT:表示參數值是調用者背部傳遞,然後出去給調用者。
出來:指示參數值傳遞出給調用者。
回報:指示參數值作爲返回值傳遞迴調用者。
這是否意味着「in」是按值 和「inout」作爲調用的調用?
請您澄清一下這些概念中的每一個?
返回參數方向正如我通讀UML規範由OMG 2.5(測試版)作爲促進了以下概念:由 指示參數值傳遞中:IN,OUT,INOUT在UML
在呼叫者。
INOUT:表示參數值是調用者背部傳遞,然後出去給調用者。
出來:指示參數值傳遞出給調用者。
回報:指示參數值作爲返回值傳遞迴調用者。
這是否意味着「in」是按值 和「inout」作爲調用的調用?
請您澄清一下這些概念中的每一個?
•in - 輸入參數(不可修改)。
·停用 - 輸出參數(可以被修改以傳送信息給呼叫者)。
•INOUT - 輸入參數可以被修改。
•return - 呼叫的返回值。
通過電話參考是一個可能實現的inout
和out
,是的。
請記住,UML以與語言無關的方式描述行爲。這取決於以實際的語言實現給定的接口來確定這意味着什麼。
在這樣的Ada語言,用語言級in
,out
,並且in out
參數,這可以直接在語言表達,編譯器可以決定引用或複製是一個更好的實現。在像Python這樣的語言中,所有參數都通過引用傳遞(排序),UML級別的意圖的這種標記在執行級別上不會導致任何區別。在像C這樣的語言中,具有顯式指針類型和所有通過值傳遞的參數,這些用UML表示的意圖變成顯式地址引用和指針解引用。
換句話說,簡單的答案是「是的,這大概是什麼意味着,但它可能不是什麼做」。
關於UML關鍵要記住的是它被設計爲通用,它的目的是獨立於實現平臺。具體來說,它是一個PIM,一個平臺無關的模型。所以使用特定於平臺的實現語義如'按價值'和'參照'是錯誤的。
現在在實踐中定義這些領域特定的語義是Project Architect的一項工作,在許多情況下,您提到的這些語義都是有效的,但情況並非總是如此。
Model Driven Architecture (MDA) plus Platform Profile = Platform Specific Design。
謝謝@Martin Spamer。如果那些人是特定領域的,爲什麼要通過UML規範書寫?我喜歡理解它們中每一個的語義,如果我們忽略那些實現細節,怎麼能夠從這個模型生成代碼? – Andrew 2013-02-12 09:16:49
理想情況下,您的模型應該保持通用,您的架構師應該定義一個平臺配置文件。這定義了在代碼生成或往返工程中,通用語義轉換爲特定於平臺的語義。我在上面添加了一些應該幫助的鏈接。 – 2013-02-12 10:47:36
謝謝@jimwise澄清。我想知道什麼時候在UML中建模,如果我把「in」方向的參數?這是什麼意思(語義上)? 在「out」的情況下是什麼意思? 也是「inout」和「return」是什麼意思? – Andrew 2013-02-12 09:15:04