<?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>UML | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/uml/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Wed, 10 Jun 2026 00:47:04 +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>「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/</link>
		<pubDate>Mon, 23 Dec 2019 04:38:14 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[IPアドレス]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[オブジェクト指向]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[論理回路]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3353</guid>
		<description><![CDATA[<p>ここでは、平成 21 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/">「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2009h21_2/2009h21a_fe_am_qs.pdf" rel="noopener" target="_blank">平成 21 年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}table{font-size:.85em;}dd,dl.inline dd{margin-left:2em}@media screen and (min-width:601px){.responsive-width{width:60%}}pre,code{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#eceff1;color:#263238;}pre{padding:1em 1.5em;margin:1.5em 0;}code{padding:.15em .5em;}pre{}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>CUI 環境でディレクトリを指定する方法を知っておこう</h2>
<div class="card-panel mag_h30">
問 19　(平成 21 年度 秋期)</p>
<p>A ， B というディレクトリ名をもつ複数個のディレクトリが図の構造で管理されている。</p>
<figure>
<img class="mag_h30 hoverable materialboxed responsive-width" data-caption="問 19" src="../../wp-content/uploads/2019/12/q19_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<p>カレントディレクトリを &yen;A&yen;B → .. → ..&yen;B → .&yen;A の順に移動させた場合，最終的なカレントディレクトリはどこか。 ここで，ディレクトリの指定方法は次のとおりとする。</p>
<p>〔ディレクトリの指定方法〕</p>
<dl class="inline">
<dt>(1)</dt>
<dd>ディレクトリは， &#8220;ディレクトリ名 &yen;･･･&yen; ディレクトリ名&#8221; のように，経路上の ディレクトリを順に &#8220;&yen;&#8221; で区切って並べた後に &#8220;&yen;&#8221; とディレクトリ名を指定する。 </dd>
<dt>(2)</dt>
<dd>カレントディレクトリは &#8220;.&#8221; で表す。 </dd>
<dt>(3)</dt>
<dd>1階層上のディレクトリは &#8220;..&#8221; で表す。  </dd>
<dt>(4)</dt>
<dd>始まりが &#8220;&yen;&#8221; のときは，左端にルートディレクトリが省略されているものとする。 </dd>
<dt>(5)</dt>
<dd>始まりが &#8220;&yen;&#8221; ， &#8220;.&#8221; ， &#8220;..&#8221;  のいずれでもないときは，左端にカレントディレクトリ配下であることを表す &#8220;.&yen;&#8221; が省略されているものとする。 </dd>
</dl>
<p>ア　&yen;A　　イ　&yen;A&yen;A　　<br class="hide-on-med-and-up">ウ　&yen;A&yen;B&yen;A　　エ　&yen;B&yen;A
</div>
<div class="chip">解説</div>
<p>UNIX 系の OS や Windows などを操作するには、</p>
<ul>
<li>ウインドウのメニューやアイコンを操作するビジュアルな <span class="bold">GUI（ Graphical User Interface ）</span>環境</li>
<li>コマンドをキー入力して操作する <span class="bold">CUI（ Character User Interface ）</span>環境</li>
</ul>
<p>があります。 GUI 環境でフォルダと呼ばれるものは、 CUI 環境で<span class="bold">ディレクトリ</span>と呼ばれます。</p>
<p>この問題では、 CUI 環境におけるカレントディレクトリ（現在の操作対象のディレクトリ）の移動がテーマになっています。 問題の図に示されたディレクトリの構造で、指定された通りにカレントディレクトリを移動してみましょう。</p>
<p>&nbsp;</p>
<p>はじめは、 &yen;A&yen;B がカレントディレクトリです。 先頭の &yen; はルートを示し、それ以降の &yen; はディレクトリの区切りを示します。</p>
<p>したがって、 &yen;A&yen;B は「ルートの下の A 、その下の B 」という意味であり、以下がカレントディレクトリになります（これ以降では、カレントディレクトリを赤色の円で囲んで示します）。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure2-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>次に、 &#8220;..&#8221; に移動します。  &#8220;..&#8221; は、「 1 つ上のディレクトリ」を意味するので、現在位置から 1 つ上に上がって、以下がカレントディレクトリになります。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure3-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>次に、 ..&yen;B に移動します。 これは、「 1 つ上のディレクトリに上がって、その下の B 」という意味であり、以下がカレントディレクトリになります。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure4-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p>最後に、 .&yen;Aに移動します。  &#8220;.&#8221; は、「カレントディレクトリ」を意味するので、現在位置から A に下がって、以下がカレントディレクトリになります。</p>
<p>このディレクトリは、「ルートの下の B 、その下の A 」なので、 &yen;B&yen;A です。 したがって、選択肢エが正解です。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/12/q19_figure5-300x237.jpg" alt="" loading="lazy" /><br />
</figure>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>半加算器と全加算器の違いを知っておこう</h2>
<div class="card-panel mag_h30">
問 25　(平成 21 年度 秋期)</p>
<p>図は全加算器を表す論理回路である。 図中の x に 1 ， y に 0 ， z に 1 を入力したとき，出力となる c(けた上げ数) ， s(和) の値はどれか。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed" style="margin:auto;" src="../../wp-content/uploads/2019/12/q25_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<table class="centered responsive-width mag_h30">
<thead>
<tr>
<th></th>
<th>c</th>
<th>s</th>
</tr>
</thead>
<tbody>
<tr>
<td>ア</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>イ</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>ウ</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>エ</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p>この連載では、かつて<a href="../how2judge_nesessary_unnesessary/#i-5">半加算器の問題（平成 21 年度 春期 問 25 ）</a>を取り上げました。</p>
<p>半加算器は、 XOR 演算と AND 演算を使って、 1 桁の 2 進数を加算するものです。 複数桁の 2 進数を加算するには、半加算器だけでなく、全加算器も必要になります。</p>
<p>&nbsp;</p>
<p>例として、 0101 と 0011 という 4 ビットの 2 進数を加算するとしましょう。 最下位桁は、その桁にある 2 つの数値を足すだけであり、これは半加算器で行えます。</p>
<p>最下位桁より上の桁は、その桁にある 2 つの数値と、下位桁からの桁上がり、全部で 3 つの数値を足すことになります。 これを実現するのが、<span class="bold">全加算器</span>です。</p>
<p>したがって、 4 ビットの 2 進数の加算は、以下のように、 1 つの半加算器と 3 つの全加算器で実現されることになります。</p>
<figure><figcaption>図　4 ビットの加算の例</figcaption><img class="materialboxed z-depth-5" data-caption="図　4 ビットの加算の例" src="../../wp-content/uploads/2020/11/4bit_adder.png" loading="lazy" style="margin: auto;"><br />
</figure>
<p>問題に示された全加算器の図を見てください。</p>
<p>左側の x 、 y 、 z は、加算する 3 つの数字です。 右側の c は計算結果の桁上がり（ carry ）で、 s は sum （和）です。</p>
<p>ここでは、 x = 1 、 y = 0 、 z = 1 とするので、計算結果は、 1 + 0 + 1 = 10 になり、 c が 1 で s が 0 です。 したがって、選択肢ウが正解です。</p>
<p>&nbsp;</p>
<p>全加算器の内部では、半加算器を 2 つ使っています。 以下に全加算器の仕組みを示します。</p>
<ol class="background c-round">
<figure>
<img class="hoverable materialboxed responsive-width pad_05" data-caption="全加算器" src="../../wp-content/uploads/2019/12/q25_figure3.jpg" alt="" loading="lazy" /><br />
</figure>
<li>x と y を半加算器 1 で足す</li>
<li>その結果の s と z を半加算器 2 で足す</li>
<li>その結果の s を全加算器の s とする</li>
<li>半加算器 1 の c と半加算器 2 の c を OR 回路につなぎ、その結果が全加算器の c とする</li>
</ol>
<p><span class="chip mag_tp30">解答</span>　ウ</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>加算器 / 半加算器に関する詳しい記事</p>
<p><a href="../../mastering_tech/digital_logic/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 flex pad_00"><img src="../../wp-content/uploads/2020/11/digital_logic_cover-300x169.png" width="640" height="360" /></div>
<div class="col s9 m10 pad_10 blue-grey-text bold">基本情報でわかる 論理演算 「真理値表を書けば、半加算器と全加算器の仕組みがわかる」</div>
</div>
<p></a></p>
<div class="divider mag_bt40 mag_tp10"></div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>サブネットマスクと CIDR 表記の対応を知っておこう</h2>
<div class="card-panel mag_h30">
問 39　(平成 21 年度 秋期)</p>
<p>IP アドレス 10.1.2.146 ，サブネットマスク 255.255.255.240 のホストが属するサブネットワークはどれか。</p>
<p>ア　10.1.2.132/26　　<br class="hide-on-med-and-up">イ　10.1.2.132/28<br />
ウ　10.1.2.144/26　　<br class="hide-on-med-and-up">エ　10.1.2.144/28
</div>
<div class="chip">解説</div>
<p>サブネットワークとは、 1 つのネットワークを分割したものです。 IPv4 の IP アドレスでは、サブネットマスクおよび CIDR（ Classless Inter-Domain Routing 、サイダー）表記によって、サブネットワークを示すことができます。</p>
<p>この問題は、255.255.255.240 というサブネットマスクが、 CIDR 表記ではどのようになるかを、選択肢から選ぶものです。</p>
<p>&nbsp;</p>
<p>IPv4 の IP アドレスのサイズは、 32 ビットです。 255.255.255.240 というサブネットマスクを 2 進数で表記してみましょう。</p>
<p class="grey-text hide-on-med-and-up mag_h10 small-text"><i class="material-icons light-blue-text mag_rt05">swipe</i>横スクロールできます</p>
<pre>11111111.11111111.11111111.11110000</pre>
<p>32 ビットの上位 28 ビットに 1 が並び、残りの下位 4 ビットに 0 が並んでいます。</p>
<p>このように、サブネットマスクは、上位桁に 1 が並び下位桁に 0 が並んだ形式になっていて、 <span class="bold">1 が並んだ部分がサブネットワーク（ネットワークとサブネットのアドレス）</span>で、 <span class="bold">0 が並んだ部分がホストアドレスである</span>ことを示しています。</p>
<p>&nbsp;</p>
<p>10.1.2.146 という IP アドレスのサブネットワークを求めてみましょう。 10.1.2.146 を 2 進数で表記します。</p>
<pre>00001010.00000001.00000010.10010010</pre>
<p>ここでは、上位 28 ビットがサブネットワークなので、</p>
<pre>00001010.00000001.00000010.1001xxxx</pre>
<p>になります。</p>
<p><code>xxxx</code> の部分は、「設定なし」という意味にしたいので、 0 で埋めて、</p>
<pre>00001010.00000001.00000010.10010000</pre>
<p>とします。</p>
<p>これを 10 進数表記にすると、 10.1.2.144 です。</p>
<p>&nbsp;</p>
<p>サブネットワークを 10.1.2.144 と示しただけでは、上位何桁までがサブネットワークなのかがわかりません。 そこで、 CIDR 表記が使われます。</p>
<p>CIDR 表記は、<span class="bold"> / の後に上位桁の桁数を示したもの</span> です。</p>
<p>ここでは、上位 28 ビットがサブネットワークなので、それを /28 で示します。 したがって、 10.1.2.144/28 となっている選択肢エが正解です。</p>
<p><span class="chip mag_tp30">解答</span>　エ</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/IPアドレス/" class="tag">IP アドレス</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>UML のクラス図とシーケンス図の役割を知っておこう</h2>
<div class="card-panel mag_h30">
問 45　(平成 21 年度 秋期)</p>
<p>UML 2.0 で定義している図のうち，動的な振る舞いを表現するものはどれか。</p>
<p>ア　オブジェクト図　　<br class="hide-on-med-and-up">イ　クラス図<br />
ウ　シーケンス図　　<br class="hide-on-med-and-up">エ　パッケージ図
</div>
<div class="chip">解説</div>
<p>UML 2.0 では、 13 種類の図が定義されていますが、試験によく出るのは、<span class="bold">クラス図</span>と<span class="bold">シーケンス図</span>です。</p>
<p>これらは、オブジェクト指向において最も重要な概念である<span class="bold">「オブジェクト」と「メッセージ」を示すもの</span>です。</p>
<dl class="background c-round">
<dt class="bold">クラス図</dt>
<dd>オブジェクトの<span class="bold">静的な構造</span>（構成要素と関連）</dd>
<dt class="bold">シーケンス図</dt>
<dd>オブジェクトの<span class="bold">動的な振る舞い</span>（メッセージの受け渡し）</dd>
</dl>
<p>この問題は、動的な振る舞いを表現する図を選ぶのですから、選択肢ウのシーケンス図が正解です。</p>
<p>&nbsp;</p>
<p>言葉だけではイメージがつかめないと思いますので、クラス図とシーケンス図の簡単な例をお見せしましょう。 ここでは、ユーザーとコンピュータがジャンケンをするプログラムを作るとします。</p>
<div class="background c-round">
プログラムが、どのような構成要素を持つクラスから構成され、どのように関連しているのかを示すのが、クラス図です。 クラス図では、四角形を 3 つに区切り、上から順にクラス名、属性（クラスが持つデータ）、振る舞い（クラスが持つ処理）を記述します。</p>
<p>ここでは、「ユーザー」「コンピュータ」「審判」という 3 つのクラスがあるとしています。</p>
<figure class="center"><figcaption class="chip mag_h10"><i class="material-icons blue-text mag_rt05">description</i>クラス図の例</figcaption><img class="hoverable materialboxed responsive-width pad_05" data-caption="クラス図の例" src="../../wp-content/uploads/2019/12/q45_figure.jpg" alt="" loading="lazy" /><br />
</figure>
<p>「審判」から「ユーザー」と「コンピュータ」に伸びた破線の矢印は、「審判」が「ユーザー」と「コンピュータ」を使うことを意味します。 クラス図にも振る舞いがありますが、動的ではありません。 そのクラスが、その振る舞いを持っていることを示しているだけなので、静的です。
</p></div>
<div class="background c-round">
プログラムの実行時には、クラスがメモリにロードされます。 これを<span class="bold">「クラスのインスタンス」または「オブジェクト」</span>と呼びます。 シーケンス図は、プログラムの実行時のオブジェクト間のメッセージの受け渡しを示します。</p>
<figure class="center"><figcaption class="chip mag_h10"><i class="material-icons blue-text mag_rt05">description</i>シーケンス図の例</figcaption><img class="hoverable materialboxed responsive-width pad_05" data-caption="シーケンス図の例" src="../../wp-content/uploads/2019/12/q45_figure2.jpg" alt="" loading="lazy" /><br />
</figure>
<ul class="background c-round">
<p class="post-title">シーケン図の見方</p>
<li>四角形で囲まれた「：クラス名」は、そのクラスのインスタンス（オブジェクト）を意味します</li>
<li>そこから下に伸びた破線は、インスタンスの存在期間を示します</li>
<li>図の上から下に時間が経過するとして、実線の矢印でメッセージ（他のオブジェクトの振る舞いの呼び出し）を示します</li>
<li>破線の矢印でメッセージへの応答を示します。 縦長の四角形は、処理を行っている区間を示します</li>
</ul>
<p>このようにして、シーケンス図は、オブジェクトの動的な振る舞いを表現するのです。
</p></div>
<p><span class="chip mag_tp30">解答</span>　ウ</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/UML/" class="tag">UML</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>カプセル化、継承、多態性の意味を知っておこう</h2>
<div class="card-panel mag_h30">
問 46　(平成 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>
<div class="chip">解説</div>
<p>先ほどの問題で示したように、オブジェクト指向の最も基本となる概念は、オブジェクトとメッセージですが、それらの次に重要な概念として、カプセル化、継承、多態性があります。</p>
<p>この問題では、カプセル化がテーマになっていますが、選択肢の中には、継承と多態性に関する説明もあります。</p>
<p>&nbsp;</p>
<p>カプセル化とは、属性と振る舞いをまとめて 1 つのオブジェクトにすることです。 まとめることによって、属性や振る舞いの変更がオブジェクトの内部で対処できるようになり、外部に影響を与えにくくなります。</p>
<p>したがって、カプセル化の効果に該当するのは、選択肢アであり、これが正解です。</p>
<dl class="background c-round">
<dt class="bold">継承とは</dt>
<dd>既存のクラス（親クラス）を改造することなく、必要な機能を付け足して新たなクラス（子クラス）を作成することです。 <br />子クラスは、親クラスの属性と振る舞いを利用できます。 <br />継承の効果に該当するのは、選択肢ウです。 </dd>
<dt class="bold">多態性とは</dt>
<dd>同じ構文の振る舞い（同じメッセージで呼び出せる振る舞い）を、複数のオブジェクトが持つことです。 <br />これによって、オブジェクトを利用する側は、同じメッセージで、様々なオブジェクトを利用できます。 <br />多態性の効果に該当するのは、選択肢エです。 </dd>
</dl>
<p><span class="chip mag_tp30">解答</span>　ア</p>
<div class="divider mag_h30"></div>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/オブジェクト指向/" class="tag">オブジェクト指向</a></p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h21_autumn/">「厳選5題」過去問と解説｜平成21年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成25年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_autumn/</link>
		<pubDate>Mon, 05 Aug 2019 02:32:42 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[OSI参照モデル]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[トランザクション]]></category>
		<category><![CDATA[ポート番号]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=1901</guid>
		<description><![CDATA[<p>ここでは、平成 25 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_autumn/">「厳選5題」過去問と解説 | 平成25年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2013h25_2/2013h25a_fe_am_qs.pdf" rel="noopener" target="_blank">平成 25 年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}table{font-size:.85em;}dl.inline dd{margin-left:2em;}table.border td{border:.1em solid #9e9e9e}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>見かけは難しそうですが、実はとっても簡単な問題です</h2>
<div class="card-panel mag_h30">
問 31</p>
<p>&#8220;商品&#8221; 表に対して，更新 SQL 文を実行するトランザクションが，デッドロックの発生によって異常終了した。 異常終了後の &#8220;商品&#8221; 表はどれか。 ここで， &#8220;商品&#8221; 表に対する他のトランザクションは，参照は行うが更新はしないものとする。</p>
<table class="bordered mag_h30 responsive-width">
<caption>商品</caption>
<thead>
<tr>
<th>商品コード</th>
<th>商品名</th>
<th>販売単価</th>
</tr>
</thead>
<tbody>
<tr>
<td>A010</td>
<td>AAA</td>
<td>2,500</td>
</tr>
<tr>
<td>B020</td>
<td>BBB</td>
<td>1,000</td>
</tr>
<tr>
<td>C030</td>
<td>CCC</td>
<td>4,500</td>
</tr>
</tbody>
</table>
<p>〔更新 SQL 文〕</p>
<p><code class="language-sql">DELETE FROM 商品 WHERE 商品コード = 'B020'</code></p>
<div class="row">
<div class="col m6 s12">
ア</p>
<table class="bordered mag_h30">
<thead>
<tr>
<th>商品コード</th>
<th>商品名</th>
<th>販売単価</th>
</tr>
</thead>
<tbody>
<tr>
<td>A010</td>
<td>AAA</td>
<td>2,500</td>
</tr>
<tr>
<td>B020</td>
<td>NULL</td>
<td>1,000</td>
</tr>
<tr>
<td>C030</td>
<td>CCC</td>
<td>4,500</td>
</tr>
</tbody>
</table>
</div>
<div class="col m6 s12">
イ</p>
<table class="bordered mag_h30">
<thead>
<tr>
<th>商品コード</th>
<th>商品名</th>
<th>販売単価</th>
</tr>
</thead>
<tbody>
<tr>
<td>A010</td>
<td>AAA</td>
<td>2,500</td>
</tr>
<tr>
<td>B020</td>
<td>BBB</td>
<td>1,000</td>
</tr>
<tr>
<td>C030</td>
<td>CCC</td>
<td>4,500</td>
</tr>
</tbody>
</table>
</div>
<div class="col m6 s12">
ウ</p>
<table class="bordered mag_h30">
<thead>
<tr>
<th>商品コード</th>
<th>商品名</th>
<th>販売単価</th>
</tr>
</thead>
<tbody>
<tr>
<td>A010</td>
<td>AAA</td>
<td>2,500</td>
</tr>
<tr>
<td>C030</td>
<td>CCC</td>
<td>4,500</td>
</tr>
</tbody>
</table>
</div>
<div class="col m6 s12">
エ</p>
<table class="bordered mag_h30">
<thead>
<tr>
<th>商品コード</th>
<th>商品名</th>
<th>販売単価</th>
</tr>
</thead>
<tbody>
<tr>
<td>B020</td>
<td>BBB</td>
<td>1,000</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="chip">解説</div>
<p>この問題は、データベースに関する用語、頻出の SELECT 命令ではない SQL 文、データが入った表、などが並んでいて、一見して難しそうですが、実は、とっても簡単です。</p>
<p>「デッドロック」という言葉の意味がわかっていれば、正解を選ぶことができます。</p>
<p>&nbsp;</p>
<p><span class="bold">デッドロックとは、複数のトランザクション（データベースに対する1つの処理のまとまり）が、お互いに相手の処理が終わるのを待っていて、先に進めない状態</span> です。</p>
<p>DBMS（ Data Base Management System ）は、デッドロックを検出すると、トランザクションを <span class="bold">ロールバック</span>（トランザクションを異常終了させて、データベースの内容を元に戻すこと）します。</p>
<p>したがって、異常終了後の商品表は、問題文に示された商品表と同じ内容の選択肢イです。</p>
<p>「ええっ！ たったそれだけの問題なのですか？」と思われるかもしれませんが、そうなのです。 おそらく出題者は、デッドロックという用語をテーマにした問題を作りたかっただけなのでしょう。</p>
<p>具体例を示したので、このように大げさな問題になってしまったのです。</p>
<p>このような問題に遭遇したときは、難しそうな見かけに惑わされずに、「必ずできる！」という自信を持って解いてください。</p>
<p><span class="chip mag_tp30">解答</span> イ</p>
<p class="grey-text mag_tp30"><i class="material-icons mag_rt05">search</i>タグで関連記事を見る <a href="../../tag/データベース" class="tag">データベース</a> <a href="../../tag/トランザクション" class="tag">トランザクション</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>共有ロックと専有ロックの違いを知っておこう</h2>
<div class="card-panel mag_h30">
問 32　(平成 25 年度 秋期)</p>
<p>表は，トランザクション 1 ~ 3 が資源 A 〜 C にかけるロックの種別を表す。 また，資源へのロックはトランザクションの開始と同時にかけられる。 トランザクション 1 ~ 3 のうち二つのトランザクションをほぼ同時に開始した場合の動きについて，適切な記述はどれか。 ここで，表中の &#8220;－&#8221; はロックなし，&#8221;S&#8221; は共有ロック， &#8220;X&#8221; は専有ロックを示す。</p>
<table class="bordered centered responsive-width">
<thead>
<tr>
<th width="40%">トランザクション ＼ 資源</th>
<th width="20%">A</th>
<th width="20%">B</th>
<th width="20%">C</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>S</td>
<td>－</td>
<td>X</td>
</tr>
<tr>
<td>2</td>
<td>S</td>
<td>X</td>
<td>－</td>
</tr>
<tr>
<td>3</td>
<td>X</td>
<td>S</td>
<td>－</td>
</tr>
</tbody>
</table>
<dl class="inline">
<dt>ア</dt>
<dd>トランザクション 1 の後にトランザクション 3 を開始したとき，トランザクション 3 の資源待ちはない。 </dd>
<dt>イ</dt>
<dd>トランザクション 2 の後にトランザクション 1 を開始したとき，トランザクション 1 の資源待ちはない。 </dd>
<dt>ウ</dt>
<dd>トランザクション 2 の後にトランザクション 3 を開始したとき，トランザクション 3 の資源待ちはない。 </dd>
<dt>エ</dt>
<dd>トランザクション 3 の後にトランザクション 1 を開始したとき，トランザクション 1 の資源待ちはない。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>もう 1 つ、トランザクションに関する問題を紹介しましょう。</p>
<p>トランザクションは、データを処理するときに、そのデータが他のトランザクションから使われないように <span class="bold">ロック</span> をかけます。</p>
<p>他のトランザクションは、ロックが解除されるのを待つことになります。 複数のトランザクションが、お互いに相手のロックが解除されるのを待っていて、先に進めない状態になってしまうことが、先ほどの厳選問題 1 のテーマになっていたデッドロックです。</p>
<p>&nbsp;</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>トランザクションを擬人化すれば、</p>
<dl>
<dt>共有ロック</dt>
<dd>「俺がデータを見ているから、他の奴らは更新するなよ。 ただし、見るだけならいいぞ」というイメージ</dd>
<dt>専有ロック</dt>
<dd>「俺がデータを更新しているから、他の奴らは更新するなよ。 見るのもだめだぞ」というイメージ</dd>
</dl>
<p>つまり、共有ロックがかけられたデータには、他のトランザクションから共有ロックをかけられますが、専有ロックはかけられません。 専有ロックがかけられたデータには、他のトランザクションから共有ロックも専有ロックもかけられません。</p>
<p>&nbsp;</p>
<p>それでは、問題を見てみましょう。</p>
<p>ここでは、ロックをかける A 、B 、C というデータのことを <span class="bold">「資源」</span> と呼んでいます。</p>
<p>トランザクションは 3 つあり、</p>
<ol class="background c-round">
<li>トランザクション 1 は「 A に共有ロックをかける → C に専有ロックをかける」</li>
<li>トランザクション 2 は「 A に共有ロックをかける → B に専有ロックをかける」</li>
<li>トランザクション 3 は「 A に専有ロックをかける → B に共有ロックをかける」</li>
</ol>
<p>という順序で、それぞれ処理を行います。</p>
<p>これによって、どのようなロックの資源待ち（資源のロックの解除待ち）が生じるかを、選択肢から選ぶという問題です。</p>
<p>&nbsp;</p>
<dl class="mag_h30">
<dt>ア</dt>
<dd class="mag_h10">
トランザクション 1 の後にトランザクション 3 を開始すると、先にトランザクション 1 が資源 A に共有ロックをかけ、その後でトランザクション 3 が資源 A に専有ロックをかけようとしますが、既に共有ロックがかけられているので資源待ちになります。</p>
<p>したがって、アの記述は、不適切です。 </dd>
<dt>イ</dt>
<dd class="mag_h10">
トランザクション 2 の後にトランザクション 1 を開始すると、先にトランザクション 2 が資源 A に共有ロックをかけ、その後でトランザクション 1 が資源 A に共有ロックをかけます。</p>
<p>どちらも共有ロックなので資源待ちになりません。</p>
<p>次に、トランザクション 2 は誰も使っていない資源 B に専有ロックをかけ、トランザクション 1 が誰も使っていない資源 C に専有ロックをかけます。 どちらも、資源待ちになりません。</p>
<p>したがって、イの記述は、適切です。 </dd>
<dt>ウ</dt>
<dd class="mag_h10">
トランザクション 2 の後にトランザクション 3 を開始すると、先にトランザクション 2 が資源 A に共有ロックをかけ、その後でトランザクション 3 が資源 A に専有ロックをかけようとしますが、既に共有ロックがかけられているので資源待ちになります。</p>
<p>したがって、ウの記述は、不適切です。 </dd>
<dt>エ</dt>
<dd class="mag_h10">
トランザクション 3 の後にトランザクション 1 を開始すると、先にトランザクション 3 が資源 A に専有ロックをかけ、その後でトランザクション 1 が資源 A に共有ロックをかけようとしますが、既に専有ロックがかけられているので資源待ちになります。</p>
<p>したがって、エの記述は、不適切です。 </dd>
</dl>
<p><span class="chip mag_tp30">解答</span> イ</p>
<p class="grey-text mag_tp30"><i class="material-icons mag_rt05">search</i>タグで関連記事を見る <a href="../../tag/データベース" class="tag">データベース</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>略語の問題を練習するときには、2 つのポイントがあります</h2>
<div class="card-panel mag_h30">
問 36　(平成 25 年度 秋期)</p>
<p>電子メールで，静止画，動画，音声などの様々な情報を送ることができる仕組みはどれか。</p>
<p>ア　FTP　　イ　MIME　　ウ　POP　　エ　TELNET
</p></div>
<div class="chip">解説</div>
<p>選択肢に略語が並んでいますね。 はじめに答えを言ってしまいますが、正解はエの MIME （マイム）です。</p>
<p>これまでの連載でも何度か説明してきましたが、この手の問題を練習するときのポイントは、2 つあります。</p>
<p>&nbsp;</p>
<p>1 つは、 <span class="bold">正解となっている選択肢の略語だけを覚える</span> ことです。</p>
<p>試験では、同じ問題が何度も再利用されています。 この問題も、再利用されるときには、そのまま再利用されるはずなので、ここでは、 MIME という略語だけを覚えてください。</p>
<p>他の略語も気になるかもしれませんが、それらは、それらが正解となっている問題に遭遇したときに覚えてください。 これが、効率的な学習方法です。</p>
<p>&nbsp;</p>
<p>もう 1 つは、 <span class="bold">略語の意味を調べて覚える</span> ことです。</p>
<p>もしも、MIME を「 MIME とは、電子メールで、静止画、動画、音声など様々な情報を送ることができる仕組みである」と覚えるとしたら、MIME という言葉と説明がつながらないでしょう。</p>
<p>「 MIME って何だっけ？」<br />
「電子メールで、静止画、動画、音声など様々な情報を送ることができる仕組みって何だっけ？」</p>
<p>ということになってしまいます。</p>
<p>&nbsp;</p>
<p>MIME は、<span class="bold">Multipurpose Internet Mail Extension</span> という意味です。</p>
<p>直訳すると、「多目的なインターネットメールの拡張」です。</p>
<p>そもそも <span class="bold">インターネットの電子メールというものは、文字しか送れない</span> ようになっています。</p>
<p>静止画、動画、音声などの様々な情報を送ることができるのは、それらのデータを文字に変換してメールに添付しているからです。 その仕組みを MIME と呼びます。</p>
<p>「 MIME は、Multipurpose Internet Mail Extension という意味だ」と覚えれば、「電子メールで、静止画、動画、音声など様々な情報を送ることができる仕組みはどれか」という問題を見て、すぐに MIME を選べるはずです。</p>
<p><span class="chip mag_tp30">解答</span> イ</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>MIME タイプに関する詳しい記事</p>
<p><a href="../../mastering_tech/mime_type/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 flex pad_00"><img src="../../wp-content/uploads/2020/12/mime_cover.jpg" loading="lazy" /></div>
<div class="col s9 m10 pad_10 blue-grey-text bold">基本情報でわかる MIME タイプ 「電子メールの仕組みを知れば役割がわかる」</div>
</div>
<p></a></p>
<div class="divider mag_bt40 mag_tp10"></div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>ネットワークの階層とは、どういうことかを知ってください</h2>
<div class="card-panel mag_h30">
問 37　(平成 25 年度 秋期)</p>
<p>1 個の TCP パケットをイーサネットに送出したとき，イーサネットフレームに含まれる宛先情報の，送出順序はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>宛先 IP アドレス，宛先 MAC アドレス，宛先ポート番号</dd>
<dt>イ</dt>
<dd>宛先 IP アドレス，宛先ポート番号，宛先 MAC アドレス</dd>
<dt>ウ</dt>
<dd>宛先 MAC アドレス， 宛先 IP アドレス，宛先ポート番号</dd>
<dt>エ</dt>
<dd>宛先 MAC アドレス，宛先ポート番号，宛先 IP アドレス</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>この問題は、とってもよい問題だと思います。</p>
<p>ネットワークが階層化されているとは、どういうことかを、イメージできるようになるからです。</p>
<p>基本情報技術者試験のテーマである OSI 基本参照モデル では、ネットワークを7つの階層に分けていますが、実際に普及しているプロトコルは、</p>
<p>「アプリケーションプロトコル」<br />
「 TCP 」<br />
「 IP 」<br />
「イーサネット」</p>
<p>の 4 つの階層に分けることができます。</p>
<table class="bordered centered responsive-width">
<thead>
<tr>
<th>OSI 基本参照モデル</th>
<th>実際に普及しているプロトコル</th>
</tr>
</thead>
<tbody>
<tr>
<td>アプリケーション層</td>
<td rowspan="3">HTTP や SMTP などの<br />アプリケーションプロトコル</td>
</tr>
<tr>
<td>プレゼンテーション層</td>
</tr>
<tr>
<td>セッション層</td>
</tr>
<tr>
<td>トランスポート層</td>
<td>TCP</td>
</tr>
<tr>
<td>ネットワーク層</td>
<td>IP</td>
</tr>
<tr>
<td>データリンク層</td>
<td rowspan="2">イーサネット</td>
</tr>
<tr>
<td>物理層</td>
</tr>
</tbody>
</table>
<p>ユーザーが Web ブラウザやメールソフトなどのアプリケーションから送信したデータは、4 つの階層を上から下にたどって送出されます。</p>
<p>その際に、それぞれのプロトコルに応じた宛先と差出人などの情報が付加されるのです。</p>
<p>この情報は、データの先頭に付加されるので <span class="bold">「ヘッダ」</span> と呼ばれます。</p>
<p>&nbsp;</p>
<p>アプリケーションで作成されたデータは、 TCP → IP → イーサネット という階層を順番にたどります。</p>
<dl class="background c-round">
<dt class="bold">TCP の階層</dt>
<dd>TCP における宛先と差出人の識別番号である「 TCP ポート番号」が付加されます。 </dd>
<dt class="bold">IP の階層</dt>
<dd>IP における宛先と差出人の識別番号である「 IP アドレス」が付加されます。 </dd>
<dt class="bold">イーサネットの階層</dt>
<dd>イーサネットにおける宛先と差出人の識別番号である「 MAC アドレス」が付加されます。</dd>
</dl>
<p>この状態になったデータを「イーサネットフレーム」と呼びます。</p>
<p>大雑把にいうと、イーサネットフレームの内容は、先頭から順に MAC アドレス、IP アドレス、 TCP ポート番号、アプリケーション のデータなので、ウが正解です。</p>
<p>&nbsp;</p>
<p><i class="material-icons">arrow_back</i> イーサネットフレームを送出する方向</p>
<table class="border">
<tr>
<td>MAC アドレス</td>
<td>IP アドレス</td>
<td>TCP ポート番号</td>
<td>アプリケーションのデータ</td>
</tr>
</table>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<p class="grey-text mag_tp30"><i class="material-icons mag_rt05">search</i>タグで関連記事を見る <a href="../../tag/OSI参照モデル" class="tag">OSI 参照モデル</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>クラスの関連付けの表記方法をまとめて覚えよう</h2>
<div class="card-panel mag_h30">
問 46　(平成 25 年度 秋期)</p>
<p>UML のクラス図のうち，汎化の関係を示したものはどれか。</p>
<div class="flex wrap">
<div class="col m6 s12">
ア<br />
<img class="materialboxed hoverable" src="../../wp-content/uploads/2019/08/h25_a_q46_option_a.png" loading="lazy">
</div>
<div class="col m6 s12">
イ<br />
<img class="materialboxed hoverable" src="../../wp-content/uploads/2019/08/h25_a_q46_option_i.png" loading="lazy">
</div>
<div class="col m6 s12">
ウ<br />
<img class="materialboxed hoverable" src="../../wp-content/uploads/2019/08/h25_a_q46_option_u.png" loading="lazy">
</div>
<div class="col m6 s12">
エ<br />
<img class="materialboxed hoverable" src="../../wp-content/uploads/2019/08/h25_a_q46_option_e.png" loading="lazy">
</div>
</div>
</div>
<div class="chip">解説</div>
<p>この問題を選んだのは、UML のクラス図におけるクラスの関連付けの表記方法をまとめて覚えられるからです。</p>
<p>クラスは、現実世界のオブジェクト（物や生き物）を定型化したものです。</p>
<p>たとえば、会社に勤務している「佐藤さん」「鈴木さん」「田中さん」というオブジェクトは、「社員クラス」に定型化できます。</p>
<p>クラスは、</p>
<p>「クラス名」<br />
「属性（データ）」<br />
「操作（データを使った処理）」</p>
<p>を持ちます。 それらを 3 段重ねの四角形で示したものが、<span class="bold">クラス図</span> です。</p>
<p>この問題では、クラス名だけが示されています。</p>
<figure><figcaption>クラス図の表記方法</figcaption><img class="materialboxed z-depth-5" style="margin:auto;" src="../../wp-content/uploads/2019/08/h25_a_q46_figure2.png" loading="lazy"><br />
</figure>
<p>オブジェクト指向では、システム全体を、クラスを単位として <span class="bold">モジュール化（部品化）</span> します。</p>
<div class="row background c-round">
<div class="col m4 s12">ア <img class="materialboxed" src="../../wp-content/uploads/2019/08/h25_a_q46_option_a.png" " loading="lazy"></div>
<div class="col m8 s12">複数のクラスから構成されたシステムでは、クラスとクラスが関連を持ちます。 単に何らかの「関連」があるということは、クラスと他のクラスを直線で結んで示します。 これは、選択肢アです。</p>
<p>関連の多重度（ 1 対 1 、1 対多、多対多）を書き添えることもでき、1 を「 1 」で表し、多を「 * 」で表します。 選択肢アの多重度は、1 対 1 です。</p>
<p>このクラス図は、「自動車」と「車検証」は、1 対 1 の関連を持っていることを表しています。</p></div>
</div>
<div class="row background c-round">
<div class="col m4 s12">エ <img class="materialboxed" src="../../wp-content/uploads/2019/08/h25_a_q46_option_e.png" " loading="lazy"></div>
<div class="col m8 s12">あるクラスが他のクラスを使っていることを <span class="bold">「依存」</span> と呼びます。</p>
<p>依存は、使う側から使われる側に向かって、破線の矢印を引くことで示します。</p>
<p>選択肢エのクラス図は、「ドライバ」が「自動車」に依存している（ドライバが自動車を使う）ことを表しています。</p></div>
</div>
<div class="row background c-round">
<div class="col m4 s12">ウ <img class="materialboxed" src="../../wp-content/uploads/2019/08/h25_a_q46_option_u.png" " loading="lazy"></div>
<div class="col m8 s12">あるクラスが他のクラスを持っていることを <span class="bold">「集約」</span> と呼びます。</p>
<p>集約は、持つ側にひし形を書き添えた線を引くことで示します。</p>
<p>必須のもの（必ず持っているもの）の場合は、ひし形の内部を黒く塗りつぶし、オプション（持ってなくても構わないもの）の場合は、塗りつぶしません。</p>
<p>選択肢ウのクラス図は、「自動車」が「タイヤ」と「エンジン」を集約している（自動車がタイヤとエンジンを持っている）こと、そしてタイヤとエンジンが必須のものであることを表しています。</p>
<p>さらに、どちらも多重度が 1 対多であることを表しています。</p></div>
</div>
<div class="row background c-round">
<div class="col m4 s12">イ <img class="materialboxed" src="../../wp-content/uploads/2019/08/h25_a_q46_option_i.png" loading="lazy"></div>
<div class="col m8 s12">あるクラスの上位概念のクラスを定義することを <span class="bold">「汎化」</span> と呼びます。</p>
<p>汎化は、上位概念のクラスに向かって、三角形を書き添えた線を引くことで示します。</p>
<p>選択肢イのクラス図は、「スポーツカー」の上位概念として「自動車」を定義することを表しています。</p></div>
</div>
<p>この問題は、汎化を表しているクラス図を選ぶものなので、選択肢イが正解です。</p>
<p>&nbsp;</p>
<p>汎化は、少しわかりにくいと思いますので、補足説明をしておきましょう。</p>
<p>問題に示された「スポーツカー」の上位概念が「自動車」であるという例より、複数のクラスの共通点を抽出したクラスを定義するという例の方が、わかりやすいでしょう。</p>
<p>以下のクラス図は、「スポーツカー」と「トラック」の共通点を抽出したクラスとして「自動車」を定義しています。 スポーツカーとトラックは、どちらも自動車だからです。 この場合、自動車を「スーパークラス（上位クラス）」、スポーツカーとトラックを「サブクラス（下位クラス）」と呼びます。</p>
<figure>
<img class="materialboxed" style="margin:auto;" src="../../wp-content/uploads/2019/08/h25_a_q46_figure.png" loading="lazy"><br />
</figure>
<p><span class="chip mag_tp30">解答</span> イ</p>
<p class="grey-text mag_tp30"><i class="material-icons mag_rt05">search</i>タグで関連記事を見る <a href="../../tag/uml" class="tag">UML</a></p>
<p>&nbsp;</p>
<div class="divider mag_h50"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h25_autumn/">「厳選5題」過去問と解説 | 平成25年度 秋期 の過去問やるならこれをやれ</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>
