このコラムはブロガーの個人的なメモであり、主な目的は、断片的な時間を利用してソフトエンジニアリングの知識ポイントを暗記することです、ここに宣言します!
記事ディレクトリ
14. オブジェクト指向手法を使用してソフトウェアを開発する場合、通常、確立する必要がある 3 つのモデルはどれですか? どのモデルが最も重要ですか?
16. オブジェクト モデルの構築にはどのような方法が使用されますか?
17. クラス間の関係は何ですか? それぞれの定義は何ですか?
21. 機能モデルの役割は何ですか? 通常、それは何で構成されていますか?
25. ユースケース図におけるユースケース間の関係は何ですか?
26. オブジェクトモデル、動的モデル、機能モデルの関係は何ですか?
1. 現在最高のソフトウェア開発技術は何ですか?
オブジェクト指向技術
2. オブジェクト指向の原則は何ですか?
原則は、問題を説明する問題ドメインの構造と、解決策を実装する解決ドメインの構造を可能な限り一致させることです。
3. なぜ人は客観的な世界の実体を抽象化するのでしょうか?
人々は客観的な世界の実体を問題領域のオブジェクトに抽象化します
4. ソフトウェア システムとは本質的に何ですか?
ソフトウェア システムは本質的に情報処理システムです。
5. オブジェクト指向手法の利点は何ですか?
- 人間の習慣的な考え方と一致している
- 良い安定性
- 再利用性が良い
- 大規模なソフトウェア製品の開発が容易になる
- メンテナンス性が良い
6. オブジェクトの定義は何ですか?
オブジェクトは同じ状態を持つ一連の操作のコレクションであり、オブジェクトはプロパティ値と操作のカプセル化です。
7. オブジェクトの特徴は何ですか?
- データ中心
- オブジェクトはアクティブです
- データのカプセル化を実装
- 本質的に平行
- 優れたモジュール独立性
8. クラスの定義は何ですか?
クラスは、同じデータと同じ操作を持つ類似したオブジェクトのグループの定義です。
9. インスタンスとは何ですか?
インスタンスは、特定のクラスによって記述される具体的なオブジェクトの定義です。
10. 属性は何ですか?
属性とはクラス内で定義されたデータです
11. パッケージは何ですか?
カプセル化は情報隠蔽でもあり、これによってオブジェクトの実装の詳細が外界から隠蔽されます。
12. 継承とは何ですか?
継承とは、既存のプロパティと特性を繰り返し定義することなく直接取得できる機能を指します。
13. オーバーロードと書き換えの違いは何ですか?
オーバーロード機能:
- オーバーロードは、コンパイラがメソッド内の仮パラメータの静的型を通じて呼び出しメソッドのバージョンを決定するプロセスです。
- オーバーロードは、コンパイル時のポリモーフィズムの現れです。
- 判定条件:メソッド名が同じで仮パラメータリストが異なる
書き換え機能:
- 書き換えメソッドの実行中、呼び出し元の実際の型を使用して、呼び出されるメソッドのバージョンが決定されます。
- オーバーライドは表示可能なインスタンス メソッドでのみ発生します
書き換えはルールを満たします: 2 つは同じ、2 つは小さい、1 つは大きい
- 2 つ同じ:メソッド名と仮パラメータ リストが同じです
- 小さな 2 つ: オーバーライドされたメソッドの戻り値 (参照型) とスローする例外は、オーバーライドされたメソッドの戻り値の参照型と同じである必要があります)、およびスローする例外またはそのサブクラス
- 1 つ大きな点: オーバーライドするメソッドのアクセス修飾子が、オーバーライドされるメソッドのアクセス修飾子以上であること
[注]: オーバーロードと書き換えは両方ともポリモーフィズムの形式です
14. オブジェクト指向手法を使用してソフトウェアを開発する場合、通常、確立する必要がある 3 つのモデルはどれですか? どのモデルが最も重要ですか?
通常、オブジェクトモデル、動的モデル、機能モデルを確立する必要があります
その中で、オブジェクト モデルは常に最も重要であり、基本的であり、核心です。
15. オブジェクトモデルの役割は何ですか?
オブジェクト モデルは静的で構造化されたシステム データを記述し、動的で機能的なモデルを構築するための実質的なフレームワークを提供します。
16. オブジェクト モデルの構築にはどのような方法が使用されますか?
UML のクラス図
17. クラス間の関係は何ですか? それぞれの定義は何ですか?
アソシエーション: アソシエーションとは、2 つのクラスのオブジェクト間に何らかの意味的なつながりがあることを意味します。
一般化(継承): 継承関係です。
依存関係: クラスは別のクラスのオブジェクトを操作の引数として使用し、クラスは別のクラスのオブジェクトをそのデータ メンバーとして使用します。
洗練:同じものを異なる抽象レベルで説明する
18. 集約(集計)と一般化の違いは何ですか?
- 集約 (集約) は関連付けの特殊なケースです。一般化とは、一般的な要素が消えると特定の要素も消えることを意味しますが、集約とは、特定の要素がまだ存在する一方で一般的な要素が消えることを意味します
- 集約ロジックには があり、一般化ロジックには があり、結合ロジックには が含まれます
- アグリゲーションは共有アグリゲーションと結合アグリゲーションに分けられますが、一般的にアグリゲーションとコンビネーションと呼ばれます。
19. 集約と合成の主な違いは何ですか?
集合関係とは、全体が消えても部分はまだ存在するという関係です。提案グループや先生など
全体が消えれば部分もなくなるという構図です。人間や人体の臓器など
20. 状態図の役割は何ですか?
状態図は、オブジェクトの状態、状態遷移を引き起こすイベント、およびオブジェクトの動作を表すために使用されます。
21. 機能モデルの役割は何ですか? 通常、それは何で構成されていますか?
機能モデルは、変化するシステムの「機能的」性質を表し、システムが「行うべき」ことを指定するため、ターゲット システムに対するユーザーのニーズをより直接的に反映します。通常、機能モデルは一連のデータ フロー図で構成されます。
22. ユースケース図に含まれるモデル要素は何ですか?
システム、アクター、ユースケース、およびユースケース間の関係
23. ユースケース図のユースケースとは何ですか?
ユースケースは、その機能を使用する特定のインスタンスではなく、機能のクラスを表すクラスです。
24. ユースケース図のアクターとは何ですか?
アクターは、システムと対話する人またはその他のシステムであり、外部エンティティを表します。アクターは、特定の人や物ではなく役割を表します。
25. ユースケース図におけるユースケース間の関係は何ですか?
関係の拡張: ユースケースにいくつかのアクションを追加すると、別のユースケースが構成されます
使用関係: つまり、あるユースケースが別のユースケースを使用します。
[ヒント]: 本書のユース ケース図では拡張と使用関係のみが示されていますが、正式な UML 図では包含関係も示されています。インクルードと使用は非常に似ています。したがって、多くの図に関係を描くときは、中国語の単語「拡張」と「使用」を使用する代わりに、「拡張」と「包含」を使用してこれら 2 つの関係を表現します。
【判断力】:拡張 拡張機能は削除してもシステムの動作に影響はありません。ただし、include 関数を削除するとシステムが正常に動作しなくなります。
次の写真を例にとると、バルク飲料の販売機能が利用できない場合でも、自動販売機は他のボトル入り飲料を通常どおり販売します。しかし、「機械を開ける」というアクションが削除されてしまうと、配達は完了できません。
26. オブジェクトモデル、動的モデル、機能モデルの関係は何ですか?
- クラスインスタンスのライフサイクルまたはランタイムを記述するクラスごとに確立された動的モデル
- 状態遷移は、データ フロー図のプロセスとユース ケース図のユースケースにマッピングされる動作を駆動します。これは、クラス図のサービスにも対応します。
- 機能モデルの処理は、オブジェクトモデルのクラスが提供するサービスに対応します。
- ユースケース図内のアクターは、オブジェクト モデル内のオブジェクトである場合があります
- 機能モデルでの処理により、動的モデルでイベントが生成される場合があります
章の最後にまとめ
近年、オブジェクト指向手法への注目が高まっており、特にこの手法を使って大規模なソフトウェア製品を開発する場合、製品は互いに独立した一連の小さな製品から構成されているとみなすことができます。開発作業の技術的な難しさを軽減するだけでなく、開発作業の管理も容易になります。したがって、大規模なソフトウェア製品の場合、オブジェクト指向パラダイムは明らかに構造化パラダイムより優れています。さらに、オブジェクト指向パラダイムを使用すると、安定性、再利用性、保守性が良好なソフトウェアを開発できます。これは、オブジェクト指向手法の優れた利点です。
オブジェクト指向方法論は、客観的な世界を理解するための人間の考え方を自然にシミュレートします。それが追求する目標と従う基本原則は、問題を記述するための問題空間と問題を解決するための解決空間をコンピューター内に作成することです。可能な限り構造的に全会一致で。
オブジェクト指向の方法論では、客観的な世界はオブジェクトで構成されていると考えられます。すべてはオブジェクトであり、それぞれのオブジェクトには独自の内部状態と運動法則があり、さまざまなオブジェクトがメッセージを通じて相互作用し、接続することで、人々が分析および構築したいシステムを形成します。システム内のすべてのオブジェクトは、特定のオブジェクト クラスに属します。クラスは、同じプロパティと動作を持つ類似したオブジェクトのグループの定義です。多くのクラスは、サブクラスと親クラスの関係に応じてさらに階層化され、特別な記述を追加しなければ、次のレベルのクラスは前のレベルのクラスを自動的に継承することができます。 。
オブジェクト指向の視点でシステム モデルを確立すると、システムの理解を促進および深めることができ、理解しやすく保守しやすいソフトウェアの開発に役立ちます。通常、人々は 3 つの異なる、しかし密接に関連した観点から 3 つの異なるモデルを構築します。それらはそれぞれ、システムの静的構造を記述するオブジェクト モデル、システムの制御構造を記述する動的モデル、およびシステムのコンピューティング構造を記述する関数モデルです。その中でも、オブジェクト モデルは最も基本的であり、核心であり、最も重要です。
統一モデリング言語 UML は、国際オブジェクト管理組織 OMG によって承認されたオブジェクト指向技術に基づく標準モデリング言語です。通常、UMLクラス図を使用してオブジェクト モデルを確立し、UML状態図を使用して動的モデルを確立し、データ フロー図または UML ユース ケース図を使用して関数モデルを確立します。UMLでは、ユースケース図を用いて構築されたシステムモデルをユースケースモデルと呼びます。
この章で説明するオブジェクト指向の手法と定義された概念とシンボルは、ソフトウェア開発プロセス全体に適用できます。ソフトウェア開発者は、構造解析や設計手法を使用するなど、開発プロセスのさまざまな段階で概念やシンボルを変換する必要がありません。実際、オブジェクト指向手法でソフトウェアを開発する場合、その段階分けは非常に曖昧で、通常、分析、設計、実装の各段階を何度も繰り返すことになります。
次の章:ソフトウェアエンジニアリング—第 10 章 オブジェクト指向分析の知識ポイントの整理
繰り返し、地に足を着いて、決して忘れることなく、響き渡るでしょう!