仕様型とは

仕様型は,各アクションの形式的な定義です.仕様は基本的にこの型仕様から構成されます(個別の型は仕様型と呼びます).例をあげます.セミナ講師のイベントの管理する仕様型Calendar型は,次のような書けます(c.f. catalysis).

typespecification.png
図 型仕様の例(拡大のためにクリックしてください)

仕様型は基本的にクラスと同じ構造を持ちます.最上段は型名です.中段は,ここではCalendar型の静的な側面を表します.通常のクラス表現だと属性を記述する部分です.属性の代わりにユーザ型を図式表現していると思っても大きな違いはありません.下段は,アクション定義の部分です.クラスの場合は,操作を示す部分です.このアクション定義では,UMLに定義されているOCL(Object Constraint Language)を用いて,記述を行います.

typespec_image.png
図 クラスの集合と仕様型

見かけ上はクラスがクラスを包含した形になっています(上図と比較してみて下さい.小さな丸が内部型に相当し,右側の矩形で囲まれた領域が,仕様型になります).それだけこの段階では抽象度があがっていることになります.この型仕様は初期段階では,分割して複数人で作成することが可能です.もちろん,重複オブジェクトの問題(本来同一のオブジェクトを仕様型間で一貫性のない表現を行ってしまう)があるので,ある段階からは内部に含まれる型に関する整理統合が必要となります.この整理統合により,ふるまい記述部(アクションの定義部)も影響を受けます.但し,全てではありません.あくまで型仕様においては,必要な情報のみを記載すれば良い.そうすることで重複部は最小で済みます.

更に,記述を容易にするために,仕様型をアクション毎に分割することもできます(上記の例で云えば,Calendar_Removeと云う特定のアクションに関する仕様型を作成する).そうすることで,より個々のアクションに対する変更の影響を下げることができます.しかし,その中で一貫性を保持することはそれ程容易ではありませんから,何らかのツールの手助けが望ましいと思います .

ここでの考え方は,Catalysis手法から得ていますが,クラスの静的関係よりも動的な協調関係に重きを置くという点において,設計段階における良く知られた責任駆動設計法に類似点を見つけることができます.

仕様定義の最終的な姿は,この仕様型の羅列だけというわけではありません.アクションで定められるのは,表明(事前条件,事後条件及び不変条件)であり,型が取りうる状態を明示的に表現する必要がある場合は,その型についてのステートマシン図を作成する必要があるのは,他の手法と同じです.


添付ファイル: filetypespec_image.png 2561件 [詳細] filetypespecification.png 2605件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-06-22 (金) 18:49:47 (176d)