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

クエリ操作

クエリ操作(query operation)とは、操作の実装が、操作を所有しているクラスをいっさい変更しないものを指す。ただし、クエリの結果として更新される内部的なキャッシュ属性を持つことは可能である。 重要な点は、クラスの外部に対してのクラスの状態に変化…

本体条件

本体条件(body condition)は、戻り値を制約するための条件である。本体条件を持つクラスのサブクラスのメソッド(操作の実装)は、本体条件の置換が許可されているため、事前条件と本体条件は区別される。本体条件は、事前条件や事後条件と同様に自然言語やOCL…

事後条件

事後条件(postcondition)は、操作の実行終了時に満たされているべき条件を指定する。

事前条件

事前条件(precondition)は、操作を呼び出す前に満たされているべき条件である。事前条件として指定された条件を、操作の実行開始時にチェックする必要性はない。つまり、事前条件が満たされていない状態では操作の呼び出しは発生しない。また、事前条件は開…

操作の制約

操作には任意の数の制約を関連付けることができる。操作に関する制約は、その操作の実装に義務づけられる契約(contract)を規定する。表記法は通常の制約における表記法に従う。

方向

in パラメータが呼び出し元から渡される。 inout パラメータが呼び出し元から渡され、操作はパラメータを変更してから呼び出し元に返す。 out パラメータは呼び出し元に設定されていない状態で渡され、操作がパラメータを設定してから呼び出し元に返す。 ret…

操作

操作(operation)は、特定の振る舞いの呼び出し方を定義するもので、クラスの機能の1つである。UMLでは振る舞いの呼び出し方の仕様(操作)と、振る舞いの実際の実装(メソッド)とを明確に区別している。操作は次の書式で記述する。可視性 名前 ( パラメータ ) …

静的属性

クラスの属性。つまり、static。インライン属性でも関係による属性でもその属性に下線を引くことで表現する。

制約

制約はOCLや自然言語、プログラミング言語を使って、要素に義務づけられる制限事項を表現する。これらは必ず論理式として評価することができなくてはならない。通常、制約は対象となる要素の後の{}の中に記述することが多いが、ノートに記述して、対象の要素…

プロパティ

属性は、多重度に関するプロパティ以外にも追加情報のためのプロパティを持つことができる。 以下は、UMLで定義されている代表的なプロパティである。 readOnly 一度初期値を設定したら、変更不可能。UMLでは初期値を設定するタイミングについては未定義だが…

コレクション型

UMLでは、順序付けや一意性のプロパティの組み合わせから、UMLのコレクション型へのマッピングが定義されている。 コレクション型 順序付け(ordered) 一意性(unique) Bag False False OrderSet True True Set False True Sequence True False ただし、こ…

一意性

多重度が2以上の場合で属性の一意性が必要な場合、「unique」プロパティを{}内に記述することで指定することができる。 ただし、属性値はデフォルトで一意なので、uniqueの指定はなくても構わない。(明示的に表現したい場合には意味がある)また、重複した…

順序付け

多重度が2以上の場合、順序の指定が可能。属性の順序付けは「ordered」を{}に記述することで指定する。ordered指定のされた属性は、なんからのルールに従って順序付けをしなくてはならない。(属性型によって異なる) コメントで補足情報をつけてもOKデフォ…

属性の多重度

属性の多重度は、属性を所有するクラスがインスタンス化されるときに、その属性の型のインスタンスが何個作られるかを表現する。多重度を指定しない場合、暗黙的に多重度は1と見なされる。多重度の値は、[]の中に単一の整数(1以上でないと対象となる属性の…

派生属性

スラッシュ(/)は、その属性が派生属性(derived attribute)であることを表現する。派生属性はクラスに含まれる他の属性値などから計算したり、判断することが可能な属性であり、派生属性をクラス内の独立した属性として含む必要がないことを表している。…

関係による属性

関係の表記法で属性を表現可能。 インライン属性に比べてたくさんの情報を記述することが可能なため、属性の詳細を容易に表現することができる。具体的には、関連を使用して属性を含む側のクラスと、属性となる側のクラスとを実線でつなぐ。 この表記法の場…

インライン属性

クラス図の2番目の区画の中に直接属性を記述することが可能。(inlined attribute) インライン属性の表記法 可視性 / 名前 : 型 多重度 = デフォルト値 {プロパティ文字列 制約} 可視性 属性の可視性。「+」「-」「#」「~」 のいずれかで、それぞれpublic,…

属性

属性(attribute)とはクラスの詳細を表現するものである。 基本型でも他のオブジェクトでも構わない。属性は次の2種類の表記法を用いることができる。 インライン形式の表記法 クラス間の関係による表記法 さらに、多重度、一意性、順序付けなどの情報を付与…

オブジェクト

クラスのインスタンスのことをオブジェクト(object)と呼ぶ。 オブジェクトには任意の名前をつけることができるが、特に名前をつける必要がない場合は無名オブジェクトとしても利用可能。オブジェクト名 : 型名 と書き、下線を引くことでそれがインスタンスで…

ビュー

UML仕様には含まれていない「システムのビュー」という概念がある。 情報を伝達するための適切な図を、さまざまな目的に合わせて容易に選択することができるようになる。 UMLのモデルは多くの場合、システムの「4+1ビュー」と呼ばれるものに分類される。…

クラス

クラスとは共通の状態と振る舞いを持つものの集合であり、分類子の一種である。(分類子のインスタンスの一種)クラスは長方形として表現され、いくつかの区画(compartment)に分割される。 区画とはクラスの情報を記述するための長方形の領域のことで、最初…

13種類のダイアグラム

UML2.0には次の13種類のダイアグラムがある。 クラス図 オブジェクト図 パッケージ図 コンポーネント図 コンポジット構造図 配置図 ユースケース図 アクティビティ図 ステートマシン図 シーケンス図 コミュニケーション図 相互作用概要図 タイミング図 1〜13…

コメント

コメントはノートに記述する。ノートとは隅が折れた長方形アイコンとして表される。モデル要素に対する注釈や補足説明など、ほとんどなんでもOK。内容は自然言語やOCL、プログラミング言語などで書くことが可能。 一つのコメントは複数のモデル要素に対応可…

分類子

何らかの共通な特性(feature)を持つインスタンスの集合のことで、次のような特徴がある。 名前をつけて識別可能 分類子に分類子をネストすることが可能 他の分類子と汎化関係を持つことが可能 これらはUMLにおける基本的なモデリング要素(classifier)であ…