<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ソフトウェア設計 | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/%e3%82%bd%e3%83%95%e3%83%88%e3%82%a6%e3%82%a7%e3%82%a2%e8%a8%ad%e8%a8%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Mon, 20 Apr 2026 07:08:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.29</generator>
	<item>
		<title>IT初心者のための基本情報ではじめる 開発技術 入門</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/methodology4beginners/</link>
		<pubDate>Mon, 13 Feb 2023 03:01:52 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[ソフトウェア設計]]></category>
		<category><![CDATA[科目 A]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=learn_tech&#038;p=7626</guid>
		<description><![CDATA[<p>この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/methodology4beginners/">IT初心者のための基本情報ではじめる 開発技術 入門</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。</p>
<p>今回は、<span class="bold">開発技術</span> の分野を取り上げます。</p>
<style>dl.inline dd{margin-left:2em;}.background{position:relative;}.background>.chip{position:absolute;top:-1em;left:-1em;}.card-panel{box-shadow:0 4px 16px rgba(0,0,0,0.02),0 20px 46px rgba(0,0,0,0.08);}.width40-on-large{width:40%;margin:auto;}@media screen and (max-width:600px){.width40-on-large{width:unset;}dl:not(.inline)>dd{margin-left:1em}}</style>
<h2>コンピュータシステムの開発の流れ</h2>
<p>開発技術の分野は、テーマがとても幅広いのですが、開発の流れを知ることで、全体像をつかめます。 多くの場合に、コンピュータシステムの開発の流れには、図 1 に示した「要件定義」「設計」「実装」「テスト」「導入」「保守」という工程があります。 そして、それぞれの工程に、様々な開発技術があるのです。</p>
<figure><figcaption>図 1　コンピュータシステムの開発の流れ</figcaption><img class="materialboxed z-depth-5 width40-on-large responsive-width" src="../../wp-content/uploads/2023/02/dev_tech_figure.jpg" loading="lazy"><br />
</figure>
<dl class="background c-round">
<dt><span class="bold">要件定義</span> とは</dt>
<dd>ユーザーが何をしたいかを明確にすることです。</dd>
<dt><span class="bold">設計</span> とは</dt>
<dd>要件定義を実現する方法を明確にすることです。</dd>
<dt><span class="bold">実装</span> とは</dt>
<dd>設計に基づいてプログラムを作ることです（ハードウェアを作ることもあります）。</dd>
<dt><span class="bold">テスト</span> とは</dt>
<dd>プログラムの動作を確認することです。</dd>
<dt><span class="bold">導入</span> とは</dt>
<dd>テストに合格したプログラムをユーザーの環境に配置することです。</dd>
<dt><span class="bold">保守</span> とは</dt>
<dd>ユーザーの環境でプログラムを運用し、必要に応じて機能の変更や追加を行うことです。</dd>
</dl>
<h2>開発モデルの種類と特徴</h2>
<p>コンピュータシステムの開発は、プログラムという<span class="u">形がないものを作ることなので、なかなか管理が難しいもの</span>です。</p>
<p>様々な管理技法が検討されていて、「ウォーターフォールモデル」「プロトタイピングモデル」「段階的モデル（インクリメンタルモデル）」など、いくつかの開発モデルが提唱されています。 これらは、 「要件定義」「設計」「実装」「テスト」「導入」「保守」という工程の進め方の規範となるものです。</p>
<h3>ウォーターフォールモデル</h3>
<p>ウォーターフォールモデルは、<span class="u">「ひとつの工程の作業がすべて終わってから次の工程を開始する」</span>という進め方です。 部分的に先に進むことをせずに、全体で進捗を合わせるのです。</p>
<p>ウォーターフォール（ waterfall ）は、「滝」という意味です。 滝から落ちた水が後戻りしないように、次の工程に進んだら前の工程に後戻りしないので、進捗の管理がしやすくなります。</p>
<p>図 2 に、ウォーターフォールのイメージを示します。</p>
<figure><figcaption>図 2　ウォーターフォールモデルのイメージ</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2023/02/waterfall.jpg" loading="lazy"><br />
</figure>
<h3>プロトタイピングモデル</h3>
<p>プロトタイピングモデルは、<span class="u">「要件定義の後で、プログラムの試作品（ prototype ）を作ってユーザーに使ってもらい、ユーザーからの要望を聞いて要件定義を見直してから、それ以降の工程を開始する」</span>という進め方です。</p>
<p>要件定義の工程に多くの時間が必要になりますが、ユーザーの要望が明確になるので、<span class="u">後の工程で仕様変更が生じることが少なくなります</span>。</p>
<p>図 3 にプロトタイピングモデルのイメージを示します。</p>
<figure><figcaption>図 3　プロトタイピングモデルのイメージ</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2023/02/prototyping.jpg" loading="lazy"><br />
</figure>
<h3>段階的モデル</h3>
<p>段階的モデルは、<span class="u">「プログラム全体をいくつかの部分に分割して、それぞれの部分ごとに開発してリリースする」</span>という進め方です。</p>
<p><span class="u">すべての機能がそろう前に、重要な機能だけでソフトウェアを使い始めたい</span>、という要望がある場合に適した開発モデルです。</p>
<p>図 4 に段階的モデルのイメージを示します。</p>
<figure><figcaption>図 4　段階的モデルのイメージ</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2023/02/incremental.jpg" loading="lazy"><br />
</figure>
<h2>開発技術の主要な用語</h2>
<p><a href="https://www.jitec.ipa.go.jp/1_13download/syllabus_fe_ver8_0.pdf" rel="noopener" target="_blank">基本情報技術者試験のシラバス（知識・技能の細目） Ver.8.0</a> では、開発技術の分野が</p>
<ul class="background c-round bold">
<li>システム開発技術</li>
<li>ソフトウェア開発管理技術</li>
</ul>
<p>に分類されています。</p>
<p>以下は、シラバスに示された用語の中で、試験によく出るものです。 <span class="red-text">赤色で示した用語</span>は、この記事の中で取り上げています。</p>
<dl class="background c-round">
<dt class="chip indigo white-text">システム開発技術の主な用語</dt>
<dd class="mag_lt00">レスポンスタイム、スループット、<span class="red-text">機能要件</span>、<span class="red-text">非機能要件</span>、 DFD 、 E-R 図、 UML 、モジュール分割、クラス、インスタンス、決定表（デシジョンテーブル）、バグ曲線、ホワイトボックステスト、ブラックボックステスト、トップダウンテスト、ボトムアップテスト、ドライバ、スタブ、回帰テスト（リグレッションテスト）、命令網羅、条件網羅、判定条件網羅、限界値分析法、同値分析法、リバースエンジニアリング</dd>
</dl>
<dl class="background c-round">
<dt class="chip indigo white-text">ソフトウェア開発管理技術の主な用語</dt>
<dd class="mag_lt00"><span class="red-text">ウォーターフォールモデル</span>、<span class="red-text">プロトタイピングモデル</span>、<span class="red-text">段階的モデル</span>、アジャイル、 XP （エクストリームプログラミング）、スクラム</dd>
</dl>
<h2>開発技術の過去問題</h2>
<p>開発技術の分野の過去問題を 3 問ほど紹介しましょう。</p>
<h3>コンピュータシステムの開発の流れに関する問題</h3>
<p>最初は、コンピュータシステムの開発の流れに関する問題です。</p>
<p>選択肢の中から、要件定義プロセスで実施すべきことを選んでください。 プロセス（ process ）とは、工程のことです。</p>
<div class="card-panel mag_h40">
<span class="bold">問 66</span>　平成 29 年度 春期</p>
<p>企画，要件定義，システム開発，ソフトウェア実装，ハードウェア実装，保守から成る一連のシステム開発プロセスにおいて，要件定義プロセスで実施すべきものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>事業の目的，目標を達成するために必要なシステム化の方針，及びシステムを実現するための実施計画を立案する。</dd>
<dt>イ</dt>
<dd>システムに関わり合いをもつ利害関係者の種類を識別し，利害関係者のニーズ，要望及び課せられる制約条件を識別する。</dd>
<dt>ウ</dt>
<dd>目的とするシステムを得るために，システムの機能及び能力を定義し，システム方式設計によってハードウェア，ソフトウェアなどによる実現方式を確立する。</dd>
<dt>エ</dt>
<dd>利害関係者の要件を満足するソフトウェア製品又はソフトウェアサービスを得るための，方式設計と適格性の確認を実施する。</dd>
</dl>
</div>
<p>この問題では、コンピュータシステムの開発の流れを「企画」「要件定義」「システム開発」「ソフトウェア実装」「ハードウェア実装」「保守」という工程に分けています。</p>
<p>要件定義は、ユーザーが何をしたいかを明確にすることですから「利害関係者のニーズ、要望及び課せられる制約条件を識別する」とある選択肢イが適切です。</p>
<p>選択肢アは、企画で実施することです。 選択肢ウと選択エは、設計で実施することですが、この問題では、要件定義の後にあるシステム開発で実施することです。 したがって、選択肢イが正解です。</p>
<h3>機能要件と非機能要件に関する問題</h3>
<p>次は、機能要件と非機能要件に関する問題です。</p>
<p>コンピュータシステムへの要件は、<span class="bold">機能要件</span>と<span class="bold">非機能要件</span>に分類できます。 ここでは、選択肢の中から、非機能要件であるものを選んでください。</p>
<p>問題文の中にある「 共通フレーム 2007 」とは、ソフトウェア、システム、サービスに関係する人たちが「同じ言葉を話す」ことを目的として、情報処理推進機構によって作成された共通の枠組み（書籍化されています）です。</p>
<div class="card-panel mag_h40">
<span class="bold">問 67</span>　平成 21 年度 秋期</p>
<p>共通フレーム2007 によれば，非機能要件に該当するものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>新しい業務の在り方をまとめた上で，業務上実現すべき要件</dd>
<dt>イ</dt>
<dd>業務の手順や入出力情報，ルールや制約などの要件</dd>
<dt>ウ</dt>
<dd>業務要件を実現するために必要なシステムの機能に関する要件</dd>
<dt>エ</dt>
<dd>ソフトウェアの信頼性，効率性など品質に関する要件</dd>
</dl>
</div>
<dl class="background c-round">
<dt><span class="bold">機能要件</span> とは</dt>
<dd>システムが持つ機能への要件です。</dd>
<dd>「システムの機能に関する要件」とある選択肢ウが機能要件です。</dd>
<dt><span class="bold">非機能要件</span> とは</dt>
<dd>機能以外の要件であり、性能、信頼性、保守性、移植性、セキュリティなどへの要件です。</dd>
<dd>「信頼性、効率性など品質に関する要件」とある選択肢エが非機能要件です。</dd>
</dl>
<p>選択肢アと選択肢イは、コンピュータシステムに対する要件ではありません。 したがって、正解は選択肢エです。</p>
<h3>開発モデルに関する問題</h3>
<p>最後は、開発モデルに関する問題です。 選択肢の中から、ウォーターフォールモデルの説明を選んでください。</p>
<div class="card-panel mag_h40">
<span class="bold">問 45</span>　平成 21 年度 春期</p>
<p>システム開発におけるウォータフォールモデルの説明はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>一度の開発ですべてを作るのではなく，基本的なシステムアーキテクチャの上に機能の優先度に応じて段階的に開発する。</dd>
<dt>イ</dt>
<dd>開発工程を設計，実装，テストなどに分け，前の工程が完了してから，その成果物を使って次の工程を行う。</dd>
<dt>ウ</dt>
<dd>試作品を作り，利用者の要求をフィードバックして開発を進める。</dd>
<dt>エ</dt>
<dd>複雑なソフトウェアを全部最初から作成しようとするのではなく，簡単な部分から分析，設計，実装，テストを繰り返し行い，徐々に拡大していく。</dd>
</dl>
</div>
<dl class="background c-round">
<dt>選択肢ア</dt>
<dd>
<blockquote><p><span class="blue-grey-text">「機能の優先度に応じて段階的に開発する」</span></p></blockquote>
<p>とあるので、段階的モデルの説明です。</dd>
<dt>選択肢イ</dt>
<dd>
<blockquote><p><span class="blue-grey-text">「前の工程が完了してから、その成果物を使って次の工程を行う」</span></p></blockquote>
<p>とあるので、ウォーターフォールモデルの説明です。</dd>
<dt>選択肢ウ</dt>
<dd>
<blockquote><p><span class="blue-grey-text">「試作品を作り」</span></p></blockquote>
<p>とあるので、プロトタイピングモデルの説明です。</dd>
<dt>選択肢エ</dt>
<dd>これまでに説明しませんでしたが、スパイラルモデル（ spiral = らせん）です。</dd>
</dl>
<p>したがって、正解は選択肢イです。</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>今回は「開発技術」の分野のポイント、基本的な用語、技法、および過去問題を紹介しました。</p>
<p>次回は、「マネジメント」その 1 として「プロジェクトマネジメント」の分野を取り上げます。</p>
<p>それでは、またお会いしましょう！</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/methodology4beginners/">IT初心者のための基本情報ではじめる 開発技術 入門</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>基本情報技術者試験 午前免除（修了試験）の講評 ～ 2022年1月23日実施</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/guide/report_fe_special_test_202201/</link>
		<pubDate>Mon, 24 Jan 2022 01:36:46 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[ソフトウェア設計]]></category>
		<category><![CDATA[午前免除試験]]></category>
		<category><![CDATA[試験講評]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=guide&#038;p=6364</guid>
		<description><![CDATA[<p>試験対策講座の講師として、誠に勝手ながら、 2022 年 1 月 23 日（日）に実施された基本情報技術者午前免除試験（修了認定に係る試験）の講評をさせていただきます。 今回受験された人は振り返りの題材として、今後受験さ [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/guide/report_fe_special_test_202201/">基本情報技術者試験 午前免除（修了試験）の講評 ～ 2022年1月23日実施</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>試験対策講座の講師として、誠に勝手ながら、 2022 年 1 月 23 日（日）に実施された基本情報技術者午前免除試験（修了認定に係る試験）の講評をさせていただきます。</p>
<p>今回受験された人は振り返りの題材として、今後受験される人は対策の資料として、参考にしていただければ幸いです。</p>
<table class="mag_h30 centered responsive-width">
<thead>
<tr>
<th>実施月</th>
<th>問題</th>
<th>解答</th>
</tr>
</thead>
<tbody>
<tr>
<td>2022 年 1 月</td>
<td><a href="https://www.jitec.ipa.go.jp/1_80tokurei/kakomondai/tokurei_Mondai_20220123_FE.pdf" rel="noopener" target="_blank">問題</a></td>
<td><a href="https://www.jitec.ipa.go.jp/1_80tokurei/kakomondai/tokurei_ans_20220123_FE.pdf" rel="noopener" target="_blank">解答</a></td>
</tr>
</tbody>
</table>
<style>table{font-size:.85em}thead{background:#e1f5fe;}dl.inline dd{margin-left: 2em;}@media screen and (max-width:600px){dl:not(.inline) > dd{margin-left:1em;}}</style>
<h2>他の試験の過去問題がとても多かった</h2>
<p>今回の試験の内容は、<a href="../report_fe_special_test_202112/">前回の試験（ 2021 年 12 月 12 日実施）</a>と同様に、<span class="u">基本情報技術者試験以外の過去問題が、数多く出題されていました</span>。それらの中には、基本情報技術者試験の出題範囲を超えているのではないか？！ と言いたくなるような問題もあったので、受験された人は大いに戸惑われたでしょう。</p>
<p>図 1 に、今回の試験のテクノロジ系の問題（問 1 ～問 50 ）の中で、他の試験の過去問題だったものを示します。</p>
<p>ここでは、現行の試験制度となった平成 21 年度 春期より前の基本情報技術者試験も他の試験としています。多くの受験者は、平成 21 年度 春期以降の過去問題を練習しているからです。出典は、 1 つだけ示していますが、複数の試験に出ている問題もあります。</p>
<p>この手の問題の数は、前回は 15 問で、今回は 12 問です。今後の試験でも、同じ頻度で他の試験の過去問題が使われると予想されます。</p>
<table class="responsive-width">
<caption>図 1 　今回の試験のテクノロジ系の問題の中で他の試験の過去問題だったもの</caption>
<thead>
<tr>
<th>問番号</th>
<th>テーマ</th>
<th>出典</th>
</tr>
</thead>
<tbody>
<tr>
<td>問 1</td>
<td>ビット演算</td>
<td>応用情報 H 23 秋 問 1</td>
</tr>
<tr>
<td>問 4</td>
<td>M / M / 1 の待ち行列モデル</td>
<td>応用情報 H 18 秋 問 31</td>
</tr>
<tr>
<td>問 8</td>
<td>ハッシュ値の衝突</td>
<td>基本情報 H 15 春 問 14</td>
</tr>
<tr>
<td>問 9</td>
<td>再帰的に定義された関数</td>
<td>応用情報 H 25 秋 問 8</td>
</tr>
<tr>
<td>問 12</td>
<td>コンピュータの五大装置</td>
<td>基本情報 H 18 春 問 26</td>
</tr>
<tr>
<td>問 19</td>
<td>ページング方式の仮想記憶</td>
<td>基本情報 H 20 秋 問 27</td>
</tr>
<tr>
<td>問 20</td>
<td>モータの速度制御に用いられる PWM の駆動波形</td>
<td>応用情報 R 02 秋 問 22</td>
</tr>
<tr>
<td>問 26</td>
<td>導出表を1行ずつ親プログラムに引き渡す操作</td>
<td>応用情報 H 27 春 問 27</td>
</tr>
<tr>
<td>問 30</td>
<td>無線 LAN で用いられる SSID の説明</td>
<td>応用情報 H 29 秋 問 31</td>
</tr>
<tr>
<td>問 38</td>
<td>OpenPGP や S/MIME で用いるハイブリッド暗号方式</td>
<td>応用情報 H 28 秋 問 42</td>
</tr>
<tr>
<td>問 47</td>
<td>分岐網羅と条件網羅を満たすテストデータ</td>
<td>応用情報 H 29 春 問 48</td>
</tr>
<tr>
<td>問 50</td>
<td>アジャイル開発のふりかえり（レトロスペクティブ）</td>
<td>応用情報 H 30 春 問 48</td>
</tr>
</tbody>
</table>
<h2>全体の難易度はこれまでと同様だった</h2>
<p>問題の全体（問1～問80）の難易度は、前回の試験がやや高めでしたが、<span class="u">今回の試験はこれまでと同様</span>でした。</p>
<p>図 2 は、今回の試験問題の分類と難易度を A, B, C で示したものです。この難易度は、私の講師経験から、</p>
<ul class="background c-round">
<li>受講者のほぼ全員ができるものを A （やさしい）</li>
<li>半数ぐらいができるものを B （ふつう）</li>
<li>ほとんどができないものを C （むずかしい）</li>
</ul>
<p>としたものです。</p>
<figure>
<table class="striped block">
<caption>図 2 　今回の試験の問題の分類と難易度</caption>
<thead class="hide-on-small-only">
<tr>
<th>分野</th>
<th>問題番号（難易度）</th>
</tr>
</thead>
<tbody>
<tr>
<td>情報の基礎理論</td>
<td>問 1 （C）、問 2 （C）、問 3 （B）、問 4 （C）、問 5 （B）</td>
</tr>
<tr>
<td>アルゴリズム</td>
<td>問 7 （B）、問 8 （B）、問 9 （C）</td>
</tr>
<tr>
<td>ハードウェア</td>
<td>問 11 （A）、問 12 （B）、問 13 （B）、問 20 （B）、問 21 （B）、問 22 （A）</td>
</tr>
<tr>
<td>ソフトウェア</td>
<td>問 17 （B）、問 18 （B）、問 19 （B）</td>
</tr>
<tr>
<td>システム構成</td>
<td>問 14 （A）、問 15 （A）、問 16 （B）</td>
</tr>
<tr>
<td>マルチメディアとヒューマンインタフェース</td>
<td>問 6 （B）、問 10 （A）、問 23 （B）、問 24 （B）</td>
</tr>
<tr>
<td>データベース</td>
<td>問 25 （C）、問 26 （B）、問 27 （B）、問 28 （A）、問 29 （A）</td>
</tr>
<tr>
<td>ネットワーク</td>
<td>問 30 （B）、問 31 （A）、問 32 （B）、問 33 （B）、問 34 （B）</td>
</tr>
<tr>
<td>セキュリティ</td>
<td>問 35 （A）、問 36 （B）、問 37 （A）、問 38 （B）、問 39 （B）、問 40 （A）、問 41 （B）、問 42 （A）、問 43 （B）、問 44 （A）</td>
</tr>
<tr>
<td>開発技術</td>
<td>問 45 （A）、問 46 （B）、問 47 （B）、問 48 （A）、問 49 （B）、問 50 （B）</td>
</tr>
<tr>
<td>マネジメント系</td>
<td>問 51 （B）、問 52 （B）、問 53 （B）、問 54 （A）、問 55 （A）、問 56 （A）、問 57 （B）、問 58 （A）、問 59 （A）、問 60 （B）</td>
</tr>
<tr>
<td>ストラテジ系</td>
<td>問 61 （B）、問 62 （A）、問 63 （A）、問 64 （B）、問 65 （A）、問 66 （B）、問 67 （B）、問 68 （A）、問 69 （B）、問 70 （B）、問 71 （A）、問 72 （B）、問 73 （A）、問 74 （B）、問 75 （B）、問 76 （C）、問 77 （B）、問 78 （B）、問 79 （A）、問 80 （B）</td>
</tr>
</tbody>
</table><figcaption class="small-text"><i class="material-icons blue-text mag_rt05">info</i>マネジメント系とストラテジ系は、全体を 1 つの分野にしています。</figcaption></figure>
<p>全 80 問の難易度を集計すると、</p>
<p>A が 27 問、<br />
B が 47 問、<br />
C が 6 問</p>
<p>です。</p>
<p>A が 90 % できて、 B が 50 % できて、 C が 25 % できる（四択問題なので最低でも 25 % できます）とすれば、 1 問が 1.25 点なので、得点の期待値は、</p>
<p>1.25 点 × ( 27 × 0.9 ＋ 47 × 0.5 ＋ 6 × 0.25 )<br />
≒ 63.5 点</p>
<p>冒頭の問 1 ～問 10 あたりに難易度の高い問題が集中していたので難しく感じたかもしれませんが、<span class="bold">全体の難易度は、これまでの試験と同様</span>です。</p>
<p>図 3 に近年に実施された午前免除試験の得点の期待値を示します。</p>
<table class="responsive-width centered striped">
<caption>図 3 　近年の試験の得点の期待値</caption>
<thead>
<tr>
<th width="20%">試験実施日</th>
<th>難易度 A</th>
<th>難易度 B</th>
<th>難易度 C</th>
<th>得点の期待値</th>
</tr>
</thead>
<tbody>
<tr>
<td>2020 年<br />1 月 16 日（日）</td>
<td>30 問</td>
<td>41 問</td>
<td>9 問</td>
<td>62.19 点</td>
</tr>
<tr>
<td>2020 年<br />6 月 14 日（日）</td>
<td>19 問</td>
<td>52 問</td>
<td>9 問</td>
<td>63.75 点</td>
</tr>
<tr>
<td>2020 年<br />7 月 26 日（日）</td>
<td>20 問</td>
<td>50 問</td>
<td>10 問</td>
<td>63.75 点</td>
</tr>
<tr>
<td>2020 年<br />12 月 13 日（日）</td>
<td>28 問</td>
<td>48 問</td>
<td>4 問</td>
<td>62.75 点</td>
</tr>
<tr>
<td>2021 年<br />1 月 24 日（日）</td>
<td>30 問</td>
<td>41 問</td>
<td>9 問</td>
<td>62.19 点</td>
</tr>
<tr>
<td>2021 年<br />6 月 13 日（日）</td>
<td>28 問</td>
<td>48 問</td>
<td>4 問</td>
<td>62.75 点</td>
</tr>
<tr>
<td>2021 年<br />12 月 12 日（日）</td>
<td>29 問</td>
<td>40 問</td>
<td>11 問</td>
<td>61.10 点</td>
</tr>
<tr>
<td>2022 年<br />1 月 23 日（日）</td>
<td>27 問</td>
<td>47 問</td>
<td>6 問</td>
<td>63.50 点</td>
</tr>
</tbody>
</table>
<h2>出題範囲を超えているのではないか？！ と言いたくなるような問題の例（その 1）</h2>
<p>今回の試験の中で、基本情報技術者試験の出題範囲を超えているのではないか？！ と言いたくなるような問題の例を示しましょう。</p>
<p>以下は、「 M / M / 1 の待ち行列モデル」をテーマとした問題です。<span class="u">待ち行列理論は、応用情報技術者試験では、よく出題される鉄板問題</span>なのですが、基本情報技術者試験では、何となくそれを匂わすような問題しか出たことがありません。そのため、この問題を見て、ビックリした人が多いでしょう。</p>
<div class="card-panel mag_h30">
問 4</p>
<p>多数のクライアントが、 LAN に接続された 1 台のプリンタを共同利用するときの印刷要求から印刷完了までの所要時間を，待ち行列理論を適用して見積もる場合について考える。プリンタの運用方法や利用状況に関する記述のうち、 M / M / 1 の待ち行列モデルの条件に反しないものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>一部のクライアントは，プリンタの空き具合を見ながら印刷要求をする</dd>
<dt>イ</dt>
<dd>印刷の緊急性や印刷量の多少にかかわらず、先着順に印刷する。</dd>
<dt>ウ</dt>
<dd>印刷待ち文書の総量がプリンタのバッファサイズを超えるときは、一時的に受付を中断する。</dd>
<dt>エ</dt>
<dd>一つの印刷要求から印刷完了までの所要時間は、印刷の準備に要する一定時間と，印刷量に比例する時間の合計である。</dd>
</dl>
</div>
<p>ただし、以下のように「待ち行列理論」も「 M / M / 1 モデル」も基本情報技術者試験のシラバスに示されているので、この問題は、基本情報技術者試験の出題範囲を超えてはいません。今回の試験に出題されたのですから、これはもう基本情報技術者試験の過去問題です。解き方を覚えておきましょう。</p>
<ul class="collection mag_h30">
<li class="collection-item" style="line-height:2">
<p class="post-title blue-text">(6) 待ち行列理論</p>
<p>待ち行列モデルの構成要素，考え方，M/M/1 モデルにおける簡単な計算を理解する。</p>
<div class="chip">用語例</div>
<p>サービス時間、待ち時間，到着間隔，平均到着率，平均サービス率
</li>
</ul>
<div class="chip">解説</div>
<p><span class="u">待ち行列とは、たとえば、切符を購入するために窓口にできる順番待ちの行列</span>のことです。</p>
<p>待ち行列理論とは、与えられた条件において、どの程度の待ちが生じるかを求めるものであり、いくつかの計算式が知られています。 IT の世界では、コンピュータシステムで行う処理が、どの程度待たされるかを理論的に求めるために使われます。</p>
<p>この問題では、プリンタの印刷要求から印刷完了までの時間を、待ち行列理論で求めるという内容になっています。</p>
<p>&nbsp;</p>
<p>待ち行列の条件は、</p>
<div class="background c-round bold">
到着間隔 / サービス時間 / 窓口数
</div>
<p>という表記で示されます。</p>
<p>今回の問題のように、 <span class="bold">M / M / 1 という表記がよく出題</span>されます。 M / M / 1 は、<span class="u">到着間隔がランダムで、サービスを受ける時間がランダムで、窓口数が 1 であること</span>を示しています。</p>
<p>この条件に反していない選択肢を選ぶ問題なので、選択肢の中の 3 つは条件に反しています。</p>
<p>&nbsp;</p>
<p>ここでは、プリンタが 1 台であることが、窓口が 1 つであることに相当します。この条件に反する選択肢はありません。</p>
<dl class="mag_h30">
<dt>選択肢ア</dt>
<dd>到着間隔がランダムであることに反します。</dd>
<dt>選択肢イ</dt>
<dd>条件に反しません。</dd>
<dt>選択肢ウ</dt>
<dd>サービス時間がランダムであることに反します。</dd>
<dt>選択肢エ</dt>
<dd>サービス時間がランダムであることに反します。</dd>
</dl>
<p>したがって、選択肢イが正解です。</p>
<p><span class="chip">解答</span> イ</p>
<h2>出題範囲を超えているのではないか？！ と言いたくなるような問題の例（その 2）</h2>
<p>もう 1 つ例を示しましょう。以下は、「モータの速度制御に用いられる PWM の駆動波形」をテーマとした問題です。何これ？ PWM 制御なんて知らない！ PWM の駆動波形などわからない！ と言いたくなるような問題でしょう。</p>
<div class="card-panel mag_h30">
問 20</p>
<p>モータの速度制御などに PWM (Pulse Width Modulation) 制御が用いられる。<br />
PWM の駆動波形を示したものはどれか。ここで，波形は制御回路のポート出力であり，低域通過フィルタを通していないものとする。</p>
<dl class="inline">
<dt>ア</dt>
<dd><img class="responsive-width" src="../../wp-content/uploads/2022/01/option_a.jpg" loading="lazy"></dd>
<dt>イ</dt>
<dd><img class="responsive-width" src="../../wp-content/uploads/2022/01/option_i.jpg" loading="lazy"></dd>
<dt>ウ</dt>
<dd><img class="responsive-width" src="../../wp-content/uploads/2022/01/option_u.jpg" loading="lazy"></dd>
<dt>エ</dt>
<dd><img class="responsive-width" src="../../wp-content/uploads/2022/01/option_e.jpg" loading="lazy"></dd>
</dl>
</div>
<p>実は、この問題も、基本情報技術者試験の出題範囲を超えてはいません。以下のように、基本情報技術者試験のシラバスに</p>
<blockquote><p><span class="grey-text">PWM (Pulse Width Modulation) 制御</span></p></blockquote>
<p>が示されています。この問題も、解き方を覚えておきましょう。</p>
<ul class="collection mag_h30">
<li class="collection-item" style="line-height:2">
<p class="post-title blue-text">(2) 機械・制御</p>
<p>代表的な機械電子制御について，基本的な動作原理を理解する。</p>
<div class="chip">用語例</div>
<p>オープンループ制御，クローズドループ制御，シーケンス制御，フィードバック制御， PWM (Pulse Width Modulation) 制御
</li>
</ul>
<div class="chip">解説</div>
<p>この問題は、 PWM 制御のことを知らなくても、言葉の意味と選択肢から、正解を詳しく選べます。</p>
<p>PWM の Pulse は、人間の心臓の鼓動のように脈を打つ電気信号のことです。Width は幅という意味で、 Modulation は変調という意味です。変調が何であるかがわからなくても、電気信号の幅で制御することだ、ということが何となくわかるでしょう。</p>
<p>それでは、選択肢を見てみましょう。</p>
<p>電気信号の幅が変わっているのは、選択肢イだけです。選択肢イを選んでください。それで、正解です。</p>
<p><span class="chip">解答</span> イ</p>
<p>&nbsp;</p>
<p>このように、<span class="bold">見たことがない問題に遭遇したら、言葉の意味と選択肢をヒントにすれば、正解が選べる場合がよくあります</span>。わからない！ と決めつけずに、ジタバタすることが大事です。</p>
<p>ジタバタするとは、すぐにあきらめずに、自分の知識を総動員して何とかすることです。ほとんどの場合、何とかなります。</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>以上、試験対策講座の講師として、誠に勝手ながら、試験問題の講評をさせていただきました。</p>
<p>今後の午前免除試験でも、他の試験の過去問題が数多く出ることが予想されますが、そのために他の試験を練習するというわけにもいかないでしょう。<span class="u">これまで通りに、 平成 21 年度 春期以降の基本情報技術者試験の過去問題を練習</span>してください。</p>
<p>ただし、これまで以上に、<span class="u">学習目標を高く設定</span>してください。そうすれば、必ず良い結果が得られるはずです！</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/guide/report_fe_special_test_202201/">基本情報技術者試験 午前免除（修了試験）の講評 ～ 2022年1月23日実施</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>文系出身で非IT企業の事務職がIT系への転職を目指して基本情報技術者試験を受験してみた</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/jukenki/interview_with_tpz/</link>
		<pubDate>Thu, 20 May 2021 23:30:29 +0000</pubDate>
		<dc:creator><![CDATA[基本情報技術者試験 受験ナビ 編集部]]></dc:creator>
				<category><![CDATA[アルゴリズム]]></category>
		<category><![CDATA[ソフトウェア設計]]></category>
		<category><![CDATA[勉強方法]]></category>
		<category><![CDATA[午前免除試験]]></category>
		<category><![CDATA[非ITエンジニア]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=jukenki&#038;p=5369</guid>
		<description><![CDATA[<p>※この記事は基本情報技術者試験の旧制度（2022年以前）の記事です。 題材となっている「午後問題」は現在の試験制度では出題されません。ご注意くださいませ。 &#160; ブログ、SNS、動画など様々なメディアに情報が溢れ [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/jukenki/interview_with_tpz/">文系出身で非IT企業の事務職がIT系への転職を目指して基本情報技術者試験を受験してみた</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><small>※<font color="red">この記事は基本情報技術者試験の旧制度（2022年以前）の記事です。<br />
題材となっている「午後問題」は現在の試験制度では出題されません。ご注意くださいませ。</font></small></p>
<p>&nbsp;</p>
<p>ブログ、SNS、動画など様々なメディアに情報が溢れ、基本情報技術者試験の対策方法は、さまざまな方の受験体験から、近しい人の勉強法や勉強時間などを参考にして、自身のやり方を決める時代になりました。</p>
<p>この「受験体験記」では、合否問わず、様々な受験体験をインタビューしています。</p>
<p>今回は「学生の頃の専攻も文系で、いまの仕事も事務職で関連性がない」けど、「パソコンが大好き」でIT系へ転職したくて受験したと語る とぱず さんに、その受験までの歩みをインタビューしました。</p>
<div class="divider mag_tp50 mag_bt20"></div>
<div class="row valign-wrapper">
<div class="col s3">
    <img class="circle z-depth-1" src="../../wp-content/uploads/2021/05/icon_tpz.jpg" loading="lazy">
  </div>
<div class="col s9 pad_20">
<div class="chip">お話を伺った方</div>
<p class="post-title">とぱず さん <span class="small-text">（ハンドルネーム）</span></p>
<p class="small-text">一般ビジネス系企業 事務職</p>
</p></div>
</div>
<div class="divider mag_h20"></div>
<style>.comment{background-color:#fafafa;color:#3f51b5;border-radius:10px;padding:1.5em;margin:3em 0 4em;position:relative}.icon{background:url(../../wp-content/uploads/2021/05/icon_tpz-150x150.jpg);background-size:cover;border-radius:50%;height:3em;width:3em;position:absolute;top:-1.5em;left:1em;border:3px solid #fff}.comment p{color:#3f51b5}dl.inline dd{margin-left:14.5em}</style>
<h2>パソコンだけで完結する仕事をしたい！</h2>
<p class="blue-grey-text">―― IT とはまったくの異業種・異職種から受験されていますが、どのようなキッカケで受験されたのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>パソコンを使うことが大好きで、今はそれと関係のない会社・部署にいますが、いつかはパソコンだけで完結するような仕事に就く、あるいは副業（複業）でやる、と考えていました。そういった職に就けるように、少しでもプラスになればと思って、この業界の登竜門と言われる基本情報を取得しようと考えました。
</p></div>
<p class="blue-grey-text">―― 基本情報受験前の IT の知識はどの程度でしたか？</p>
<div class="comment">
<div class="icon"></div>
<p>IT 業界に入ろうと思ってから、 2019 年の秋期試験で情報セキュリティマネジメント試験（ SG ）を受験して合格していました。 SG は難易度も低めと聞いていたので、動機は不純ですが、まずは試験慣れしておこうという気持ちで受験しました（笑）。
</p></div>
<p class="blue-grey-text">―― SG はどんな試験でしたか？</p>
<div class="comment">
<div class="icon"></div>
<p>SG は、例えば「コンピュータウイルスの感染が疑われる時はまず LAN ケーブルを抜く」というような、一般に知られていることが出題として多いので馴染みはありました。</p>
<p>午後試験の文章量は多めで、出題事例の状況設定や登場人物・部署などを把握することから始まるので、基本情報の練習になったと感じています。
</p></div>
<h2>午前免除のメリット、デメリット</h2>
<p class="blue-grey-text">―― 基本情報はどのように対策しようとお考えでしたか？</p>
<div class="comment">
<div class="icon"></div>
<p>どうしても合格したかったので、まずは午前免除制度を使って午前はクリアしておこうと考えていました。ちなみに 2020 年 6 月の午前免除試験をクリアできたので、試験延期も相まって、実質 7 ヶ月近くも午後対策のみに時間をかけることができました。</p>
<p>コースの申込タイミングにもよりますが、<span class="u">午前試験が 2 回受験できることも地味にすごい</span>と思います。普通試験というものは 1 度切りですから。
</div>
<p class="blue-grey-text">―― 有利ですよね、午前免除。逆にデメリットはありましたか？</p>
<div class="comment">
<div class="icon"></div>
<p><span class="bold">費用がかかること</span>ですね。コースを &#8220;きちんと&#8221; 受講しなければ受験できないので、独学するよりお金がかかります。合格したい気持ちとの天秤になると思うので、なかなか悩ましい問題だな…と思います。
</div>
<p class="blue-grey-text">―― 午前免除まではどのように勉強されましたか？</p>
<div class="comment">
<div class="icon"></div>
<p>1 問が短いので割と &#8220;ながら&#8221; でも勉強できて、 2020 年の 4 月 5 月で 73 時間…午前免除試験のために一番頑張っていました。 </p>
<p>ツールは SG の対策でも姉妹サイトを利用していたので、「基本情報技術者試験.com 」を利用しました。やはり隙間時間にスマートフォンでランダムに解けるのが有難かったです。
</p></div>
<p class="blue-grey-text">―― なかなか集中してますね</p>
<div class="comment">
<div class="icon"></div>
<p>そのあとが問題でして&#8230; 。</p>
<p>実は午前免除できた反動が出たのか、そのあと中だるみしてしまい、 1 日 1 時間も勉強するかどうかという時期が 9 月まで続き、アルゴリズム難しい！残りの勉強時間もない！っとなってきた頃に、試験延期のアナウンスが！</p>
<p>ある意味、助けられました。
</p></div>
<h2>試験制度変更で午後は幅広く勉強</h2>
<p class="blue-grey-text">―― 延期がプラスに働くことがあったんですね。では、その午後はどのように計画されたのですか？</p>
<div class="comment">
<div class="icon"></div>
<p><span class="u">選択問題の出題分野が多いわりに、出題される問題数が少ない</span>ので、「この分野は苦手だから捨てる」ことをしても、本番で苦手分野の問題を選択さぜるを得なくなる可能性が高くなる、と考えて、できるだけ幅広い分野を勉強しようと思っていました。
</div>
<p class="blue-grey-text">―― 確かに制度変更で選択分野の攻略は難しくなりましたよね</p>
<div class="comment">
<div class="icon"></div>
<p>とはいえ、確実に苦手な分野が出来てしまうので、どうしようか悩みました。
</p></div>
<p class="blue-grey-text">―― 具体的にはどの分野が苦手だったのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>ソフトウェア設計とアルゴリズムです。</p>
<p>どちらともプログラム要件の文章がどうも読みにくく、読み解くのに時間が掛かっていました。アルゴリズムの対策だけでも時間がかかるので、ソフトウェア設計は過去問題をいくつか解いたところで捨てました。
</p></div>
<p class="blue-grey-text">―― その 2 分野は普段、馴染みのないテーマが出題されるので理解に時間がかかりますよね。<br />
では、その 2 分野を除いて、他の分野はどのように取り組んだのですか？</p>
<div class="comment">
<div class="icon"></div>
<ul>
<li>情報セキュリティは SG で学んだことが活きていて、すんなり理解が出来たので、あまり勉強していません。</li>
<li>ソフトウェア/ハードウェアは問題によって得点にムラがあったので、捨て気味でした。</li>
<li>データベースは SQL のクエリが覚えられず苦労しましたが、嫌いではなかったので頑張って 15 時間ぐらいは勉強しました。</li>
<li>ネットワークはこれも覚えることが多く、最初こそ苦手と感じていましたが、慣れてくると解けるようになってきました。勉強時間としては 8 時間ぐらいです。</li>
<li>マネジメント系 / ストラテジ系は、普段の仕事との関連が強く、簿記も持っていることから、用語を覚えてきちんと読めていれば解けていました。 2 つ合わせて 15 時間ほど勉強しました。</li>
<li>プログラミングは仕事で Excel を使用することと、後半はアルゴリズムの練習にもなるので、表計算を選択しました。ただ関数の表記を理解するのに少し時間がかかったのと、延期で時間があるからと Python に寄り道（笑）したりしてました。だいたい 12 時間ぐらいでしょうか。</li>
</ul>
</div>
<h2>アルゴリズム問題の解答スピードアップ方法は？</h2>
<p class="blue-grey-text">―― 幅広い！さらにPython に寄り道とは（笑）。確かに触れてみたくなりよね。<br />
では、ここからは本丸のアルゴリズムですが、どのように勉強したのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>とにかく文章を読むのに時間が掛かっていたのですが、逆に時間をかければ読めました。このため、試験の制限時間を考えると<span class="bold">スピードアップが課題</span>でした。
</div>
<p class="blue-grey-text">―― なるほど。どのようにスピードアップを図ったのですか？</p>
<div class="comment">
<div class="icon"></div>
<p>単純に読み慣れてないだけと感じたので、新たに「基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ～流れ図と擬似言語～」（リックテレコム刊）を購入して、初歩的な短めのものから 1 つずつこなしていきました。実際の過去問題では長くて、ついつい問われている箇所の周辺だけで解こうとして、結局読み直したりしていたので。</p>
<p>変数が何を指しているかトレースしながら、自分にとってわかりやすい言葉に書き直したり、条件分岐など制御文は、例えば、分岐の場合「 〇〇 が ×× のとき +1 」と日本語にしていました。
</p></div>
<p class="blue-grey-text">―― なるほど、やはり地道ですが、そうやって慣れるのが一番ショートカットになるんですね。そんな勉強の結果、気になるスコアは&#8230;？</p>
<div class="comment">
<div class="icon"></div>
<dl class="inline">
<dt>セキュリティ</dt>
<dd>20 点 ( 20 点満点)</dd>
<dt>アルゴリズム</dt>
<dd>18 点 ( 25 点満点)</dd>
<dt>プログラミング（表計算）</dt>
<dd>18 点 ( 25 点満点）</dd>
<dt>選択 1 ネットワーク</dt>
<dd>10 点 ( 15 点満点)</dd>
<dt>選択 2 経営戦略・企業と法務</dt>
<dd>10 点 ( 15 点満点)</dd>
</ul>
<p>の合計 76 点で、合格できました！
</p></div>
<p class="blue-grey-text">―― おめでとうございます！異業種・異職種から初受験で合格とは素晴らしいですね</p>
<div class="comment">
<div class="icon"></div>
<p>ありがとうございます！</p>
<p>ただ選択分野の 2 問が必須より正解率が低く、残念でした。しっかり勉強した必須分野は、本番でもそれなりに力を出せたので、やはり、それに比例するということなんでしょうね。
</p></div>
<p class="blue-grey-text">―― 制度変更で注力するのは「必須 > 選択」というのがわかりますね。では、最後に受験者の方にメッセージがあればお願いします！</p>
<div class="comment">
<div class="icon"></div>
<p>合格をより確実にしたいのなら、午前免除制度はおすすめです。私も一発で決めたかったのが制度を利用した理由でした。</p>
<p>また試験制度の変更や CBT 方式になってまだ日が浅いですが、受験者数が多い分情報も沢山あると思うので、きちんと調べて、選択問題の選択チェックミスの無いよう、挑んでください。ちなみにココ重要です！</p>
<p>私のように学業も仕事も関連性がない経歴でも合格できたので、しっかり対策すれば合格できます。応援しています！
</p></div>
<p class="blue-grey-text">―― 力強いメッセージありがとうございます。今日はありがとうございました！</p>
<div class="comment">
<div class="icon"></div>
<p>ありがとうございました。
</p></div><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/jukenki/interview_with_tpz/">文系出身で非IT企業の事務職がIT系への転職を目指して基本情報技術者試験を受験してみた</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>基本情報でわかる ホワイトボックステスト</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/white_box_testing/</link>
		<pubDate>Tue, 09 Mar 2021 07:41:51 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[ソフトウェア設計]]></category>
		<category><![CDATA[午前問題と午後問題の違い]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=mastering_tech&#038;p=5187</guid>
		<description><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。 午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/white_box_testing/">基本情報でわかる ホワイトボックステスト</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。</p>
<p>午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸暗記では得られない明確さで、用語を理解できるようになります。</p>
<p>今回のテーマは、 <span class="bold">ホワイトボックステストの「命令網羅」と「分岐網羅」</span> です。</p>
<style>pre{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#292a33;color:#eceff1;font-size:1em;line-height:1.8;margin:1em -7.5%;padding:1em 7.5%}.card-panel pre{margin:1em -24px;padding:1em 24px}dl.inline dd{margin-left:2em;}.underline{border-bottom:.2em solid white}th{text-align:center;}@media screen and (min-width:601px){.responsive-width{width:50%}}</style>
<h2>ホワイトボックステストとは？ 命令網羅とは？ 分岐網羅とは？</h2>
<p>システム全体は、いくつかの要素に分けて開発されます。<span class="u">個々の要素をテストするときには、内部構造に着目したホワイトボックステスト</span>を行い、<span class="u">システム全体をテストするときには、外部仕様に着目したブラックボックステスト</span>を行います。</p>
<ul class="background c-round">
<li>ホワイトボックステストは、内部が見えるテストという意味</li>
<li>ブラックボックステストは、内部が見えないテストという意味</li>
</ul>
<p>いずれの場合も、テストを行うときには、テストの目的に合ったテストデータを使うことが重要です。</p>
<p>&nbsp;</p>
<p>この記事のテーマは、ホワイトボックステストです。</p>
<p>ホワイトボックステストでは、プログラムの設計図であるフローチャートを網羅するテストデータを使います。その際の考え方として、 <span class="bold">命令網羅</span> と <span class="bold">分岐網羅</span> があります。</p>
<dl class="background c-round">
<dt class="bold">命令網羅</dt>
<dd>すべての命令を網羅するテストデータを使います。わかりやすく言うと、フローチャートの中にある図形（処理を表す四角形や、条件を表すひし形など）を網羅する</dd>
<dt class="bold">分岐網羅</dt>
<dd>すべての処理の流れを網羅するテストデータを使います。わかりやすく言うと、フローチャートの中にある線（処理の流れを表す線）を網羅する</dd>
</dl>
<p>シンプルなフローチャートを例にして、命令網羅と分岐網羅の違いを示しましょう。以下のフローチャートでは、 a > 0 という条件が Yes なら a の値を表示します。</p>
<figure><figcaption>テスト対象のフローチャート</figcaption><img width="419" height="441" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_1.jpg" loading="lazy"><br />
</figure>
<p><span class="u">命令網羅では、a > 0 という条件が Yes になるテストデータだけを使います。</span> たとえば、 a に 1 を設定します。それによって、フローチャートの中にあるひし形と四角形の図形を網羅できるからです。</p>
<figure><figcaption>命令網羅 ( a に 1 を設定)</figcaption><img width="417" height="447" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_2.jpg" loading="lazy"><br />
</figure>
<p><span class="u">分岐網羅では、a > 0 という条件が Yes になるテストデータと、 No になるテストデータを使います。</span> たとえば、 a に 1 および -1 を設定します。それによって、フローチャートの中にある処理の流れの線を網羅できるからです。</p>
<p>多くの場合に、命令網羅より分岐網羅の方が、より詳細なテストになるので、より多くのテストデータを使います。</p>
<div class="row">
<div class="col m6 s12">
<figure><figcaption>分岐網羅 ( a に 1 を設定)</figcaption><img width="419" height="448" class="materialboxed z-depth-5" src="../../wp-content/uploads/2021/03/flowchart_3.jpg" loading="lazy"><br />
</figure>
</div>
<div class="col m6 s12">
<figure><figcaption>分岐網羅 ( a に -1 を設定)</figcaption><img width="417" height="441" class="materialboxed z-depth-5" src="../../wp-content/uploads/2021/03/flowchart_4.jpg" loading="lazy"><br />
</figure>
</div>
</div>
<h2>命令網羅に関する午前問題</h2>
<p>それでは、命令網羅と分岐網羅に関する午前問題を見てみましょう。以下は、命令網羅に関する午前問題です。</p>
<div class="card-panel mag_h30">
問 49　平成 28 年度 春期 午前</p>
<p>流れ図で表される部分を命令網羅によってテストするとき，テストケースは少なくとも幾つ用意する必要があるか。</p>
<figure>
<img width="534" height="633" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/q48_flowchart.jpg" loading="lazy"><br />
</figure>
<p>ア　2　　イ　3　　ウ　4　　エ　5
</p></div>
<p>ここでは、命令網羅なので、フローチャートの中にある図形を網羅します。</p>
<p>問題に示されたフローチャートには、 a = 0 という条件（ひし形）と、 b = 0 という条件（ひし形）があり、それぞれに応じた処理（四角形）があります。テストデータとして、たとえば、 a に 0 、 b に 0 を設定すれば、以下の図形を網羅できます。ここで、網羅できてないのは、処理（四角形）が 2 つです。</p>
<figure><figcaption>a に 0 、 b に 0 を設定して網羅できる図形</figcaption><img width="607" height="720" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_5.jpg" loading="lazy"><br />
</figure>
<p>もうひとつ別のテストデータとして、たとえば、 a に 1 、 b に 1 を設定すれば、以下の図形を網羅できます。</p>
<figure><figcaption>a に 1 、 b に 1 を設定して網羅できる図形</figcaption><img width="611" height="724" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_6.jpg" loading="lazy"><br />
</figure>
<p>これで、すべての図形を網羅できたので、テストケース（テストデータの種類）は、 2 であり、選択肢アが正解です。</p>
<p class="mag_tp20 mag_bt40"><span class="chip mag_rt05">解答</span>ア</p>
<h2>分岐網羅に関する午前問題</h2>
<p>以下は、　分岐網羅に関する午前問題です。</p>
<div class="card-panel mag_h30">
問 49　平成 29 年度 春期 午前</p>
<p>流れ図において，判定条件網羅（分岐網羅）を満たす最小のテストケース数は幾つか。</p>
<figure>
<img width="723" height="683" class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/q49_flowchart.jpg" loading="lazy"><br />
</figure>
<p>ア　1　　イ　2　　ウ　3　　エ　4
</p></div>
<p>ここでは、分岐網羅なので、フローチャートの中にある線を網羅します。</p>
<p>問題に示されたフローチャートには、</p>
<div class="background c-round">
X > 1 という条件（ひし形）と、<br />
A ＝ 2 or B ＝ 0 という条件（ひし形）があり、<br />
それぞれが真のときだけ処理（四角形）
</div>
<p>があります。</p>
<p>テストデータとして、たとえば、 X に 2 、 A に 2 、 B に 0 を設定すれば、以下のようにすべての図形を網羅でき、命令網羅になります。ただし、この問題は、分岐網羅のテストケース数を求めるものなので、まだ網羅できていない 2 か所の線を網羅しなければなりません。</p>
<figure><figcaption>X に 2 、 A に 2 、 B に 0 を設定して網羅できる線</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_7.jpg" loading="lazy"><br />
</figure>
<p>もうひとつ別のテストデータとして、たとえば、 X に 0 、 A に 1 、 B に 1 を設定すれば、以下の線を網羅できます。これで、すべての線を網羅できたので、テストケース数は、 2 であり、選択肢イが正解です。</p>
<figure><figcaption>X に 0 、 A に 1 、 B に 1 を設定して網羅できる線</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2021/03/flowchart_8.jpg" loading="lazy"><br />
</figure>
<p class="mag_tp20 mag_bt40"><span class="chip mag_rt05">解答</span>イ</p>
<h2>命令網羅と分岐網羅に関する午後問題</h2>
<p>今度は、命令網羅と分岐網羅に関する午後問題を見てみましょう。以下に問題（問題の一部を抜粋したもの）を示します。すぐ後で、内容を説明しますので、ざっと目を通しておいてください。</p>
<div class="card-panel mag_h30">
問 5　平成 25 年度 秋期 午後（一部抜粋）</p>
<p>　ソフトウェアのテスト設計に関する次の記述を読んで，設問 1 ~ 3 に答えよ。</p>
<div class="mag_lt10">　システムインテグレータの N 社は，開発したプログラムに対するバグの摘出漏れの削減を目的として，テストの方法を見直している。</p>
<p>〔 N 社のテスト方法に関する説明〕<br />
　N 社では主にホワイトボックス法の一つである制御フローテストで，開発したプログラムのテストを実施している。</p>
<p>　制御フローテストは，プログラムを構成する最小単位である命令，経路，判定条件に着目し，テスト計画時に定めたカバレッジ基準を満たすテストケース，テストデータを作成して，開発したプログラムの動作を確認するテスト方法である。</p>
<p>　カバレッジ基準としては，テストにおいて全ての命令文を1回は実行する命令網羅，全ての分岐について分岐後の全ての経路を1回は実行する判定条件網羅 (以下，分岐網羅という) などがある。</p>
<p>　N 社は，カバレッジ基準として分岐網羅を採用している。</p>
<p>〔 N 社が採用している分岐網羅の判定条件に関する説明〕<br />
　分岐の判定条件には，一つの条件だけを評価する単独条件と，二つ以上の単独条件を and 又は or で組み合わせて評価する複数条件がある。単独条件と複数条件の例を次に示す。
</p></div>
<pre>
例
<span class="underline">( a > b )</span> and <span class="underline">( a &lt; c )</span>
<span class="underline"> 単独条件      単独条件</span>
        複数条件
</pre>
<div class="mag_lt10">　ここで，プログラムの実行時に，複数条件については短絡評価を行うものとする。短絡評価とは，複数条件を構成する単独条件を左から右へ向かって順に評価し，複数条件の結果が確定したら，残りの単独条件を評価しない方法である。例えば，二つの単独条件を and で組み合わせた複数条件の場合，一つ目の単独条件を評価した結果が偽ならば，複数条件は二つ目の単独条件に関係なく必ず偽になるので，二つ目の単独条件を評価しない。
</div>
<p><span class="bold">設問 1</span></p>
<div class="mag_lt10">　N 社が採用している分岐網羅の判定条件に関する次の記述中の<span class="blank"></span>に入れる正しい答えを，解答群の中から選べ。</p>
<p>図 1 はテスト対象のプログラムの例，表 1 はこのプログラムのテストケースの例である。 N 社が採用している分岐網羅の判定条件に従って，このテストケースを用いて，図 1 のプログラムをテストしたとき，テストケース (1) では<span class="blank">a</span>結果となり，テストケース (2) では<span class="blank">b</span>結果となる。
</div>
<figure>
<pre>
○プログラム (整数型 : x, 整数型 : a, 整数型 : b, 整数型 : c, 整数型 : d)
■ x > 10
| • func1()
| ▲ (a &lt; 10) or (b &lt; 20)
| | • func2()
| +---
| | • func3()
| ▼
| ▲ (c > 10) and (d > 10)
| | • func4()
| | • exit     /* 繰り返しを抜ける */
| +---
| | • func5()
| ▼
| • func6()
■
</pre><figcaption>図 1　テスト対象のプログラムの例</figcaption></figure>
<table class="mag_h30 responsive-width centered">
<caption>表 1 テストケースの例</caption>
<thead>
<tr>
<th>
<th colspan="5">テストデータ</th>
</th>
</thead>
<tbody>
<tr>
<th>変数</th>
<td>x</td>
<td>a</td>
<td>b</td>
<td>c</td>
<td>d</td>
</tr>
<tr>
<th>テストケース(1)</th>
<td>11</td>
<td>9</td>
<td>19</td>
<td>10</td>
<td>10</td>
</tr>
<tr>
<th>テストケース(2)</th>
<td>11</td>
<td>10</td>
<td>20</td>
<td>11</td>
<td>11</td>
</tr>
</tbody>
</table>
<p>a, bに関する解答群</p>
<p>ア　b &lt; 20 が評価されない<br />
イ　b &lt; 20 と c > 10 が評価されない<br />
ウ　b &lt; 20 と d > 10 が評価されない<br />
エ　c > 10 が評価されない<br />
オ　c > 10 と d > 10 が評価されない<br />
カ　d > 10 が評価されない<br />
キ　全ての単独条件が評価される
</p></div>
<p>問題の内容を説明しましょう。</p>
<p>説明文の中にある<span class="bold">「カバレッジ」とは、「カバー（ cover ）する」つまり「網羅する」</span>ということです。カバレッジの基準として、命令網羅と分岐網羅（判定条件網羅）があることを示してから、ここでは分岐網羅を採用するとしています。さらに、分岐の条件が「条件 A and 条件 B 」や「条件 C or 条件 D 」のように、複数の条件を and や or で組合せたものである場合には、「短絡評価」を行うとしています。</p>
<p>この問題のテーマは、<span class="u">「命令網羅や分岐網羅の違いがわかるか」ではなく、「短絡評価の意味がわかるか」</span>です。さすが午後問題だけあって、午前問題より深い内容になっています。</p>
<p>&nbsp;</p>
<p>短絡評価とは、</p>
<blockquote class="grey-text"><p>複数の条件を左から右に向かって順番に評価し、途中で結果が確定した場合には、残りの条件を評価しない</p></blockquote>
<p>ということです。これを英語でショートカット（ shortcut = 近道）と呼ぶのですが、「近道評価」では威厳がないので、「短絡評価」と訳したのでしょう。<span class="u">「評価」とは、条件が真か偽かをチェックすること</span>です。</p>
<p>&nbsp;</p>
<p>短絡評価では、たとえば、</p>
<dl class="background c-round">
<dt>「条件 A and 条件 B 」</dt>
<dd>条件 A が偽なら、その時点で「条件 A  and 条件 B 」が偽であることが確定するので、条件 B をチェックしません</dd>
<dt>「条件 C or 条件 D 」</dt>
<dd>条件 C が真なら、その時点で「条件 C  or 条件 D 」が真であることが確定するので、条件 D をチェックしません</dd>
</dl>
<p>残りの条件をチェックしないので、結果を得るために近道ができたことになるのです。</p>
<p>&nbsp;</p>
<p>それでは、設問 1 の空欄 a と空欄 b に答えを入れてみましょう（設問 2 と設問 3 は省略します）。</p>
<p>まず、空欄 a です。</p>
<p>テストケース (1) の</p>
<blockquote class="grey-text"><p>x = 11, a = 9, b = 19, c = 10, d = 10</p></blockquote>
<p>というテストデータを使うと、以下の網掛けした条件で結果が確定するので、 b &lt; 20 と d > 10 が評価されません。これが、短絡評価です。したがって、選択肢ウが正解です。</p>
<figure><figcaption>テストケース(1)「 x ＝ 11, a = 9, b = 19, c = 10, d = 10 」の場合</figcaption><pre>
○プログラム (整数型 : x, 整数型 : a, 整数型 : b, 整数型 : c, 整数型 : d)
■ x > 10
| • func1() <span class="pink-text text-accent-1">真</span>
| ▲ <span class="pink accent-1 black-text">(a &lt; 10)</span> or (b &lt; 20)
| | • func2()
| +---
| | • func3()
| ▼         <span class="pink-text text-accent-1">偽</span>
| ▲ <span class="pink accent-1 black-text">(c > 10)</span> and (d > 10)
| | • func4()
| | • exit     /* 繰り返しを抜ける */
| +---
| | • func5()
| ▼
| • func6()
■
</pre>
</figure>
<p>次に、空欄bです。</p>
<p>テストケース (2) の</p>
<blockquote class="grey-text"><p>x = 11, a = 10, b = 20, c = 11, d = 11</p></blockquote>
<p>というテストデータを使うと、以下の網掛けした条件で結果が確定します。このように、短絡評価であっても、すべての条件が評価される場合があります。したがって、選択肢キが正解です。</p>
<figure><figcaption>テストケース(2)「 x ＝ 11, a = 10, b = 20, c = 11, d = 11 」の場合</figcaption><pre>
○プログラム (整数型 : x, 整数型 : a, 整数型 : b, 整数型 : c, 整数型 : d)
■ x > 10
| • func1() <span class="pink-text text-accent-1">偽</span>         <span class="pink-text text-accent-1">偽</span>
| ▲ <span class="pink accent-1 black-text">(a &lt; 10)</span> or <span class="pink accent-1 black-text">(b &lt; 20)</span>
| | • func2()
| +---
| | • func3()
| ▼         <span class="pink-text text-accent-1">真</span>         <span class="pink-text text-accent-1">真</span>
| ▲ <span class="pink accent-1 black-text">(c > 10)</span> and <span class="pink accent-1 black-text">(d > 10)</span>
| | • func4()
| | • exit     /* 繰り返しを抜ける */
| +---
| | • func5()
| ▼
| • func6()
■
</pre>
</figure>
<p>&nbsp;</p>
<p><span class="chip mag_rt05">解答</span>設問 1　a &#8211; ウ, b &#8211; キ</p>
<div class="divider mag_h50"></div>
<p>いかがでしたか？</p>
<p>午前問題と午後問題のセットで、命令網羅と分岐網羅を深く理解できたでしょう。</p>
<p>この連載では、今後も、多くの受験者が苦手としている用語を取り上げて行きます。それでは、またお会いしましょう！</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/white_box_testing/">基本情報でわかる ホワイトボックステスト</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>午後問題の歩き方 ｜ ソフトウェア設計 問題の読み方</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_design_of_questions_at_pm/</link>
		<pubDate>Wed, 04 Jul 2018 01:47:22 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[UML]]></category>
		<category><![CDATA[ソフトウェア設計]]></category>
		<category><![CDATA[午後問題の解説]]></category>

		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=gogo_arukikata&#038;p=273</guid>
		<description><![CDATA[<p>従来のソフトウェア設計の問題は、フローチャートで示されたファイル処理がほとんどでしたが、最近の問題では、フローチャートだけでなく、UML 、E-R 図、CRUD 表、決定表など、様々な図が使われています。 それらの中でも [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_design_of_questions_at_pm/">午後問題の歩き方 ｜ ソフトウェア設計 問題の読み方</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>従来のソフトウェア設計の問題は、フローチャートで示されたファイル処理がほとんどでしたが、最近の問題では、フローチャートだけでなく、<span class="bold">UML 、E-R 図、CRUD 表、決定表など、様々な図が使われています。</span></p>
<p>それらの中でも <span class="bold">UML は、出題頻度が高い</span> ので、重点的に学習しておきましょう。</p>
<p>ここでは、例として、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2009h21_2/2009h21a_fe_pm_qs.pdf#page=21" rel="noopener" target="_blank">平成 21 年度 秋期 午後 問 5「航空券発券システム」</a> を紹介します。</p>
<p>UML のクラス図とシーケンス図が読めれば、簡単に解ける問題です。</p>
<style>dd{margin-left:.5em}.mag_auto{margin:1.5em auto;}</style>
<h2>クラス図の読み方</h2>
<p>UML は、主にオブジェクト指向による分析や設計を図示するために使われます。UML には、10 数種類の図が用意されています。</p>
<p>それらの中で、試験によく出題されるのは、<span class="bold">クラス図</span> と <span class="bold">シーケンス図</span> です。これら 2 つの図が読めれば、ほとんどの問題を解けます。</p>
<div class="card-panel mag_h30">
<dl>
<dt class="bold">クラス図</p>
<dt>
<dd>システムの静的な構造を示す図（クラスの構造と関連）</dd>
<dt class="bold">シーケンス図</dt>
<dd>システムの動的な振る舞いを示す図（オブジェクト間のメッセージパッシング）</dd>
</dl>
</div>
<p>オブジェクト指向は、システムの部品分けにおける指向です。</p>
<p>オブジェクト指向では、データと処理のまとまりを部品にして、それを「クラス」と呼びます。</p>
<p>UML のクラス図は、クラスの構造を示します。</p>
<p>以下は、「時給」と「時間」というデータと、それらを使って「給与を求める。」という処理を行う、「社員」という名前のクラスを示すクラス図です（図の内容に意味はありません。あくまでもサンプルです）。</p>
<p>クラス図は、四角形を 3 つの部分に区切って、上から順に</p>
<ul class="background c-round">
<div class="row valign-wrapper">
<div class="col s6 m3">
<img src="../../wp-content/uploads/2018/07/post9_figure_01.png" loading="lazy" />
</div>
<div class="col s6 m9">
<li>クラス名</li>
<li>データ</li>
<li>処理</li>
</div>
</div>
</ul>
<p>を記述します。</p>
<p>クラスと他のクラスを線で結び、両者に関連があることを示します。関連の多重度は、0 、1 、* などで示します。 * は、多数という意味です。線の横に、役割名を書き添えることもあります。</p>
<p>たとえば、以下は、「社員」クラスが「商品」クラスと関連を持ち、社員クラスには、「販売担当者」という役割名があります。</p>
<p>1 および 0..* という多重度は、1 人の社員が、0 個以上で多数の商品の販売担当者であることを示しています。</p>
<p><img class="mag_h30 materialboxed hoverable z-depth-5" src="../../wp-content/uploads/2018/07/post9_figure_02.png" alt="" loading="lazy" style="margin:auto" /></p>
<h2>シーケンス図の読み方</h2>
<p>システムの起動後に、必要に応じてクラスがメモリにロードされて動作します。これを「クラスの<span class="bold">インスタンス</span>」または<span class="bold">「オブジェクト」</span>と呼びます（これ以降は、オブジェクトと呼びます）。</p>
<p>あるオブジェクトが他のオブジェクトの処理を呼び出し、そのオブジェクトがまた別のオブジェクトにメッセージを送ることで、システムが動作します。これをメッセージパッシングと呼びます。</p>
<p><span class="bold">メッセージを送る とは、オブジェクトが持つ処理を呼び出すこと</span> です。</p>
<p>ある場面において、そこに登場する <span class="bold">オブジェクトと、オブジェクト間のメッセージのやりとりを図示するのが、シーケンス図</span> です。</p>
<p>&nbsp;</p>
<p>以下は、システムのユーザーが、まず、</p>
<ol class="background c-round">
<li>社員クラスのオブジェクトに「給与を求める。」というメッセージを送る</li>
<li>その戻り値として「給与の値」を得る</li>
<li>次に、商品クラスのオブジェクトに「商品単価」を設定する</li>
</ol>
<p>というメッセージを送っている様子を図示したものです（図の内容に意味はありません。あくまでもサンプルです）。</p>
<p>人の形をしたアイコンが、ユーザーを示します。四角形の中に「：クラス名」と書いて下線を付けたものが、そのクラスのオブジェクトを示します。</p>
<figure class="center mag_h30">
<img src="../../wp-content/uploads/2018/07/post9_figure_03.png" alt="" loading="lazy"><br />
</figure>
<p>シーケンス図の上から下に向かって、時間が経過します。</p>
<p>メッセージは、実線の矢印の上にメッセージの内容（メッセージを受けるオブジェクトが持つ処理）を記述して示します。</p>
<p>メッセージに戻り値がある場合は、破線の矢印の上に戻り値の内容を記述して示します。</p>
<p>処理を行っている期間を、細長い四角形で示します。</p>
<div class="divider mag_tp30"></div>
<p><i class="material-icons indigo-text mag_rt05">search</i>タグで関連記事を検索<a class="tag mag_lt10" href="../../tag/uml/">UML</a></p>
<div class="divider mag_bt30"></div>
<h2>クラス図が読めれば設問 1 は楽勝</h2>
<p>それでは、問題を解いてみましょう。</p>
<p>以下は、問題の冒頭に示されたシステムの概要です。細かな説明は気にせずに、「航空券発券システム」であることがわかれば十分です。</p>
<div class="card-panel mag_h30">
問 5　航空券発券システムに関する次の記述を読んで，設問 1 ～ 3 に答えよ。</p>
<p>オブジェクト指向分析/設計を用いて，航空券発券システムの設計を行う。航空券発券業務の分析から，図 1 の分析クラス図を作成した。</p>
<dl>
<dt>【航空券発券業務の内容】</dt>
<dd>
<ol class="pad_lt20">
<li>航空会社の航空券販売担当者(以下，販売担当者という)は，顧客が窓口で申し込んだ内容を基に，航空券発券システムで空席確認及び発券を行う。</li>
<li>顧客が窓口で申し込む内容は，出発日時，出発地及び到着地となる空港名，便名，グレード(ファースト，エコノミー)，人数，席種(窓側，中間，通路側)である。すべての便は直行便である。</li>
<li>販売担当者は 2. で受け付けた申込み内容を確認し，その情報をシステムに入力する。システムはその便の空席状態を確認する。空席があれば 4. に進み，なければ，顧客は申込み内容を変更して再度申込みをする。</li>
<li>販売担当者は顧客が希望しているグレードと席種の座席を確保し，顧客情報を登録して航空券を発券する。</li>
</ol>
</dd>
</dl>
</div>
<p>次に、クラス図と凡例が示されています。この凡例では、クラスが持つデータを「属性」と呼び、処理を「操作」と呼んでいます。</p>
<p>これは、オブジェクト指向に限ったことではありませんが、1 つの事物には複数の呼び名があるものです。このクラス図では、処理（操作）が省略されています。</p>
<p><img class="materialboxed responsive-width mag_h30 hoverable z-depth-5" src="../../wp-content/uploads/2018/07/Q5_figure_1.png" alt="" loading="lazy" /></p>
<p><img class="materialboxed hoverable z-depth-5 mag_auto" data-caption="図 1　分析クラス図" src="../../wp-content/uploads/2018/07/Q5_figure_2.png" alt="" loading="lazy"/></p>
<p>設問 1 は、空欄 a 、空欄 b 、空欄 c に入るクラス名を答えるものです。</p>
<div class="card-panel mag_h30">
設問 1</p>
<p>図 1 中の<span class="blank"></span>に入れる適切なクラス名を，解答群の中から選べ。</p>
<p>解答群<br />
ア　空港　　<br class="hide-on-med-and-up">イ　航空会社　　<br class="hide-on-med-and-up">ウ　航空機<br />
エ　航空券　　<br class="hide-on-med-and-up">オ　航空券発券システム　　<br class="hide-on-med-and-up">カ　便
</div>
<p>空欄 a は、「名称」と「所在地」というデータ（属性）を持ち、他のクラスに対して「出発空港」および「到着空港」という役割名を持つクラスです。</p>
<p>選択肢を見るまでもなく「空港」だとわかります。</p>
<p>もちろん、正解は、選択肢アの「空港」です。</p>
<p>同様に考えて、空欄 b は「発券日時」というデータを持つことから、選択肢エの「航空券」が正解です。</p>
<p>空欄 c は、「便名」「出発日時」「到着日時」というデータを持つことから、選択肢カの「便」が正解です。</p>
<p><span class="bold">クラス図が読めさえすれば、ビックリするほど簡単でしょう！</span></p>
<h2>シーケンス図が読めれば設問 2 も楽勝</h2>
<p>設問 2 は、シーケンス図の穴埋めです。空欄 c には、設問 1 で答えた「便」が入ります。</p>
<div class="card-panel mag_h30">
設問 2</p>
<p>図 2 中の<span class="blank"></span>に入れる正しい答えを，解答群の中から選べ。ただし，図 2 中の<span class="blank">c</span>には設問 1 の正しい答えが入っているものとする。</p>
<p>d ，e に関する解答群<br />
ア　空席を確認する　　<br class="hide-on-med-and-up">イ　航空券を発券する<br />
ウ　顧客情報を登録する　　<br class="hide-on-med-and-up">エ　出発日時を問い合わせる<br />
オ　出発日時を登録する　　<br class="hide-on-med-and-up">カ　発券可否を確認する
</div>
<p>この設問も、<span class="bold">シーケンス図が読めさえすれば、ビックリするほど簡単です。</span></p>
<p><img class="materialboxed responsive-width hoverable mag_h30 z-depth-5" data-caption="図 2　販売担当者とシステムのオブジェクトとのシーケンス図" src="../../wp-content/uploads/2018/07/Q5_figure_3.png" loading="lazy" /></p>
<p>空欄 e のメッセージの戻り値は、「空席状態」です。この戻り値に適したメッセージは、選択肢アの「空席状態を確認する」です。</p>
<p>空欄 d のメッセージの戻り値は、「可否」です。この戻り値に適したメッセージは、選択肢カの「発券可否を確認する」です。</p>
<h2>クラス図とシーケンス図を対応付ければ設問 3 も楽勝</h2>
<p>続いて、新たに追加した「航空券発券画面」クラスおよび「航空券発券管理」クラスのクラス図が示されています。これらのクラス図では、データが省略されていて、処理だけが示されています。</p>
<p>設問 3 は、「航空券発券画面」クラスの処理を答えるものです。「航空券発券管理」クラスの空欄 d には、設問 2 で答えた「発券可否を確認する」が入ります。</p>
<div class="card-panel mag_h30">
　図 1 の分析クラス図に，実装を考慮して次の二つのクラスを追加した後，操作を洗い出すために，図 2 の販売担当者とシステムのオブジェクトとの関係のシーケンス図を作成した。</p>
<dl>
<dt>[追加したクラス]</dt>
<dd>①　航空券発券画面: データを入力する画面クラス</dd>
<dd>②　航空券発券管理: 航空券を発券するための管理クラス</dd>
</dl>
<p><img class="materialboxed hoverable mag_auto z-depth-5" src="../../wp-content/uploads/2018/07/Q5_figure_5.png" loading="lazy" /></p>
<p>f ，g に関する解答群</p>
<p>ア　空席を確認する　　<br class="hide-on-med-and-up">イ　顧客情報を登録する<br />
ウ　出発日時を登録する　　<br class="hide-on-med-and-up">エ　発券可否を確認する<br />
オ　発券可否を表示する　　<br class="hide-on-med-and-up">カ　便の座席数を確認する
</div>
<p>先ほどの図 2 のシーケンス図を見ると、「航空券発券画面」クラスのオブジェクトに送られているメッセージ（「航空券発券画面」クラスが持つ処理）が、</p>
<ul class="background c-round">
<li>出発日時、出発地および到着地となる空港名、便名、グレード、人数、席種を入力し、発券可否を確認する。</li>
<li>発券可否を表示する</li>
<li>座席を確保する。</li>
<li>顧客情報を登録する。</li>
<li>航空券を発券する。</li>
</ul>
<p>の 5 つだとわかります。</p>
<p>&nbsp;</p>
<p>図 3 の「航空券発券画面」クラスのクラス図を見ると、このクラスが持つ処理が</p>
<ul class="background c-round">
<li>出発日時、出発地および到着地となる空港名、便名、グレード、人数、席種を入力し、発券可否を確認する。</li>
<li>座席を確保する。</li>
<li>航空券を発券する。</li>
</ul>
<p>の 3 つ、および空欄 f と空欄 g だとわかります。</p>
<p>したがって、空欄 f と空欄 g に入るのは、「顧客情報を登録する。」と「発券可否を表示する」です。</p>
<p>答えは、順不同で選択肢イと選択肢オです。</p>
<div class="divider mag_h50"></div>
<p>いかがでしたか。とっても簡単だったでしょう。</p>
<p><span class="bold">UML を使った問題の多くは、ここで紹介した例のように、短時間に簡単に解けます。</span></p>
<p>逆に、<span class="bold">従来のフローチャートを使った問題の多くは、時間がかかり難しいものです。</span>ソフトウェア設計は、午後問題の問 2 ～ 4 の選択問題の中の 1 つの分野として出題されます。</p>
<p><a href="../trend_to_questions_at_pm/#_2__4-4"></p>
<div class="card hoverable mag_h50 c-round">
<div class="row valign-wrapper direction-column-on-small">
<div class="col s12 m4 pad_00 flex"><img src="../../wp-content/uploads/2018/05/trend_to_questions_of_pm.jpg" loading="lazy" ></div>
<div class="col s12 m8 black-text pad_15">午後問題の歩き方 | 過去問 10 回分から分析した午後問題の出題傾向 (2019 秋期試験 更新)<br /><span class="bold"> ソフトウェア設計の出題傾向</span></div>
</div>
</div>
<p></a></p>
<p>もしも、試験当日のソフトウェア設計の問題が UML だったら「ラッキー！」と思って、ぜひ選択してください。ただし、事前に UML の過去問題を十分に学習しておいてください。</p>
<p>それでは、またお会いしましょう。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_design_of_questions_at_pm/">午後問題の歩き方 ｜ ソフトウェア設計 問題の読み方</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
