いままで、開発のはじめから終わりまでを、何回か書いてきた。
でも、1つのツールを出来るだけ使って、その操作法を書きながら、一気通貫させる方法は、書いてない。
そこで、astah*を使って、開発の要求仕様から、プログラム作成までを、トレーサビリティを保って、どのように開発するかを書いてみたいと思う。
まずは、概要。
こんな手順になる
(1)astah*の「ユースケース図」を使って、作るべきもののユースケースを書く
(場合によっては、「アクティビティ図」を先に書くことも)
(2)ユースケースシナリオを書く
(3)(ロバストネス分析)
ユースケース図の1ユースケースを1コントロールとし、
コントロールに付随するバウンダリを1個用意して、
ユースケースシナリオにもとづき、エンティティを作成し、
さらに、ユースケースシナリオの内容に基づきメッセージを
コミュニケーション図に記述する
(4)astah*において、バウンダリ、コントロール、エンティティはクラスになっている。
そこで、コントロールの処理を考えながら、必要な入出力を考え、
バウンダリ(画面)、エンティティ(テーブル等)の属性を埋めていく
→コントロールが肥大化している場合、コントロールクラスを、いくつかに分割してもよい
(5)バウンダリの項目を元に、画面構成を考える。
各画面を1クラスとし、画面入出力項目を決め、
画面遷移を考える。
画面遷移(図)は、1画面1状態として、ステートマシン図で記述する
(6)(必要があれば)エンティティを正規化して、ER図にする
(7)フレームワークを決定する
(8)フレームワークに応じて、(5)で作成した画面クラスを、
ソースコードに書き直す
(9)フレームワークや利用するDBに応じて、(6)のエンティティ
(クラスまたはER図)をDBのテーブルと、DAOに書き直す
(10)フレームワークによって、こういうコントローラーにしろ!という
指定があるので、(3)ないし(4)で作成したコントローラーを、
フレームワークに合うように書き直す
ユースケース駆動のところ、ロバストネス分析をしているところが、ICONIX風。
ただし、その後、ちょっと違うので、ICONIXでなく、ICONIX風とした。
次回から、上記についての説明を書いていきたいと思う。