平成25年秋期午後問6  問1(2)

勉強中さん  
(No.1)
https://www.ap-siken.com/kakomon/25_aki/pm06.html

問1(2)の状態の各端末の状態について、端末A、Bの各状態が理解できず、回答例で示されている”端末Bが他の端末と通話するために接続を試みているとき”という状態が理解できません。

上記の端末状態で、端末Bが端末Aからの"接続要求"を受信し、端末Bが"NAK応答を送信"する状態がどこに当てはまるのか考えたのですが、それらしい状態、イベントを図2に当てはめられず迷子になっております。

また、問題文と解説を読み、自分の各端末の状態は以下の通り解釈しました
端末A:応答待ち("ACK応答"が未受信のため)
端末B:待ち受け(電源投入時は待ち受けとの記述から)

しかしながら端末Bの状態は、解答解説より”応答待ち”とのことで、ここで疑問なのですが、この状態遷移はいつどのようにして発生したのでしょうか?

また、解説の通り”応答待ち”の状態として、この状態でNAK送信する理由について、問題文から拾うことができません。
”応答待ち”かつ”NAK送信”するためには、ここにもう一つイベントないしは状態(が必要なのではと考えました。

上記二つの質問について、ご解説よろしくお願いします。
2024.01.23 23:17
まだ諦めてなかった人さん 
(No.2)
解説に書いてある通りですが、問題文に「利用者が端末Aの青点灯しているボタンBにタッチすると,」とあるので、端末Bは"待受け"か"応答待ち"のみ、"待受け"ならば接続要求を拒否する必要はないので、端末Bは"応答待ち"の状態だとわかります。

「いつ」は、端末BがボタンCを押したときで、「どのように」は、"待受け"の状態から"ボタンにタッチ"で"応答待ち"に状態遷移した場合です。

NAK送信する理由についてですが、端末Aは端末Bからの"NAK応答"がないとずっと"応答待ち"のままになってしまいますから、要求を受け付けられないときは、端末Bから"NAK応答"を送信する必要があります。
2024.01.24 14:51
納豆のたれさん 
(No.3)
解説に書いてあるように、端末Bは"応答待ち"の状態だとすれば、
解答は「端末Bが応答待ちのとき」でよいはずですが、
IPAの解答例は「端末Bが他の端末と通話するために接続を試みているとき」です。
だから解説のような単純なはなしではないはずです。
スレ主さんもそこに合点がいかないのかなと....

https://www.ap-siken.com/pdf/ap25a_pm_cmnt.pdf
の2ページ目の先頭を読んでみましょう

短時間で話中になることはないから、「接続を試みているとき」なのでしょうかね
わたしも理解しきれていません。
2024.01.24 16:40
まだ諦めてなかった人さん 
(No.4)
納豆のたれさん
難しく考えすぎではないでしょうか。
字数制限が短いと簡単に答えられてしまうのでわざわざ30字に増やして回答させているだけでは?と勝手に考えています。
要は「端末Bが応答待ちのとき」を、30字以内に収まるように言い換えなさい、という問題なのだと思います。

採点講評の「タイミングと特定の条件が重なったとき発生する特別な状態」も、端末Aが"BUSY通知"を受信する前に端末Bに"接続要求"を送信したのを、特別な状態としてるだけだと思います。
2024.01.24 17:18
boyonboyonさん 
AP シルバーマイスター
(No.5)
「待ち受けから応答待ちに遷移するまでの間」・・・凄く短い時間だと思いますが、0ではないと思われます。
そのタイミングでAからの接続要求が届いたとしたら、どうでしょう。
だから、「端末Bが他の端末と通話するために接続を試みているとき」のような表現になっているのかと思います。
2024.01.24 17:54
まだ諦めてなかった人さん 
(No.6)
boyonboyonさん
問題文を言い換えると、
「利用者が端末Bの青点灯しているボタンCにタッチすると,端末Bは接続状態を応答待ちにして,端末Cに"接続要求"を送信する。」となり、「待ち受けから応答待ちに遷移するまでの間」だとするとそもそも端末Cに対して接続を試みる前の話なので、若干答えとしてずれるのではないでしょうか。

また、設問で問われている「端末Bが端末Aからの接続要求を受け付けられないと判断するのはどのような場合か。」に対しても、「待ち受けから応答待ちに遷移するまでの間」だとするとどうやってそれを判断するの?という疑問が湧きますが、如何でしょうか。
2024.01.24 18:53
boyonboyonさん 
AP シルバーマイスター
(No.7)
この投稿は投稿者により削除されました。(2024.01.24 19:01)
2024.01.24 19:01
納豆のたれさん 
(No.8)
状態遷移図を見直しました。
着呼に遷移するのは、待受け状態のときに接続要求を受信したときのみです。
だから、待受け状態でないときに接続要求を受信したときにはNAKを送信するのでしょう。
一方、端末Aが端末Bを呼出せるのは、Bが青点灯のときだとすると、端末Bが待受け状態または応答待ち状態のときです。

端末BがNAKを返すのは
・待受け状態だったが、端末Bのユーザがボタンにタッチして応答待ち状態に遷移した。
・他端末の応答待ち状態でその状態を維持している。
・他端末の応答待ち状態だったが、ACK応答を受信して発呼状態に遷移した。
・待受け状態だったが、他端末からの接続要求を受信して着呼状態に遷移した。

これを30文字にまとめるとIPAの解答になるのでしょうか?
2024.01.24 19:35
boyonboyonさん 
AP シルバーマイスター
(No.9)
>まだ諦めてなかった人さん

設問の
>接続要求を受け付けられないと判断するのはどのような場合か
についての自分の考えですが、

1:要求を受け付けられるのは待ち受け状態、それ以外は受け付けられない状態。
2:待ち受けから応答待ちに遷移するまで時間がかかる。
を前提に考え、端末BでCボタンをタッチした時点から後は、受け付けられない状態だと思いました。

端末Cに対して接続を試みるについても、端末BでCボタンをタッチした時点から後という解釈です。
2024.01.24 20:25
勉強中さん  
(No.10)
>納豆のたれさん
>まだ諦めてなかった人さん
>boyonboyonさん

皆様ご解説ありがとうございます。

連続でACKを受け取った場合、最初のACKで”応答待ち”に遷移し、次のACKは受け取れないためNAKを返すということでしょうか?
そうすると応答待ちにすでに遷移している=他端末との接続待ちということで、IPAの回答のようになりそうだとは思いました。

ただ、NAKを返す条件がまだピンと来ていない感じです。

問題文の、”①端末Bが要求を受け付けられないときは,端末Aに"NAK応答"を送信する”
というのがそのままNAKを返すということでしょうか?
うーん・・・、我ながら憶測に憶測を重ねている解釈ですね・・・
2024.01.24 21:23
納豆のたれさん 
(No.11)
> 連続でACKを受け取った場合、最初のACKで”応答待ち”に遷移し、次のACKは受け取れないためNAKを返すということでしょうか?
図2を見てください。
応答待ちに遷移するのは、ボタンがタッチされたときのみです。
ACK受信とは関係ありません。
遷移図では、応答待ちのところだけにACK受信とNAK受信が登場します。
発呼側で接続要求を送信した後にだけ、ACKまたはNAKを受信することになります。
基本的に連続で受信することはないはずです。

> ただ、NAKを返す条件がまだピンと来ていない感じです。
コメントNo.8の「端末BがNAKを返すのは」のところに書いたつもりなのですが....

この問題では、なにかイベントが起きたときに何をするのかは図2にかかれていますが、どんなときに何をするのかは明確に書かれていないので、それを推測する問題だと思います。
2024.01.24 22:11
勉強中さん  
(No.12)
この投稿は投稿者により削除されました。(2024.01.24 22:34)
2024.01.24 22:34
勉強中さん  
(No.13)
>納豆のたれさん
すみません応答待ちの遷移を勘違いしました。

しかし、No8で解説いただいたところがやはり問題文からうまく拾えません。
問題文の、”①端末Bが要求を受け付けられないときは,端末Aに"NAK応答"を送信する”
ということを以下解説のように、推察するしかないのでしょうか?

>端末BがNAKを返すのは
>・待受け状態だったが、端末Bのユーザがボタンにタッチして応答待ち状態に遷移した。
>・他端末の応答待ち状態でその状態を維持している。
>・他端末の応答待ち状態だったが、ACK応答を受信して発呼状態に遷移した。
>・待受け状態だったが、他端末からの接続要求を受信して着呼状態に遷移した。
2024.01.24 22:35
jjon-comさん 
AP プラチナマイスター
(No.14)
興味を持ったので、私もこの問題に挑戦してみました。
(皆さんの書き込みには目を通していません)

--------
端末Aが端末Bに"接続要求"を送信し、端末Bが"接続要求"を受信した際、
①端末Bが要求を受け付けられない状態はどんなときか?
表1をすべて検討してみます。

(a) 端末Bが「待受け」である。
"接続要求"を受け付けられる。

(b) 端末Bが「応答待ち」である。
具体例(b1)は、端末Bで端末Aを呼び出すためボタンAをタッチした。端末Aは端末Bからの"接続要求"を受信する直前のタイミングでボタンBをタッチしたので端末Bへの"接続要求"が送信された。
具体例(b2)は、端末Bで端末Cを呼び出すためボタンCをタッチした。端末Aは端末Bからの"BUSY通知"を受信する前のタイミングでボタンBをタッチしたので端末Bへの"接続要求"が送信された。

(c) 端末Bが「発呼」である。
具体例は、端末Bが「発呼」、端末Cが「着呼」、端末Aは端末Bからの"BUSY通知"を受信する直前のタイミングでボタンBをタッチしたので端末Bへの"接続要求"が送信された。

(d) 端末Bが「着呼」である。
具体例は、端末Bが「着呼」、端末Cが「発呼」、端末Aは端末Cからの"BUSY通知"を受信する直前のタイミングでボタンBをタッチしたので端末Bへの"接続要求"が送信された。

(e) 端末Bが「通話」である。
この状態で端末Bが"接続要求"を受信することはない。端末Bと端末Cが通話状態にあるこの時点で、端末Aが端末Cからの"BUSY通知"を受信していないことは考えられない。
> 設問1 (2)
> 各端末は正常に稼働しており,端末間の通信には障害が発生していないものとする。

(f) 端末Bが「通話不可」である。
この状態で端末Bが"接続要求"を受信することはない。端末Aと端末Cが 発呼/着呼の関係または通話状態にあるので。

--------
実は上記の検討には漏れがあり。
(d) については状況が二分されます。

(d1) 端末Bが「着呼」である(「発呼」は端末C)
ならば前述の具体例のように、①端末Bが要求を受け付けられない状態に該当しますが、

(d2) 端末Bが「着呼」である(「発呼」は端末A)
ならば、端末Bが端末Aからの"接続要求"を正常に処理した状態です。

(c) についても同様に二分されます。

(c1) 端末Bが「発呼」である(「着呼」は端末C)
ならば前述の具体例のように、①端末Bが要求を受け付けられない状態に該当しますが、

(c2) 端末Bが「発呼」である(「着呼」は端末A)
ならば、端末Aが端末Bからの"接続要求"を正常に処理した状態です。

--------
よって。
以上、私の検討した結果では、
①端末Bが要求を受け付けられないとき、に該当するのは (b1)(b2)(c1)(d1) です。
端末Bが他の端末と通話するために接続を試みているとき (26文字)
という公式解答例は(b1)(b2)(c1)(d1)をまとめて一文でうまく表現していると思います。

とくに、
端末Bから通話を要求する方向の流れも、
他端末からの通話要求に端末Bが応えようとする方向の流れも、
通話するために接続を試みているとき
で表現できているのが心憎いと私は感じました。
2024.01.24 22:46
勉強中さん  
(No.15)
うーん、、(1)  端末Aからの端末Bの呼出しより、応答可能ならACK、それ以外ならNAKを返す。
ACK受け取りできるのは"待受け"の時、今回の状態は"応答待ち"("待受け"ではない)なのでNAKを返すということですかね?
何か深読みしすぎている気がしてきましたが・・・
2024.01.24 22:49
勉強中さん  
(No.16)
>jjon-comさん

解説ありがとうございます。
また皆様の解説していただいた内容でようやく問題が咀嚼できてきたような気がします。
この問題についてACK,NAKにこだわっておりましたが、問われているのは端末の各状態において接続要求を受け取った場合の挙動と、それが起きる条件について検討させる問題ですね。このように考えると確かに"待受け"以外は"接続要求"を受け取れなくて当たり前ですね。
2024.01.24 23:01
boyonboyonさん 
AP シルバーマイスター
(No.17)
問題文を要点だけ書くと
「端末Bは"接続要求"を受信すると,要求を受け付けられるときは,端末Aに"ACK応答"を、要求を受け付けられないときは,端末Aに"NAK応答"を送信する。」
になります。接続要求に対する端末BからAへの送信は、"ACK応答"か"NAK応答"のどちらか1つです。

No.9にも書きましたが、
ACK応答:端末Bが待ち受け状態
NAK応答:それ以外
だと思います。それ以外の表現として、解説を読み直しましたところ、
"応答待ち"を「端末Bが他の端末に"接続要求"を送信し、その応答を待っているとき」と説明してありました。
この説明が、「端末Bが他の端末と通話するために接続を試みているとき」に当てはまるのではないかと思います。
2024.01.24 23:11
勉強中さん  
(No.18)
>boyonboyonさん
解説補足ありがとうございます。

振り返ると、問題文で”①端末Bが要求を受け付けられないときは、NAKを~”と書かれていたので、NAKが送られる条件について考える問題とミスリードしたところから迷子になっていたようです。
2024.01.24 23:19
納豆のたれさん 
(No.19)
boyonboyonさん
> No.9にも書きましたが、
> ACK応答:端末Bが待ち受け状態
> NAK応答:それ以外

「それ以外」にしてしまうと、通話状態も含まれてしまいます。
私の考えでも、jjon-comさんの考えでも、通話状態は除外しています。
※正直なところ、最初は確信できていなかった

勉強中さん
> NAKが送られる条件について考える問題とミスリードした
「接続要求を受け付けられないと判断する」とNAKを送信するので、
NAKが送られる条件を考える問題と考えてもよいと思います。
2024.01.25 00:53
momochanさん 
(No.20)
要求を受け付けられるときとは、発呼又は着呼が可能な状態。(待受け)
要求を受け付けられないときとは、"青点灯で"待受け以外の状態。(応答待ち)

"NAK応答"を送信するのは、待受けではない青点灯のボタンに限ってのことかと思いましたが、違うのでしょうか。(要するに応答待ちに限った話ということ)
2024.01.25 10:32
納豆のたれさん 
(No.21)
応答待ちに限った話と考えてしまうと、
青点灯なので端末Aから端末Bに「接続要求」を送ったけれど、端末Bに「接続要求」が到着したときには
・端末Bの状態が「応答待ち」から「発呼」に変わっている場合
・端末Bの状態が「待ち受け」から「着呼」に変わっている場合
が抜け落ちませんか。
伝送遅延や端末内の処理遅延を考慮しなくてよいという条件はないと思います。
これこそが採点講評の「タイミングと特定の条件が重なったとき発生する特別な状態」ではないでしょうか
そもそも、導ける解答は「端末Bが応答待ちのとき」になってしまいIPAの解答にはなりません。

待ち受け状態以外と考えてしまうと、
解答は「端末Bが待ち受け状態以外のとき」になってしまい、やはりIPAが求めている解答を導き出せないです。

私は、どうしたらIPAの解答に近づけるかを考えているのですが、皆さんはご自分の解答(解釈)を示すので議論がかみ合わないのかもしれません。
2024.01.25 15:25
momochanさん 
(No.22)
納豆のたれさん、ありがとうございます。
図2を見ると、「待受け」からボタンタッチで「応答待ち」に、そして「応答待ち」からNAK応答受信で「待受け」となっていましたので、NAK応答は青点灯に限ったものかと思ってしまいました。
通話したいから青ボタンを押すものだという前提で考え、伝送遅延や端末内の処理遅延までは気にしていませんでした。
解説を見てもそこまで細かく考えなくてもよいような印象でしたので、そんな単純な話ではないのですね。
深い考察が必要だと感じました。
2024.01.25 18:08
まだ諦めてなかった人さん 
(No.23)
皆様のレスを見てもう一度考えてみましたが、"応答待ち"だけでなく伝送遅延や端末内の処理遅延まで総合的に考えて「端末Bが他の端末と通話するために接続を試みているとき」になりそうです。
勉強中さんを混乱させてしまい申し訳ないです。
2024.01.25 19:33
momochanさん 
(No.24)
(1)端末Aからの端末Bの呼出し
・利用者が端末Aの青点灯しているボタンBにタッチすると,端末Aは接続状態を応答待ちにして,端末Bに"接続要求"を送信する。

深く考えず単純に上記の文章を端末Bに置き換えてみてもだめなのかな?
「端末Bが接続状態を応答待ちにして、他の端末に"接続要求"を送信するとき」
→「端末Bが他の端末と通話するために接続要求を送信するとき」(27文字)

IPA解答例「端末Bが他の端末と通話するために接続を試みているとき」
2024.01.25 20:52
jjon-comさん 
AP プラチナマイスター
(No.25)
> momochanさん(No.24)
> 深く考えず単純に上記の文章を端末Bに置き換えてみてもだめなのかな?
> 「端末Bが接続状態を応答待ちにして、他の端末に"接続要求"を送信するとき」
> →「端末Bが他の端末と通話するために接続要求を送信するとき」(27文字)

私はダメだと考えます。このサイトの解説文も不十分だと考えます。

それで良いなら、納豆のたれさん(No.3)が指摘したように、

> 解説に書いてあるように、端末Bは"応答待ち"の状態だとすれば、
> 解答は「端末Bが応答待ちのとき」でよいはずです

さらに、旧・ソフトウェア開発技術者試験の時代から長年、
問題を見てきた経験からして、

> 字数制限が短いと簡単に答えられてしまうので
> わざわざ30字に増やして回答させているだけでは?
> 要は「端末Bが応答待ちのとき」を、
> 30字以内に収まるように言い換えなさい、という問題なのだと思います。

というのは「ありえない」と断言したいです。

情報処理技術者試験の日本語はよく考えられているなあ、と
感心することが過去に何度もあったので、
私は No.14 でこの問題を検討してみました。

momochanさん(No.24)も、このサイトの解説文も、
(b)を指摘するだけで、(c1)と(d1)を指摘していない、と私は考えます。
2024.01.25 22:35
jjon-comさん 
AP プラチナマイスター
(No.26)
私の主張の間違いを指摘してくれる方がいらっしゃるかもしれないので、先に告白しておきます。

私は、問題文の
> (1) 端末Aからの端末Bの呼出し
だけを読んで No.14を書きました。

> (2) 端末Aでの発呼の取り消し
> (3) 端末Bでの着呼の受付
> (4) 通話終了
> (5) 端末Cのボタンの色表示
は目を通していないので、この箇所に重要な記述が存在するかもしれません。
2024.01.25 22:52
納豆のたれさん 
(No.27)
端末Bに端末Aの接続要求が到着する直前に端末Cからの接続要求が到着したら、端末Bは端末Cのために「着呼」状態になるので、端末Aの接続要求を受け付けることはできないです。
※No.21にもNo.8にも同様のことを書きました。

「端末Bが他の端末と通話するために接続要求を送信するとき」だと上記のパターンが抜けてしまいますね。
2024.01.25 22:56
momochanさん 
(No.28)
jjon-comさん、納豆のたれさん、
ありがとうございます。

「接続を試みているとき」を「接続要求を送信するとき」に変えても大丈夫そうかなと、ふと思ったのですが、だめでしたか。
そう単純ではなく練られた問題なのですね。
解説していただきとても勉強になりました。
ありがとうございました。
2024.01.25 23:24
勉強中さん  
(No.29)
>まだ諦めてなかった人さん
混乱させるだなんてとんでもないです。
状態を理解する上でとても参考にできました。

>納豆のたれさん
>boyonboyonさん
>jjon-comさん
>momochanさん
皆様ここまでご丁寧な解説ありがとうございました。
この問題に限った話ではないのですが、参考書片手に独学で学習しているせいか、なかなか答を導くための思考パターンが身につけられず、半信半疑で作成した自分の回答と解答例を照らし合わせて憂鬱になるばかりでした。
しかし皆様の議論のおかげで、問題文の読み解き方、状態の整理、問題文で問われている内容の整理の仕方がわかってきた気がします。再度このスレッドを読み返して今後の学習につなげたいと思います。
2024.01.26 01:56

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop