このページでは,基本情報技術者試験を中心に,ソフトウェア(開発ツール,その他)分野の過去問題・サンプル問題・公開問題を掲載しています。この分野では,コンパイラやインタプリタ,リンカ,ローダといった言語プロセッサの役割や処理の流れに加え,CASEツールや静的解析ツール,テスト支援ツールなどの開発支援技術,さらに統合開発環境(IDE)やオープンソースソフトウェア(OSS)といった実務に直結するテーマが幅広く出題されます。単なる用語暗記だけでなく,「どの工程で使われるのか」,「どのような役割を持つのか」といった理解が問われるのが特徴です。
※ まず基礎を確認したい方はこちら
解けなかった問題は,各問題下の【参考】リンクから対応する解説ページを読み,理解した上でもう一度解いてみてください。
平成30年度 基本情報技術者試験 秋期 午前 問8
問 Javaの特徴はどれか。
ア オブジェクト指向言語であり,複数のスーパクラスを指定する多重継承が可能である。
イ 整数や文字は常にクラスとして扱われる。
ウ ポインタ型があるので,メモリ上のアドレスを直接参照できる。
エ メモリ管理のためのガーベジコレクションの機能がある。
【解答】エ
【解説】
■ Java
業務システムやWebアプリケーション,モバイルアプリケーションの開発に適している言語。オブジェクト指向プログラミングをサポートしている。Javaで作成したプログラムは,JVM(Java Virtual Machine;Java仮想マシン)により,基本的にはどのようなコンピューターでも動作する。
ア 多重継承(複数の上位クラスからメンバ変数やメソッドを継承すること)はできない
イ 整数や文字は組み込み(プリミティブ)型
ウ ポインタ型はサポートしていない
| 【参考】 | 「開発ツールの基礎まとめ(プログラム言語)」 |
平成22年度 基本情報技術者試験 春期 午前 問7
問 Java VMが稼働している環境だけがあれば,WebブラウザやWebサーバがなくても動作するプログラムはどれか。
| ア JavaScript | イ Javaアプリケーション |
| ウ Javaアプレット | エ Javaサーブレット |
【解答】イ
【解説】
■ Java
業務システムやWebアプリケーション,モバイルアプリケーションの開発に適している言語。オブジェクト指向プログラミングをサポートしている。Javaで作成したプログラムは,JVM(Java Virtual Machine;Java仮想マシン)により,基本的にはどのようなコンピューターでも動作する。
| 【参考】 | 「開発ツールの基礎まとめ(プログラム言語)」 |
平成28年度 基本情報技術者試験 秋期 午前 問8
平成24年度 基本情報技術者試験 春期 午前 問9
問 Web環境での動的処理を実現するプログラムであって,Webサーバ上だけで動作するものはどれか。
| ア JavaScript | イ Javaアプレット |
| ウ Javaサーブレット | エ VBScript |
【解答】ウ
【解説】
■ Javaサーブレット
Webサーバ上で動作するJavaプログラム。Webブラウザからの要求に応じてデータベースの処理やHTMLの生成を行い,動的なWebページを生成する。
平成25年度 基本情報技術者試験 秋期 午前 問20
平成23年度 基本情報技術者試験 秋期 午前 問21
問 コンパイル済みのオブジェクトコードがサーバに格納されていて,クライアントからの要求によってクライアントへ転送されて実行されるプログラムはどれか。
| ア アプレット | イ サーブレット |
| ウ スクリプト | エ スレッド |
【解答】ア
【解説】
■ Javaアプレット
Webブラウザ上で動作するJavaプログラム。Webページに動的な機能や画面表示を追加する。
※ 現在はほとんど利用されていない
平成27年度 基本情報技術者試験 春期 午前 問8
平成22年度 基本情報技術者試験 秋期 午前 問8
問 Javaにおいて,よく使われる機能などを再利用できるようにコンポーネント化するための仕様はどれか。
| ア JavaBeans | イ JavaScript |
| ウ Javaアプリケーション | エ Javaアプレット |
【解答】ア
【解説】
■ JavaBeans
データを保持するためのJavaクラス。フィールドをprivateにし,getter・setterメソッドや引数のないコンストラクタを備え,再利用しやすい部品として利用される。
平成29年度 基本情報技術者試験 秋期 午前 問8
問 Perlの実行に関する記述のうち,適切なものはどれか。
ア UNIX用として開発されており,Windows用の言語処理系はない。
イ 実行にWebサーバを必要とする言語であり,CGIの開発に適している。
ウ 動的デバッグは,言語処理系から独立したプログラムを実行して行う。
エ プログラムをコンパイルしたファイルを事前に用意する必要はない。
【解答】エ
【解説】
■ Perl
テキスト処理を得意とする言語。
ア Windows用の言語処理系もある
イ 実行にWebサーバを必要とするわけではない
ウ 言語処理系から独立したプログラムを実行して行うとはいえない
エ Perlはインタプリタ型の言語
| 【参考】 | 「開発ツールの基礎まとめ(プログラム言語)」 |
平成31年度 基本情報技術者試験 春期 午前 問50
平成22年度 基本情報技術者試験 秋期 午前 問49
問 JavaScriptの非同期通信の機能を使うことによって,動的なユーザインタフェースを画面全体の遷移を伴わずに実現する技術はどれか。
| ア Ajax | イ CSS | ウ RSS | エ SNS |
【解答】ア
【解説】
■ Ajax(Asynchronous JavaScript + XML)
JavaScriptの非同期通信を利用し,Webページを再読み込みせずに一部の内容を更新するしくみのことをいう。
※ 非同期通信…サーバーからの返信を待たずに処理を進めることができる方式 ⇒ 通信中も操作を続けることができる
※ XMLではなくJSONが使われることも多い
※ 例)SNSの「いいね」ボタン:「いいね」の数を更新する。Googleマップ:地図の表示を更新する など
平成21年度 基本情報技術者試験 秋期 午前 問8
問 Ajaxの説明はどれか。
ア HTTPプロトコルを用いて,XML形式やHTML形式のデータがファイアウォールを通過できるようにした通信方式
イ スタイルシートを適用することによって,デザインを統一したり,保守性を高めたりする仕組み
ウ ブラウザからの要求に対してWebサーバが応答し,テキスト・画像・音声・動画などをやり取りするための通信方式
エ ブラウザとWebサーバとがXML形式のデータを用いて非同期の通信をし,動的に画面を再描画する仕組み
【解答】エ
【解説】
■ Ajax(Asynchronous JavaScript + XML)
JavaScriptの非同期通信を利用し,Webページを再読み込みせずに一部の内容を更新するしくみのことをいう。
※ 非同期通信…サーバーからの返信を待たずに処理を進めることができる方式 ⇒ 通信中も操作を続けることができる
※ XMLではなくJSONが使われることも多い
※ 例)SNSの「いいね」ボタン:「いいね」の数を更新する。Googleマップ:地図の表示を更新する など
イ CSS
ウ HTTP
平成30年度 基本情報技術者試験 春期 午前 問8
問 XML文書のDTDに記述するものはどれか。
| ア 使用する文字コード | イ データ |
| ウ バージョン情報 | エ 文書型の定義 |
【解答】エ
【解説】
■ XML
文書やデータの論理的な構造の記述に適してる言語。独自のタグを定義可能。DTDによって文書構造や使用できる要素・属性などを定義できる。
ア,ウ 使用する文字コードやバージョン情報は,XML宣言内に指定する
イ データはXML文書内に記述する
平成26年度 基本情報技術者試験 秋期 午前 問8
平成23年度 基本情報技術者試験 秋期 午前 問8
問 XMLに関する記述のうち,適切なものはどれか。
ア HTMLを基にして,その機能を拡張したものである。
イ XML文書を入力するためには専用のエディタが必要である。
ウ 文書の論理構造と表示スタイルを統合したものである。
エ 利用者独自のタグを使って,文書の属性情報や論理構造を定義することができる。
【解答】エ
【解説】
■ XML
文書やデータの論理的な構造の記述に適してる言語。独自のタグを定義可能。DTDによって文書構造や使用できる要素・属性などを定義できる。
ア XMLはSGMLを拡張したものである
イ 専用のエディタは必要ない ⇒ 普通のテキストエディタで作成可能
平成24年度 基本情報技術者試験 秋期 午前 問8
問 XMLの特徴として,最も適切なものはどれか。
ア XMLでは,HTMLに,Webページの表示性能の向上を主な目的とした機能を追加している。
イ XMLでは,ネットワークを介した情報システム間のデータ交換を容易にするために,任意のタグを定義することができる。
ウ XMLで用いることができるスタイル言語は,HTMLと同じものである。
エ XMLは,SGMLを基に開発されたHTMLとは異なり,独自の仕様として開発された。
【解答】イ
【解説】
■ XML
文書やデータの論理的な構造の記述に適してる言語。独自のタグを定義可能。DTDによって文書構造や使用できる要素・属性などを定義できる。
ア 表示性能の向上を主な目的としているわけではない
ウ XMLのスタイル言語はXSL(HTMLのスタイル言語はCSS)
エ XMLもSGMLを基に開発された
平成22年度 基本情報技術者試験 秋期 午前 問71
問 XBRLを説明したものはどれか。
ア インターネットのホームページにおける画像,音声,ビデオなどを含むページを表現できるページ記述言語である。
イ テキストや画像だけでなく,レイアウトやフォントの情報などもファイルに収めることができる文書表示用のフォーマットである。
ウ 当初は小型コンピュータ用に開発された,様々な帳票を簡単に作成することを主たる目的としたプログラム言語である。
エ 文書情報やデータの構造を記述するためのマークアップ言語であるXMLを,財務情報の交換に応用したデータ記述言語である。
【解答】エ
【解説】
■ XBRL(eXtensible Business Reporting Language)
XMLを,財務情報の交換ができるようした言語
ア HTML
イ PDF
平成24年度 基本情報技術者試験 秋期 午前 問24
問 Webページのスタイルを定義する仕組みはどれか。
| ア CMS | イ CSS | ウ PNG | エ SVG |
【解答】イ
【解説】
■ CSS
Webページの見栄えなどの記述に適している。
平成28年度 基本情報技術者試験 春期 午前 問24
平成23年度 基本情報技術者試験 秋期 午前 問27
問 HTML文書の文字の大きさ,文字の色,行間などの視覚表現の情報を扱う標準仕様はどれか。
| ア CMS | イ CSS | ウ RSS | エ Wiki |
【解答】イ
【解説】
■ CSS
Webページの見栄えなどの記述に適している。
平成24年度 基本情報技術者試験 春期 午前 問39
問 HTMLやXMLの要素をどのように表示するかを指示する場合に用いられ,表示クライアント側で処理されるものはどれか。
| ア CGI | イ CSS | ウ PHP | エ SSI |
【解答】イ
【解説】
■ CSS
Webページの見栄えなどの記述に適している。
平成21年度 基本情報技術者試験 春期 午前 問22
問 図はプログラムを翻訳して実行するまでの流れを示したものである。コンパイラ,リンカ,ローダの入出力の組合せとして,適切なものはどれか。
a | b | c | |
| ア | 目的プログラム | ライブラリモジュール | ロードモジュール |
| イ | ライブラリモジュール | ロードモジュール | 目的プログラム |
| ウ | ロードモジュール | 目的プログラム | ライブラリモジュール |
| エ | ロードモジュール | ライブラリモジュール | 目的プログラム |
【解答】ア
【解説】
プログラムを翻訳して実行するまでの流れは,次のようになる。
平成30年度 基本情報技術者試験 秋期 午前 問19
問 手続型言語のコンパイラが行う処理のうち,最初に行う処理はどれか。
| ア 意味解析 | イ 構文解析 | ウ 最適化 | エ 字句解析 |
【解答】エ
【解説】
■ コンパイラ
高水準言語で記述されたソースプログラムを機械語に変換するソフトウェアである。
※ 変換過程で最適化されるため実行速度が速い
※ オブジェクトプログラムだけでは実行できない(オブジェクトプログラムから呼び出されるコードが記述されている他のオブジェクトプログラムやライブラリファイルなどと連結していないため)
| 字句解析 | ソースプログラム内の文字列を,予約語や定数,区切り記号などの最小単位(トークン)に分解する |
| 構文解析 | トークンを読み込んで構文木を生成し,構文規則に従っているかをチェックする |
| 意味解析 | 変数の使用や演算におけるデータ型の整合性などをチェックし,(最適化を行いやすくするために)中間コードに変換する ※ 中間コードには,三つ組形式や四つ組形式,逆ポーランド表記法(後置表記法)などがある ※ 四つ組形式の例)(+,A,B,T)⇒ T=A+B |
| 最適化 | プログラムのサイズを小さくしたり,実行速度を向上させるために構造を変換させるなどする |
| コード生成 | オブジェクトプログラムに変換する |
平成27度 基本情報技術者試験 秋期 午前 問19
問 コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。
(演算子,被演算子1,被演算子2,結果)
この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。次の一連の四つ組は,どの式を構文解析したものか。ここで,T1,T2,T3は一時変数を表す。
(*,B,C,T1)
(/,T1,D,T2)
(+,A,T2,T3)
| ア A+B*C/D | イ A+B*C/T2 |
| ウ B*C+A/D | エ B*C+T1/D |
【解答】ア
【解説】
一連の四つ組を順に展開すると,
(*,B,C,T1)⇒ T1=B*C
(/,T1,D,T2)⇒ T2=T1/D ⇒ T2=B*C/D
(+,A,T2,T3)⇒ T3=A+T2 ⇒ A+B*C/D
となる。
平成22度 基本情報技術者試験 春期 午前 問22
問 次の一連の3アドレス命令で得られる結果 x を表す式はどれか。ここで,3アドレス命令では,三つのオペランドを用いた命令 “c = a op b” を “op(a,b,c)” として表記する。op は一つの演算子を表し,結果 x を表す式においては優先順位の高い順に *,/,+,- とする。
/ (c,d,w1)
+ (b,w1,w2)
/ (e,f,w3)
- (w3,g,w4)
* (w2,w4,x)
| ア b+c/d*e/f-g | イ b+c/d*(e/f-g) |
| ウ (b+c/d)*e/f-g | エ (b+c/d)*(e/f-g) |
【解答】エ
【解説】
一連の3アドレス命令を順に展開すると,
/ (c,d,w1) ⇒ w1=c/d
+ (b,w1,w2) ⇒ w2=b+w1 ⇒ w2=b+c/d
/ (e,f,w3) ⇒ w3=e/f
- (w3,g,w4) ⇒ w4=w3-g ⇒ w4=e/f-g
* (w2,w4,x) ⇒ x=w2*w4 ⇒ x=(b+c/d)*(e/f-g)
となる。
平成30年度 基本情報技術者試験 春期 午前 問18
平成22年度 基本情報技術者試験 秋期 午前 問22
問 コンパイラによる最適化の主な目的はどれか。
ア プログラムの実行時間を短縮する。
イ プログラムのデバッグを容易にする。
ウ プログラムの保守性を改善する。
エ 目的プログラムを生成する時間を短縮する。
【解答】ア
【解説】
■ コンパイラ
高水準言語で記述されたソースプログラムを機械語に変換するソフトウェアである。
※ 変換過程で最適化されるため実行速度が速い
※ オブジェクトプログラムだけでは実行できない(オブジェクトプログラムから呼び出されるコードが記述されている他のオブジェクトプログラムやライブラリファイルなどと連結していないため)
| 字句解析 | ソースプログラム内の文字列を,予約語や定数,区切り記号などの最小単位(トークン)に分解する |
| 構文解析 | トークンを読み込んで構文木を生成し,構文規則に従っているかをチェックする |
| 意味解析 | 変数の使用や演算におけるデータ型の整合性などをチェックし,(最適化を行いやすくするために)中間コードに変換する ※ 中間コードには,三つ組形式や四つ組形式,逆ポーランド表記法(後置表記法)などがある ※ 四つ組形式の例)(+,A,B,T)⇒ T=A+B |
| 最適化 | プログラムのサイズを小さくしたり,実行速度を向上させるために構造を変換させるなどする |
| コード生成 | オブジェクトプログラムに変換する |
イ 開発支援ツール
エ コンパイラ自体を最適化する必要がある
平成28年度 基本情報技術者試験 春期 午前 問19
平成26年度 基本情報技術者試験 春期 午前 問18
平成23年度 基本情報技術者試験 秋期 午前 問22
問 コンパイラにおける最適化の説明として,適切なものはどれか。
ア オブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
イ コンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
ウ ソースコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
エ プログラムの実行時に,呼び出されたサブプログラム名やある時点での変数の内容を表示するようなオブジェクトコードを生成する。
【解答】ウ
【解説】
■ コンパイラ
高水準言語で記述されたソースプログラムを機械語に変換するソフトウェアである。
※ 変換過程で最適化されるため実行速度が速い
※ オブジェクトプログラムだけでは実行できない(オブジェクトプログラムから呼び出されるコードが記述されている他のオブジェクトプログラムやライブラリファイルなどと連結していないため)
| 字句解析 | ソースプログラム内の文字列を,予約語や定数,区切り記号などの最小単位(トークン)に分解する |
| 構文解析 | トークンを読み込んで構文木を生成し,構文規則に従っているかをチェックする |
| 意味解析 | 変数の使用や演算におけるデータ型の整合性などをチェックし,(最適化を行いやすくするために)中間コードに変換する ※ 中間コードには,三つ組形式や四つ組形式,逆ポーランド表記法(後置表記法)などがある ※ 四つ組形式の例)(+,A,B,T)⇒ T=A+B |
| 最適化 | プログラムのサイズを小さくしたり,実行速度を向上させるために構造を変換させるなどする |
| コード生成 | オブジェクトプログラムに変換する |
イ クロスコンパイラ
エ デバッガ
平成30年度 基本情報技術者試験 秋期 午前 問20
平成28年度 基本情報技術者試験 春期 午前 問20
問 リンカの機能として,適切なものはどれか。
ア 作成したプログラムをライブラリに登録する。
イ 実行に先立ってロードモジュールを主記憶にロードする。
ウ 相互参照の解決などを行い,複数の目的モジュールなどから一つのロードモジュールを生成する。
エ プログラムの実行を監視し,ステップごとに実行結果を記憶する。
【解答】ウ
【解説】
■ リンカ(連係編集プログラム)
オブジェクトプログラムやライブラリファイルなどを連結してロードモジュール(実行可能なファイル)を作成するソフトウェアである。
ア コンパイラ
イ ローダー
エ デバッガー
平成24年度 基本情報技術者試験 秋期 午前 問20
問 プログラムを構成するモジュールの結合を,プログラムの実行時に行う方式はどれか。
| ア インタプリタ | イ オーバレイ |
| ウ 静的リンキング | エ 動的リンキング |
【解答】エ
【解説】
■ リンカ(連係編集プログラム)
オブジェクトプログラムやライブラリファイルなどを連結してロードモジュール(実行可能なファイル)を作成するソフトウェアである。
■ 動的リンキング(ダイナミックリンキング)
(プログラムの実行中)ライブラリなどが必要になった時点で連結する方式をいう。
(令和4年度) 基本情報技術者試験 サンプル問題 科目A 問16
平成31年度 基本情報技術者試験 春期 午前 問19
問 インタプリタの説明として,適切なものはどれか。
ア 原始プログラムを,解釈しながら実行するプログラムである。
イ 原始プログラムを,推論しながら翻訳するプログラムである。
ウ 原始プログラムを,目的プログラムに翻訳するプログラムである。
エ 実行可能なプログラムを,主記憶装置にロードするプログラムである。
【解答】ア
【解説】
■ インタプリタ
高水準言語で記述されたソースプログラムを機械語に変換しながら実行するソフトウェア。
※ 変換しながら実行するため,実行速度は(コンパイラ型に比べて)遅い
※ ソースプログラムを即座に実行できるため,開発や修正が容易
ウ コンパイラ
エ ローダー
| 【参考】 | 「開発ツールの基礎まとめ(言語プロセッサの種類)」 |
平成23年度 基本情報技術者試験 特別 午前 問23
問 Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。
〔条件〕
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。
(3) コンパイル時間は100行当たり0.1秒掛かる。
(4) コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。
(5) プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。
| ア 50 | イ 75 | ウ 125 | エ 155 |
【解答】エ
【解説】
プログラムの行数がx行の場合の,それぞれの実行時間は,
インタプリタ型:0.2(秒)÷ 100(行)× x = 0.002x(秒)
コンパイラ型:0.003(秒)÷ 100 × x + 0.1(秒)÷ 100 × x + 0.15
= 0.00003x + 0.001x + 0.15
= 0.00103x + 0.15(秒)
である。よって,コンパイル方式の方がインタプリタ方式よりも処理時間が短くなるのは,
0.002x > 0.00103x + 0.15
200x > 103x + 15000
97x > 15000
x > 154.6…(155行)
である。
| 【参考】 | 「開発ツールの基礎まとめ(言語プロセッサの種類)」 |
平成21年度 基本情報技術者試験 秋期 午前 問20
問 CASEツールが提供する機能のうち,上流CASEツールに属するものはどれか。
| ア DFDの作成支援 | イ テストデータの作成支援 |
| ウ プログラムの自動生成 | エ ライブラリの管理支援 |
【解答】ア
【解説】
■ CASE(Computer Aided Software Engineering)ツール
ソフトウェアの開発や保守を効率的に行えるようにするための開発支援ツールのことをいう。
| 上流CASEツール | 要件定義などの上流工程を支援する |
| 下流CASEツール | コーディングやテスト,保守などの下流工程を支援する |
イ,ウ,エ 下流CASEツール
| 【参考】 | 「開発ツールの基礎まとめ(開発支援ツールとは)」 |
令和7年度 基本情報技術者試験 公開問題 科目A 問5
問 ローコード開発ツールを用いたソフトウェア開発の説明はどれか。
ア アプリケーションソフトウェアの開発基盤の上で,用意された部品やテンプレートをGUIを用いた操作で組み合わせたり,必要に応じて一部の処理のソースコードを記述したりすることによって,アプリケーションソフトウェアを作成する。
イ アプリケーションソフトウェアの開発基盤の上で,用意された部品やテンプレートをGUIを用いた操作で組み合わせるだけで,ソースコードを記述せずに,アプリケーションソフトウェアを作成する。
ウ アプリケーションソフトウェアの定型的な枠組みを参照して,独自の処理のソースコードを記述することによって,アプリケーションソフトウェアを作成する。
エ 利用者がシステムを利用して行う作業を自動化ツールに代行させるために,利用者によるシステムの操作手順をツールに登録する。
【解答】ア
【解説】
■ ローコード開発
プログラムコードの記述を最小限に抑え,GUI(Graphical User Interface)上で部品(コンポーネント)を組み合わせることで,アプリケーションを開発する手法のことをいう。また,必要に応じてプログラムコードを追加することができるため,柔軟なシステム開発が可能である。
※ 開発期間の短縮や開発コストの削減,開発者の負担軽減につながる
※ システム開発を効率化できる一方で,複雑な処理や大規模なシステム開発には適さない場合がある ⇒ 開発するシステムの規模や目的に応じて,通常のプログラミングによる開発と使い分けることが重要である
イ ノーコード開発
ウ テンプレートを利用した開発
エ RPA(Robotic Process Automation)
| 【参考】 | 「開発ツールの基礎まとめ(開発支援ツールとは)」 |
平成22年度 基本情報技術者試験 秋期 午前 問23
問 プログラムの静的解析ツールで検出できるものはどれか。
ア 関数ごとの実行処理時間
イ 後に使用されない変数への代入
ウ プログラム仕様に対応する処理の記述漏れ
エ 用意したテストケースでは実行されなかった命令
【解答】イ
【解説】
■ 静的解析ツール
(プログラムを実行せずに行う)静的テストを支援するツールである。
※ 静的テストには,プログラムを1行1行トレースしたり,プログラムに記述されている文などを検証したりするものなどがある
ア 実行処理時間は,実際にプログラムを実行して測定する。
ウ 処理の記述漏れは,レビューなど,人的な解析で検出する。
エ カバレージモニター(動的解析ツール)などで検出する。
| 【参考】 | 「開発ツールの基礎まとめ(開発支援ツールとは)」 |
平成28年度 基本情報技術者試験 春期 午前 問21
平成26年度 基本情報技術者試験 春期 午前 問19
平成23年度 基本情報技術者試験 秋期 午前 問23
問 静的テストツールの機能に分類されるものはどれか。
ア ソースコードを解析して,プログラムの誤りを検出する。
イ テスト対象モジュールに必要なドライバ又はスタブを生成する。
ウ テストによって実行した経路から網羅度を算出する。
エ プログラムの特定の経路をテストするためのデータを生成する。
【解答】ア
【解説】
■ 静的解析ツール
(プログラムを実行せずに行う)静的テストを支援するツールである。
※ 静的テストには,プログラムを1行1行トレースしたり,プログラムに記述されている文などを検証したりするものなどがある
| 【参考】 | 「開発ツールの基礎まとめ(開発支援ツールとは)」 |
平成25年度 基本情報技術者試験 春期 午前 問22
問 ホワイトボックステストにおいて,コード中のどれだけの割合の部分を実行できたかを評価するのに使うものはどれか。
| ア アサーションチェッカ | イ シミュレータ |
| ウ 静的コード解析 | エ テストカバレージ分析 |
【解答】エ
【解説】
■ カバレージモニター
プロブラム内の経路のうち,どのくらいの割合をテストしたかを算出するツール
| 【参考】 | 「開発ツールの基礎まとめ(開発支援ツールとは)」 |
平成31年度 基本情報技術者試験 春期 午前 問20
平成21年度 基本情報技術者試験 春期 午前 問23
問 OSIによるオープンソースソフトウェアの定義に従うときのオープンソースソフトウェアに対する取扱いとして,適切なものはどれか。
ア ある特定の業界向けに作成されたオープンソースソフトウェアは,ソースコードを公開する範囲をその業界に限定することができる。
イ オープンソースソフトウェアを改変して再配布する場合,元のソフトウェアと同じ配布条件となるように,同じライセンスを適用して配布する必要がある。
ウ オープンソースソフトウェアを第三者が製品として再配布する場合,オープンソースソフトウェアの開発者は第三者に対してライセンス費を請求することができる。
エ 社内での利用などのようにオープンソースソフトウェアを改変しても再配布しない場合,改変部分のソースコードを公開しなくてもよい。
【解答】エ
【解説】
ア 「5. 個人やグループに対する差別の禁止 … ライセンスは特定の個人やグループを差別してはなりません。」とある。
イ 「3. 派生ソフトウェア … ライセンスは,ソフトウェアの変更と派生ソフトウェアの作成,並びに派生ソフトウェアを元のソフトウェアと同じライセンスの下で頒布することを許可しなければなりません。」とあるが,強制するものではない。
ウ 「再頒布の自由 … 「オープンソース」であるライセンス(以下「ライセンス」と略)は,出自の様々なプログラムを集めたソフトウェア頒布物(ディストリビューション)の一部として,ソフトウェアを販売あるいは無料で頒布することを制限してはなりません。」とある。
| 【参考】 | 「オープンソースソフトウェア(OSS)」 |
平成25年度 基本情報技術者試験 秋期 午前 問21
平成21年度 基本情報技術者試験 秋期 午前 問21
問 GPLの下で公開されたOSSを使い,ソースコードを公開しなかった場合にライセンス違反となるものはどれか。
ア OSSとアプリケーションソフトウェアとのインタフェースを開発し,販売している。
イ OSSの改変を他社に委託し,自社内で使用している。
ウ OSSの入手,改変,販売を全て自社で行っている。
エ OSSを利用して性能テストを行った自社開発ソフトウェアを販売している。
【解答】ウ
【解説】
ア,エ OSSを改変していないので,ソースコードを公開する必要はない
イ OSSを改変したのは他社なので,自社がソースコードを公開する必要はない(OSSを改変した他社はソースコードを公開しなければならない)
| 【参考】 | 「オープンソースソフトウェア(OSS)」 |
平成26年度 基本情報技術者試験 秋期 午前 問20
問 オープンソースライセンスにおいて,“著作権を保持したまま,プログラムの複製や改変,再配布を制限せず,そのプログラムから派生した二次著作物(派生物)には,オリジナルと同じ配布条件を適用する”とした考え方はどれか。
| ア BSDライセンス | イ コピーライト |
| ウ コピーレフト | エ デュアルライセンス |
【解答】ウ
【解説】
■ コピーレフト
「著作権を保持したまま,プログラムの複製や改変,再配布を制限せず,そのプログラムから派生した二次著作物(派生物)には,オリジナルと同じ配布条件を提供する」とする考え方。
| 【参考】 |
平成30年度 基本情報技術者試験 春期 午前 問19
平成24年度 基本情報技術者試験 秋期 午前 問21
問 ソフトウェアの統合開発環境として提供されているOSSはどれか。
| ア Apache Tomcat | イ Eclipse |
| ウ GCC | エ Linux |
【解答】イ
【解説】
■ IDE(Integrated Development Environment;統合開発環境)
ソフトウェア開発に必要な機能をひとまとめにしたソフトウェアのことをいう。ソースプログラムを記述するためのエディターや,コンパイラ,デバッガ,バージョン管理機能などを持っているものが多い。
※ Microsoft社の「Visual Studio」や,Apple社の「Xcode」,オープンソースソフトウェアの「Eclipse」などがある
平成27年度 基本情報技術者試験 秋期 午前 問20
問 オープンソースの統合開発環境であって,アプリケーション開発のためのソフトウェア及び支援ツール類をまとめたものはどれか。
| ア Eclipse | イ Perl | ウ PHP | エ Ruby |
【解答】ア
【解説】
■ IDE(Integrated Development Environment;統合開発環境)
ソフトウェア開発に必要な機能をひとまとめにしたソフトウェアのことをいう。ソースプログラムを記述するためのエディターや,コンパイラ,デバッガ,バージョン管理機能などを持っているものが多い。
※ Microsoft社の「Visual Studio」や,Apple社の「Xcode」,オープンソースソフトウェアの「Eclipse」などがある
平成30年度 基本情報技術者試験 春期 午前 問20
問 多数のサーバで構成された大規模な分散ファイルシステム機能を提供し,MapReduceによる大規模データの分散処理を実現するOSSはどれか。
| ア Apache Hadoop | イ Apache Kafka |
| ウ Apache Spark | エ Apache Storm |
【解答】ア
【解説】
■ Apache Hadoop
P(ペタ)バイト級の大規模なデータを分散して保存したり,分散処理を行ったりするためのフレームワーク。
| 【参考】 |
まとめ
今回は,基本情報技術者試験の過去問題・サンプル問題・公開問題のうち,ソフトウェア(開発ツール,その他)分野に関するものを集め,シンプルにまとめてみました。みなさんは,どのくらい解けましたか?はじめは難しく感じるかもしれませんが,繰り返し問題を解くことで,少しずつ理解できるようになると思います。8割以上(できれば9割以上)解けるようになることを目標に,ぜひ取り組んでみてください。また,一度解けるようになっても,時間が経つと忘れてしまうことがあります。1週間後や1か月後など,期間をあけてもう一度解き直すことで,理解の定着につながると思います。
基本情報技術者試験の学習におすすめの問題集・参考書
過去問演習や苦手分野の復習に役立つ、おすすめの問題集・参考書です。
学習のお役に立ちましたら
この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。
よろしければ、このサイトを応援いただけますと嬉しいです。
※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。


