ICONIXプロセスとは
- ソフトウェア開発を進めるための 軽量な手法 の一つである
- UMLの ユースケース図 を中心に、 ドメインモデル図 、 ロバストネス図 、 シーケンス図 の 4つ の図を使って、 要件定義 から 設計 、 実装 、 テスト までを行う
- ウォーターフォール開発の反省点を元に、 前フェーズへの手戻り を許容し、 ユースケース を起点とする「 動的モデル 」と、 ドメインモデル を起点とする「 静的モデル 」を関連付けながら、コードに落とし込んでいく手法である
- 曖昧さや不整合を減らすことで、 開発効率 や 品質 を向上させることが特徴である
- 「 アジャイル開発 」や「 サーバーレスアーキテクチャ 」などにも適用できる 柔軟性 がある
-
要件定義 と 詳細設計 の ギャップを埋める 方法である、「 ロバストネス分析 」を使用する
- ロバストネス分析は、ユースケース記述の 曖昧さ を削減し、 設計 、 テスト 、 見積り を容易にする
ICONIXプロセスは、UML図のコアサブセットを使って、ユースケースからソースコードまでを、 可能な限り少ないステップ で行うことができる「 軽量で信頼性の高い方法 」である。
成り立ち
ICONIXプロセスは、「 Doug Rosenberg(ダグ・ローゼンバーグ) 」によって開発された、ソフトウェア開発のための UMLモデリング手法 である。
ICONIXプロセスは、ウォーターフォール開発の反省点を元に、「 前フェーズへの手戻り 」を許容し、ユースケースを起点とする「 動的モデル 」とドメインモデルを起点とする「 静的モデル 」を 関連付け ながら、コードに落とし込んでいく手法である。
必要性
ICONIXプロセスは、ユースケース駆動 のソフトウェア開発手法の一つで、UMLの図を用いて、システムの 要件定義・分析 から 設計 、 実装 、 テスト までを効率的に行うことができる。
ICONIXプロセスの必要性として、以下の点がある。
- 前フェーズへの手戻り を許容しているため、ウォーターフォール開発ほど 硬直的 ではなく、アジャイル開発のように 要件分析フェーズ を 省略 したりはしない
- 「 ロバストネス分析 」という手法を用いて、 ユースケース記述 の 曖昧さ を減らし、 ドメインモデル との 整合性 を保つことができる
- アジャイル開発のように 要件分析フェーズ を 省略 しないため、システムの 品質 や 保守性 を向上させることができる
- 中核的 な 分析 と 設計 モデリングプロセスを記述しているため、異なるプロジェクト管理やアジャイル方法論に従うプロジェクトであっても、 柔軟 に 適用 することができる
- ユースケース から ソースコード までを 可能な限り少ないステップ で行うことができるため、 分析麻痺 に陥らず、 効率的 に開発できる
- ユースケースを実装に変換する ためのフレームワークとして、「 ソフトウェア開発の全体像 」を把握しやすい
アジャイルとの関係性
アジャイル開発とは、プロジェクトを 小さなサイクル に分けて、 フィードバック を受けながら開発していく方法である。
アジャイル開発は、利用者の 要求 や 環境 の 変化 に 柔軟 に対応できるというメリットがある。
ICONIXプロセスとは、「 ユースケース駆動 」のオブジェクト指向開発手法の一つである。
ICONIXプロセスでは、 要件分析 、 予備設計 、 詳細設計 、 実装 の 4つ のフェーズで開発を進める。
アジャイル開発 と ICONIXプロセス の関係性は、以下のように説明できる。
- ICONIXプロセスは、ウォーターフォール開発ほど 硬直的 ではなく、前フェーズへの 手戻り を 許容 している
- つまり、 アジャイル開発的 にやることができる
- ICONIXプロセスは、 要件分析 フェーズをしっかり行う
- アジャイル開発では、要件分析フェーズを 省略 したり、 不十分 になりがちだが、ICONIXプロセスではその問題を回避できる
- ICONIXプロセスには、「ロバストネス分析」という 予備設計 フェーズがある
- このフェーズでは、 ユースケース と オブジェクト の間の ギャップ を埋めることができる
- アジャイル開発では、このような 中間的なモデリング が欠けている場合がある
- ICONIXプロセスは、異なる プロジェクト管理 や アジャイル方法論 に従う様々なプロジェクトで、大幅なテーラリングなしに使用することができる
- 書籍「Agile Development with ICONIX Process」では、アジャイルプロジェクトでのICONIXプロセスの使い方が説明されている