ソフトウェアエンジニアリング——第6章 詳細な設計知識のポイント整理

このコラムはブロガーの個人的なメモであり、主な目的は、断片的な時間を利用してソフトエンジニアリングの知識ポイントを暗記することです、ここに宣言します!

記事ディレクトリ

1. 詳細設計段階の基本的な目的は何ですか?

2. 詳細設計の仕事?

3. 詳細設計の結果状況は?プログラムの品質を測定するにはどうすればよいですか?

4. 構造プログラミングの本質とは何ですか?

5. ヒューマンマシンインターフェースの設計で遭遇する可能性のある問題は何ですか?

6. ユーザーインターフェイスデザインのプロセスは何ですか?

7. HMI 設計のガイドラインは何ですか?

8. プロセス設計ツールとは何ですか?

9. プログラムのフローチャートは何ですか?

10. プログラム フローチャートの主な利点は何ですか?

11. プログラム フローチャートの主な欠点は何ですか?

12. ボックス図(NS図)の特徴は何ですか?

13. PAD図とは何ですか?

14. PAD図の利点は何ですか?

15. 判定表の適用シナリオは何ですか?

16. 判定表はどのような部分で構成されていますか? それらは何を表しているのでしょうか?

17. デシジョンツリーの長所と短所は何ですか?

18. プロセス設計言語 (PDL) とは何ですか?

19. PDL の利点は何ですか?

20. PDL の欠点は何ですか?

21. 最も有名な 2 つのデータ構造指向の設計手法は何ですか?

22. ジャクソンメソッドの 5 つのステップとは何ですか?

23. プログラムの複雑さを定量的に測定する方法の役割は何ですか?

24. プログラムの複雑さを定量的に測定する方法は何ですか?

25. フローグラフの役割は何ですか?

26. 循環複雑度 V(G) を計算する方法は何ですか?

27. 循環的複雑性は何に役立ちますか?

28. 詳細設計の基本原則は何ですか?

29. 構造化された判断方法?

章の最後にまとめ


1. 詳細設計段階の基本的な目的は何ですか?

必要なシステムをどのように実装するかを正確に決定する

2. 詳細設計の仕事?

  1. プロセス設計:各モジュールに含まれるアルゴリズム
  2. データ設計: ソフトウェアに必要なデータ構造
  3. インターフェース設計:各モジュール間の通信方式

【注意】詳細設計段階の仕事は、具体的にプログラムを書くことではなく、プログラムの「設計図」を設計することです。

3. 詳細設計の結果状況は?プログラムの品質を測定するにはどうすればよいですか?

最終的なプログラムコードの品質は基本的に詳細設計の結果によって決まります。

プログラムコードの品質は、ロジックが正しいかどうか、パフォーマンスが要件を満たしているかどうかだけでなく、さらに重要なのは、読みやすく理解しやすいかどうかによって決まります。

4. 構造プログラミングの本質とは何ですか?

        構造的プログラミングは本質的にGOTO ステートメントを使用しないプログラミング手法ではなく、プログラムコードを読みやすく理解しやすくするプログラミング手法です。構造プログラミングは、できるだけ少ない GOTO ステートメントを使用する方法です。

5. ヒューマンマシンインターフェースの設計で遭遇する可能性のある問題は何ですか?

  1. システムの応答時間
  2. ユーザーヘルプ対策
  3. エラーメッセージの処理
  4. コマンドインタラクション

6. ユーザーインターフェイスデザインのプロセスは何ですか?

        ユーザー インターフェイスの設計は反復的なプロセスであり、ユーザー インターフェイスのプロトタイプが構築されたら、それがユーザーのニーズを満たしているかどうかを判断するために評価する必要があります。

7. HMI 設計のガイドラインは何ですか?

  1. 一般的なインタラクティブ ガイド
  2. 情報表示ガイド
  3. データ入力ガイドライン

8. プロセス設計ツールとは何ですか?

プログラムの処理過程を記述するツールをプロセス設計ツールと呼び、グラフィックス、テーブル、言語の3つに分類されます。

9. プログラムのフローチャートは何ですか?

プログラムブロック図とも呼ばれるプログラム フローチャートは、プロセス設計を記述する最も古く、最も広く使用されている方法です。

10. プログラム フローチャートの主な利点は何ですか?

プログラム フローチャートの主な利点は、制御フローの描写が非常に直感的であり、初心者でも理解しやすいことです。

