Contents

はじめに

Open Source Essentialsは、ソースがフリーでオープンなソフトウェア(free and open source software)、オープンコンテント、オープンテクノロジーの基本的な側面をカバーする教育および認定プログラムです。法律、技術、ビジネス面など、さまざまな専門分野のトピックが含まれていますが、特定の分野に限定するものではありません。オープンソースに関わる専門家なら誰でも知っておくべき、一般的な知識をカバーしています。開発者、マネージャー、法律家など、オープンソースの分野で活躍するあらゆる専門家が、共通する視点と専門用語を用いてコミュニケーションを図り、協力しあうための基盤となる知識を提供するものです。また、このプログラムは、個人がオープンソースの概念を理解し、オープンソースコミュニティに参加するためにも有用です。


序文

Open Source Essentials は LPI が提供する Essentials トラックに属するプログラムの一つですから、プログラムには学習教材、認定試験、修了証が含まれています。これは教育プログラムであると同時に、特定のスキルや知識を証明する認定資格でもあります。

Open Source Essentails は、以下のような用途に役立ちます:

  • オープンソース プログラム オフィス(OSPO)で働くすべてのプロフェッショナルが共有すべき知識体系として利用できます。
  • ソフトウェア開発会社にとって、オープンソースソフトウェアとコミュニティの開発におけるベストプラクティスを理解し、目指すべきものとして利用できます。
  • 開発者、コンサルタント、営業担当者に、オープンソースソフトウェアを教育するための社内教育プログラムとして利用できます。
  • オープンソースソフトウェアにかかわるさまざまな職域に対する専門性を示す証明になります。
  • 学生にオープンソースソフトウェアの背後にある概念と考え方を紹介するカリキュラムとして利用できます。


受験生に求められる最小限の要件

候補者は、free and open source software の重要な側面を、本質的に理解していることが求められます。 その中には、ソフトウェアの技術的特徴、オープン ソフトウェア ライセンス、オープン コンテント ライセンスに関する知識も含みます。さらに、ソフトウェアの開発方法、特に自由でオープンなソフトウェア プロジェクトにおける開発方法に対する理解と、 一般的なオープンソースのビジネスモデルとコラボレーションツールを知っていることが求められます。


候補者は、free and open source software のコンテキストに適用できる、専門的な技能を備えていることが求められます。その中には、free and open source community や free and open source software を開発・サポート・利用する組織において、博識な価値あるメンバーとして活躍できるための知識も含まれます。

訳注
*free and open source software/community* という表現に込められた意味を理解できることも重要な要件であるため、あえて訳出していません。



バージョン情報

この出題範囲は、バージョン1.0.0 の 日本語翻訳案(第1版) です。


翻訳された出題範囲

以下に示す出題範囲の翻訳が利用可能です:


出題範囲

051 ソフトウェアの基礎

051.1 ソフトウェア コンポーネント (重要度: 2)

重要度

2

説明

ソフトウェアの主な特徴を理解していること。その中には、ソフトウェアとハードウェアの違い、ソースコードの役割、ならびに、ライブラリの概念、静的リンクと動的リンク、コンパイラとインタプリタの違いが含まれます。

主要な知識分野:

  • ソースコードと、コード実行の概念を理解していること
  • コンパイラとインタプリタの概念を理解していること
  • ソフトウェア ライブラリの概念を理解していること

関連する用語、ファイル、ユーティリティ:

  • ソースコード
  • 実行可能プログラム
  • バイトコード
  • 機械語(マシンコード)
  • コンパイラ
  • リンカー
  • インタプリタ
  • ランタイム仮想マシン
  • アルゴリズム
  • ソフトウェアライブラリ
  • 静的リンクと動的リンク


051.2 ソフトウェア アーキテクチャ (重要度: 2)

重要度

2

説明

一般的なソフトウェアアーキテクチャの主要な側面を理解していること。その中には、クライアント サーバー コンピューティング、ファットクライアントとシンクライアント、ならびに、Webアプリケーションの役割、シングル ページ アプリケーション、アプリケーション プログラミング インターフェイスが含まれます。

