構造制約の明示

構造制約を識別した後に、実際にモデルに制約を明示します。しかし、実際に制約を記述しようとした時に、どのようにすれば良いのでしょうか?
できれば、詳細な内容は設計時まで遅延して、なおかつ、設計時にもれなく吟味できるようにしたいと考えています。


以下のモデルで考えてみることにします。ハンバーガショップのお買い上げのクラス図です。


このモデルでも構造制約について多くのことが分かります。まず、属性について型情報が明示されています。お買い上げ明細の数量は整数型でなくてはありません。また、クラス間の関係が明示されており、販売商品は商品と関連を持たなくてはならないことが分かります。

しかし、このモデルで明示されていない制約もあります。たとえば、販売商品がセット商品の場合、適切な明細で構成されていなければなりません。これは、販売商品が商品から制約を受けていると考えられます。同じように、販売商品明細も商品から制約を受けています。これを、Specificationとして表現して明示すると以下のようになります。


このように分析段階で制約関係を大きなレベルで明示しておけば、あとは設計段階まで詳細を遅延させることも可能になります。制約を抽象化して取り扱うことができ、制約にバリエーションがある場合なんかには大きなメリットになります。