2009年度 オープンソフトウェア利用促進事業 「ossモデル ...・...

119
2009 年度 オープンソフトウェア利用促進事業 「OSS モデルカリキュラム V1 の拡充に関する調査 (組み込みSW分野等)」 調査報告書 平成 22 年 3 月 独立行政法人 情報処理推進機構

Upload: others

Post on 24-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

2009 年度

オープンソフトウェア利用促進事業

「OSS モデルカリキュラム V1 の拡充に関する調査

(組み込み SW 分野等)」

調査報告書

平成 22 年 3 月

独立行政法人

情報処理推進機構

Page 2: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

目 次

1. 調査の背景と目的 .........................................................................................................................................3

2. 本報告書の構成と利用方法 ..........................................................................................................................5

3. IT知識体系とOSS基本知識・応用知識の関連..........................................................................................7 3.1 OSS知識との関連を示すための IT知識体系........................................................................................7 3.2 OSSモデルカリキュラムの位置付け .................................................................................................. 10

4. OSSモデルカリキュラムV1からの改定内容と改訂理由....................................................................... 12 4.1 拡充概要................................................................................................................................................ 12 4.2 改定内容と改訂理由............................................................................................................................. 15

5. OSSモデルコースウェア........................................................................................................................... 85 5.1 OSSモデルコースウェア学習体系 ...................................................................................................... 85 5.2 OSSモデルコースウェア一覧.............................................................................................................. 87

6. OSS学習ガイダンス .................................................................................................................................. 89 6.1 OSS学習ガイダンスの利用方法.......................................................................................................... 89 6.2 OSS学習ガイダンス一覧 ..................................................................................................................... 90 6.3 参考文献...............................................................................................................................................115

7. 用語集........................................................................................................................................................118

Page 3: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

3

1. 調査の背景と目的

1990 年代以降、Linux をはじめとする基盤ソフトウェアのオープン化が推進され、その有用性が脚

光を浴びた。これらのオープンソースソフトウェア(以下、OSS)は、基本ソフトウェア、ミドルウェ

ア、ネットワーク、開発ツールなど、ITソリューションの基盤となるものが着実に整備され、情報経済

社会を支えるソフトウェア技術基盤としての揺るぎ無い地位を確立しつつある。 OSS の利点を 大に活かすためには、それに見合った技術力が必要となることから、OSS を活用で

きる IT 技術者の需要が増大している。OSS の有効性が社会で広く認知され、普及していくためには、

OSS を活用した IT システムの運用管理を行うことができる「IT サービスマネジメント人材」、情報サ

ービス企業に所属して、OSSを活用した ITシステムの構築を行う「アプリケーション開発人材」や「ITスペシャリスト人材」の体系だった育成が、重要な鍵を握っている。 こうした背景のもと、情報処理推進機構(以下、IPA)は 2007 年上期に「OSS 技術教育のためのモ

デルカリキュラムに関する調査」1を実施して、産業界のニーズ、我が国の現状、海外の先進事例の現状

を把握した上で、大学・高専・専修学校及び企業・研修機関で使われることを想定したモデルカリキュラム

を策定するとともに、27のOSS知識について、ITスキル標準V3(以下、ITSS)のレベル2(上位者

の指導の下、要求された作業を担当する)に相当する26科目(OSS基本知識)、レベル3(要求された

作業を全て独力で遂行する)に相当する27 科目(OSS 応用知識)のモデルコースウェア(シラバス)

を策定した。 また、2007年下期に「OSS基本知識の学習ガイダンスに関する調査」(以下、基本知識調査)2、2008

年上期に「OSS 応用知識の学習ガイダンスに関する調査」(以下、応用知識調査)3を実施し、OSS 基

本知識・応用知識の受講者及び講師を対象として、モデルコースウェアと、各科目の学習を通して習得

することが期待される根幹となる知識・概念を解説した学習ガイダンス(53科目)を策定し、これらを

体系立てて、OSSカリキュラムのバージョン1(以下、OSSモデルカリキュラムV1)として発表した。 本調査では、OSSが政府・企業等の情報システムや情報家電等の組み込みシステムに採用されはじめ

たこの十年を通じて蓄積された、ソフトウェア開発の新たな方法論としてのOSS開発プロセスの研究・

知見を踏まえて、OSS開発者を育成する観点から、OSSモデルカリキュラムV1の改訂・増補・統廃合

(以下、拡充)を実施した。 拡充内容は、次の通り。 ・ 27のOSS関連知識のうち12の知識項目の23科目について拡充を実施し、14知識項目の24科

目とした。 ・ 新規知識項目3科目(OSSコミュニティマネジメント、OSS開発プロセス、デバイスドライバ)

を追加した。 ・ モデルコースウェアを、基本知識、応用知識それぞれ10コマ~15コマに再定義した。 ・ OSS の基本知識のうち、拡充後の 11 科目について、各科目の学習を通じて習得することが期待

1 (独) 情報処理推進機構:「OSS 技術教育のためのモデルカリキュラムに関する調査」,2006 年度オープン

