« 2014年10月 | トップページ | 2014年12月 »

2014年11月

2014年11月30日 (日)

『科学的モデリング』による≪動的多重度≫のUMLモデリング

-------------------------------------------------------------------------------------
『科学的モデリング』による≪動的多重度≫のUMLモデリング
~「座席割り当て」問題の関連と≪動的多重度≫~
-------------------------------------------------------------------------------------
トレーニング&コンサルティング用および書籍執筆の資料作成に使う『動的多重度』の説明用資料している。
 
交通手段の乗り物と座席、コンサートや演劇などの座席、教室と授業を受講生徒の割当て問題などにしばしば登場する『動的多重度』の概念を説明している。

 

2_2


 
「座席割り当て問題」以外にも、制御系の計測内容や部品の管理問題でも良く利用する。
 
非常に良く登場する概念である。
 
モデル全体の構成は不変でも、実際に座席数を決定する対象のクラスのインスタンスによって関連先の多重度が変化するのが『動的多重度』である。
 
クラス図で複雑にするよりも、「不変条件」を使い制約で表現するのが良い。
 
ソースコードへの変換も効果的に行えて、「例外処理」コードの記述とも相性が良い。

|

2014年11月29日 (土)

「UML標準規格」「MOF」「UML Superstructure Specification」

-----------------------------------------------------------------------------
『科学的なモデリング&実装技法』によるUMLの関連の深い話題
~グローバリゼーションで世界レベルのモデル議論を行うために~
「UML標準規格」「MOF」「UML Superstructure Specification」
-----------------------------------------------------------------------------
UMLで正確に関連についてモデルを作成するならば
・「関連端の所有権」
・「関連端名」
・「関連のナビゲーション可能性(誘導可能性と呼ぶ)」
・「関連端の可視性」
・「関連の制約」
・「関連端の制約」
などなど多数の事項を検討しないといけない。
 
「UML標準規格」「MOF」および「UML Superstructure Specification」などに書かれている。

Uss


「このような細かなことなど気にしない」と誰でも最初は思うが、設計やコード生成に非常に深く関係し、業界の標準としてビジネスに大きく関わる。
海外の専門家達と深く設計や実装技術の話になると必ず関係する。
上記の「関連端の所有権」など単純で、関連の片方のクラスが所有すると思えるかもしれないが、それだけで済む話では無い。
  
関連自身が関連端の「所有権」を持つことある。
関連自身が関連端の「所有権を保持する」とはどういう事か?
 
それは、この事だけを独立して説明することは困難であり(「関連のナビゲーション可能性(誘導可能性と呼ぶ)」と「関連端の可視性」に強く関係する)。
 
だから、「UML標準規格」「MOF」および「UML Superstructure Specification」に目を通し、モデルとして科学的かつ緻密な設計に対応しなければならない。
 
「UML標準規格」「MOF」および「UML Superstructure Specification」は、英語だし分量が多いので日本人は敬遠しがちであるが、これらはグローバルなビジネスでは大切だ。
 
業界の標準ということで、イニシャチブを取るためには「UML標準規格」「MOF」および「UML Superstructure Specification」に強くならないといけない。
 
常に受け身では日本はIT後進国となってしまう。

|

2014年11月28日 (金)

「デメテルの法則(the Law of Demeter)」と「静的関連」と「動的関連」による精密設計

---------------------------------------------------------
『科学的モデリング』による「デメテルの法則(the Law of Demeter)」
             と
「静的関連」と「動的関連」による精密設計
---------------------------------------------------------
『科学的モデリング』による「デメテルの法則(the Law of Demeter)」を用いる。
   
アーキテクチャがシンプルになり、不具合を防止する。

3

2


このことからも関連の設計と実装がいかにアーキテクチャ設計と実装に重要となるか理解できる。

『科学的モデリング』では色々なメトリクスを使い客観的にデーターから設計の良し悪しを評価する。

「デメテルの法則(the Law of Demeter)」を遵守し、 「静的関連」と「動的関連」による精密設計を行うと下記のメトリクスデーターが良くなることが見てわかる。
・クラス間の「結合度」が小さくなり良くなる
  ・クラス内の「凝集性」が高くなり良くなる
  ・サブシステム間の依存関係の「結合度」が小さくなり良くなる
  ・サブシステム間の依存関係の「凝集性」が高くなり良くなる

それ以外のメトリクスもいろいろと活用する。
 
実際にメトリクスで数値化し、明確な判断ができる。

よって常に優れた設計が可能となるのが『科学的モデリング』である。

|

『科学的なモデリング&実装技法』によるUMLの関連の深い話題

----------------------------------------------------------------------------------------------
『科学的なモデリング&実装技法』によるUMLの関連の深い話題
~グローバリゼーションで世界レベルのモデル議論を行うために~
「UML標準規格」「MOF」「UML Superstructure Specification」
----------------------------------------------------------------------------------------------
UMLで正確に関連についてモデルを作成するならば
・「関連端の所有権」
・「関連端名」
・「関連のナビゲーション可能性(誘導可能性と呼ぶ)」
・「関連端の可視性」
・「関連の制約」
・「関連端の制約」
などなど多数の事項を検討しないといけない。
 
