<!DOCTYPE HTML> <html lang="ja"> <head> <title>課題A2</title> <meta charset="UTF-8"> <!-- <link rel="stylesheet" href="sample.css">--> <!-- XRegExp is bundled with the final shCore.js during build --> <script type="text/javascript" src="../syntaxhighlighter-3.0.83/scripts/XRegExp.js"></script> <script type="text/javascript" src="../syntaxhighlighter-3.0.83/scripts/shCore.js"></script> <script type="text/javascript" src="../syntaxhighlighter-3.0.83/scripts/shBrushJava.js"></script> <link rel="stylesheet" href="../syntaxhighlighter-3.0.83/styles/shCoreEclipse.css" type="text/css" /> <link rel="stylesheet" href="../syntaxhighlighter-3.0.83/styles/shThemeEclipse.css" type="text/css" /> <script type="text/javascript" src="../debugger-like/lineNum.js"></script> <script type="text/javascript"> SyntaxHighlighter.all(); </script> <script type="text/javascript"> function setLineNum() { var id="ActionRemoveFromDiagram"; var lineNumPair = [[1, 39], [3, 60], [5, 82], [8, 85], [15, 92]]; changeLineNum(lineNumPair, id); } </script> </head> <body onLoad="setLineNum()"> <h1>課題A2</h1> <hr size="5"> <h2>課題の概要</h2> <p> 課題A2では,Algo の<code>HandsA</code>から<code>LoseA</code>へのデータ転送について見ていきます. <code>HandsA</code>は,プレイヤーのすべての手札を管理しているクラスで,<code>LoseA</code>は各ターンでプレイヤーがゲームに負けたか否かを表すクラスです.<br> この課題では, <blockquote> <strong>「<code>HandsA</code>の情報が更新されたときにその情報を<code>LoseA</code>にPUSH型で転送しているプログラムを,PULL型で転送するようにリファクタリングすること」</strong> </blockquote> を目的とします.<br> リファクタリングの詳しい作業手順は以下で説明します. </p> <hr size="5"> <h2>リファクタリング作業</h2> <p> 以下では,リファクタリングに要した時間を測っていただきますので,お手元に時計をご用意ください.<br> 時間計測にあたって,急いで作業していただく必要はまったくありません.<br> 最初の課題から最後の課題まで一定のペースを保てるよう, <font color="red">正しくリファクタリングを行うこと</font>を意識してください.<br> この課題で作業していただく内容は, <blockquote> <strong>「HandsA の情報が更新されたときにその情報を LoseA にPUSH型で転送しているプログラムを,PULL型で転送するようにリファクタリングすること」</strong> </blockquote> です.<br> 下記のリンク先は,時間計測の準備ができるまでクリックしないで下さい.<br> 1つ目のリンク先には,この課題に必要な部分を抜き出したソースコードが,実行の流れがわかるようデバッグ実行の形式で提示されています(デバッガ画面の操作方法については<a href="../debugger-like/debuggerHelp.html" target="_blank">こちら</a>).<br> また2つ目のリンク先には,このプログラムの動作を拡張シーケンス図を用いて表現した図が提示されています.<br> リンク先のソースコードを,拡張シーケンス図と<font color="red">照らし合わせながら</font>最初から最後まで飛ばさずに追いかけて,全体の流れを把握してください.時間計測後,プログラムの内容と拡張シーケンス図に関する設問にお答えいただきます.<br> それではリンク先を開いて作業の準備ができ次第,<font color="red">時間計測を開始</font>してください. 時間計測はできる限り,1分以内の単位での計測をお願いします. <br> </p> <blockquote> <p><a href="../debugger-like/debugger.html?key=1" target="_blank">ArgoUMLの削除機能で実行されるソースコード(一部)</a></p> </blockquote> <blockquote> <a href="../realPrograms/ArgoUML/actionRemoveFromDiagram/ExtendedSequenceDiagram.html?title=課題A1&subject=選択された図形(FigClassオブジェクト)の削除" target="_blank">課題A1の拡張シーケンス図による表現</a> </blockquote> <p> プログラム理解の作業について以下のアンケートにお答えください. </p> <blockquote> <a href="https://docs.google.com/forms/d/e/1FAIpQLSfao9lsPqWctRXhEs9osVTjSGdqwwgyEdOqsdTt52c19TABhQ/viewform?usp=sf_link" target="_blank">アンケート回答</a> </blockquote> <hr size="5"> <h2>プログラムと可視化に関する設問</h2> <p> 課題A1のプログラムと可視化について,以下のリンク先の複数の設問にお答えいただきます.その際にも時間計測をお願いいたします.<br> 解答の際には,ソースコードと拡張シーケンス図を何度ご覧いただいてもかまいません.時間が掛かってもかまいませんので,できる限り正確な解答をお願いいたします.<br> 以下のリンク先をクリックしてから,すべての設問の解答を終えるまでの時間を計測してください.こちらもできる限り,1分以内の単位での計測をお願いします. <br> </p> <blockquote> <a href="https://docs.google.com/forms/d/e/1FAIpQLSeGmxZNj3Gn1WnUot23EbpA677_gjAuglDpZ-mY4CPKu7JYjA/viewform?usp=sf_link" target="_blank">設問およびアンケート回答</a> </blockquote> <p style="margin-bottom:2em;"></p> <a href="ProblemA2.html">次へ</a> </body>