このコラムはブロガーの個人的なメモであり、主な目的は、断片的な時間を利用してソフトエンジニアリングの知識ポイントを暗記することです、ここに宣言します!
記事ディレクトリ
3. オブジェクト指向設計が従うべき原則は何ですか? そして内容を簡単に説明すると
5. オブジェクト指向設計のヒューリスティック ルールは何ですか? 簡単な説明
8. 再利用可能なソフトウェアコンポーネントが持つべき特性は何ですか?
10. システムは多くのサブシステムに分解されますが、どのサブシステムがオブジェクト指向設計モデルに分解されますか?
11. サブシステム間の相互作用で考えられる 2 つのモードは何ですか?
12. サブシステムを完全なシステムに編成するための 2 つのオプションは何ですか?
1. オブジェクト指向設計 (OOD) とは何ですか?
オブジェクト指向設計 (OOD) は、オブジェクト指向の観点でソリューション ドメイン モデルを確立するプロセスであり、反復を繰り返すプロセスです。
2. 良いデザインの主な特徴は何ですか?
メンテナンスが簡単
3. オブジェクト指向設計が従うべき原則は何ですか? そして内容を簡単に説明すると
- モジュール化: プログラム全体を、単一のサブ機能を完了する、独立して名前が付けられ、独立してアクセス可能なモジュールに分割します。モジュール化を採用することで、ソフトウェア構造が明確になり、設計が容易になるだけでなく、読みやすく理解しやすくなり、ソフトウェア開発プロジェクトの組織化と管理が容易になります。
- 抽象化: 物事の詳細をとりあえず考えずに本質的な特徴を抽出し、設計を具体的な実装方法から切り離すこと。プログラム抽象化、データ抽象化、パラメータ抽象化を含む
- 情報の隠蔽: オブジェクトのカプセル化。テスト中およびその後のソフトウェアメンテナンス中の改訂を容易にする
- 弱結合: 相互作用結合継承結合を含む。相互作用の結合は緩く、継承の結合は緊密である必要があります
- 強い凝集性: サービスの凝集性、一般的な特殊な凝集性を含む。
- 再利用性: ソフトウェア開発の生産性とターゲットシステムの品質を向上させる重要な方法
4. 再利用とは何を意味しますか?
- 可能な限り既存のクラスを使用する
- 新しいクラスを作成する必要がある場合は、新しいクラスのプロトコルを設計するときに将来の再利用性を考慮してください。
5. オブジェクト指向設計のヒューリスティック ルールは何ですか? 簡単な説明
- 設計結果は明確で理解しやすいものである必要があります。設計結果を明確で読みやすく理解しやすいものにすることは、ソフトウェアの保守性と再利用性を向上させるための重要な手段です。
- 一般 - 特定の構造の深さは適切である必要があります。クラス階層には適切な数のレベルが含まれている必要があります。
- シンプルなクラスを設計する: 開発と管理を容易にするために、小さくてシンプルなクラスを設計するようにしてください。
- 単純なプロトコルを使用します。一般的に、メッセージには 3 つ以下のパラメータを含めるべきです。
- 単純なサービスを使用します。通常、ソース プログラムのステートメントは 3 ~ 5 行だけで、その機能は 1 つの動詞と 1 つの目的語のみを含む単純な文で記述できます。
- 設計変更を最小限に抑える: 設計変更が必要な場合でも、変更範囲を可能な限り小さくする
6. ソフトウェア再利用の階層?
7. 再利用できるソフトウェアコンポーネントはありますか?
- プロジェクト計画
- 原価見積
- 建築
- 要件モデルと仕様
- デザイン
- ソースコード
- ユーザードキュメントと技術ドキュメント
- ユーザーインターフェース
- データ
- テストケース
8. 再利用可能なソフトウェアコンポーネントが持つべき特性は何ですか?
- モジュールの強力な独立性
- プラスチック性の高い
- インターフェースは明確、簡潔、そして信頼性が高い
9. クラスコンポーネントの再利用方法は何ですか?
- インスタンスの再利用 (最も基本的な)
- 継承の再利用
- ポリモーフィックな再利用
[注意]: クラスコンポーネントは再利用するのに最適な方法です。
10. システムは多くのサブシステムに分解されますが、どのサブシステムがオブジェクト指向設計モデルに分解されますか?
- 人間とコンピュータの対話サブシステム
- 問題ドメインサブシステム
- タスク管理サブシステム
- データ管理サブシステム
11. サブシステム間の相互作用で考えられる 2 つのモードは何ですか?
- 顧客とサプライヤーの関係
- 対等なパートナーシップ
12. サブシステムを完全なシステムに編成するための 2 つのオプションは何ですか?
- 水平階層
- 縦型ブロック組織
13. タスク管理サブシステムの役割は何ですか?
タスクが完了するようにスケジュールされている順序
14. 可能な関連付け方法は 2 つありますか?
- 一方向の横断
- 双方向トラバーサル
[注意]:プロトタイピングによりソフトウェアを開発する場合、関連付けは双方向である必要があります。
章の最後にまとめ
オブジェクト指向設計は、オブジェクト指向の観点でソリューション空間モデルを確立するプロセスです。オブジェクト指向分析によって得られた問題領域モデルは、解決空間モデルを確立するための強固な基盤を築きました。分析と設計は本質的に反復のプロセスであり、オブジェクト指向分析とオブジェクト指向設計の間の境界は特に曖昧です。
優れた設計とは、優れた設計結果を得るために、 ターゲット システムのライフ サイクル全体における総コストを最小限に抑える設計です。いくつかの基本的なガイドラインに従う必要があります。この章では、オブジェクト指向設計の原則とオブジェクト指向の法則の固有の特性を組み合わせて説明し、設計の品質を向上させるのに役立ついくつかのヒューリスティック ルールを紹介します。
再利用はソフトウェアの生産性と目標システムの品質を向上させる重要な方法であり、基本的には設計から始まります。この章では、オブジェクト指向手法の特徴と組み合わせて、ソフトウェアの再利用をより包括的に紹介し、クラス コンポーネントの再利用の技術について重点的に説明します。
オブジェクト指向によるソフトウェアの設計は、原則として全体設計(システム設計)、次に詳細設計(オブジェクト設計)を行いますが、当然その境界は非常に曖昧で、実際には反復を繰り返します。
ほとんどの解空間モデルは論理的に 4 つの部分で構成されます。この章では、問題領域サブシステム、人間とコンピュータの対話サブシステム、タスク管理サブシステム、およびデータ管理サブシステムのそれぞれの設計方法について説明します。さらに、クラス内でのサービスの設計方法と関連付けを実現するための戦略についても説明します。
通常、設計作業を開始する前に、システムのさまざまな品質指標の相対的な重要性を注意深く分析し、慎重に比較検討して、適切なシステム目標を策定する必要があります。設計プロセスでは、確立されたシステム目標に従って、必要な最適化作業を実行します。
次の章:ソフトウェアエンジニアリング—第 12 章 ナレッジポイントのオブジェクト指向実装
繰り返し、地に足を着いて、決して忘れることなく、響き渡るでしょう!