「UML標準規格」「MOF」および「UML Superstructure Specification」などに書かれている。

Uss_2


「このような細かなことなど気にしない」と誰でも最初は思うが、設計やコード生成に非常に深く関係し、業界の標準としてビジネスに大きく関わる。
海外の専門家達と深く設計や実装技術の話になると必ず関係する。
上記の「関連端の所有権」など単純で、関連の片方のクラスが所有すると思えるかもしれないが、それだけで済む話では無い。
  
関連自身が関連端の「所有権」を持つことある。
関連自身が関連端の「所有権を保持する」とはどういう事か?
 
それは、この事だけを独立して説明することは困難であり(「関連のナビゲーション可能性(誘導可能性と呼ぶ)」と「関連端の可視性」に強く関係する)。
 
だから、「UML標準規格」「MOF」および「UML Superstructure Specification」に目を通し、モデルとして科学的かつ緻密な設計に対応しなければならない。
 
「UML標準規格」「MOF」および「UML Superstructure Specification」は、英語だし分量が多いので日本人は敬遠しがちであるが、これらはグローバルなビジネスでは大切だ。
 
業界の標準ということで、イニシャチブを取るためには「UML標準規格」「MOF」および「UML Superstructure Specification」に強くならないといけない。
 
常に受け身では日本はIT後進国となってしまう。

|

2014年11月27日 (木)

「科学的モデリング&実装技法」によるUMLの『静的関連』と『動的関連』の峻別と設計と実装のテクニック

UMLで正確に関連についてモデルを作成するならば関連と依存関係について深く検討することが求められる。

 

関連の深い理解と正確なモデリングをしないエンジニアは良いモデラーになれないくらい、関連は奥が深い。
日本人は海外の専門家に比べて関連の興味が低い様で、かなりアバウトな設計と実装になっている。

 

UMLでは関連とリンクについて定義があるが、リンクは関連のインスタンスとは限らないという記述がある(この事を巡って多くの専門家や研究者で深く・熱い議論がある)。
 
リンクは関連のインスタンスと定義できればスッキリ出来るのであるが、プログラムの実装上の課題と解釈の問題で下記の2通りの解釈がある。

  
①(リンクは関連のインスタンスなのであるが)メッセージは通信リンクを使用しない時がある
②リンクの種類の中には関連のインスタンスでは無いものがある

 

なぜ、この2つの解釈の議論があるかについては別の機会。
どちらの解釈も課題がある。
  
さて、関連には「静的関連」と「動的関連」がある。

 
「静的関連」は専門家の中には「構造関連」と呼ぶ人もいる。
「動的関連」は専門家の中には「文脈関連」と呼ぶ人もいる。

 

 
 
「静的関連」は、関連端をクラスの属性のポインタあるいは参照として実装するタイプであり、静的にクラスの構造に反映される。

 
 
「動的関連」は、クラスの属性にする必要が無い関連である。4つほどのパターンがあるが、代表的なものに「パラメーター渡し」による一時的なリンクがある。

 
 
メッセージの引数にオブジェクト(の参照)を渡し、メッセージを受け取った方が引数のオブジェクトにメッセージを送るタイプが代表的である。

 

 
これは、クラスの属性のポインタあるいは参照として実装されないので、実行時に関数呼び出しで一時的に2つのオブジェクト間にリンクが生じる。ななので、「動的関連」として扱われる。

 

 
UMLでは明確にこれを指定するために、依存関係≪parameter≫で記述することになる。
その他、「動的関連」は≪self≫≪global≫≪local≫がある。
 

「静的関連」と「動的関連」のいずれの場合でも、クラスの型(タイプ)の情報がないとメッセージを送れないので、何らかの形で型を参照する必要がある。

 
  

例えば、クラス型を宣言(あるいは定義)しているファイルをC++ならinclude、Javaならimport、Adaならwithする。他にはC++ならfriendという事も可能だ。
 
別の方法は、対象のクラス型の「前方参照」で済む場合もある。

 
 
関連の設計にさらに神経を使うのは、関連は継承されるのでサブクラスでその関連をオーバーライドできる。(正確には{redefine}や{refine}となる)

 

 
 
『科学的なモデリング技法&実装』として、関連と依存関係も継承の規則とパターンを資料にまとめたので機会があれば公開と解説をしたい。

|

2014年11月 1日 (土)

11月のスタート~今年もあと2か月

11月1日になり今年もあと残り2か月。

Nov

イベントが多くなる時期であるが、マスコミや意味の不明なあまり必要のないトレンドやイベントには関わらない方が良い。

昨日、ハロウィンのイベントが日本の各地で行われているが、ハロウィンの意味を知らないで大騒ぎしている日本人が不思議な気がする。

ハロウィンはUSの移民の文化であるから、やはりある程度ハロウィンの本来の意味や目的をしらないで大騒ぎするのは失礼だろう。

それよりも、もっと日本本来の文化を大切にした方が良い。

ハロウィンの本来の意味や目的をしらないで大騒ぎして、楽しければそれで良いという人が増えたのは、何も考えない日本人が増えたのだろうか?

|

« 2014年10月 | トップページ | 2014年12月 »