課題A2


課題の概要

課題A2では,Algo のHandsAからLoseAへのデータ転送について見ていきます. HandsAは,プレイヤーのすべての手札を管理しているクラスで,LoseAは各ターンでプレイヤーがゲームに負けたか否かを表すクラスです.
この課題では,

HandsAの情報が更新されたときにその情報をLoseAにPUSH型で転送しているプログラムを,PULL型で転送するようにリファクタリングすること」
を目的とします.
リファクタリングの詳しい作業手順は以下で説明します.


リファクタリング作業

以下では,リファクタリングに要した時間を測っていただきますので,お手元に時計をご用意ください.
時間計測にあたって,急いで作業していただく必要はまったくありません.
最初の課題から最後の課題まで一定のペースを保てるよう, 正しくリファクタリングを行うことを意識してください.
この課題で作業していただく内容は,

「HandsA の情報が更新されたときにその情報を LoseA にPUSH型で転送しているプログラムを,PULL型で転送するようにリファクタリングすること」
です.
下記のリンク先は,時間計測の準備ができるまでクリックしないで下さい.
1つ目のリンク先には,この課題に必要な部分を抜き出したソースコードが,実行の流れがわかるようデバッグ実行の形式で提示されています(デバッガ画面の操作方法についてはこちら).
また2つ目のリンク先には,このプログラムの動作を拡張シーケンス図を用いて表現した図が提示されています.
リンク先のソースコードを,拡張シーケンス図と照らし合わせながら最初から最後まで飛ばさずに追いかけて,全体の流れを把握してください.時間計測後,プログラムの内容と拡張シーケンス図に関する設問にお答えいただきます.
それではリンク先を開いて作業の準備ができ次第,時間計測を開始してください. 時間計測はできる限り,1分以内の単位での計測をお願いします.

ArgoUMLの削除機能で実行されるソースコード(一部)

課題A1の拡張シーケンス図による表現

プログラム理解の作業について以下のアンケートにお答えください.

アンケート回答

プログラムと可視化に関する設問

課題A1のプログラムと可視化について,以下のリンク先の複数の設問にお答えいただきます.その際にも時間計測をお願いいたします.
解答の際には,ソースコードと拡張シーケンス図を何度ご覧いただいてもかまいません.時間が掛かってもかまいませんので,できる限り正確な解答をお願いいたします.
以下のリンク先をクリックしてから,すべての設問の解答を終えるまでの時間を計測してください.こちらもできる限り,1分以内の単位での計測をお願いします.

設問およびアンケート回答

次へ