情報通信技術の発展は急速に進んでいるため、調査や研究、あるいはコンサルティング等を行う場合にも少し先ぐらいを見越しておく必要があります。そこで、少し先の技術について少しずつですが、整理していきたいと考えています。書いた時点からすぐに内容が変わる可能性もあるのでご留意下さい。

ソフトウェア開発の標準化


1.UMLの概要
 UMLとはUnified Modeling Languageの略であり、Booch法の提唱者Grady BoochとOMT(Object Modeling Technique)法の提唱者James RumbaughとOOSE(Object Oriented Software Engineering)法の提唱者Ivar Jacobsonによって、システム表記法の統一を目指し開発されたモデリング言語である。システム、あるいはソフトウェアをモデル化し、図と言語で表記するダイヤグラムによって表現する。
 UMLが誕生した経緯としては、オブジェクト指向のシステム開発への活用が進んだことが挙げられ、システム内のオブジェクト要素を分かり易く記述することで、再利用や保守等を容易にすることを目的としていた。
 このようなオブジェクト指向普及にともなう開発者ニーズから1990年代に、前述したBooch法、OMT法、OOSE法に加え、Shlaer-Mellor法等が提唱された。しかしながら、多様な表記法が存在し、これと対応する開発方法もバラバラであったため、利用者側では使いにくい状況にあり、それぞれの表記法の提唱者が協力して統一化を図ることになった。
 当初、BoochとRumbaughで検討を進めていたが、96年にJacobsonが合流し、97年1月にUML1.0が作成された。その後、OMG(Object Management Group)に引き継がれて、標準化が行われた。OMGではUMLの継続的なバージョンアップを行っており、2004年10月からUML2.0が公開されている。
UMLでは、用途に応じて複数のダイヤグラムを使い分けることになっており、UML2.0では、以下に示すようなダイヤグラムが示されている。

構造 振る舞い
オブジェクト図 ユースケース図
クラス図 相互作用図
コンポジット構成図 シーケンス図
コンポーネント図 コミュニケーション図
配置図 タイミング図
パッケージ図 相互作用概念図
ステートマシン図
アクティビティ図

2.UMLのメリット
 UMLが作成された経緯から、UMLのメリットとして分かり易い表記、汎用性、一貫性を挙げることができる。
 従来の設計手法のように自然言語によって要件定義等を行う場合、表現に限界があり、複数の開発者間で細かな認識まで共有することが難しかった。UMLでは、ダイヤグラムによって図を用いて分かり易く表記することで、表現の正確性や理解が高められるとともに、認識の共有が容易になる。
 また、UMLは特定の開発方法に依存しないものであり、多様な情報システムの開発に用いることが可能である。また、OMGによって標準化されたことによって、利用者も多く、その点においてもネットワークの外部性による便益を高めている。例えば、標準化されたメリットとして、ダイヤグラム作成のためのツールが多様なベンダーから提供されていること等も挙げられる。このようなツールによってデータ化することで、世界中で情報共有を図ることや、過去に作成したUML等を再利用すること等が可能になる。
 UMLではシステムの開発工程に応じて複数のダイヤグラムを使うことになるが、各ダイヤグラム間の関連性が明確になっていること、つまり一貫性があることで開発や保守の効率化が図られる。例えば、下流工程において変更が生じた場合においても、各ダイヤグラムの関連性から、上流工程を表記したダイヤグラムの変更が容易に行うことができる。

UML2.0ツール

Altova UModel 2005
ARTiSAN's Real-time Studio
Borland Together 2006 for Eclipse
Computas' Metis with UML 2.0 Template
Embarcadero Describe
IBM Rational Software Architect and Modeler
I-Logix Rhapsody
MetaMatrix MetaBase Modeler
Mia Software (Sodifrance) Model-in-Action
No Magic's MagicDraw UML
OMONDO EclipseUML Studio
Pathfinder Solutions' PathMATE 5.2
Open Source StarUML sponsored by Plastic Software
Sparx Systems Enterprise Architect
Sun Microsystems' Java Studio Enterprise
Pattern Weaver Ver. 2.0 Technologic Arts Inc. (Japanese)
Telelogic's TAU Developer and TAU Architect
Gentleware's Poseidon for UML
Visual Paradigm's Smart Development Environment tool series

出典:OMGホームページ

3.UMLの短所
 UMLの短所の一つはメリットと表裏一体となっている。つまり、UMLのメリットとして開発方法に依存しない汎用性があるが、逆に開発方法とのリンケージが弱く、ソフトウェアとしての実装とのギャップがあることが短所として挙げられる。
 UMLで記述されたモデルはソースコードを完全に生成するための情報を含んでいないので、開発者の解釈によってモデルから実行コードへの実装は異なってしまう可能性がある。また、CASEツールを用いたとしても、現状ではモデルからソースコードの一部を生成することが限界である。逆に開発にCASEツールを用いている場合、UMLとの連携を図ることができないので、ツール側で変更した内容等をモデルに反映することが難しい。
 また、UMLの内容の検証の難しさも短所として挙げられる。システム個々の小さなモジュールに関するUMLに関しては、UML作成ツール等によって検証機能が提供されている場合もあるが、複数のUMLによって表現されるシステムに関しては、集団的な振る舞いを検証することが難しい。

