<< 実践 ICONIXプロセス : 静と動、要求と実装 | main | 実践 ICONIXプロセス : 設計の腕を上げる >>

実践 ICONIXプロセス : 設計と実装の分離

ICONIXでは詳細設計は、シーケンス図を描きながら詳細クラス図を完成させる作業です。
シーケンス図は、ユースケース記述を実現することを考えながら描きます。

詳細設計で、すべてのクラス、すべてのパブリックメソッド、主要なプライベートメソッドは、シーケンス図のメッセージとして描き、同時に、詳細クラス図の操作として追加します。

私もそうでしたが、かつては、こういう作業の多くは、ソースコードを書きながら、いろいろやっていたような気がする。
呼び出し側のクラスと呼ばれる側のクラスのソースファイルを行ったり来たりしながら、メソッド名を考え、コードに追加し、コンパイル&ゴーを繰り返す。

オブジェクト間の連携、メソッド呼出を、すべてシーケンス図と詳細クラス図で定義するのは、設計と実装(コーディング)の作業を完全に分離することですね。

実装(コーディング)は、(自動生成した)クラスファイルの空っぽのメソッドの中身を書く作業だけになる。
この分離の効果は大きいです。

設計、つまりシーケンス図とクラス図で考えているときは、メソッドの中身は一切考えません。
実装、つまりメソッドの中身を書いているときは、そのロジックだけに集中できます。

Do one thing, do it well !

という言葉がぴったりです。

エディタで設計しながら実装していた時には気が付かなかったのですが、クラスへの操作の割当作業が、いかにたいへんで、また、設計で良い仕事をすることが、理解しやすく、変更が安全なコードを書くコツだということを実感しました。

ユースケース駆動開発実践ガイドでは、このことを「プレファクタリング」と説明していますね。
メソッドの名前変更や、メソッドの移動は、リファクタリングの基本テクニックです。
しかし、実装の前に、シーケンス図とクラス図で操作の割当をしっかり検討しておくと、この種のリファクタリングの必要性は激減します。

設計作業はたいへんですが、コーディングの前に、じっくり考えたほうが、結局は、読みやすいコード、変更が安全なコードを楽に書くことができますね。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM