モジュール化の3つのメリットとは?

ABAP

汎用モジュール・サブルーチン・クラスなど、プログラムを細かい機能単位でモジュール化する手法はABAPだけではありません。

実際、なんとなく便利だなあ、とは感じているものの体系だってモジュール化のメリットを考えたことがある人は少ないと思います。

この記事では「モジュール化のメリット」を大きく3つに分けて整理し、解説していきたいと思います。

そもそもモジュール化って何?

そんな方は、サブルーチン、汎用モジュールの記事を一度読んでから戻ってきてみてください。

それでは早速解説していきます。

スポンサーリンク
スポンサーリンク

モジュール化のメリットを整理する意味

そもそもモジュール化を整理することに意味はあるんでしょうか?

結論、実はかなり重要です。

というのも、例えばサブルーチンを作る、汎用モジュールを作るといった場合に、何故モジュール化しているのか?ということが分かっていなければ、メリットを最大限生かしたコーディングが不可能になってしまいます。

また、汎用モジュールなどは作るのに結構時間がかかるため、このメリットを知っていないと「わざわざモジュール化しなくても良いのでは?」となりがち。

結局、モジュール化されていない数千行プログラムの完成につながります。

人によってモジュール化に対するメリットの考え方も違ってくるモノではありますが、ここでは一般的に認識されているモジュール化のメリットを解説します。

1.使いまわしが効くためコーディングが楽

まず一つ目のメリットはいわゆる「利便性」です。

サブルーチン・汎用モジュールの解説記事でも述べましたが、一度機能の塊を作ってしまえば、何度でも再利用可能です。

サブルーチンは同一プログラム内、汎用モジュールは全プログラムから呼び出すことが可能のため、「自分が昔作った機能」「他の人が以前書いた機能」を再度使いまわすことが可能になります。

結果、コーディング時間の短縮、テスト時間の短縮につながります。

したがって、このメリットを踏まえモジュール化する際に特に注意したいことは、「分かりやすさ」を意識してパラメーターを設定することが大切です。

パラメーターが多すぎる場合、再利用する際にその機能の利用方法が容易に判別できるため、さらに効率化が進むでしょう。

一方で、せっかくサブルーチンや汎用モジュールをコーディングしたとしても、読みづらく、分かりづらい設定になっていれば、再利用する際に「そもそもこのモジュールにはどんな順番でパラメーターを渡せばいいのか?」って迷ってしまうことにもなりかねません。

渡すパラメーターさえしっかりしていれば返ってくる結果が同じになるのがサブルーチン・汎用モジュールなので、この点を意識してコーディングすることが重要です。

2.保守性が上がる

2点目のメリットは「保守性の向上」です。

保守性とは、つまり「改修の楽さ」のことです。

もしある機能を汎用モジュール化していれば、その汎用モジュールを1つ改修すれば、複数のプログラムの改修せずに済みます。

例えば「帳票を作成する際のロジックを変えたい」とクライアントから要望があるとします。

この時、帳票作成機能がモジュール化されていないと対象の帳票が100個以上存在する場合に100件の改修をしなくてはならない!!!ことになってしまうんです。

これは極端な例ですが、そんな悪夢のようなプロジェクトが実は。。。な現状です。このメリットは無意識レベルで頭に入れておきたいものです。

より実践的に言うと

一般的な処理は漏れなくモジュール化

上記のメリットを考えると一般的な処理は漏れなくモジュール化しておくべきだ、という結論になります。

なぜなら、一般的な処理(つまり、影響を受けるプログラムが多い処理)ほど、モジュール化していない場合の改修が大変になるためです。

「帳票の出力」みたいな一般的な機能は漏れなくモジュール化しておくことをお勧めします。

モジュール化した機能があれば例外なしにそのモジュールを利用する

帳票出力するモジュールがあれば、100個あれば100個の帳票をそのモジュールを利用してコーディングするべきです。

100個の内、95個くらいしかそのモジュールが作られていなかったらどうでしょうか?

改修が完了した(と思った)時に、実はこの帳票は何も変わっていない!なんてことが起きてしまうことになります。

ある機能がモジュール化されていれば、すべからくモジュール化するべきです。

3.普遍的に同じ結果が返ってくる

モジュール化の3つのメリットは「透過性」です。

透過性とは、「いつでも」「どこでも」「どんなときでも」必ず同じ結果が返ってくる性質のことを言います。

どこから呼び出しても、どのタイミングで呼び出しても同じ値を渡せば同じ結果が返ってきます。

当たり前のことですが、3点目のメリットとして挙げておきます。

最後に

いかがでしたか?

不明点・疑問点があれば、随時コメントからお寄せ下さい。

タイトルとURLをコピーしました