2007-01-01から1ヶ月間の記事一覧

ポート(Port)

ポート(Port) ポート(port)は、コンポジット構造の外部に対して機能を提供する(相互作用点)その際、提供する機能がどのように実現されているかというような内部詳細を非公開にすることができる。 コンポジット構造が提供する機能は、主に内部構造である…

コネクタ端(ConnectorEnd)

コネクタ端(ConnectorEnd) コネクタ端はコネクタの端点である。コネクタ端点は接続可能な要素同士を結びつけることができる。 それぞれのコネクタ端はコネクタの部品である。 関連 InternalStructures role:ConnectableElement[1] definingEnd:Property[0.…

コネクタ(Connector)

コネクタ(Connector) コネクタ(connector)は、コンポジット構造図の内部構造に含まれるクラスのインスタンス間の通信リンクを表すものである。2つのインスタンス間に実線を引くことでコネクタを表現する。コネクタには名前がつけられる。表記法は、 名前…

内部構造(Internal Structures)

内部構造(Internal Structures) 構造とは、ある機能を実行するために存在する、相互接続された要素の集まりをいう。分類子の内部で強調動作するこれらの要素を「内部構造」と呼ぶ。 内部構造には コネクタ ポート パート(パーツ) などが含まれる。ポート…

コンポジット構造図

コンポジット構造図(Composite Structure Diagram) 要素間の複雑な関係についての概念を,コンポジット構造と呼ばれる概念として形式化したもの。複雑化したシステムを機能の観点から分解することが基本。 分解した1つの機能を実現するために、さまざまな…

リンク

リンクは関連のインスタンス

マージ

パッケージのマージ(merge)とは、あるパッケージが他のパッケージをマージする場合、同じ型と同じ名前をもつクラスは自動的に元のクラスを拡張する。 つまり、元のクラスに対する汎化関係を持つということである。パッケージのマージを示すには、マージする…

インポートとアクセス

あるパッケージから他のパッケージを利用する際、通常は利用したいパッケージ内の要素を完全装飾名で指定する必要がある。そこでUMLでは、別パッケージの要素へのアクセスを容易にする仕組みとして「import」を提供している。 これを利用するとインポートし…

可視性

パッケージに含まれる要素について可視性を指定することができる。 指定可能な可視性は次の2種類である。 public private 可視性がpublicの場合、その要素はパッケージの外部から使用可能だということであり、privateならば、その要素はパッケージ内部での…

パッケージ

パッケージ(package)は、関連するUMLの要素をグループ化して、それらにネームスペース(namespace)を与える。 ネームスペースとは名前空間のことであり、内部に含まれる要素のスコープを指定するものである。たとえば、Logicというパッケージの中に含まれるLo…

表現方法

パッケージを示すには、左上にタブのついた長方形を使い、長方形の中にパッケージ名を記述する。 パッケージに含まれる要素を示すには、2つの方法がある。 1つ目は、タブ付き長方形の内部に要素を含めるもので、この場合、パッケージ名はタブの中に記述す…

テンプレート

UMLでは、テンプレート(template)を使用することもできる。テンプレートされたクラス(パラメタライズドクラス(parameterized class))を示すには、クラスの右上に破線の長方形を置き、そこへテンプレート型の名前を記述する。(例えば、T型)1つのクラス…

ボールとソケットによる表記

ボールとソケットによる表記は、インターフェースの詳細についての記述が不要なときで、それよりもクラス間の関係のほうを明確に(視覚的に)したい場合にもちいると便利である。この方法ではインターフェースを提供する側は、提供するインターフェースを単…

ステレオタイプによる表記

ステレオタイプによる表記は、UMLの標準的な分類子の表記法にステレオタイプ > をつけて表現する。 インターフェースの詳細を記述することが可能である。

インターフェース

インターフェース(interface)は、分類子の1種類であり、プロパティや操作の宣言は持つがそれらの実装は持たない。 インターフェースの表記法は次の2つがある。 ステレオタイプによる表記 ボールとソケットによる表記 (詳しくは別項で)インターフェースはこ…

限定子

要素間の関係において、その関係を何らかの値によって索引付けする必要がある場合、UMLではそのようなキー値を表現する手段として限定子(qualifier)が定義されている。たとえば、会社クラスと社員クラス間の関係において、社員番号という限定子によって会社…

関連クラス

クラス間の関係は、単純な構造の関係だけとは限らない。たとえば、1人のサッカー選手はチームに所属することで、1つのサッカーリーグに関連付ける場合、選手とリーグの間の関係は、チームを介する関係であるとみなすことができる。 このように単純ではない関…

汎化

汎化(generalization)とは、スーパークラスのことであり、基底クラスであり、ベースクラスである。汎化関係は異なる分類子間に存在する共通性に着目し、より具体的な性質を持つクラスから、より一般的な性質を取り出したクラスを引き出すために使用される。…

コンポジション

コンポジション(composition)とは、「包含」といっても過言ではないほどに強い結びつきを持ったクラス間の関係を表すものである。コンポジションは「全体と部分」の関係にあるという説明をされる場合が多く、部分にあたるクラスが複数のクラスと関係を同時的…

関連名

関連モデルに情報を付与する目的で、いくつかの記号をつけることができる。 最も単純な記号は、関連を読み上げる方向を示す黒塗りの三角形である。この三角形の頂点のうち1つを関連線で結ばれるクラスのどちらか一方に対して向けて、この関連を説明する短い…

多重度

関連には多重度を示すこともできる。 「関係による属性」で述べたように、多重度を省略した場合の多重度は暗黙的に1であると見なす。多重度は関連線の端に「属性の多重度」の表記法を使って記述するが、角括弧([])を記述することに注意が必要である。また…

集約

集約(aggregation)とは、関連の一種であるが、通常の関連よりも強い関係を表している。 関連と異なる点は、集約は「〜は〜を所有する(...owns a ..)」と表現されることである。 つまり、集約関係にある2つのオブジェクトの生存期間にはなんらかの共存関係…

関連

関連(association)は、依存よりも強い関係である。 普通、あるクラス間の関係が長期間にわたって保持されることを表す際に用いられる。 ただし、関連によって結び付けられたクラス同士(またはオブジェクトなど)の生存期間はたいていの場合、一致しない。つ…

誘導可能性

誘導可能性(navigability)とは、あるクラスからあるクラスへ関連が示されている際、一方からもう一方へ誘導可能なことを明示するための記法である。 誘導可能とは、例えば、あるクラスに対してメッセージを送信可能な関係を表すものである。関連の両端の矢印…

依存

依存(dependency)は、クラス間の関係のうち最も弱い関係である。これは、クラスが他のクラスを利用する、認識するといったレベルの関係であり、クラス間の一時的な関係である。依存されるクラスをサプライヤ、ターゲット、依存するクラスをクライアントなど…

関係

UMLには、クラス間の関係(relationship)を表現するための方法がいくつか定義されている。 依存(dependency) 関連(association) 誘導可能性(navigability) 関連名 多重度 集約(aggregation) コンポジション(composition) 汎化(generalization) 関連クラス(ass…

抽象クラス

操作のシグニチャだけを提供して、実装は提供しないクラスのことを「抽象クラス(abstract class)」と呼ぶ。(ただし、操作ゆ1つも持たない抽象クラスも定義可能である。って、そんなもん役に立たねぇ。)クラスが抽象クラスであることを示すには、クラス名を…

メソッド

操作の実装のことをメソッド(method)と呼ぶ。メソッドは、スーパークラスから継承するか、各クラス自身が操作のメソッドを提供する。また、クラス自身、スーパークラスのどちらもメソッドを提供しない場合、その操作のことを「抽象操作(abstract operation)…

静的操作

UMLで正式に定義されているわけではないが、一般的にはクラス自身が所有する振る舞いを「静的操作」として表現する。表記法は静的属性の表記法と同様に下線を引くことで表す。

例外

操作によって投げられる例外(exception)を、制約と同様の表記法で表現することができる。(ただし、厳密にいうとコレは制約ではない。)普通、例外はエラー発生時に操作から投げられる他のクラスである。つまり、例外を送出する操作を所有するクラスは、例外ク…