主要な知識分野:

  • クライアントコンピューティングとサーバーコンピューティングの概念を理解していること
  • シンクライアントとファットクライアントの概念を理解していること
  • モノリスとマイクロサービスの概念と、それらの主な違いを理解していること
  • アプリケーション プログラミング インターフェイス(API)の概念を理解していること
  • ソフトウェアコンポーネントと、それらの統合ないし分離(サービス、モジュール、API)の概念を理解していること

関連する用語、ファイル、ユーティリティ:

  • クライアントとサーバー
  • シンクライアントとファットクライアント
  • Webアプリケーション
  • シングル ページ アプリケーション
  • モノリシック アーキテクチャ
  • マイクロサービス アーキテクチャ
  • アプリケーション プログラミング インターフェイス(API)
  • RESTful API


051.3 オンプレミス コンピューティング と クラウド コンピューティング(重要度: 1)

重要度

1

説明

ソフトウェアを実行するための主要な選択肢を理解していること。その中には、ソフトウェアをオンプロミスで実行することと、リモートで実行すること、ならびに、さまざまな種類のクラウドコンピューティングとの違いが含まれます。

主要な知識分野:

  • オンプロミスコンピューティングとクラウドコンピューティングの概念を理解していること
  • 一般的なクラウド運用モデルを理解していること
  • 一般的なクラウドサービスの種類を理解していること
  • クラウドコンピューティングとオンプロミスITインフラストラクチャの、主な利点とリスクを理解していること

関連する用語、ファイル、ユーティリティ:

  • クラウドコンピューティング
  • オンプロミスITインフラストラクチャ
  • データセンター
  • パブリッククラウド、プライベートクラウド、ハイブリッドクラウド
  • サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしてのソフトウェア(SaaS)
  • コストモデル
  • セキュリティ
  • データの所有権
  • サービスの可用性


052 オープン ソース ソフトウェア ライセンス

052.1 オープン ソース ソフトウェア ライセンスの概念(重要度: 3)

重要度

2

説明

オープンソースソフトウェアの根底にある原理と哲学を理解していること。その中には、ソフトウェアライセンスの概念、ならびに、オープンソースの歴史、異なるソフトウェアライセンスの影響を受ける可能性があるソフトウェアの利用方法が含まれます。

主要な知識分野:

  • オープンソースソフトウェアとフリーソフトウェアの定義を理解していること
  • 他の種類の無償ソフトウェアに関する知識
  • オープンソースの歴史における重要な出来事に関する知識
  • ライセンスとは何であり、ライセンスが一般的に扱う権利が何であるかを理解していること
  • 既存のソフトウェアから派生作品を作成する方法を理解していること
  • ライセンスの互換性と非互換性を理解していること
  • デュアルライセンスと条件付きライセンスを理解していること
  • ライセンス違反の結末を理解していること
  • 著作権法と特許法の原則、ならびに、それらがオープンソース ソフトウェア ライセンスによってどのような影響を受けるかを理解していること

関連する用語、ファイル、ユーティリティ:

  • フリーソフトウェア財団(FSF)による自由ソフトウェアの定義
  • オープン ソース イニシアティブ(OSI)によるオープン ソース ソフトウェアの定義
  • ライセンス
  • 契約
  • パブリック ドメイン ソフトウェア
  • フリーウェア
  • シェアウェア
  • ライセンス スチュワード(License stewards)
  • コードとソフトウェアの利用、変更、配布に対する許諾
  • 派生作品とコードの再利用
  • クローズド ソース / プロプライエタリ ソフトウェア
  • 有料配布
  • 修正されたソフトウェアと修正されていないソフトウェアの配布
  • 有料サービスとしてソフトウェアをホストすること
  • ライセンスの互換性
  • デュアルライセンスとマルチライセンス
  • 条件付きライセンス
  • ソフトウェア特許
  • 明示的および暗黙的な特許ライセンスの付与


052.2 コピーレフト ソフトウェア ライセンス (重要度: 3)

重要度

3

説明

一般的に使用されているコピーレフト ソフトウェア ライセンスの重要な特徴を理解していること。その中には、ライセンスによってもたらされる許諾と義務、ならびにライセンスの互換性に対する理解が含まれます。