11. プログラム フローチャートの主な欠点は何ですか?

  1. プログラム フローチャートは、プログラマーがプログラムのグローバル構造ではなくプログラムの制御フローについて時期尚早に考えてしまうため、本質的に段階的に改良するための良いツールではありません。
  2. プログラム フロー図の矢印は制御の流れを表しているため、プログラマはプログラム設計の精神を完全に無視して、自由に制御を移すことができます。
  3. プログラムのフローチャートはデータ構造を表現するのが難しい

12. ボックス図(NS図)の特徴は何ですか?

  1. ボックス図から一目で分かる機能ドメインが明確
  2. 自由に制御を移すことは不可能
  3. ローカルデータとグローバルデータを簡単にスコープ設定
  4. 入れ子関係を表現しやすく、モジュールの階層構造も表現できる

13. PAD図とは何ですか?

        PAD図は問題分析図(問題分析図)であり、プログラムの制御の流れを二次元の木構造図で表現したもので、プログラムコードへの変換が容易です。

14. PAD図の利点は何ですか?

  1. 構造化制御構造の PAD 表記を使用して設計されたプログラムは、必然的に構造化プログラムになります。
  2. PAD図に示されたプログラム構造は非常に明確です
  3. PAD 図を使用してプログラム ロジックを表現し、読みやすく、理解しやすく、覚えやすくします。
  4. PAD図を高級言語ソースプログラムに簡単に変換できます。この変換はソフトウェアツールを使用して自動的に実行できるため、ソフトウェアの信頼性とソフトウェアの生産性が向上します。
  5. プログラムロジックの表現とデータ構造の記述の両方に使用できます。
  6. PAD 図の表記法は、トップダウンの段階的な改良方法の使用をサポートします。

15. 判定表の適用シナリオは何ですか?

アルゴリズムに複数のネストされた条件付き選択肢が含まれる場合

16. 判定表はどのような部分で構成されていますか? それらは何を表しているのでしょうか?

デシジョンテーブルは 4 つの部分で構成されます

左上: すべての条件がリストされていることを示します

左下: 可能なすべてのアクションを示します

右上:さまざまな条件の組み合わせを表すマトリックス

右下:各条件の組み合わせに対応する動作を示します

17. デシジョンツリーの長所と短所は何ですか?

利点: シンプルな形状、説明書不要、握りやすく使いやすい

短所:単純性が悪く、同じ値を複数回書き込む必要があることが多く、リーフの終端に近づくほど繰り返しが多くなります。

18. プロセス設計言語 (PDL) とは何ですか?

擬似コード        とも呼ばれる手続き型設計言語 (PDL) は、ある言語の語彙を使用しながら別の言語の構文を使用する「ハイブリッド」言語です

19. PDL の利点は何ですか?

  1. ソースプログラムの途中にコメントとして直接挿入可能
  2. 通常のテキスト編集プログラムやワードプロセッサ システムを使用して、PDL の作成と編集を簡単に完了できます。
  3. PDLを自動処理するプログラムは既に存在しており、PDLからプログラムコードを自動生成することも可能

20. PDL の欠点は何ですか?

グラフィカルツールほど直観的ではない

21. 最も有名な 2 つのデータ構造指向の設計手法は何ですか?

ジャクソン法とワーニア法

22. ジャクソンメソッドの 5 つのステップとは何ですか?

  1. 入力データと出力データの論理構造を分析して決定し、ジャクソン図を使用してこれらのデータ構造を記述します
  2. 入力データ構造と出力データ構造で対応するデータユニットを検索します。
  3. プログラム構造を表すジャクソン グラフは、データ構造を表すジャクソン グラフから派生します。
  4. すべての操作と条件をリストし、プログラム構造図の適切な場所に割り当てます。
  5. 疑似コードのプログラム

23. プログラムの複雑さを定量的に測定する方法の役割は何ですか?

  1. ソフトウェアのバグの数とソフトウェアの開発に必要な労力を見積もる
  2. 定量的測定の結果を使用して、2 つの異なる設計または 2 つの異なるアルゴリズムの長所と短所を比較できます。
  3. プログラムの複雑さの定量的な測定は、モジュール サイズの正確な制限として使用できます。

24. プログラムの複雑さを定量的に測定する方法は何ですか?

マッケイブ法とハルステッド法

25. フローグラフの役割は何ですか?

フロー図はプログラムの制御の流れを表現するだけであり、任意の方法で表現されたプロセス設計結果をフロー図に変換することができます。

26. 循環複雑度 V(G) を計算する方法は何ですか?

  1. V(G)=フロー グラフ内の線形独立領域の数
  2. V(G)=E-N+2、E はフロー グラフ内のエッジの総数、N はノードの数
  3. V(G)=P+1、P はフロー グラフ内の決定ノードの数です。

[注] 上図のフローグラフは一例であり、フローグラフの循環複雑度は4です。

27. 循環的複雑性は何に役立ちますか?

循環的複雑さはテストの難易度の定量的な尺度であり、ソフトウェアの信頼性についての予測を与えることもできます。

28. 詳細設計の基本原則は何ですか?

  1. アルゴリズムを説明するために適切な図とツールを選択する
  2. アルゴリズムの説明は正確で、信頼性があり、明確で理解しやすいものでなければなりません
  3. 構造化プログラミングアプローチを採用する
  4. 複雑さを軽減する

29. 構造化された判断方法?

複数の出口が構造化されていない場合、ループ内に存在できる出口は 1 つだけです

章の最後にまとめ


        詳細設計段階の重要なタスクは、ユーザーが必要とするソフトウェア システムをどのように実装するかを決定することです。それはプログラムの「設計図」を設計することです。詳細設計段階ではソフトウェアの信頼性を確保するだけでなく、将来作成されるプログラムの読みやすさ、理解しやすさ、テストのしやすさ、修正やメンテナンスのしやすさが最も重要な目標となります。構造プログラミング技術は、上記の目標を達成するための基本的な保証であり、詳細設計の論理的基盤です。
        ヒューマン マシン インターフェイスの設計は、インターフェイス設計の重要な部分です。インタラクティブ システムの場合、ヒューマン コンピューター インターフェイスの設計は、データ設計、アーキテクチャ設計、プロセス設計と同じくらい重要です。ヒューマン マシン インターフェイスの品質は、ソフトウェア製品のユーザーの受け入れに直接影響するため、マン マシン インターフェイスの設計には十分な注意を払う必要があります。ヒューマン マシン インターフェイスを設計するプロセスでは、システムの応答時間、ユーザー アシスタンス機能、エラー メッセージの処理、およびコマンドの対話という4 つの設計上の問題に十分な注意を払い、慎重に対処する必要があります。ヒューマン マシン インターフェイスの設計は反復的なプロセスです。通常、最初に設計モデルが作成され、次にその設計モデルがプロトタイプで実現され、そのプロトタイプがユーザーによって試して評価され、その後プロトタイプが仕様に従って修正されます。ユーザーが満足するまでユーザーの意見を取り入れます。ヒューマン・コンピュータ・インターフェースを設計する過程で人々が蓄積した経験を要約すると、ユーザー・インターフェース設計に関するいくつかのガイドラインが得られ、これらのガイドラインに注意深く従うことは、フレンドリーで効率的なヒューマン・コンピュータ・インターフェースを設計するのに役立ちます。
        プロセス設計は、データ設計、アーキテクチャ設計、インターフェース設計が完了した後に行われ、問題を解決するための詳細な手順(つまりアルゴリズム)を設計することが主な作業です。詳細設計の段階で。プロセス設計のツールは、グラフィック、テーブル、言語の 3 つのカテゴリに分類でき、これら 3 種類のツールにはそれぞれ利点があり、読者はニーズに応じて適切なツールを選択できるはずです。

        多くのアプリケーション分野では、情報は明確な階層構造を持っており、そのようなアプリケーションシステムを開発する際には、データ構造指向の設計手法を使用してプロセス設計を完了できます。この章では、Jackson 構造プログラミング技術を例として、データ構造指向の設計手法について予備的に紹介します。この方法を使用して実際の問題を解決するには、関連するモノグラフをさらに研究する必要があります。循環的複雑度は
、プログラムの複雑さを定量的に測定する         ために使用できます。実際には、循環的複雑度V(G)=10 がモジュール サイズの妥当な上限であることが示されています。

次の章ソフトウェアエンジニアリング—第 7 章 知識ポイントの実現

繰り返し、地に足を着いて、決して忘れることなく、響き渡るでしょう!

おすすめ

転載: blog.csdn.net/qq_52487066/article/details/131397359