ソースソフトウェア活用基盤整備事業(http://www.ipa.go.jp/software/open/ossc/seika 0605.html) 2 (独) 情報処理推進機構:「OSS 基本知識の学習ガイダンスに関する調査,」,2007 年度オープンソースソフ

トウェア活用基盤整備事業(http://www.ipa.go.jp/software/open/ossc/seika 0703.html) 3 (独) 情報処理推進機構:「OSS 応用知識の学習ガイダンスに関する調査,」,2008 年度オープンソースソフ

トウェア活用基盤整備事業(http://www.ipa.go.jp/software/open/ossc/seika 0810.html)

Page 4: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

4

される根幹となる10項目の知識・概念を解説した、学習ガイダンス(課題設定、学習の要点、理

解を助ける概念図、解説、参考資料リスト等)を拡充した。 ・ OSS の応用知識のうち、拡充後の 13 科目について、各科目の学習を通じて習得することが期待

される根幹となる 5 項目から 10 項目の知識・概念を解説した、学習ガイダンス(課題設定、学

習の要点、理解を助ける概念図、解説、参考資料リスト等)を拡充した。 本調査の成果の活用イメージを図 1-1に示す。

・ 本調査のアウトプットである OSS モデルカリキュラムV1拡充成果物は、14知識24科目の科目

別モデルコースウエアとガイダンス資料から構成される。

・ 大学、専門学校、企業等においては、それぞれが持っている IT教育プログラムに対して、OSSモ

デルカリキュラム V1 拡充成果物をもとに、OSS 教育カリキュラムとして必要な科目を選択し、

教育カリキュラムとして取り込むことができる。

・ 24 科目の科目別のガイダンス資料は、各 OSS 教育カリキュラムにおいて、直接的に学習ガイダ

ンスとして利用することが可能である。

図 1-1 成果の活用イメージ

Page 5: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

5

2. 本報告書の構成と利用方法

本報告書の構成は以下の通りである。

・ IT知識体系とOSS基本知識・応用知識の関連付け(3章)

基本知識調査および応用知識調査で検討した IT知識体系とOSS知識の対応関係に、拡充後の対

応関係を反映したものを示した。 ・ OSSモデルカリキュラムV1からの改定内容と改訂理由(4章)

拡充対象の14知識項目について、 改訂の概要 基本知識科目の改訂 応用知識科目の改訂

をそれぞれ示した。 ・ OSSモデルコースウェア(5章ならびに別冊)

拡充対象14知識項目の24科目に対して、各科目のモデルコースウェア(シラバス)を作成した

(別冊)。本章では、 モデルコースウェアの学習体系(5.1章) モデルコースウエアの一覧(5.2章)

をそれぞれ示した。 ・ OSS学習ガイダンス(6章ならびに別冊)

拡充対象14知識項目の24科目に対して、各習得ポイントに関する学習の要点、解説ならびに解

説図を作成した(別冊)。本章では、 OSS学習ガイダンスの利用方法(6.1章) OSS学習ガイダンスの一覧(6.2章)

各知識項目のガイダンスタイトルと概要 習得すべきポイント

参考文献(6.3章) をそれぞれ示した。 習得ポイントは、モデルコースウェアによる学習を終了した時点で習得していることが期待され

る概念または手法を具体的に列挙したものである。

Page 6: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

6

本報告書は、今後、OSS モデルカリキュラムを IT 教育プログラムとして取り込んでいくためのカリ

キュラム編成、ならびに教材作成における参考資料となることを想定している。具体的には、各章に関

して、以下のような活用形態を想定している。 章番号 タイトル 利用方法

3 3.1 3.2

IT知識体系とOSS基本知識・応用知識の関連 OSS知識との関連を示すための IT知識体系 OSSモデルカリキュラムの位置付け

OSS カリキュラムを導入する

際に、IT知識体系の全体像を把

握するとともに、IT知識体系と

の関連に基づく必要な科目を選

択するために使用する。 4 4.1

OSSモデルカリキュラムV1からの改定内容と改訂理由 OSSカリキュラムV1を導入し

ている場合、拡充の理由を把握

して、シラバス作成の参考とす

る。導入していない場合は、時

代背景による変化を把握する際

の参考とする。 5 5.1 5.2

OSSモデルコースウェア OSSモデルコースウェア学習体系 OSSモデルコースウェア一覧

教育カリキュラムを具体化する

段階において、シラバス作成の

参考とする。 6 6.1 6.2 6.3

OSS学習ガイダンス OSS学習ガイダンスの利用方法 OSS学習ガイダンス一覧 参考文献

教育カリキュラムの教材や参考

資料として直接的に使用する。

別冊1 モデルコースウェア(14知識項目24科目) 教育カリキュラムを具体化する

段階において、シラバス作成の

参考とする。

別冊2 学習ガイダンス(14知識項目24科目) 教育カリキュラムの教材や参考

資料として直接的に使用する。

Page 7: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

7

3. IT知識体系と OSS基本知識・応用知識の関連

本調査では、基本知識調査ならびに応用知識調査により策定された、OSSモデルカリキュラムV1の

拡充を行なった。その結果、OSSモデルカリキュラムV1で明らかにした IT知識体系とOSS知識の対

応に多少の変更が生じたが、それは各知識項目レベルのものであり、全体的なレベルではない。全体的

な関連は図3-1に示す。 本章では、OSSモデルカリキュラムV1の拡充結果を反映した、IT知識体系とOSS知識の対応関係

を明確化する。はじめに、OSS モデルカリキュラムと比較する IT 知識体系を明らかにした経緯を応用

知識調査の調査報告書より引用し(3.1章)、次に、IT知識体系と拡充後のOSSモデルカリキュラムと

のマッピングを示す(3.2章)。

図 3-1 IT知識体系とOSS基本知識・応用知識の関連の可視化イメージ

3.1 OSS知識との関連を示すための IT知識体系

OSS モデルカリキュラムを活用した実際の教育においては、大学、専門学校、企業の IT 研修等にお

ける既存の IT教育プログラムに対して、OSSモデルカリキュラムから必要な科目を選択し、OSS技術

を含めた IT教育カリキュラムを設定することが想定されている。 このためには、OSS モデルカリキュラムと IT 知識体系の科目毎の関連、ならびに全体像としての関

連を明らかにすることが必要である。OSS モデルカリキュラムと比較するための IT 知識体系として、

基本知識調査において、IT 分野で国際的な標準カリキュラムとして認知度が高い ACM4、AIS5、

IEEE-CS6によるCC2005(Computing Curricula 2005)をベースとした知識体系を構築した。図3-2にCC2005から抽出した IT知識体系の概要を示す。 図 3-2 において、横軸は、理論的から応用的に至る軸である。大学、研究機関等における新しい原理

4 The Association for Computing Machinery (ACM) 5 The Association for Information Systems (AIS) 6 The Computer Society (IEEE-CS)

Page 8: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

8

や革新的方法論の教育においては、左側に位置される教育カリキュラム(コンピュータ科学の原理・理

論領域)が選択される。逆に、より実践的なアプローチにより企業・社会における問題解決手法の教育

においては、右側に位置される教育カリキュラムが選択されることになる。また、縦軸はハードウェア・

アーキテクチャから組織的事項や情報システムに至る軸である。デバイス設計やコンピュータ内部のハ

ードウェア技術の教育においては、下側に位置される教育カリキュラム(ハードウェアの設計・製造に

関する技術領域)が選択される。逆に、人や組織と情報システムの関連、情報技術が社会に与える影響

の分析手法の教育においては、上側に位置される教育カリキュラム(組織・管理に関する技術領域)が

選択されることになる。IT知識体系は、ソフトウェア開発現場での実践的な技術習得に重点を置き、上

記「組織・管理に関する技術領域」、「コンピュータ科学の原理・理論領域」、「ハードウェアの設計・製

造に関する技術領域」を除く領域として定義した。IT知識体系に含まれる科目の一覧を表 3.1-1に示し

た。

理論 応用原理 配備革新 構成

組織関連事項と情報システム

応用技術

ソフトウェアの方法と技術

システム基盤

コンピュータハードウェアとアーキテクチャ

開発

より理論的 より応用的

         CE-ESY 組込みシステムIT-ITFIT基礎

IT-IPT 技術を統合するためのプログラミング

IT-PT プラットフォーム技術

IT-SIA システムインテグレーションとアーキテクチャ

IT-WS Webシステムとその技術

IT-PF プログラミング基礎

CE-OPS オペレーティングシステム

IT-IAS 情報保証と情報セキュリティ

CE-SWE ソフトウェア工学

IT知識体系の領域

組織・管理に関する技術領域

ハードウェアの設計・製造に関する技術領域

コンピュータ科学の原理・理論領域

CE-CAO コンピュータのアーキテクチャと構成

IT-IM 情報管理

IT-SP 社会的な観点とプロフェッショナルとしての課題

CE-NWK テレコミュニケーション

IT-NET ネットワーク

図3-2 CC2005から抽出したIT知識体系

Page 9: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

9

表 3.1-1 IT知識体系の科目一覧

科目名 概要 目標 1 2 3 4 5 6 7 8 9 10 11 12 13

1IT-IAS 情報保証と情報セキュリティ

運用上の問題、ポリシー、攻撃と防御の方法、リスク分析、情報セキュリティなど

システムを安全かつ確実に運用・管理するために不可欠なセキュリティの考え方と実現方法を理解する。

IT-IAS1.基礎的な問題

IT-IAS2.情報セキュリティの仕組み(対策)

IT-IAS3.運用上の問題

IT-IAS4.ポリシー

IT-IAS5.攻撃IT-IAS6.情報セキュリティ分野

IT-IAS7.フォレンジック(情報証拠)

IT-IAS8.情報の状態

IT-IAS9.情報セキュリティサービス

IT-IAS10.脅威分析モデル

IT-IAS11.脆弱性

2

IT-SP 社会的な観点とプロフェッショナルとしての課題

コンピュータの歴史、社会性、専門性、倫理的な問題と責任、法的な問題

ITを有効に活用するのに必要な人的・社会的知識を修得する。

IT-SP1.プロフェッショナルとしてのコミュニケーション

IT-SP2.コンピュータの歴史

IT-SP3.コンピュータを取り巻く社会環境

IT-SP4.チームワーク

IT-SP5.知的財産権

IT-SP6.コンピュータの法的問題

IT-SP7.組織の中のIT

IT-SP8.プロフェッショナルとしての倫理的な問題と責任

IT-SP9.プライバシーと個人の自由

3IT-IM 情報管理

データや情報に関する収集、編成、利用、管理、モデリング、変換、表現、信頼性、セキュリティ

情報やデータの収集、設計、管理、利用方法を修得する。

IT-IM1.情報管理の概念と基礎

IT-IM2.データベース問合わせ言語

IT-IM3.データアーキテクチャ

IT-IM4.データモデリングとデータベース設計

IT-IM5.データと情報の管理

IT-IM6.データベースの応用分野

4IT-WS Webシステムとその技術

Web上のアプリケーションやソフトウェア、デジタルメディアの融合、社会的問題、倫理的問題、安全性

Webシステムの仕組みと、その構成要素、開発方法について学ぶ。

IT-WS1.Web技術

IT-WS2.情報アーキテクチャ

IT-WS3.デジタルメディア

IT-WS4.Web開発

IT-WS5.脆弱性IT-WS6.ソーシャルソフトウェア

5IT-PF プログラミング基礎

基本的プログラミング概念、イベント駆動プログラミング、オブジェクト指向プログラミング、基本データ構造、アルゴリズム的プロセス

プログラミングの概念と基本技術を修得する。

IT-PF1.基本データ構造

IT-PF2.プログラミングの基本的構成要素

IT-PF3.オブジェクト指向プログラミング

IT-PF4.アルゴリズムと問題解決

IT-PF5.イベント駆動プログラミング

IT-PF6.再帰

6

IT-IPT 技術を統合するためのプログラミング

種々のプログラミング言語の特徴と利用方法、アーキテクチャ、アプリケーションプログラミングインタフェース、プログラミングの実践

複数のシステムやアプリケーションの通信や協調を実現するためのプログラミング方法について学習する。

IT-IPT1.システム間通信

IT-IPT2.データ割り当てと交換

IT-IPT3.統合的コーディング

IT-IPT4.スクリプティング手法

IT-IPT5.ソフトウェアセキュリティの実現

IT-IPT6.種々の問題

IT-IPT7.プログラミング言語の概要

7CE-SWE ソフトウェア工学

要求分析と仕様決定、設計、構築、テスト、運用、保守、プロジェクト管理

高品質のソフトウェアを効果的かつ効率的に構築するための方法や知識を修得する。

CE-SWE0.歴史と概要

CE-SWE1.ソフトウェアプロセス

CE-SWE2.ソフトウェアの要求と仕様

CE-SWE3.ソフトウェアの設計

CE-SWE4.ソフトウェアのテストと検証

CE-SWE5.ソフトウェアの保守

CE-SWE6.ソフトウェア開発・保守ツールと環境

CE-SWE7.ソフトウェアプロジェクト管理

CE-SWE8.言語翻訳

CE-SWE9.ソフトウェアのフォールトトレランス

CE-SWE10.ソフトウェアの構成管理

CE-SWE11.ソフトェアの標準化

8

IT-SIA システムインテグレーションとアーキテクチャ

要求収集、調達、構築、プロジェクト管理、検証、ITアプリケーションと組織プロセスの相互関係

システムを具現化するための手順や方法について学ぶ。

IT-SIA1.要求仕様

IT-SIA2.調達/手配

IT-SIA3.インテグレーション

IT-SIA4.プロジェクト管理

IT-SIA5.テストと品質保証

IT-SIA6.組織の特性

IT-SIA7.アーキテクチャ

9IT-NET ネットワーク

データ通信、電気通信、インターネット・イントラネット、インフラセキュリティ、ネットワークアプリケーションなど

ネットワークの基礎として、通信技術、ネットワークアプリケーション、セキュリティなどについて学ぶ。

IT-NET1.ネットワークの基礎

IT-NET2.ルーティングとスイッチング

IT-NET3.物理層

IT-NET4.セキュリティ

IT-NET5.アプリケーション分野

IT-NET6.ネットワーク管理

CE-NWK0.歴史と概要

CE-NWK1. 通信ネットワークのアーキテクチャ

CE-NWK2.通信ネットワークのプロトコル

CE-NWK3.LANとWAN

CE-NWK4.クライアントサーバコンピューティング

CE-NWK5.データのセキュリティと整合性

CE-NWK6.ワイヤレスコンピューティングとモバイルコンピュー

CE-NWK7.データ通信

CE-NWK8.組込み機器向けネットワーク

CE-NWK9.通信技術とネットワーク概要

CE-NWK10.性能評価

CE-NWK11.ネットワーク管理

CE-NWK12.圧縮と伸張

CE-NWK13.クラスタシステム

CE-NWK14.インターネットアプリケーション

CE-NWK15.次世代インターネット

CE-NWK16.放送

11IT-PT プラットフォーム技術

ハードウェア・ソフトウェアの基礎、ITシステム構成要素の統合方法

ITシステムを構成するハードウェア、ソフトウェアの基礎を修得する。

IT-PT1.オペレーティングシステム

IT-PT2.アーキテクチャと機構

IT-PT3.コンピュータインフラストラクチャ

IT-PT4.デプロイメントソフトウェア

IT-PT5.ファームウェア

IT-PT6.ハードウェア

12CE-OPS オペレーティングシステム

オペレーティングシステムの基本原理と目的、利用法、設計と実装

オペレーティングシステムの原理と目的を理解し、その利用法や設計・実装時の要点を修得する。

CE-OPS0.歴史と概要

CE-OPS1.並行性

CE-OPS2.スケジューリングとディスパッチ

CE-OPS3.メモリ管理

CE-OPS4.セキュリティと保護

CE-OPS5.ファイル管理

CE-OPS6.リアルタイムOS

CE-OPS7.OSの概要

CE-OPS8.設計の原則

CE-OPS9.デバイス管理

CE-OPS10.システム性能評価

ピュータ

ハード

ウェアと

アーキテ

13

CE-CAO コンピュータのアーキテクチャと構成

コンピュータアーキテクチャの概要、基本原理

コンピュータアーキテクチャの概要を把握し、コンピュータの原理と扱い方を修得する。

CE-CAO0.歴史と概要

CE-CAO1.コンピュータアーキテクチャの基礎

CE-CAO2.メモリシステムの構成とアーキテクチャ

CE-CAO3.インタフェースと通信

CE-CAO4.デバイスサブシステム

CE-CAO5.CPUアーキテクチャ

CE-CAO6.性能・コスト評価

CE-CAO7.分散・並列処理

CE-CAO8.コンピュータによる計算

CE-CAO9.性能向上

14 IT-ITF IT基礎IT分野の概要と他のコンピュータ関連分野との関連

ITの背景や特徴を理解する。IT-ITF1.ITの一般的なテーマ

IT-ITF2.組織の問題

IT-ITF3.ITの歴史

IT-ITF4.IT分野(学科)とそれに関連のある分野(学科)

IT-ITF5.応用領域

IT-ITF6.IT分野における数学と統計学の活用

CE-ESY0.歴史と概要

CE-ESY1.低電力コンピューティング

CE-ESY2.高信頼性システムの設計

CE-ESY3.組込み用アーキテクチャ

CE-ESY4.開発環境

CE-ESY5.ライフサイクル

CE-ESY6.要件分析

CE-ESY7.仕様定義

CE-ESY8.構造設計

CE-ESY9.テスト

CE-ESY10.プロジェクト管理

CE-ESY11.並行設計(ハードウェア、ソフトウェア

CE-ESY12.実装

CE-ESY13.リアルタイムシステム設計

CE-ESY14.組込みマイクロコントローラ

CE-ESY15.組込みプログラム

CE-ESY16.設計手法

CE-ESY17.ツールによるサポート

CE-ESY18.ネットワーク型組込みシステム

CE-ESY19.インタフェースシステムと混合信号システム

CE-ESY20.センサ技術

CE-ESY21.デバイスドライバ

CE-ESY22.メンテナンス

CE-ESY23.専門システム

CE-ESY24.信頼性とフォールトトレランス

複数領域にまたがるもの

15CE-ESY 組込みシステム

組込みシステムの開発に必要な、マイクロコントローラ、組込みプログラム、リアルタイムオペレーティングシステム等の構成要素、および、設計手法、開発環境、開発プロセスについて学習する。

マイクロコントローラ、組込みプログラム、リアルタイムオペレーティングシステム、設計手法など

ソフトウェアの方法と技術

システム基盤

10CE-NWK テレコミュニケーション

LANとWAN、クライアントサーバー、データの整合性、セキュリティなど

コンピュータネットワークの概要を把握し、通信の仕組みを理解する。

分野

組織関連事項と情報

システム

応用技術

Page 10: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

10

3.2 OSSモデルカリキュラムの位置付け

拡充後の OSS モデルカリキュラムについて、図 3-2 と同様の特徴空間にマッピングを行なった結果

を図 3-3 に示す。拡充した知識項目は、拡充前と比べて、この空間上で大きな移動はないが、新規知識

項目によってOSSモデルカリキュラムは縦軸の上下それぞれの方向に拡張されたことが分かる。 また、OSS モデルカリキュラムは CC2005 から抽出した IT 知識体系の領域とほぼ一致しており、

CC2005の5分野との比較において、より実践的な IT技術に重きが置かれていることが分かる。 IT 知識体系で習得する技術とOSS モデルカリキュラムで習得する技術の間には密接な関連があるこ

とが、本図からも示唆される。

図3-3 OSSモデルカリキュラムの位置付け

なお、本調査において、拡充に伴い、OSS モデルカリキュラム V1 から OSS 知識の番号体系の見直

しを行なった。V1との番号の対応を表3-2に示す。

Page 11: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

11

表 3.2-1 OSS知識項目番号体系

Page 12: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

12

4. OSS モデルカリキュラム V1 からの改定内容と改訂理由

4.1 拡充概要

1 章に記した通り、本調査では以下の OSS モデルカリキュラム V1 の拡充を実施した。

・ 27 の OSS 関連知識のうち 12 の知識項目の 23 科目について拡充を実施し、14 知識

項目の 24 科目とした。 ・ 新規知識項目 3 科目(OSS コミュニティマネジメント、OSS 開発プロセス、デバイ

スドライバ)を追加した。 ・ モデルコースウェアを、基本知識、応用知識それぞれ 10 コマ~15 コマに再定義した。 ・ OSS の基本知識のうち、拡充後の 11 科目について、各科目の学習を通じて習得する

ことが期待される根幹となる 10 項目の知識・概念を解説した、学習ガイダンス(課

題設定、学習の要点、理解を助ける概念図、解説、参考資料リスト等)を拡充した。 ・ OSS の応用知識のうち、拡充後の 13 科目について、各科目の学習を通じて習得する

ことが期待される根幹となる 5 項目から 10 項目の知識・概念を解説した、学習ガイ

ダンス(課題設定、学習の要点、理解を助ける概念図、解説、参考資料リスト等)を

拡充した。

この拡充によるモデルコースウェアと学習ガイダンスの対応を、図 4-1 に示す。

ガイダンス コースウェア ガイダンス コースウェア

10項目 基本知識

10項目 応用知識

基本・応用知識 15項目

10~15項目

V1

10項目 基本知識

5~10項目 応用知識

改定後

基本知識 10~15項目

応用知識

図 4-1 モデルコースウェアと学習ガイダンスの対応

表 4-1 に各知識科目の拡充作業の結果(変更規模、コースウェア数の増減、ガイダンス

数の増減)と拡充の視点を示した。変更規模の意味は次の通り。 ・ 小規模な変更

V1 をほとんど流用して、わずかな組み替えや追加削除を行なったもの。

Page 13: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

13

・ 中規模な変更 V1 のコースウェアとガイダンス全般に渡って、組み替えや追加削除を行なった

もの。 ・ 大規模な変更

V1 を根本から見直して、大幅な組み替えや追加削除を行なったもの。

Page 14: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

14

表 4.1-1 拡充概要

Page 15: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

15

4.2 改定内容と改訂理由

以下に各知識科目の改訂概要と改定内容を記述する。 4.2.1 OSS概要に関する知識

4.2.1.1 改訂概要

本改訂では、V1 の基本知識と応用知識を統合し、基本知識のみのカリキュラムとした。カリキュラ

ムの内容に関する改訂は小規模に留まった。 再編にあたっては、V1 でやや冗長的な構成となっていたワークショップを対象として、密度を上げ

る編成を行った。また、学習ガイダンスの習得ポイントを並び換え、学習の要点に追補を行い、学習ガ

イダンスとコースウェアとの整合性を強化した。更に、前時代的となった情報を排除し、新たな項目を

加え、OSS開発プロセスに関する知識のカリキュラム追加に対応した。 4.2.1.2 改訂内容

学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 学習の要点に「伽藍とバザール」を追補し、コースウェアとの整合性を図り、OSS開発プロセスに

関する知識のカリキュラム追加に対応した。(1) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 「各種のOSSサーバ」と「OSSの開発ツール」を統合し、学習の要点と解説を簡潔化した。また

仮想化に関する学習の要点は、「オープンソース OS の仮想化と動作確認」にある学習の要点と

重なるため削除した。(3) ・ 「OSS のデスクトップアプリケーション」と「OSS のサーバアプリケーション」を統合し、学習

の要点と解説を簡潔化した。(4) ・ 「OSSの利用状況」と「OSSによるWebシステムの構築」を統合し、学習の要点と解説を簡潔化

した。(7) ・ 「OSSコミュニティの種類と特徴、参加方法」と「インターネット上のOSS関連情報」を統合し、

学習の要点と解説を簡潔化した。またコースウェアに OSS コミュニティ活動に関するワークシ

ョップを追加し、OSS開発プロセスに関する知識のカリキュラム追加に対応した。(8) ・ 「オープンソースOSの導入」、「サーバの導入1 (メール、Web)」、「サーバの導入2 (DB、運用管

理)」、「仮想化ツールの導入」をひとつに統合し、学習の要点と解説を簡略化した。(9) ・ 「デスクトップアプリケーションの導入1 (ブラウザ、メーラ)」、「デスクトップアプリケーション

の導入 2 (オフィス、画像)」、「サーバアプリケーションの導入 (CMS、ブログ、SNS)」をひと

つに統合し、学習の要点と解説を簡潔化した。(10)

Page 16: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

16

本改訂における改訂一覧を下記表に示す。

表 4.2-1 ガイダンス改訂結果

No V1 ガイダンス(基本) 改訂後 ガイダンス No

1オープンソースソフトウェア(OSS)と

は?オープンソースソフトウェア(OSS)と

は?1

2 UNIXからLinuxへの歴史 UNIXからLinuxへの歴史 23 各種のOSSサーバ4 OSSの開発ツール5 OSSのデスクトップアプリケーション6 OSSのサーバアプリケーション7 OSSの標準化動向と標準化の意義8 OSSの利用状況9 OSSによるWebシステムの構築

10OSSコミュニティの種類と特徴、参

加方法

No V1 ガイダンス(応用)1 OSS販売(パッケージ・技術)ビジネ

2サポート / コンサルティング / 教育

ビジネス3 インターネット上のOSS関連情報4 オープンソースOSの導入5 サーバの導入1 (メール、Web)6 サーバの導入2 (DB、運用管理)

7デスクトップアプリケーションの導入

1 (ブラウザ、メーラ)

8デスクトップアプリケーションの導入

2 (オフィス、画像)

9サーバアプリケーションの導入

(CMS、ブログ、SNS)10 仮想化ツールの導入

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

オープンソースOSの仮想化と動作確認

9

10オープンソースのアプリケーション

の導入と動作確認

オープンソースを用いたシステム事例

7

OSSコミュニティとOSS関連情報 8

OSSの標準化動向と標準化の意義 5

オープンソースソフトウェアビジネス 6

OSSのサーバと開発ツール 3

OSSの代表的なアプリケーション 4

Page 17: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

17

表 4.2-2 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 オープンソースの理念 オープンソースの理念 12 オープンソースOSの歴史 オープンソースOSの歴史 23 代表的なオープンソース 代表的なオープンソース 34 代表的なオープンソース開発言語 代表的なオープンソース開発言語 4

5代表的なオープンソースアプリケー

ションOSSのデスクトップアプリケーション 5

6 オープンソースの市場動向 OSSのサーバアプリケーション 67 オープンソースを用いたシステム事例 オープンソースの市場動向 78 オープンソースソフトウェアコミュニティ オープンソースソフトウェアビジネス 89 オープンソースソフトウェアビジネス オープンソースを用いたシステム事例 910 オープンソースの技術情報獲得方法 Webシステムの構築 10

11オープンソースのOSの導入と動作確

認オープンソースソフトウェアコミュニティ 11

12オープンソースのサーバ製品の導入と

動作確認オープンソースの技術情報獲得方法 12

13デスクトップアプリケーションの導入と

動作確認オープンソースコミュニティ活動の演習 13

14サーバサイドアプリケーションの導入

と動作確認オープンソースOSの仮想化と動作確

認14

15オープンソースの仮想化ツールの導

入と動作確認オープンソースのアプリケーションの

導入と動作確認15

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 18: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

18

表 4.2-3 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 オープンソースの理念 オープンソースソフトウェア(OSS)とは? 12 オープンソースOSの歴史 UNIXからLinuxへの歴史 23 代表的なオープンソース4 代表的なオープンソース開発言語5 OSSのデスクトップアプリケーション6 OSSのサーバアプリケーション7 オープンソースの市場動向 OSSの標準化動向と標準化の意義 58 オープンソースソフトウェアビジネス オープンソースソフトウェアビジネス 69 オープンソースを用いたシステム事例10 Webシステムの構築11 オープンソースソフトウェアコミュニティ12 オープンソースの技術情報獲得方法13 オープンソースコミュニティ活動の演習14 オープンソースOSの仮想化と動作確認 オープンソースOSの仮想化と動作確認 9

15オープンソースのアプリケーションの導

入と動作確認オープンソースのアプリケーションの導

入と動作確認10

OSSコミュニティとOSS関連情報 8

オープンソースを用いたシステム事例 7

OSSの代表的なアプリケーション 4

OSSのサーバと開発ツール 3

Page 19: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

19

4.2.2 法務分野に関する知識

4.2.2.1 改訂概要

本改訂では、コースウェアの数変更に伴う再構成と、ガイダンスの解説で年月の経過によって更新が

必要なものを見直すという2点について改訂を行う小規模の改訂を実施した。 4.2.2.2 基本知識の改定内容

学習ガイダンスで、V1の解説に追補した内容は以下のとおりである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの回を括弧内の番号で示す。

・ 解説に文書に適用されるCCライセンスを追記した。(1) ・ 解説にGPL v3 の説明の追記と、IPAが公開する GPL V3 へのポインタを追記した。(4) 本改訂における改訂一覧を下記表に示す。

表 4.2-4 コースウェア改訂結果

Page 20: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

20

表 4.2-5 コースウェアとガイダンスの対比

4.2.2.3 応用知識の改定内容

学習ガイダンスで、V1の解説に追補した内容はない。 本改訂における改訂一覧を下記表に示す。

Page 21: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

21

表 4.2-6 コースウェア改訂結果

表 4.2-7 コースウェアとガイダンスの対比

Page 22: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

22

4.2.3 Javaに関する知識

4.2.3.1 改訂概要

本改訂では、全体的には V1 の内容を踏襲しつつも OSS に関する知識の見直しを行った。また、ITスキル標準のレベル分けに合わせ、基本知識では基本文法を、応用知識ではそれ以外を扱う内容に再編

した。 基本知識では、カリキュラムの内容に関する改訂は中規模となった。応用的と判断される習得ポイン

トを応用知識へ移動させ、オブジェクト指向に関する知識、および、Java独特の機能に関する知識を増

補した。 応用知識では、カリキュラムの内容に関する改訂は中規模となった。冗長な感のあった Web アプリ

ケーション開発に関する習得ポイントを圧縮し、OSSの利用や開発に関する知識を増補した。 4.2.3.2 基本知識の改訂内容

※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。 改訂後の学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 標準クラスライブラリの解説を追加した。(7) ・ ジェネリクスの解説を追加した。(8) ・ 基本的なデータ構造とアリゴリズムの解説を追加した(9) 改訂後の学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ オブジェクト指向の解説を大きく増補した。(4)(5)(6)

V1の学習ガイダンスで、応用知識へ移動した習得ポイントは以下の通りである。 ・ ネットワーク、DB操作、MVCの解説を移動した。(7)(9)(10)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ Javaのリファレンスはレベル感を統一するため削除した。(5) ・ Eclipseの利用方法は応用知識のコースウェアのみ残し、ガイダンスからは削除した。 (6) 本改訂における改訂一覧を下記表に示す。

Page 23: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

23

表 4.2-8 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No1 Java言語の歴史、特徴、思想と背景 Java言語の歴史、特長、種類 12 Javaを用いたプログラミング方法 Javaの実行手順 2

3Java言語の基本的な構造、型、

演算子、制御構文Javaを用いたプログラミング手法 3

4Javaによるオブジェクト指向

プログラミングカプセル化による

オブジェクト指向プログラミング4

5Javaによるアプリケーション開発、

各種リソースの利用継承と多相性を利用した

クラスの再利用5

6 Eclipseを用いたJavaプログラミングインタフェースを利用した

クラスの抽象化6

7 Javaによるネットワークプログラミング標準クラスライブラリを使用したプログラミング

7

8ServletとJSPによる

Webアプリケーション開発ジェネリクスを使用した

メタプログラミング8

9JDBCによる

データベースアクセス方法Javaによるアルゴリズムの実装 9

10 MVCアーキテクチャの基本と特徴ServletとJSPによる

Webアプリケーション開発10

応用へ

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 24: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

24

表 4.2-9 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 Javaの基本 Javaの基本 12 Java言語の基本構造 基本文法 2

3オブジェクト指向プログラミングの

メリットクラスの基本と

オブジェクト指向プログラミング3

4 Javaによるアプリケーション開発手順 カプセル化 45 Javaによるネットワークプログラミング 継承と多相性 5

6Servlet/JSP/JDBCによる

Webアプリケーション開発の概要継承の応用 6

7 JDBCによるデータベースアクセス 例外 78 MVCモデル 入出力ライブラリの基本 8

文字列、数値クラスの基本 9ジェネリクス 10

アルゴリズムとデータ構造の実装・1(リンクリスト)

11

アルゴリズムとデータ構造の実装・2(キューとスタック)

12

アルゴリズムとデータ構造の使用 13Servlet/JSPによる

Webアプリケーション開発の概要14

Javaの応用利用例 15

応用へ

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 25: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

25

表 4.2-10コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 Javaの基本 Java言語の歴史、特長、種類 12 基本文法 Javaの実行手順 2

3クラスの基本と

オブジェクト指向プログラミングJavaを用いたプログラミング手法 3

4 カプセル化カプセル化による

オブジェクト指向プログラミング4

5 継承と多相性継承と多相性を利用した

クラスの再利用5

6 継承の応用インタフェースを利用した

クラスの抽象化6

7 例外標準クラスライブラリを使用したプログラミング

7

8 入出力ライブラリの基本ジェネリクスを使用した

メタプログラミング8

9 文字列、数値クラスの基本 Javaによるアルゴリズムの実装 9

10 ジェネリクスServletとJSPによる

Webアプリケーション開発10

11アルゴリズムとデータ構造の実装・1

(リンクリスト)

12アルゴリズムとデータ構造の実装・2

(キューとスタック)13 アルゴリズムとデータ構造の使用

14Servlet/JSPによる

Webアプリケーション開発の概要15 Javaの応用利用例

Page 26: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

26

4.2.3.3 応用知識の改訂内容

改訂後の学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 文字コードや国際化の対応方法を追加した。(1) ・ テストやデバッグの方法、利用できるツールの紹介を追加した。(2) ・ 既存のソースコードを読み解く方法を追加した。(10) ・ Javaを利用した開発を行う上で、応用的な知識と判断される、並列処理に関する知識やGUIに関

する知識を追加した。(3)(5) 改訂後の学習ガイダンスで、V1の基本知識から移動した習得ポイントは以下の通りである。

・ ネットワーク、DB操作、MVCの解説を移動した。(4)(6)(9)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ オブジェクト指向分析は、基本知識で十分増補したとして、応用知識からは削除した。(1) ・ Web アプリケーションの作成方法に関する知識は、EJB による実践の中に含まれるとして、削除

した。(2)(3)(4)(5) ・ デザインパターンをOSSの要素ではないため削除した。(9) ・ Java アプリケーションのチューニングは他の習得ポイントを比べて重要度が低いとし、削除した

が、コースウェアには残している。(10) 本改訂における改訂一覧を下記表に示す。

Page 27: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

27

表 4.2-11 ガイダンス改訂結果

No V1 ガイダンス(基本) 改訂後 ガイダンス No7 Javaによるネットワークプログラミング 文字コードと国際化 1

9JDBCによる

データベースアクセス方法テストとデバッグ 2

10 MVCアーキテクチャの基本と特徴 スレッドと同期 3ネットワークプログラミング 4

No V1 ガイダンスJavaを利用した

GUIアプリケーション5

1 オブジェクト指向分析 MVCアーキテクチャの基本と特徴 6

2 Javaを用いたWebサーバの実装EJBによるアプリケーション開発の

基本7

3 Javaアプリケーション設計の手順 EJBによるビジネスロジックの実装 84 Javaアプリケーション開発の作業手順 JDBCによるデータベースの操作 95 JSPによるプレゼンテーションの実装 コードリーディング 10

6EJBによるアプリケーション開発の

基本7 EJBによるビジネスロジックの実装8 JDBCによるデータベースの操作9 デザインパターン10 Javaアプリケーションのチューニング

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 28: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

28

表 4.2-12 コースウェア改訂結果

No V1 コースウェア(基本) 改訂後 コースウェア No4 Javaによるアプリケーション開発手順 統合開発環境の利用 15 Javaによるネットワークプログラミング 文字コードと国際化 27 JDBCによるデータベースアクセス テストとデバッグ 38 MVCモデル スレッドと同期 4

ネットワーク 5

No V1 コースウェアGUIアプリケーション開発・1

(GUIとイベントドリブン)6

9 EJBによるアプリケーション開発GUIアプリケーション開発・2

(GUIコンポーネント)7

10JavaによるServer処理実装の

特徴と設計方法MVCモデル 8

11JavaによるWebアプリケーションの

設計/実装JDBCによるデータベースアクセス 9

12JavaによるServerSideJava/

Webアプリケーション実装EJBによるアプリケーション開発 10

13オブジェクト指向システム

分析/設計/実装の実践技術JavaによるServer処理実装の

特徴と設計方法11

14 デザインパターンによる開発手順JavaによるWebアプリケーションの

設計/実装12

15 JavaのパフォーマンスチューニングJavaによるServerSideJava/

Webアプリケーション実装13

コードリーディング 14Java アプリケーションのチューニング 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 29: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

29

表 4.2-13コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 統合開発環境の利用 文字コードと国際化 12 文字コードと国際化 テストとデバッグ 23 テストとデバッグ スレッドと同期 34 スレッドと同期 ネットワークプログラミング 4

5 ネットワークJavaを利用した

GUIアプリケーション5

6GUIアプリケーション開発・1

(GUIとイベントドリブン)MVCアーキテクチャの基本と特徴 6

7GUIアプリケーション開発・2

(GUIコンポーネント)EJBによるアプリケーション開発の

基本7

8 MVCモデル EJBによるビジネスロジックの実装 89 JDBCによるデータベースアクセス JDBCによるデータベースの操作 910 EJBによるアプリケーション開発 コードリーディング 10

11JavaによるServer処理実装の

特徴と設計方法

12JavaによるWebアプリケーションの

設計/実装

13JavaによるServerSideJava/

Webアプリケーション実装14 コードリーディング15 Java アプリケーションのチューニング

Page 30: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

30

4.2.4 Cに関する知識

4.2.4.1 改訂概要

本改訂では、V1でひとつのカリキュラムになっていたCとC++を個別のカリキュラムに分割再編し

た。組み替えにあたっては、C に関する V1 の知識体系が、基本知識では文法に関する内容を扱い、そ

れ以外が応用知識で扱う構成となっていたので、この体系を踏襲して再編を行った。 基本知識では、カリキュラムの内容に関する改訂は小規模に留まった。習得ポイントを新たにひとつ

追加し、基本データ構造の扱いに関する知識を手厚くした。 応用知識では、カリキュラムの内容に関する改訂は大規模となった。V1 の学習ガイダンスで、C に

関する3つの応用知識の習得ポイントについては、内容に再検討を加え、学習の要点を追加した。更に、

新たに追加した習得ポイントと共に、OSS に関する固有の知識を精査し、OSS の実践的な技能を習得

できる構成にした。 4.2.4.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 配列と文字列に関する知識項目を学習の要点とした。(3) 学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ 解説にマクロ関数を追加した。(6) ・ 学習の要点と解説に共用体と列挙型を追加し、それに伴い構造体に関する解説を簡潔化した。(7) ・ 解説に typedefキーワードを追加した。(7) ・ 学習の要点と解説にヒープ領域に関する知識項目を追加し、それに伴いデータ構造の解説を簡略化

した。(9) ・ 再帰、探索、整列、併合を学習の要点と解説に追加した。(10) 学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ 「ポインタを利用した効果的なプログラミング」の解説で、配列に関する知識項目を新たに追加し

た習得ポイントの解説に移動した。(3、5) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 「標準入出力を利用したプログラミング」と「ファイル入出力とファイル/ディレクトリ操作」を

統合し、解説を簡潔化した。(8)

Page 31: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

31

本改訂における改訂一覧を下記表に示す。

表 4.2-14 ガイダンス改訂結果

No V1 ガイダンス(基本) 改訂後 ガイダンス No1 Cの歴史と特徴、開発事例と開発手順 Cの歴史と特徴、開発事例と開発手順 1

2 C の基本的な構造、型、演算子、制

御構文 C の基本的な構造、型、演算子、制

御構文2

3 関数の定義、標準関数の利用方法 配列と文字列 3

4ポインタを利用した効果的なプログラミ

ング関数の定義、標準関数の利用方法 4

5構造体の概念と構造体を使用したプロ

グラミングポインタを利用した効果的なプログラミ

ング5

6 マクロの利用(プリプロセッサ機能) マクロの利用(プリプロセッサ機能) 67 標準入出力を利用したプログラミング 構造体・共用体・列挙型 7

8ファイル入出力とファイル/ディレクト

リ操作入出力 8

9 データ構造 データ構造 910 アルゴリズム アルゴリズム 10

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 32: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

32

表 4.2-15 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア NoCの基本 1

変数と基本制御構文 2ビット操作 3

配列 4文字列 5関数 6

3 文字列操作 ポインタ 74 関数 高度なポインタ 85 ポインタ プリプロセッサと分割コンパイル 96 構造体 構造体の定義 107 コンソール入出力 構造体・共用体・列挙型 118 ファイル管理 入出力 12

データ構造 13再帰と探索の実装 14整列と併合の実装 15

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Cの基本構造2

1 Cの基本

9 データ構造

表 4.2-16 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 Cの基本 Cの歴史と特徴、開発事例と開発手順 12 変数と基本制御構文3 ビット操作4 配列5 文字列6 関数 関数の定義、標準関数の利用方法 47 ポインタ8 高度なポインタ9 プリプロセッサと分割コンパイル マクロの利用(プリプロセッサ機能) 610 構造体の定義11 構造体・共用体・列挙型12 入出力 入出力 813 データ構造 データ構造 914 再帰と探索の実装15 整列と併合の実装

C の基本的な構造、型、演算子、制御構文

2

ポインタを利用した効果的なプログラミング

5

配列と文字列 3

構造体・共用体・列挙型 7

アルゴリズム 10

Page 33: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

33

4.2.4.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ Linuxの仮想アドレス空間におけるメモリアロケートの詳細に関する知識を学習の要点とした。(1) ・ Linux における CPU のアーキテクチャとセキュリティに関するプログラミングの知識を学習の要

点とした。(2) ・ OSSのツールを活用してのユニットテストとデバッグに関する知識を学習の要点とした。(3) ・ Linuxにおける並列処理と並行処理に関するプログラミングの知識を学習の要点とした。(5) ・ Linuxのソケットインタフェースを使用したプログラミングの知識を学習の要点とした。(6) ・ LSBとOpenI18Nに関するプログラミングの知識を学習の要点とした。(9) ・ OSSを活用したソースコードリーディングとコード解析手法を学習の要点とした。(10) 学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ Linuxのライブラリに関する特徴を学習の要点に追加し、静的ライブラリと共有ライブラリの構築

方法と利用方法を解説に追加した。(4) ・ C によるデータベースプログラミングの特徴を学習の要点に追加し、SQLite のライブラリに関す

る利用方法を解説に追加した。(7) ・ Gladeに関する知識を学習の要点と解説に追加した。(8) 学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ 「ライブラリの利用例1(DBライブラリ)」から、データベースに関する内容を分割した。(4、7)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ 「C++言語の歴史と特徴、開発事例と開発手順」は「4-3-基 C++」へ移動した。(1) ・ 「C++プログラムの構成、Cとの相違点」は「4-3-基 C++」へ移動した。(2) ・ 「基本的なC++プログラムの記述方法」は「4-3-基 C++」へ移動した。(3) ・ 「オブジェクト指向の概念」は「4-3-基 C++」へ移動した。(4) ・ 「C++言語によるオブジェクト指向プログラミング」は「4-3-基 C++」へ移動した。(5) ・ 「Standard Template Library」は「4-3-基 C++」へ移動した。(6) ・ 「QtによるGUIプログラミング」は「4-3-応 C++」へ移動した。(8) ・ 「ライブラリの利用例2 (オプション解析ライブラリ)」のコマンドライン引数に関する知識は「4-2-

基 C」のコースウェアへ移動した。(10)

Page 34: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

34

本改訂における改訂一覧を下記表に示す。

表 4.2-17 ガイダンス改訂結果

No V1 ガイダンス(応用) 改訂後 ガイダンス No

1C++言語の歴史と特徴、開発事例と開

発手順メモリアロケートの詳細 1

2 C++プログラムの構成、Cとの相違点 アーキテクチャとセキュリティ 23 基本的なC++プログラムの記述方法 テストとデバッグ 34 オブジェクト指向の概念 ライブラリの構築と利用 4

5C++言語によるオブジェクト指向プログ

ラミング並列処理 5

6 Standard Template Library ネットワーク 67 GTK+によるGUIプログラミング データベース 78 QtによるGUIプログラミング GUI 89 ライブラリの利用例1 (DBライブラリ) ポータビリティと国際化 9

10ライブラリの利用例2 (オプション解析ラ

イブラリ)コードリーディング 10

4-2-基 C へ4-3-基 C++ へ4-3-応 C++ へ凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 35: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

35

表 4.2-18 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No10 C++の基本 メモリアロケートの詳細 111 C++の基本構造 アーキテクチャとセキュリティ 212 オブジェクト指向プログラミング テストとデバッグ 313 STL(Standard Template Library) ライブラリの構築と利用 414 GUIアプリケーションの開発 並列処理 515 開発ライブラリの使用 ネットワーク 6

データベース 7GUI 8

演習Ⅰ(ネットワーク実装) 9演習Ⅱ(GUI実装) 10

ポータビリティと国際化 11コードリーディング 12

4-3-基 C++ へ

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-19 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 メモリアロケートの詳細 メモリアロケートの詳細 12 アーキテクチャとセキュリティ アーキテクチャとセキュリティ 23 テストとデバッグ テストとデバッグ 34 ライブラリの構築と利用 ライブラリの構築と利用 45 並列処理 並列処理 56 ネットワーク ネットワーク 67 データベース データベース 78 GUI GUI 89 演習Ⅰ(ネットワーク実装) ポータビリティと国際化 910 演習Ⅱ(GUI実装) コードリーディング 1011 ポータビリティと国際化12 コードリーディング

Page 36: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

36

4.2.5 C++に関する知識

4.2.5.1 改訂概要

本改訂では、V1でひとつのカリキュラムになっていたCとC++を個別のカリキュラムに分割再編し

た。組み替えにあたっては、C に関する V1 の知識体系が、基本知識では文法に関する内容を扱い、そ

れ以外が応用知識で扱う構成となっていたので、この体系に習い再編を行った。 基本知識では、カリキュラムの内容に関する改訂は中規模となった。V1 における C++の文法に関す

る6つの習得ポイントに対して精査を行い、手厚い内容の構成に改訂した。 応用知識では、カリキュラムの内容に関する改訂は大規模となった。V1 の学習ガイダンスで、C++

に関する3つの応用知識の習得ポイントについては、内容に再検討を加え、学習の要点を追加した。更

に、新たに追加した習得ポイントと共に、OSS に関する固有の知識を精査し、OSS の実践的な技能を

習得できる構成にした。 4.2.5.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 入出力クラスに関する知識項目を学習の要点とした。(9) 学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ オーバーロードとフレンドクラスに関する知識を学習の要点と解説に追加した。(4) ・ 継承の形態、仮想関数、多相性に関する知識を学習の要点と解説に追加した。(5) ・ 純粋仮想関数、抽象クラス、インタフェースクラス、多重継承、仮想基底クラスを学習の要点と開

設に追加した。(6) ・ ジェネリクスなプログラミング手法としてのテンプレートに関する知識を学習の要点と解説に追

加した。(7) ・ 名前空間、実行時型情報を学習の要点と解説に追加し、それと共に、例外、キャスト、変換関数を

解説に追加した。(8) 学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ 「C++言語の歴史と特徴、開発事例と開発手順」のオーバーロードに関する知識を分割して移動し

た。(2、4) ・ 「基本的なC++プログラムの記述方法」の例外に関する知識を分割して移動した。(2、8) ・ 「C++言語によるオブジェクト指向プログラミング」のオーバーロード、継承、抽象クラス、テン

プレートに関する知識を分割して移動した。(3、4、5、6、7) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 「C++言語の歴史と特徴、開発事例と開発手順」と「基本的なC++プログラムの記述方法」のC++の新しいデータ型、変数の宣言方法、スコープを統合した。(2)

・ 「C++プログラムの構成、C との相違点」と「C++言語によるオブジェクト指向プログラミング」

のクラスに関する知識を統合した。(3)

Page 37: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

37

・ 「C++言語の歴史と特徴、開発事例と開発手順」と「C++言語によるオブジェクト指向プログラミ

ング」のオーバーロードに関する知識を統合した。

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ 「GTK+によるGUIプログラミング」は「4-2-応 C」へ移動した。(6) ・ 「QtによるGUIプログラミング」は「4-3-応 C++」へ移動した。(8) ・ 「ライブラリの利用例1 (DBライブラリ)」は「4-3-応 C++」へ移動した。(8) ・ 「ライブラリの利用例2 (オプション解析ライブラリ)」のコマンドライン引数に関する知識は「4-2-

基 C」のコースウェアへ移動した。(10) 本改訂における改訂一覧を下記表に示す。

表 4.2-20 ガイダンス改訂結果

No V1 ガイダンス(応用) 改訂後 ガイダンス No

1C++言語の歴史と特徴、開発事例と開

発手順オブジェクト指向の概念 1

2 C++プログラムの構成、Cとの相違点 C++の基本 23 基本的なC++プログラムの記述方法 クラス 34 オブジェクト指向の概念 オーバーロード 4

5C++言語によるオブジェクト指向プログ

ラミング継承と多相性 5

6 Standard Template Library 抽象クラス・多重継承 67 GTK+によるGUIプログラミング テンプレート 78 QtによるGUIプログラミング 例外・名前空間・キャスト・変換関数 89 ライブラリの利用例1 (DBライブラリ) 入出力 9

10ライブラリの利用例2 (オプション解析ラ

イブラリ)Standard Template Library 10

4-2-基 C へ4-2-応 C へ4-3-応 C++ へ凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 38: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

38

表 4.2-21 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No10 C++の基本 オブジェクト指向の概念 111 C++の基本構造 C++の基本 212 オブジェクト指向プログラミング クラスの定義 313 STL(Standard Template Library) クラスの詳細 414 GUIアプリケーションの開発 関数のオーバーロード 515 開発ライブラリの使用 演算子のオーバーロード 6

継承と多相性 7抽象クラス・多重継承 8

テンプレート 9キャスト・名前空間 10

例外・変換関数 11入出力 12

演習(アルゴリズムとデータ構造の実装)

13

STLの概要 14アルゴリズムとデータ構造の使用 15

4-3-応 C++ へ

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-22 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 オブジェクト指向の概念 オブジェクト指向の概念 12 C++の基本 C++の基本 23 クラスの定義 クラス 34 クラスの詳細 オーバーロード 45 関数のオーバーロード 継承と多相性 56 演算子のオーバーロード 抽象クラス・多重継承 67 継承と多相性 テンプレート 78 抽象クラス・多重継承 例外・名前空間・キャスト・変換関数 89 テンプレート 入出力 910 キャスト・名前空間 Standard Template Library 1011 例外・変換関数12 入出力

13演習(アルゴリズムとデータ構造の

実装)14 STLの概要15 アルゴリズムとデータ構造の使用

Page 39: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

39

4.2.5.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。 ・ Linuxの仮想アドレス空間におけるメモリアロケートの詳細に関する知識を学習の要点とした。(1)

・ Linux における CPU のアーキテクチャとセキュリティに関するプログラミングの知識を学習の要

点とした。(2) ・ OSSのツールを活用してのユニットテストとデバッグに関する知識を学習の要点とした。(3) ・ Linuxにおける並列処理と並行処理に関するプログラミングの知識を学習の要点とした。(5) ・ Linuxのソケットインタフェースを使用したプログラミングの知識を学習の要点とした。(6) ・ LSBとOpenI18Nに関するプログラミングの知識を学習の要点とした。(9) ・ OSSを活用したソースコードリーディングとコード解析手法を学習の要点とした。(10) 学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。 ・ Linuxのライブラリに関する特徴を学習の要点に追加し、静的ライブラリと共有ライブラリの構築

方法と利用方法を解説に追加した。(4) ・ C++によるデータベースプログラミングの特徴を学習の要点に追加し、SQLite のライブラリに関

する利用方法を解説に追加した。(7) 学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ 「ライブラリの利用例1(DBライブラリ)」から、データベースに関する内容を分割した。(4、7)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ 「C++言語の歴史と特徴、開発事例と開発手順」は「4-3-基 C++」へ移動した。(1) ・ 「C++プログラムの構成、Cとの相違点」は「4-3-基 C++」へ移動した。(2) ・ 「基本的なC++プログラムの記述方法」は「4-3-基 C++」へ移動した。(3) ・ 「オブジェクト指向の概念」は「4-3-基 C++」へ移動した。(4) ・ 「C++言語によるオブジェクト指向プログラミング」は「4-3-基 C++」へ移動した。(5) ・ 「Standard Template Library」は「4-3-基 C++」へ移動した。(6) ・ 「GTK+によるGUIプログラミング」は「4-2-応 C」へ移動した。(8) ・ 「ライブラリの利用例2 (オプション解析ライブラリ)」のコマンドライン引数に関する知識は「4-2-

基 C」のコースウェアへ移動した。(10)

Page 40: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

40

本改訂における改訂一覧を下記表に示す。

表 4.2-23 ガイダンス改訂結果

No V1 ガイダンス(応用) 改訂後 ガイダンス No

1C++言語の歴史と特徴、開発事例と開

発手順メモリアロケートの詳細 1

2 C++プログラムの構成、Cとの相違点 アーキテクチャとセキュリティ 23 基本的なC++プログラムの記述方法 テストとデバッグ 34 オブジェクト指向の概念 ライブラリの構築と利用 4

5C++言語によるオブジェクト指向プログ

ラミング並列処理 5

6 Standard Template Library ネットワーク 67 GTK+によるGUIプログラミング データベース 78 QtによるGUIプログラミング GUI 89 ライブラリの利用例1 (DBライブラリ) ポータビリティと国際化 9

10ライブラリの利用例2 (オプション解析ラ

イブラリ)コードリーディング 10

4-2-基 C へ4-3-基 C++ へ4-2-応 C++ へ凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 41: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

41

表 4.2-24 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No10 C++の基本 メモリアロケートの詳細 111 C++の基本構造 アーキテクチャとセキュリティ 212 オブジェクト指向プログラミング テストとデバッグ 313 STL(Standard Template Library) ライブラリの構築と利用 414 GUIアプリケーションの開発 並列処理 515 開発ライブラリの使用 ネットワーク 6

データベース 7GUI 8

演習Ⅰ(ネットワーク実装) 9演習Ⅱ(GUI実装) 10

ポータビリティと国際化 11コードリーディング 12

4-3-基 C++ へ

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-25 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 メモリアロケートの詳細 メモリアロケートの詳細 12 アーキテクチャとセキュリティ アーキテクチャとセキュリティ 23 テストとデバッグ テストとデバッグ 34 ライブラリの構築と利用 ライブラリの構築と利用 45 並列処理 並列処理 56 ネットワーク ネットワーク 67 データベース データベース 78 GUI GUI 89 演習Ⅰ(ネットワーク実装) ポータビリティと国際化 910 演習Ⅱ(GUI実装) コードリーディング 1011 ポータビリティと国際化12 コードリーディング

Page 42: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

42

4.2.6 スクリプト言語に関する知識

4.2.6.1 改訂概要

名称をV1における「Light Weight Languageに関する知識」から改称した。 本改訂では、全体的にはV1の内容を踏襲しつつも、OSSに関する知識の見直しを行った。 基本知識では、カリキュラムの内容に関する改訂は小規模に留まった。利用頻度が高いスクリプト言

語であるJavaScriptに関する内容を追加し、全体を微修正した。 応用知識では、カリキュラムの内容に関する改訂は中規模となった。冗長な感のあった習得ポイント

を圧縮し、OSSの利用や開発に関する知識を増補した。 4.2.6.2 基本知識の改訂内容

※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。 改訂後の学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ JavaScriptの解説を追加した。(5) 改訂後の学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ Rubyにおける正規表現の利用方法を増補した。(8)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ GUIは需要が少ないと判断したため削除した。(10) 本改訂における改訂一覧を下記表に示す。

Page 43: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

43

表 4.2-26 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No

1Light Weight Languageの

歴史や特徴、種類、使い方スクリプト言語と

Webアプリケーションの基本1

2 Perlの特徴と正規表現 Perlの特徴と正規表現 2

3PHPの特徴と

埋め込みプログラミングPHPの特徴と

埋め込みプログラミング3

4 Pythonの特徴と連想配列 Pythonの特徴と連想配列 4

5Rubyの特徴、基本的な

構造、型、演算子、制御構文JavaScriptの特徴と

クライアントサイドプログラミング5

6Rubyによる

オブジェクト指向プログラミングRubyの特徴、基本的な

構造、型、演算子、制御構文6

7Rubyが持つ特徴的な

データクラス(配列、ハッシュ等)Rubyによる

オブジェクト指向プログラミング7

8Rubyにおけるデータ(数値、

文字列、その他)の操作Rubyにおけるデータ(数値、

文字列、その他)の操作8

9Rubyによるファイル操作の

プログラミングRubyが持つ特徴的な

データクラス(配列、ハッシュ等)9

10Rubyを用いた

GUIアプリケーション開発Rubyによるファイル操作の

プログラミング10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 44: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

44

表 4.2-27 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 LightWeightLangageの基本 スクリプト言語の概要と基本 12 Perlの基本構造 Webアプリケーションの紹介 23 PHPの基本構造 Perlの基本構造 34 Pythonの基本構造 PHPの基本構造 45 Rubyの基本構造 Pythonの基本構造 56 オブジェクト指向プログラミング JavaScript の基本構造 67 組み込みクラス[データ構造] Rubyの基本構造 78 組み込みクラス[データ操作] Rubyの基本文法 89 組み込みクラス[ファイル管理] クラスの基本 910 GUI アプリケーション開発 継承と多相性 1011 組み込みクラス(データ操作) 1112 正規表現 1213 組み込みクラス(データ構造) 1314 連想配列 1415 組み込みクラス(入出力) 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 45: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

45

表 4.2-28コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No

1 スクリプト言語の概要と基本スクリプト言語と

Webアプリケーションの基本1

2 Webアプリケーションの紹介 Perlの特徴と正規表現 2

3 Perlの基本構造PHPの特徴と

埋め込みプログラミング3

4 PHPの基本構造 Pythonの特徴と連想配列 4

5 Pythonの基本構造JavaScriptの特徴と

クライアントサイドプログラミング5

6 JavaScript の基本構造Rubyの特徴、基本的な

構造、型、演算子、制御構文6

7 Rubyの基本構造Rubyによる

オブジェクト指向プログラミング7

8 Rubyの基本文法Rubyにおけるデータ(数値、

文字列、その他)の操作8

9 クラスの基本Rubyが持つ特徴的な

データクラス(配列、ハッシュ等)9

10 継承と多相性Rubyによるファイル操作の

プログラミング10

11 組み込みクラス(データ操作)12 正規表現13 組み込みクラス(データ構造)14 連想配列15 組み込みクラス(入出力)

Page 46: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

46

4.2.6.3 応用知識の改訂内容

改訂後の学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 文字コードや多言語化の対応方法を追加した。(1) ・ Webアプリケーションの脆弱性や、その対策方法を追加した。(2) ・ テストやデバッグの方法、利用できるツールの紹介を追加した。(3) ・ 既存のソースコードを読み解く方法を追加した。(10) 改訂後の学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ Ruby on Railsの概要とMVCの概要を統合した。(4) ・ プラグインについての解説を1つに統合した。(8) ・ CMSについての解説を1つに統合した。(9) 本改訂における改訂一覧を下記表に示す。

表 4.2-29 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No1 Ruby on Rails (RoR)の仕組み 文字コードと多言語化 12 RoRにおけるMVCアーキテクチャ セキュリティ 23 Railsにおけるデータベース連携 テストとデバッグ 3

4RoRを利用した

データベースアプリケーション開発Ruby on Rails とは 4

5RoRを利用した

Webアプリケーション開発Ruby on Railsでのデータベース連携

5

6Webアプリケーション開発の

カスタマイズRuby on Railsを利用した

データベースアプリケーション開発6

7 RoRの機能拡張Ruby on Railsを利用したWebアプリケーション開発

7

8 RoRのプラグイン開発 Ruby on Railsのプラグイン開発 89 RoR応用アプリケーションの利用 Rubricksのカスタマイズ 910 Rubricksのカスタマイズ コードリーディング 10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 47: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

47

表 4.2-30 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No11 Ruby on Rails 文字コードと多言語化 1

12データベース

アプリケーション開発セキュリティ 2

13 Web アプリケーション開発 テストとデバッグ 314 プラグイン導入と開発 Ruby on Railsとは 4

15オープンソースシステムの

カスタマイズデータベース連携 5

データベースアプリケーション開発

6

Webアプリケーションの作成・1 7Webアプリケーションの作成・2 8

プラグイン導入と開発 9オープンソースシステムの

カスタマイズ10

コードリーディング 11

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-31コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 文字コードと多言語化 文字コードと多言語化 12 セキュリティ セキュリティ 23 テストとデバッグ テストとデバッグ 34 Ruby on Railsとは Ruby on Rails とは 4

5 データベース連携Ruby on Railsでのデータベース連携

5

6データベース

アプリケーション開発Ruby on Railsを利用した

データベースアプリケーション開発6

7 Webアプリケーションの作成・1Ruby on Railsを利用したWebアプリケーション開発

7

8 Webアプリケーションの作成・2 Ruby on Railsのプラグイン開発 89 プラグイン導入と開発 Rubricksのカスタマイズ 9

10オープンソースシステムの

カスタマイズコードリーディング 10

11 コードリーディング

Page 48: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

48

4.2.7 開発フレームワークに関する知識

4.2.7.1 改訂概要

本改訂では、基本的にはV1の内容を踏襲しつつ、基本知識と応用知識の割り振りを見直した。 基本知識では、カリキュラムの内容に関する改訂は中規模となった。V1 では応用知識であった様々

なフレームワークに関する知識を含め、開発フレームワークの総括的かつ実践に即した知識として再編

した。 応用知識では、カリキュラムの内容に関する改訂は大規模となった。内容をStruts、Hibernate、Spring

に絞ることで、より具体的な演習を中心とした内容に再編した。 4.2.7.2 基本知識の改訂内容

※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。 改訂後の学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ Webアプリケーションの設計手法については、冗長であったため、1つに統合した。(6) 改訂後の学習ガイダンスで、V1の応用知識から移動した習得ポイントは以下の通りである。

・ ORマッピングの概要の解説を移動した。(7) ・ DIxAOPの概要と具体例の解説を移動した。(8)(9)(10)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ 開発ツールの解説は「開発ツールに関する知識」へ移動した。(6)(7) V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ テスト支援ツールはフレームワークとは異なるため削除した。(8) 本改訂における改訂一覧を下記表に示す。

Page 49: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

49

表 4.2-32 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No

1開発フレームワークの

歴史、思想と背景開発フレームワークの

歴史、思想と背景1

2 開発フレームワークの特徴とメリット 開発フレームワークの特徴とメリット 2

3Webアプリケーションで利用できるOSS

フレームワークWebアプリケーションで利用できるOSS

フレームワーク3

4Tomcatの特徴とServlet/JSPによる

アプリケーション開発Tomcatの特徴とServlet/JSPによる

アプリケーション開発4

5アプリケーションサーバJbossの

機能と特徴アプリケーションサーバJbossの

機能と特徴5

6 ツール実行を自動化するAnt MVCフレームワークの概要 67 Javaプロジェクト管理ツールMaven ORマッピングフレームワークの概要 7

8Webアプリケーションの

テスト支援ツールCactusDIxAOPフレームワークの概要 8

9要求分析モデル

(DOA、OOA、Web MVC)Springフレームワークの利用 9

10Webアプリケーション開発における

実際の作業プロセスSeasar2の構成と特徴 10

No V1 ガイダンス(応用)5 ORマッピングの仕組み

7ORマッピングツール

(iBATIS)8 DIxAOPコンテナの仕組み

9DIxAOPコンテナ

(Springフレームワーク)

10DIxAOPコンテナ

(Seraser2)

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 50: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

50

表 4.2-33 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 開発フレームワークとは何か 開発フレームワークの概要と種類 1

2 開発フレームワークの種類と特徴オープンソースによる

Webアプリケーションのフレームワーク2

3オープンソースによる

WebアプリケーションのフレームワークフリーのWebコンテナ/J2EEコンテナの

概要3

4フリーのWebコンテナ/J2EEコンテナの

概要Webアプリケーションの

MVCフレームワーク概要4

5 オープンソースの開発ツール Strutsの概要 5

6開発フレームワークによる

開発の手順JSFの概要 6

Tapestryの概要 7No V1 コースウェア(応用) Wicketの概要 88 Strutsとは ORマッピングの概要 99 MyFace(JSF)の開発モデルとは HibernateとJPAの概要 10

10データベース接続・アクセスの

フレームワークiBATISの概要 11

11 DIxAOPコンテナの概要 AOP と DI の概要 1212 Springフレームワーク EJBとJBoss Seamの概要 1313 Seasar2 Springの概要 1414 Tapestry Seasar2の概要 1515 Strutsによるアプリケーション開発

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 51: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

51

表 4.2-34コースウェアとガイダンスの対比

No コースウェア ガイダンス No

1 開発フレームワークの概要と種類開発フレームワークの

歴史、思想と背景1

2オープンソースによる

Webアプリケーションのフレームワーク開発フレームワークの特徴とメリット 2

3フリーのWebコンテナ/J2EEコンテナの

概要Webアプリケーションで利用できるOSS

フレームワーク3

4Webアプリケーションの

MVCフレームワーク概要Tomcatの特徴とServlet/JSPによる

アプリケーション開発4

5 Strutsの概要アプリケーションサーバJbossの

機能と特徴5

6 JSFの概要 MVCフレームワークの概要 67 Tapestryの概要 ORマッピングフレームワークの概要 78 Wicketの概要 DIxAOPフレームワークの概要 89 ORマッピングの概要 Springフレームワークの利用 910 HibernateとJPAの概要 Seasar2の構成と特徴 1011 iBATISの概要12 AOP と DI の概要13 EJBとJBoss Seamの概要14 Springの概要15 Seasar2の概要

Page 52: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

52

4.2.7.3 応用知識の改訂内容

改訂後の学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 統合開発環境を利用した開発方法と、プラグインの紹介を追加した。(1) 改訂後の学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ SpringによるDIコンテナやAOPの実装方法を大きく増補した。(6)(7) 改訂後の学習ガイダンスで、V1の習得ポイントを分割したものは以下の通りである。

・ Strutsの解説を、MVCを軸として大きく増補した。(2)(3)(4)

V1の学習ガイダンスで、基本知識へ移動した習得ポイントは以下の通りである。

・ ORマッピング、DIxAOPについての解説を移動した。(5)(7)(8)(9)(10)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ 内容Struts、Hibernate、Springに絞ったことで、これら以外のフレームワークの解説は、一部を

基本知識のコースウェアに残し、全て削除した。(1)(3)(4) 本改訂における改訂一覧を下記表に示す。

Page 53: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

53

表 4.2-35 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No

1LightWeightLangageによる

フレームワーク統合開発環境での

フレームワークの利用1

2 Strutsを利用した開発 コントローラの設定 23 MyFacesを利用した開発 モデルの実装 34 Tapestryを利用した開発 ビューの実装 45 ORマッピングの仕組み ORマッピングの実装 5

6ORマッピングツール

(Hibernate)DIコンテナの実装 6

7ORマッピングツール

(iBATIS)AOPの実装 7

8 DIxAOPコンテナの仕組み --- 8

9DIxAOPコンテナ

(Springフレームワーク)--- 9

10DIxAOPコンテナ

(Seraser2)--- 10

基本へ

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 54: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

54

表 4.2-36 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No

7Ruby on Rails によるアプリケーション開発

統合開発環境を使用した開発の概要 1

8 StrutsとはMVCフレームワークの実習・1

(コントローラの設定)2

9 MyFace(JSF)の開発モデルとはMVCフレームワークの実習・2

(モデルの実装)3

10データベース接続・アクセスの

フレームワークMVCフレームワークの実習・3

(ビューの実装)4

11 DIxAOPコンテナの概要MVCフレームワークの実習・4

(まとめ)5

12 SpringフレームワークORマッピングの実習・1

(SQLのORマッピングへの置き換え)6

13 Seasar2ORマッピングの実習・2

(まとめ)7

14 TapestryDIxAOPを使用した依存性の排除・1

(DIコンテナの実装)8

15 Strutsによるアプリケーション開発DIxAOPを使用した依存性の排除・2

(AOPの実装)9

DIxAOPを使用した依存性の排除・3(DIとAOP)

10

DIxAOPを使用した依存性の排除・4(まとめ)

11

--- 12--- 13--- 14--- 15

基本へ

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 55: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

55

表 4.2-37コースウェアとガイダンスの対比

No コースウェア ガイダンス No

1 統合開発環境を使用した開発の概要統合開発環境での

フレームワークの利用1

2MVCフレームワークの実習・1

(コントローラの設定)コントローラの設定 2

3MVCフレームワークの実習・2

(モデルの実装)モデルの実装 3

4MVCフレームワークの実習・3

(ビューの実装)ビューの実装 4

5MVCフレームワークの実習・4

(まとめ)ORマッピングの実装 5

6ORマッピングの実習・1

(SQLのORマッピングへの置き換え)DIコンテナの実装 6

7ORマッピングの実習・2

(まとめ)AOPの実装 7

8DIxAOPを使用した依存性の排除・1

(DIコンテナの実装)

9DIxAOPを使用した依存性の排除・2

(AOPの実装)

10DIxAOPを使用した依存性の排除・3

(DIとAOP)

11DIxAOPを使用した依存性の排除・4

(まとめ)

Page 56: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

56

4.2.8 開発ツールに関する知識

4.2.8.1 改訂概要

V1では、JavaやC言語、Linuxカーネルに対するツールなど、さまざまなツールを紹介していたが、

本改訂によって、Javaやスクリプト言語を学ぶ方を受講対象者とした。対象者を明確にすることにより、

カリキュラムの専門性を高めるように改訂した。また、近年利用されている様々な OSS の開発ツール

を紹介するように改訂した。 基本知識では、半分のカリキュラムを改訂し、コース全体の流れとして、既存の OSS のソースコ

ードを取得、解析、ビルドと一連の手順を行うように考慮した。 応用知識では、ほぼすべての項目を改訂し、基本知識で解説したツールの連携や、利用方法を考慮

したカリキュラム構成となっている。 4.2.8.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ コード解析ツールとして、GNU GLOBALなどを追加した(4) ・ ビルドツールとして、GNU make やApache Antなどを追加した(6) ・ テストツールとして、JUnitやSeleniumなどを追加した。(7) ・ パッケージングツールとして、rpmやdebを追加した。(9) ・ ドキュメントツールとして、JavadocやDoxygenなどを追加した。(9) ・ 仮想化ツールとして、VirtualBoxやXenを追加した。(10) 学習ガイダンスで、V1の習得ポイントに追補したものは以下の通りである。

・ プロジェクト管理ツールとして、Bugzillaのほかに、SorceForgeなどのホスティングサイト、Tracなどのバグ管理ツール、OpenPrjなどのガントチャートツールを追加した(2)

・ プログラムの実行ツールとして、GCCのほかに、Javacや各種インタプリタを追加した(5) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 統合開発環境の解説は「統合開発環境に関する知識」へ統合した(2)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ KDB をはじめとしたカーネルに関わるツールを、受講対象者に合わないため、一連のカリキュラ

ムを「組み込み開発環境に関する知識」へ移動した(8) ・ Bugzillaの具体的な使い方を、基本ではバグ管理ツールの紹介にとどめ、利用は応用で行うように

した(10)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ ソフトウェア開発方法論を、開発プロセスのためOSSの範囲外として削除した(1) 本改訂における改訂一覧を下記表に示す。

Page 57: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

57

表 4.2-38 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No1 ソフトウェア開発の進め方 開発ツールの概要 1

2各種のツール

(コンパイラ、デバッガ、プロファイラ)プロジェクト管理のためのツール 2

3 統合開発環境の様々な機能 バージョン管理のためのツール 34 C言語によるプログラム開発方法 ソースコード解析のためのツール 4

5バージョン管理ツールの特徴、

主なツールと利用方法実行プログラム作成のためのツール 5

6デバッグの基本

(ブレークポイントとデータのトレース)デバッグで使用できるツール 6

7アプリ、ミドルウェア等における

様々なデバッグ手法ビルドツール 7

8 OSの動作に関する追跡手法 テストツール 8

9バグ追跡システムの目的、

機能と利用方法ユーザへのリリースのためのツール 9

10OSSバグ追跡システム「Bugzilla」の

利用仮想化ツール 10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-39 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 開発の流れとツール 開発ツール概要 12 ソフトウェア開発環境の概要 ホスティングサービス 2

3Linux開発環境におけるソフトウェア

アプリケーション開発の概要バージョン管理 3

4 バージョン管理ツールの活用 ユーティリティ 4

5デバッガによるプログラムデバッグの

環境ソースコード解析 5

6 カーネルデバッガを使用したデバッグ プログラム作成環境 67 バグ追跡システムを使用したデバッグ デバッグ環境 78 ビルド 89 テスト管理 910 バグトラッキングシステム 1011 パッケージング 1112 ドキュメント作成 1213 プロジェクト管理 1314 仮想化 1415 --- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 58: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

58

表 4.2-40 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 開発ツール概要 開発ツールの概要 12 ホスティングサービス プロジェクト管理のためのツール 23 バージョン管理 バージョン管理のためのツール 34 ユーティリティ ソースコード解析のためのツール 45 ソースコード解析 実行プログラム作成のためのツール 56 プログラム作成環境 デバッグで使用できるツール 67 デバッグ環境 ビルドツール 78 ビルド テストツール 89 テスト管理 ユーザへのリリースのためのツール 910 バグトラッキングシステム 仮想化ツール 1011 パッケージング12 ドキュメント作成13 プロジェクト管理14 仮想化15 ---

Page 59: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

59

4.2.8.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ バグ管理ツールの構築、利用方法(1)、(2) ・ バージョン管理ツールの構築、利用方法(3)、(4) ・ 分散型のバージョン管理ツールの利用方法(5) ・ バグ管理ツールとバージョン管理ツールの連携(6) ・ 継続的インテグレーションの紹介(8) ・ パッケージの作成方法(9) ・ 仮想化ツールの利用方法(10) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ オープンソースの開発ツールは、内容を改訂し、基本で紹介した(1) ・ Autotools などは、作成用途として必要となる場面は少ないが、ソフトウェアのインストールに必

要となる場合があるため、まとめて一つのガイダンスとした(7)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ Javaおよび統合開発環境に対する様々なツールの利用は、「Javaに関する知識」および「統合開発環

境に関する知識」に移動した(2)、(3)、(4)、(10)

Page 60: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

60

本改訂における改訂一覧を下記表に示す。

表 4.2-41 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No

1 オープンソースの開発ツールバグトラッキングシステム環境の構築

とカスタマイズ1

2 Javaに対する様々なツールの利用コミュニケーションツールとしての

バグトラッキングシステム2

3 統合開発環境の利用 バージョン管理ツールの環境構築 3

4 オープンソースの統合開発環境チーム開発のための

バージョン管理ツール利用法4

5 ソフトウェア開発の基本ツール 分散型のバージョン管理ツール 5

6 ソフトウェア開発を効率化するツールタスクとソースコードの相互トレーサビリティ

6

7ライブラリ化支援や

依存情報解決のためのツールC言語のビルドツール 7

8 ドキュメント作成支援とパッケージング 継続的インテグレーション 89 開発ツールの選択方法 パッケージの作成 9

10Eclipseを利用した

ソフトウェア開発手順仮想化環境の構築と応用利用 10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 61: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

61

表 4.2-42 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No

1オープンソース開発ツールの

種類と機能バグトラッキングシステム環境の構築 1

2 統合開発環境を用いた開発手順バグトラッキングシステム環境の

応用利用2

3 オープンソース開発環境の種類と特徴 バージョン管理ツールの環境構築 3

4Linux開発環境におけるソフトウェア

開発ワークショップバージョン管理ツールの

応用的な使い方4

5Linux開発環境におけるソフトウェア

開発支援ツール概要分散型バージョン管理ツールの使い方 5

6 ソフトウェア開発ツールの評価バージョン管理ツールと

バグトラッキングシステムの連携6

7 Eclipseを用いたソフトウェア開発 C言語のビルド環境 7

8Eclipseを用いたソフトウェア

開発ワークショップ継続的インテグレーション 8

9 パッケージの作成 910 仮想開発環境の構築 1011 開発環境、テスト環境の仮想化 1112 --- 1213 --- 1314 --- 1415 --- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-43 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No

1 バグトラッキングシステム環境の構築バグトラッキングシステム環境の構築

とカスタマイズ1

2バグトラッキングシステム環境の

応用利用コミュニケーションツールとしての

バグトラッキングシステム2

3 バージョン管理ツールの環境構築 バージョン管理ツールの環境構築 3

4バージョン管理ツールの

応用的な使い方チーム開発のための

バージョン管理ツール利用法4

5 分散型バージョン管理ツールの使い方 分散型のバージョン管理ツール 5

6バージョン管理ツールと

バグトラッキングシステムの連携タスクとソースコードの相互トレーサビリティ

6

7 C言語のビルド環境 C言語のビルドツール 78 継続的インテグレーション 継続的インテグレーション 89 パッケージの作成 パッケージの作成 910 仮想開発環境の構築 仮想化環境の構築と応用利用 1011 開発環境、テスト環境の仮想化12 ---13 ---14 ---15 ---

Page 62: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

62

4.2.9 統合開発環境に関する知識

4.2.9.1 改訂概要

V1 では、Eclipse の他に、NetBeans と WideStudio を紹介していたが、本改訂によって、Eclipseに特化させた。しかしながら、本カリキュラムでの内容は他の統合開発環境でも実装されている機能が

多いことから、他の環境でも実現可能である。 対象をEclipseに特化させたことにより、Eclipseの基本機能のみならず、様々なプラグインを導入

し、ソフトウェア開発をより良くする環境の構築を目指すように改訂した。 基本知識では、半分のカリキュラムを改訂し、Eclipse による開発で必須となる知識、プラグイン

を盛り込んだ形での改訂を行った。 応用知識では、ほぼすべての項目を改訂し、Eclipse から様々なプラグイン、フレームワークを扱

う方法を紹介し、C言語やスクリプト言語など、他の言語で利用する場合についても言及した。 4.2.9.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 統合開発環境でのデバッグ(4) ・ Javadocなどを利用した、ドキュメントの生成(6) ・ Subversionなどを利用した、バージョン管理(7) ・ JUnitなどを利用した、ユニットテスト(8) ・ CheckStyleを利用した、コードスタイルのチェック(9) ・ FindBugsなどを利用した、プログラムの静的解析(10) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ Eclipseの基本設定と基本操作は、まとめて一つのガイダンスとした。(1)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ NetBeansおよびWideStudioに関する項目は、Eclipseに一本化するために削除した(7)、(9)、

(10)

Page 63: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

63

本改訂における改訂一覧を下記表に示す。

表 4.2-44 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No

1 統合開発環境の概要統合開発環境による

ソフトウェア開発1

2 さまざまな統合開発環境 統合開発環境の種類 2

3 Eclipseの歴史、開発の背景と特徴統合開発環境での

プログラム作成と実行3

4 Eclipseの設定と基本機能 統合開発環境でのデバッグ 4

5 Eclipseの基本操作統合開発環境での

Webアプリケーションデバッグ5

6NetBeans IDEの

歴史、開発の背景と特徴統合開発環境での

ドキュメント生成ツールの利用6

7NetBeans IDEの設定と基本機能、基本操作

統合開発環境でのバージョン管理ツールの利用

7

8WideStudioの

歴史、開発の背景と特徴統合開発環境での

テストフレームワークの連携8

9 WideStudioの設定と基本機能統合開発環境でのコードスタイル設定

9

10 WideStudioの基本操作 統合開発環境での静的解析 10

凡例斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 64: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

64

表 4.2-45 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No

1統合開発環境による

ソフトウェア開発統合開発環境による

ソフトウェア開発1

2 さまざまな統合開発環境 さまざまな統合開発環境 23 Eclipse とは何か 統合開発環境のセットアップ 3

4 NetBeans IDE とは何か統合開発環境でのプロジェクトと

プログラムの作成・実行方法4

5 WideStudio とは何か 統合開発環境でのデバッグ方法 5

6 Eclipse 入門- セットアップ統合開発環境での

Webアプリケーションのデバッグ方法6

7 Eclipse 入門- 基本操作統合開発環境での

ドキュメント生成ツールの使用7

8 NetBeans 入門- セットアップ統合開発環境と

バージョン管理ツールの連携8

9 NetBeans 入門- 基本操作 統合開発環境とxUnitの連携 9

10 WideStudio 入門- セットアップ統合開発環境でのコードスタイル設定

10

11 WideStudio 入門- 基本操作 統合開発環境での静的解析 1112 --- 1213 --- 1314 --- 1415 --- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 65: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

65

表 4.2-46 コースウェアとガイダンスの対比

No コースウェア ガイダンス No

1統合開発環境による

ソフトウェア開発統合開発環境による

ソフトウェア開発1

2 さまざまな統合開発環境 統合開発環境の種類 2

3 統合開発環境のセットアップ統合開発環境での

プログラム作成と実行3

4統合開発環境でのプロジェクトと

プログラムの作成・実行方法統合開発環境でのデバッグ 4

5 統合開発環境でのデバッグ方法統合開発環境での

Webアプリケーションデバッグ5

6統合開発環境での

Webアプリケーションのデバッグ方法統合開発環境での

ドキュメント生成ツールの利用6

7統合開発環境での

ドキュメント生成ツールの使用統合開発環境での

バージョン管理ツールの利用7

8統合開発環境と

バージョン管理ツールの連携統合開発環境での

テストフレームワークの連携8

9 統合開発環境とxUnitの連携統合開発環境でのコードスタイル設定

9

10統合開発環境でのコードスタイル設定

統合開発環境での静的解析 10

11 統合開発環境での静的解析12 ---13 ---14 ---15 ---

Page 66: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

66

4.2.9.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ プラグインを利用した、カバレジおよびメトリクスの計測(1) ・ Eclipseの機能を利用した、リファクタリング(2) ・ Mylynを利用した、バグ管理ツールとの連携(3) ・ AntやMavenを利用した、ビルド環境の構築(4) ・ Swingを利用した、GUI開発(6) ・ Strutsを利用した、Webアプリケーション開発(7) ・ Hibernateを利用した、データベースアプリケーション開発(8) ・ UMLやER図、日本語化など様々なプラグインを紹介(9) ・ C言語や、スクリプト言語でEclipseを利用する方法を紹介(10) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ JDTの概要及び基本操作は、学習ガイダンスの各項目の中で解説するように改訂した(1)、(2) ・ WTPを用いたWebアプリケーションの作成を、一項目にまとめた(4)、(5)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ NetBeansおよびWideStudioに関する項目は、Eclipseに一本化するために削除した(6)、(7)、

(8)、(9)、(10)

Page 67: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

67

本改訂における改訂一覧を下記表に示す。

表 4.2-47 ガイダンス改訂結果

No ガイダンス ガイダンス No

1Java Development Tools (JDT)の

概要統合開発環境での

コードカバレッジ測定とメトリクス1

2 JDTの基本操作 統合開発環境でのリファクタリング 2

3Web Tools Platform (WTP)の

概要統合開発環境から

バグトラッキングツールの利用3

4 WTPの導入と設定統合開発環境からのビルドツールの利用

4

5WTPを用いた

Webアプリケーション開発統合開発環境でのWeb開発 5

6NetBeans IDEによる

Webアプリケーション開発統合開発環境でのGUI開発 6

7 NetBeansを用いた開発の手順統合開発環境での

MVCフレームワークの利用7

8WideStudioによる

アプリケーション開発統合開発環境でのDB開発 8

9 WideStudioを用いた開発の手順 様々なプラグイン 9

10WideStudioによる

マルチプラットフォーム開発他言語対応のためのプイグイン 10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 68: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

68

表 4.2-48 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No12 Eclipse によるJava プログラミング 統合開発環境でのカバレジ計測 1

13Eclipse による

Web アプリケーション開発統合開発環境でのメトリクス測定 2

14NetBeans による

Web アプリケーション開発統合開発環境でのリファクタリング

バグ管理ツールの連携3

15WideStudio による

アプリケーション開発統合開発環境とバグ管理ツールの連

携4

統合開発環境とビルドツールの連携 5統合開発環境でのWeb開発 6統合開発環境でのGUI開発 7

統合開発環境でのMVCフレームワークの利用

8

統合開発環境でのデータベース開発 9様々なプラグインを利用する 10

統合開発環境でのC言語の開発 11統合開発環境での

スクリプト言語の開発12

--- 13--- 14--- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-49 コースウェアとガイダンスの対比

No コースウェア ガイダンス No

1 統合開発環境でのカバレジ計測統合開発環境での

コードカバレッジ測定とメトリクス1

2 統合開発環境でのメトリクス測定 統合開発環境でのリファクタリング 2

3統合開発環境でのリファクタリング

バグ管理ツールの連携統合開発環境から

バグトラッキングツールの利用3

4統合開発環境とバグ管理ツールの連

携統合開発環境からのビルドツールの利用

4

5 統合開発環境とビルドツールの連携 統合開発環境でのWeb開発 56 統合開発環境でのWeb開発 統合開発環境でのGUI開発 6

7 統合開発環境でのGUI開発統合開発環境での

MVCフレームワークの利用7

8統合開発環境での

MVCフレームワークの利用統合開発環境でのDB開発 8

9 統合開発環境でのデータベース開発 様々なプラグイン 910 様々なプラグインを利用する 他言語対応のためのプイグイン 1011 統合開発環境でのC言語の開発

12統合開発環境での

スクリプト言語の開発13 ---14 ---15 ---

Page 69: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

69

4.2.10 OSS開発プロセスに関する知識

4.2.10.1 改訂概要

本改定において、新規に作成したカリキュラムとなる。オープンソースプロジェクトに開発者として

参加するために事前に知っておくべき知識を講義する。講義内容は、技術的要素ではなくプロジェクト

参加のための概論とする。また、演習にて実際のプロジェクトに参加する体験を行うことで、知識の定

着と疑似体験によりプロジェクト参加への敷居を下げる。 本改訂における改訂一覧を下記表に示す。

表 4.2-50 コースウェアとガイダンスの対比

Page 70: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

70

4.2.11 OSSコミュニティマネジメントに関する知識

4.2.11.1 改訂概要

本改定において、新規に作成したカリキュラムとなる。オープンソースプロジェクトにおける、企業

内プロジェクトでいうマネージャの役割となるコミュニティマネージャになるために必要な知識を講義

する。また、ワークショップにて、あるオープンソースプロジェクトを題材にしてプロジェクト管理手

法を分析し、実際のオープンソースのプロジェクトの管理の疑似体験を行う。 本改訂における改訂一覧を下記表に示す。

表 4.2-51 コースウェアとガイダンスの対比

Page 71: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

71

4.2.12 組み込みシステム開発に関する知識

4.2.12.1 改訂概要

本カリキュラムは V1 の「組み込みシステムに関する知識」と「組み込み開発環境に関する知識」を統合

したものである。V1では、Javaを用いた組み込み開発であったものを、組み込みLinuxを用いたカリ

キュラムに再編した。 基本知識では、V1 をベースにハードウェア、ソフトウェア両方の知識を解説する。新たに割り込み

とDMAを加え、組み込み特有の知識を紹介する。 応用知識では、全体的に見直し、組み込みLinuxの知識を掘り下げて解説する。またデッドロックや

リアルタイムシステムの概要を解説し、組み込み開発でつまずきやすいポイントを解説した。 4.2.12.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 組み込み開発に必須の知識である、割り込みとDMAに関する項目を追加した(8) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 「組み込みコンピュータの要件」、「組み込みシステムの CPU、OS、ネットワーク機能」、「組み込

みシステムにおけるハードウェアの基本構成」、「組み込み向けCPUのアーキテクチャ」を統合し、

く込みシステムの基本を解説するものとした。(4)、(5)、(6)、(7) ・ 「組み込み OS カーネルの機能」、「コンテキストスイッチの仕組み」を統合し、OS の基礎知識を解

説するものとした。(9)(1)

V1の学習ガイダンスで、別の学習ガイダンスに移動したものは以下の通りである。

・ 「リアルタイムシステムの処理方法と設計」を応用へ移動し、リアルタイムOSについての解説とし

た。(10) ・ 「組み込みシステムの制限と設計方法論」、「CPUによるメモリ資源の管理方法」、「メモリの共有制

御とプログラムパーティション」、「プログラム資源の管理、複数タスクによる同時利用」は応用

に移動し、内容を掘り下げた(3)、(6)、(7)、(8) 本改訂における改訂一覧を下記表に示す。

Page 72: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

72

表 4.2-52 ガイダンス改訂結果

No 組み込みシステム ガイダンス 改訂後 ガイダンス No1 組み込みコンピュータシステム 組み込みコンピュータシステム 1

2組み込みシステムと

OSSの関係、活用事例組み込みシステムと

OSSの関係、活用事例2

3組み込みシステムの制限と設計方法論

組み込みコンピュータの要件 3

4 組み込みコンピュータの要件 組み込み向けソフトウェアの基本 4

5組み込みシステムの

CPU、OS、ネットワーク機能

6組み込みシステムにおけるハードウェアの基本構成

7組み込み向けCPUの

アーキテクチャ8 組み込み向けソフトウェアの基本9 組み込みOSカーネルの機能

10リアルタイムシステムの

処理方法と設計

No 組み込みアプリケーション ガイダンス 改訂後 ガイダンス No1 コンテキストスイッチの仕組み コンテキストスイッチの仕組み 5

2非同期処理と同期処理の

実装パターンと特徴非同期処理と同期処理の

実装パターンと特徴6

3タスク優先順位制御と

カーネルによる時間管理方法タスク優先順位制御と

カーネルによる時間管理方法7

4システムリソースの配分の仕組み

(セマフォ、キューなど)割り込みとDMA 8

5システムリソースの共有の仕組み

(共有ファイル、デッドロック回避など)システムリソースの配分の仕組み

(セマフォ、キュー)9

6 CPUによるメモリ資源の管理方法システムリソースの共有の仕組み

(共有メモリ)10

7メモリの共有制御と

プログラムパーティション

8プログラム資源の管理、

複数タスクによる同時利用

9入出力資源の管理方法、

同時利用方法

10リソースに対する優先順位の設定、

割り込みの優先順位凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 73: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

73

表 4.2-53 コースウェア改訂結果

Page 74: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

74

表 4.2-54コースウェアとガイダンスの対比

4.2.12.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。

・ 物理メモリと仮想メモリについての項目を加えた(2) ・ 組み込みLinuxにおけるメモリ管理手法を加えた(3) ・ 組み込みLinuxにおける割り込み処理を加えた(4)

V1の学習ガイダンスで、別の学習ガイダンスから移動したものは以下の通りである。

・ 「組み込みアプリケーション開発における留意点」を「組み込み開発環境に関する知識」から移動し

た(1) ・ 「リソースの排他とデッドロック」を、基本よりデッドロック部分のみを抽出して移動した。(5) ・ 「リアルタイムシステムの処理方法と設計」を、基本より移動し、リアルタイムOSに特化して再編

した(8)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ (10)インターネット以外の組み込みコンピュータネットワーク、(2)ファイル入出力プログ

ラムの構成以外の項目は、一般的な解説および、Java を利用したカリキュラムであるために、

すべて削除した。

Page 75: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

75

本改訂における改訂一覧を下記表に示す。

表 4.2-55 ガイダンス改訂結果

No 組み込みシステム ガイダンス ガイダンス No

1 組み込みシステムの開発技術組み込みアプリケーション開発に

おける留意点1

2組み込みシステムの開発手順と関連文書

CPUの特徴によるメモリ管理の違い 2

3オブジェクト指向分析による

組み込みシステム開発組み込みLinuxにおける

メモリ管理の特徴3

4組み込みシステム開発における

各種の管理組み込みLinuxにおける割り込み処理の流れ

4

5組み込みシステム

開発プロジェクトの体制リソースの排他とデッドロック 5

6 組み込みシステムのアーキテクチャ ファイル入出力プログラムの構成 6

7組み込みシステムにおける

ネットワークのハードウェア要件組み込みコンピュータネットワーク 7

8組み込みシステムにおけるネットワークのソフトウェア

リアルタイムシステムの処理方法と設計

8

9組み込みコンピュータを取り巻く

今後の環境--- 9

10インターネット以外の

組み込みコンピュータネットワーク--- 10

No 組み込みアプリケーション ガイダンス1 デバイスドライバの基本機能2 ファイル入出力プログラムの構成

3J2MEを利用した

Javaによる組み込み開発

4J2MEの様々な

コンフィギュレーション5 組み込みJavaの様々な実行環境

6組み込みアプリケーションにおける

高信頼化実装7 誤り検出と誤り回復の実現方法

8組み込みアプリケーションの

実装事例

9組み込みアプリケーションの

設計手順

10組み込みアプリケーションの

実装手順凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 76: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

76

表 4.2-56 コースウェア改訂結果

表 4.2-57コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No

1組み込みアプリケーション開発に

おける留意点組み込みアプリケーション開発に

おける留意点1

2 クロスコンパイル環境の作成 CPUの特徴によるメモリ管理の違い 2

3 組み込みシステム環境の構築組み込みLinuxにおける

メモリ管理の特徴3

4 CPUの特徴によるメモリ管理の違い組み込みLinuxにおける割り込み処理の流れ

4

5組み込みLinuxにおける

メモリ管理の特徴リソースの排他とデッドロック 5

6組み込みLinuxにおける

割り込み処理の流れファイル入出力プログラムの構成 6

7 リソースの排他とデッドロック 組み込みコンピュータネットワーク 7

8 入出力資源管理リアルタイムシステムの

処理方法と設計8

9 組み込みコンピュータネットワーク --- 910 リアルタイムシステムの構成と仕組 --- 1011 ---12 ---13 ---14 ---15 ---

Page 77: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

77

4.2.13 組み込み開発環境に関する知識

4.2.13.1 改訂概要

V1 では、JTAG や ICE と購入品を用いたガイダンスが多かったため、それらは紹介にとどめ、オー

プンソースソフトウェアを活用した組み込み開発を目的として再編した。 基本知識では、BusyBoxのような組み込みで広く利用されているユーティリティや、ホストコンピュ

ータ上でエミュレーションを行うことができる、CPU エミュレータ、統合開発環境を用いた組み込み

開発を追加した。 応用知識では、開発ツールで紹介した C 言語に関するツール群(make、configure など)を移動し、

また、ユーティリティやLinuxカーネルの構築、ドライバの組み込みなど、組み込み開発に必要な環境

づくりを追加した。 4.2.13.2 基本知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 組み込み開発で多く利用されているBusyBoxの概要と利用方法を追加した(6) ・ QEMUを用いたエミュレーション環境の解説を追加した(9) ・ Eclipseを利用した組み込み開発方法を追加した(10) 学習ガイダンスで、V1の習得ポイントを統合したものは以下の通りである。

・ 購入品を利用したデバッグ方法を応用知識でまとめて紹介するようにした(7)、(8)、(9)

Page 78: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

78

本改訂における改訂一覧を下記表に示す。

表 4.2-58 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No1 組み込みシステム開発の概要 組み込みシステム開発の概要 12 組み込みLinuxによる実装とその開発 組み込みLinuxによる実装とその開発 23 組み込みシステムの開発環境 組み込みシステムの開発環境 34 組み込みシステムの開発技術 組み込みシステムの開発技術 4

5組み込みソフトウェアのデバッグの基本技術

ツールチェーンを利用した組み込み開発

5

6デバッガを利用した

プログラムのデバッグ組み込みLinuxで有用な

省フットプリントユーティリティ6

7 エミュレータの利用組み込みソフトウェアのデバッグの基本技術

7

8 ICEを利用したデバッグ環境デバッガを利用した

プログラムのデバッグ8

9 ツールチェーンを利用したデバッグ CPUエミュレータの導入と利用 9

10実機レベルのデバッグとトラブルシューティング

統合開発環境の導入と利用 10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 79: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

79

表 4.2-59 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No1 組み込み開発の流れと環境 組み込み開発の流れと環境 12 組み込み開発環境の概要 組み込みLinuxによる実装とその開発 23 組み込み開発環境を用いた開発手順 ROM化とRAMでの実行 34 プログラムデバッグの環境 組み込み開発環境の概要 45 デバッガソフトを用いたデバッグ環境 組み込み開発環境を用いた開発手順 56 ICEを使用したデバッグ環境 ツールチェーンによるコンパイル 67 ツールチェーンによるデバッグ BusyBoxの利用 7

8組み込みアプリケーションの

デバッグ手順プログラムデバッグの環境 8

9 デバッガソフトを用いたデバッグ環境 9

10組み込みアプリケーションの

デバッグ手順10

11 CPUエミュレータ環境の利用 1112 統合開発環境を利用した開発 12

13H/Wレベルのデバッグとトラブルシューティング

13

14 --- 1415 --- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

表 4.2-60 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 組み込み開発の流れと環境 組み込みシステム開発の概要 12 組み込みLinuxによる実装とその開発 組み込みLinuxによる実装とその開発 23 ROM化とRAMでの実行 組み込みシステムの開発環境 34 組み込み開発環境の概要 組み込みシステムの開発技術 4

5 組み込み開発環境を用いた開発手順ツールチェーンを利用した

組み込み開発5

6 ツールチェーンによるコンパイル組み込みLinuxで有用な

省フットプリントユーティリティ6

7 BusyBoxの利用組み込みソフトウェアのデバッグの基本技術

7

8 プログラムデバッグの環境デバッガを利用した

プログラムのデバッグ8

9 デバッガソフトを用いたデバッグ環境 CPUエミュレータの導入と利用 9

10組み込みアプリケーションの

デバッグ手順統合開発環境の導入と利用 10

11 CPUエミュレータ環境の利用12 統合開発環境を利用した開発

13H/Wレベルのデバッグとトラブルシューティング

14 ---15 ---

Page 80: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

80

4.2.13.3 応用知識の改訂内容

学習ガイダンスで、新たに追加した習得ポイントは以下の通りである。 ※ 各箇条書きの末尾に、関連する学習ガイダンスの習得ポイントを括弧内の番号で示す。

・ 組み込みLinuxカーネルを構築する目的、方法を追加した(6) ・ BusyBoxを構築する方法を追加した(7) ・ デバイスドライバの概要および、デバッグ時、リリース時の設定方法を追加(8) ・ procファイルシステムや sysファイルシステムについての解説を追加(9) ・ オープンソースライブラリを利用した組み込み開発についての解説を追加(10)

V1の学習ガイダンスで、別の学習ガイダンスから移動されたのは以下の通りである。

・ make や configure といったC 言語の開発ツールを、開発ツールに関する知識から移動した(2)、

(4)、(5)

V1の学習ガイダンスで、削除した習得ポイントは以下の通りである。

・ 組み込みアプリケーション開発事例は、一般的な組み込みの解説であることから削除した(1)

・ クロス開発環境の種類と特徴およびクロス開発環境を利用した組み込みシステム開発は、一般的な

クロス開発の解説であることがら削除した(2)(3)

・ GNU 開発環境を用いたアプリケーション開発は、基本的な要素を基本知識に入れたため削除した

(7)

・ 組み込みLinuxの開発環境、組み込み開発環境の評価、組み込み開発環境におけるデバッグの実際

についても、一般的な知識であるため削除した(8)、(9)、(10)

Page 81: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

81

本改訂における改訂一覧を下記表に示す。

表 4.2-61 ガイダンス改訂結果

No V1 ガイダンス 改訂後 ガイダンス No1 組み込みアプリケーション開発事例 GNU環境を構成するツール群 1

2組み込みアプリケーション開発

における留意点ソフトウェア開発の基本ツール 2

3 クロス開発環境の種類と特徴 makeとconfigureの利用 3

4クロス開発環境を利用した

組み込みシステム開発ソフトウェアの開発を効率化するツール

4

5 GNU開発環境の利用方法ライブラリ化支援や

依存情報解決のためのツール5

6 GNU開発環境を構成するツール群 Linuxカーネルの構築 6

7GNU開発環境を用いたアプリケーション開発

ユーティリティの構築 7

8 組み込みLinuxの開発環境 ドライバの組み込み 8

9 組み込み開発環境の評価仮想ファイルシステムを利用した

ターゲット環境の確認9

10組み込み開発環境における

デバッグの実際ライブラリを使用した組み込みデバッグ

10

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 82: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

82

表 4.2-62 コースウェア改訂結果

No V1 コースウェア 改訂後 コースウェア No

1組み込みアプリケーションの

事例と開発環境応用的なコンパイル環境の作成 1

2 組み込みクロス開発環境の構築 CPUエミュレータ環境の構築 23 GNU開発環境の特徴 カーネルの構築 3

4GNU開発環境における

組み込みアプリケーション開発ユーティリティの構築 4

5組み込みLinux開発最新デバッグ環境

ドライバの組み込み 5

6 組み込み開発環境の評価 ターゲット環境の確認 6

7組み込み開発環境における

デバッグのパターン演習CPUエミュレータ環境での基本的なデバッグ方法

7

8CPUエミュレータ環境での

デバッガ使用手順8

9統合開発環境での

組み込み開発環境作成9

10統合環境での

セルフ/クロスコンパイル環境の作成10

11 libUSB利用環境の構築 11

12libUSBを使用した組み込みアプリケーションの作成・1

12

13libUSBを使用した組み込みアプリケーションの作成・2

13

14libUSBを使用した組み込みアプリケーションの作成・3

14

15 --- 15

凡例

斜体:移動グレー:削除/新規グリーン:追補イエロー:分割ベージュ:統合

Page 83: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

83

表 4.2-63 コースウェアとガイダンスの対比

No 改訂後 コースウェア 改訂後 ガイダンス No1 応用的なコンパイル環境の作成 GNU環境を構成するツール群 12 CPUエミュレータ環境の構築 ソフトウェア開発の基本ツール 23 カーネルの構築 makeとconfigureの利用 3

4 ユーティリティの構築ソフトウェアの開発を効率化するツール

4

5 ドライバの組み込みライブラリ化支援や

依存情報解決のためのツール5

6 ターゲット環境の確認 Linuxカーネルの構築 6

7CPUエミュレータ環境での基本的なデバッグ方法

ユーティリティの構築 7

8CPUエミュレータ環境での

デバッガ使用手順ドライバの組み込み 8

9統合開発環境での

組み込み開発環境作成仮想ファイルシステムを利用した

ターゲット環境の確認9

10統合環境での

セルフ/クロスコンパイル環境の作成ライブラリを使用した組み込みデバッグ

10

11 libUSB利用環境の構築

12libUSBを使用した組み込みアプリケーションの作成・1

13libUSBを使用した組み込みアプリケーションの作成・2

14libUSBを使用した組み込みアプリケーションの作成・3

15 ---

Page 84: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

84

4.2.14 デバイスドライバに関する知識

4.2.14.1 改訂概要

本改定において、新規に作成したカリキュラムとなる。Linuxの内部構造を解説し、コンパイラやデ

バッガといった、デバイスドライバの開発環境や、デバイスドライバの構造や、開発者が実装すべき項

目、カーネルの構築方法を通して、デバイスドライバのリリース方法までを含む。また演習にて実際に

キャラクタ型のデバイスドライバおよび、ブロック型のデバイスドライバを実装することで、知識の定

着を図る。 また、デバイスドライバ開発において必要な知識となる、ブート、スレッド、同期、電源管理など

に触れることで、より深い知識を得ることを目標としている。 本改訂における改訂一覧を下記表に示す。

表 4.2-64 コースウェアとガイダンスの対比

No コースウェア ガイダンス No1 デバイスドライバ概要 デバイスドライバの概要 12 デバイスドライバのコンパイル デバイスドライバのビルド環境 23 デバイスドライバのリモートデバッグ デバイスドライバのデバッグ 34 カーネル構築 デバイスドライバ開発の環境 4

5キャラクタ型デバイスドライバ

の作成・1デバイスドライバの動作 5

6キャラクタ型デバイスドライバ

の作成・2デバイスドライバからの

ハードウェア制御6

7キャラクタ型デバイスドライバ

の作成・3カーネルの構築 7

8ブロック型デバイスドライバ

の作成(ホスト)・1キャラクタ型デバイスドライバ 8

9ブロック型デバイスドライバ

の作成(ホスト)・2ブロック型デバイスドライバ(ホスト) 9

10ブロック型デバイスドライバ

の作成(ホスト)・3デバイスドライバの周辺知識 10

11 ブート概要12 カーネルスレッドとプロセス間同期13 DMAと電源1415

Page 85: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

85

5. OSSモデルコースウェア

5.1 OSSモデルコースウェア学習体系

本調査では、モデルコースウェアはシラバス部分を拡充した。OSSモデルカリキュラムV1拡充後の

モデルコースウェア学習体系図を図 5-1 に示す。この体系図は今回の拡充部分のみを対象としており、

モデルコースウェアの全体像を示すものではない。今後の調査で対象外の部分が追加され、全体像が明

確になった時点で、ITSS等の人材育成カリキュラムとの対応を把握することが可能になる。

Page 86: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

86

図5-1 OSSモデルコースウェア学習体系

Page 87: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

87

5.2 OSSモデルコースウェア一覧

次ページに、拡充対象の 14 知識 24 科目のOSS モデルコースウェアの一覧を示す。本調査で対象外

の知識は省略した。 モデルコースウェアの詳細については、別冊1「モデルコースウェア」を参照のこと。

Page 88: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

88

表5-1 OSSモデルコースウェア一覧(14知識・24科目)

Page 89: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

89

6. OSS学習ガイダンス

6.1 OSS学習ガイダンスの利用方法

OSS 基本知識拡充分 11 科目、OSS 応用知識拡充分 13 科目の各々について、学習ガイダンス資料を

策定した(別冊(24分冊)参照)。 各科目の学習ガイダンス資料は、基本知識調査、応用知識調査と同様に、以下の構成となっている。

・ 表紙(3ページ) 科目の概要 習得ポイント IT知識体系との対応関係 OSSモデルカリキュラム固有の知識

・ 習得ポイント別の解説資料(10ポイント×2ページ)

学習の要点(習得ポイントを具体化した学習内容の要点) 解説図(学習の要点を図表化したもの) 解説(学習の要点に関する具体的な解説)

本学習ガイダンス資料は、大学・高専・専修学校、研修機関、企業等における OSS 教育現場におい

て以下の用途で用いることを想定している。 ・ 「習得ポイント」により、当該科目で習得することが期待される概念・知識の全体像を把握する。 ・ 「モデルコースウェア(シラバス)」、「IT知識体系との対応関係」、「OSSモデルカリキュラム固有

知識」をもとに、必要に応じて、従来の IT教育プログラム等との相違を把握した上で、具体的な講

義計画を考案する。 ・ 習得ポイント毎の「学習の要点」と「解説」を参考にして、講義で使用する教材等を準備する。

Page 90: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

90

6.2 OSS学習ガイダンス一覧

次ページ以降に、拡充対象の14知識24科目のガイダンス一覧として、科目ごとに以下を記した。 ・ 科目の概要 ・ 習得ポイント ガイダンスの詳細は、別冊2「学習ガイダンス」を参照のこと。

Page 91: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

91

6.2.1 1-1-基 OSSの概要に関する知識

6.2.1.1 科目の概要

オープンソースソフトウェアの基本的な概念や効果的な活用方法を説明し、OSSに関連するビジネス

や関連情報の入手方法、OSSコミュニティとの関係について説明する。また、オープンソースによる様々

なソフトウェアの導入方法を指導する。 6.2.1.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

1-1-基-1.オープンソースソフトウェア(OSS)とは?オープンソースソフトウェア(OSS)という言葉の定義とOSSの概念を説明する。また、なぜOSSが注目を浴びているのか、OSSが登場した背景や理念について説明し、さらにOSSの開発モデルやライセンスといったトピックについて紹介する。

1

1-1-基-2. UNIXからLinuxへの歴史1960年代後半に始まるUNIXの歴史から、BSDとしての発展、Linuxの登場と展開といった流れを紹介する。また関連する話題としてGNUプロジェクトやFSF(Free Software Foundation)について説明する。

2

1-1-基-3. OSSのサーバと開発ツール

OSSが も広く利用されている分野として、インターネットサーバやネットワークサーバがあり、OSSのミドルウェアも普及しつつあることを説明する。更に、OSSを利用して開発する、あるいはOSSを開発するための開発言語や、OSS開発フレームワーク、OSS統合開発ツールの概要を紹介する。

3,4

1-1-基-4. OSSの代表的なアプリケーション

OSSによるデスクトップアプリケーションの例として、代表的なウィンドウシステム(統合デスクトップ環境)、オフィススイート、ブラウザ、メーラー、グラフィックツールを紹介する。また、CRMやCMSといったOSSによるサーバアプリケーションや、特定業務向けOSSアプリケーションの例も紹介する。

5,6

1-1-基-5. OSSの標準化動向と標準化の意義OSSの標準化動向を概観する。Linuxの標準規格であるLSB(Linux Standard Base)や、Javaの標準仕様を紹介し、標準を定める意義を解説する。またアジアでの標準化への取り組みや国際標準機関との関係についても触れる。

7

1-1-基-6. オープンソースソフトウェアビジネス

OSSに関連するビジネスのうち、OSS自体のパッケージ販売や、OSSでの技術開発・システムインテグレーションなどのビジネスモデルを解説する。また、OSSのサポートやコンサルティング、教育や資格試験といった事例を紹介し、ソフトウェア以外の対価により成立するビジネスについて解説する。

8

1-1-基-7. オープンソースを用いたシステム事例LinuxおよびOSSミドルウェアの市場シェア、企業ユーザのOSS導入意向やメリット・デメリットを説明する。更に、典型的なWebシステムの構築を例に、OSSの使われ方、実際のシステム構築上のポイントやメリット・デメリット、注意点などを説明する。

9,10

1-1-基-8. OSSコミュニティとOSS関連情報

OSSコミュニティの代表的な事例をあげ、種類と特徴を概観し、参加方法を解説する。またOSSの情報減として、主なオープンソースコミュニティのポータルサイトや、OSSサポート企業、関連組織、マスコミ等が提供するOSS関連情報Webサイトを紹介し、利用方法を解説する。

11,12,13

1-1-基-9. オープンソースOSの仮想化と動作確認

オープンソースによる各種OSの特徴と導入方法、導入に際する留意点、メリット等について解説する。また、仮想化ツールとは何かを概説し、Xenの導入および設定方法を示す。さらにXenで構築した仮想的なPC環境にOSを導入することによって仮想環境を構築する手順を説明する。

14

1-1-基-10. オープンソースのアプリケーションの導入と動作確認

OSSによる代表的なサーバ製品の導入手順や設定の方法を解説する。また、OSSによる代表的なデスクトップアプリケーションやサーバサイドアプリケーションの導入手順と設定方法を解説する。

15

Page 92: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

92

6.2.2 1-2-基 法務分野に関する知識

6.2.2.1 科目の概要

オープンソースにまつわる知財や法務に関する知識を説明する。ライセンスの意味を説明し、具体的

なライセンスを示すことで法務分野に関する理解を深めさせる。また、著作権や特許をはじめとしたソ

フトウェア産業に関わりの深い各種の知的財産権について解説する。 6.2.2.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。

Page 93: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

93

6.2.3 1-2-応 法務に関する知識

6.2.3.1 科目の概要

オープンソースにまつわる知財や法務に関する知識を、リスクの詳細や対策、トラブル事例や関連す

る話題を混えて詳しく解説する。OSSを利用してビジネスを行う際に避けては通れないライセンスの伝

搬性に関する説明や具体的事例を用いて、OSSに関わる法務分野の知識を深く理解させる。 6.2.3.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。

Page 94: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

94

6.2.4 4-1-基 Javaに関する知識

6.2.4.1 科目の概要

Webアプリケーション構築で利用されることの多いJava言語について、基本的な仕組み、プログラ

ミング文法、オブジェクト指向によるプログラム設計の概念、各種のアプリケーション開発を解説する。 6.2.4.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-1-基-1.Java言語の歴史、特長、種類Javaの基本概念と特有な機能、発展の歴史、Javaが登場した背景と必然性、Java利用のメリットなど、Javaプログラミングを理解する前におさえておくべき項目として、Java言語にまつわる様々なトピックを紹介する。

1

4-1-基-2.Javaの実行手順Javaプログラムの例を示し、Javaプログラムの記述からコンパイル、実行までの手順を紹介する。さらに様々なJavaのエディションや実行環境の整備など、Javaを用いたプログラミングを実施する際に留意すべき点について述べる。

2

4-1-基-3.Javaを用いたプログラミング手法Javaの基本的なしくみ、特徴、構造を説明する。基本的なプログラム要素として、識別子、変数、型、クラス、演算子、制御構文について解説する。またアプレットやサーブレットといった形態、クラスライブラリの利用についても言及する。

2

4-1-基-4.カプセル化によるオブジェクト指向プログラミング

Javaの大きな特徴であるオブジェクト指向プログラミングについて、その基本的な特徴とメリットを説明する。クラス、オブジェクト、メソッド、コンストラクタなどオブジェクト指向の様々な概念を紹介し、オブジェクト指向による代表的なプログラミング手法を示す。メンバへのアクセス制御とカプセル化の概念を説明する。

3,4

4-1-基-5.継承と多相性を利用したクラスの再利用オブジェクト指向の 大の特徴である継承と多相性について説明する。スーパークラスをサブクラスに継承させる方法を解説し、また、オーバーライドによる多相性を解説する。さらにパッケージについても紹介し、クラスのまとめ方についても言及する。

5

4-1-基-6.インタフェースを利用したクラスの抽象化インスタンス化することのできない抽象クラスやインタフェースの概念を解説する。抽象クラスやインタフェースの定義方法を説明し、抽象クラスを継承したクラスやインタフェースを実装したクラスの作り方を解説する。

6

4-1-基-7.標準クラスライブラリを使用したプログラミング数値や文字列といった基本的なクラスと、ファイル入出力機能を持つクラスを紹介する。それぞれクラスの特徴や使い方を説明し、ライブラリを利用した簡潔で読みやすいプログラムの書き方を解説する。

8,9

4-1-基-8.ジェネリクスを使用したメタプログラミングジェネリクスの基本、特徴やメリットを解説する。ジェネリクスを利用したメタプログラミングを紹介し、データ型に依存しない、汎用性の高いクラス、インタフェース、メソッドの具体的な実装方法を説明する。

10

4-1-基-9.Javaによるアルゴリズムの実装標準クラスライブラリで用意されたデータ構造(コレクション)とアルゴリズムを紹介し、具体的な利用方法と利用場面を解説する。

11,12,13

4-1-基-10.ServletとJSPによるWebアプリケーション開発ServletとJSPによるWebアプリケーション開発の手順と内容について解説する。また開発プラットフォームとしてのTomcatやJBossといった代表的なOSSの実装を紹介する。

14

Page 95: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

95

6.2.5 4-1-応 Javaに関する知識

6.2.5.1 科目の概要

Java言語が利用されるWebアプリケーション開発を題材として、Javaプログラミングの応用知識を

解説する。また、アプリケーション開発に必要な文字コードやテスト、スレッドなどの周辺知識につい

ても解説する。 6.2.5.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-1-応-1.文字コードと国際化文字データを扱うために必要な文字コードについて解説する。また、国際化としてOpenI18N(Open Internationalization)の概要を説明し、Javaにおける国際化の手法として、ロケールの設定とそれにあわせた書式の変換方法を解説する。

2

4-1-応-2.テストとデバッグOSSの品質保証活動を支援する、テストとデバッグの手順を解説する。また、OSSの単体テストを自動化するフレームワーク、カバレジ測定ツール、デバッグツールなどを紹介し、その使用方法を説明する。

3

4-1-応-3.スレッドと同期スレッドプログラミングの概要と特徴を説明する。Javaによるスレッドプログラミングを解説し、共有や同期処理についても言及する。

4

4-1-応-4.ネットワークプログラミングJavaによるネットワークプログラミングの概要、特徴を説明する。ネットワークプログラミングの基礎であるソケットを用いたセッション管理について、Javaを例題として説明する。

5

4-1-応-5.Javaを利用したGUIアプリケーションGUIプログラミングのためのフレームワークと、その利用方法を紹介する。各コンポーネントの解説とともに、イベントドリブンの考え方の説明を行う。

6,7

4-1-応-6.MVCアーキテクチャの基本と特徴Javaアプリケーションを例題として、Webアプリケーションの基本アーキテクチャとして想定されるMVC (Model-View-Controller)モデルの内容とメリットについて解説する。それぞれを構成する要素技術を示し、モデルとの対応関係について説明する。

8

4-1-応-7.EJBによるアプリケーション開発の基本EJB (Enterprise Java Beans)を活用したアプリケーション開発の概要を説明する。EJBコンテナの仕組みやトランザクション処理の手順など、実際のプログラミング事例を示しつつ具体的な手法について解説する。

10

4-1-応-8.EJBによるビジネスロジックの実装3層アーキテクチャにおけるビジネスロジック、およびデータアクセス部分の実装について解説する。具体的な例としてEJB3.0仕様に基づいたEntityクラス、およびSession Beanのプログラミング例を示す。

11,12

4-1-応-9.JDBCによるデータベースの操作JDBC (Java DataBase Connectivity)の基本と歴史、特徴について示し、JDBCを利用したデータベースの操作方法について解説する。JDBCによるデータベース操作の具体的な方法やプログラミング例を示し、データベース操作の基本手順を紹介する。

9,13

4-1-応-10.コードリーディングオープンソースソフトウェアを読み解くことの意義を説明し、コードリーディングに有効な手法として、関連するドキュメント類の参照方法や、データ構造と処理の流れを読み解く方法を説明する。更に解析に有用な統合開発環境やツール類の紹介を行う。

14

Page 96: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

96

6.2.6 4-2-基 Cに関する知識

6.2.6.1 科目の概要

主要なオープンソースソフトウェアの記述言語であるCの基本的な知識を解説する。プログラムの構

造、型、演算子、制御構文や標準的な関数、ポインタや構造体、ユーザや外部データとの入出力に求め

られるプログラミングなどについて説明する。 6.2.6.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-2-基-1. Cの歴史と特徴、開発事例と開発手順C プログラミング学習の入り口として、Cの歴史や特徴、他の言語との比較、C による開発事例を解説する。また、プログラムを開発する手順として、エディタによるプログラム作成からコンパイル、プログラム実行までの流れを説明する。

1

4-2-基-2. C の基本的な構造、型、演算子、制御構文C の基本的なしくみ、プログラムの構成、基本的な文法を説明する。基本的なプログラム記述の例を示し、変数、データ型、演算子、制御構造といったC プログラムの基本的な要素について説明を加える。

2,3

4-2-基-3. 配列と文字列配列とは何かを説明し、配列の宣言方法、初期化、要素のアクセス方法を解説する。また、1次元配列および多次元配列の利便性と使用時の注意点や、C プログラムにおける文字の表現方法と文字列の扱い方を解説する。

4,5

4-2-基-4. 関数の定義、標準関数の利用方法

関数とは何かを説明し、関数を活用したプログラム部品化の概念を示す。関数定義の方法と関数の利用方法、変数のスコープなど、関数の利用時に気をつけるべき点を列挙する。さらに代表的な標準関数を紹介し、標準で提供される関数で様々なことを実現できることを例示する。

6

4-2-基-5. ポインタを利用した効果的なプログラミングメモリ上に配置されているデータの抽象化とアドレスの考え方を示し、ポインタの概念、特徴、利用方法について解説する。また配列や文字列、関数を利用する際にポインタを上手に利用する技法を示し、関数ポインタの概念についても言及する。

7,8

4-2-基-6. マクロの利用(プリプロセッサ機能)C コンパイラにおけるプリプロセッサの位置づけと、プリプロセッサが備えている機能を説明する。また、マクロによるプログラミング例を紹介し、マクロの効果的な使い方とマクロ利用時の留意点について解説する。

9

4-2-基-7. 構造体・共用体・列挙型

構造体の概要、定義と使い方を解説し、変数や配列などデータをまとめて扱う方法について説明する。また構造体を配列で利用する方法、構造体メンバへのポインタによるアクセス、関数への構造体データの受け渡し方法など、実際にプログラムで構造体を利用する際に必要となる技術を解説する。その他、共用体や列挙型の定義と使い方を解説する。

10,11

4-2-基-8. 入出力C プログラムにおける入出力の概念を説明し、入出力ストリームに対するプログラミング手法を紹介する。また、ファイル入出力、ファイル操作、ディレクトリ操作といったファイル管理について説明し、具体的なデータ入出力方法を解説する。

12

4-2-基-9. データ構造データ構造とは何か説明し、線形リスト、ツリー、スタック、キューといった一般的なデータ構造を紹介する。またメモリ管理とデータ構造の関係に触れ、C プログラムによるデータ構造の実装例を紹介する。

13

4-2-基-10. アルゴリズム用途に応じたデータ構造の使い方を説明し、それぞれのデータ構造を使用した代表的なアルゴリズムや効果的な利用方法を紹介する。

14,15

Page 97: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

97

6.2.7 4-2-応 Cに関する知識

6.2.7.1 科目の概要

C での OSS 開発において、セキュリティを強化し、並列処理による効率を考慮した技術、様々なラ

イブラリを通じて可搬性や使用性を向上させる技術などを解説する。更に OSS のソースコードリーデ

ィングによる技能向上方法を説明する。

6.2.7.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-2-応-1. メモリアロケートの詳細プログラムの実行単位であるプロセスと、プロセスが利用する仮想アドレス空間の概念について解説する。更に、仮想アドレス空間を構成する5つの領域の特徴を説明し、変数の領域確保の方法や生存期間といったメモリアロケートの詳細内容を解説する。

1

4-2-応-2. アーキテクチャとセキュリティCのプログラミングにおいて、CPUのアーキテクチャが異なることを考慮しなければならない項目について解説する。また、バッファオーバーランやメモリリークといった、メモリを管理する上でセキュリティに注意しなければならない事項を解説する。

2

4-2-応-3. テストとデバッグOSSの品質保証活動を支援する、テストとデバッグの手順を解説する。また、OSSの単体テストを自動化するフレームワーク、カバレジ測定ツール、デバッグツールなどを紹介し、その使用方法を説明する。

3

4-2-応-4. ライブラリの構築と利用汎用性と再利用性といったライブラリの概念と、静的ライブラリや共有ライブラリの特徴を解説する。また、それぞれのライブラリによって異なる利用方法や、OSSのコミッタとして必要知識となるライブラリの構築方法を説明する。

4

4-2-応-5. 並列処理並列処理と並行処理についての概念を解説し、逐次処理と並列処理の違いを説明する。更に、Cにおける、複数のプロセスを並列実行するマルチプロセスの手法と、同一プロセス内での並列処理技法であるマルチスレッドを解説する。

5,9

4-2-応-6. ネットワークTCP/IPでのクライアントプロセス・サーバプロセスといった、ネットワークプログラミングの概要を説明し、ネットワーク通信のAPIとしてソケットを紹介する。更に、APIを使用したセッション管理のCによる実装方法を解説する。

6,9

4-2-応-7. データベース

データベースシステムの構成要素として、アプリケーションとDBMSの関連性などについて解説する。また、Cによるデータベースプログラミングの実装として、単純なテーブルの作成や照会などを行うクエリを埋め込んだソースコードを例にあげ、DBMSライブラリの使用方法を解説する。

7,10

4-2-応-8. GUI

GUIアプリケーションを開発するために用意されたウィジェットライブラリであるGTK+を紹介する。GTK+の導入方法、基本的な構造、特徴について述べ、GTK+で使われるシグナルとコールバックの概念を説明する。また簡単なサンプルプログラムによりGTK+の使い方を示す。

8,10

4-2-応-9. ポータビリティと国際化オープンソースソフトウェアのポータビリティとしてLSB(Linux Standard Base)の概要を解説し、国際化としてOpenI18N(Open Internationalization)の概要を説明する。更に、Cにおける国際化の手法として、ロケールの設定にあわせた変換方法を解説する。

11

4-2-応-10. コードリーディングオープンソースソフトウェアを読み解くことの意義を説明し、コードリーディングに有効な手法として、関連するドキュメント類の参照方法や、データ構造と処理の流れを読み解く方法を説明する。更に解析に有用な統合開発環境やツール類の紹介を行う。

12

Page 98: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

98

6.2.8 4-3-基 C++に関する知識

6.2.8.1 科目の概要

Cを拡張してオブジェクト指向の概念を取り入れたプログラミング言語であるC++の基本的な知識を

解説する。C++プログラムの構造、型、演算子や標準的なプログラム記述方法、ライブラリを利用した

プログラミングなどについて説明する。 6.2.8.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-3-基-1. オブジェクト指向の概念C++プログラミングの前提となるオブジェクト指向の概念について解説する。データ自身だけでなくデータの処理方法まで含めてオブジェクトに全てが属するという根本的な考え方と、各種の用語、型による抽象的なデータ操作などについて説明する。

1

4-3-基-2. C++の基本

C++の歴史や特徴、C++による開発事例を解説する。また、C++によるプログラムを開発する手順として、エディタによるプログラム作成からコンパイル、プログラム実行までの流れを説明し、簡単なC++プログラム作成例を紹介する。更に変数やデータ型のCから拡張された部分を説明する。

2

4-3-基-3. クラス

C++プログラム構成の概要を説明し、C++で導入されているオブジェクト指向の特徴について述べる。更に、C++によるオブジェクト指向プログラミングの実現方法について解説し、C++におけるクラスの定義方法、コンストラクタ、デストラクタなどについて説明する。

3,4

4-3-基-4. オーバーロードC++プログラミングを特徴付ける関数の使用方法と、関数のオーバーロードや演算子のオーバーロードについて解説する。またフレンド関数やフレンドクラスについて解説し、演算子のオーバーロードにフレンド関数を使用することの利点を説明する。

5,6

4-3-基-5. 継承と多相性C++における継承の概念と、基底クラスから派生クラスを作成する方法を解説し、継承の形態による継承後の属性の変化を説明する。また、オーバーライドの使用方法を解説し、仮想関数を利用した多相性の実現方法を説明する。

7

4-3-基-6. 抽象クラス・多重継承関数の実体を持たない純粋仮想関数を少なくともひとつは持つ抽象クラスの概念を説明し、更にインタフェースクラスを解説する。また、複数のクラスを継承する多重継承と、継承の重複を回避する仮想基底クラスについて解説する。

8,13

4-3-基-7. テンプレート

C++におけるジェネリックプログラミングの実現手法として、テンプレートの概念と利便性を解説し、ソースコードの生成を自動化する関数テンプレートの定義方法と、要素の型が任意となるクラステンプレートの定義方法を解説する。またクラステンプレートの例としてstringクラスを解説する。

9,13

4-3-基-8. 例外・名前空間・キャスト・変換関数C++における動的エラーの統一した処理として例外処理を説明する。その他、名前空間の詳細を解説し、プログラムの実行時にデータ型を取得する実行時型情報の取得方法や、Cにはないキャストの方法、更に変換関数を解説する。

10,11

4-3-基-9. 入出力Cでの入出力をC++でサポートしていることを説明し、C++の入出力システムとの違いを解説する。更に、定義済みマニピュレータとマニピュレータの作成方法、また抽出演算子や挿入演算子のオーバーロードの方法を解説する。

12

4-3-基-10. Standard Template Libraryコンテナ、イテレータ、アルゴリズムのライブラリ化といった概念を説明し、C++によるその実装であるSTL (Standard Template Library)を紹介する。またSTL によるプログラミング例を挙げ、STL の具体的な使い方を解説する。

14,15

Page 99: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

99

6.2.9 4-3-応 C++に関する知識

6.2.9.1 科目の概要

C++での OSS 開発において、セキュリティを強化し、並列処理による効率を考慮した技術、様々な

ライブラリを通じて可搬性や使用性を向上させる技術などを解説する。更に OSS のソースコードリー

ディングによる技能向上方法を説明する。

6.2.9.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-3-応-1. メモリアロケートの詳細プログラムの実行単位であるプロセスと、プロセスが利用する仮想アドレス空間の概念について解説する。更に、仮想アドレス空間を構成する5つの領域の特徴を説明し、変数の領域確保の方法や生存期間といったメモリアロケートの詳細内容を解説する。

1

4-3-応-2. アーキテクチャとセキュリティC++のプログラミングにおいて、CPUのアーキテクチャが異なることを考慮しなければならない項目について解説する。また、バッファオーバーランやメモリリークといった、メモリを管理する上でセキュリティに注意しなければならない事項を解説する。

2

4-3-応-3. テストとデバッグOSSの品質保証活動を支援する、テストとデバッグの手順を解説する。また、OSSの単体テストを自動化するフレームワーク、カバレジ測定ツール、デバッグツールなどを紹介し、その使用方法を説明する。

3

4-3-応-4. ライブラリの構築と利用汎用性と再利用性といったライブラリの概念と、静的ライブラリや共有ライブラリの特徴を解説する。また、それぞれのライブラリによって異なる利用方法や、OSSのコミッタとして必要知識となるライブラリの構築方法を説明する。

4

4-3-応-5. 並列処理並列処理と並行処理についての概念を解説し、逐次処理と並列処理の違いを説明する。更に、Cにおける、複数のプロセスを並列実行するマルチプロセスの手法と、同一プロセス内での並列処理技法であるマルチスレッドを解説する。

5,9

4-3-応-6. ネットワークTCP/IPでのクライアントプロセス・サーバプロセスといった、ネットワークプログラミングの概要を説明し、ネットワーク通信のAPIとしてソケットを紹介する。更に、APIを使用したセッション管理のCによる実装方法を解説する。

6,9

4-3-応-7. データベース

データベースシステムの構成要素として、アプリケーションとDBMSの関連性などについて解説する。また、C++によるデータベースプログラミングの実装として、単純なテーブルの作成や照会などを行うクエリを埋め込んだソースコードを例にあげ、DBMSライブラリの使用方法を解説する。

7,10

4-3-応-8. GUI

GUIアプリケーションを開発するために用意された著名なウィジェットライブラリであるQtを紹介する。Qtの導入方法、基本的な構造、特徴について述べ、Qtで使われるシグナルとスロットの概念を説明する。また簡単なサンプルプログラムによりQtの使い方を示す。

8,10

4-3-応-9. ポータビリティと国際化オープンソースソフトウェアのポータビリティとしてLSB(Linux Standard Base)の概要を解説し、国際化としてOpenI18N(Open Internationalization)の概要を説明する。更に、C++における国際化の手法として、ロケールの設定にあわせた変換方法を解説する。

11

4-3-応-10. コードリーディングオープンソースソフトウェアを読み解くことの意義を説明し、コードリーディングに有効な手法として、関連するドキュメント類の参照方法や、データ構造と処理の流れを読み解く方法を説明する。更に解析に有用な統合開発環境やツール類の紹介を行う。

12

Page 100: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

100

6.2.10 4-4-基 スクリプト言語に関する知識

6.2.10.1 科目の概要

スクリプト言語と呼ばれる言語について解説する。代表的なスクリプト言語である Perl、PHP、Python、JavaScript、Ruby を紹介し、その特徴と基本的な構文を説明する。さらに、Ruby を利用し

たオブジェクト指向プログラミングや、Ruby特有の項目を掘り下げて解説する。 6.2.10.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-4-基-1.スクリプト言語とWebアプリケーションの基本スクリプト言語の概要を紹介し、その歴史、特徴、用途、代表的なスクリプト言語の種類などについて概説する。さらにスクリプト言語を利用した開発の流れについて述べ、プログラミングから実行までの手順を示す。

1,2

4-4-基-2.Perlの特徴と正規表現古くから利用されているPerlの概要と特徴について触れ、Perlの動作、ライセンス形態、代表的な利用方法などを紹介する。また基本的なプログラミングができるように、型、演算子、制御構文などについて説明し、Perlを特徴付ける「正規表現」について解説する。

3

4-4-基-3.PHPの特徴と埋め込みプログラミング

Webアプリケーションのロジック記述に利用されることの多いPHPの概要と特徴について触れ、PHPの動作、ライセンス形態、代表的な利用方法などを紹介する。また基本的なプログラミングができるように、型、演算子、制御構文などについて説明し、PHPを特徴付ける「埋め込みプログラミング」を解説する。

4

4-4-基-4.Pythonの特徴と連想配列

設定ファイルや機能拡張言語のベースとしてしばしば利用されるPythonの概要と特徴について触れ、Pythonの動作、ライセンス形態、代表的な利用方法などを紹介する。また基本的なプログラミングができるように、型、演算子、制御構文などについて説明し、Pythonを特徴付ける「連想配列」を開設する。

5

4-4-基-5.JavaScriptの特徴とクライアントサイドプログラミング

現在の主流であるAjaxをはじめとした画面遷移を伴わないWebアプリケーションには欠かせないJavaScriptの概要と特徴について触れ、JavaScriptの動作、代表的な利用方法などを紹介する。また基本的なプログラミングができるように、型、演算子、制御構文などについて説明し、JavaScriptを特徴付けるクライアントサイド処理について解説する。

6

4-4-基-6.Rubyの特徴、基本的な構造、型、演算子、制御構文オブジェクト指向プログラミングを特徴とするRubyの概要と特徴について触れ、Rubyの動作、ライセンス形態、代表的な利用方法などを紹介する。また基本的なプログラミングができるように、変数、演算子、制御構文などについて解説する。

7,8

4-4-基-7.Rubyによるオブジェクト指向プログラミングRubyを題材として、オブジェクト指向プログラミングの基本について解説する。オブジェクト指向の概念を説明し、クラスやメソッドの定義、カプセル化、継承、および、ポリモルフィズムといった考え方がRubyでどのように表現されるかを示す。

9,10

4-4-基-8.Rubyにおけるデータ(数値、文字列、その他)の操作Rubyに組み込まれている数値や文字列、日付などの固有なデータ操作に特化したクラスについて説明する。数値クラス、文字列クラス、その他特有のクラスについて、その概要を解説し、各クラスの構成や使い方を紹介する。また、正規表現の具体的な使い方を解説する。

11,12

4-4-基-9.Rubyが持つ特徴的なデータクラス(配列、ハッシュ等)Rubyに組み込まれている配列やハッシュなどの汎用データ型クラスについて説明する。配列、ハッシュ、構造化クラスの概要を解説し、各クラスの構成や使い方を紹介する。

13,14

4-4-基-10.Rubyによるファイル操作のプログラミングRubyに組み込まれているファイル入出力やファイル/ディレクトリ操作などのファイル管理に特化したクラスについて説明する。ファイルクラス、IOクラス、その他ファイル操作に関連するクラスについて、その概要を解説し、各クラスの構成や使い方を紹介する。

15

Page 101: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

101

6.2.11 4-4-応 スクリプト言語に関する知識

6.2.11.1 科目の概要

スクリプト言語によるシステム構築の応用例としてRuby によるアプリケーション構築フレームワー

クであるRuby on Rails (RoR)を取り上げる。RoRの基本的な仕組みを解説し、RoRを利用したデータ

ベースアプリケーション開発やアプリケーションのカスタマイズ、開発方法などについて解説する。

6.2.11.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

4-4-応-1.文字コードと多言語化文字データを扱うために必要な文字コードについて解説する。また、Ruby M17Nによる多言語化について説明し、多言語対応によるテキストの変換方法を解説する。

1

4-4-応-2.セキュリティWebアプリケーション構築の際に必須となるセキュリティ事項を紹介し、問題の原因と解決方法を解説する。

2

4-4-応-3.テストとデバッグOSSの品質保証活動を支援する、テストとデバッグの手順を解説する。Rubyでの単体テストの手法を説明し、テストの自動化やデバッグの方法について解説する。

3

4-4-応-4.Ruby on Rails とはRoRによるWebアプリケーション開発の概要と作業の流れを解説する。RoRを利用して開発したWebアプリケーションの構成要素を説明し、データベースの設定方法やWebサーバの起動、インタラクションの確認方法などについて解説する。

4

4-4-応-5.Ruby on Rails でのデータベース連携RoRを用いたWebアプリケーション開発ではどのようにデータベースとの連携が行われるかを解説する。RoRにおけるデータベース連携のコンポーネントであるActiveRecordの概要と構成について説明し、データベース操作に必要な各種の設定について述べる。

5

4-4-応-6.Ruby on Railsを利用したデータベースアプリケーション開発

データベースアプリケーションの開発方法を、RoRでどのように実現するかについて具体的な操作手順を交えて説明する。テーブルの定義、テーブル操作、トランザクション処理といったそれぞれの手順がRoRでどう実現されるかを解説する。

6

4-4-応-7.Ruby on Rails を使用したWebアプリケーションの作成

RoRによるWebアプリケーション開発の概要と作業の流れを解説する。RoRを利用して開発したWebアプリケーションの構成要素を説明し、データベースの設定方法やWebサーバの起動、インタラクションの確認方法などについて解説する。

7,8

4-4-応-8.Ruby on Railsのプラグイン開発

RoRの機能を拡張するプラグインを新たに開発する方法を説明する。ジェネレータの実行や機能の実装と実行といったプラグイン作成手順の流れを示し、作成したプラグインをテストする手法を示す。また新たに作成したプラグインを利用するサンプルプログラムを示し実際の利用手順を説明する。

9

4-4-応-9.Rubricksのカスタマイズ

典型的なWebアプリケーションであるコンテンツ管理システム(Content Management System;CMS)について説明し、CMSのRubyによる実装例としてRubricksやRadiant CMSなどのアプリケーションを紹介する。RubricksやRadiant CMSの構成と特徴について述べ、さらに各アプリケーションの導入と設定方法を解説する。

10

4-4-応-10.コードリーディングオープンソースソフトウェアを読み解くことの意義を説明し、コードリーディングに有効な手法として、関連するドキュメント類の参照方法や、データ構造と処理の流れを読み解く方法を説明する。更に解析に有用な統合開発環境やツール類の紹介を行う。

11

Page 102: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

102

6.2.12 5-1-基 開発フレームワークに関する知識

6.2.12.1 科目の概要

開発フレームワークとは何か、その基本的な概念、歴史、特徴とメリットを解説する。さらに開発フ

レームワークの種類や特徴を説明し、実際の7開発に役立てることができる知識やノウハウを示す。 6.2.12.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-1-基-1.開発フレームワークの歴史、思想と背景開発フレームワークとは何かを説明し、開発フレームワークの基本理念、目的、発展の歴史、開発フレームワークが登場した背景と思想について解説する。

1

5-1-基-2.開発フレームワークの特徴とメリット開発フレームワークを利用した開発の特徴と、開発フレームワーク利用の効果、メリットについて解説する。また代表的な開発フレームワークを紹介し、それぞれの歴史や背景、特徴、利用上の注意点、開発フレームワークの選択方法、ライセンス形態などを説明する。

1

5-1-基-3.Webアプリケーションで利用できるOSSフレームワークオープンソースによるWebアプリケーション開発フレームワークを紹介する。Struts、JSF、iBATIS、Hibernate、Seasar2、Springといった代表的なフレームワークを紹介し、それぞれの開発内容の違いについて解説する。

2

5-1-基-4.Tomcatの特徴とServlet/JSPによるアプリケーション開発

Java Servlet/JSPコンテナの代表的なものとして、Tomcatを取り上げ、その位置づけ、特徴とServlet/JSPによるWebアプリケーション開発の具体的な手順を説明する。

3

5-1-基-5.アプリケーションサーバJBossの機能と特徴アプリケーションサーバについて、例として代表的なアプリケーションサーバであるJBossを取り上げ、その位置づけ、特徴を解説する。またTomcatとの連携やEJBコンテナ機能、アプリケーションサーバ機能など、JBossの持つ様々な機能を紹介する。

3

5-1-基-6.MVCフレームワークの概要MVCモデルを適用したWebアプリケーション用の開発フレームワークとしてWeb MVCフレームワークの概念を説明する。モデル、ビュー、コントローラのそれぞれの役割と、お互いの依存性を低くしたことによる利点を解説する。

4,5,6,7,8

5-1-基-7.ORマッピングフレームワークの概要

オブジェクト指向アプリケーションのデータとして取り扱うオブジェクトと、リレーショナルデータベースに格納されるレコードとの対応を取るための仕組みであるORマッピングについて、基本的な考え方やオブジェクトとレコードの対応関係、OSSによるORマッピングの実装例について解説する。

9,10,11

5-1-基-8.DIxAOPフレームワークの概要Dependency Injection (DI)とAspect Oriented Programming (AOP)の概念と利点を整理し、新しいWebアプリケーションの基盤を成すDIxAOPコンテナの仕組みと基本的な構成、特徴について解説する。

12,13

5-1-基-9.Spring Frameworkの利用DIxAOPコンテナ実装のひとつであるSpring Framework の基本的な仕組みと基本的な構成、特徴について解説する。またStrutsやHibernateなど他のフレームワークとの連携や開発ツールなど、実際の利用に有効なトピックを紹介する。

14

5-1-基-10.Seasar2の構成と特徴DIxAOPコンテナ実装のひとつであるSeasar2の基本的な仕組みと基本的な構成、特徴について解説する。またStrutsやJSF、Hibernateなど他のフレームワークとの連携や開発ツールなど、実際の利用に有効なトピックを紹介する。

15

Page 103: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

103

6.2.13 5-1-応 開発フレームワークに関する知識

6.2.13.1 科目の概要

実際の開発フレームワークについてその構成と特徴を解説し、それらの開発フレームワークを利用す

る方法と、ORマッピングやDIxAOPコンテナなど、開発フレームワークで利用される基本的な概念に

ついて説明する。 6.2.13.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-1-応-1.統合開発環境でのフレームワークの利用様々なフレームワークに対応したEclipseプラグインを紹介し、代表的なプラグインの特徴を説明する。

1

5-1-応-2.コントローラの設定MVCモデルのコントローラについてStrutsを用いた実装を通して解説する。Strutsを用いたアプリケーションが動作するために重要な仕組みを説明し、開発者が行わなくてはならない設定内容について解説する。

2

5-1-応-3.モデルの実装MVCモデルのモデル部分が担当する、データ管理、ビジネスロジック実行を、Strutsを用いたモデル作成を通して解説する。ActionクラスとActionFormクラス、および、それらを継承したクラスの役割と使い方を説明する。

3

5-1-応-4.ビューの実装MVCモデルのビューについてStrutsを用いた実装を通して解説する。JSPの基本的な文法とStrutsで用意されているカスタムタグライブラリの利用方法を説明する。

4

5-1-応-5.ORマッピングの実装SQLを意識せずに利用することができるORマッピングツールであるHibernateの概要について述べる。Hibernateの基本的な構成と特徴、マッピングの仕様、Hibernateを利用したデータベースの操作方法などについて説明する。

6

5-1-応-6.DIコンテナの実装SpringとStrutsとの連携について説明し、Springが提供するDI機能によるアクションとビジネスロジックの依存性低下とその利点について解説する。アノテーションによる設定方法を紹介し、簡単な設定でDI機能を利用できることを解説する。

8

5-1-応-7.AOPの実装SpringにおけるAOPの実装について、アノテーションを利用した設定方法を解説する。また、Springで提供されているトランザクション管理について説明する。

9

Page 104: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

104

6.2.14 5-2-基 開発ツールに関する知識

6.2.14.1 科目の概要

ソフトウェアを開発する際に活用する一連のツール群について、その機能と使い方を説明する。コン

パイラやデバッガといった基本的なツールから、バージョン管理ツール、バグトラッキングシステムま

で、様々なツールの活用法を解説する。 6.2.14.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-2-基-1.開発ツールの概要ソフトウェア開発に有効利用できるツールの概要を示し、各種ツールの特徴、用途と解説する。基本的な利用方法を説明し、実際のソフトウェア開発で活用できるノウハウを紹介する。

1

5-2-基-2.プロジェクト管理のためのツールプロジェクト管理に有用なツールの特徴とメリットを紹介する。プロジェクト管理ツールの種類や、タスクやスケジューリングの概念を解説し、チケットやWikiを利用した情報共有の方法を説明する。

2,10,13

5-2-基-3.バージョン管理のためのツールバージョン管理ツールの特徴とメリットを紹介する。チェックアウトやコミットといった基本的な利用方法を説明し、ソースコードの成長の過程をトレースする方法を解説する。

3

5-2-基-4.ソースコード解析のためのツールソースコードを解析するためのツールの種類と特徴を紹介する。エディタをはじめとして、検索機能、差分解析の方法を解説する。コードナビゲータについても紹介し、より効率的なコード解析のためのツールを説明する。

4,5

5-2-基-5.実行プログラム作成のためのツールソースコードから実行形式のデータにするためのツールの概要と特徴を紹介する。各種ツールの位置づけ、関係を解説し、実行形式のデータがどのように作成されるか説明する。

6

5-2-基-6.デバッグで使用できるツールプログラムが実行可能な状態であっても正常に動作するとは限らず、予期しない動きを起こすことが多いことを説明する。このような不具合をバグと呼び、デバッガと呼ばれるツールで取り去ることができることを解説する。

7

5-2-基-7.ビルドツール実行プログラムの作成を形式的に行うことができるビルドツールの概要とメリットを紹介する。ビルドツールを利用することで、ビルドを自動的に行うことができることを解説し、単体テストなどと連携することでソフトウェアの信頼性向上に寄与することを紹介する。

8

5-2-基-8.テストツールソフトウェアの品質向上には欠かせないテストツールの種類とその概要を解説する。テストの工程ごとに有用なツールを紹介し、それらを使用することがソフトウェアの品質向上に大きく影響することを説明する。

9

5-2-基-9.ユーザへのリリースのためのツール

実行プログラムのパッケージ化やドキュメント作成のためのツールの概要と特徴を説明する。パッケージ生成ツールを利用したソフトウェアのインストールや、自動ドキュメント生成ツールを利用したドキュメントの整備方法を紹介し、ユーザにとって使いやすい環境を提供する方法を解説する。

11,12

5-2-基-10.仮想化ツール仮想化ツールの特徴やメリットを紹介する。開発環境やテスト環境を仮想化することで、再現可能な環境や、OSの動作に影響を及ぼすようなテストを容易にできることを解説する。

14

Page 105: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

105

6.2.15 5-2-応 開発ツールに関する知識

6.2.15.1 科目の概要

ソフトウェア開発で利用できる様々な開発ツールについて、バグトラッキングシステムやバージョン

管理ツール、ビルドツールなどを組み合わせた開発環境を構築する。また、パッケージングや仮想化環

境を実際に作成し理解を深める。

6.2.15.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-2-応-1.バグトラッキングシステム環境の構築とカスタマイズバグトラッキングシステムの構築方法を解説する。 インストールしたままのバグトラッキングシステムに不足している機能を、プラグインのインストールによって補うことができることを紹介する。

1

5-2-応-2.コミュニケーションツールとしてのバグトラッキングシステム

バグトラッキングシステムをタスク管理としての機能のみならずコミュニケーションツールとしての役割も果たすことを紹介する。Wikiやスケジュールの機能を利用してプロジェクトの情報や進捗を共有する方法を解説する。

2

5-2-応-3.バージョン管理ツールの環境構築バージョン管理ツールの構築方法について解説する。バージョン管理ツールを外部に公開する際には複数の方法があることを紹介し、それぞれの特徴を説明する。またクライアントソフトも、コンソールのみならず、GUIアプリケーションからもアクセスできることにも触れる。

3

5-2-応-4.チーム開発のためのバージョン管理ツール利用法チームでバージョン管理ツールを利用して開発するときに必要になる機能の概要を説明する。更新、ブランチやマージといった機能を紹介し、チーム開発でのノウハウを解説する。

4

5-2-応-5.分散型のバージョン管理ツール近年注目を集めている分散型のバージョン管理ツールについて概要とメリットを解説する。分散型バージョン管理ツールの種類を紹介し、チェックアウトやコミットといった機能を紹介する。

5

5-2-応-6.タスクとソースコードの相互トレーサビリティバグトラッキングツールとバージョン管理ツールを相互に連携することでトレーサビリティをより向上できることを解説する。チケットとリビジョンの関連付けの方法や履歴の追い方を紹介する。

6

5-2-応-7.C言語のビルドツール主にC言語で書かれたOSSツールをビルドするときに必要な知識を解説する。configureやmakeと呼ばれるツールを利用することで、コンパイルからインストールまで一連の作業を自動的に行うことができることを説明する。

7

5-2-応-8.継続的インテグレーションビルドツールの応用的利用方法として、継続的インテグレーション(CI)について紹介する。CIツールを利用することで、常時結合された状態となりソフトウェアの品質向上に大きく寄与することを解説する。

8

5-2-応-9.パッケージの作成ユーザにリリースするためのパッケージ作成方法を紹介する。パッケージ作成に必要な設定ファイルの書き方を紹介し、インストール先の変更や依存関係の解決方法を解説する。

9

5-2-応-10.仮想化環境の構築と応用利用仮想化環境の構築方法を解説し、仮想化ツールの応用的な利用方法としてのスナップショット機能を紹介する。スナップショット機能を利用することで、いつでも特定の状態に戻すことができるため、幅広い場所での活用が期待できることを紹介する。

10,11

Page 106: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

106

6.2.16 5-3-基 統合開発環境に関する知識

6.2.16.1 科目の概要

ソフトウェア開発を効率的に進めるために用意されている統合開発環境について解説する。統合開発

環境の歴史、機能、特徴、使い方などを説明する。また OSS の開発で利用される代表的な統合開発環

境について、その特徴や導入方法、基本的な機能を紹介する。 6.2.16.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-3-基-1.統合開発環境によるソフトウェア開発統合開発環境の概要、主な機能や利用するメリットを解説する。統合環境でのソフトウェア開発方法の流れを解説し、機能の追加、統合の方法についても紹介する。

1

5-3-基-2.統合開発環境の種類主な統合開発環境の種類と代表例を紹介する。対応言語、対応フレームワーク、開発用途などの特徴と違いを解説する。

2

5-3-基-3.統合開発環境でのプログラム作成と実行統合開発環境を利用したプロジェクトの概念を説明する。実際にプロジェクトの作成からコーディング、ビルドと実行までの手順を解説する。

3,4

5-3-基-4.統合開発環境でのデバッグ統合開発環境でのデバッグ方法を解説する。ブレークポイントを利用したプログラムのステップ実行や変数の解析、コールスタックでの呼び出し履歴など、デバッグに必要な画面の紹介をする。

5

5-3-基-5.統合開発環境でのWebアプリケーションデバッグ統合開発環境Eclipseに用意されるWeb Tools Platform (WTP)を用いたWebアプリケーション開発環境の機能について解説する。またそれぞれの機能の特徴やWTPを用いたWebアプリケーション開発で留意すべきポイントを説明する。

6

5-3-基-6.統合開発環境でドキュメント生成ツールの利用ドキュメントツール用に書かれたソースコード内のコメントをもとに、ソースコードドキュメントを自動的に生成する方法を解説する。ドキュメント生成のための各種コメントについても紹介する。

7

5-3-基-7.統合開発環境でのバージョン管理ツールの利用統合開発環境からのバージョン管理ツールの利用方法を解説する。統合開発環境上での追加やコミットなど基本的な使い方を紹介する。

8

5-3-基-8.統合開発環境でのテストフレームワークの連携統合開発環境でのテストフレームワークの利用について解説する。統合開発環境と様々なテストフレームワークを連携させることで、開発中のテストを容易に行うことができるようになることを説明する。

9

5-3-基-9.統合開発環境でのコードスタイルチェックツールの利用

統合開発環境にコードスタイルチェック機能を追加することで、複数人で開発したときなどにコード品質のバランスをそろえることができることを紹介する。コードスタイルの登録方法を紹介し、その有用性を解説する。

10

5-3-基-10.統合開発環境での静的解析統合開発環境でのソースコードの静的解析について解説する。統合開発環境に静的解析機能を付加することで、実行前にバグの発見を行うことができることを紹介する。

11

Page 107: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

107

6.2.17 5-3-応 統合開発環境に関する知識

6.2.17.1 科目の概要

ソフトウェア開発を効率的に進めるために用意されている統合開発環境と様々な外部ツールとの連携

を紹介する。また、C言語やスクリプト言語など他のプログラミング言語の開発環境の構築についても

言及する。

6.2.17.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

5-3-応-1.統合開発環境でのコードカバレジ計測とメトリクス測定

カバレジの概念を解説し、統合開発環境でのカバレジ計測の方法を説明する。また、メトリクスについても説明し、プログラムが複雑にならないような考え方を紹介する。

1,2

5-3-応-2.統合開発環境でのリファクタリングリファクタリングの概念を説明し、統合開発環境でのリファクタリング方法を解説する。リファクタリングも単体テストとついになっていることを説明し、コーディング、テスト、リファクタリングの流れを紹介する。

3

5-3-応-3.統合開発環境とバグ管理ツールの連携統合開発環境とバグ管理ツールの連携方法を紹介する。統合開発環境からのバグ登録やバグ一覧の取得の方法を解説する。

4

5-3-応-4.統合開発環境とビルドツールの連携統合開発環境とビルドツールの連携方法を紹介する。統合開発環境でのビルドルール作成や、実際のビルド開始方法を説明する。

5

5-3-応-5.統合開発環境でのWeb開発WTPの入手先や導入方法、Webコンテナの設定方法、WTPで作成可能なEclipseプロジェクトについて説明し、Webアプリケーションの開発を行う際に必要となる知識について解説する。

6

5-3-応-6.統合開発環境でのGUI開発統合開発環境でのGUIアプリケーション開発について解説する。GUIフレームワーク用のプラグインを導入することで、RAD(Rapid Application Development)環境を構築できることを紹介し、様々なコンポーネントの利用方法を説明する。

7

5-3-応-7.統合開発環境でのMVCフレームワークの利用統合開発環境を利用したMVCフレームワークの利用について解説する。統合開発環境にMVCフレームワーク用のプラグインを追加することで、画面遷移をビジュアルで行うことができることを紹介する。

8

5-3-応-8.統合開発環境でのDB開発統合開発環境を利用したDBフレームワークの利用について解説する。統合開発環境にDBフレームワーク用のプラグインを追加することで、O/Rマッピングと呼ばれる、SQLを書かないDBアクセスを実現することができる。

9

5-3-応-9.様々なプラグイン統合開発環境にはいままで紹介した他にも有用なプラグインが数多く存在することを紹介する。UMLやER図のプラグイン等を紹介する。

10

5-3-応-10.他のプログラミング言語対応のためのプラグイン統合開発環境はプラグインを導入することで、いろいろなプログラミング言語に対する開発環境を提供することを解説する。対応言語とプラグインについて紹介する。

11,12

Page 108: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

108

6.2.18 5-4-応 OSS開発プロセスに関する知識

6.2.18.1 科目の概要

オープンソースプロジェクトに開発者として参加するために、事前に知っておくべきオープンソース

コミュニティの組織や開発手法を学ぶ。

6.2.18.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。

Page 109: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

109

6.2.19 5-5-応 OSSコミュニティマネジメントに関する知識

6.2.19.1 科目の概要

オープンソースプロジェクトにおける、企業内プロジェクトでいうマネージャの役割となるコミュニ

ティマネージャを育成する上で必要な、コミュニティ組織、開発体制、コミュニケーション手段などを

学習する。 6.2.19.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。

Page 110: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

110

6.2.20 8-1-基 組み込みシステム開発に関する知識

6.2.20.1 科目の概要

組み込みシステムの基本的な構造と活用方法、組み込みシステムを構成するハードウェア、ソフトウ

ェア、OSなど様々な要素の役割や特徴について解説する。 6.2.20.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

8-1-基-1.組み込みコンピュータシステム組み込みコンピュータシステムとは何か、基本的な概念を説明する。組み込みコンピュータシステムにおけるハードウェア、ソフトウェア、ネットワークの全体的なアーキテクチャを解説する。

1

8-1-基-2.組み込みシステムとOSSの関係、活用事例組み込みシステムにおける数多くのOSS活用事例を紹介し、組み込みシステムの構築にOSSの活用が有効であることを説明する。また組み込みシステムにおけるOSS活用時の留意点についても解説する。

2

8-1-基-3.組み込みコンピュータの要件組み込みシステム開発におけるエミュレータの活用方法について紹介する。エミュレータを利用することで専用ハードウェアがない状況でも実行やデバッグができることを解説する。

3,4,5,6

8-1-基-4.組み込み向けソフトウェアの基本組み込み向けソフトウェアの役割と特徴を説明する。組み込み向けソフトウェア処理の基本として、スレッドとスケジューリングを説明し、並行処理のアーキテクチャに関する基本的な方式とスレッド管理方法などに関する話題にも触れる。

7

8-1-基-5.コンテキストスイッチの仕組み複数の処理(スレッド)を実行するコンテキストスイッチの仕組みを解説する。OSが処理の切り替えを管理するプリエンプション方式の実装方法を説明し、割り込みによるコンテキストスイッチにも触れる。

8

8-1-基-6.非同期処理と同期処理の実装パターンと特徴非同期/同期の概念について触れ、その実装パターンと設計について内容と特徴を説明する。また実行モードの種類や割り込みの優先順位といった具体的な事項について説明する。

9

8-1-基-7.タスク優先順位制御とカーネルによる時間管理方法スレッドの優先度とその制御仕様について、実装パターンと設計内容、特徴、手順を説明する。実際のスレッド制御を行うカーネルが時間制御方法としてどのような管理手法を用いているかについても触れる。

10

8-1-基-8.割り込みとDMA組み込みシステムには欠かせない割り込みとDMA(Direct Memory Access)について解説する。割り込みの仕組みとそれによるOSの動作やDMAの仕組みやメリットを紹介する。

11

8-1-基-9.システムリソースの配分の仕組み(セマフォ、キュー、等)

組み込みシステムにおいては、システムリソースが限定されているため様々な工夫が必要になる。各アプリケーションが限られたシステム資源を効率的に共有する方法について、セマフォ、キュー、といった具体的な実装方法を踏まえて、その内容と特徴を説明する。

12,13

8-1-基-10.システムリソースの共有の仕組み(共有ファイル)複数の組み込みアプリケーション同士でシステムリソースを共有する方法を、共有エリア・共有ファイル、カーネルによる各種のサービス、デッドロックの回避、割り込みディスパッチなどの具体的な実装を挙げて説明する。

14

Page 111: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

111

6.2.21 8-1-応 組み込みシステム開発に関する知識

6.2.21.1 科目の概要

組み込みシステムの開発について留意点や、様々なLinux環境での相違点を解説する。また組み込み

システム自体のアーキテクチャや組み込みシステムを取り巻くネットワーク環境の特徴やソフトウェア

/ハードウェア要件などについて解説する。

6.2.21.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

8-1-応-1.組み込みアプリケーション開発における留意点スタートアップルーチンの実装やROM化において気をつけるべき点Watch Dog Timer(WDT)の利用など、組み込みアプリケーション開発において留意すべき様々な事項を紹介する。

1

8-1-応-2.CPUの特徴によるメモリ管理の違いCPUのMMU(Memory Management Unit)搭載の有無によるメモリイメージおよび管理違いについて説明する。論理アドレスから物理アドレスへのアクセス方法を紹介し、CPUからのメモリアクセスの仕組みを解説する。

4

8-1-応-3.組み込みLinuxにおけるメモリ管理の特徴Linuxの利用形態におけるメモリ管理の差異を説明する。論理アドレスの管理方法の違いや利用環境における適切なメモリ管理の選択方法について解説する。

5

8-1-応-4.組み込みLinuxにおける割り込み処理の流れ組み込みLinuxにおける割り込み処理の流れを解説する。ハードウェア割り込みの発生からソフトウェアで処理されるまでの流れを説明する。

6

8-1-応-5.リソースの排他とデッドロック複数の組み込みアプリケーション同士でシステムリソースを共有する場合に注意すべきデッドロックの概念、デッドロックの回避について具体的な実装を挙げて説明する。

7

8-1-応-6.ファイル入出力プログラムの構成ファイルシステムの概要と、リエントラント性やデバイス独立性などファイルシステムに求められる要件を説明する。さらに実際のファイルアクセスに関する動作の詳細を示し、組み込みアプリケーションからファイルを利用する操作手順の概要について述べる。

8

8-1-応-7.組み込みコンピュータネットワーク携帯電話による通信や、赤外線通信、ユビキタスネットワークなど、組み込みシステムで利用できるインターネット以外のネットワークアーキテクチャについて解説する。さらに組み込みシステムにおけるIPv6の利用動向についても述べる。

9

8-1-応-8.リアルタイムシステムの処理方法と設計マルチタスクOSの一つであるリアルタイムOSについてその特徴、メリットを紹介する。マルチタスクOSとの違いや設計、実装で気をつけるべきことを紹介する。

10

Page 112: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

112

6.2.22 8-2-基 組み込み開発環境に関する知識

6.2.22.1 科目の概要

組み込みシステムの開発手法と組み込みシステムを開発するための開発環境について、その基本構成

と特徴を解説する。さらにデバッガやエミュレータ、統合開発環境を利用した組み込みシステム開発の

実際を、ツールの紹介を交えて具体的に示す。 6.2.22.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

8-2-基-1.組み込みシステムの開発の概要組み込みシステムを開発するための開発環境についてその基本構成と特徴を概説し、必要なハードウェア、ソフトウェア、ツール群を紹介する。

1

8-2-基-2.組み込みLinuxによる実装とその開発組み込みLinuxを用いた組み込みシステムの実装について説明する。ブートローダからLinux実装までの基本構成や、実際のアプリケーション開発方法、プログラミングからROM化までの手順について、組み込みLinuxシステムを題材に解説する。

1

8-2-基-3.組み込みシステムの開発環境組み込みシステムの開発環境について、全体像とその構成、特徴や開発手法などを説明する。ターゲットOS、言語、ミドルウェア、プログラミング方法、エミュレーション、デバッグといった話題について触れ、統合開発環境が持つ管理機能についても言及する。

2

8-2-基-4.組み込みシステムの開発技術

組み込みシステム開発の全体像について、システム全体の設計段階、ハードウェア設計段階、ソフトウェア設計段階からそれぞれの開発を経てシステム提供に至るまでの手順を説明する。またそれぞれの手順で利用される開発環境やツールを紹介し、それらに求められる機能についても解説する。

3

8-2-基-5.ツールチェーンを利用した組み込み開発組み込みLinuxを用いた組み込みシステムの実装について説明する。ブートローダからLinux実装までの基本構成や、実際のアプリケーション開発方法、プログラミングからROM化までの手順について、組み込みLinuxシステムを題材に解説する。

7

8-2-基-6.組み込みLinuxで有用な 省フットプリントユーティリティ

組み込みLinuxの世界で一般的に利用されるユーティリティソフトウェアであるBusyBoxについて概要や特徴、メリットを紹介する。Linuxコマンドを小さいメモリサイズで導入できることや、必要なコマンドのみを選択して導入できることを解説し、簡単な使い方を説明する。

6

8-2-基-7.組み込みソフトウェアのデバッグの基本手順デバッグの基本であるプログラムのトレースにおいて、組み込みシステムならではの特徴について説明し、トレースの基本手順を解説する。またリアルタイム処理に係るトレースの留意点について説明する。

4

8-2-基-8.デバッガを利用したプログラムのデバッグデバッガを利用したデバッグ環境の全体像と構成、特徴を説明する。デバッグ環境構築上の留意点や組み込みシステムを対象としたデバッグ特有の特徴や留意点などについて説明する。

5

8-2-基-9.CPUエミュレータの導入と利用CPUエミュレータの概要と特徴を解説する。CPUをエミュレートすることで、ターゲットシステムがない環境でも開発が行えることを説明し、対応しているハードウェアであればそれも含めて開発できることを説明する。

10

8-2-基-10.統合開発環境の導入と利用組み込み環境での統合環境の利用について解説する。統合環境を利用することで、エディタ、コンパイラ、デバッガをシームレスに扱うことができ、作業の効率化に結びつくことを説明する。

11

Page 113: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

113

6.2.23 8-2-応 組み込み開発環境に関する知識

6.2.23.1 科目の概要

組み込みシステムの開発手法と組み込みシステムを開発するための開発環境について、典型的な開発

環境や実際の利用例を解説する。組み込みアプリケーション開発のポイントを示し、クロス開発環境、

GNU開発環境、組み込みLinuxといった具体的な開発環境を紹介する。 6.2.23.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

8-2-応-1.GNU環境を構成するツール群

GCCやGDBといった基本的なツールに加え、as (アセンブラ)、ld (リンカ)、nm (シンボルテーブルの表示)、objdumpやobjcopyといったオブジェクトファイルを操作するツール、オブジェクトファイルからシンボルを削除するstripなど、binutils (バイナリユーティリティ)に含まれる各種のツールを説明する。

1

8-2-応-2.ソフトウェア開発の基本ツールソフトウェアのビルドを自動化するAutotoolsや移植性を高めるconfigureスクリプト、コンパイル手順を自動化してビルドするmakeなど、C/C++によるソフトウェア開発に対する基本的なツールの動作や特徴について解説する。

4

8-2-応-3.makeとconfigureの利用

Makeを利用した実行ファイルの作成方法を解説する。makeを利用することで、gccやld等のコマンドを個別に実行する必要がなくなり、効率のよい開発を実現することができるこを説明する。また、マルチプラットフォームの環境ではconfigureを利用して、自動的にMakefileを作成する方法も言及する。

4

8-2-応-4.ソフトウェアの開発を効率化するツールC/C++プログラムの移植性を高め、ビルド環境の設定や環境依存のマクロ定義調整を自動化するツールであるAutoconfやAutomakeの概要と動作、利用方法について、具体的な実行手順を交えて解説する。

4

8-2-応-5.ライブラリ化支援や依存情報解決のためのツールとくに環境依存の強いソフトウェアライブラリ作成を支援するツールであるlibtoolを解説する。またライブラリ利用時に使用し依存情報解決を簡単にするツールであるpkg-configについてその位置付けと設定方法を説明する。

4

8-2-応-6.ユーティリティの構築BusyBoxの構築方法を解説する。クロスコンパイラの利用方法や実際にクロスコンパイルを行う手順を、実例を交えて説明する。

4

8-2-応-7.Linuxカーネルの構築

menuconfigを利用したLinuxカーネルの構築方法を解説する。CPUの選択や、デバイスドライバ、ファイルシステムなど、構築に必要な項目を列挙し、実際に構築を行うことで説明する。カーネルハッキング(デバッグ出力)やパワーマネジメントも紹介し、必要に応じたカーネル構築方法を理解する。

3

8-2-応-8.デバイスドライバの組み込み標準でサポートしていないハードウェアや、独自のハードウェアを利用するために必要なデバイスドライバについて解説する。デバイスドライバの概要、デバッグ時とリリース時のドライバインストールに関連することがらを説明する。

5

8-2-応-9.仮想ファイルシステムを利用したターゲット環境の確認

仮想ファイルシステムを利用してターゲット環境の確認を行う方法を解説する。procファイルシステムやsysファイルシステムを紹介し、ターゲット環境の情報を確認できることを説明する。

6

8-2-応-10.ライブラリを使用した組み込みデバッグlibUSBライブラリを利用し、実際にハードウェアレベルでどのように動作しているか解説する。アプリケーションを作成しながら実例を交えることで、組み込み開発の手順、環境の使い方、ハードウェアレベルでのデバッグ方法を説明する。

11,12,13,14

Page 114: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

114

6.2.24 8-3-応 デバイスドライバに関する知識

6.2.24.1 科目の概要

Linux でのデバイスドライバ開発について、開発環境やデバッグ方法、実際の開発方法を解説する。

デバイスドライバを実際に開発することによって、様々なデバイスに対するデバイスドライバの作成方

法を説明する。

6.2.24.2 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ

8-3-応-1.デバイスドライバの概要Linuxにおけるドライバの位置づけ、役割を解説する。Linuxカーネルの階層構造、Linuxデバイスドライバの種類、ユーザ空間とカーネル空間の違いを説明し、カーネル空間のプログラミングでの注意点を紹介する。

1

8-3-応-2.デバイスドライバのビルド環境デバイスドライバのコンパイルについて解説する。makeファイルの記述方法や、作成した実行ファイルのロード方法を説明する。また、コンパイル時に気をつけることとしてアライメントを紹介する。

2

8-3-応-3.デバイスドライバのデバッグデバイスドライバでのデバッグ方法について解説する。デバッグ方法の種類とそれぞれの特徴を説明する。またシステムがハングアップした際のデバッグ方法にも言及する。

3

8-3-応-4.デバイスドライバ開発の環境デバイスドライバの基本的な実装方法を説明する。実装方法の概要をはじめ、システムコールハンドラの登録方法やデータモデルについて説明する。

5

8-3-応-5.デバイスドライバの動作デバイスドライバの実装に必要な機能を解説する。ioctlやprocファイルシステム、同期および非同期処理などデバイスドライバを取り巻く機能を紹介し、それぞれの使い方を説明する。また64bitデバイスドライバについても言及する。

6,7

8-3-応-6.デバイスドライバからのハードウェア制御デバイスドライバからハードウェアにアクセスする方法について解説する。I/Oレジスタの概要やメモリマップドI/Oについて紹介し、アクセスの方法や実装の際の注意点を説明する。

8,9

8-3-応-7.カーネルの構築

作成したデバイスドライバをリリースする際にはカーネルを再構築し、カーネルにデバイスドライバを含める必要があることを解説する。また、組み込み環境ではリソースの制約上、カーネルに含める機能を 小限にする必要があることも紹介し、その際にもカーネルの再構築を行う必要があることを説明する。

4

8-3-応-8.キャラクタ型デバイスドライバファイル操作などに利用されるキャラクタ型デバイスドライバの実装方法を解説する。 も重要な機能の実装を説明し、メモリ空間の違いから専用のデータ移動方法を紹介する。

5,6,7

8-3-応-9.ブロック型デバイスドライバ(ホスト)ディスクなどで利用されるブロック型のデバイスドライバについて解説する。要求の処理方法やリムーバブルメディアに対する処理を説明する。

8,9,10

8-3-応-10.デバイスドライバの周辺知識Linuxのデバイスドライバの周辺知識を解説する。並列処理、プロセス間排他、デッドロックについて説明する。また、OSのブートローダやDMAについても言及する。

11,12,13

Page 115: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

115

6.3 参考文献

OSS基本知識・応用知識の学習ガイダンス拡充において参考にした書籍ならびに学習に有益と思われ

る書籍等を列挙した。 (1-1)OSS の概要に関する知識 ・ 『オープンソースソフトウェアの本当の使い方』 濱野賢一朗/鈴木友峰共著,技術評論社刊 ・ 『Xenによる仮想化システム構築術』實田 健著、日経BP社

http://itpro.nikkeibp.co.jp/article/COLUMN/20060612/240670/ (1-2) 法務分野に関する基礎知識 ・ 『各種知的財産出願のてびき』 発明協会著,特許庁編 ・ 『ビジネスユースにおけるオープンソースソフトウェアの法的リスクに関する調査 調査報告書[平

成 17 年 2 月]』独立行政法人情報処理推進機構 http://www.ipa.go.jp/about/jigyoseika/04fy-pro/open/2004-741d.pdf

・ 『知的財産法概説』 盛岡一夫著,法学書院刊 ・ 『答申:ネットワーク化に対応した特許法・商標法等の在り方について』 産業構造審議会知的財産

政策部会,http://www.jpo.go.jp/shiryou/toushin/toushintou/1312-055.htm (4-1) Java に関するスキル ・ 『やさしいJava 第 3 版』 高橋麻奈著,ソフトバンククリエイティブ刊 ・ 『やさしいJava 第 2 版活用編』 高橋麻奈著,ソフトバンククリエイティブ刊 ・ 『エンタープライズ アプリケーションアーキテクチャパターン』マーチン・ファウラー著, 長瀬 嘉

秀監訳,株式会社 テクノロジックアート訳, 翔泳社 刊 ・ 『管理者のためのJ2EE設計ベストプラクティス』Khawar Zaman Ahmed/Cary E. Umrysh共

著,船切 誠/今野 睦共訳, 株式会社ピアソンエデュケーション 刊 ・ 『オブジェクト指向における再利用のためのデザインパターン』Erich Gamma/Ralph Johnson

/Richard Helm/John Vlissides 共著,本位田 真一/吉田 和樹共訳, ソフトバンククリエイティ

ブ 刊 ・ 『明解Java入門編』 柴田望洋著, ソフトバンククリエイティブ刊 ・ 『速習 Java Swing プログラミング』 Satyaraj Pantham著, 岩谷 宏訳, ソフトバンクパブリッ

シング刊 ・ 『はじめてのJSP&サーブレットプログラミング』 アイティーブースト著, 秀和システム刊 ・ 『J2EE クイックリファレンス』 David Flanagan/Jim Farley/William Crawford/Kris

Magnusson共著, オブジェクト指向研究会訳, オライリー・ジャパン刊 (4-2) C、C++に関する知識 ・ 『C 実践プログラミング』 Steve Oualline 著,オライリー・ジャパン刊 ・ 『プログラミング言語C 第2版』Brian Wilson Kernighan/Dennis MacAlistair Ritchie共著, 石

田晴久訳, 共立出版刊 ・ 『ふつうのLinuxプログラミング』青木峰郎著, ソフトバンククリエイティブ刊 ・ 『明解C言語入門編』 柴田望洋著, ソフトバンククリエイティブ刊 ・ 『定本 Cプログラマのためのアルゴリズムとデータ構造』近藤嘉雪著, ソフトバンククリエイティ

Page 116: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

116

ブ刊 (4-3) C++に関する知識 ・ 『C++実践プログラミング』Steve Oualline 著,オライリー・ジャパン刊 ・ 『Effective C++ 第3版』Scott Meyers 著,ピアソン・エデュケーション刊 ・ 『明解C++』 柴田望洋著, ソフトバンククリエイティブ刊 ・ 『独習C++ 第3版』Herbert Schildt著,翔泳社刊 ・ 『連載:ここから始めるオブジェクト指向 第2回』河合昭男著,アイティメディア株式会社,

http://www.atmarkit.co.jp/im/carc/serial/object02/object02.html (4-4)スクリプト言語に関する知識 ・ 『プログラミング Ruby-達人プログラマーガイド』 David Thomas/Andrew Hunt 著,ピアソ

ンエデュケーション刊 ・ 『Rubyレシピブック 268の技 第2版』まつもとゆきひろ監修,ソフトバンククリエイティブ刊 ・ 『たのしいRuby』まつもとゆきひろ監,ソフトバンクパブリッシング刊 ・ 『Ruby on Rails 入門-優しいRails の育て方』西和則著,秀和システム刊 ・ 『RailsによるアジャイルWebアプリケーション開発 第2版』 Dave Thomas/David Heinemeier

Hansson/Leon Breedt/Mike Clark/Andreas Schwarz/James Duncan Davidson/Justin Gehtland共著, 前田 修吾訳, オーム社 刊

・ 『JavaScript』 David Flanagan著, 村上 列訳, オライリー・ジャパン刊 (5-1)開発フレームワークに関する知識 ・ 『『オープンソースフレームワークStruts によるWeb アプリケーション開発 カンタンStruts1.2

改訂版』 カサレアル/石井真/阿島哲夫共著, 秀和システム刊 ・ 『Spring In Action』Craig Walls/Ryan Breidenbach共著, Manning Pubns Co 刊 ・ 『iBatis In Action』Clinton Begin/Brandon Goodin/Larry Meadors共著,

Manning Pubns Co 刊 ・ 『Seasar2によるスーパーアジャイルなWeb開発』ひがやすを 著, 技術評論社 刊 ・ 『はじめてのJavaフレームワーク』 岡田賢治著, 秀和システム刊 ・ 『Eclipse3ではじめる Javaフレームワーク入門』 掌田津耶乃著, 秀和システム刊 ・ 『Java J2EE オープンソース Spring 入門』 長谷川裕一/伊藤清人/岩永寿来/大野渉共著, 技

術評論社刊 ・ 『実践Spring Framework J2EE開発を変えるDIコンテナのすべて』 河村嘉之/首藤智大/竹内

祐介/吉尾真祐共著, 日経BP社刊 (5-2)開発ツールに関する知識 ・ 『Inside Linux Software オープンソースソフトウェアのからくりとしくみ』 佐藤竜一著,翔泳社

刊 ・ 『入門Subversion―Windows/Linux対応』上平 哲 著,秀和システム刊 ・ 『入門Mercurial Linux/Windows対応』藤原 克則 著,秀和システム刊 ・ 『入門Git』濱野 純(Junio C Hamano) 著,秀和システム刊 ・ 『入門Trac with Subversion―Linux/Windows対応』高山 恭介 著,秀和システム刊 ・ 『入門Redmine Linux/Windows対応』前田 剛 著,秀和システム刊

Page 117: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

117

・ 『Ant 第 2 版』Steve Holzner 著、長瀬嘉秀 監訳、株式会社テクノロジックアート 訳 オライリ

ー・ジャパン刊 (5-3)統合開発環境に関する知識 ・ 『オープンソース徹底活用Eclipse による Java アプリケーション開発』水島和憲著,秀和システ

ム刊 ・ 『Java J2EE オープンソース Spring 入門』 長谷川裕一/伊藤清人/岩永寿来/大野渉共著, 技

術評論社刊 ・ 『実践Spring Framework J2EE開発を変えるDIコンテナのすべて』 河村嘉之/首藤智大/竹内

祐介/吉尾真祐共著, 日経BP社刊 (5-4)OSS開発プロセスに関する知識 ・ 『オープンソースソフトウェアの育て方』 Karl Fogel著、髙木正弘、高岡芳成訳, オーム社刊

(5-5)OSSコミュニティマネジメントに関する知識 ・ 『オープンソースプロジェクトの管理と運営』 Jan Sndred著、でびあんぐる監訳, オーム社刊

(8-1)組み込みシステムに関する知識 ・ 『図解入門よくわかる 新組み込みシステムの基本と仕組み』藤広哲也著,秀和システム刊 ・ 『組み込みシステム構築技法(ソフトウェア編)』永井正武著,共立出版刊 ・ 『図解でわかる組込みシステム開発のすべて』 独立行政法人 情報処理推進機構 ソフトウェア・エ

ンジニアリング・センター 監修,日本実業出版社刊 ・ 『組み込みシステム概論』情報処理学会 組込みシステム研究会監修,戸川 望編著,CQ出版社刊 ・ 『Linuxカーネル2.6解読室』高橋浩和, 小田逸郎, 山幡為佐久 著 ソフトバンククリエイティブ刊 (8-2)組み込み開発環境に関する知識 ・ 『組み込みシステム構築技法(ソフトウェア編)』永井正武著,共立出版刊 ・ 『図解でわかる組込みシステム開発のすべて』 独立行政法人 情報処理推進機構 ソフトウェア・エ

ンジニアリング・センター 監修,日本実業出版社刊 ・ 『組み込みシステム概論』情報処理学会 組込みシステム研究会監修,戸川 望編著,CQ出版社刊 (8-3)デバイスドライバに関する知識 ・ 『Linuxデバイスドライバ 第3版』Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman

著、山崎 康宏, 山崎 邦子, 長原 宏治, 長原 陽子 訳 オライリー・ジャパン刊

Page 118: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

118

7. 用語集

用語 説明

CJK 共通カリキュラム 北東アジア OSS 推進フォーラム WG2 で策定した、日中韓共

通カリキュラム。

IT スキル標準

各種IT関連サービスの提供に必要とされる能力を明確化・体

系化した指標であり、産学におけるITサービス・プロフェッショ

ナルの教育・訓練等に有用な「ものさし」(共通枠組)を提供し

ようとするもの。

IT スキル標準レベル 2 上位者の指導の下、要求された作業を担当できるスキル水

準。

IT スキル標準レベル 3 要求された作業を全て独力で遂行できるスキル水準。

OSS モデルカリキュラム OSS を活用した IT 構築を行なう人材を育成するための知識

体系。

OSS モデルカリキュラム V1 2007 年下期ならびに 2008 年上期に実施した調査により策定

された、27 の OSS 関連知識・53 科目からなるカリキュラム。

モデルコースウェア 本調査で拡充を行なった 14 知識 24 科目のシラバス。

学習ガイダンス

本調査で拡充を行なった 14 知識 24 科目のガイダンス。各科

目の学習を通して習得することが期待される根幹となる知

識・概念を解説。

基本知識 IT スキル標準のレベル 2 に相当する知識。

応用知識 IT スキル標準のレベル 3 に相当する知識。

習得ポイント

モデルコースウェアによる学習を終了した時点で習得してい

ることが期待される概念、または手法を具体的に列挙したも

の。

Page 119: 2009年度 オープンソフトウェア利用促進事業 「OSSモデル ...・ モデルコースウェアを、基本知識、応用知識それぞれ10 コマ~15 コマに再定義した。

119

「OSSモデルカリキュラムV1の拡充に関する調査(組み込みSW分野等)」

調査報告書

独立行政法人 情報処理推進機構

Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2009