主要な知識分野:

  • コピーレフト ソフトウェア ライセンスの概念を理解していること
  • コピーレフト ソフトウェア ライセンスによって認められる権利を理解していること
  • コピーレフト ソフトウェア ライセンスによって生じる義務を理解していること
  • 一般的なコピーレフト ソフトウェア ライセンスの主要な特徴を理解していること
  • コピーレフト ソフトウェア ライセンスと、その他のソフトウェア ライセンスの互換性について理解していること
  • 用語「互恵的(reciprocal)ライセンス」と、「制限的(restrictive)ライセンス」に対する知識

関連する用語、ファイル、ユーティリティ:

  • コピーレフト(Copyleft)
  • 配布(Distibuting)
  • 移送(Conveying)
  • ティーボ化(Tivoisierung)
  • GNU General Public License, version 2.0 (GPLv2)
  • GNU General Public License, version 3.0 (GPLv3)
  • GNU Lesser General Public License, Version 2 (LGPLv2)
  • GNU Lesser General Public License, Version 3 (LGPLv3)
  • GNU Affero General Public License, Version 3 (AGPLv3)
  • Eclipse Public License (EPL), version 1.0
  • Eclipse Public License (EPL), version 2.0
  • Mozilla Public Licence (MPL)


052.3 パーミッシブ ソフトウェア ライセンス(重要度: 3)

重要度

3

説明

一般的に使用されているパーミッシブ ソフトウェア ライセンスの重要な特徴を理解していること。その中には、ライセンスによってもたらされる許諾と義務、ならびにライセンスの互換性に対する理解が含まれます。

主要な知識分野:

  • パーミッシブ ソフトウェア ライセンスの概念を理解していること
  • パーミッシブ ソフトウェア ライセンスによって認められる権利を理解していること
  • パーミッシブ ソフトウェア ライセンスによって生じる義務を理解していること
  • 一般的なパーミッシブ ソフトウェア ライセンスの主要な特徴を理解していること
  • パーミッシブ ソフトウェア ライセンスと、その他のソフトウェアライセンスの互換性について理解していること

関連する用語、ファイル、ユーティリティ:

  • 2条項BSDライセンス
  • 3条項BSDライセンス
  • MITライセンス
  • Apacheライセンス バージョン 2.0


053 オープン コンテント ライセンス

053.1 オープン コンテント ライセンスの概念(重要度: 2)

重要度

2

説明

オープン コンテント ライセンスの重要な側面を理解していること。 その中には、さまざまな種類の承諾、ならびに既存のオープン コンテント ライセンスの考え方を含みます。

主要な知識分野:

  • オープンコンテントの種類を理解していること
  • 著作権の対象となるコンテントを理解していること
  • 著作物に対する派生作品を理解していること
  • オープン コンテント ライセンスの必要性を理解していること
  • 商標に対する知識

関連する用語、ファイル、ユーティリティ:

  • 文書
  • 画像
  • アートワーク
  • 地図
  • 音楽
  • 動画
  • ハードウェアの設計と仕様
  • データベース
  • データストリーム
  • データフィード(Data feeds)


053.2 クリエイティブ コモンズ ライセンス(重要度: 2)

重要度

2

説明

クリエイティブ コモンズ ライセンスの重要な特徴を理解していること。その中には、ライセンスによってもたらされる許諾と義務、ならびにライセンスの互換性に対する理解が含まれます。

主要な知識分野:

  • クリエイティブ コモンズ ライセンスの概念を理解していること
  • クリエイティブ コモンズ ライセンスの種類と組み合わせを理解していること
  • クリエイティブ コモンズ ライセンスによって認められる権利を理解していること
  • クリエイティブ コモンズ ライセンスによって生じる義務を理解していること

関連する用語、ファイル、ユーティリティ:

  • CC0: Public Domain Decication(パブリック ドメインへの供与)
  • CC BY: Creative Commons Attribution(表示)
  • CC BY-SA: Creative Commons Attribution-ShareAlike(表示-継承)
  • CC BY-NC: Creative Commons Attribution-NonCommercial(表示-非営利)
  • CC BY-NC-SA: Creative Commons Attribution-NonCommercial-ShareAlike(表示-非営利-継承)
  • CC BY-ND: Creative Commons Attribution-NoDerivatives (表示-改変禁止)
  • CC BY-NC-ND: Creative Commons Attribution-NonCommercial-NoDerivatives(非営利-改変禁止)