4.形式手法の概要
 形式手法とは、代数論、集合論、グラフ理論等の数学理論をベースとした手法であり、要求されている仕様を数学的に厳密に記述でき、作成されたソフトウェアの性質を検証することも可能である。仕様が形式手法を用いて記述されていれば、仕様に誤りが検出されたり途中で変更された場合、その仕様訂正は、数学的に正しく行われ、システム全体としての整合が確保される。仕様変更や部分訂正は、システム全体に思わぬ影響が波及することがしばしばあるため、形式手法を用いることでシステムの信頼性向上が期待できる。
 形式手法によって仕様を記述する際、通常は形式仕様言語を用いることになる。同言語は、数学理論に基づいて仕様を記述するので、記述された仕様は誤りや矛盾がないことが保証され、これまで欧州を中心にいくつかの言語が開発されている。形式仕様言語は、ソフトウェア仕様を集合論などに基づくモデルによって記述するモデル指向言語と、データの性質を代数論などに基づいて記述する性質指向言語の二つに分類することができる。前者としては、英国Oxford大学にて開発されたZ記法、フランスにて開発されたBメソッド、IBMウィーン研究所にて開発されたVDM(Vienna Development Method)等がある。後者としては、スタンフォード研究所(SRI)にて開発されたOBJ、その発展として1995年ごろから北陸先端大にて開発されたCafe OBJ等がある。
 また、形式手法の実用のため、記述された仕様やプログラムの動作検査や不正な動作を起こさないことを検証するツールの開発も進められている。
 状態探索モデルに基づく検査ツールとして、1980年に米国ベル研究所にて開発されたSPIN、1987年に米国Carnegie Mellon大学で提案されたSMV(Symbolic Model Verifier)等がある。もう一つの分類である定理証明に基づく検証ツールとして、1980年代半ばにスタンフォード研究所(SRI)で開発されたPVS(Prototype Verification System)等がある。

5.UMLの短所に対する形式手法の寄与
 形式手法と従来の技法との統合については、多くの研究があり、特にオブジェクト指向モデリングとの統合に関しては、1990年代から研究が進められている。オブジェクト指向モデリングで用いられるダイヤグラムと形式使用言語を組み合わせることで、形式手法が持つ正確性や検証性等をオブジェクト指向モデリングに適用することを目指している。
 例えば、NASAでは、土星探索衛星のフォルトプロテクション機能を対象として、OMT法のモデルの確認を形式手法の証明ツールPVSを用いて行っている。OMT法で作成したダイヤグラムをPVSに変換し、ドキュメントやインタビューから得た性質記述をPVSと対話的に証明した。この結果が要求仕様ドキュメントに37件の問題があることが発見された。
 また、形式仕様言語Cafe OBJを開発している北陸先端科学技術大学では、日本電気と共同でUMLで記述されたソフトウェア設計の正しさを形式手法に基づき手検証ツールを2005年に開発している。このツールによって、開発対象の組み込みソフトウェアが様々な動作条件時に意図したとおりの振る舞いをするか、意図しない振る舞いをしないか等を、設計段階から網羅的に確認することができるそうである。さらに、ソフトウェア設計上の問題の最大6~7割を設計段階において検出可能となり、組み込みソフトウェアの品質向上を実現できる。
 一方、形式仕様言語のツールの中にはUMLからコードを生成できるものも出てきており、前述したUMLとソフトウェアと実装の乖離を埋める効果も期待できる。例えば、前述したVDMという形式仕様言語を用いたツールとしてデンマークのPeter G.Lasenの開発したVDMToolsがあり、このツールにはUMLからコードを生成する機能、およびコードからUMLを生成する機能がある。また、形式手法の特徴を活かした検証機能や、JavaやC++等の汎用的なコードの生成機能も有している。CSKのレポートでは同ツールを使った開発部分の欠陥発生率が、ツール未使用部分より大幅に低下していることが報告されている。
 以上のような動向から、UMLと形式手法を組み合わせることによって、UMLのみを活用する場合の欠点を形式手法のツールによって補完することができると考えられる。

参考資料
中島 震「オジェクト指向デザインと形式手法」、『コンピュータ・ソフトウェア, Vol.18, No.5』、pp.17-46、2001年11月.
亘理 誠夫「高信頼ソフトウェア技術の研究動向―ソフトウェア基礎技術の確立に向けて―」『科学技術動向2003年3月号』文部省科学技術政策研究所
内田匡彦「ソフトウェア開発を救うホワイトナイト VDM」『CSK EXPRESS vol.120 2005.04-05』
コンポーネントスクエア「コンポーネント利用動向等調査 調査報告書」2003年12月


Copyright(C) Tadashi Mima  ALL Rights Reserved.  

 ホームへ    前のページへ