オブジェクト指向といっても、いきなりボトムアップでオブジェクト設計から始めるのはちょっと無謀だと思います。業務レベルではやはりトップダウンで全体像をかためるべきでしょう。
まずは、開発の目的を決めます。目的といっても、人それぞれ、立場などで異なります。
でも、開発に関わる人間すべてに最低限共通の目的(大義名分)を持つことが成功のためには必要です。
そして、それぞれの立場や人ごとに、この目的を具体化し、ブレークダウンして行けば良いでしょう。
まずは、なにをどうしたいのかを明確にします。
なにをどうしたいのかが決まれば、それに基づいて分析を行います。
一口に分析といっても、見る角度や視点で結果は異なってきます。
そこで、最初に決めた目的に沿った視点で分析することで話しが発散しなくてすみます。
目的は開発のバックボーンとなって作業が違う方向へ迷走するのを防ぎます。
世の中の仕組みは単純なオブジェクトだけでは構成されていないと思います。
業務や処理(制御)の目に見えないルールによりコントロールされているのです。
これを、全て同一レベルのオブジェクトに封印して隠蔽する方法もありますが、ルールは世の中では重要な要素であるからシステム全体をコントロールするルールとして明確にするほうがよりストレートに世の中をモデリングできると考えます。
分析には担当や組織または他のシステムなど役割毎の要素を縦の列に、処理毎の要素を横の行にした改良DFD(データフローダイヤグラム)を用いるとわかりやすいでしょう。
このDFDにより5W1Hを明確にします。
横軸は時間軸として業務フローを表します。
縦軸は役割として他システムや組織との関係を表します。
例を下記に示します。
業務設計 分析結果をもとに、開発方針、システム化範囲(人間とコンピュータの役割分担)、改善目標(程度)、予定線表などを決めます。 そして分析に用いたDFDを、上記の開発方針、システム化範囲などに基づいて修正します。 その前に、業務自体の改善を考えることが大切です。その上で、コンピュータに支援をお願いすることを考えるべきでしょうね。
上の例では、会計システムへ仕入れ部から仕入れ伝票情報の投入を行うことになります。
業務系が固まったらいよいよ、コンピュータの世界での設計作業です。
個人的に推奨するモデリングの方法を以下に述べます。
業務設計からメニューと対話制御部の設計を行います。
|
後は実装とテストを行い完成させます。
プロトタイプやスパイラル型の開発では、これらを繰り返して完成度を上げて行きます。
単純な構造のオブジェクトとその組み合わせを制御するトランザクション制御部、そして、業務を構成する対話制御部と、階層的に分割することで、プロトタイプやスパイラル型の開発のように修正や追加などが多発する形態にも対応できるようになります。