053.3 その他のオープン コンテント ライセンス(重要度: 1)

重要度

1

説明

クリエイティブ コモンズ以外のオープン コンテント ライセンスの重要な特徴を理解していること。その中には、ライセンスによってもたらされる許諾と義務、ならびにライセンスの互換性に対する理解が含まれます。

主要な知識分野:

  • 文書(ドキュメント)向けのライセンス方法を理解していること
  • データセットおよびデータベース向けのライセンス方法を理解していること
  • オープン コンテント ライセンスによって認められる権利を理解していること
  • オープン コンテント ライセンスによって生じる義務を理解していること

関連する用語、ファイル、ユーティリティ:

  • GNU自由文書ライセンス(GNU Free Documentation License)バージョン 1.3 (GFDL)
  • Open Data CommonsによるOpen Database License(ODbL)
  • Community Data License Agreement – パーミッシブ(Permissive)版 バージョン 1.0 (CDLA)
  • Community Data License Agreement – シェアリング(Sharing)版 バージョン 1.0 (CDLA)
  • Open Access


054 オープンソースのビジネスモデル(重要度: 7)

054.1 ソフトウェア開発のビジネスモデル(重要度: 2)

重要度

2

説明

オープンソースソフトウェアに関わるソフトウェア開発ビジネスモデルの重要な側面を理解していること。

主要な知識分野:

  • ソフトウェアやコンテントをオープンライセンスでリリースする目的と理由を理解していること
  • 組織がオープンソースソフトウェアやオープンコンテントを開発・制作する際の、一般的なビジネスモデルと収益源を理解していること
  • 大規模なテクノロジー製品やサービスのコンポーネントとしてオープンソースソフトウェアを使用することの影響を理解していること
  • ライセンスがソフトウェア開発のビジネスモデルに与える影響を理解していること
  • 顧客視点からオープンソースソフトウェアに対して考慮すべき事柄を理解していること
  • オープンソースソフトウェア開発のビジネスモデルにおけるコスト構造と投資対象に対する知識

関連する用語、ファイル、ユーティリティ:

  • 有償開発
  • オープンコアと有償アドオン
  • フリーミアム(Freemium)
  • エンタープライズ版とコミュニティ版
  • セルフホスト配布(Self-hosted distribution)
  • サブスクリプション
  • カスタマーサポート


054.2 サービス提供者のビジネスモデル(重要度: 2)

重要度

2

説明

オープンソースソフトウェアに関わるサービス提供ビジネスモデルの重要な側面を理解していること。

主要な知識分野:

  • 組織がオープンソースソフトウェアやオープンコンテントをサービス提供する際の、一般的なビジネスモデルと収益源を理解していること
  • サービス提供ビジネスモデルにおけるライセンスの影響を理解していること
  • サービスレベル目標とサービスレベル契約を理解していること
  • セキュリティとプライバシー保護の必要性を理解していること
  • オープンソースソフトウェアによるサービス提供ビジネスモデルにおけるコスト構造と投資対象に対する知識

関連する用語、ファイル、ユーティリティ:

  • ホストされたサービス(Hosted services)
  • クラウド
  • コンサルティング
  • トレーニング
  • ハードウェアの販売
  • ユーザーサポート
  • 利用規約(Terms of Service/ToS)
  • サービスレベル目標(Service Level Objectives/SLO)
  • サービスレベル合意(Service Level Agreements/SLA)
  • データ処理契約(Data processing agreements)


054.3 コンプライアンスとリスク低減(重要度: 3)

重要度

3

説明

プロフェッショナルな環境においてオープンソースソフトウェアを利用および開発する際の法的側面を理解していること。 その中には、ライセンスの遵守、法令の遵守、資産保全、プライバシー法、ならびに、起業家精神に関わる側面が含まれます。

