Object-oriented-analysis-design-ooad-object-oriented-paradigm
OOAD-オブジェクト指向のパラダイム
簡単な歴史
オブジェクト指向のパラダイムは、新しいプログラミングアプローチの最初のコンセプトから形になりましたが、設計と分析の手法への関心はずっと後になりました。
- 最初のオブジェクト指向言語は、1960年にノルウェーコンピューティングセンターの研究者によって開発されたSimula(実システムのシミュレーション)でした。
- 1970年、アランケイと彼のゼロックスパークの研究グループは、Dynabookという名前のパーソナルコンピューターと、Dynabookをプログラミングするための最初の純粋なオブジェクト指向プログラミング言語(OOPL)であるSmalltalkを作成しました。
- 1980年代、Grady Boochは、主にプログラミング言語Adaの設計を提示したObject Oriented Designという論文を発表しました。 その後のエディションでは、彼はアイデアを完全なオブジェクト指向設計方法に拡張しました。
- 1990年代、Coadは行動指向のアイデアをオブジェクト指向のメソッドに組み込みました。
その他の重要な革新は、James RumbaughによるObject Modeling Techniques(OMT)とIvar JacobsonによるObject-Oriented Software Engineering(OOSE)です。
オブジェクト指向分析
オブジェクト指向分析(OOA)は、相互作用するオブジェクトで構成されるソフトウェアシステムのオブジェクトモデルに関して、ソフトウェアエンジニアリング要件を特定し、ソフトウェア仕様を開発する手順です。
オブジェクト指向分析と他の形式の分析の主な違いは、オブジェクト指向アプローチでは、データと機能の両方を統合するオブジェクトを中心に要件が編成されることです。 それらは、システムが対話する実世界のオブジェクトをモデルにしています。 従来の分析方法では、2つの側面-機能とデータ-は別々に考慮されます。
Grady BoochはOOAを「オブジェクト指向分析とは、問題領域の語彙に見られるクラスとオブジェクトの観点から要件を調べる分析方法」と定義しています。
オブジェクト指向分析(OOA)の主なタスクは次のとおりです-
- オブジェクトを識別する
- オブジェクトモデル図を作成してオブジェクトを整理する
- オブジェクトの内部、またはオブジェクト属性の定義
- オブジェクトの動作、つまりオブジェクトアクションの定義
- オブジェクトの相互作用を説明する
OOAで使用される一般的なモデルは、ユースケースとオブジェクトモデルです。
オブジェクト指向設計
オブジェクト指向設計(OOD)には、オブジェクト指向分析中に作成された概念モデルの実装が含まれます。 OODでは、技術に依存しない分析モデルの概念が実装クラスにマッピングされ、制約が識別され、インターフェイスが設計されます。その結果、ソリューションドメインのモデル、つまりシステムの詳細な説明が作成されます。具体的な技術に基づいています。
実装の詳細は一般的に含まれています-
- クラスデータの再構築(必要な場合)、
- メソッドの実装、つまり内部データ構造とアルゴリズム、
- 制御の実装、および
- 関連付けの実装。
Grady Boochは、オブジェクト指向設計を「設計中のシステムの論理モデルと物理モデル、静的モデルと動的モデルの両方を描くためのオブジェクト指向分解プロセスと表記法を含む設計方法」と定義しています。
オブジェクト指向プログラミング
オブジェクト指向プログラミング(OOP)は、モジュール性と再利用性の利点を取り入れることを目的とする(データとメソッドの両方を備えた)オブジェクトに基づくプログラミングパラダイムです。 通常はクラスのインスタンスであるオブジェクトは、相互作用してアプリケーションやコンピュータープログラムを設計するために使用されます。
オブジェクト指向プログラミングの重要な機能は次のとおりです-
- プログラム設計におけるボトムアップアプローチ
- オブジェクトを中心に編成され、クラスにグループ化されたプログラム
- オブジェクトのデータを操作するメソッドでデータに焦点を当てる
- 関数を介したオブジェクト間の相互作用
- 既存のクラスに機能を追加して新しいクラスを作成することによる設計の再利用性
オブジェクト指向プログラミング言語の例には、C ++、Java、Smalltalk、Delphi、C#、Perl、Python、Ruby、およびPHPがあります。
Grady Boochは、オブジェクト指向プログラミングを_「プログラムがオブジェクトの協調コレクションとして編成される実装方法として定義しました。各オブジェクトは、あるクラスのインスタンスを表し、そのクラスはすべて、継承によって結合されたクラスの階層のメンバーです。関係」_。