これならわかるOSSライセンス その9

江端コンサルタント   長年OSS業務に携わり続けてきた、OSSマーケティングのスペシャリスト。

<得意分野>
行政書士の資格を所有し、IPA国際標準化センターリーガルワーキンググループ主査としても活躍。
OSSライセンスに非常に詳しく、OSSを取り扱う各社からのコンサルティング依頼が殺到中のスペシャリスト。

<主な活動>
・OSSライセンス&コンプライアンストレーニング
・OSS組込みコンサルタンティング
・OSS関連コラム提供

行政書士/コンサルタント
エムキューブ・プラスハート株式会社
(IPA国際標準化センター主査リーガルワーキンググループ 主査) 江端 俊昭


前回、触れたソフトウェアプログラムにおけるモジュールの考え方について解説します。

その前に、まず
・ソースコードファイル
・オブジェクトコードファイル
・実行イメージファイル

に対する著作物としての基本的な考え方について説明しておきましょう。

ご存じのように、プログラムは基本的には作成したソースコードファイルをコンパイル(またはアセンブル)
することで、オブジェクトコードファイルが生成され実行させることができます。

OS等種々の環境上で稼働する今日では、こうした実行環境が提供するシステムソフトウェアとリンクして、
実行イメージファイルが生成されるのが一般的と言えるでしょう。

では、この場合のソースコードファイル、オブジェクトコードファイル、実行イメージファイルの関係
について整理してみましょう。

最初にソースコードファイルとオブジェクトコードの関係です。

「ソース・コードの複製物にあたるオブジェクトコードをコピーすることは、ソース・コードの著作権を
侵害したことになる」
(東京地方裁判所1982年12月6日判決、判例時報1060号18頁)

との判例もあるように、著作権法上では、ソースコードファイルに対してオブジェクトコードファイルは
複製物にあたるとされています。

では、オブジェクトコードファイルと実行イメージファイルの関係はどうでしょうか?

なるほど単一のオブジェクトコードファイルとして実行できる環境であるならば、
ソースコードファイルがコンパイラ(アセンブラ)を通してオブジェクトコードファイルに複製され、
次にリンクを通して実行イメージファイルが生成されることになりますので、
実行イメージファイルも同じように複製物にあたるといえるでしょう。

言い換えれば、ソースコードファイルも、オブジェクトコードファイルも、実行イメージファイルも
基本的には同じ一つのプログラムであるということになります。

しかしながら、そもそもソフトウェアは大規模かつ複雑多岐にわたる機能を実現する関係上、
実際は単一のプログラムでこれを構築することはまずなく複数のプログラムで構築されているのが通常です。

そこでモジュールの必要性がでてくるわけですが、そもそも、モジュールとはどういうものでしょうか?

1972年、デビッド・L・パルナスが、彼の論文
『On The Criteria To Be Used in Decomposing Systems into Modules』で、

「大規模なソフトウェアを複数の開発者が、
 何の配慮もせずに分担開発しようとすると
 コミュニケーションの調整に負担がかかるばかりではなく、
 事実上開発が不可能になるため、
 ソフトウェアを機能的に意味あるまとまりに整理、
 調整コストの軽減に向けて、まとまり同士の相互依存性も低くした単位」

として提唱したのが、ソフトウェア分野におけるモジュールの概念とされています。

モジュールは開発を行う上でモジュール間相互の依存性は低いほど望ましく、
また依存性が低ければ低いほどその関係は独立しているといえます。

モジュール間の独立性が高ければ派生関係も生じ得ないことになるわけですが、
他方、モジュール化は、複数のソースコードファイルが生成されることを意味します。

つまり、上述したソースコードファイル、オブジェクトコードファイル、実行イメージファイルの関係は、
それぞれのソースコードに対するオブジェクトコードファイルが複製され、それらが組み合わさることで
一つの実行イメージファイルが形成されることになるので、1:1:1からn:n:1へと変化することになります。

実は、この時に実行イメージファイルとその構成要素たるオブジェクトコードファイル群との間に、
派生という関係が生じるのです。

すなわち、OSSライセンス適用モジュールとそれ以外のモジュールの組み合わせによって構成された
ソフトウェアに対するライセンスの適用というのは、

「ソースレベルあるいはオブジェクトレベルにおけるモジュール間の相互関係に対して」ではなく、
「モジュール化されたオブジェクトコードファイル群とそれらから生成された実行イメージファイルとの間の
派生関係に対して」ということなのです。

ところで、この派生関係は、実行イメージファイルを生成する創作形態で法的な解釈も異なります。

次回は、このことについて順を追って解説していきましょう。