主要な知識分野:

  • ライセンス遵守を確保する方法を理解していること
  • ライセンスに関する情報の管理方法を理解していること
  • Open Source Program Office(OSPO)の概念を理解していること
  • オープンソースのビジネスモデルにおける著作権、特許、商標の影響を理解していること
  • オープンソースのビジネスモデルに関係する法的リスクの知識
  • オープンソースのビジネスモデルにおける財務的リスクの知識

関連する用語、ファイル、ユーティリティ:

  • ソフトウェア構成分析(Software Composition Analysis/SCA)
  • ソフトウェア部品表(Software Bill Of Materials/SBOM)
  • ソフトウェア パッケージ データ エクスチェンジ(Software Package Data Exchange/SPDX)
  • OWASPのCycloneDX
  • オープン ソース プログラム オフィス(Open Source Program Offices/OSPO)
  • 製品保証
  • 製造物責任
  • 輸出規制
  • M&A(合併と買収)の影響


055 プロジェクト管理

055.1 ソフトウェアの開発モデル(重要度: 3)

重要度

3

説明

オープンソースソフトウェア開発プロジェクト管理の重要な側面を理解していること。その中には、ソフトウェア開発における一般的なプロジェクト管理手法、ならびにプロジェクトの役割が含まれます。

主要な知識分野:

  • ソフトウェア開発におけるプロジェクト管理の妥当性と目標を理解していること
  • ウオーターフォール型ソフトウェア開発の基礎を理解していること
  • アジャイル型ソフトウェア開発の基礎を理解していること。スクラムとカンバンを含みます。
  • DevOpsの概念を理解していること

関連する用語、ファイル、ユーティリティ:

  • ウオーターフォール型プロジェクトにおけるフェーズ(要求工学、ビジネス分析、ソフトウェア設計、開発、テスト、運用)
  • ウオーターフォール型プロジェクトにおける役割(プロジェクトマネージャー、ビジネスアナリスト、ソフトウェアアーキテクト、開発者、テスター)
  • スクラムプロジェクトの編成(スプリントとスプリント計画、成果物とスプリントバックログ、デイリースクラム、スプリントレビューと振り返り(retrospective))
  • スクラムプロジェクトにおける役割(成果物所有者、開発者、スクラムマスター)
  • カンバンプロジェクトの編成(カンバンボード)


055.2 成果物管理 / リリース管理(重要度: 2)

重要度

2

説明

オープンソースソフトウェアにおけるプロジェクト管理の重要な側面を理解していること。その中には、マイルストーン、リリース、バージョン管理の定義が含まれます。

主要な知識分野:

  • 一般的なリリースタイプを理解していること
  • ソフトウェアのバージョン管理、メジャーリリース、マイナーリリースを理解していること
  • ソフトウェア製品のライフサイクル〜計画から、開発、リリース、撤収までを理解していること
  • 製品バージョンの文書化を理解していること

関連する用語、ファイル、ユーティリティ:

  • アルファバージョンとベータバージョン
  • リリース候補
  • 機能確定(freeze)
  • メジャーリリースとマイナーリリース
  • セマンティックバージョニング
  • ロードマップとマイルストーン
  • チェンジログ(Changelogs)
  • 長期サポート(Long Term Support/LTS)
  • EOL(End of Life)
  • 後方互換性(Backward compatibility)


055.3 コミュニティの運営(重要度: 2)

重要度

2

説明

オープンソースコミュニティの重要な側面を理解していること。その中には、オープンソースソフトウェア開発プロジェクトの編成において一般的な、役割、手続き、文書を含みます。

主要な知識分野:

  • オープンソースプロジェクトにおける役割について理解していること
  • オープンソースプロジェクトにおける一般的なタスクについて理解していること
  • オープンソースプロジェクトに対するさまざまな貢献について理解していること
  • オープンソースプロジェクトに対するさまざまな貢献者について理解していること
  • オープンソースプロジェクトの維持における組織の役割について理解していること
  • 個人からプロジェクトを維持する組織への権利移転について理解していること
  • オープンソースプロジェクトのルールとポリシーについて理解していること
  • 貢献における帰属と透明性について理解していること
  • 多様性、公平性、包括性、非差別の側面を理解していること

