ICONIX概要

ICONIXとは、ユースケース駆動開発の手法の一つです。決して最近の技法ではなくUMLが登場した頃に誕生した手法ですが、本質的でスモールセットな側面も相まって、今日でも依然として有用な手法となっています。

ICONIXの特徴は、ざっと纏めると以下の様になります。

  • ユースケース駆動で、ロバストネス図、シーケンス図へと動的モデルを詳細化すること
  • 動的モデル導出の過程でクラス図の静的モデルを導出すること
  • 分析過程でこれら動的側面と静的側面を突き合わせ検証と洗練を繰り返すこと
  • 純粋なUMLに加えロバストネス図を活用し動的モデルのミッシング・リンクを補完すること

ICONIXの利点

厳密な用語定義

ICONIXを適用すると何が良いのでしょうか。まず第一に用語が洗練されます。用語の整理は一般的には用語集等を作成しますが、ここでの付加価値は用語の定義の厳密化だけです。多くの場合、用語自体には何の検証も入りません。ICONIXの場合は、プロセス全体を通じて用語を検証します。ここで検証された用語は以下に提示される厳密さを持ちます。

# 項目 説明
1 名称 用語の名称です。利用局面の想定して検証し抽象度や観点を検討しています
2 関連 用語間の関連です。用語同士の関連が明確になります
3 数的関連 用語間の数的関連です。1:1の関係にあるのか1:Nの関係にあるのかが瞭然です
4 関連の方向 用語の関連の方向性です。一方的な関連なのか双方的な関連なのかも見分けられます
5 関連の抽象関係 用語同士の抽象関係です。抽象化した用語や具象化した用語を確認できます
6 関連の保有関係 用語同士の保有・包含関係です。用語の構造が明確化されます
7 属性 用語が含む属性情報です。用語一つでどれだけの情報を保持しているかが明確になります
8 操作 用語が実行可能な操作です。用語の振る舞いを明示し責務を確認することができます

 

これだけ分析されているのであれば、一般的な用語集よりはるかに明確に分析できている分かると思います。一方で、この全て分析するのは相当骨が折れるのではという懸念も生じるかもしれません。確かに労力は掛かりますが、この分析は繰り返して行うため負荷は分散されます。特に最初の分析はラフなものでも構いません。むしろ最初から詳細な分析は不可能で、動的モデルの分析が進むのにつれて徐々に詳細化できてくる、というのが自然な流れです。最終的にはプログラムレベルのクラス図に近いレベルの詳細な概念モデルが醸成されます。

詳細化可能な動的モデル

動的モデルの分析はユースケース図・ロバストネス図・シーケンス図と詳細化されます。またそれぞれの図には明確な役割があります。簡単にまとめてみましょう。併せて、各分析過程でドメイン用語がどう洗練されるのかも提示します。

# 項目 説明 ドメイン用語
1 ユースケース図 利用者がシステムを利用する際のユースケースを明示します。機能要件の定義に相当します 名称と各種関連
2 ロバストネス図 各ユースケースの動きを概念レベルで捉えます。画面・処理・データの相互作用を定義します。機能設計に相当します エンティティとしての属性情報
3 シーケンス図 各ロバストネス分析のコントロール処理を詳細化します。クラス毎の責務を明示化するプログラム設計に相当します 各種クラスとしての操作 (振る舞い)

 
こうしてみると、ラフな仮説から整合性を担保しながら詳細化してゆく、とても理に適った分析手法だということが分かるのではないかと思います。また、無駄に多くの設計書を書き上げるのではなく、最小限のUML(ロバストネス図も含む)のみで分析を進められるというのも工数的に魅力ですし、そのUMLの力を最大限に引き出して、無駄なくプログラムに落としやすい分析・設計工程が踏めるというのも魅力です。

概要とその価値を紹介したところで、次回はICONIXの分析工程を一つ一つみてゆきたいと思います。