2016-11-19 12 views
0

私はUMLの初心者です。 次に示すのは、Timerという名前の単一のオブジェクトを示すUMLオブジェクトモデルのダイアグラムです。このオブジェクトには、整数型の分と秒の属性、およびpublic操作のtick()およびreset()があります。UML:オブジェクト図

enter image description here

correspondig Cの構造は次のとおりです。

struct Timer_t { 
    int mins; /*## attribute mins */ 
    int secs; /*## attribute secs */ 
}; 

/* Operations */ 
/*## operation reset() */ 
void Timer_reset(); 
/*## operation tick() */ 
void Timer_tick(); 

この図に関しては、私は次の物理的解釈を理解したいと思います:

の1- 1左上に(アプリケーションの存続期間中にインスタンス化されるインスタンスはありませんか?)

2 - <<Singleton>>(それは、オブジェクトがシングルトンクラスのインスタンスであることを強調するためにステレオタイプであれば、なぜ我々はまた、左上の1に言及していますか?)

ソース:UML for C Programmers

答えて

2

まず、上記でありますオブジェクト(/インスタンス)ではなくクラスです。オブジェクトはコンパートメント内の属性/メソッドを表示せず、名前に下線が引かれます。

第2に、ステレオタイプ<<Singleton>>が誤って配置されています。それはクラスの名の下に現れる必要があります。

第3に、1左上のシグナル伝達多重度は、{1}のように角括弧で囲む必要があります。位置についてはわからない、私はちょうどクラス名のすぐ下に知っている。

あなたの質問にお答えします。多重度は、システム内でこのクラスのインスタンスが1つだけでなければならないことを示します。ステレオタイプ<<Singleton>>は他のことを教えてくれません(それはトートロジーです)。しかし、シングルトンという名前はよく知られており、Googleを介して任意の言語の実装パターンを見つけることができます。1;

+0

このソースからのキーワード:http://www.drdobbs.com/cpp/ uml-for-c-programmers/184401948を参照してください。図1:Timerオブジェクト – gpuguy

+0

これは単一オブジェクトモデルのクラス図です。しかし、はい、それはクラス図です。 @thomaskilianが書いたものはすべて正確かつ真実です。私はあなたがUMLとCの間のリンクに行く前に、UML自体についていくつか読むことから始めることをお勧めします。 – Ister

+0

医師の学位を取得しているという主張は正しいとは言えません;-)一般的に、 OO言語は難しいです。 Floyd教授は私がかつてCOBOLを使ってOOを教えていましたが、それは両方の世界の間で分裂を行うことが非常に難しいからです。 –