関連する用語、ファイル、ユーティリティ:

  • ソフトウェア開発
  • 文書
  • デザインとアートワーク
  • ユーザーサポート
  • 開発者
  • リリースマネージャー
  • ユーザー
  • プロジェクトリーダーと慈悲深い独裁者
  • 個人と法人
  • 熱狂的ファンとプロフェッショナル
  • チームの中核メンバーと一時的貢献者
  • コードならびにドキュメントによる貢献
  • バグ報告
  • フォーク(Forks)
  • 財団とスポンサー
  • 拠出契約(Contribution agreements)
  • 適正開発者声明(Developer Certificates of Origin/DCO)
  • コーディング ガイドライン
  • 行動規範(Codes of conduct)



056 コラボレーションとコミュニケーション

056.1 開発ツール(重要度: 2)

重要度

2

説明

ソフトウェア開発において一般的に使用されるツールの主な種類と機能を理解していること。

主要な知識分野:

  • 一般的なソフトウェア開発ツールを理解していること
  • 一般的なデプロイ環境を理解していること
  • ソフトウェアテストの一般的な種類を理解していること
  • 継続的インテグレーションと継続的デリバリー(CI/CD)の概念を理解していること

関連する用語、ファイル、ユーティリティ:

  • 統合開発環境(Integrated Development Environments/IDE)
  • リンター
  • コンパイラ
  • デバッガ
  • リバースエンジニアリング(Reverse Engineering)
  • リファクタリング
  • ユニットテスト
  • 統合テスト(Integration testing)
  • 受け入れテスト(Acceptance testing)
  • パフォーマンス テスト
  • スモークテスト(Smoke testing)
  • リグレッションテスト(Regression testing)
  • 開発システム、ステージングシステム、プロダクションシステム
  • ローカル開発環境(Local development systems)
  • リモート開発環境(Remote development systems)
  • CI/CDパイプライン


056.2 ソースコード管理(重要度: 3)

重要度

2

説明

ソースコード管理の主要な概念を理解していること。その中には、ソースコードのリポジトリ、ブランチ、タグ、フォーク、マージの概念が含まれます。

主要な知識分野:

  • ソースコードリポジトリ(パブリックとプライベート)を理解していること
  • ソースコード管理とリポジトリ構成の原則を理解していること
  • 一般的なSCMシステム(Git、Subversion、CVS)の知識
  • 次に示す用語に関する知識:Version Control System(VCS)、Revision Control System、Source Code Management systems(SCM)

関連する用語、ファイル、ユーティリティ:

  • ソースコード リポジトリ
  • コミット、ブランチ、タグ
  • フィーチャーブランチ、開発ブランチ、リリースブランチ
  • サブリポジトリ
  • コードマージ(Code merges)


056.3 コミュニケーションとコラボレーションのツール(重要度: 2)

重要度

2

説明

ソフトウェア開発プロジェクトにおいて一般的に使用されるコミュニケーションとコラボレーションのためのツールについて、主な種類と機能を理解していること。

主要な知識分野:

  • コミュニケーションのための一般的なツールについて理解していること
  • 知識を取り込んで確かなものとするための一般的な方法を理解していること
  • 情報管理と公開のための一般的なツールについて理解していること
  • 一般的な文書種別について理解していること
  • ソースコード管理プラットフォームの一般的なコラボレーション機能について理解していること
  • アプリケーションおよびプラットフォーム管理における、スタンドアローン型、フェデレート(Federated)型、集中管理型について理解していること

関連する用語、ファイル、ユーティリティ:

  • インスタント メッセンジャー
  • チャット プラットフォーム
  • メーリングリスト
  • ニュースレター
  • 問題(Issue)トラッカー、バグトラッカー
  • バグレポート
  • マージリクエスト、プルリクエスト
  • ヘルプデスクとチケットシステム
  • Wiki
  • 文書管理システム(Document Management Systems/DMS)
  • ドキュメントWebサイト
  • 製品Webサイト
  • コンテント マネジメント システム(Content Management Systems/CMS)
  • アーキテクチャの文書化
  • ユーザー向け文書
  • 管理者向け文書
  • 開発者向け文書