オブジェクト指向分析設計 (OOAD )は、 オブジェクト 指向の考え方を適用し、ソフトウェア開発プロセス 全体を通してビジュアルモデリングを使用することで、 コンピュータ ベースのシステムを分析 および設計する アプローチです。これは、オブジェクト指向分析(OOA)とオブジェクト指向設計(OOD)から構成され、それぞれが オブジェクト指向モデリング (OOM)によってシステムのモデルを作成します。支持者は、モデルはリスクやビジネス価値などの重要な要素によって推進される反復プロセスで、継続的に洗練され、進化していくべきだと主張しています。
OOAD は、システムの論理モデル、物理モデル、状態ベースモデル、動的モデルを表現するために、オブジェクト指向の分解原則と表記法を活用する分析および設計手法です。ソフトウェア開発ライフサイクル の一部として、OOAD は要件分析と設計と呼ばれる 2 つの初期段階に関係します。[ 1 ]
滝モデル 。 OOADは、統一プロセス によって定式化されたように、反復的かつ漸進的な方法で実施されます。オブジェクト指向分析設計 (OOAD) は、ライフサイクルの各段階が厳密な境界で順次進行するウォーターフォール方式 でも使用できますが、OOAD では反復的なアプローチが用いられることが多いです。反復的な手法は、開発プロセスに柔軟性を持たせるために考案されました。反復的なアプローチでは、ライフサイクルの各段階を一度に作業するのではなく、分析、設計、コーディングを同時に進めることができます。また、以前のライフサイクル段階への変更は失敗であるというウォーターフォール方式の考え方とは異なり、反復的なアプローチでは、知識集約型のプロセスではそのような変更は正常であると認めています。 つまり、分析などは設計上の問題を理解しなければ完全に理解できないこと、コーディング上の問題が設計に影響を与えること、テストによってコードや設計をどのように変更すべきかに関する情報が得られることなどです。[ 2 ] オブジェクト指向開発をウォーターフォール方式で行うことは可能ですが、ほとんどの OOAD は反復的なアプローチに従います。
オブジェクト指向パラダイムは、モジュール性と再利用性を重視します。オブジェクト指向アプローチの目標は、「オープン・ クローズドの原則」 を満たすことです。モジュールは、拡張をサポートしている場合、または新しい動作を追加したり新しい状態を記述したりするための標準化された方法を提供している場合にオープンです。オブジェクト指向パラダイムでは、これは多くの場合、既存のクラスの新しいサブクラスを作成することによって実現されます。モジュールは、他のすべてのモジュールが使用しなければならない明確に定義された安定したインターフェースを持ち、あるモジュールの変更によって別のモジュールに導入される可能性のある相互作用と潜在的なエラーを制限する場合にクローズされます。オブジェクト指向パラダイムでは、これはオブジェクト上のサービスを呼び出すメソッドを定義することによって実現されます。メソッドは、パブリックまたはプライベートのいずれかになります。つまり、オブジェクト固有の特定の動作は、他のオブジェクトには公開されません。これにより、コンピュータプログラミングにおける多くの一般的なエラーの原因が軽減されます。[ 3 ]
オブジェクト指向分析 OOAでよく使われるモデルは、ユースケースとオブジェクトモデル です。ユースケースは、 システムが実行しなければならない標準的なドメイン機能のシナリオを記述します。オブジェクトモデルは、主要オブジェクトの名前、クラス関係、操作、およびプロパティを記述します。理解を助けるために、ユーザーインターフェースのモックアップやプロトタイプを作成することもできます。[ 4 ]
プロセスとデータを統合するオブジェクトを中心に要件を整理するOOAとは異なり、他の分析手法では、プロセスとデータは別々に検討されます。例えば、データはエンティティ関係図 でモデル化され、動作はフローチャート や構造図 でモデル化される場合があります。
遺物 OOAの出力はOODへの入力となります。反復的なアプローチでは、出力成果物はOODへの入力として完全に開発されている必要はありません。OOAとOODはどちらも段階的に実行でき、成果物は一度に完全に開発するのではなく、継続的に成長させることができます。OOAの成果物には以下が含まれます。
概念モデル 概念モデルは、 問題領域 における概念を捉えるものです。概念モデルは、並行処理 やデータストレージといった実装の詳細に依存しないように明示的に選択されます。 使用事例 ユースケース とは、システムが何らかの有用な動作を行うに至る一連のイベントを記述したものです。各ユースケースは、システムが特定のビジネス目標や機能を達成するために、アクターと呼ばれるユーザーとどのように連携すべきかを示す1つ以上のシナリオ を提供します。ユースケースのアクターは、エンドユーザーまたは他のシステムである場合があります。多くの場合、ユースケースはさらに詳細化され、ユースケース図 が作成されます。ユースケース図は、アクター(ユーザーまたは他のシステム)と、アクターが実行するプロセスを特定するために使用されます。 システムシーケンス図 システムシーケンス図 (SSD)とは、特定のユースケースのシナリオにおいて、外部アクターが生成するイベント、その順序、およびシステム間で発生する可能性のあるイベントを示す図です。 ユーザーインターフェースのドキュメント ユーザーインターフェース の外観と操作感 を示す、オプションのドキュメント。関係データモデル オブジェクトデータベース を使用しない場合、オブジェクトリレーショナルマッピング の戦略はオブジェクト指向設計プロセスの成果物であるため、通常は設計前にリレーショナルデータモデル を作成する必要があります。ただし、リレーショナルデータモデルとオブジェクト指向設計の成果物を並行して開発することも可能であり、ある成果物の成長が他の成果物の改善を促すこともあります。
オブジェクト指向設計 OOD はソフトウェア設計 の一形態であり、ソフトウェアの問題を解決するために相互作用するオブジェクトのシステムを計画するプロセスです。設計者は、OOA で作成された概念モデルに実装制約を適用します。このような制約には、ハードウェア およびソフトウェア プラットフォーム、パフォーマンス要件、永続ストレージとトランザクション、システムのユーザビリティ、予算と時間によって課される制限などが含まれます。テクノロジーに依存しない分析モデルの概念は、実装クラスとインターフェースにマッピングされ、ソリューション ドメインのモデル、つまり、システムが具体的なテクノロジー上でどのよう に構築されるかの詳細な記述が作成されます。[ 5 ]
OOD活動には以下が含まれます。
OODの原則と戦略には以下が含まれます。
依存性注入 依存性注入 とは、あるオブジェクトが他のオブジェクトのインスタンスを必要とする場合、必要なオブジェクトが依存オブジェクトに「注入」されることを意味します(例えば、データベース接続を内部で作成する代わりに、コンストラクタ への引数として渡すなど)。非循環依存原理 非巡回依存関係の原則 とは、パッケージまたはコンポーネントの依存関係グラフ(粒度は開発者1人の作業範囲によって異なる)にサイクルがあってはならないという原則です。これは、有向非巡回グラフ を持つこととも呼ばれます。[ 7 ] 例えば、パッケージCはパッケージBに依存し、パッケージBはパッケージAに依存します。パッケージAがパッケージCに依存している場合、サイクルが発生します。 複合材再利用の原則 複合再利用の原則は、継承よりもオブジェクトの ポリモーフィックな 構成 を優先することである。[ 6 ]
参考文献 ↑ イーヴァル、ヤコブセン。マグナス・クリスターソン。パトリック・ヨンソン。グンナー・オーバーガード (1992)。オブジェクト指向ソフトウェアエンジニアリング 。アディソン・ウェスリー ACM プレス。15、199ページ。ISBN 0-201-54435-0 。 ↑ Boehm B、「ソフトウェア開発と機能強化のスパイラルモデル( 2015年5月28日にWayback Machine に アーカイブ)」、IEEE Computer、IEEE、21(5):61-72、1988年5月 ↑ Meyer, Bertrand (1988). Object-Oriented Software Construction . Cambridge: Prentise Hall International Series in Computer Science. p. 23. ISBN 0-13-629049-3 。↑ イーヴァル、ヤコブセン。マグナス・クリスターソン。パトリック・ヨンソン。グンナー・オーバーガード (1992)。 オブジェクト指向ソフトウェアエンジニアリング 。アディソン・ウェスリー ACM プレス。 77–79 ページ 。 ISBN 0-201-54435-0 。↑コナレン 、 ジム(2000)。UML によるWebアプリケーションの構築 。アディソン・ウェスリー。p . 147。ISBN 0201615770 。1 2 エリック・ガンマ 、 リチャード・ヘルム 、 ラルフ・ジョンソン 、 ジョン・ヴリシデス(1995年1月2 日 )。 『デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素 』 アディソン・ウェスリー 。ISBN 978-0-201-63361-0 。↑ 「オブジェクト指向設計とは何か?」 。Object Mentor。 2007年6月30日に オリジナルからアーカイブ済み 。 2007年7月3日 に取得。
さらに読む Grady Booch 著「オブジェクト指向分析と設計とその応用、第3版」:http://www.informit.com/store/product.aspx?isbn =020189551X Addison-Wesley 2007年。レベッカ・ワーフス=ブロック 、ブライアン・ウィルカーソン、ローレン・ウィーナー著。『オブジェクト指向ソフトウェアの設計 』プレンティス・ホール、1990年。[オブジェクト指向プログラミングと設計への実践的な入門書。 ]オブジェクト指向設計の理論:OODの構成要素とそれらを表現するための表記法(デザインパターンに焦点を当てて) マーティン・ファウラー 著『分析パターン:再利用可能なオブジェクトモデル 』アディソン・ウェスリー社、1997年。[概念モデルを用いたオブジェクト指向分析入門 ]ベルトラン・メイヤー 著『オブジェクト指向ソフトウェア構築 』プレンティス・ホール、1997年Craig Larman 著。『UMLとパターンの適用 ― OOA/Dと反復開発入門』 。Prentice Hall PTR、第3版、2005年。セトラグ・コシャフィアン。オブジェクト指向 。 ウルリッヒ・ノルビスラート、アルバート・ズンドルフ、ルーベン・ジュベ。『ストーリー・ドリブン・モデリング』 。Amazon Createspace。333ページ 、2013年。ISBN 9781483949253 。
外部リンク 記事「UMLとRUPを用いたオブジェクト指向分析と設計の概要(CRCカードについても)」 UMLの適用 –オブジェクト指向分析と設計( 2009年9月15日にWayback Machine に アーカイブされたチュートリアル) OOAD & UML リソース Web サイトとフォーラム – UML を使用したオブジェクト指向分析と設計 Dhiraj ShettyによるUMLを用いたソフトウェア要件分析に関する記事 記事:現実世界におけるオブジェクト指向分析 オブジェクト指向分析と設計( 2009年9月15日にWayback Machine に アーカイブ) – UMLを使用した概要Larman, Craig. 『UMLとパターンの適用 – 第3版』 2016年10月25日にWayback Machine に アーカイブされました オブジェクト指向分析と設計 LePUS3とClass-Z:オブジェクト指向設計のための形式的モデリング言語 オブジェクトの階層構造