...

基礎理論

by user

on
Category: Documents
17

views

Report

Comments

Transcript

基礎理論
第
1
章
基礎理論
CONTENTS
1-1 計算の基礎理論
1-2 プログラムの基礎理論
1-3 待ち行列理論
SECTION
第1章 基礎理論
1-1
計算の基礎理論
論理
式や文章で真(正しい)であるか偽(誤っている)であるかが、判断できるものを命
題といいます。例えば「1+1=3である」は命題ですが、「リンゴはおいしい」は客観
的な判断ができないので、命題ではありません。真の命題に1を、偽の命題に0を対応
させます。この0と1で体系づけられる代数構造をブール代数といいます。
いくつかの命題が与えられたとき、それらを組み合わせて複合命題を作ることがで
きます。二つの命題P、Qの基本的な複合命題を表すための論理演算子、論理式およ
び真理値表は次のようになります。
論理積 AND(かつ、∧、・で表すこともあります)
論理和 OR(または、∨、+で表すこともあります)
否定 NOT(でない、 ̄で表すこともあります)
排他的論理和 EOR(XOR。⊕で表すこともあります)
否定論理積 NAND(ANDの否定です)
否定論理和 NOR(ORの否定です)
P
Q
P AND Q
P OR Q
P XOR Q
P NAND Q
P NOR Q
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
図 主な論理式の真理値表
論理式の基本公式として次のものがあります。
べき等則 P+P=P、P・P=P
交換則 P+Q=Q+P、P・Q=Q・P
分配則 P・
(Q+R)=(P・Q)+(P・R)
P+(Q・R)=(P+Q)
・
(P+R)
4
1-1 計算の基礎理論
第 章
結合則 (P+Q)+R=P+(Q+R)
1
(P・Q)
・R=P・
(Q・R)
基礎理論
吸収則 P+P・R=P、P・
(P+Q)=P
復元則 P=P
ド・モルガンの法則 P・Q=P+Q、P+Q=P・Q
例題 論理式(1)
論理式X=A・B+A・B+A・Bと同じ結果が得られる論理回路はどれか。ここで、
は論理積(AND)
、
は論理和(OR)
、
は否定論理積(NAND)、
は否定論理和(NOR)を表す。
ア
イ
ウ
エ
(応用情報技術者試験 平成21年度春期午前 問24)
解説
論理は式ではなく、このような論理回路として出題されることもあります。この種
の問題は面倒ですが、丁寧に真理値表を書いていくことで、必ず解くことができます。
問題文で与えられた論理式について真理値表を書くと次のようになります。
A
B
A
A・B
B
A・B
A・B
A・B+
A・B+
A・B
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
この論理式はNANDと等価です。したがって、正解はイです。
第1章 基礎理論
例題 論理式(2)
XとYの否定論理積X NAND Yは、NOT(X AND Y)として定義される。X OR Yを
NANDだけを使って表した論理式はどれか。
ア ((X NAND Y) NAND X) NAND Y
イ (X NAND X) NAND (Y NAND Y)
ウ (X NAND Y) NAND (X NAND Y)
エ X NAND (Y NAND (X NAND Y))
(ソフトウェア開発技術者試験 平成20年度春期午前 問5)
解説
論理式に関する問題のもう一つの解き方として、公式を使って式を変形していく方
法があります。真理値表やベン図を書くよりも短時間で解けますが、公式をきちんと
覚えて自在に使えなければ、逆に解くことが難しくなります。どちらでも、自分に合っ
た方法を見つけましょう。
X NAND Y=X AND Y=X OR Y … ド・モルガンの法則
また
X NAND X=X AND X=X OR X=X … べき等則
このことから
(X NAND X) NAND (Y NAND Y)=X NAND Y=X OR Y=X OR Y
以上より、正解はイです。
例題 ハミング符号
ハミング符号とは、データに冗長ビットを付加して、1ビットの誤りを訂正できるよ
うにしたものである。ここでは、X1、X2、X3、X4の4ビットから成るデータに、3ビッ
トの冗長ビットP3、P2、P1を付加したハミング符号X1X2X3P3X4P2P1を考える。付
加ビットP1、P2、P3は、それぞれ
X1⊕X3⊕X4⊕P1=0
X1⊕X2⊕X4⊕P2=0
1-1 計算の基礎理論
第 章
X1⊕X2⊕X3⊕P3=0
1
基礎理論
となるように決める。ここで、⊕は排他的論理和を表す。
ハミング符号1110011には1ビットの誤りが存在する。誤りビットを訂正したハ
ミング符号はどれか。
ア 0110011 イ 1010011 ウ 1100011 エ 1110111
(ソフトウェア開発技術者試験 平成20年度春期午前 問7)
解説
ハミング符号に関する問題です。排他的論理和は「0と0、1と1」のように同じ符号
なら0、「0と1、1と0」のように違う符号なら1となる論理演算です。このことから、
与えられた式において、1の個数が偶数個なら結果は0、奇数個なら結果は1になるは
ずです。
1 1 1 0 0 1 1
X1
X2
X3
P3
X4
P2
P1
に当てはめてみると
X1⊕X3⊕X4⊕P1=1⊕1⊕0⊕1=1
X1⊕X2⊕X4⊕P2=1⊕1⊕0⊕1=1
X1⊕X2⊕X3⊕P3=1⊕1⊕1⊕0=1
となるはずです。ところが、問題で与えられた式はすべて結果が0になっています。こ
れは、どれかのビットが誤りのためです。三つの式、すべてに共通して入っているビッ
トはX1なので、これが誤り、つまり0であったということになります。これを訂正した、
正しいハミング符号は0110011です。正解はアです。
順列、組合せ
有限個の対象からいくつかを取り出しそれを順に並べたものを順列といいます。一
方、取り出した順序を問題にしないで、それらの組合せだけに注目するとき、その組
を組合せといいます。例えば3個の数字{1,2,3}から、2個の数字を取り出した順列
は、
(1,2)
、
(2,1)
、
(1,3)、(3,1)、(2,3)、(3,2)
第1章 基礎理論
の6種類あります。しかし,組み合わせは、順序を問題にしないので、
(1,2)
、
(1,3)
、
(2,3)
の3種類になります。
相異なる n 個のものから r 個をとる順列の総数は次のようになります。
n ×( n −1)×・・・×( n − r +1)
最初の1個を取り出す場合は n 通り、次の1個は( n −1)通り、次は( n −2)通り、こ
れを r 個分乗算することで求められます。この式を n Pr で表現します。
n
n!
Pr =
(n − r)!
組合せに関しては、順列を基にして考えます。相異なる n 個のものから r 個をとる
順列の総数は上記のようになりますが、組合せとしては同じものが含まれています。
同じ組合せのものは、 r 個の順列の数だけ含まれていますので、組合せの数は、 n Pr を
r
Pr = r!で割ってやればよいことになります。これを n C r で表現します。
n
n!
Cr =
(n − r)! r !
例題 組合せ(1)
図の線上を、点Pから点Rを通って、点Qに至る最短経路は何通りあるか。
Q
R
P
ア 16 イ 24 ウ 32 エ 60
(ソフトウェア開発技術者試験 平成20年度秋期午前 問5)
1-1 計算の基礎理論
第 章
解説
1
基礎理論
PからRに至る最短経路が何通りあるかを考えます。PからRに行くまでには、横に
行く経路を2区画分、縦に行く経路を2区画分通らなければなりません。横に行く経路
は6本あります。しかし6本のうち2本を選べばいいというわけにはいきません。下図
で、aとbの経路を通ってもRには着かないからです。a、b、cとx、y、zから1本ずつ
という方法でもうまくいきません。aとyでは最短経路にはならないからです。a、b、
cから1本選んだら、そのすぐ右か、それよりも上にある経路でなければ最短経路とは
いえません。cならばx、y、zが、bならばx、yが、aならばxだけが最短経路になります。
P
a
x
b
y
c
z
R
したがって、3+2+1=6通りの最短経路があります。具体的には次のような経路
です。
R
P
R
P
R
P
R
P
R
P
R
P
同様にして、RからQに至る最短経路が何通りあるかを考えます。RからQに行くま
でには、縦の区画を2区画分、横の区画を3区画分通ります。PからRの経路と同様に
最短経路を考えれば、4+3+2+1=10通りあります。
したがって、PからRを通ってQに至る経路は6×10=60通りあります。正解はエ
です。
例題 組合せ(2)
長さ n の文字列 c1c 2… c n の中に、部分文字列は全部で幾つあるかを表す式はどれか。
ここで、空文字列(長さ0の文字列)と c1c 2… c n 自身も部分文字列とみなす。例えば、
長さ3の文字列 c1c 2 c 3の中に、部分文字列は c 1、c 2、c 3、c 1c 2、c 2 c 3、c 1c 2 c 3及
び空文字列の7個がある。
第1章 基礎理論
n
ア 2 −1 イ n(n +1)/ 2+1 ウ n(n −1)+1 エ n!+1
(応用情報技術者試験 平成21年度春期午前 問4)
解説
長さ n の文字列 c1c 2…c n の中の部分文字列のうち、文字数0のものは1個(空文字列
の み )あ り ま す。 文 字 数1の も の は n 個 で す。 文 字 数2の も の は c1 c2、 c2 c3、 …、
c n −1c n ですから n −1個です。同様に文字数3のものは n −2個、文字数 n のものは元
の文字列と同じで1個です。したがって、部分文字列の総数は、
1+ n +( n −1)+( n −2)+…+1
です。最初の1を別に考えれば、等差数列の和ですから、
1+ n( n +1)/ 2
となります。正解はイです。
確率
確率とは、ある事象がおこる可能性を0から1までの数値で表した可能性の尺度です。
任意の事象Eの起こる確率は、0以上1以下です。確率Pを式で書くと次のようになり
ます。
0≦P(E)≦1
そして、全事象Sが起こる確率は1です。
P(S)=1
共通な事象を含まない事象AとB(排反事象といいます)について、そのどちらかが
起こる確率は、事象Aの起こる確率と事象Bの起こる確率の和になります。
P(A∪B)=P(A)+P(B)
サイコロを振って、1か4の目が出る確率はいくらでしょう。1/6+1/6=2/6です。
事象Aが起こったという条件のもとで事象Bの起こる確率を、AのもとでのBの条件
付き確率といい、P{B|A}で表します。ただし、P(A)≠0とします。
P{B|A}=P(A∩B)/ P(A)
10
1-1 計算の基礎理論
う。事象A∩Bは、一方が表で他方が裏である確率ですから、P(A∩B)=2/4です。
(A)=3/4です。したがって、求める条件付確率は2/4÷3/4=2/3です。1/2ではない
のか、と納得がいかないかもしれません。起こりうるすべての事象は、表表、表裏、
裏表、裏裏です。一方が表ですから裏裏はありません。だから、求める確率は2/3と
考えてもいいでしょう。
例題 確率(1)
Random(n)は、0以上n未満の整数を一様な確率で返す関数である。整数型の変数
A、B及びCに対して次の一連の手続を実行したとき、Cの値が0になる確率はどれか。
A=Random(10)
B=Random(10)
C=A−B
ア 1
1
1
1
イ ウ エ 100
20
10
5
(ソフトウェア開発技術者試験 平成20年度秋期午前 問4)
解説
Cの値が0になるためには、AとBが同じ値でなければなりません。関数Random
(10)は0〜9の値を一様な確率で返しますから、例えば変数Aの値が0になる確率は
1/10です。同様にBの値が0になる確率も1/10です。したがって、AもBも0になる
確率は、
(1/10)×(1/10)=1/100
です。AもBも1になる確率も、AもBも2になる確率も同様に1/100ですから、AとB
が等しくなる確率は、
1/100+1/100+…+1/100=1/100×10=1/10
となります。正解はウです。
11
1
基礎理論
事象Aは、「片方が表である」つまり、「少なくとも一方が表である事象」ですから、P
第 章
2枚の100円玉を投げて、一方が表でした。もう一方は裏である確率はいくらでしょ
第1章 基礎理論
例題 確率(2)
袋の中に重心の偏った二つのサイコロA、Bが入っている。Aは1の目が3/10の確率
で、Bは1の目が3/5の確率で出る。
袋の中からサイコロを一つ取り出し、振ってみたら1の目が出たという条件の下で、
取り出したサイコロがAである条件付確率は幾らか。
ア 3
1
1
2
イ ウ エ 10
3
2
3
(ソフトウェア開発技術者試験 平成18年度秋期午前 問2)
解説
取り出したサイコロがAで、1の目が出る確率は1/2×3/10=3/20です。取り出
したサイコロがBで、1の目が出る確率は1/2×3/5=3/10です。したがって、1の
目が出る確率は3/20+3/10=9/20となります。この条件の下で、サイコロがAで
ある条件付き確率は、3/20÷9/20=1/3です。正解はイです。
12
SECTION
プログラムの基礎理論
第 章
1-2
1-2 プログラムの基礎理論
1
基礎理論
オートマトン
コンピュータはその昔、自動計算機とも呼ばれていました。自動的に動く機械が
あって、その機械はいくつかの状態を持っています。その状態間を遷移するルールと
状態が遷移したときに何をするのかを決めてあるのがオートマトンです。
自動販売機を例にとると次のような二つの状態があります。
代金待ち
状態
商品選択
状態
代金待ち状態のとき、お金を投入すると商品選択状態になります。商品選択状態の
とき、商品ボタンが押されると、商品とおつりを出して代金待ち状態に戻ります。
お金投入
代金待ち
状態
商品選択
状態
ボタン押下
オートマトンはアルファベットのような言語で書かれた文を受理するための機械で
す。オートマトンには、大きく「初期状態」、「中間状態」、「最終状態」の三つの状態
があります。文を先頭から末尾まで解釈した結果として最終状態になったなら「文を
受理した」と言います。
13
第1章 基礎理論
例題 オートマトン
次に示す有限オートマトンが受理する入力列はどれか。ここで、S1は初期状態を、
S3は受理状態を表している。
0
S1
1
1
1
S2
0
S3
0
ア 1011 イ 1100 ウ 1101 エ 1110
(応用情報技術者試験 平成21年度春期午前 問3)
解説
選択肢の入力列を1文字ずつ解釈し、最終的にS3になるかどうかを調べます。
ア S1 → S2 → S2 → S1 → S2 受理されません
1
0
1
1
イ S1 → S2 → S1 → S3 → S2 受理されません
1
1
0
0
ウ S1 → S2 → S1 → S3 → S3 受理されます
1
1
0
1
エ S1 → S2 → S1 → S2 → S2 受理されません
1
1
1
0
以上より、正解はウです。
例題 状態遷移表
次の表は、入力記号の集合が{0,1}
、状態集合が{a,b,c,d}である有限オート
マトンの状態遷移表である。長さ3以上の任意のビット列を左(上位ビット)から順に
読み込んで最後が110で終わっているものを受理するには、どの状態を受理状態とす
ればよいか。
14
1-2 プログラムの基礎理論
a
a
b
b
c
d
c
a
b
d
c
d
1
基礎理論
1
第 章
0
ア a イ b ウ c エ d
(ソフトウェア開発技術者試験 平成18年度秋期午前 問7)
解説
状態遷移表は、例えば状態aで0を処理すると状態aに、1を処理すると状態bに遷移
するという意味を表わしています。状態遷移図に書き換えてみます。
0
0
a
0
c
0
1
1
b
1
1
d
最初にどの状態にあっても、110で状態cになることが分かります。したがって正解
はウです。
構文や数式の表現
(1)BNF
BNF(Backus-Naur Form)記法は、バッカス記法とも呼ばれ、プログラム言語の構
文表記法として、よく用いられています。バッカス記法での表記方法は次のようなも
のです。
記号
意味
<>
括弧<>の中の文字列は一つのメタ変数である
::=
左辺が右辺のように定義されている
|
または(or)
その他の記号
その記号そのもの
15
第1章 基礎理論
例えば
<数字>::=0|1|2|3|4|5|6|7|8|9
と書けば、数字は0または1または…9で定義されている、という意味になります。
(2)正規表現
正規表現とは、いくつかの文字列を一つの形式で表現する方法です。正規表現で用
いる主な記号の意味は次のとおりです。
記号
意味
.
任意の1文字を示す。
+
直前の文字またはパターンが1個以上あることを表す。
*
直前の文字またはパターンが0個以上あることを表す。
?
直前の文字またはパターンが0個または1個あることを表す。
[m-n]
m〜nまでの連続した文字の中から任意の1文字の選択を示す。
例題 正規表現
次の有限オートマトンが受理する文全体を正規表現で表したものはどれか。
1
0
受理
状態
初期
状態
1
0, 1
0
正規表現に用いるメタ記号は、次のとおりとする。
r1|r2:正規表現 r1又は正規表現 r2
(r)*:正規表現 r の0回以上の繰返し
ア (010)*1 イ (01|101)* ウ (0|10)*1 エ (1|01)*
(ソフトウェア開発技術者試験 平成19年度秋期午前 問8)
解説
それぞれの選択肢が受理されるか、また、それが文全体を表すかどうかを調べてみ
16
1-2 プログラムの基礎理論
第 章
ます。
1
後1で受理状態に遷移します。しかし、101で受理状態になる遷移を表せません。
イ 01または101で受理状態に遷移します。その後01ならば受理状態ですが、101
は受理状態ではありません。図中のいちばん右の状態になります。したがって、
受理状態にならないこともあります。
ウ 0または10で初期状態に遷移します。したがって、これを何回か繰り返しても初
期状態です。その後1で受理状態に遷移します。受理状態になる文はすべてこれに
より表現されます。
エ 1または01で受理状態に遷移します。その後01ならば受理状態ですが、1は受理
状態ではありません。図中のいちばん右の状態になります。したがって、受理状
態にならないこともあります。
以上のことから、受理する文全体を表しているのはウです。
例題 BNF
次のBNFにおいて非終端記号<A>から生成される文字列はどれか。
<R0> ::=0|3|6|9
<R1> ::=1|4|7
<R2> ::=2|5|8
<A> ::=<R0>|<A> <R0>|<B> <R2>|<C> <R1>
<B> ::=<R1>|<A> <R1>|<B> <R0>|<C> <R2>
<C> ::=<R2>|<A> <R2>|<B> <R1>|<C> <R0>
ア 123 イ 124 ウ 127 エ 128
(ソフトウェア開発技術者試験 平成20年度秋期午前 問7)
解説
各選択肢が<A>から生成されるか、つまり<A>になるかどうか、調べてみます。後
方から調べる方が分かりやすいでしょう。
ア 最後尾の「3」は<R0>として定義されていますから、「123」が<A>であるために
は「12」が<A>でなければなりません。
「2」は<R2>として定義されていますか
17
基礎理論
ア (010)で初期状態に戻るので、これを何回か繰り返しても、初期状態です。その
第1章 基礎理論
ら、「12」が<A>で あ る た め に は「1」が<B>で な け れ ば な り ま せ ん。「1」は
<R1>として定義されており、<R1>は<B>として定義されています。したがっ
て、この文字列は<A>から生成されます。
イ 最後尾の「4」は<R1>として定義されていますから、「124」が<A>であるために
は「12」が<C>でなければなりません。選択肢アで「12」は<A>であることが分
かっていますから、これは間違いです。
ウ 最 後尾の「7」は<R1>として定義されていますから、選択肢イと同じ理由で、こ
れは間違いです。
エ 最後尾の「8」は<R2>として定義されていますから、「128」が<A>であるために
は「12」が<B>でなければなりません。選択肢アで「12」は<A>であることが分
かっているので、これは間違いです。
以上より、正解はアです。
逆ポーランド表記法
逆ポーランド表記法とは演算子(+−*/など)を被演算子(数値や変数)の後ろに
書くことで数式を表現する記法です。「1+2」という式を逆ポーランド表記法で書く
と、「12+」となります。逆ポーランド表記法の数式は、計算アルゴリズムを単純化
しやすいので計算処理が扱いやすくなります。また、逆ポーランド表記法だとカッコ
をなくすことができます。例えば「(1+2)*3」という式は「12+3*」と表現でき、実
際に計算するときは最初の12+を計算して、次にその結果3を当てはめ33*とすれば
計算できるため、カッコを使う必要がありません。
逆ポーランド表記法の計算アルゴリズムは、スタックを使うものが一般的です。計
算結果を次々にスタックに積んでおけば、そのまま取り出すだけで直前の計算結果が
得られるからです。
式を文字列の形で与え、数値を1桁(0〜9)、演算子を+−*/のみとすれば、
・文字列から1字取り出してそれが数値ならスタックに積む。
・演算子なら、スタックから二つ値をpopして演算する。
・上記処理を文字列の終わりまで繰り返す。
この操作の後、最後にスタックに残った数値が答となります。
18
1-2 プログラムの基礎理論
第 章
1
例題 逆ポーランド表記法
タックを用意し、式の項や演算子を左から右に順に入力し処理する。スタックが図の
状態のとき、入力が演算子となった。このときに行われる演算はどれか。ここで、演
算は中置表記法で記述するものとする。
ア A 演算子 B イ B 演算子 A
ウ C 演算子 D エ D 演算子 C
(ソフトウェア開発技術者試験 平成20年度秋期午前 問8)
解説
そもそもスタックとはLIFO(Last In First Out)の処理を行うデータ構造ですから、
D、Cの順にしかpopできません。また逆ポーランド表記法での計算時は、先にpopし
た値が演算子の右になります。したがって、
「C 演算子 D」となります。正解はウで
す。
19
基礎理論
逆ポーランド表記法で表された式を評価する場合、途中の結果を格納するためのス
SECTION
第1章 基礎理論
1-3
待ち行列理論
待ち行列理論の概要
待ち行列とは、コンビニのレジを待つ客の列のように、窓口でサービスを受けるた
めに待っている行列のことです。情報処理の世界でも、サーバの処理を待つトランザ
クションなど、さまざまな待ち行列が発生します。
情報処理技術者試験で出題される待ち行列は、M/M/1モデルがほとんどです。こ
れは、客の到着がランダム(ポツポツと来るイメージ)、サービス時間もランダム(3
分だったり5分だったりというイメージ)、窓口数が一つの待ち行列を表します。
待ち行列の計算を行うには、次の二つの指標が必要です。
・平均到着率(λ)
:単位時間当たりに到着する客の数です。
・平均サービス率(μ)
:単位時間当たりにサービスできる客の数です。平均サービス
時間(Es)の逆数です。
M/M/1モデルでの待ち時間を算出する式は次のとおりです。
λ
=λ・ES
μ
窓口利用率=(ρ)
ρ=
平均待ち時間(Wq)
W q=
平均応答時間(W)
W = W q + ES=
ρ
ES
1−ρ
1
ES
1−ρ
平均応答時間は、ネットワークシステムなどで、端末から欲しいデータなどを要求
してから回答が返ってくるまでの時間です。待ち時間と自分自身のサービス時間の和
です。例えば、あるラーメン屋さんでは1時間に平均8人のお客さんが来ます。ラーメ
ンを作る時間は平均して6分です。調理人は1人しかいません。このとき、どのくらい
待たされるかを考えてみます。まず単位を揃えるために、サービス時間は6分=1/10
時間としておきます。
ρ=8×1/10=8/10=0.8
Wq=0.8 /
(1−0.8)×1/10=0.4
20
1-3 待ち行列理論
間ですから、実際にラーメンができあがるのは、さらに6分後の30分後ということに
第 章
0.4時間ですから24分です。これは自分が注文したラーメンを作り始めるまでの時
1
基礎理論
なります。意外に待たされます。
例題 待ち行列理論(1)
通信回線を使用したデータ伝送システムにM/M/1の待ち行列モデルを適用すると、
平均回線待ち時間、平均伝送時間、回線利用率の関係は、次の式で表すことができる。
平均回線待ち時間=平均伝送時間×
回線利用率
1−回線利用率
回線利用率が0%から徐々に上がっていく場合、平均回線待ち時間が平均伝送時間よ
りも最初に長くなるのは、回線利用率が何%を超えたときか。
ア 40 イ 50 ウ 60 エ 70
(応用情報技術者試験 平成21年度春期午前 問1)
解説
平均伝送時間を E 、回線利用率をρとして考えます。
E ×ρ/(1−ρ)>E ……平均回線待ち時間 > 平均伝送時間
この式を変形します。
E ×(ρ/(1−ρ)−1)>0
E ×(2ρ—1)/(1−ρ)>0
ここで、 E は平均伝送時間なので、 E >0です。また利用率ρは0≦ρ≦1です。し
たがって左辺が正であるためには、2ρ−1>0でなければなりません。したがって、
ρ>0.5となります。正解はイです。
例題 待ち行列理論(2)
M/M/1の待ち行列モデルを用いて、二つのネットワークを接続するゲートウェイの
1方向のデータ転送を考える。1秒間にゲートウェイ内で転送処理できるパケット数が
150、ゲートウェイに到着するパケット数が120とすると、各パケットのゲートウェ
21
第1章 基礎理論
イ内平均待ち時間(処理時間を含まない)は約何ミリ秒か。
ア 8.3 イ 21.3 ウ 26.7 エ 33.3
(ソフトウェア開発技術者試験 平成20年度秋期午前 問30)
解説
1秒間に処理できるパケット数が150ということから、μ=150です。またサービ
ス時間はその逆数ですから E =1/150(秒)です。ゲートウェイに到着するパケット数
が120ということから、λ=120です。したがって窓口利用率ρと平均待ち時間Wq
は、
ρ=120 / 150=0.8
Wq=0.8 /(1−0.8)×1/150×1000=26.66…→26.7(ミリ秒)
となります。正解はウです。
例題 待ち行列理論(3)
複数台のPCで1台のプリンタを共有するシステムがある。このプリンタに対する平
均印刷要求回数が毎分1回のとき、このプリンタの平均印刷時間(印刷を要求してから
終了するまでの時間)は何秒か。ここで、プリンタは、平均が15秒の指数分布に従う
時間で印刷要求を処理するものとし、プリンタに対する印刷要求はポアソン分布に従
うものとする。
ア 15 イ 18 ウ 20 エ 30
(ソフトウェア開発技術者試験 平成19年度秋期午前 問31)
解説
M/M/1モデルでの公式に当てはめてみましょう。平均要求回数が毎分1回ですか
ら、平均到着率λを秒単位にすると1/60です。
窓口利用率 :ρ=λ・E=1/60×15=1/4=0.25
平均待ち時間:Wq=ρ/(1−ρ)× E =0.25 /(1−0.25)×15=5(秒)
平均応答時間:W=Wq+ E =5+15=20(秒)
以上より、正解はウです。
22
第
11
章
午後問題の解法
CONTENTS
11-1 午後問題の解き方の概要
11-2 テーマ1 問題文から解答を導くタイプ
11-3 テーマ2 知識を必要とするタイプ
11-4 テ
ーマ3 技術知識を必要とするタイプ
(ネットワーク/セキュリティ)
11-5 テーマ4 プロジェクトマネジメント
11-6 テーマ5 データベース
11-7 テーマ6 アルゴリズム
SECTION
第11章 午後問題の解法
11-1
午後問題の解き方の概要
午後問題の学習方法
はじめに、午後問題の学習方法をご紹介します。午後問題に解答するために必要な
ものは、次の三つです。
①問題のテーマに対する技術的な知識
午後問題でも、午前問題と同様に知識を問われる設問が出題されます。午前問題と
同等か、それよりもやや深い知識を必要とします。
②問題文を読み取り考える力
午後問題では、前提となる知識がなくても問題文中で説明が十分に行われているも
のや、問題文で示された状況に対して解答を考えるタイプの設問も出題されます。限
られたページ数の問題文に、解答に必要な情報が含まれています。それを、限られた
時間で読み取る力を必要とします。
③設問の趣旨を理解し解答を作成する力
午後問題の解答で得点するには、設問に対して適切な解答を作成する必要がありま
す。設問で問われていることに対して、どのような解答を作成すればよいかを理解し、
解答文を作成する力です。
多くの読者の方は、限られた時間の中で受験勉強を行うことになるかと思います。
そこで、これらを短期間で効率よく鍛えるには、過去問題の演習を通してトレーニン
グを積むことです。
技術的な知識を増やす
午前問題の演習を通して、試験範囲の技術知識を充実させましょう。午前問題の演
習を行う際に、解答群を隠して解答するなど、自分の知識の定着度合いを高める工夫
を織り込みましょう。また、午前問題で分からないことを調べるときに、午前問題に
は出題されていなくても関係する用語などは一緒に学び、少しずつ知識の幅を広げま
しょう。午後問題のためだけに、技術知識を増やすように学習しても、範囲が広く覚
えきれない(覚えていられない)ことでしょう。しかし、午前の問題と合わせて学習
していけば、午前問題で定着した知識と関連性を持って覚えることができます。
316
11-1 午後問題の解き方の概要
問題文を読み取り考える力
問題文をただ読み流すのではなく、設問に解答するためのケーススタディとして、
分析するような視点で読みましょう。具体的には、午後問題の演習を行い、解答例や
解説を確認した後に、もう一度同じ問題文を読み返すのです。そのとき、解答を導き
出すためには、問題文のどの部分に着目しなければならなかったのかを振り返ります。
「設問で、○○を問われていたので、◎◎について書かれている箇所を重点的に読む
べきだったのに、設問のことを意識せずに△△を読んで答えてしまった」など、自分
きる、あるいは、次にはできるようにするためには、どうすればよかったかをきっち
りと振り返り、次の演習に活かすようにしましょう。この繰り返しが、問題文を読み
設問を常に確認する
常に設問を確認しながら解答を作成しましょう。試験では設問に答えます。した
がって、設問を理解していなければ解答は作成できません。出題者が何を答えさせた
いのか、受験者のどのような知識や技能を測ろうとしているかを想像し、「何」を「ど
のように」答えなければいけないかを、常に意識して解答を作成しましょう。
午後問題のタイプ別攻略法
午後問題は、大きく三つのタイプに分けることができます。
①問題文から解答を導き出す問題
これは、特定の知識や技術を必要としないタイプの問題です。問題文に、解答に必
要な情報がすべて含まれています。問題文に技法ややり方の説明などが書かれている
問題は、考えれば分かるタイプの問題の可能性が高いです。
②知識を必要とする問題
これは、解答にあたって知識がないと解答できないタイプの問題です。TCP/IPに
関する基礎的な知識や、セキュリティの用語の知識などがこのタイプです。
③技術を必要とする問題
これは、解答にあたって知識に加えて技術がないと解答できないタイプの問題です。
アルゴリズムでのトレース技術や、データベース設計(正規化、E-R図作成)、SQLな
どがこのタイプです。
317
11
午後問題の解法
取る力を鍛えてくれます。
第 章
ができたこと、できていなかったことをしっかりと確認しましょう。そして、次もで
第11章 午後問題の解法
もちろん、ある問題のすべての設問が、同じタイプではない場合もあります。設問
1は知識が必要ですが、設問2は考えれば分かる設問という場合もあります。次の表に
平成21年度春期の問題分類を示します。
表 平成21年度春期の午後問題の分類
タイプ
問題番号
①問題文から解答を導き出す
問3 SWOT分析、問4 災害復旧計画、問7 組込みシステム開発(一
部②)、問10 営業支援システム開発プロジェクトの管理(一部②)
②知識を必要とする
問1 マーケティング戦略の立案、問5 DHCPの利用、問9 ファイア
ウォールの設定、問11 SLA
③技術を必要とする
問2 チェイン法、問6 注文管理システムの設計と実装(データベー
ス)、問8通信用Webサイトの設計、問12 DB監査ツールを利用したシ
ステム監査
それでは、それぞれのタイプ別の解き方について、実際の問題を例に解説していき
ましょう。技術を必要とする問題については、午後問題解法のためのテクニックも併
せて解説いたします。
318
SECTION
11-2
テーマ1
11-2 テーマ1 問題文から解答を導くタイプ
問題文から解答を導くタイプ
問題文から解答を導き出すタイプの解き方
実際に過去問題の演習を通して、問題文から解答を導き出すトレーニングを行いま
しょう。問題は、
「ソフトウェア開発技術者試験 平成20年度秋期午後Ⅰ 問4」のソ
問題文から解答を導き出すタイプの問題では、落ち着いて問題文を読み解く必要が
あります。マーカーペンなどを駆使して、問題文や設問の構造やポイントをビジュア
この問題は、共通フレーム2007のソフトウェア開発プロセスに基づいて出題されて
います。しかし、共通フレームのプロセスは問題文に紹介されており、ソフトウェア
開発でのさまざまな作業と共通フレーム2007のプロセス名を結びつけることで解答を
作成できます。共通フレーム2007に関する知識がなくても、プロセス名からその内容
は十分想定できます。
まず、一度自分で解いてみましょう。そのときに、解答作成の根拠が問題文のどこ
にあるかを明確にしながら解答しましょう。次に、解説を読みながらもう一度問題を
解いてください。ここでは、解答作成のトレーニングを行いたいので、一度問いた問
題を何度も解くことは意味があります。答えが分かったから終わりにするのではな
く、どのようなアプローチで解答を求めるかを意識しながら問題を解いてみましょう。
319
11
午後問題の解法
ル的に分かりやすくしてみましょう。
第 章
フトウェア開発のプロセスアセスメントに関する問題です。
第11章 午後問題の解法
プロセスアセスメント
問 題
ソフトウェア開発のプロセスアセスメントに関する次の記述を読んで、設問
1〜3に答えよ。
ソフトウェア開発会社であるD社では、ソフトウェアの品質及び開発生産性
の継続的な向上を経営方針としている。完成したソフトウェアを評価するだけ
では、品質及び開発生産性の継続的な向上には限界があると考え、ソフトウェ
ア開発プロセスの現状を把握し、改善することにした。そこで、D社では、ソ
フトウェア開発のプロセスアセスメント(以下、アセスメントという)を行った。
ソフトウェア開発プロセスのモデルは“共通フレーム2007”を用いる。
“共通フ
レーム2007”のプロセスを表1に、その中の開発プロセスのアクティビティを表
2に、管理プロセスのアクティビティを表3に示す。
表2 開発プロセスのアクティビティ
番号
1
2
3
4
5
6
7
8
9
10
11
12
13
プロセス
取得プロセス
供給プロセス
契約の変更管理プロセス
企画プロセス
要件定義プロセス
開発プロセス
運用プロセス
保守プロセス
文書化プロセス
構成管理プロセス
品質保証プロセス
検証プロセス
妥当性確認プロセス
共同レビュープロセス
監査プロセス
問題解決プロセス
ユーザビリティプロセス
管理プロセス
環境整備プロセス
改善プロセス
人的資源プロセス
資産管理プロセス
再利用プログラム管理プロセス
ドメイン技術プロセス
システム監査プロセス
修整プロセス
主ライフサイクルプロセス 支援ライフサイクルプロセス
組織に関する
ライフサイクルプロセス
320
表1 “共通フレーム2007”のプロセス
番号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
アクティビティ
プロセス開始の準備
システム要件定義
システム方式設計
ソフトウェア要件定義
ソフトウェア方式設計
ソフトウェア詳細設計
ソフトウェアコード作成及びテスト
ソフトウェア結合
ソフトウェア適格性確認テスト
システム結合
システム適格性確認テスト
ソフトウェア導入
ソフトウェア受入れ支援
表3 管理プロセスのアクティビティ
番号
1
2
3
4
5
6
アクティビティ
開始及び管理対象の定義
計画立案
測定
実行及び管理
レビュー及び評価
終了
11-2 テーマ1 問題文から解答を導くタイプ
〔アセスメントの目的〕
a
こと及び
b
が、アセスメントが世の中から注目されるようになったので、
アセスメントの本来の目的は、
ことである
c
ため
だけにアセスメントを実施する企業も出てきている。
a
D社は、経営方針に沿って、
ためにアセスメントを実施した。
〔アセスメントの実施〕
アセスメントのインタビュー実施時に、D社のソフトウェア開発の担当者の1
第 章
人であるE君がインタビューを受けたときのやり取りの一部を次に示す。イン
タビューする人はN氏である。
N氏:あなたの仕事と、それをどのように行っているかを教えてください。
E君:プログラムのコーディングからユニットテストまでを行っています。
①プログラムは、詳細設計書を見ながら、自分で過去に作成したことが
11
ムがない場合は、先輩などに相談し、流用できるプログラムを見つけます。
自分で作成したプログラムを、先輩やチームリーダに見てもらうことは、
特にありません。
ユニットテストを行う前に、テスト項目のチェックリストを作成します。
チェックリストは、プログラムと同じように、過去のものを流用してい
ます。
N氏:作成するプログラムとその作成期限は、どのように決めていますか。
E君:毎回、作成対象のプログラムと作成期限を指示され、詳細設計書を渡さ
れます。通常は、設計書の枚数を見て、作成期限を調整してもらってい
ます。時々、②プログラムを作成している間に、新たなプログラムの作
成指示を受けることもあります。このように、同時期に複数のプログラ
ムを割り当てられると、残業しても作成期限に間に合わないことがあり
ます。
N氏:プログラムがどの程度できているかといった報告は、どのようにしてい
ますか。
E君:③コーディングしたステップ数と所要時間を、毎日チームリーダに報告
しています。
N氏:ユニットテストは、どのように行い、その状況はどのように報告してい
ますか。
E君:テスト項目のチェックリストを作成し、それに合わせたテストデータを
用意します。ユニットテストでは、プログラムごとの総テスト項目数及
びテストを実施したテスト項目数を毎日報告しています。
テストを実施し、④バグが見つかった場合は、バグを記録するバグ管理
票に、該当プログラムとバグの内容、修正予定内容、修正結果、修正日
321
午後問題の解法
あるプログラムを探して、流用するようにしています。適当なプログラ
第11章 午後問題の解法
を記入して、チームリーダに報告しています。
N氏:プログラムは、どのように管理していますか。
E君:プログラムのコーディングが完了するまでは、自分に割り当てられたPC
内のローカルなフォルダで管理しています。
⑤ユニットテストに入るときにソースプログラムの共有サーバにチェッ
クインし、ユニットテストでバグが見つかり修正するときにチェックア
ウトします。修正が完了するとチェックインしてからテストを再開しま
す。
〔アセスメントの評価〕
インタビューの結果から、E君が実施している“ソフトウェアコード作成及び
テスト”アクティビティでは、次の(1)〜(4)が分かる。
(1)下線①から、プロジェクトとして、表1の組織に関するライフサイクルプロ
セスの中の“
”、及び支援ライフサイクルプロセスの中の“共同
d
レビュープロセス”は実施されていない。
(2)下線②から、表3の管理プロセスの“計画立案”アクティビティは不十分で
ある。
(3)下線③、④から、表3の管理プロセスの“
e
”アクティビティ及び“実
行及び管理”アクティビティは実施されている。
(4)下線⑤から、表1の支援ライフサイクルプロセスの中の“
f
”は実
施されている。
〔改善〕
管理プロセスの“計画立案”アクティビティの改善策を検討した。
チームリーダのアクティビティとして、見積り、スケジュール及びリソース
の観点から、次のことを決め、実施することにした。
(1)見積りの観点
チームリーダは、詳細設計時に作成するプログラムの一覧を作成し、プロ
グラム単位のステップ数の見積りを行う。
(2)スケジュール及びリソースの観点
チームリーダは、プログラム単位の見積りを基に、作成及びテストするプ
g
ログラム別に、
ごとのスケジュール作成を行う。
設 問 1
本文中の
a
び、記号で答えよ。
322
〜
c
に入れる適切な字句を解答群の中から選
11-2 テーマ1 問題文から解答を導くタイプ
解答群
ア アセスメント結果を企業の評価としてアピールする
イ 個人の給与や昇進の参考とする
ウ 組織のソフトウェア開発プロセスに関する経営者の成熟度レベルを測定
する
エ 組 織のソフトウェア開発プロセスの状態を理解し、その組織のソフト
ウェア開発プロセスを改善する
オ 調達を受けるに際して、自社のソフトウェア開発プロセスでの能力レベ
第 章
ルを示すことができるようにしておく
11
午後問題の解法
設 問 2
本文中の
〜
に入れる適切なプロセス又はアクティビ
d
f
ティを表1〜3から選び、プロセス名又はアクティビティ名を答えよ。
なお、プロセス名は、ライフサイクルプロセス名ではなく“取得プロセスや“供
給プロセスといった詳細なプロセス名を答えよ。
設 問 3
本文中の
g
に入れる適切な字句を答えよ。
なお、本文中の〔アセスメントの実施〕で使われている字句を用いること。
(ソフトウェア開発技術者試験 平成20年度秋期午後Ⅰ 問4)
設問1の解説
ソフトウェア開発プロセスのアセスメントの目的を答えます。解答群が用意されて
いるので、問題文と解答群を突き合せながら確認を行いましょう。
問題文から読み取るものは、次のことです。
①アセスメント本来の目的
アセスメントは本来の目的のほかにも目的があること。
本来の目的の内、一つはD社の経営方針に合致していること。
②アセスメントが世の中から注目されるようになったために生じた目的
アセスメントは世の中から注目を集めるようなものであること。
本来の目的以外の目的は、注目を集めるために企業が行うようなこと。
③D社の経営方針
問題文の冒頭にある“ソフトウェアの品質及び開発生産性の継続的な向上“である
323
第11章 午後問題の解法
こと。
なお、アセスメントとは評価のことであり、この問題の場合は問題文の“ソフトウェ
ア開発プロセスの現状を把握”することです。リスクアセスメント、環境アセスメン
トなどさまざまな分野で利用される言葉ですが、万一、アセスメントという言葉を知
らなくても解答に支障はないでしょう。
空欄a
アセスメントの本来の目的であり、かつ、D社の経営方針に合致したものを解答群
より選びます。D社の経営方針は、“ソフトウェアの品質及び開発生産性の継続的な
向上”です。つまり、解答群の中から品質や生産性の向上につながるものを選び出せ
ばよいのです。
では、解答群を確認しましょう。解答群の中で、ソフトウェアの品質や生産性に関
連するものは、下線部の記述が含まれたエしかありません。
“エ 組織のソフトウェア開発プロセスの状態を理解し、その組織のソフトウェア開
発プロセスを改善する”
以上より、空欄aはエです。
空欄b
アセスメントの本来の目的のもう一つです。今回の問題では、空欄aの目的のため
にアセスメントを行っているということから、問題文の状況とは異なる目的がほかに
あるということです。解答群より考えるしかありません。
“ア アセスメント結果を企業の評価としてアピールする”
これは後ほど判明しますが、空欄cの解答です。
“イ 個人の給与や昇進の参考とする”
ソフトウェア開発のプロセスをアセスメント(評価)しても、その中で、個人の活
動評価を行うことは難しそうです。個人の活動(例えば目標に対する達成度や個々の
生産性など)の視点で分析を行うことと、組織単位での開発プロセスを評価するので
は、明らかに必要とする情報や視点が異なるからです。
“ウ 組織のソフトウェア開発プロセスに関する経営者の成熟度レベルを測定する”
ソフトウェアの開発プロセスを評価することで、経営者の成熟度レベルを測定する
ことはできそうにありません。経営者の成熟度(経営成熟度)とは、経営というプロ
324
11-2 テーマ1 問題文から解答を導くタイプ
セスがルール(経営理念や経営戦略)に適合しているかの指標です。
“エ 組織のソフトウェア開発プロセスの状態を理解し、その組織のソフトウェア開
発プロセスを改善する”
空欄aの解答として選択済みです。
“オ 調達を受けるに際して、自社のソフトウェア開発プロセスでの能力レベルを示
すことができるようになる”
の能力レベルは明らかになるでしょう。解答群の中では最も、アセスメントの目的に
近いといえます。
空欄c
アセスメントが世の中から注目を集めるようになったために発生した目的です。つ
まり、世の中に対してアピールできるようなことです。解答群を確認すると、
“ア ア
セスメントの結果を企業の評価としてアピールする”が、最もふさわしいでしょう。
それ以外の解答群は、世の中に広くアピールするようなものではありません。
解答
a:エ b:オ c:ア
設問2の解説
問題文で示された状況と共通フレーム2007のプロセスを結びつける問題です。共通
フレームの知識がなくても、プロセスの名称から内容は十分に想定できます。
問題文から読み取るものは、次のことです。
①問題文の状況(①〜⑤の下線部)
②問題文より、プロセスの大分類(主、支援、組織に関する、など)
③表1のプロセス名
325
11
午後問題の解法
以上より、空欄bはオです。
第 章
ソフトウェア開発プロセスのアセスメント(評価)を行えば、自社の開発プロセス
第11章 午後問題の解法
空欄d
下線部①の記述より、空欄dと“共同レビュープロセス”が実施されていないことが
分かります。下線部①を確認しましょう。
組織に関するライフサイクルプロセス“????”
①プログラムは、詳細設計書を見ながら、自分で過去に作成したことが
あるプログラムを探して、流用するようにしています。適当なプログラ
ムがない場合は、先輩などに相談し、流用できるプログラムを見つけます。
自分で作成したプログラムを、先輩やチームリーダに見てもらうことは、
特にありません。
支援ライフサイクルプロセス“共同レビュープロセス”
後半の記述で、“先輩やチームリーダに見てもらうことはない”と言っていること
から、共同レビューが行われていないことが分かります。では、前半の記述で、組織
に関するライフサイクルプロセスで実施されていないと分かるものは何でしょうか。
前半の記述の要旨は、
・自分で過去に作成したプログラムを流用する。
・適当なものがない場合は、先輩に相談し流用できるプログラムを見つける。
となっています。つまり、過去のプログラムの再利用は、自分が作ったもの中心に、
適当なものがないときだけ先輩に相談する(きっと、先輩も過去に自分が作ったもの
から…を繰り返すのでしょう)だけであり、組織的な利用がなされていません。
表1を確認しましょう。プログラムの再利用に関するものは一つしかありません。
空欄dは、
“再利用プログラム管理プロセス”です。
空欄e
下線部③は日々の進捗の報告、下線部④はテストに関する結果報告です。これらか
ら、実施されている管理プロセスのアクティビティを探します。
すでに、“実行及び管理”は行われていると書かれています。では、もう一つ、表3
から選びます。進捗報告や結果報告に関連するアクティビティを探せばよいのです。
1 開始及び管理対象の定義 → すでに開発が始まっているので不適切です。
2 計画立案 → すでに開発が始まっているので、不適切です。
3 測定 → テスト結果の数値を報告しています。これは、測定のためのデータ収集
326
11-2 テーマ1 問題文から解答を導くタイプ
なので、適切です。
4 実行及び管理 → 管理のための報告を行っています。適切ですが、すでに行われ
ていると記述されています。
5 レビュー及び評価 → 進捗や結果の報告だけで、そのレビューや評価は下線部に
含まれていません。不適切です。
6 終了 → 現在は開発途中なので、不適切です。
以上より、空欄eは「測定」です。
第 章
空欄f
11
バージョン管理システムを利用していることが分かります。チェックアウトとは、共
有サーバからファイルを取り出すことで、チェックインとは、共有サーバにファイル
を戻すことです。バージョン管理システムでよく利用される用語です。ここで、
チェックイン/チェックアウトという言葉を知らなくても、ソースプログラムを共有
サーバで管理していることは、問題文から読み取れるはずです。
表1の支援ライフサイクルプロセスの中から、ソースファイルの共有サーバによる
管理(バージョン管理)を含むプロセスを探します。〜管理という言葉が付いている
のは、構成管理プロセスです。以上より、空欄fは「構成管理プロセス」です。
ただし、下線部⑤がテストでの利用例であることから、検証プロセスを解答の候補
に選ぶ方もいるかもしれません。下線部⑤で読み取るべきポイントは、チェックイン
/チェックアウトでしょう。下線部⑤をよく見ると、テスト自体の説明はなく、ソー
スファイルの管理に関することが中心であることを読み取る必要があります。
解答
d :再利用プログラム管理プロセス
e :測定
f :構成管理プロセス
設問3の解説
スケジュールとリソース管理における作業を答える問題です。問題文から読み取る
ものは、次のことです。
327
午後問題の解法
ソースプログラムの共有サーバにチェックイン、チェックアウトしていることから、
第11章 午後問題の解法
①チームリーダの作業
チームリーダの作業であることから、チームのメンバーにかかわる仕事でしょう。
②プログラム別に、空欄gごとにスケジュールを作成する
解答は、スケジュール作成の単位となることが分かります。
チームリーダーが作成するスケジュールは、チームメンバーごとのスケジュールで
す。チームメンバーを表す言葉を、問題文の〔アセスメントの実施〕から探します。1
行目に、
“ソフトウェア開発の担当者”という言葉がありました。これが解答になり
ます。
解答
g:ソフトウェア開発の担当者
フォローアップ
問題の難易度そのものは高くなく、共通フレーム2007の知識がなくても解ける
ものでした。しかし、かえって早とちりしてしまった設問はなかったでしょうか。
間違えた設問は、必ず間違えた理由を確認してから次の演習に進みましょう。そし
て、次の演習では同じような間違いを減らすことができれば、確実に得点アップに
つながります。
328
SECTION
11-3
テーマ2
11-3 テーマ2 知識を必要とするタイプ
知識を必要とするタイプ
解答に知識を必要とする問題の解き方
知識を必要とするタイプの問題は、どの分野からも出題されます。午前問題に解答
する知識+αを必要とするものが多いです。知っているか、知らないかで解答が決ま
発技術者試験 平成20年度秋期 午後Ⅰ 問2」のソフトウェア品質管理に関する問
題を取り上げます。
す。時間をかけずに解いてみましょう。
ソフトウェアの品質管理
問 題
ソフトウェア品質管理に関する次の記述を読んで、設問1〜3に答えよ。
M社は、家電製品の組込みソフトウェアの開発を行っている。M社の開発部
門では、図に示すV字モデルを使って、開発工程の各フェーズの流れと、上流
工程の成果物と下流工程のテストとの関係を定義している。
ソフトウェア開発工程
上流工程
ソフトウェア要求分析
ソフトウェア方式設計
ソフトウェア
要求仕様書
ソフトウェア
方式設計書
ソフトウェア詳細設計
ソフトウェア
詳細設計書
下流工程
ソフトウェア適格性
確認テスト
ソフトウェア結合テスト
単体テスト
ソースコード
実装
コードレビュー
図1 V字モデル
近年、家電製品の機能は増加の傾向にある。それに伴い、システムは大規模
化、複雑化している。このような現状で、組込みソフトウェアの品質を向上さ
329
11
午後問題の解法
この問題は、文章または用語を記述する解答はなく、すべて解答群からの選択式で
第 章
るものが多いので、時間をかけずに取り組みましょう。ここでは、「ソフトウェア開
第11章 午後問題の解法
せるために、M社は品質管理部門を発足させた。品質管理部門は、開発部門と
は独立して、テストの計画、設計、実施を行う。
品質管理部門は、M社でのテストの現状を調査、分析した。その結果、上流
工程、下流工程のいずれについても、M社としてのソフトウェアの品質基準が
不明確であることが判明した。品質管理部門では、テストの標準化が最優先の
課題と考え、そのための方策について検討を行った。
〔テスト計画の標準化〕
(1)仕様の漏れや不具合が下流工程で発見され、手戻りが発生している。
対策として、仕様の漏れや不具合を上流工程で取り除くために、開発部
a
門内で、ソフトウェア要求仕様書に対して、
を実施することを
義務付けた。
開発担当者は、機能や制御の流れを、最初から順を追って説明していく。
参加者は、説明に沿ってソフトウェア要求仕様書を点検し、不明点や問題
点を指摘する。
(2)既存のソフトウェアに新機能を追加するための変更を繰り返してきた結果、
全体の設計が複雑になり、保守性が低下している。
対策として、設計の複雑さを改善するために、ソフトウェア方式設計書
やソフトウェア詳細設計書に対して、
を実施することにした。
b
品質管理部門が、設計の複雑さを指摘するチェックシートを作成し、モ
デレータと呼ばれる推進役を決める。モデレータは適切なメンバを選出し、
メンバ全員がチェックシートと照らし合わせて、ソフトウェア方式設計書
やソフトウェア詳細設計書をチェックする。設計の欠陥は問題記録表に記
録するとともに、開発担当者に対して指摘し、欠陥が処置されるまでを追
跡する。
(3)単体テストについては、テストケースの作成基準がないので、開発担当者
によってはテストケースが不足し、テストの品質にばらつきが出ている。
c
対策として、十分な数のテストケースを作成するために、
の
考え方と
c
グラフを使用することにした。
d
は、分岐を引き起こすすべての条件の組合せをテストするの
ではなく、それぞれの分岐方向を少なくとも1回はテストするテストケース
を作成する方法である。
グラフとは、入力と出力の関係を表す
d
図表である。
(4)ソフトウェア結合テストやソフトウェア適格性確認テストで発生した障害
の修復が、ほかの機能に影響を与えた結果として、別の障害を発生させる
ことになり、重大な問題となっている。
対策として、プログラム変更を行った内容が、ほかの機能に影響を与え
ていないことを確認するために、障害が発生したテストケース以外に、以
330
11-3 テーマ2 知識を必要とするタイプ
前にテストを終了したテストケースも再実施する
e
テストの実施
を義務付けた。
〔テスト設計と実施の標準化〕
これまで、下流工程のテストケースは、下流工程の各フェーズの開始時に、
開発担当者がV字モデルの矢印で関連付けられた上流工程の成果物を基にして
作成していた。今後は、上流工程の各フェーズの開発担当者の作業と並行して、
下流工程の各フェーズにおいて、すべてのテストケースに合格することが、
〔今後の課題〕
M社では、ソフトウェアの品質に関して解決すべき課題がまだ残っている。
品質管理部門が対応を検討している今後の課題を、次に示す。
(1)家電製品の機能の多様化に伴い、非機能要件を満たさなくなる可能性が出
てきている。
(2)家電製品の機能の増加に伴い、機能の組合せによってテストケースの数が
膨大になっている。
(3)コーディングルールが守られていないので、ソースコードの保守性や移植
性が低下している。
設 問 1
a
本文中の
び、記号で答えよ。
〜
解答群
ア イテレーション
エ ウォータフォール
キ 原因結果
コ データ設計
ス 分岐網羅
e
に入れる適切な字句を解答群の中から選
イ インスペクション
オ 回帰
ク 構造設計
サ 同値 セ ホワイトボックス
ウ ウォークスルー
カ 境界値
ケ 条件網羅
シ ブラックボックス
ソ 命令網羅
設 問 2
本文中の
f
び、記号で答えよ。
、
g
に入れる適切な字句を解答群の中から選
331
11
午後問題の解法
該当フェーズの終了基準である。
第 章
関連付けられた下流工程のテストケースを品質管理部門が作成することにし
g
た。これによって
と
を目指す。
f
第11章 午後問題の解法
解答群
ア 下流工程での作業の効率向上 イ 下流工程での設計の構造化
ウ 下流工程での設計の品質向上 エ 下流工程でのフェーズの多様化
オ 上流工程での作業の効率向上 カ 上流工程での設計の構造化
キ 上流工程での設計の品質向上 ク 上流工程でのフェーズの多様化
設 問 3
〔今後の課題〕の(1)〜(3)のそれぞれについて、有効な対策を解答群の中か
ら一つ選び、記号で答えよ。
解答群
ア 状態遷移図を使用する。
イ 静的解析ツールを使用する。
ウ 性能、操作性を十分に検証する。
エ ソフトウェア信頼度成長曲線を使用する。
オ 直交表を使用する。
カ ユーザヘのヒアリングを行う。
(ソフトウェア開発技術者試験 平成20年度秋期午後Ⅰ 問2)
設問1の解説
空欄a、b
設計文書の品質向上のためにはレビューが欠かせません。代表的なレビューには、
ウォークスルーとインスペクションがあります。この二つのレビュー技法の特徴が問
われています。問題文から、空欄aの特徴を抜き出します。
・目的は、仕様の漏れや不具合を減らすこと ⇒ 品質向上のための策
・ソフトウェア要求仕様書に対して実施している ⇒ ドキュメントに対して行う策
以上より、文書のレビューで使われる技法であることが読み取れます。
・開発担当者が説明し、参加者が不明点や問題点を指摘する ⇒ 開発者が自ら説明す
る。また行われるのは問題点の指摘まで行う
下線部の特徴から、空欄aはウの「ウォークスルー」が正解です。
332
11-3 テーマ2 知識を必要とするタイプ
問題文から、空欄bの特徴を抜き出します。
・目的は、設計の複雑さを改善する ⇒ 品質向上のための策
・設計書に対して行う ⇒ ドキュメントに対して行う策
こちらも、空欄a同様に文書のレビューで使われる技法です。
・モデレータと呼ばれる推進役を定める ⇒ モデレータが進行を担当する
・欠陥が処置されるまで追跡する ⇒ 欠陥の指摘だけではなく処置も含む
第 章
下線部の特徴から、空欄bはイの「インスペクション」が正解です。
11
空欄c、d
トケースは、ホワイトボックステスト、あるいは、ブラックボックステストで利用さ
れます。この二つのテストのテストケース作成に関する知識が問われています。問題
文から、それぞれの特徴を抜き出します。
・それぞれの分岐方向を少なくとも1回はテストするテストケース
下線部の特徴から、空欄cはスの「分岐網羅」が正解です。
・入力と出力の関係を表す図表
下線部の特徴から原因結果グラフのことです。空欄dはキの「原因結果」が正解で
す。
空欄e
テストの種類に関する知識を問われています。問題文から特徴を抜き出します。
・変更がほかの機能に影響を与えていないことを確認する
・テストケースを再実施する
下線部の特徴から回帰テストのことです。空欄eはオの「回帰」が正解です。
解答
a:ウ
b:イ
c:ス
d:キ
e:オ
333
午後問題の解法
単体テストのテストケースを作成するための考え方を答えます。単体テストのテス
第11章 午後問題の解法
設問2の解説
問題文の状況と解答群から、解答を考えます。問題文の状況は、次のとおりです。
変更前
変更後
作成物:下流工程のテストケース
作成担当:開発担当者
作成時期:各フェーズの開始時
参照資料:上流工程の成果物
作成物:下流工程のテストケース
作成担当:品質管理部門
作成時期:上流工程の作業と並行
参照資料:明記なし
作成担当者と作成時期が大きく変わっています。
解答群は、次のパターンです。解答群から解答として選べるものを絞り込みます。
上流工程
もしくは
下流工程
品質向上 … ◎ 本問は品質管理の問題であるため
効率向上 … ○ 作成時期や担当者の変更であるため
構造化 … × 成果物は同じであり、設計の構造化は進んでいない。
多様化 … × 下流工程の作業を上流工程に移しただけで多様化はない
以上より、下流工程では、開発担当者が上流工程の成果物を参照しテストケースを
作成するフェーズがなくなったため、作業の効率が向上しています。また、上流工程
では品質管理部門がテストケースの設計を担当することで、設計の品質向上が期待で
きます。つまり、空欄f(あるいはg)はアの「下流工程での作業効率の向上」、空欄g(あ
るいはf)はキの「上流工程での設計の品質向上」が正解です。空欄f、gは順不同です。
解答
f:ア g:キ(fとgは順不同)
設問3の解説
課題に対する対応策を解答群より選びます。
課題(1)機能の多様化に伴い、非機能要件を満たさなくなる可能性がある
非機能要件とは、ソフトウェアに要求される機能以外の要件です。具体的には、性
334
11-3 テーマ2 知識を必要とするタイプ
能、信頼性、セキュリティ、操作性などが挙げられます。
機能が多様化、つまり、数が増えれば、非機能要件の内、性能や操作性に影響が出
る可能性があります。そこで、対応策としてはウの「性能、操作性を十分に検証する」
が考えられます。機能要件だけではなく、品質評価の項目として非機能要件の要求事
項を盛り込んでおきます。
課題(2)機能の増加に伴い、機能の組み合わせのテストケース数が膨大になっている
ようなテストケースを作成することは現実的ではありません。そこで、テストケース
を圧縮できる直交表を使用します。オが適切です。
プログラムを実行せずに、ソースコードの段階で品質向上を図るには、静的解析ツー
ルを使用します。イが適切です。
解答
(1)ウ
(2)オ
(3)イ
フォローアップ
設問1は午前問題のレベルの知識、設問2は問題文の状況を理解して考える、設
問3は午前試験よりも一歩深い知識を要求しています。この問題は、品質管理の用
語に関する知識が不可欠です。逆に、十分な知識があれば、非常に短時間に解答で
きます。このような知識を問うタイプの問題のためにも、午前問題の演習時点で知
識を身に付けておきましょう。
この問題のテーマである品質管理については、開発技術の章で説明しています。
ご参照ください。
335
11
午後問題の解法
課題(3)コーディングルールが守られず、ソースコードの保守性や移植性が低下している
第 章
テストケースの網羅性を高めるために、組み合わせのパターンをすべてカバーする
テーマ3
SECTION
第11章 午後問題の解法
11-4
技術知識を必要とするタイプ
(ネットワーク/セキュリティ)
ネットワーク/セキュリティ問題の解き方
ネットワークとセキュリティの午後問題は、それぞれの技術知識を使って、問題文
の状況に対して解答するタイプの問題が中心です。解答にあたっては、該当するテー
マの知識(例えば、TCP/IPやPKIなど)と、問題文の状況を適切に把握する必要があ
ります。
ネットワーク(ネットワーク関係のセキュリティを含む)の問題を理解する際に使
えるテクニックに、問題文の図に書き込みをしていく方法があります。問題文には、
必ずネットワーク構成に関する図が登場します。この図に、問題文から得られる情報
を書き足していくのです。書き足す情報は、数値(IPアドレスや回線速度など)と論
理データフローなどです。
論理データフローとは、ネットワーク内で実際にどのようなデータが流れるかを記
述したものです。ネットワークの物理的な配線とは別に、どのノードからどのノード
に向かって、どのようなプロトコルでデータが流れるかを明らかにします。これによ
り、問題の状況の理解が進み、解答が容易になります。
たとえば、電子メールの送信の手順は次のとおりです。ネットワークの論理データ
フローを図に表わしてみましょう。
①メールクライアントからメールサーバに電子メールの送信を依頼する。
②メールサーバは、メールアドレスのURLからあて先のメールサーバの名前を抜き
出し、DNSサーバに名前解決を依頼する。
③相手先のメールサーバにメールを送信する。
これらの手順を論理データフローで表わすと次ページに示す図のようになります。
セキュリティの問題においてたびたび出題されるファイアウォールのルールを設定
する問題も、このような論理データフローを書くことで解答が容易になります。
336
11-4 テーマ3 技術知識を必要とするタイプ(ネットワーク/セキュリティ)
送信者
宛先
②
メールサーバ
DNSサーバ ②
③
①
②
DNSサーバ
メールサーバ
③
ファイアウォール
第 章
インターネット
ファイアウォール
11
午後問題の解法
クライアント
図 電子メール送信の論理データフロー
では、実際の問題で演習を行いましょう。問題は、「ソフトウェア開発技術者試験
平成20年度春期午後 問1」のルータの静的アドレス変換に関する問題です。ネット
ワークの問題は、知識だけで解答できる設問と、問題を理解した上で解答を作成する
設問が出題されます。この問題は、単純な知識だけではなく、問題文の状況を理解し
た上で解答を作成する必要があります。先ほど説明した、論理データフローを書き表
しながら解答を考えるとよいでしょう。時間がかかってもよいので、解答をどのよう
に求めるのかをアプローチを意識しながら、じっくりと取り組んでください。
337
第11章 午後問題の解法
ルータの静的アドレス変換
問 題
ルータの静的アドレス変換に関する次の記述を読んで、設問1〜3に答えよ。
インターネット環境が普及するに従って、Webサイトの開設やメールの送受
信、映像の配信に必要なサーバを、自宅で運用する人も出てきている。自宅に
設置されているルータに静的アドレス変換の設定をすることで、外出先から自
宅のネットワーク(以下、ホームネットワークという)上のサーバにアクセスす
ることができる。
K君は、図のような構成で、ホームネットワーク上のサーバをインターネッ
トに公開することにした。図中のexample.comは公開サーバ用に取得したドメ
イン名である。ドメイン名の名前解決のためには、プロバイダが提供するDNS
サービスを利用する。公開サーバの用途とプロトコルは、表1のとおりである。
ルータA
61.xxx.42.94
インターネット
192.168.1.1
192.168.1.10
ドメイン名
example.com 202.yyy.63.242
ルータB
クライアントPC1
(ホスト名:client01)
192.168.1.100
Webサーバ
(ホスト名:websrv)
192.168.1.110
メディアサーバ
(ホスト名:medsrv)
192.168.1.10
クライアントPC2
(ホスト名:client02)
192.168.1.1
外出先
ホームネットワーク
注 61.xxx.42.94及び202.yyy.63.242は固定割付けされたIPアドレスである。
図1 ネットワーク構成
表1 公開サーバの用途とプロトコル
公開サーバ
用途
公開ポート番号
使用プロトコル
Webサーバ
個人用Webページ
80
HTTP
ストリーミング配信
52000
独自プロトコル
設定管理用Webページ
52080
HTTP
メディアサーバ
Webサーバは、個人用Webページをインターネットに公開する。
メディアサーバは、独自のプロトコルでビデオや音声のコンテンツをクライ
アントにストリーミング配信する。また、メディアサーバに設置されている設
338
11-4 テーマ3 技術知識を必要とするタイプ(ネットワーク/セキュリティ)
定管理用Webページによって、K君は外出先からメディアサーバの設定管理を
行うことができる。
K君は、外出先ではクライアントPC1から、ホームネットワーク内ではクラ
イアントPC2から、公開サーバにアクセスする。
〔ルータBの静的アドレス変換の仕組み〕
インターネット上の任意のクライアントから公開サーバにアクセスする場合
を考える。クライアントは、アクセス要求のパケットをルータBのグローバル
第 章
IPアドレスに送信する。ルータBは、表2のアドレス変換表に設定されたルール
に従ってパケットの内容を書き換え、公開サーバに送信する。
11
信する。ルータBは、応答パケットの内容を書き換え、クライアントに送信する。
なお、ルータBの静的アドレス変換の機能は、インターネット上のホストか
ら公開サーバヘのアクセスとその応答に対してだけ機能するようになってい
る。
クライアントPC1から、メディアサーバの設定管理用Webページにアクセス
する場合のアクセス経路とアドレス変換の例を表3に示す。
表2 ルータBのアドレス変換表
公開ポート番号
転送先IPアドレス
転送先ポート番号
80
192.168.1.100
80
52000
192.168.1.110
52000
52080
192.168.1.110
80
表3 アクセス経路とアドレス変換の例
アクセス経路
要求
client01→ルータA
送信元
IPアドレス
192.168.1.10
送信元
ポート番号
送信先
IPアドレス
送信先
ポート番号
1500
202.yyy.63.242
52080
b
52080
ルータA→ルータB
a
3363
ルータB→medsrv
a
5127
応答
medsrv→ルータB
192.168.1.110
192.168.1.110
80
80
c
d
c
e
ルータB→ルータA
b
52080
ルータA→client01
202.yyy.63.242
52080
192.168.1.10
1500
注 ポート番号1500、3363及び5127は、クライアント及びルータが自動的に割り付けた番号である。
339
午後問題の解法
要求のパケットを受け取った公開サーバは、応答のパケットをルータBに送
第11章 午後問題の解法
〔クライアントPC1から公開サーバヘの、ドメイン名を用いたアクセス〕
K君は、ドメイン名example.comがそのままルータBのグローバルIPアドレス
に対応するように、DNSの設定を行った。
なお、DNSにexample.comに対するエイリアス(別名)を設定しておくと、別
名でも同じIPアドレスにアクセスできるようになるが、ここではエイリアスは
設定していない。
この状態で、クライアントPC1から個人用Webページ、及びメディアサーバ
の設定管理用Webページに、次のURLでアクセスできることを確認した。
個人用webページ:http://
設定管理用webページ:http://
f
g
/index.html
/index.html
〔クライアントPC2から公開サーバヘの、ドメイン名を用いたアクセス〕
K君は、クライアントPC2のWebブラウザから個人用Webページにアクセス
しようとしたが、http://
f
/index.htmlではアクセスすることができ
なかった。Webブラウザは
この場合は、
i
に対して要求のパケットを送信するが、
h
が機能せず、パケットがWebサーバに到達できないか
らである。
〔クライアントPC1とクライアントPC2で同一のURLを使うための設定〕
K君は、インターネットからでもホームネットワークからでも、公開サーバ
にアクセスするときに同じドメイン名を使えるようにするために、次の設定を
行った。
(1)DNSにエイリアスを追加し、次のいずれの表現を用いても、example.com
と同一のIPアドレスにアクセスできるように設定した。
www.example.com
medsrv.example.com
(2)DNSよりも優先される、クライアントPC2独自の名前解決のルールとして、
表4の設定を追加した。
表4 追加した設定
IPアドレス
ドメイン名
192.168.1.100
www.example.com
192.168.1.110
medsrv.example.com
このように設定することで、クライアントPC1とクライアントPC2で同一の
URLを 使 う こ と が で き る よ う に な る。 し か し、 設 定 を 行 っ た 後 で も、
j
340
のURLを同一にすることはできない。これは、インターネットから
11-4 テーマ3 技術知識を必要とするタイプ(ネットワーク/セキュリティ)
のアクセスとホームネットワークからのアクセスで、使用される
k
が
違うからである。
設 問 1
静的アドレス変換について、表3中の
a
〜
e
に入れる適切
な字句を答えよ。
なお、同じ字句が入る場合もある。
第 章
設 問 2
本文中の
g
11
に適切な字句を入れ、ドメイン名を用い
午後問題の解法
、
f
たURLを完成させよ。
なお、特定のポート番号を用いてサーバにアクセスする必要がある場合、ア
クセス先は次の形式で表記する。
ドメイン名:ポート番号
設 問 3
本文中の
(1)
h
〜
について、(1)〜(3)に答えよ。
h
k
に入れる適切な字句を、IPアドレスの形式で答えよ。
(2)
i
に入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群
ア HTTP イ エイリアス ウ 静的アドレス変換
エ 名前解決 オ ルーティング
(3)
j
、
k
に入れる適切な字句を答えよ。
(ソフトウェア開発技術者試験 平成20年度春期午後Ⅰ 問1)
設問1の解説
クライアントPC1から、メディアサーバの設定管理用Webページにアクセスする場
合のIPアドレスの状態を解答します。問題文の図に、論理データフローを書きながら
整理していきます。
クライアントPC1(client01)のIPアドレスは192.168.1.10、送信先のメディアサーバ
のIPアドレスは192.168.1.110です。この2台のIPアドレスはプライベートアドレスで
す。インターネットではプライベートアドレスを利用できません。そこで、アドレス
341
第11章 午後問題の解法
の変換が必要になるのです。
まずは、要求の送信についてです。
送信先
202.yyy.63.242:52080
送信元
192.168.1.10:1500
ルータA
①
送信先
202.yyy.63.242:52080
送信元
61.xxx.42.94:3363
61.xxx.42.94
②
インターネット
192.168.1.1
192.168.1.10
クライアントPC1
(ホスト名:client01)
送信先
192.168.1.110:80
送信元
61.xxx.42.94:5127
192.168.1.100
Webサーバ
(ホスト名:websrv)
192.168.1.110
メディアサーバ
(ホスト名:medsrv)
ドメイン名
③
example.com 202.yyy.63.242
クライアントPC2
192.168.1.10
ルータB
(ホスト名:client02)
192.168.1.1
外出先
ホームネットワーク
注 61.xxx.42.94及び202.yyy.63.242は固定割付けされたIPアドレスである。
図1 ネットワーク構成
図中① client01 → ルータA
問題文には直接説明がありませんが、図から考えます。まず、送信元はclient01の
IPアドレスである、192.168.1.10です。Webブラウザのポート番号は、固定されてい
ません。Webブラウザが任意のポート番号を付番します。
送信先は二つの注意が必要です。
一つ目は、送信先IPアドレスをルータAのIPアドレスとしないことです。パケット
はルータAに向かいますが、送信先IPアドレスはルータAではありません。最終的な
送信先であるメディアサーバのIPアドレスを指定します。
二つ目は、メディアサーバのIPアドレスをグローバルアドレスにすることです。図
を見ると、メディアサーバのIPアドレスは192.168.1.110です。しかし、これはプライ
ベートアドレスなので、インターネットを経由することはできません。問題文の〔ルー
タBの静的アドレス変換の仕組み〕を見ると、クライアントから公開サーバへのアク
セスに関する次の記述があります。
“クライアントは、アクセス要求のパケットをルータBのグローバルIPアドレスに
342
11-4 テーマ3 技術知識を必要とするタイプ(ネットワーク/セキュリティ)
送信する。”
そこで、送信先IPアドレスをルータBのアドレスとします。また、メディアサーバ
の設定管理用Webページに向けての通信なので、ポート番号は52080となります(問
題の表1より)
。
図中② ルータA → ルータB
送信先は、①と変わらず202.yyy.63.242となります。ここで注意すべき点は、送信
ルータAもアドレス変換機能を持っています。なぜならば、client01はプライベート
経由した通信ができないからです。
空欄a
空欄aは、送信元のIPアドレスです。ルータAのアドレス変換機能で、client01のア
ドレスからルータAのアドレスに変換されます。したがって、空欄aは、61.xxx.42.94
となります。
空欄b
空欄bは、送信先のIPアドレスです。ここで、送信先のアドレスの変更はありませ
ん。ルータBのアドレスである、202.yyy.63.242となります。
図中③ ルータB → medsrv
送信先は、問題文の次の記述より明らかになります。
“ルータBは、表2のアドレス変換表に設定されたルールに従ってパケットの内容を
書き換え、公開サーバに送信する。”
したがって、送信先のポート番号が52080のパケットは、IPアドレス192.168.1.110、
ポート番号80として転送されます。送信元は、ルータAのアドレスのまま変わりませ
ん。アドレス変換は、送信先のアドレスを変換しますが、送信元は変換しません。た
だし、ポート番号はルータBで5127に付け替えられました。
次は、応答についてです。
343
11
午後問題の解法
アドレスであり、いずれかでグローバルアドレスに変換しなければインターネットを
第 章
元はルータAのIPアドレスであることです。問題文中では明記されていませんが、
第11章 午後問題の解法
送信先
192.168.1.10:1500
送信元
202.yyy.63.242:52080
ルータA
⑥
61.xxx.42.94
⑤
送信先
61.xxx.42.94:3363
送信元
202.yyy.63.242:52080
インターネット
192.168.1.1
192.168.1.10
クライアントPC1
(ホスト名:client01)
送信先
61.xxx.42.94:5127
送信元
192.168.1.100:80
192.168.1.100
Webサーバ
(ホスト名:websrv)
192.168.1.110
メディアサーバ
(ホスト名:medsrv)
ドメイン名
④
example.com 202.yyy.63.242
クライアントPC2
192.168.1.10
ルータB
(ホスト名:client02)
192.168.1.1
外出先
ホームネットワーク
注 61.xxx.42.94及び202.yyy.63.242は固定割付けされたIPアドレスである。
図1 ネットワーク構成
応答は、要求に対する応答なので送信先と送信元が入れ替わるだけです。
空欄c、d、eは、送信のときの図の②、③の矢印と入れ替えることになります。し
たがって、空欄cは、ルータAのアドレスである61.xxx.42.94、空欄dは5127、空欄eは
3363となります。
解答
a:61.xxx.42.94
b:202.yyy.63.242
c:61.xxx.42.94
d:5127
e:3363
設問2の解説
問題文からDNSの設定を確認します。
“ドメイン名example.comがそのままルータBのグローバルIPアドレスに対応するよ
うに、DNSの設定を行った”とあります。また、「表2 ルータBのアドレス変換表」
から、ポート番号によってWebサーバとメディアサーバに振り分けられることが分
344
11-4 テーマ3 技術知識を必要とするタイプ(ネットワーク/セキュリティ)
かります。
空欄f
Webサーバにアクセスするには、ポート番号80でルータBにアクセスする必要があ
ります。今、ルータBのアドレスはexample.comに割り当てられているので、解答は
“example.com”となります。なお、httpではポート番号を指定しないと自動的に80が
採用されます。明示的にポート番号を指定するには、問題文にあるとおりドメイン名
第 章
の後にポート番号を指定します。したがって、“example.com:80”でも正解です。
11
空欄g
必要があります。したがって、“example.com:52080”となります。
解答
f:example.com(または「example.com:80」
)
g:example.com:52080
設問3の解説
公開サーバと同一ネットワークにあるクライアントPC2から、ドメイン名を利用し
てWebページにアクセスできない理由を考えます。ヒントは問題文にあります。
“ルータBの静的アドレス変換機能は、インターネット上のホストから公開サーバ
へのアクセスとその応答に対してだけ機能するようになっている”という記述より、
同じネットワーク内からのアクセスに対して、ルータBはアドレス変換を行わないこ
とが分かります。
空欄h、i
Webブラウザが要求のパケットを出す相手先を答えます。DNSにて、example.com
はルータBのアドレスである202.yyy.63.242に変換されます。クライアントPC2はルー
タBのIPアドレス202.yyy.63.242に向けてパケットを送りますが、静的アドレス変換が
機能しないため、Webサーバにはパケットが届きません。
345
午後問題の解法
メディアサーバにアクセスするには、ポート番号52080でルータBにアクセスする
第11章 午後問題の解法
example.com
DNSサーバ
クライアント
PC2
202.yyy.63.242
※問題文中には登場しない
202.yyy.63.242
?
ルータB
※インターネットからのア
クセスではないので、アド
レス変換は行われない
上図より、空欄hは202.yyy.63.242となります。解答はIPアドレスで答える点に注意
してください。また、ここまでの説明より、空欄iはウの「静的アドレス変換」です。
空欄j、k
クライアントPC1とクライアントPC2による公開サーバへのアクセスを比較しま
す。クライアントPC1は、ルータBでのアドレス変換が行われる点が大きく異なりま
す。表1ならびに表2を見ると、設定管理用Webページの公開ポート番号は52080です
が、ホームネットワークでは80に変換されています。クライアントPC2は、DNSに代
わる独自の名前解決ルール(HOSTSファイルと呼ばれる)によりDNSの代わりにURL
からIPアドレスを求めていますが、ルータBを経由していないために指定するポート
番号が異なります。
・クライアントPC1:設定管理用WebページのURL example.com:52080/index.html
・クライアントPC2:設定管理用WebページのURL example.com/index.html
(または、example.com:80/index.html)
したがって、空欄jは設定管理用Webページ、空欄kは、ポート番号となります。
解答
h :202.yyy.63.242   i :ウ
j :設定管理用Webページ k :ポート番号
フォローアップ
ネットワーク図にデータフローを書き加えると、解答を考えやすくなります。問
題文の理解を早めるため、深めるためにもデータフロー以外にも自分で図を描きな
がら考える習慣を付けましょう。
346
Fly UP