【ソフトウェアエンジニアリング総復習】第5章 全体設計(概念・原理)

(穴埋め)通常、全体の設計プロセスは、システムの具体的な実装計画を決定するシステム設計段階と、ソフトウェアの構造を決定する構造設計段階の 2 つの主要な段階で構成されます。一般的な全体的な設計プロセスには 9 つのステップが含まれます: 代替ソリューションの想像、妥当なソリューションの選択、最適なソリューションの推奨、機能分解、ソフトウェア構造の設計、データベースの設計、テスト計画の指定

1. ソフトウェア設計手順 (空白を埋める)

エンジニアリングマネジメントの観点から見ると、ソフトウェアの設計は全体設計(概要設計)と詳細設計の2段階で完了します。

2. ソフトウェア設計フェーズのタスク (空白を埋める)

1. モジュールを分割してソフトウェア構造を決定する
開発手法が異なれば、ソフトウェア構造の決定方法も異なります。たとえば、SD 法では、階層化された DFD 図から初期構造図を導出し、その後、初期構造図を改良して最終構造図を取得します。
これには通常、システムのソフトウェア構造の決定、モジュールの分解、システムのモジュール間の階層関係の決定が含まれます。
2. システムのデータ構造を決定する
データ構造の確立は、情報システムにとって特に重要です。データの種類、構成、アクセス方法、関連度、処理方法を決定する必要があります。
3. モジュール内のアルゴリズムを決定します。
4. ユーザー インターフェイスを設計します
。 ユーザー インターフェイスは、ヒューマン マシン インターフェイスとしてますます重要な役割を果たしており、ソフトウェアの寿命に直接影響します。

3. ソフトウェア設計プロセス (空白を埋める)

1. 代替ソリューションを考案する
2. 合理的なソリューションを選択する
3. 最適なソリューションを推奨する
4. 機能分解 5.
ソフトウェア構造を設計する 6.
データベースを設計する
7. テスト計画を作成する
8. ドキュメントを作成する
9. レビューとレビュー

3. モジュール化とは(名詞説明)(システムの複雑さを軽減)

モジュールは、境界要素によって定義された一連の隣接するプログラム要素です。
モジュール化とは、プログラムを独立して名前が付けられ、独立してアクセスできるモジュールに分割することです。各モジュールはサブ機能を完了します。これらのモジュールは統合されて全体を形成し、指定された機能を完了できます。ユーザーのニーズに応える機能を搭載しています。

3.1 モジュール化の目的 - システム

3.2 モジュール化のメリット - 開発効率の向上

4. 抽象化

人間が複雑な現象を理解する過程で使用する最も強力な思考ツールは抽象化です。人々は、現実世界の特定の物事、状態、プロセスの間には、常にいくつかの類似点 (共通性) があることを実際に認識しています。これらの類似した側面を集中して一般化し、それらの違いを一時的に無視することは抽象化です。

5. 段階的な改良

段階的な改良は、人間が複雑な問題を解決するために採用する基本的な方法であり、多くのソフトウェア エンジニアリング手法の基礎でもあります。

6. 情報の隠蔽とローカリゼーション — 結束力と独立性の強化

情報隠蔽は、モジュールに含まれる情報が、その情報を必要としないモジュールからアクセスできないようにモジュールを設計および決定する必要があることを指摘します。

ローカリゼーションとは、密接に関連するソフトウェア要素を物理的に互いに近くに配置することを指します。

7. モジュールの独立性の測り方(名詞説明)

強い独立性、高い凝集性、低い結合性
モジュールの独立性とは、ソフトウェア システム内の各モジュールが、ソフトウェアに必要な特定のサブ機能のみを含むことを意味します。モジュールの独立性とは、各モジュールがシステムに必要な独立したサブ機能のみを実行し、他のモジュールとの接続が最小限で、インターフェイスが最も単純であることを意味します。モジュールの独立性を測定する基準は、結合と凝集です。(低結合、高凝集)

7.1 カップリング

7.1.1 コンセプト

結合は、ソフトウェア構造内の異なるモジュール間の相互接続の度合いを示す尺度です (結合とは、ソフトウェア構造内のモジュールが互いに接続されている度合いを指し、モジュール間の相互接続性の尺度です)。

7.1.2 タイプ

  1. コンテンツ: 2 つの部分のコンテンツは重複/共有しており、一方のモジュールは他方のモジュールの内部データに直接アクセスします。
    モジュールは通常の入口を通って別のモジュールの内部に入ることができません。
    モジュールには複数のエントリがあります。
    2 つのモジュールにはコードが一部重複しています。
  2. Common: モジュールのグループがすべて同じ共通データ環境にアクセスする場合
  3. 特徴: データ構造全体がパラメータとして渡され、呼び出されるモジュールにはデータ要素の一部のみが必要です。
  4. 制御: モジュールがスイッチ、ロゴ、名前などの情報を渡す場合、別のモジュールの機能の選択を明確に制御できます。
  5. データ: パラメータを介して 2 つのモジュール間で情報が受け渡される場合、情報は制御パラメータではなくデータ パラメータに限定されます。
  6. 間接: モジュール間に直接の関係がない場合、モジュールは相互に依存せずに独立して動作します。高から低への
    結合

7.2 凝集性

7.2.1 コンセプト

凝集度は、モジュール内の各要素が互いにどの程度緊密に結合されているかを示します (凝集度は、モジュール内のさまざまなデータとさまざまなプロセスの間の接続の度合いを示し、機能的な観点からモジュール間の接続を測定します)。

7.2.2 タイプ

  1. カジュアル: モジュール内のパーツ間に接続はありません。

  2. ロジック: このモジュールは関連するいくつかの機能を組み合わせ、送信モジュールの判断パラメータによってどの機能を実行するかを決定します。

  3. 時間: モジュール内のタスクは同じ時間内に完了する必要があります (モジュールの初期化など)。
    凝集力が低い

  4. プロセス: モジュールの各部分は相互に関連しており、特定の順序で実行する必要があります。

  5. 通信: モジュール内のコンポーネントはデータ構造の同じ領域で動作します
    中間の凝集度

  6. シーケンス: モジュール内の各処理コンポーネントは特定の機能に関連しており、各処理コンポーネントは順番に実行する必要があります。

  7. 機能: モジュール内の各コンポーネントは、特定の機能を完了するために不可欠な部分です。
    高度な凝集力

結束力
は弱いものから強いものへ

8. ヒューリスティックルール (理解) (真または偽)

モジュールは多いほど良い (False)
モジュールは少ないほど良い (False)
適切なサイズ (True)
モジュール インターフェイスの複雑さを軽減し、モジュールの独立性を向上させる (True)
スコープは制御ドメイン内である必要がある (True)

  1. モジュール内の各コンポーネントは、特定の機能を完了するために不可欠な部分です
  2. 深さ、幅、ファンインとファンアウトはすべて適切である必要があります
  3. モジュールインターフェイスの複雑さを軽減するよう努めます
  4. モジュールのサイズは適度である必要があります
  5. モジュールのスコープは制御ドメイン内にある必要があります
  6. 入口と出口が 1 つずつあるモジュールを設計する
  7. モジュールの機能は予測可能である必要があります

9. ソフトウェア構成図SC

9. 変換分析(理解)(テストはあまりしない)

10.物事の分析(理解)(テストはあまりしない)

おすすめ

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