ガイドライン: インターフェイス
トピック
- インターフェイスにはシステムで果たす役割を反映する名前を付けます。
- 名前は短く、1 ~ 2 語にします。
- 名前の中に「インターフェイス」という語を入れないようにします。インターフェイスであるということは、モデル要素のタイプ (インターフェイスなど) でわかります。
- 説明では、インターフェイスの責務を伝える必要があります。
- 説明は数文に収め、長くても短い段落程度にします。
- 説明はインターフェイスの名前を単純に言い表すものではなく、システムでインターフェイスが果たす役割を明確に示すものにします。
- 操作名は操作結果を反映するものにします。
- 操作が情報の 設定 (set) または 取得 (get) を行うものであっても、操作名で set または get を使用しては冗長になります。操作には、設定または取得の対象となるモデル要素のプロパティと同じ名前を付けます。このように名付けた操作にパラメータがなければ、プロパティを取得します。操作にパラメータがある場合は、プロパティを設定します。
例
name() はオブジェクト名を戻します。name(aString) はオブジェクト名を aString に設定します。
- 操作の説明には操作が行う内容を記述し、中心となるアルゴリズムや、戻す値の情報を含めます。
- 操作のパラメータには、操作に渡す情報の内容を示す名前を付けます。
- パラメータのタイプを明らかにします。
インターフェイスで定義した振る舞いを一連の操作として規定します。次のような追加情報を伝達する必要がある場合があります。
- 操作の使用方法と実行順序 (シーケンス図の例で図示)。
- インターフェイスを実現するモデル要素が置かれる外部から観察可能な状態 (状態マシンで図示。「ガイドライン: ステートチャート図」を参照)。
- インターフェイスを実現するモデル要素の振る舞いをテストするテスト計画とスクリプト。
この情報をまとめて管理するには、パッケージを作って、その中にインターフェイスと全関連成果物を含めます。
すべてのインターフェイスはシステムの「継ぎ目」を表しています。継ぎ目とは、システムを「分解」して、再構築や再設計を行うことのできる場所です。インターフェイスは、設計や実装から仕様を分離することを表しています。十分に構造化されたインターフェイスには次の特徴があります。
- 単純ではあっても完全で、必要な全操作を提供しますが 1 つのサービスを指定するのに十分です。
- 理解しやすく、既存の使用方法や実装を調べなくてもインターフェイスの使用と実現に十分な情報を提供します。
- 必要な情報に到達するのが容易で、操作の詳細に埋もれることなく、重要なプロパティにユーザーを導く情報を提供します。
インターフェイスを設定する際は、次に従います。
- システム内に継ぎ目があることを単純に指定する場合は、「ロリポップ」表記法を使います。これが必要になるのはほとんどがクラスではなくサブシステムの場合です。
- サービス自体の詳細を提示する場合は、拡張した「クラス」表記法を使います。これが必要になるのは、ほとんどがパッケージあるいはサブシステムのサービスを指定する場合です。
|