オブジェクト指向ソフトウェア開発では、オブジェクトのプロパティを相互に結合(バインド)させることによって、ソースコードを書き換えることなく、ソフトウェアの構成を変更する手法が用いられるようになっている。この手法はデータバインディングと呼ばれる。データバインディング自体はオブジェクト指向の概念と直接関係しているわけではないが、C言語をはじめとする手続き型言語に適用可能なバインド機構の提案はこれまでにない。 本研究では、C言語の複数のモジュール間でデータバインディングを実現するための機構としてcovalを提案した。covalは、モジュール間で共有される値を保持し、値の更新を契機としてモジュールの持つ手続きを呼び出す。covalを利用してモジュール間の関係を変更したり、新たなモジュールを追加する際、既存のモジュールのコードを書き直す必要はない。従って、システム改変時にバグが潜みやすいグルーコードを直接削減することが可能となる。C言語でプログラムを記述することの多い組込みシステム等で利用することができる。 本研究ではcovalの実装を行い、実際の組込みシステム環境で、ソースコードの書き換えなしにモジュール間の関係を変更できることを示した。本研究ではさらに、構造化モデリング手法を対象として、システム設計の段階からcovalを利用するための方式についても論じた。C言語によるシステム開発においてもデータバインディングの考え方が有用であることを明らかにしたという点で研究の意義は大きい。この研究成果は情報処理学会論文誌に掲載されることが決まっている。 なお、covalのソースコードおよびマニュアルはWebで公開している。
|