とあるIT屋の独白

ITや経営について主に書きます

ICONIXプロセスとは何か

システム開発において、DDDの要素を取り入れるようなこともけっこう浸透してきたと思います。実装部分は下記のnrsさんの記事や書籍で、けっこうイメージが付きやすくなっていると感じます。

nrslib.com


ただ、実装の元となるモデリングの部分をどうやって進めるか、というのはまだまだ方法論としてそこまで確立していない気がしています。私もけっこう前に、実業務に照らしてモデリングをやってみようとした時に、なかなか思うように進まなかった記憶があります。というわけで、今回はモデリングを進めるためのプロセスについて書いてみたいと思います。
モデリングを進める、一つの手法として下記の記事にある「ICONIXプロセス」が挙げられます。ICONIXプロセスが着目するのは「ユースケース」になります。ユースケースとは直訳すると「振る舞い」になるのですが、ドメイン(システム化の対象)を洗い出すとともに、そのドメインがどのような振る舞いをするのかを整理しないと、中々実装まで落とすのは難しいです。

logmi.jp


ユースケースについて、もう少し詳細に解説しているのが下記の記事です。ユースケースとは端的に言うと、誰が何を達成したいかをまとめたものになります。UMLを使ったことがある人は、ユースケース図はおそらく作ったことがあるかと。もちろん最初に作り時はざっくりと要望レベルのもので良いと思いますが、深く掘り下げるとユースケース間の相互作用だったり、包含関係も表現する感じになります。

umltool.hatenablog.com

 

では実際に、ICONIXプロセスを進めためにどうすれば良いかというのは、下記の記事が参考になります。プロセスとしては最初にドメインを決め、ざっくりと対象を名詞形で整理します。その後に、実際にユースケースの検討を行い、動詞(振る舞い)を検討していきます。その後にロバストネス分析と呼ばれるものを行い、実際の実装にモデルを近づけるという流れになります。

qiita.com


このICONIXプロセスを行うことで、ドメインの定義から実装までの間をある程度埋めることが出来るのではと個人的には感じています。ドメイン自体の定義も非常に重要ですが、振る舞いにもきちんと着目することで、よりイメージの付きやすいモデリングが出来ると私は考えます。