問題1
モジュール間のプログラムの受け渡し方法を示したものはどちらか
モジュール結合度が正解です
モジュール結合をもう少し別の言い方で説明すると、プログラム内の別な関数間での変数の共有の仕方です。
全ての関数で同じ変数の参照も書込もできるようにしてしまうとプログラムのどこで意図しないデ-タの変換が行われているのか分かりにくいため、とこまで変数を共有するかを工夫する必要があり、関係ある部分でのみ変数の書込みを行うこと(モジュール結合度が弱い子と)が望ましいとされています。
また、もう一つの選択肢のモジュール強度はモジュール内のプログラムの関連性の強さのことを指しています。
問題2
モジュール内のプログラムの関連性の強さを示したものはどちらか
モジュール強度が正解です
モジュール強度を別な言葉で説明すると、一つの機能が一つの関数内にまとめられているか、関数内に関係ない処理が書かれていないことの2つを示しています。
一つの機能が一つの関数にまとめられている状態では、エラーが起こった時に関係した処理を探しやすいこと、別なものを作るときにも使い回しが聞くというメリットがある点からモジュール強度は強い方が望ましいとされています。
モジュール結合度はモジュール間のプログラムの受け渡し方法です。
問題3
グローバル変数を参照するのはモジュール結合度では何結合と呼ばれているか
共通結合が正解です
共通結合は全ての関数内で変数を共有する仕組みです。共通結合を使用すると、変数にいれた値をいつでも読んだり変数に書き込んだりすることができます。
そのため、共通結合にする方法としては以下の2つが挙げられます。
- ・グローバル変数を利用する。
- ・共有メモリの作成を行い、使用する。
ただ、プログラム作成に慣れてきて大規模なプログラムを作成しようとした場合には、どこで意図しない変化が起こっているのかが非常に分かりにくくなるというデメリットもあるため、慣れてきたら保守性の観点からデータ結合の形式に切り替えられるした方がいいでしょう。
問題4
必要なデータを引数で渡すことはモジュール結合における何結合か
データ結合が正解です
デ-タ結合はプログラムの修正、保守の観点から一番望ましい関数の結合方法と呼ばれています。
詳細をあげると、関数内で使用している計算過程の変数は引数という関数に入力した数のみが他の部分と共有しており、関数で計算によって求めた数字は返り値という出力されたもののみを使用します。
出力された数字がおかしかったら該当する関数のみを調べれば良いため、どこで意図しない数字の変化がおこったかが分かりやすくなるなめ、望ましいとされています。
問題5
プログラムを分割しただけのモジュール強度のことを何と呼ぶか
暗号的強度が正解です
プログラムを作成しようとすると、見きれない程長くなるので、後から見やすくなるように自作の関数を作成して、処理を分割して記載されることが多いです。
時間関数の入門段階ではとりあえず処理を分割するという形を取られることが多く、初学者の作る自作関数のことを暗号的強度と呼ばれています。
問題6
最初に全てのグローバル変数の値を初期設定する関数を作った場合、モジュール強度はどれにあたるか
時間的強度が正解です
時間的強度は特定の時間を指定して、その時間帯に行う処理の内容を一つの関数にまとめたものです。なお、関数内に書かれる複数処理は互いに関係ないものでも構いません。
時間的強度の関数でよく使用されるのは、問題文で書いた状況で使われることが多いです。
問題7
逐次実行する機能をまとめた関数のモジュール強度はどれにあたるか
手順的強度が正解です
モジュールとは一つのまとまった機能のことをさしています。モジュールの作成で一番望ましい状態は一つの機能に関するものが一つの関数にまとまっており、なおかつ他の機能から独立していることです。
これらを満たすように作成したものが手順的強度と呼ばれており、これは関数を他のプログラムで使おうとするとそのまま使い回すことができます。そのため、長期的に見ると、効率良くプログラムを作成することができます。
問題8
モジュールの独立性が高くなるようプログラム分割すること
モジュール分割が正解です
モジュール分割はプログラムが長くなって、処理の概要が一目で見れなくなったら行われます。
具体的には、プログラムを見て理解できるようにするために、関係ある処理の部分をひとまとめにして、別な関数(モジュール)へと分割することを指します。
問題9
プログラムを実行しないテスト
静的テストが正解です
本題におけるの静的、動的はプログラムを実際に動かすかどうかを分けている言葉です。
ちなみに静的が動かさずに動的が動かします。
静的テストの例としてはコンパイラを用いたコンパイルエラーの確認、構文解析が挙げられます。
ブラックボックステストはコードの中身を見ずに、とりあえずコ-ドを動かして、プログラムがちゃんと動くことを確認する動的テストの一部です。
また、結合テストはプログラムのパーツを複数組み合わせたときにエラーが起こらないことを確認するテストです。
IT系の会社に入ったらテストの実施は大抵真っ先にやることになるので、その時にこれはこうなんだなと理解できるといいように思えます。