2008年9月3日水曜日

9月3日~ファイルシステム~

 あまりに「疲労蓄積」したのか,今日は会社を休んで療養。土曜日は出勤,夏休みも6日出勤とかなり無茶が続いていたが,無茶をしなければ期日に間に合わないのも事実。といってここで倒れるわけにもいかない…。

 ファイルシステムについて学習する。段階的詳細化というと最初は難しく感じたが,要は「大まかに設計」してあとは「詳しく設計していく」というブレイクダウンの構図を情報処理では「段階的詳細化」というのだと気づく。外部設計(システムをサブシステムに詳細化),内部設計(サブシステムをプログラムに詳細化),プログラム設計(プログラムをモジュールに詳細化),プログラミング(プログラムをモジュールに詳細化)といった具合だ。おそらく世間的にいうプログラミングはプログラムをモジュールに分割する程度のイメージだが,一番最初の要求定義や外部設計の段階は理系というよりもむしろ文系的な発想のほうが重要な気がする。実際にコーディングが必要となるのは,プログラム設計の後半とプログラミングの工程だから,理系的要素はこの部分しかないと考えるのが妥当なのではないか。SEの書籍をみても古典文学や小説の読書を進める本が多いのは,全体像からシステムやサブシステムを抽出するあたりは,文学的な要素すらあるからかもしれない。モジュールに分割する段階でモジュールの「仕様」が問題となる(TS分割とかSNS分割などの工程を経た前後の段階で〉。入力データ構造と出力データ構造の「変換のしかた」(=モジュールの論理構造)をしっかり組み立てた上でプログラム設計ではモジュールに分割していく必要性があるという流れだろう。モジュールの制御領域や影響領域などにも当然配慮する必要があり,よく午前で出題されるモジュール結合度の強弱などはまさしくこのプログラム設計段階でのモジュール分割をいかに適切に行っていくかという意味での出題なのだろう。

 しかしどうも午後の問題で出題される「プログラム設計」は内部設計も含めての出題と考えたほうがよさそうだ。DFDでデータの流れを「見える化」したあと,各機能の入力と出力,使用ファイルの分析をしてプロセスフローを作成する。外部設計で分析した物理データ設計や入出力設計を詳細化していって,受注ファイルや発注ファイルなどファイルの概要をまとめていく段階は内部設計の段階だが午後試験ではこのファイルの概要がデータとして与えられている場面が多い。そしてキー項目を設定して「システム流れ図」を作成するが,午後ではこの「システム流れ図」をいかに読み取っていくべきかという出題もあるように思われる。これが内部設計書だが,内部設計書をもとにしてプログラムの構造化設計(モジュールへの分割)が行われるが,おそらく午後のプログラム開発は内部設計の後半から内部設計書,内部設計書からモジュールの構造化設計の段階というあたりがポイントだろう。モジュール間でどういうデータをやりとりするかというモジュール仕様を流れ図にした問題,それが平成19年春午後試験の問題5ということになる。モジュール仕様の作成の方法にはワーニエ法など種々あるが,一般的には「流れ図」で出題されるようだ。しかしアルゴリズムの流れ図ではなく,これはモジュールの流れ図であるということを認識していないと変数を代入するなどといった違うアプローチで問題を解くような間違いは防止できるはずだ。

0 件のコメント: