基本情報技術者試験 過去問(開発技術-ソフトウェア開発管理技術,その他) -情報処理シンプルまとめ

情報処理技術者試験 過去問(ソフトウェア管理技術,その他)のブログのアイキャッチ画像 システム開発技術

 情報処理技術者試験(今のところは基本情報技術者試験)の過去問(開発技術-ソフトウェア開発管理技術,その他)を集めて,シンプルにまとめています。ウォーターフォールモデル,プロトタイプモデル,スパイラルモデル,アジャイル開発,XP(リファクタリング,ペアプログラミング,継続的インテグレーション,テスト駆動開発),スクラム(スプリント,デイリースクラム),リバースエンジニアリング,開発環境の管理について,理解度を確認することができます。解けなかった問題や,完全に理解できていない問題については,【参考】にあるリンク先ページを読んで,もう一度,解いてみてください。難しい問題もあると思いますが,繰り返し解くことにより,だんだんと身に付いてきますので,根気よく頑張りましょう。

平成21年度 基本情報技術者試験 春期 午前 問45

 システム開発におけるウォータフォールモデルの説明はどれか。

ア 一度の開発ですべてを作るのではなく,基本的なシステムアーキテクチャの上に機能の優先度に応じて段階的に開発する。

イ 開発工程を設計,実装,テストなどに分け,前の工程が完了してから,その成果物を使って次の工程を行う。

ウ 試作品を作り,利用者の要求をフィードバックして開発を進める。

エ 複雑なソフトウェアを全部最初から作成しようとするのではなく,簡単な部分から分析,設計,実装,テストを繰り返し行い,徐々に拡大していく。

【解答】

【解説】

■ ウォーターフォールモデル

ソフトウェアの開発を,上流から下流に向かって滝が流れるように行う開発モデルである。

※ 共通フレームのソフトウェア実装プロセスを,「ソフトウェア要件定義 ⇒ ソフトウェア方式設計 ⇒ ソフトウェア詳細設計 ⇒ ソフトウェア構築 ⇒ ソフトウェア結合テスト ⇒ ソフトウェア適格性確認テスト」というように,順に進める感じ(基本的には,前の工程に戻れない)

  • 全体の把握が容易なので,スケジュールや人員,工数などを明確にできる
  • 並行作業ができない
  • 仕様変更による後戻りに弱い

ア インクリメンタルモデル

ウ プロトタイプモデル

エ スパイラルモデル

平成21年度 基本情報技術者試験 秋期 午前 問49

 ウォータフォールモデルによるシステム開発工程の作業内容a~fを,実施する順序で並べたものはどれか。

〔作業内容〕

a 現状の問題点を調査・分析し,対象システムへの要求を定義する。

b システムとして必要な機能をプログラムに分割し,処理の流れを明確にする。

c 詳細な処理手順を設計し,コーディングする。

d テストを行う。

e 各プログラム内の構造設計を行う。

f システムの要求仕様を基に,システムとして必要な機能を定義する。

ア a,b,f,c,e,dイ a,f,b,e,c,d
ウ a,f,b,e,d,cエ a,f,e,b,c,d

【解答】

【解説】

■ ウォーターフォールモデル

ソフトウェアの開発を,上流から下流に向かって滝が流れるように行う開発モデルである。

※ 共通フレームのソフトウェア実装プロセスを,「ソフトウェア要件定義 ⇒ ソフトウェア方式設計 ⇒ ソフトウェア詳細設計 ⇒ ソフトウェア構築 ⇒ ソフトウェア結合テスト ⇒ ソフトウェア適格性確認テスト」というように,順に進める感じ(基本的には,前の工程に戻れない)

  • 全体の把握が容易なので,スケジュールや人員,工数などを明確にできる
  • 並行作業ができない
  • 仕様変更による後戻りに弱い

a 要件定義

b ソフトウェア方式設計

c ソフトウェア構築

d テスト

e ソフトウェア詳細設計

f システム要件定義

平成22年度 基本情報技術者試験 春期 午前 問50

 プロトタイプを1回作成するごとに未確定な仕様の50%が確定するとき,プロトタイプ開始時点で未確定だった仕様の90%以上を確定させるには,プロトタイプを何回作成する必要があるか。

ア 1イ 2ウ 3エ 4

【解答】

【解説】

プロトタイプを1回作成した時点で,

100%×50%=50%

の仕様が確定している。同様に計算していくと,

2回目:50%+50%×50%=75%

3回目:75%+25%×50%=87.5%

4回目:87.5%+12.5%×50%=93.75%

となり,4回目で仕様が90%以上確定することが分かる。

平成23年度 基本情報技術者試験 秋期 午前 問50

 要求分析から実装までの開発プロセスを繰り返しながら,システムを構築していくソフトウェア開発手法はどれか。

ア ウォータフォールモデルイ スパイラルモデル
ウ プロトタイピングモデルエ リレーショナルモデル

【解答】

【解説】

■ スパイラルモデル

システムを独立性の高い部分(サブシステム)に分割し,部分ごとに一連の開発工程を繰り返しながら徐々に完成度を高めていく開発モデルである。

※ 「サブシステムに分割 ⇒ 要求分析・定義 ⇒ 設計 ⇒ プログラミング ⇒ テスト ⇒ 次のサブシステムを開発する場合は要求分析・定義へ,そうでない場合は運用する」という感じ

  • 仕様の変更に対応しやすい
  • スケジュールや規模を予測しやすい
  • 開発規模を抑え,開発要員を減らすことができる
  • 機能分割できない場合には適さない

平成29年度 基本情報技術者試験 春期 午前 問50

平成26年度 基本情報技術者試験 春期 午前 問50

 ソフトウェア開発の活動のうち,アジャイル開発においても重視されているリファクタリングはどれか。

ア ソフトウェアの品質を高めるために,2人のプログラマが協力して,一つのプログラムをコーディングする。

イ ソフトウェアの保守性を高めるために,外部仕様を変更することなく,プログラムの内部構造を変更する。

ウ 動作するソフトウェアを迅速に開発するために,テストケースを先に設定してから,プログラムをコーディングする。

エ 利用者からのフィードバックを得るために,提供予定のソフトウェアの試作品を早期に作成する。

【解答】

【解説】

■ リファクタリング

既存のコードでも随時改善し,保守性が高く内部構造の分かりやすいコードに書き直すこと。

※ 外部から見た動作は変更しない

※ 改良後は想定外の影響が起きていないかを検証するために回帰テストを行う

ア ペアプログラミング

ウ テスト駆動開発

エ プロトタイピング

令和元年度 基本情報技術者試験 秋期 午前 問50

平成27年度 基本情報技術者試験 春期 午前 問51

 XP(eXtreme Programming)において,プラクティスとして提唱されているものはどれか。

ア インスペクションイ 構造化設計
ウ ペアプログラミングエ ユースケースの活用

【解答】

【解説】

■ XP(エクストリームプログラミング)

アジャイル開発における開発手法や経験則をまとめたものである。開発者が行うべき実践や守るべき原則を4つの領域に12のプラクティスとしてまとめている。

細かいフィードバック
ペアプログラミング2人のプログラマーが,相談やレビューをしながら1つのプログラムを開発する。品質の向上や知識の共有が図れる
計画ゲームストーリーカードに基づいて作業計画を策定する
テスト駆動開発先にテストケースを設計し,そのテストをパスするようにソースコードを書く
オンサイト顧客顧客と密にコミュニケーションをとる
継続的なプロセス
継続的インテグレーションコードの結合とテストを頻繁に繰り返す。問題点を早期に発見できる
リファクタリング既存のコードでも随時改善し,保守性が高く内部構造の分かりやすいコードに書き直す

※ 外部から見た動作は変更しない

※ 改良後は想定外の影響が起きていないかを検証するために回帰テストを行う

小規模リリース不完全でも迅速に完成させ,段階的に改良する
共通理解
コーディング規約コードの書き方などの標準を定め,開発者全員が従うようにする
コードの共同所有すべてのコードを開発者全員が改善,再利用できるようにする
シンプル設計設計をシンプルにする
比喩システムの構造や動作のイメージなどを例えを通じて共有する
プログラマーの厚生
持続可能なペース開発者の労働負荷を一定に保つ(労働時間は週40時間までに制限するべき)

平成30年度 基本情報技術者試験 春期 午前 問50

 エクストリームプログラミング(XP:eXtreme Programming)のプラクティスのうち,プログラム開発において,相互に役割を交替し,チェックし合うことによって,コミュニケーションを円滑にし,プログラムの品質向上を図るものはどれか。

ア 計画ゲームイ コーディング標準
ウ テスト駆動開発エ ペアプログラミング

【解答】

【解説】

■ XP(エクストリームプログラミング)

アジャイル開発における開発手法や経験則をまとめたものである。開発者が行うべき実践や守るべき原則を4つの領域に12のプラクティスとしてまとめている。

細かいフィードバック
ペアプログラミング2人のプログラマーが,相談やレビューをしながら1つのプログラムを開発する。品質の向上や知識の共有が図れる
計画ゲームストーリーカードに基づいて作業計画を策定する
テスト駆動開発先にテストケースを設計し,そのテストをパスするようにソースコードを書く
オンサイト顧客顧客と密にコミュニケーションをとる
継続的なプロセス
継続的インテグレーションコードの結合とテストを頻繁に繰り返す。問題点を早期に発見できる
リファクタリング既存のコードでも随時改善し,保守性が高く内部構造の分かりやすいコードに書き直す

※ 外部から見た動作は変更しない

※ 改良後は想定外の影響が起きていないかを検証するために回帰テストを行う

小規模リリース不完全でも迅速に完成させ,段階的に改良する
共通理解
コーディング規約コードの書き方などの標準を定め,開発者全員が従うようにする
コードの共同所有すべてのコードを開発者全員が改善,再利用できるようにする
シンプル設計設計をシンプルにする
比喩システムの構造や動作のイメージなどを例えを通じて共有する
プログラマーの厚生
持続可能なペース開発者の労働負荷を一定に保つ(労働時間は週40時間までに制限するべき)

平成30年度 基本情報技術者試験 秋期 午前 問50

 XP(Extreme Programming)のプラクティスの説明のうち,適切なものはどれか。

ア 顧客は単体テストの仕様に責任をもつ。

イ コードの結合とテストを継続的に繰り返す。

ウ コードを作成して結合できることを確認した後,テストケースを作成する。

エ テストを通過したコードは,次のイテレーションまでリファクタリングしない。

【解答】

【解説】

■ XP(エクストリームプログラミング)

アジャイル開発における開発手法や経験則をまとめたものである。開発者が行うべき実践や守るべき原則を4つの領域に12のプラクティスとしてまとめている。

細かいフィードバック
ペアプログラミング2人のプログラマーが,相談やレビューをしながら1つのプログラムを開発する。品質の向上や知識の共有が図れる
計画ゲームストーリーカードに基づいて作業計画を策定する
テスト駆動開発先にテストケースを設計し,そのテストをパスするようにソースコードを書く
オンサイト顧客顧客と密にコミュニケーションをとる
継続的なプロセス
継続的インテグレーションコードの結合とテストを頻繁に繰り返す。問題点を早期に発見できる
リファクタリング既存のコードでも随時改善し,保守性が高く内部構造の分かりやすいコードに書き直す

※ 外部から見た動作は変更しない

※ 改良後は想定外の影響が起きていないかを検証するために回帰テストを行う

小規模リリース不完全でも迅速に完成させ,段階的に改良する
共通理解
コーディング規約コードの書き方などの標準を定め,開発者全員が従うようにする
コードの共同所有すべてのコードを開発者全員が改善,再利用できるようにする
シンプル設計設計をシンプルにする
比喩システムの構造や動作のイメージなどを例えを通じて共有する
プログラマーの厚生
持続可能なペース開発者の労働負荷を一定に保つ(労働時間は週40時間までに制限するべき)

ア チーム全体が責任をもつ

ウ テスト駆動開発で進める

エ 既存のコードでも随時改善する

(令和4年度) 基本情報技術者試験 サンプル問題 科目A 問41

 アジャイル開発のスクラムにおけるスプリントのルールのうち,適切なものはどれか。

ア スプリントの期間を決定したら,スプリントの1回目には要件定義工程を,2回目には設計工程を,3回目にはコード作成工程を,4回目にはテスト工程をそれぞれ割り当てる。

イ 成果物の内容を確認するスプリントレビューを,スプリントの期間の中間時点で実施する。

ウ プロジェクトで設定したスプリントの期間でリリース判断が可能なプロダクトインクリメントができるように,スプリントゴールを設定する。

エ 毎回のスプリントプランニングにおいて,スプリントの期間をゴールの難易度に応じて,1週間から1か月までの範囲に設定する。

【解答】

【解説】

■ スクラム

開発チームが仕事に取り組むためのフレームワークである。スプリントと呼ばれる短い期間(1週間から1カ月程度)の開発作業を繰り返し行う。スプリントで実施されるアクティビティは,次のとおりである。

スプリントプランニング取り組むべき作業の中から,スプリントで開発する機能などを決定する
デイリースクラム毎日行う15分程度のミーティング。進行状況や問題点などを共有したり,その日の計画を確認したりする
スプリントレビュースプリントの最後に行うレビュー
スプリントレトロスペクティブスプリントレビュー終了後に行うスプリントの振り返り。次のスプリントの改善計画などを作る

ア 1回のスプリントで,要求分析・定義 ⇒ 設計 ⇒ プログラミング ⇒ テストを行う

イ スプリントの終了時に実施する

エ 決まった長さ(期間)に設定する

令和5年度 基本情報技術者試験 公開問題 科目A 問12

 アジャイル開発手法のスクラムにおいて,開発チームの全員が1人ずつ“昨日やったこと”,“今日やること”,“障害になっていること”などを話し,全員でプロジェクトの状況を共有するイベントはどれか。

ア スプリントプランニングイ スプリントレビュー
ウ デイリースクラムエ レトロスペクティブ

【解答】

【解説】

■ スクラム

開発チームが仕事に取り組むためのフレームワークである。スプリントと呼ばれる短い期間(1週間から1カ月程度)の開発作業を繰り返し行う。スプリントで実施されるアクティビティは,次のとおりである。

スプリントプランニング取り組むべき作業の中から,スプリントで開発する機能などを決定する
デイリースクラム毎日行う15分程度のミーティング。進行状況や問題点などを共有したり,その日の計画を確認したりする
スプリントレビュースプリントの最後に行うレビュー
スプリントレトロスペクティブスプリントレビュー終了後に行うスプリントの振り返り。次のスプリントの改善計画などを作る

平成28年度 基本情報技術者試験 秋期 午前 問50

平成21年度 基本情報技術者試験 春期 午前 問49

 モデリングツールを使用して,本稼働中のデータベースの定義情報からE-R図などで表現した設計書を生成する手法はどれか。

ア コンカレントエンジニアリング

イ ソーシャルエンジニアリング

ウ フォワードエンジニアリング

エ リバースエンジニアリング

【解答】

【解説】

■ リバースエンジニアリング

入手したハードウェアやソフトウェアを分解・解析し,その仕様や構成要素,技術などを取り出す手法をいう。

平成26年度 基本情報技術者試験 秋期 午前 問50

平成22年度 基本情報技術者試験 春期 午前 問49

 プログラムからUMLのクラス図を生成することを何と呼ぶか。

ア バックトラッキング

イ フォワードエンジニアリング

ウ リエンジニアリング

エ リバースエンジニアリング

【解答】

【解説】

■ リバースエンジニアリング

入手したハードウェアやソフトウェアを分解・解析し,その仕様や構成要素,技術などを取り出す手法をいう。

平成27年度 基本情報技術者試験 秋期 午前 問49

 ソースコードやオブジェクトコードを解析して,プログラムの仕様と設計の情報を取り出す手法はどれか。

ア リエンジニアリングイ リストラクチャリング
ウ リバースエンジニアリングエ リファクタリング

【解答】

【解説】

■ リバースエンジニアリング

入手したハードウェアやソフトウェアを分解・解析し,その仕様や構成要素,技術などを取り出す手法をいう。

平成29年度 基本情報技術者試験 秋期 午前 問50

平成24年度 基本情報技術者試験 春期 午前 問50

 ソフトウェアのリバースエンジニアリングの説明はどれか。

ア 開発支援ツールなどを用いて,設計情報からソースコードを自動生成する。

イ 外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。

ウ 既存のソフトウェアを解析し,その仕様や構造を明らかにする。

エ 既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。

【解答】

【解説】

■ リバースエンジニアリング

入手したハードウェアやソフトウェアを分解・解析し,その仕様や構成要素,技術などを取り出す手法をいう。

ア フォワードエンジニアリング

イ リファクタリング

エ リエンジニアリング

平成21年度 基本情報技術者試験 春期 午前 問50

 ある製品の開発に使用された組込みシステムの開発環境における維持管理に関する記述として,最も適切なものはどれか。

ア あまり使用されない開発環境においても,最新の開発環境に更新して維持管理すべきである。

イ 一度製品化した後は,再度その開発環境を必要とすることはないので,開発環境を保持する必要はない。

ウ 開発環境は,使用頻度に関係なく,定期的に動作確認などを行って維持管理すべきである。

エ レンタル会社から借りた開発環境は,レンタル会社の責任でいつまでも保持される。

【解答】

【解説】

ア 最新の開発環境に更新する必要はない(逆に変更が生じる可能性がある)

イ 開発環境は残しておく

エ いつまでも保持されるわけではない

【参考】

まとめ

 今回は,情報処理技術者試験の過去問(開発技術-ソフトウェア開発管理技術,その他)を集めて,シンプルにまとめてみました。みなさん,どのくらい解けましたか?はじめは難しく感じると思いますが,繰り返し解くことにより,少しずつ理解できるようになると思います(8割以上(できれば9割以上)解けるようになるまで頑張りましょう)。また,解けるようになっても時間が経つと忘れることもありますので,たとえば,1週間後とか,1か月後とかに,また,やってみてください。