制約事項の概要
by Scott
W. Ambler, Copyright 2003
制約事項とは、開発の結果として納品するソフトウエアの形態の自由度に対する制限のことです(Leffingwell & Widrig 2000)。制約事項としては、システムを開発する方法を制限したり、開発資源の限度や上級管理職の判断などのプロジェクト全体に関するものもあります。一般的に、制約事項は、経済的なもの、政治的なもの、技術的なもの、環境に関するものがあり、また、プロジェクトの資源やスケジュール、稼働環境、あるいはシステム自体に関係します。図1は、大学システムについて考えられるいくつかの制約事項を示しています。制約事項は、ビジネスルールや技術要求事項と同じような形で記述します。
図1. 制約事項 (要約形式)
-
C24 システムは既存の技術インフラ上で稼動する─新しい技術は導入しない
-
C56 システムは会社の既存データベースに含まれるデータのみを使用する
-
C73 システムは24時間のうち99.99%は利用可能でなければならない
-
C76 修士号の過程表には必ず修士論文の作成を含まなければならない.
図1で興味深いのは、C73およびC76という2つの制約事項が含まれていることです。これらはそれぞれ、技術要求事項およびビジネスルールとして記述することもできたでしょう。制約事項はビジネスルールや技術要求事項と部分的に重なるため、少し混乱するかもしれません。それは気にしないでください。重要なのは要求を明らかにしたことであって、たまたまビジネスルールではなく制約事項の方に間違って分類したとしても、まったく問題はありません。間違ったからといって世界が滅びるわけではないのです(もちろん核ミサイル誘導システムを開発している場合は別ですが)。私なら同じ要求事項をビジネスルールと制約事項の両方に記述することはしませんが(無駄な作業ですから)、あるものが制約事項なのか別の種類の要求事項なのかを議論して時間を無駄にするつもりもありません。
ビジネスルールと同様に制約事項も、ユースケースモデルやユーザインターフェースといった他の成果物を作成しながら明らかにしていきます。
オブジェクト制約言語(OCL)
ビジネスルールや技術要求事項や制約事項を記述する方法の1つに、オブジェクト制約言語(Object Constraint Language: OCL)があります。OCLとは、UMLモデル内で副作用のない制約事項を表現するための、構造化英語に似た形式言語です(Warner and Kleppe 1999)。OCLは、UMLの図や図について記述した補助文書(ビジネスルール定義など)のどこにでも、記述することができます。さらに言えば、UML以外の図でも使うことができます。また、OCLはさまざまな目的で使うことができます。たとえば、クラスの不変条件、操作の事前条件および事後条件、操作の制約事項を指定するためなどです。実際のところ、正確にあいまいさなく仕様を記述するには、UMLのクラス図などのグラフィカルなモデルだけでは不十分です。モデル中のオブジェクトに関して制約事項の記述を追加しなければなりませんが、それは補足仕様書に定義します。
私はモデリング中にOCLを使うことはほとんどありません。第1に、OCLの読み方を知っている人はあまりいませんし、書き方を知っている人はさらに少数です。ですから、OCLを使うとモデルの読者を制限してしまうことになります。第2に、OCLは複雑です。OCL文はUMLのダイアグラム上に「{制約記述}」という形式で記述します。この制約記述は、述語論理など、どのような形式で記述してもかまいません。私個人的には、自由形式のテキストの方がずっと効果的だと気づきました。第3に、動くソフトウェアを生成できるようにルールを記述しようとするなら、私はJavaやC#などの本当のプログラミング言語を使うでしょう。
OCLは興味深い概念ですが、まだ業界に受け入れられてはいません。すぐに受け入れられる様子もないように私には思えますので、覚えようと努力する価値はないでしょう。
注: この成果物の説明は『The Object Primer 3rd Edition: Agile Modeling Driven Development with UML 2』より抜粋しました。本ではより詳しく説明しています。
アジャイルモデリング(AM)について詳しく知るにはこの本をお薦めします。 
Ronin
International, Inc. continues to help numerous
organizations to learn about and hopefully adopt agile
techniques and philosophies. We offer both
consulting and
training offerings. In addition we
host several sites - Agile
Modeling, Agile
Database Techniques, UML
Modeling Style Guidelines, Enterprise
Unified Process (EUP) - that you may find of value. You
might find several of my books to be of interest,
including
The Object Primer, Agile
Modeling, The
Elements of UML Style, and Agile
Database Techniques. For more information please
contact Michael Vizdos at 866-AT-RONIN (U.S. number) or via e-mail (michael.vizdos@ronin-intl.com).
visits since November 17, 2003.
|