goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

要求から、プログラムまでの階層を考えないことが、開発の混乱を招いている

2007-04-14 19:49:14 | 開発ネタ

 っていう表題にしたけど、その具体的な混乱、つまり、アスペクト指向における横断的関心事の切り出しの問題や、デザインパターンの活用の話なんかは、月曜日からはなすこととして、今回は、その階層についての内容。




プログラムを考えると、普通プログラムする人が扱えるのは、

 ・言語が用意する関数、クラス
 ・OSのAPI
 ・入出力のドライバ

である。これより下(ハード寄り、ファーム寄り)は、業務アプリの範疇ではない。

 まあ、これを、「OS/言語提供モジュール」とでもいいましょうか。。

 そして、ソート、マージ、帳票出力、DB入出力、ファイル入出力といった、基本的なプログラミング可能な機能がある。これを、「入出力と、基本操作群」とよぼう。
 基本操作に関しては、ここの「Javaで基本操作」に挙げた。

 そして、本来はこの基本操作を利用して、アクティビティ図のアクティビティ、ユースケース図のユースケース、DFDのプロセスは構成されるはずである。これを、「アクティビティ層」とよぶ。

 そして、業務は要求仕様において、アクティビティないしは、プロセス(=アクティビティ層)に分解される。

 これを図式化すると、こうなる

業務
 |*1
アクティビティ層(=アクティビティ等)
 |*2
入出力と、基本操作群(=外部設計の世界)
 |*3
OS/言語提供モジュール


 ここで、重要なのは、「基本操作群」で、これに要求が落とし込めるか(つまり、受注というのは、ソート,マージ、編集、入出力を使って表現できるか)ということになる。

 なお、図に*1、*2、*3と書いたが、この変換作業(*にあたるところ)が、開発の作業になる

*1: 業務をアクティビティに落とし込むのが要求分析
*2: アクティビティを入出力と基本的な操作に落とし込むのが、外部設計
*3: 入出力と基本的な操作をプログラミングするのが、内部設計&プログラミング

 で、プログラミングテクニックは、主に*3のところに関係する。
 ワーカーさんに渡すレベルとは?で書いた、”ワーカーさんに教えておく”という部分は、上記の「基本操作群」部分ということになる(昔はおそわったんだけどね)。

 自動化の場合、*2の自動化と*3の自動化は全然意味が違い、*3はやりやすいけど、*2は難しい。再利用も同じ。




 ってことで、月曜日から、これをもとにしたお話をしようかと思ってます。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« DTPの構造を考える-その... | トップ | プロフをしたことがないウィ... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事