オブジェクトモデル化技法
出典: フリー百科事典『ウィキペディア(Wikipedia)』
オブジェクトモデル化技法 (OMT; Object Modeling Technique) は、オブジェクト指向ソフトウェア開発方法論であり、1990年頃にジェームズ・ランボー、マイケル・ブラハ、ウィリアム・プレメラニ、フレデリック・エディ、ウィリアム・ローレンセンなどの人々によって開発された。 現在では OMT は、他のオブジェクト指向開発方法論とともに、
- モデル図の記法は、UML (Unified Modeling Language; 統一モデリング言語) に統合され、
- 開発手法は、ラショナル統一プロセス (RUP; Rational Unified Process) に統合された。
ジェームズ・ランボーたちは著書『オブジェクト指向方法論OMT モデル化と設計』 (原著は1990年刊、邦訳は1992年刊) で OMT を説明している。
目次 |
[編集] 開発方法
[編集] 分析
OMT (オブジェクトモデル化技法) においては分析過程に大きな労力を投入する。
- 問題の最初の記述を書き下ろす、あるいは入手する (問題記述) 。
- オブジェクトモデルの構築。
- データ辞書とオブジェクトモデル図を作成する。
- 動的モデルを作る。
- 事象トレース図と状態図 (状態遷移図) を作成する。
- 機能モデルを作る。
- データフロー図を作成し、制約を文書化する。
- 3つのモデルを検証し、プロセスを繰り返し、モデルを改良する。[1]
オブジェクトモデル図では、システムの静的な構造を記述する (システム内のオブジェクト、オブジェクト間の関係、オブジェクトの各クラスの属性や操作) [2]。
状態図には、デヴィッド・ハレルの状態遷移図を採用しており、システムの動的な側面を記述する (あるクラスのとりうる複数の状態、状態遷移、状態遷移の契機となる事象) 。
データフロー図には、伝統的なデータフロー図を採用しており、システムの各機能を記述する (入力値からどのようにして計算の出力値が導出されるか)[3] 。 データフロー図には、データの流れ (データフロー) やデータを扱うプロセスなどを記述する。
[編集] 設計
OMT の設計過程では、システムの高水準の構造について選択を行う。
- システムをサブシステムの集まりとして構成する。
- 問題に内在する本質的な並行性を同定する。
- プロセサとタスクに対してサブシステムを割り当てる。
- データ構造、ファイル、データベースなどを用いてデータストアを実装するための基本的な戦略を選ぶ。
- 広域資源を同定し、それらへのアクセスを制御するメカニズムを決定する。
- ソフトウェアの制御構造を実装するためのアプローチを選択する。
- トレードオフの存在する各条件に対し優先順位を設定する。[4]
[編集] 実装
OMT では難しい決定判断は既に設計過程で終了しているため、実装は機械的かつ直接的に行うことができるとする[5]。 ただし実装に際しては、留意すべき指針がある。
- 再利用性、拡張性、頑健性を高めるための指針、大規模プログラミングにおける注意点
- オブジェクト指向言語 (C++、Eiffel、Smalltalk) を使う場合の指針
- 非オブジェクト指向言語 (C、Ada、Fortran) を使う場合の指針
- 関係データベース (関係データベース管理システム、SQL) を使う場合の指針
[編集] UMLとラショナル統一プロセスへの統合
1990年代後半に、OMT (オブジェクトモデル化技法) は他のオブジェクト指向ソフトウェア開発方法論と統合された。
- OMT のモデル図の記法は、他の多くのオブジェクト指向開発方法論の考案者たちの意見を採り入れて UML (Unified Modeling Language; 統一モデリング言語) に統合された。
- OMT の開発手法は、Booch法と OOSE と統合されてラショナル統一プロセス (RUP; Rational Unified Process) となっている。
この統合に至る経緯を述べる。
1990年代前半には、多くの人々が、それぞれ独自のオブジェクト指向開発方法論を提唱していた。
- この項目で述べているとおり、ジェームズ・ランボーたちは OMT を提唱していた。
- またイヴァー・ヤコブソンは OOSE (オブジェクト指向ソフトウェア工学) を提唱していた。
- グラディ・ブーチはBooch法を提唱していた。
- その他にも多くの人々が、それぞれ独自のオブジェクト指向開発方法論を提唱していた。
これらの開発方法論は、それぞれ固有のモデル図の記法を規定しており、また開発手法もさまざまであった。 この状況のもとでは、とりわけモデル図の記法が開発方法論ごとにばらばらであったことが問題となっていた。 ソフトウェア技術者は、オブジェクト指向で共同作業を行うためもしくはオブジェクト指向の技術書を理解するために、状況に応じて複数のモデル図の記法を習得する必要があった。 それぞれのモデル図の記法で実現しようとしていることは、大ざっぱにいえばほとんど同じであったため、記法が多く存在することによる利点はほとんど無くデメリットが大きかった。
こうした状況のもとで1994年に OMT の提唱者の一人ジェームズ・ランボーが、ゼネラル・エレクトリック (GE) からグラディ・ブーチの在籍する Rational Software に移籍し、開発方法論を統合する作業に着手した。 さらに1995年には Rational Software は、イヴァー・ヤコブソンが在籍する Objectory AB を買収した。 Rational Software において、ランボーとブーチとヤコブソンはそれぞれのオブジェクト指向ソフトウェア開発方法論を統合する作業を行った。 Rational Software で開発方法論を統合する作業の過程で、モデル図の記法と開発手法をまとめて統一するのではなく、モデル図の記法の統一と開発手法の統一の2つの作業に分割して作業する方針を採ることになった。
- 統一したモデル図の記法の名前は UML (Unified Modeling Language; 統一モデリング言語) といい、OMG (Object Management Group) のもとで Rational Software は他の企業と共同で開発を引き続き行い、1997年に UML 1.1 として標準化された。OMT のモデル図の概念と記法の多くが UML に引き継がれている。現在の UML の最新版はこの UML 2.0 であり、現在も OMG のもとで開発が進められている。
- また、Rational Software のオブジェクト指向ソフトウェア開発手法はラショナル統一プロセス (RUP; Rational Unified Process) として統合された。ラショナル統一プロセスではモデル図の記法 (モデリング言語) として UML を採用している。
現在、UML は情報技術で広く普及している。 ラショナル統一プロセスを含む多くのソフトウェア開発手法で、モデリング言語として採用されている。 ソフトウェア開発で使われる事例、情報技術の技術書で使われる事例が多い。
OMT の分析段階で作成するモデル図の概念と記法の多くが UML (Unified Modeling Language; 統一モデリング言語) に引き継がれている。
- オブジェクトモデル図は、UML のクラス図と良く似ている。
- 状態図 (デヴィッド・ハレルの状態遷移図) は、UML の状態機械図 (状態遷移図) と良く似ている。
- データフロー図 (伝統的なデータフロー図) に記述する内容は、UML ではアクティビティ図で記述することができる。UML のアクティビティ図は、データフロー図はとあまり似ていないが、オブジェクトフローやコントロールフローを活用することで、データフロー図と同等以上の記述能力をもつ。
[編集] 註
- ↑ J.ランボーほか (1992) pp.286-287
- ↑ J.ランボーほか (1992) p.25
- ↑ J.ランボーほか (1992) p.137
- ↑ J.ランボーほか (1992) p.287
- ↑ J.ランボーほか (1992) p.305
[編集] 参考文献
- J.ランボー、M.ブラハ、W.プレメラニ、F.エディ、W.ローレンセン、羽生田栄一ほか訳 『オブジェクト指向方法論OMT モデル化と設計』 トッパン、1992年、ISBN 4-8101-8527-3
[編集] 文献案内
- James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1990, ISBN 0-1362-9841-9
- J.ランボー、M.ブラハ、W.プレメラニ、F.エディ、W.ローレンセン、羽生田栄一ほか訳 『オブジェクト指向方法論OMT モデル化と設計』 トッパン、1992年、ISBN 4-8101-8527-3
- J.Rumbaugh, OMT Insights: Perspectives on Modeling from the Journal of Object-Oriented Programming, Cambridge University Press, 1996, ISBN 0138469652