【ソフトウェアエンジニアリング総復習】第6章 詳細設計

目次


詳細設計の目標は、各モジュールの機能を論理的かつ正確に実現することだけではなく、さらに重要なのは、設計された処理プロセスが可能な限り簡潔で理解しやすいものでなければならないことです。

1. プロセス設計ツール

1.1 グラフィカル ツール (必須)

1.1.1 プログラムフローチャート

1.1.2 構造化フローチャート NS図(ボックス図)(強調)(描画~モデリング)

Loop はループを意味します。select は使用しないでください

1.1.2.1 NSグラフの定義

NS プロットは、箱ひげ図または NS プロットとも呼ばれます。これは、構造化プログラミングにおける一種のビジュアル モデリングです。(Nassi と Shneiderman は、NS 図 (2 人の名前の最初の文字で構成される) とも呼ばれるボックス図と呼ばれる、構造化プログラミングの原理に準拠したグラフィカル記述ツールを提案しました。NS 図では、すべてのアルゴリズムが大きなブロックで記述されます。図、この大きなブロック図は、シーケンス、選択、ループの 3 つの基本的な制御構造を表すことができるいくつかの小さな基本ブロック図で構成されています)

1.1.2.2 NS図の特徴

  1. NS 図は直感的で、明確な機能ドメインと良好な可視性を備えています。
  2. ローカル データとグローバル データの範囲を簡単に設定できます。
  3. 恣意的な制御の移行の不可能性。
  4. モジュールの入れ子関係や階層関係を表現するのが簡単です。
  5. 複雑さはコードそのものに近く、変更するにはグラフ全体を再描画する必要があります。
  6. これは、設計者に SP 法に従ってスキームを考えて記述することを強制します。SP 法では、いくつかの標準構造を表すシンボル以外の他の記述手段が提供されないためです。これにより、設計の品質、ひいてはプログラムの品質が効果的に保証されます。

1.1.2.3 NSのグラフィック構造(基本シンボル)

1.1.2.3.1 シーケンス構造

すべてのステートメントは順番に実行されます
ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.3.2 構造の選択
1.1.2.3.2.1 条件付き構造

P が真の場合は A を実行し、そうでない場合は B を実行します
ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.3.2.2 複数ブランチ選択構造

P=1 の場合は A1 を実行し、P=2 の場合は A2 を実行します。
ここに画像の説明を挿入

1.1.2.3.3 ループ構造
1.1.2.3.3.1 When ループの構造

判定後実行 P1条件が成立した場合、P1条件が成立しなくなるまでA文を繰り返し実行します。
ここに画像の説明を挿入

1.1.2.3.3.1 until ループ構造

先に実行してから判断し、P1 条件が成立しない場合は、P1 条件が成立するまで A 文を繰り返し実行します。

ここに画像の説明を挿入

1.1.2.4 NSグラフの例

1.1.2.4.1 例1: 三角形の3辺の長さを入力し、その3辺が正三角形、二等辺三角形、一般三角形のいずれであるかを判定する

ここに画像の説明を挿入

ここに画像の説明を挿入

1.1.2.4.2 例 2: 1 から 5 までのすべての整数を乗算した積を求めます。

ここに画像の説明を挿入

1.1.2.4.3 例 3: NS グラフを使用して 5 の階乗を計算するプログラムを設計してください。

ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.4 例 4: 1 から 100 までのすべての整数の合計を求める

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.5 例 5

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.6 例 6

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.7 例 7

ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.8 例 8

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

1.1.2.4.9 例 9 1+2+3+…+100 の合計を求める

1.1.3 問題分析図 PAD図(着目)(描画~モデリング)

ここに画像の説明を挿入

1.2 フォームツール (必須)

デシジョン テーブルとデシジョン ツリーはリスト設計ツールであり、ネストされた条件を含む複雑な意思決定状況の分析と設計、およびマルチブランチ構造コードの設計と実装によく使用されます。

1.2.1 判定表(必須)(重要)

(複数の条件をテーブル形式で組み合わせ、複数の条件の入力結果と出力結果の関係を決定表で総合的に検討することができます)言語で表現するには多くのスペースが必要 明確な処理ロジック。一部のデータ処理問題では、データ フロー図の処理が複数の論理条件の値に依存する必要があり、これらの値の組み合わせによりさまざまな状況が構成され、それに応じて異なるアクションを実行する必要があります。この種の問題を構造化言語で記述するのは不便であり、処理命令を表現するツールとして決定表や決定木を使用するのが最適です。デシジョンテーブルは 4 つの部分で構成されます。

条件とは(条件ボックス)を指します。 各種条件の組み合わせ(条件組み合わせ)
すべてのアクション (アクション ボックス) 対応する条件の組み合わせの下で、操作を実行するかどうか (実行される操作)

1.2.1.1 判定台事例(具体的な問題解決の考え方)

【事例】:携帯電話通話
1)条件:

滞納していますか 起動するかどうか
延滞中 起動
滞納はありません 起動していない

2) 条件の組み合わせ:

条件1:滞納しているかどうか 条件2:シャットダウンするかどうか 結果
延滞中 シャットダウン 話せない
延滞中 起動 話せない
滞納はありません シャットダウン 話せない
滞納はありません 起動 話せる

3) コンセプト

条件スタブ、アクションスタブ、条件項目、アクション項目

条件パイル: 考えられるすべての条件。たとえば、上の例では 2 つの条件があります。滞納しているかどうか、アクションパイルを開始するかどうか。: 考えられるすべての
値。たとえば、上の例では 4 つあります。値: 延滞、延滞なし、電源オン、電源オンなし
条件アイテム: これは条件パイル内の 1 つ以上の値です
アクション アイテム: これはアクション パイル内の 1 つ以上の値です

