質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

4702閲覧

モジュール結合度と強度の区別について

5_lkr

総合スコア10

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

2クリップ

投稿2018/11/25 13:10

前提・実現したいこと

勉強中なのですが、モジュール強度とモジュール結合度の判別方法が分からないので教えてください。

モジュール結合度は、
*無結合
*データ結合
*スタンプ結合
*制御結合
*外部結合
*共通結合
*内部結合

モジュール強度は、
*機能的強度
*情報的強度
*通信的強度
*手順的強度
*時間的強度
*論理的強度
*暗号的強度

に分かれています。

これらの内容自体は理解しているのですが、実際にプログラムを見て判別することが出来ません。
これらをコードを使用して判別する方法や判別する決め手を教えていただけませんでしょうか?よろしくお願いします。
C++言語が理解できます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんにちは。

最近の情報処理技術者試験にある項目のようですね。(大昔取ったのですが、当時はここまで明確な指針はなかったと思います。)
情報処理技術者試験対策「モジュール強度とモジュール結合度」がすごく分かりやすいです。

さて、この内容からすると主にプログラムを設計する際の指針ですね。
ですので、他の人が書いたプログラムを見てこの指針を適用するためには、その適用対象全体の構造を設計者と同程度に把握する必要があります。このような指針を適用する必要があるプログラムはそれなりに大規模(少なくとも複数の「モジュール」が存在する)ので、全体を把握する手間は相当なものと思います。
モジュール構造やモジュール間I/Fをきちんと把握し、更にモジュール内をサブ・モジュールに分割するところまで明確にした上で初めて判別可能になります。

従いまして、「実際にプログラムを見て判別することが出来ません。」はごく当たり前かと思います。他の人が書いたプログラムを「見た」程度でできることではないですから。

しかし、その後プログラムの機能を変えずにモジュール構造を再設計し、全体設計から作り直すようなコストをかけることを通常はできません。(機能しているなら、それを使うのが一般的です。)従って、ご希望の作業(既存のプログラムに対してこれらの指針により適合するよう再設計する)を実際に経験した人は稀と思いますよ。

ご自身でプログラム設計する際のモジュール分割の指針として活用しましょう。
個人的にはかなり良い指針のように感じます。

なお、それなりの規模のプログラム設計・開発の経験がないとちょっと厳しいかも知れません。
500ステップ程度だと少々いい加減に作ってもあまり問題はでないので理解し辛いでしょう。5Kステップくらいになってくるとそれなりに考慮しないとメンテナンスし辛いので感覚的にも理解できると思います。

投稿2018/11/26 02:36

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

5_lkr

2018/11/26 05:36

詳しく答えて下さりありがとうございます♪ 教えて頂けたサイトがとてもよく分かりやすく理解が深まりました^^ 実は…学校の試験でプログラムを見て、強度と結合度を見分ける問題が出るので、C++で対応して判断出来るように…頑張っています^^; プログラムはまだまだ勉強中で読むのも一苦労なので、教えて頂いたサイトや色々なプログラムを見て、理解していきたいと思います(^^) 丁寧に教えていただき、本当にありがとうございました( ¨̮ )
Chironian

2018/11/26 17:44

> 強度と結合度を見分ける問題が出る なるほど「プログラムを示して、これはどの強度に当てはまりますか?」的な問題でしょうか。 熟練したプログラマならば、先のリンク先の解説を見れば、正解を容易に導けると思います。 初心者の場合は、正直練習あるのみと思います。情報処理技術者試験の過去問に該当の問題があるのではないでしょうか? https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html 重要なことは、これらの意味を理解し、モジュール構造設計する際にうまく活用できるようになることです。ですので、分類問題を機械的に解くための「手順」が仮に存在したとして、それを学んでも意味はないです。 地道に問題を解くなどして、その意味をおぼろげにでも理解するよう務めることをお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問