連載第1回 -1
UMLの基礎と応用

(株)NTTデータ 技術開発本部 副本部長
山本修一郎

 統一モデリング言語UML(Unified Modeling Language)は、オブジェクト指向システム開発のための図式(Diagram )言語である[1][2]。UML は全部で9種類の図式から構成され、業務分析工程、設計工程、実装工程の生産物を記述するために利用される。1997年7月にUML1.1がOMG(Object Management Group)に提案されてから、この4年あまりの間にオブジェクト指向システム開発にかかわる者にとってUML は必須の知識となった。最近ではUMLの教科書が書店にも数多く並んでおり、UMLの講習会もたくさんある。インターネットでもUML のチュートリアルが公開されている[3]。UMLを支援するCASEツールとしてRational社のRoseなどもある[4]。とはいえUMLやその基礎となるオブジェクト指向の本質をきちんと理解したソフトウェア技術者が日本にどれくらいいるかといえば、まだ必ずしも十分ではないのも事実であろう。

 これから12回にわたりUMLについての基礎とその応用について、身近な例を題材にRoseを用いて具体的に解説していく予定である。今回は、オブジェクト指向の簡単な復習とUMLの特徴や構成について述べる。具体的な図式そのものの解説は第2回以降で述べる予定である。

オブジェクト指向とは

 オブジェクト指向の起源は1967年に提案されたシミュレーション言語Simulaであるといわれる。Simulaは「構造化プログラミング」の第3章で紹介されている[5]。この本ではダイクストラが第1章でgoto文を使わずにプログラムを、連接、条件分岐、選択、繰り返しの4つの制御構造から構造的に作成することの重要性を主張している。興味深いのは、オブジェクト指向が構造化技法と対比して有効性が主張されることが多いのに、この本の中ではプログラムを構造化する一つの方法としてSimulaが紹介されていることだ。シミュレーションでは、個々のモノを個別に識別することと、モノに共通する分析対象としての性質(たとえば位置や状態と許される操作)を管理することが必要になる。オブジェクト指向では、個別に識別されたモノが「インスタンス」であり、モノに共通する性質や操作を表現するインスタンスの雛型が「クラス」である。このようにオブジェクト指向の概念は、もともと多数の共通な属性を持つモノの世界の構造を表現するための手段として考案されたのである。今日、コンピュータが社会システムの中に急速に浸透していることを考えると、オブジェクトというモノの観点からシステムを表現することが、現実社会とその延長としての仮想社会を結びつける上で自然な方法であると思われる。現実社会におけるモノの構造と類似する構造を仮想社会システムが持つことにより、2つの社会のシームレスな連携ができるのである。

 ところで、オブジェクト指向の教科書を読んだばかりの初心者に聞くと、オブジェクト、クラス、インスタンスの違いがわかりにくいようである。これらの概念が教科書を読んだときにはわかったつもりでも一夜空けると、教科書の例題についてはわかっても、自分が取り組む実際の課題について、オブジェクトとは? クラスとは? インスタンスとは? 何かというと答えられない。この理由の一つは、実際の課題の場合、オブジェクト指向の教科書などで与えられるような業務記述そのものが存在しないからである。対象となる業務をまず記述するところからはじめないといけないのに、いきなりオブジェクトやクラスを抽出しようとしてもうまくいかないだろう。それに実際の業務は教科書の例題のように簡潔に表現できないのは経験のあるソフトウェア技術者なら誰でも身に覚えのあることだ。

 UMLでは、ユースケース図によりシステム機能と外部環境の関係を記述することができるので、初心者でもオブジェクト指向開発に取組みやすくなると思われる。UMLで最も重要な図式といえるユースケース図は、オブジェクトではなくシステムの機能を記述することを目的としている点に留意する必要があるだろう。

UMLの展開

 UMLの前にBoochはオブジェクト指向開発手法の標準化を目指した統一方法論Unified Methodを1995年に提案した。しかし、個々の開発プロジェクトや企業文化に影響を受ける開発プロセスを統一してしまおうというのはさすがに反対が多く、結局、生産物の表記法としての言語を標準化することになった[6]。結果的に見れば、図式言語の標準化に徹したことが、今日のUMLの大きな成功要因になったことは間違いない。UMLの意義としては、開発手法と図式を分離することで異なるオブジェクト指向開発手法がUMLに基づいて方法論の生産物としての図式を記述できるようになったことが大きい。さらに異なるオブジェクト指向開発手法間で生産物の相互利用を促進できる可能性がある。たとえば、オブジェクト指向システムを再利用する場合、ドキュメントがUMLで統一されているので、そのシステムがどのようなオブジェクト指向開発方法論で作成されたかとは独立にUMLの図式を用いて容易にシステムを再利用することができるだろう。また、ちょうどいい時期にUMLが提案されたことも幸運であったといえよう。90年代の初めにあまりに多くのオブジェクト指向開発方法論が提案されたこともあり、ソフトウェア業界全体に何とかしてオブジェクト指向のモデリング言語を策定したいというニーズがあったのである。さらに、UMLがOMGで標準化されることになったのでオープンで明確な標準化の過程を経て言語仕様が策定されることもUMLが広く受け入れられた理由の一つであろう。

NEXT >>

・連載第1回

・連載第2回

・連載第3回

・連載第4回

・連載第5回

・連載第6回

・連載第7回

・連載第8回

・連載第9回

・連載第10回

・連載第11回

・連載第12回

・連載第13回

・連載第14回

・連載第15回

・連載第16回

・連載第17回