2015-03-13 123 views
1

如果我沒有(想要)添加四個保留可見性之一,那麼UML2中是否存在默認可見性? 據我所知有+爲公衆,-爲私人,#爲保護和~爲包。UML默認可見性

或者是默認取決於應該使用的實施語言,例如,用於Java的包還是用於C++的私有包?

到目前爲止感謝。

回答

2

如果你不添加它,那麼這是一個不關心。語言本身有自己的規則,UML不知道語言會如何處理它。工具也是一樣。他們將其中一個符號(公開或私有)作爲默認值,最終可以將默認值更改爲其他值。但是UML再次不在乎。

根據您的使用方式,您可以告訴讀者,丟失的符號意味着這個或那個。

編輯1:感謝@xmojmr深入挖掘UML規範和偉大的評論家uml-diagrams.org這裏有兩個聲明。 OMG優先(SS2.4.1):

7.3.38 Package(from Kernel)...查詢makesVisible()定義Package是否使元素在其自身之外可見。元素 沒有知名度,並與公衆知名度元件由 可見「和」 39年3月7日PackageableElement(從內核)... 知名度...缺省值是公共

http://www.uml-diagrams.org/property.html

請注意,沒有默認的可見性。此外,即使在模型中具有某些值(例如,由UML工具存儲),可見性也可能被抑制顯示在圖上。所以,如果能見度沒有在圖表中顯示,它可能沒有被指定或被抑制

請注意,我的原始聲明只是我在現實世界中使用UML的體驗的表達。感覺很好,看到我的經驗似乎與理論同步;-)

編輯2:調查2.5規格我在章找到了這個。 7.8頁上的分類器說明。 48:

屬性

-能見度:VisibilityKind [0..1] =公共

甲PackageableElement必須如果它是由一個擁有命名空間中指定的可見度。默認可見度是公開的。

約束

-namespace_needs_visibility

一個PackageableElement一個命名空間擁有一定要有知名度。

inv: visibility = null implies namespace = null

所以說默認爲公開。但約束條件表明它必須具有可見性。對我而言意味着你需要指定它?

如果你不明白的定義,請參閱定義的定義: -/

+1

你是對的,但我從實際經驗說話。大多數人使用工具來建模UML。 OMG的規格也應該與一粒鹽...... – 2015-03-13 15:59:50

+0

@xmojmr我的榮幸:-) – 2015-03-13 19:14:53

+0

所以根據OMG規範,默認的可見性是公開的,而不是未定義的答案? – Catweazle 2015-10-18 13:32:00