4) 同値クラスは
有効および無効です

判定表では、有効・無効を表す方法
1:文字で表す
有効同値クラス: Y
無効同値クラス: N
モード 2:数字で表す
有効同値クラス: 1
無効同値クラス: 0

5) デシジョンテーブルに基づいてテストケースを設計する手順

最初のステップ: まず条件パイルを決定します


滞納しているか
どうか、電源が入っているかどうか、ここには 2 つの条件があるため、表に 2 行を書き込み、各行が条件を表します

ステップ 2: アクション パイルを決定する

合計 4 つのアクションがあり、各条件パイルに 2 つあり、合計 4 つのアクションがあります:
延滞、延滞なし、電源オン
、電源オフ

ステップ 3: 条件の組み合わせの結果を決定する

各条件のすべての値を別の条件のすべての値と結合します

ステップ 4: 条件の組み合わせの結果を決定する

ここに画像の説明を挿入

ステップ 5: 結果に基づいてテスト ケースを作成する

思考: 条件の数とテスト ケースの数の間にはどのような関係があるでしょうか? 条件が多いほど、得られるテスト ケースの数も多くなります。条件の数の
乗算はテスト ケースの数と同じになります。

1.2.2 デシジョン ツリー (テスト対象) - 単純

デシジョン ツリーは、複数の条件と複数の値に対して実行する必要があるアクションをツリー形式で表す方法です。決定木の枝はさまざまな条件を表し、枝の階層が拡張されると、各条件は独自の値を完成します。デシジョン ツリーの葉は、実行すべきアクションを示します。

1.2.3 デシジョンテーブルとデシジョンツリーの適用

1.2.3.1 学生の成績に対する報酬条件を調整します。つまり、各学期に受講したコースの学生の成績の割合です。優秀率は70%以上、平均以下の割合は15%未満で、成績優秀な学生には第一種奨学金が、平均的な成績の学生には第二種奨学金が与えられる。優秀率が50%以上、平均以下の割合が20%未満、成績優秀者は第二種奨学金、成績が平均的学生は第三種奨学金を獲得可能、以下の割合20%未満は20%未満で、成績優秀な学生には第3種奨学金が、平均的な成績の学生には第4種奨学金が与えられる。奨学金を待っている。上記の計算スキームを表現するには、デシジョンテーブルとデシジョンツリーを使用してください。

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

1.2.3.2 ある学校の教員報酬の計算計画は次のとおりです: (l) 基本教員報酬は 1 クラスあたり 10 元です; (2) クラスの人数が 40 人を超える場合、教員報酬は増加します: 基本教員報酬 × 0.1; (3)クラスの場合 人数が60人を超える場合、報酬増額:基本報酬×0.2; (4)教員が准教授の場合、報酬増額:基本報酬×0.1; 5) 教員が教授の場合、報酬増額:基本報酬×0.2、⑥講師の場合、授業報酬の増額なし、(7) ティーチングアシスタントの場合、授業報酬減額:授業基本報酬×0.1。上記の計算スキームを表現するには判断を使用してください。

ここに画像の説明を挿入

1.2.3.3 ある大学の大学院入学システムの一次選抜方法は次のとおりです。合計スコア 300 (両端を含む) 以上の者が候補者プールに登録されます。それ以外の場合、取り下げられたファイルの数学スコアは登録されません。 70 点未満の場合は、第 3 レベルの候補者プールに入れられ、そうでない場合は、第 4 レベルの候補者プールに入れられます。 選択ライブラリ: プロフェッショナル コースのスコアが100 を超える場合は第 1 レベルの候補ライブラリに入り、それ以外の場合は第 2 レベルの候補ライブラリに入りますので、対応する判定テーブルと決定ツリーを描画してください。

ここに画像の説明を挿入

1.2.3.4 デシジョンテーブルとデシジョンツリーを使用して、注文リストをチェックする処理ロジックを記述します。「金額が 1,000 元を超えているが有効期限が切れていない場合は、承認通知と船荷証券を発行します。金額が 2,000 元を超えているが有効期限が切れていない場合は、承認通知と船荷証券を発行します。」有効期限が切れている場合は承認は発行されません 船荷証券と船荷証券. 金額が2,000元未満の場合は、有効期限が切れているかどうかに関係なく、承認通知書と船荷証券が発行され、通知を発行する必要があります金額が2,000元未満で有効期限が切れている場合。

ここに画像の説明を挿入

1.2.3.5 ある工場では、一部の従業員を配置転換して勤務させる方針をとっている。20 歳未満の人は、中卒以上のパートタイムで勉強する必要がある。高卒者は電気技師、20歳から40歳まで、中卒の男性は整備士、女性は旋盤工、大卒者は技術者として働くことができます。40 歳以上の人は、中学校教育を受けた資材労働者として、また大学教育を受けた技術者として雇用されるべきです。上記の問題の処理ロジックを説明するには、デシジョン テーブルとデシジョン ツリーを使用してください。

ここに画像の説明を挿入

1.3 言語ツール

1.3.1 プロセス設計言語 PDL

2. プログラムの複雑さの定量的測定

  1. フロー グラフ内の線形独立領域の数は循環的複雑さに等しい
  2. フロー グラフの循環複雑度 V(G) G = E - N + 2。ここで、E はフロー グラフ内のエッジの数、N はノードの数です。
  3. フロー グラフの循環複雑度 V(G) G = P + 1。ここで、P はフロー グラフ内の決定ノードの数です。

おすすめ

転載: blog.csdn.net/weixin_51911075/article/details/128858144