• ベストアンサー

モジュール分けのルールについて

モジュール分けのルールについて 質問失礼します。 卒業研究で、通信販売のページを作るという課題がでたのですが、 その制作の前段階として、モジュール分けのルールを決めてくれと言われました。 しかし、モジュール分けのルールと言われても、 「共通して利用できる部分はモジュール分けをする」 …程度しか思いつかず、 モジュール分けのルール、と言われても、 はっきりとしたルールが良く分からず、悩んでいます。 そこで、皆さんに質問なのですが、 これまで、どのようなルールでモジュール分けを行って来たのでしょうか? また、どのようなルールがありましたでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140045
noname#140045
回答No.3

No.2です。 お礼ありがとうございました。 >ルールとして足りえるものでしょうか 「強度の尺度」については、あくまでもガイドラインです。 つまり、何もかも単一機能にはできないからこそ、このような表になっているので、あくまでも優先順位ですので、例外は規模が大きくなるほど当たり前のようにあります。 ですから、あまりそれで縛るのはかえってわかりづらいプログラムとなります。 私が以前した方法として、特に新人などには、自分担当分の機能概要を説明させて、その機能ごとにモジュール分けをさせることです。 さらに、モジュールステップの上限を決めることです。たとえ単一機能であっても1つのモジュールが数千ステップもあっては可読性が悪くなります。 普通は、上限を1000~1500ぐらいでもいいと思いますが、DBなどで項目数が多い場合はそれ以上になるでしょう。 また、昔COBOLの頃は、メイン処理で「初期処理・主処理・後処理」と良く言えばスッキリ、でも実は何をやっているか訳がわからなかったですが、多少ステップ数は多くなっても、なるべく主処理で全体の機能概要が掴めるようにした方が可読性が高くなると思います。 突き詰めるところ、モジュール分けはセンスです。 ある程度のガイドラインは出せても、答えは人それぞれで何が正解とは言えません。 (でも、ある程度の経験者ならば、大体は同じようなモジュール分けになるのも確かですが) また、注意が必要なものにモジュール間インターフェース(結合の尺度)があります。 これも、なるべくパラメータで渡すの(データ結合)が理想ですが、それだと十数個もの引数になる場合もありますので、これもセンスが必要です。 あまり答えになってませんが、個人個人で作りが悪ければ、結局それで苦労して、そこからもっとうまい方法が生まれる。この繰り返しだと思います。 特に、1人でステップ数が1万~2万ぐらいにもなるプログラムでは、経験者とそうでない人では、作り方やコメントなど経験者でなければできないものが必ずあります。 でも、誰でも最初の時はあるわけで、それをうまく導くのもリーダーの仕事だと思います。 とりとめのない回答になって済みませんでした。

ShinKenSan
質問者

お礼

事細かに説明していただき、本当にありがとうございます。 ルールは、やはりガイドライン程度に収め、 結局それ以上の事は、経験値のある人のサポートや 制作者、チームの努力や試行錯誤で改善されて行くものなのですかね。 とても参考になりました、 ありがとうございました!

その他の回答 (3)

noname#140045
noname#140045
回答No.4

No.3の訂正です。 >なるべく主処理で全体の機能概要が掴めるようにした方が可読性が高くなると思います。 主処理ではなく、メイン処理の誤りでした。 訂正して、お詫びいたします。

noname#140045
noname#140045
回答No.2

構造化プログラミングの基本は、「単一機能」にモジュール分けすることです。 よく「構造化プログラミングとオブジェクト指向とは、考え方が全く違う」ようなことを言うやからがおりますが、オブジェクト指向は構造化プログラミングを進化させたもの(カプセル化を容易にしたもの)であって、構造化プログラミングが否定されたものではありません。 下記URLの、ページ下段の「強度の尺度」を参考になされることをお勧めします。

参考URL:
http://www.smg.co.jp/~toyo/Program/note.html
ShinKenSan
質問者

補足

回答ありがとうございます URL参考にさせていただきます。 オブジェクト指向プログラミングについては、私もいくらか経験済みですので、 構造化プログラミングによく似ているというのは、理解しているつもりです。 問題は、担当者全員に、ルールによって 「どのようにモジュール分けしてね」 という縛りをつけられるかなのですが、 モジュール分けのルール、として ・「単一機能」にモジュール分けをする。 ・「結合度」「強度」を意識する。 ・ 共通させたい機能ごとにまとめる。 で十分ルールとして足りえるものでしょうか

  • NMZ1985
  • ベストアンサー率30% (41/136)
回答No.1

必要な機能ごとにまとめてみてはどうでしょう。 通信販売のページということですが、Amazonのような感じと思われます。 1.個人情報の管理  ログイン・購入履歴・住所・氏名 2.商品管理      在庫を確認する・商品の説明・レビュー評価 3.画面表示用クラス 引数できたものを画面に出力する などのように、自分の共通させたい機能毎にまとめるのもひとつのルールです。

関連するQ&A