UML

初歩のUML 第1回〜

概要

手書きメモ 手書きメモ その2

■クラス図

クラスの内部構造とクラス間の関係をモデリングする際に使われる。 クラス図によるモデリングによる恩恵は、開発チームやユーザーの間で、対象問題の中から最も重要で、 かつ安定した概念の構造をオブジェクト・モデルとして共有できることです。 これによって、ソフトウェア開発のプロセスの中で最も重要といえる「要求」、「目的」、「クラスデザイン」などを、 変化の少ない静的な構造としてチーム全体で認知することができるようになります。 開発に参加するメンバ全員で、仮想世界に作り上げた安定したモデルを共有し認知することは、 とても大切なことなのです。 ●クラス ・クラス図は四角形で書く ・中に上段から、クラス名、属性(変数)、操作(メソッド)が書かれる。 ●関連(association) ・関連はクラスから作成されるインスタンス間のつながりを示す。  (例の場合、会社クラスと社員クラスの間の線が「関連」) ・注意点として、関連は属性に書かない(約束事)  (例の場合、会社クラスに社員を書いてはいけない)






●関連の多重度 ・関連の線の上の「1」や「*」は多重度と呼ばれる。  例でいうと、社員クラスから見た関連先は1つしかないので、  会社クラス側に向かう線の先には「1」を   ●多重度の表記例
多重度 意味
1 厳密に1
* 複数
0..* 0以上
0..1 0 or 1
1..* 1以上
2..5 範囲指定(2から5まで)
1,3,5 1 or 3 or 5
1,3..6 1 or 3 or 4 or 5 or6
表 多重度の表記例

■オブジェクト図

オブジェクト図は、クラス図では表現できにくいインスタンス同士の複雑な関係を補足するときなどに有効。 つまり、オブジェクト図は、クラス図から生成されるインスタンス同士のつながりの事例を示すことで クラス図を補足するために使用されます。 クラス図のN対Nの分かりづらいインスタンス間のつながり関係が手にとるように分かる オブジェクト図の四角形の中には、「インスタンス名:クラス名」を書く。

■クラス図その2

関連名 ・・・ クラス図の関連線の中央に、関連名を記述することができます。 関連名とは、クラス間の何らかのつながりに、一定の意味付けを行うために使います。 関連名をつけることで、どのような関連なのか、表現を限定することができる。 ロール名 ・・・ 関連におけるそれぞれのオブジェクトの役割(ロール)を示すものです。 相手側のオブジェクトの使われ方が明確になり、 相手側となるクラスの、どのような操作を使うのかがモデルから予想できます 関連名とロール名の必要性 もし、関連名やロール名の記述ができなければ、会社と社員の間には「何らかの関係がある」という意味しか 表現できません。 関連名、ロール名は、2つのクラスから作り出されるオブジェクトの実際の関係(リンク)の意味を明確にします。 ※関連名とロール名は、関連線を補足しモデルの意味を深める際に役立つ。 両者は、必ず必要というものではありません。関連名、ロール名、両方省略することもあります。 また、どちらかを記述するだけで十分なこともあります。  

■集約

・集約(aggregation)は、「全体−部分」を示すもので、関連の一種と見なす。 ・集約はひし形で表される 会社(全体)は社員(部分)で構成されているという関係構造を意味している

■限定子

限定子は、関連する両者のクラス間において、片方のオブジェクトから相手オブジェクトを特定 (または何個かに限定)するために必要となる相手側のキーを記述します。 ・上図では、社員クラスの多重度が1になっていますが、これは会社クラスの社員番号という限定子によって  関連の相手側の多重度が1に限定されたことを意味しています。  限定子は、相手側の属性(キー)となるものです

■「汎化-特化」 (継承)

オブジェクト指向による分析とは「物事を分けることで解を出す」方法です。 何らかの単位に分けて人が理解できるレベルまで分けぬくことがオブジェクト指向分析の基本なのです。 そうして分けられた「もの」を整理するときに、「汎化-特化」が役に立つ。 例えば「会社」、「技術員」、「営業員」を整理したいとき ・汎化-特化は、白抜きの矢印で表します。 ・矢印の指している方を「スーパークラス」、その逆を「サブクラス」と呼ぶ。 ・社員クラスは抽象クラスになり、クラス名をイタリック体で書く。

■多様性

抽象化メカニズムのことをオブジェクト指向では、ポリモルフィズム(多態性または多様性)といいます。 ポリモルフィズムは、携帯電話やPHSの新機種についてマニュアルを読まずに 取りあえず電話をかけることができるということに似ている。 人は、携帯電話やPHSの個々の特徴については気にせず、無意識的に電話の規格だけを意識します。 そうすることで、初めて見た電話やさまざまな電話の機種に柔軟に対応できる、ということに似ている。

■「汎化アプローチ」と「特化アプローチ」

・抽象クラスを作り出す行為を「汎化アプローチ」 ・既にあるクラスから派生クラスを作り出す行為を「特化アプローチ」と呼ぶ

動的側面からモデル化するものとして、シーケンス図、コラボレーション図、状態図などがあります。 また、ソフトウェアに対する要求とその流れをとらえるのがユースケースモデルです。