diff --git a/Introduction.html b/Introduction.html new file mode 100644 index 0000000..090fea9 --- /dev/null +++ b/Introduction.html @@ -0,0 +1,140 @@ + + + +実験主旨および流れ + + + + +

実験主旨および流れ

+

+甲南大学知能情報学部のソフトウェア設計検証研究室です.
+この度は私共の実験にご協力頂きまして誠にありがとうございます.
+

+実験の主旨と概要について説明いたします. +

+

+ Javaによる実務経験3年以上のエンジニアの方々を対象に,被験者として実験へのご協力をお願いいたします.
+ この実験は,Javaプログラムを手作業でリファクタリングするのに,どの程度の時間を要するのかを計測することを目的としています.
+ 対象となるJavaプログラムは2つあり,それぞれのプログラムに対して1回ずつリファクタリングの課題に取り組んでいただきます.
+ リファクタリングの作業は時間を計測しながらお手元のPCで行っていただき,課題を終えるたびに,アンケートにお答えいただきます.
+ 全体の作業時間としては,2~3時間程度を想定しています. + お答えいただくアンケートは最初と最後,および各リファクタリング課題の完了後の計4個あります.
+ アンケートへの回答が終わるたびに作業を中断していただいて構いません. + 作業はすべてWebおよびローカルのPC上で完結します. +

+ ※過去に実施した私共のいずれの実験にご協力いただいた方でも,こちらの実験には問題なくご参加いただけます. +
+

+

+実験における作業内容について説明いたします.
+ 対象となるJavaプログラムはいずれも小規模なGUIアプリケーションです.それぞれのプログラムに対して1回ずつ,計2回リファクタリングの課題に取り組んでいただきます.
+ 課題で取り組むリファクタリングは,PUSH型のデータ転送をPULL型に変更するものと,PULL型のデータ転送をPUSH型に変更するものの2種類です.
+ PUSH型のデータ転送とPULL型のデータ転送については,実験をはじめる前に改めて説明いたします.
+ 実験では,まずGitHub上に公開した実験用のJavaプログラムを,お手元のPCにダウンロード(クローン)していただき,動作確認を行っていただきます.
+ その後,お手元の時計で時間を計測しながらいずれかのリファクタリングを手作業で実施していただきます.
+ 開発環境は何をお使いいただいても結構ですが,主に Eclipse と IntelliJ IDEA を想定しています.リファクタリング課題を終えるたびに,アンケートにお答えいただきます.
+ また,実験の開始前と終了後にも1つずつアンケートにお答えいただきます.
+

+

+ご応募までの手順を説明いたします. +

    +
  1. 本HTML(実験に関する説明,個人情報の取り扱いに関する説明,報酬を含む契約に関する説明)をお読みいただきます.
  2. +
  3. 1の全てに同意できる場合は,下記の同意確認フォームにその旨を入力していただきます.
  4. +
  5. ご同意をもって応募の条件とさせていただきます.ご同意いただけない場合はご応募いただけません.
  6. +
+実験は以下の流れで行います. +
    +
  1. 下記の同意確認フォームにご記入いただきます.
  2. +
  3. 実験にご同意いただける場合は,個人アンケートにお答えいただきます.
  4. +
  5. 実験へのご同意,個人アンケートの内容,プロフィールの内容等を元に実験依頼の可否を判断させていただきます.
  6. +
  7. 実験依頼の可否についてご連絡いたします.実験をご依頼する場合は,実験準備が整い次第,実験用のWebページをこちらからお伝えいたします.(実験準備に数日を要する可能性があります.)
  8. +
  9. 実験の前半部分に取り組んでいただきます.
  10. + +
  11. 実験の後半部分に取り組んでいただきます.
  12. + +
  13. 最後に実験全体に関してのアンケートにお答えいただきます.
  14. +
+

+以上が実験の流れです.
+全ての作業はWebおよびリモートデスクトップ上で完結します.
+

+ +

+実験中の危険性に関して説明いたします.
+通常のPC画面に向かっている際と危険性は変わりません. +

+ +

+実験時間(拘束時間)に関して説明いたします.
+全体の作業としては4~6時間を想定していますが,人によっては多少前後する可能性があります.
+時間に余裕がある際に行ってください.
+また,後日大学にお越しいただいたり,こちらから連絡を行うことはありません(参加者に不利益が発生する恐れのある場合は除く). +

+ +

+実験への参加取りやめに関して説明いたします.
+実験の途中で,参加を取りやめることが可能です.
+その場合の報酬に関する取扱いついては.以下で説明いたします. +

+ +

+契約と報酬に関して説明いたします.
+

+ + +

+個人情報の取り扱いについて説明いたします.
+

+ + + +

+ +

+同意確認フォームはこちらです. +

+ +
+ 同意確認フォーム +
+ +

+実験にご同意いただけましたら,以下の個人アンケートにご協力ください. +

+ +
+ 個人アンケートはこちら +
+ + diff --git a/courseA/DescriptionAlgolike.html b/courseA/DescriptionAlgolike.html new file mode 100644 index 0000000..d9e6a8e --- /dev/null +++ b/courseA/DescriptionAlgolike.html @@ -0,0 +1,31 @@ + + + +Argolike説明 + + + + +

ArgoUMLはJavaで書かれたオープンソースのUMLエディタです.

+

ArgoUMLを起動すると,まずクラス図の編集画面が開きます.

+ +

編集画面上で行える操作はモードによって異なります.

+

モードの切り替えは,ツールバーのボタンをクリックすることによって行うことができます.

+ +

例えばクラス配置モードでは,編集画面上をクリックすると,クリックした位置にクラスを配置することができます(クラス配置機能).

+ +

クラスを配置すると選択モードに戻ります.

+

選択モードでは,編集画面上に配置されたクラスをクリックすると,そのクラスを選択状態にすることができます(選択機能).

+ +

選択状態のクラスは,Delキーを押すことで削除することができます(削除機能).

+ +

+次へ +

+ + diff --git a/courseA/EnvironmentAlgolike.html b/courseA/EnvironmentAlgolike.html new file mode 100644 index 0000000..a460e39 --- /dev/null +++ b/courseA/EnvironmentAlgolike.html @@ -0,0 +1,31 @@ + + + +Argolikeの環境構築とテスト + + + + +

ArgoUMLはJavaで書かれたオープンソースのUMLエディタです.

+

ArgoUMLを起動すると,まずクラス図の編集画面が開きます.

+ +

編集画面上で行える操作はモードによって異なります.

+

モードの切り替えは,ツールバーのボタンをクリックすることによって行うことができます.

+ +

例えばクラス配置モードでは,編集画面上をクリックすると,クリックした位置にクラスを配置することができます(クラス配置機能).

+ +

クラスを配置すると選択モードに戻ります.

+

選択モードでは,編集画面上に配置されたクラスをクリックすると,そのクラスを選択状態にすることができます(選択機能).

+ +

選択状態のクラスは,Delキーを押すことで削除することができます(削除機能).

+ +

+次へ +

+ + diff --git a/courseA/ProblemA2.html b/courseA/ProblemA2.html new file mode 100644 index 0000000..d119189 --- /dev/null +++ b/courseA/ProblemA2.html @@ -0,0 +1,98 @@ + + + +課題A2 + + + + + + + + + + + + + + + +

課題A2

+ +
+ +

課題の概要

+ +

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

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

+ +
+ +

リファクタリング作業

+ +

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

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

+ +
+

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

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

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

+ +
+ アンケート回答 +
+ +
+ +

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

+ +

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

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

+次へ +