開発ツールと OSS のライセンス
OSS(オープンソースソフトウェア)の定義と、ソースコードの公開義務がいつ生じるかを判断できるようになる。あわせて Eclipse・Selenium などのツール名と役割、ローコード開発の定義、表計算での営業利益の式が選べるようになる。
OSSのライセンスは免除試験を中心に毎回のように出題され、選択肢のパターンもほぼ決まっています。実務でも「このOSSを製品に組み込んで売ってよいか」は要件定義の段階で確認する事項なので、ここで判断の軸を身につけておくと役に立ちます。
このレッスンで稽古する(用語チェック・過去問)結論:覚えるのは3つだけ
- OSSは著作権を残したまま、自由に使える。改変・再配布・商用利用・有償販売のどれも認められていて、利用者や利用分野で差別してはいけない。
- ソースコードの公開義務が生じるのは、GPL などのコピーレフト型ライセンスのOSSを再配布(頒布)したとき。改変したかどうかは関係ない。社内で使うだけなら、改変していても公開しなくてよい。
- ツール名と役割を1対1で覚える。Eclipse=統合開発環境、Selenium=Web画面のテスト自動化。この対応を問う問題が多い。
OSSの定義(OSD):正しい特徴と誤りの選択肢
OSSの定義は OSI(Open Source Initiative:OSSを推進する団体)が定めた OSD(The Open Source Definition:OSSであるための条件)に基づきます。ポイントは「著作権は放棄されていない」ことと「お金を取ってもよい」ことの2つです。
| 選択肢によく出る記述 | 正誤 | 理由 |
|---|---|---|
| 一定の条件の下で、ソースコードの変更を許可している | ○ | 改変と派生物の作成はOSDの条件の一つ |
| パッケージ化したり自社ソフトと組み合わせたりして有償で販売できる | ○ | 再配布は自由で、有償か無償かは問わない |
| 改変しても再配布しない社内利用なら、改変部分を公開しなくてよい | ○ | 公開義務は配ったときにだけ生じる |
| 著作権が放棄されている | × | 著作権は作者に残る。だからライセンス(利用条件)を付けられる |
| 無償で配布しなければならない | × | 有償販売もできる |
| 商用システムの開発への利用は禁止 | × | 利用分野での差別は禁止 |
| 利用者が一定数を超えるとライセンス料が発生する | × | 人数による差別や課金は認められない |
| 改良版は再頒布できない | × | 派生物の再頒布も認められる |
| 特定の業界にだけ公開範囲を限定できる | × | 利用分野での差別は禁止 |
| 再配布する第三者に開発者がライセンス料を請求できる | × | 再配布でライセンス料を要求してはいけない |
ソース公開義務:判断の軸は「外に配ったか」
公開義務があるかどうかは、改変したかどうかではなく、外部に再配布(頒布)したかどうかで判断します。たとえると、GPLは「このレシピを使った料理を店で売るなら、レシピも一緒に渡してね」という約束です。家族のまかない(社内利用)として作るだけなら、レシピを人に見せる必要はありません。
GPLの下で公開されたOSSを使い、ソースを公開しなかった場合(2013年の問題)
| ケース | 外に配った? | 違反? |
|---|---|---|
| OSSとアプリをつなぐインタフェースを自作して販売 | 売ったのは自作部分だけで、OSS本体は配っていない | 違反ではない |
| OSSの改変を他社に委託し、自社内で使う | 委託は頒布に当たらず、社内で使うだけ | 違反ではない |
| OSSを入手・改変して販売 | OSSを含むものを外に配った | 違反 |
| OSSで性能テストをした自社ソフトを販売 | OSSは道具として使っただけ | 違反ではない |
GPLのソース提供義務は、プログラムを外部に再配布(頒布)したときに生じます。改変していなくても生じますし、社内利用や委託改変のように頒布しないなら生じません。この問題の正解ウは、改変したOSSを販売(頒布)しているから違反になります。
flowchart TD
A["OSSを使う"] --> B{"外部に再配布(頒布)する?"}
B -->|"しない(社内利用・委託改変)"| C["ソース公開義務なし(改変していても)"]
B -->|"する"| D{"コピーレフト型(GPLなど)?"}
D -->|"はい"| E["ソースを提供する義務あり(改変の有無を問わない)"]
D -->|"いいえ(BSDなど)"| F["ソース公開義務なし(著作権表示などの条件は守る)"]
コピーレフトと、まぎらわしいライセンス用語
コピーレフトとは「著作権は保持したまま、複製・改変・再配布は自由にする。ただし派生物(元のプログラムから作った二次著作物)にも同じ配布条件を付ける」という考え方です。代表例が GPL(GNU General Public License)です。
| 用語 | 中身 | 見分け方 |
|---|---|---|
| コピーライト | 通常の著作権そのもの | 「改変・再配布を制限しない」とは言わない |
| コピーレフト | 改変・再配布は自由。派生物にも同じ条件を強制する | 「派生物にもオリジナルと同じ配布条件」がキーワード |
| BSDライセンス | 改変・再配布は自由。派生物に同じ条件を強制しないので、改変版を非公開の製品にできる | 「同じ条件の強制」がなければBSD型 |
| デュアルライセンス | 同じソフトを2つのライセンス(例:GPLと商用ライセンス)で提供し、利用者が選ぶ | 「2つのうちから選ぶ」がキーワード |
注意点として、OSDそのものは「改変版に同じライセンスを付けること」を求めていません。同じライセンスを強制するのはコピーレフト型だけです。
開発ツール名の対応表
統合開発環境(IDE:Integrated Development Environment)とは、エディタ・コンパイラ・デバッガなどの開発ツールを一つにまとめたソフトウェアです。代表的なOSSが Eclipse です。選択肢には「OSSだが開発環境ではないもの」が並びます。
| 名前 | 種類 | 役割 |
|---|---|---|
| Eclipse | 統合開発環境(IDE) | 開発用のツール一式をまとめたもの |
| Apache Tomcat | アプリケーションサーバ | Javaで書いたWebアプリ(サーブレット)を動かす |
| GCC | コンパイラ | C言語などのソースコードを機械語に翻訳する |
| Linux | OS | コンピュータ全体を管理する基本ソフトウェア |
| Perl / PHP / Ruby | プログラム言語 | 開発環境ではなく、プログラムを書くための言語 |
| Selenium | テスト自動化ツール | Webブラウザでの画面操作を自動で実行してテストする |
| Redmine | 課題管理(プロジェクト管理) | バグや作業チケットを管理する |
| Subversion | 版管理(バージョン管理) | ソースコードの変更履歴を管理する |
| GDB | デバッガ | プログラムを止めながら不具合の原因を調べる |
ローコード/ノーコード開発の違い
違いは「ソースコードを少し書くか、まったく書かないか」の1点です。どちらも開発基盤の上で、用意された部品やテンプレートをGUI(画面上のマウス操作)で組み合わせます。
| 手法 | 説明 | 見分け方 |
|---|---|---|
| ローコード開発 | GUIで部品を組み合わせ、必要に応じて一部のソースコードを書く | 「必要に応じて一部の処理のソースコードを記述」 |
| ノーコード開発 | GUIで部品を組み合わせるだけ。ソースコードは書かない | 「ソースコードを記述せずに」 |
| フレームワークを使った開発 | 定型的な枠組み(フレームワーク)に、独自の処理をコードで書き足す | GUIの話がなく、コードを書くのが中心 |
| RPA(Robotic Process Automation) | 人がシステムを操作する手順を登録し、ツールに代わりに操作させる | 「操作手順をツールに登録」。開発手法ではない |
OSSディストリビュータの役割
ディストリビュータとは、OSSやアプリケーションソフトを組み合わせて、すぐ使えるパッケージにして提供する事業者です(例:Linuxディストリビューションの提供元)。OSSの開発、インストール作業、システムの提案はディストリビュータの役割ではありません。
表計算:営業利益の式と相対参照
営業利益=売上高-売上原価-販売費及び一般管理費です。営業外収益と営業外費用(本業以外の損益)は含めず、それらを足し引きすると経常利益になります。
相対参照とは、式を別のセルに複写すると、参照先が同じだけずれる参照方法です。G2に「B2-C2-D2」と入れてG3に複写すると、自動で「B3-C3-D3」になります。
試験での問われ方
- OSSの特徴:「著作権放棄」「無償配布が義務」「商用禁止」「人数でライセンス料」「再頒布禁止」はすべて誤り。正解は「条件付きでソース変更を許可」か「有償販売できる」。
- 公開義務:「社内利用」「委託改変」「インタフェースだけ自作」「性能テストに使っただけ」は外に配っていないので義務なし。「入手・改変・販売」だけが違反。
- OSIの定義の問題では「改変版に同じライセンスを付ける必要がある」が誤りの選択肢として出る。これはコピーレフト型だけの性質。
- ツール名:同じOSSの中から、役割が違うもの(Tomcat・GCC・Linux)や言語(Perl・PHP・Ruby)を混ぜてくる。
- ローコード:ノーコード(コードを書かない)、フレームワーク利用、RPAの説明と並べてくる。
表計算で営業利益の式を選ぶ
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 支店 | 売上高 | 売上原価 | 販売費及び一般管理費 | 営業外収益 | 営業外費用 | 営業利益 | 経常利益 |
| 2 | P | 3000 | 2000 | 400 | 80 | 60 | ||
| 3 | Q | 1430 | 960 | 180 | 38 | 20 | ||
| 4 | R | 2090 | 1390 | 280 | 8 | 12 | ||
| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
ア B2- C2- D2
イ B2- C2- D2+E2
ウ B2- C2- D2+E2- F2
エ B2- C2- D2- F2
出典:基本情報技術者試験 科目A免除 修了試験 200907 実施分 問20
解き方と答えを見る
- 求めたいのはG列の「営業利益」。定義は「営業利益=売上高-売上原価-販売費及び一般管理費」。
- 表で列を確認する:売上高=B列、売上原価=C列、販売費及び一般管理費=D列。営業外収益(E列)と営業外費用(F列)は営業利益に含めない。
- 2行目(支店P)の式は「B2-C2-D2」。
- 値を入れて確かめる:3000-2000-400=600。これがPの営業利益。
- 複写を確認する:G2の式をG3に複写すると、相対参照なので「B3-C3-D3」になる。Qの営業利益は1430-960-180=290で、正しく計算される。
- 選択肢の式を見分ける:イは営業外収益を足し、エは営業外費用を引いている。ウ「B2-C2-D2+E2-F2」は 600+80-60=620 で、これは経常利益(H列に入れる式)。
答え:ア(B2-C2-D2)
要点(試験直前に読む)
- OSSは著作権を放棄していない。改変・再配布・商用利用・有償販売はどれもOK。利用者や分野での差別はNG。
- ソースコードの公開義務が生じるのは、GPLなどのコピーレフト型ライセンスのOSSを再配布(頒布)したとき。社内で使うだけなら、改変していても公開しなくてよい。
- コピーレフト=派生物にも同じ配布条件を付けさせる(GPL)。BSDは強制しない。
- Eclipse=IDE、Selenium=Webテストの自動化、Redmine=課題管理、Subversion=版管理、GDB=デバッガ。
- ローコード=一部はコードを書く、ノーコード=まったく書かない。
- 営業利益=売上高-売上原価-販売費及び一般管理費(営業外の損益は入れない)。
ひっかけ
- 「著作権が放棄されている」「無償で配布しなければならない」→ どちらも誤り。OSSは著作権を残し、有償販売もできる。
- 「改変して再配布するなら同じライセンスを付ける必要がある」(OSIの定義の問題)→ 誤り。それはコピーレフト型だけの性質で、OSDの条件ではない。
- 「OSSの改変を他社に委託し社内で使う」「性能テストに使っただけ」→ 外に配っていないので公開義務なし。違反になるのは、改変して販売したような頒布のケース。
- 「OSSの統合開発環境は?」でTomcat・GCC・Linuxや、Perl・PHP・Rubyを選ばせる → 開発環境はEclipse。ほかはサーバ・コンパイラ・OS・言語。
- 表計算で営業外収益・費用まで足し引きした式(経常利益)を選ばせる → 営業利益は売上高-売上原価-販売費及び一般管理費の3項目だけ。
用語(17)
ソースコードが公開され、一定の条件の下で誰でも利用・改変・再配布できるソフトウェア。
⚠ フリーウェア:無償なだけで、ソースの公開や改変の許可は約束されていない。OSSは有償販売もできる。
OSSの普及を進める団体で、OSSの定義(OSD)を定めている。
⚠ OSI参照モデル(ネットワークの7階層)とは別物。
OSIが定めた、OSSであるための条件(自由な再配布、ソースコードの提供、派生物の許可、利用者や分野で差別しないことなど)。
作品を作った人が持つ権利。OSSでも作者に残っていて、放棄されていない。
⚠ コピーレフト:著作権を土台にして、自由な利用を広げる考え方。
著作権を保持したまま改変・再配布を自由にし、派生物にも同じ配布条件を付けさせる考え方。
⚠ BSDライセンス:派生物に同じ条件を強制しない。
コピーレフト型の代表的なライセンスで、再配布するときはソースコードを提供する義務がある。
⚠ 社内利用だけなら、改変していても公開義務はない。
著作権表示などを残せば改変・再配布が自由で、派生物を非公開にしてもよいライセンス。
⚠ コピーレフト:派生物にも同じ条件を強制する。
同じソフトウェアを2種類のライセンスで提供し、利用者がどちらかを選べるようにする方式。
⚠ コピーレフト:配布条件の引き継ぎの話で、ライセンスを選ぶ話ではない。
ソフトウェアを外部の人に渡すこと。有償か無償かは問わない。
⚠ 社内利用や他社への改変の委託は頒布に当たらない。
OSSやアプリケーションを組み合わせて、パッケージとして提供する事業者。
⚠ OSSの開発者や、システムを提案・導入するSIerとは役割が違う。
エディタ・コンパイラ・デバッガなどの開発ツールを一つにまとめたソフトウェア。代表例はEclipse。
⚠ Tomcat(アプリケーションサーバ)、GCC(コンパイラ)、Linux(OS)は開発環境ではない。
OSSの統合開発環境。
⚠ Perl・PHP・Rubyはプログラム言語で、開発環境ではない。
Webブラウザの画面操作を自動化して、テストを支援するOSS。
⚠ Redmine=課題管理、Subversion=版管理、GDB=デバッガ。
それぞれ課題管理、ソースコードの版管理、デバッグ(不具合の原因調査)を行うOSS。
⚠ Web画面の操作を自動化するのはSelenium。
GUIで部品を組み合わせ、必要に応じて一部の処理だけソースコードを書く開発手法。
⚠ ノーコード:ソースコードをまったく書かない。RPA:操作手順を登録して作業を代行させるもので、開発手法ではない。
売上高から売上原価と販売費及び一般管理費を引いた、本業でのもうけ。
⚠ 経常利益:営業利益に営業外収益を足し、営業外費用を引いたもの。
式を複写すると、複写先の位置に合わせて参照するセルも同じだけずれる参照方法。
⚠ 絶対参照($B$2など):複写しても参照先が変わらない。
このレッスンの過去問
- 統合開発環境(IDE)の代表例(Eclipse等)平成30年度 春期 基本情報技術者試験 午前 問19
- 開発支援OSSの種類(Selenium・Redmine・Subversion・GDB)基本情報技術者試験 科目A免除 修了試験 20260726 実施分 問15
- ローコード/ノーコード開発の違い令和7年度 基本情報技術者試験 科目A 公開問題 問5
- オープンソースソフトウェアの定義(ソース変更許諾)基本情報技術者試験 科目A免除 修了試験 20251214 実施分 問15
- OSSライセンスの義務範囲(再配布時のソース公開義務)平成31年度 春期 基本情報技術者試験 午前 問20
- コピーレフトの定義平成26年度 秋期 基本情報技術者試験 午前 問20
- OSSディストリビュータの役割基本情報技術者試験 科目A免除 修了試験 200907 実施分 問22
- 表計算の相対参照と営業利益の計算式基本情報技術者試験 科目A免除 修了試験 200907 実施分 問20