
【ラショナル ローズ-Rational Rose-】
米Rational社が開発しているオブジェクト指向の分析や設計を支援するモデリングツールソフト。
各モデル図をソースコードに置き換えたり、その逆のリバースエンジニアリング機能も備えている。
登場した当時は、そういったツールが少なかったため、今でも知名度は高い。
【モデリング-Modeling-】
すべての事象から余計な部分を排除し、グラフィカルなモデル(アイコン)によって作図すること。
モデリングを行うことによって物事を抽象化し、絵的な要素によって直感的な理解を助ける。
この成果物はコミュニケーションの道具として使われる。
【ダイアグラム-Diagram-】
モデリングに使用するモデル要素を配置するモデル図のこと。
「静的な構造」「動的な仕組み」といった異なる性質のモデリングをするために用意されているダイアグラムを使い分ける。
代表的なものにシーケンス図やクラス図などがある。
【アクター-Actor-】
アクターはシステムの外側に位置する。
システムのサービスや機能を利用する「ユーザ」もこれに含まれる。
他には、単にシステムへ情報を渡すだけの機械(コンピュータなど)のこともあれば、
別のシステムとを仲介するシステムであったりする。
【ユースケース-Use Case-】
システムがアクターに対して、直接間接を問わずに提供するサービス(機能、利用手段)。
【クラス-Class-】
内部に「属性」というデータを持つ。
外からそのデータを利用したり、働きかける処理を「操作」という。
クラスはシステムの静的な面を表現するときに使用する。
【属性-Attribute-】
クラス内部にあるデータ。
インスタンス(クラスの実体)の状態管理はこの値を使う。
一般的に外部からは隠す。
プログラミング言語でのメンバやメンバ変数などに対応する。
【操作-Operation-】
インスタンスの状態に応じた処理を行う。
通常は外部に対して公開されている。
プログラミング言語でのメンバ変数やメソッドなどに対応する。
【関連-Association-】
他クラスの属性や操作を使用する関係にある場合、それらのクラス同士には関連があるという。
【集約-Aggregation-】
例えばAクラスがBクラスの一部になっているとき(つまり、BクラスはAクラスを含む)、
AクラスはBクラスに集約されているという。
【コンポジション-Composition-】
多重度が「1」である集約。
集約しているクラスが消滅すると集約されているクラスも消滅するような関係になる。
【依存関係-Dependency Relationship-】
あるクラスの変更が別のクラスに影響を与えるとき、それらのクラス間には依存関係があるという。
【実現(洗練)関係】
インターフェイスとそれを実装するクラスとの関係。
【リンク-Link-】
インスタンス同士の関係の総称。あまり使わない。
【ロール-Role-】
自分が持っている、相手クラスに対しての「役割」を示す。
【多重度-Multiplicity-】
関係のある相手クラスに対するインスタンスの数を示す。
【継承-Inheritance-】
親クラスの性質(属性や操作も含む)を子クラスが受け継ぐこと。
親から子の方向に派生することを「特化」と呼ぶ。
子から親の方向に共通部分を抽出するときは「汎化」と呼ぶ。
【パッケージ-Package-】
複数のモデル要素をひとかたまりにできる入れ物。
これにはパッケージ自身も含めることができ、
開発単位で分類したり、名前空間を管理したりできる。
JavaのPackageのようにも使えるが、用途はそれだけにとどまらない。
【パラメタライズドクラス】
テンプレートともいう。
仮の設定値に実際の値を与えると通常のクラスになる。
【インターフェイス-Interface-】
オブジェクトの窓口として外部に公開する操作の種類を定義したもの。
実際の処理部分を持たない。
【ステレオタイプ-Stereo Type--クラスの場合-】
クラスの性格(用途)を表現する。
<Entity>クラスは、システム内部でそのシステム特有の処理を担当する。
<Boundary>クラスは、情報をシステム外部から内部へ橋渡しする役割を担う。
<Control>クラスは、システムに必要なデータや手順などを管理する。
【ユーティリティ-Utility-】
クラスにステレオタイプで表す。
一例として、グローバルな変数/定数や関数をその性格ごとにまとめてクラスにしたものを指す。
【限定子-Qualifier-】
他クラスからのアクセス用の窓口。
アクセスがここに限定されるため、管理しやすい。
【関連クラス-Association Class-】
クラス間の関連がクラスになったもの。
片一方のクラスだけでは一つの意味に定まらない属性や操作を持つ。
【クラス属性-Class Attribute-】
クラス自身が値を持つ。
このクラスのどのインスタンスでも、この属性にアクセスできる。
【派生属性-Derived Attribute-】
他の属性の値を使って求めることができる論理的な属性。
【オブジェクト-Object-】
クラスとインスタンスの総称。
インスタンスだけの意味で使われることもある。
【インスタンス-Instance-】
属性や操作が定義されたクラスを実体化したもの。
システム動作時は、私たちもコンピュータもこの実体したものを扱う。
属性が値を持ち、それを状態として、操作内容が変化する。
【状態-State-】
属性の値が状態を表す。たとえば、位置やサイズ、色、フラグ、いろんなモード、履歴などがある。
【コンポーネント-Component-】
UMLではソフトウェア(ソースファイル、実行ファイルなど)のこと。
一般には、ボタンやラベルなどのGUI部品から再利用可能なソフトウェア部品のような抽象的なものまでもを含むため、注意が必要。
【ノード-Node-】
コンポーネントを配置するハードウェアのこと。
例えば、サーバ/クライアントマシンやネットワークマシン、もちろんあなたのパソコンだってノードになり得る。