DEIM Forum 2013 D5-3

仮想マシンを用いたネットワーク構築演習のための演習プロセス管理システム
能見 惇也†

立岩佑一郎†

山本 大介†

高橋直久†† 名古屋工業大学大学院工学研究科情報工学専攻 〒 466–8555 愛知県名古屋市昭和区御器所町
E-mail: †noumi@moss.elcom.nitech.ac.jp, ††{tateiwa,yamamoto.daisuke,naohisa}@nitech.ac.jp
あらまし 本稿では，設問に対して正解と受講者の作業過程，進捗の表現を行う演習プロセス管理グラフ EPMG を提案することで，仮想マシンを用いたネットワーク構築演習において指導者が受講者の構築した仮想マシンネットワー
クを把握し難いという問題の解決を目指す．また,EPMG を用いた以下の機能を有する演習プロセス管理システムを提案し，その実現法を述べる．EPMG 生成機能：設問に対する正解から EPMG を生成．操作履歴収集機能：演習時の操作とその結果をネットワークを介して収集し，操作履歴 DB を作成．演習プロセス管理画面表示機能：EPMG を
指導者の利用する端末上に提示．これらの機能により，より容易な受講者の構築した仮想マシンネットワークや進捗の把握を目指す．
キーワード

e-ラーニング, ネットワーク構築演習, 仮想マシン, データベース, 進捗管理

Management system of exercise process for network construction exercise
using virtual machines
Junya NOUMI† , Yuichiro TATEIWA† , Daisuke YAMAMOTO† , and Naohisa TAKAHASHI†† Department of Computer Science and Engineering, Graduate School of Engineering, Nagoya Institute ofTechnology
Gokiso-cho, Showa-ku, Nagoya-shi, Aichi, 466-8555 Japan
E-mail: †noumi@moss.elcom.nitech.ac.jp, ††{tateiwa,yamamoto.daisuke,naohisa}@nitech.ac.jp
Abstract In this report, we aim at solving a problem that it is diﬃcult

for the teacher to grasp the virtual

machine network which the student built , by suggesting exercise process management graph (EPMG) which expresses

the question’s correct answer and students’s processes and the students’s progress. In addition, I suggest

a exercise process management system which has the following functions using EPMG and indicate the realization
method EPMG generation function:the function generate EPMG from the question’s correct answer. operation
history collection function：the function collects the operation of the students and the results through a networkand creates operation history DB. exercise process management screen display function:the function shows EPMG
on the terminal which the teacher uses. By these functions, we aim to easily grasp of student’s progress and statusof virtual machine network.
Key words E-Learning,network construction exercise ,virtual machine,database,progress management

1. は じ め にワークの構築は計算機上に仮想的なネットワーク機器を稼働させて実現される．

筆者らは，仮想マシンネットワークを用いたネットワーク演

ネットワーク構築演習は，複数台のネットワーク機器により習システム LiNeS [1] を開発・研究し，基礎的なネットワーク

ネットワークを構築するものである．演習中に指導者は，受講構築演習を学習する演習へ適用している．LiNeS は，仮想マ者全体から見て演習が遅れている受講者や質問者に対して指導シン User-mode Linux（以下，UML）[2] を利用し，仮想マシを行う．このため指導者は，全受講者の進捗や受講者が仮想マンによるネットワーク（仮想マシンネットワーク）の構築環境

シンネットワークを構築するために行った操作（以降，作業過を１台の計算機上に提供する．LiNeS による仮想マシンネット

程とする）, 仮想マシンネットワークを詳しく知る必要がある．

しかし，指導者が受講者の構築した仮想マシンネットワークを

ク診断ツール (ping, dig, tcpdump, telnet) を取り扱う．演習

知るためには，受講者の利用する LiNeS を操作する必要があで取り扱う設問の例題を図 1 に示す．

り，指導者が仮想マシンネットワークの確認を行っている間は受講者は図 2 の LiNeS の仮想マシンネットワーク構築画面に受講者は演習を進めることができない．また，指導者が受講者てトポロジー構成を行う．トポロジー構成の操作では，仮想マの作業過程を知るためには，受講者を常時監視している必要がシンの設置，起動，停止，ケーブルの接続，切断を行うことがあるが，受講者の人数に対して指導者の人数が少ないことによ可能である．また，サーバ，ルータ，クライアントの各仮想マシ

り常時監視することは困難である．これらのことから，以下のンでは，起動時に表示されるコマンドプロンプトにて TCP/IP

問題が生じる．

設定，サーバソフトウェア設定，ネットワーク診断ツールなど

問題点 1： LiNeS を直接操作することによる演習効率の低下の linux コマンド [8] を自由な手順で行うことができる．

や全受講者の常時監視が難しいことから，指導者が受講者の構築した仮想マシンネットワークと作業過程を知ることが困難である．
問題点 2： 設問によって操作が順序指定されているものや機器操作の規則も存在するため，それらと学習者のネットワークの現状および作業過程との対応がとりづらく，進捗を把握することが困難である．
これらの問題点に対して本研究では，受講者の演習を妨げずに全受講者の作業過程を収集することで仮想マシンネットワー
クを表現し，指導者が進捗を把握できることを目標としている．
そのため，LiNeS に対する受講者の作業をネットワークを介して収集，指導者が利用する端末上で受講者の作業過程と仮想マ

図 1 LiNeS を用いたネットワーク構築演習における設問の例

シンネットワークおよび進捗状況を把握することが可能なシステムを提案する．提案システムでは，各問題に対して以下の方法で解決を試みる．
解決案 1： 全受講者の LiNeS に対する操作と詳細情報をネッ
トワークを介して収集し，サーバ上に格納，指導者の使用する端末上に作業過程を表示する
解決案 2： 仮想マシンネットワークをノード（プロダクトと呼ぶ）とし，操作を実線のアーク（プロセスと呼ぶ）とするグ
ラフにより設問に対する正解を表現する．正解のグラフでは機器操作の規則と設問で要求された操作手順をプロセスとしたグ

図 2 LiNeS による仮想マシンネットワークの構築

ラフに対し，受講者の操作をプロセスとしてマッピング表示する（このグラフを演習プロセス管理グラフと呼ぶ）
受講者の進捗把握を支援する従来研究として，遠隔教育シス

3. 提案システム
3. 1 提案システムの概要

テム [3] を用いた LINUX 授業におけるブレンディッドラーニ

提案システムの目標は，受講者の演習を妨げずに全受講者のングシステム [4] や コンピュータ支援評価システム [5], [6] の問

作業過程を収集することで仮想マシンネットワークを表現し，題点を解決したプログラミング演習のための進捗モニタリング

指導者が進捗を把握できることである．提案システムは，LiNeS

システム [7] が挙げられる．これらの従来研究では，受講者のを用いたネットワーク構築演習において，全受講者の LiNeS に

進捗把握を設問単位で行いる．本研究では，1 つの設問におけ対する操作および出力結果などの詳細情報をネットワークを介る進捗をグラフにより表現することで，操作単位の進捗を表す

して収集し，サーバ上のデータベースに格納，指導者の使用すことが可能である．

る端末上に作業過程を表示するシステムである．

2. LiNeS によるネットワーク構築演習
LiNeS を用いたネットワーク構築演習では，ネットワーク構
築初学者を演習の対象としている．また演習で使用する仮想的提案システムは図 3 の様に受講者使用端末と指導者使用端末から成り，受講者使用端末上の操作履歴収集機能と指導者使用
端末上の演習プロセス管理グラフ作成機能，演習プロセス管理
画面表示機能，演習データベースから構成されている．

なネットワーク機器は，サーバ，ルータ，クライアント，スイッ

操作履歴は，操作名や実行時刻といった演習プロセス管理グ

チングハブ，ネットワークケーブルを用いて演習を行う．演習

ラフとマッピングを行うための，受講者が LiNeS に対して行っでは，仮想マシンネットワークのトポロジー構成，TCP/IP 設

た操作の履歴データである．演習プロセス管理グラフ作成用入定 (IP アドレス，サブネットマスク，経路制御），サーバソフ

力データは，設問で使用されるマシンの台数やプロセスの順序

トウェア設定 (WWW，MAIL,DNS,FTP,SSH），ネットワー

関係といった演習プロセス管理グラフ構成データを作成するたて比較し，マッピングすることによって受講者の進捗をグラフ上で視覚的に表現する．正解を表現するグラフ上で受講者の進捗を視覚的に表示することにより，1. 章の問題点２の解決を試みた．受講者が次に実行すべき操作は，グラフ上で受講者の操作がマッピングされているプロセスの先にある，操作がマッピングされていないプロセスである．受講者全体における受講者の進捗は，全受講者の作業過程をグラフ上にマッピングし，受図 3 提案システムの構成図

めのデータである．演習プロセス管理グラフ構成データは，プ
ロダクトの座標やプロセスの順序関係といった演習プロセス管
理グラフを構成するためのデータである．

講者の進捗と比較することにより知ることが可能となる．

3. 2. 2 演習プロセス管理グラフの特徴
演習プロセス管理グラフでは，受講者 1 人 1 人が設問に沿った仮想マシンネットワークを構築しているかを表現する．演習

操作履歴収集機能は，ネットワークを介して全受講者の操作

プロセス管理グラフは，指導者が受講者に対して提示する設

履歴を収集し，サーバ上の演習データベースに格納する．演習

問１つに対して 1 つ作成する．演習プロセス管理グラフ上でプロセス管理グラフ作成機能は，指導者の入力した演習プロセ

は，仮想マシンネットワークを仮想マシン毎に表現する．またス管理グラフ作成用入力データをもとに演習プロセス管理グラ

LiNeS を用いたネットワーク構築演習では，仮想マシンの設フ構成データを作成し，演習データベースに格納する．演習プ

置・起動といった順序関係の決まっているプロセスと仮想マシロセス管理画面表示機能は，演習プロセス管理グラフ構成デー

ンの起動・ケーブルの接続といった順不同であるプロセスが存

タと操作履歴をもとにマッピングを行った演習プロセス管理グ

在する．プロセスが順不同の場合，1 つのプロダクトが複数の

ラフ，受講者の操作履歴，受講者が次に実行すべき操作，受講プロセスの元となり，グラフは枝分かれした形となる．さらに，者が最後に実行した操作の実行時刻から経過した時間の 4 項目

ping コマンドによる導通確認などのプロセスでは，仮想マシン

を指導者の使用する端末上で表示する．

の起動・ケーブルの接続といった順不同であるプロセスを事前また，提案システムを利用した演習の流れを以下に示す．

に実行している必要がある．このようにあるプロセスが順不同

指導者は演習プロセス管理グラフ作成機能に対なプロセス群を事前に実行している必要がある場合，複数のプ

して演習プロセス管理グラフ作成用入力データを入力すること

ロセスの接続先が１つのプロダクトとなる．この時，複数のプ

で，演習プロセス管理グラフを作成する．

ロセスの接続先となる１つのプロダクトは，複数の操作を実行

演習中：

受講者が LiNeS に対する操作を行うたびに操作履した仮想マシンネットワークが表現されてしまうため，指導者

歴収集機能によって操作履歴をサーバ上の演習データベースには１つ１つのプロセス実行後の仮想マシンネットワークを確認格納する．管理画面表示機能は格納された操作履歴とともに演することができない．そこで，これらの仮想マシンネットワー

習プロセス管理グラフを呼び出し，指導者に対して演習プロセ

クを LiNeS に対する空の操作としてダミープロセスを挟み込む

ス管理グラフ，受講者の操作履歴，受講者が次に実行すべき操ことによりダミープロセス先のプロダクトで表現する．ダミー

作，受講者が最後に実行した操作の実行時刻から経過した時間

プロセスはグラフ上では破線のアークで表現する．演習プロセの表示を行う．

ス管理グラフの例を図 4 に示す．図 4 の演習プロセス管理グラ

演習開始前：

3. 2 演習プロセス管理グラフ

フは，図 1 を設問とし，1.1 を解答し終わった受講者の作業過

3. 2. 1 演習プロセス管理グラフの概要

程をマッピングしたものである．

LiNeS を用いたネットワーク構築演習で指導者は，受講者に対するアドバイスを行うために受講者が次に実行すべき操作を，演習に遅れている受講者に対して指導するために受講者全体における受講者の進捗を知る必要がある．このとき指導者は受講者の進捗を把握する必要がある．しかし，指導者が受講者の進捗を把握するためには，受講者の操作履歴と設問に対する正解の作業過程を比較する必要があり，1. 章の問題点 2 で示したよ
うに進捗把握が困難である．ネットワーク構築演習では，ある仮想マシンネットワークから１つの操作を実行することによって別の仮想マシンネットワークへ変化する．このことから，ある仮想マシンネットワークの構築について，仮想マシンネット
ワークをノードとし，操作をアークとする有効辺グラフで表現することが可能である．そこで設問に対する正解について，仮想マシンネットワークをノード（プロセスと呼ぶ）とし，操作を実線のアーク（プロセスと呼ぶ）とする有効辺グラフで表現
する．そしてこのグラフに対して受講者の操作をプロセスとし

図 4 演習プロセス管理グラフの例 (強調部分：緑)3. 3 提案システムの特徴
提案システムでは特徴として，以下の３つの機能を有する．
特徴１

操作履歴収集機能

LiNeS を用いたネットワーク構築演習において全受講者のLiNeS に対する操作および出力結果などの詳細情報をネット
ワークを介して収集し，サーバ上の演習データベースに格納する機能 [9]．この機能により，指導者が受講者の使用する LiNeS

表 1 5 つの操作とコマンド名，マッピング用オプションデータの対
応表
操作

コマンド名

マッピング用オプションデータ

マシン設置

NewMachine

マシン種類（サーバ，ハブなど）

マシン起動

BootMachine

マシン停止

HaltMachine

ケーブル接続Connect

対象となったデバイス名

ケーブル切断Disconnect

ケーブルを一意に決定する IDを直接操作することから，その間に受講者は演習を進めることができないため，受講者の演習を妨げてしまい演習効率が低下するといった問題（問題点１）を解決する．
特徴２

演習プロセス管理グラフ作成機能

4. 1. 2 linux コマンド履歴の収集
仮想マシンネットワーク上の linux コマンドによる設定が可
能な仮想マシンに対して，実行された linux コマンドの履歴を演習プロセス管理グラフを表現するのに必要となるデータ収集する．linux コマンド履歴の収集では一定期間ごとに履歴の（演習プロセス管理グラフ構成データ）を作成し，演習データ収集を行い，コマンドの実行時刻，対象となった仮想マシンをベースに格納する機能．指導者はこの機能に対して，演習プロ

一意に決定する ID，コマンド名，マッピング用オプションデー

セス管理グラフ構成データ作成に必要となるデータ（演習プロタといった４つのデータを収集する．linux コマンド履歴の収セス管理グラフ作成用入力データ）の入力を行う．

集におけるマッピング用オプションデータは，linux コマンド

特徴３

実行時にコマンドを実行したプロンプトに対して出力される出演習プロセス管理画面表示機能

演習プロセス管理グラフ，受講者の操作履歴一覧，受講者が力結果とする．linux コマンド履歴の収集について，コマンド次に実行すべき操作一覧，受講者が最後に操作を行った時刻か

実行時刻，コマンド名は history コマンドによって，プロンプ

ら経過した時間の４つを表現する機能．この機能により演習トに対する出力結果は script コマンドによって収集を行う．[9]プロセス管理グラフを表示することで，LiNeS を用いたネット

4. 2 演習プロセス管理グラフ作成機能

ワーク構築演習における問題点２を解決する．

演習プロセス管理グラフ作成機能では指導者からの演習プロ

3. 4 演習データベース

セス管理グラフ作成用データの入力をもとに，ダミープロセス

サーバ上の演習データベースでは，操作履歴を格納する操作の生成，プロダクトの作成，プロダクトの座標決定を行うこと

履歴テーブルと，演習プロセス管理グラフ構成データを格納すで演習プロセス管理グラフ構成データの作成を行う．

る演習プロセス管理グラフ構成テーブルの２つのテーブルをも

ステップ１：

つ．操作履歴テーブルのデータは操作履歴収集機能により格納

演習プロセス管理グラフ作成用データは，使用する仮想マシン

され，演習プロセス管理画面表示機能により呼び出される．まの台数と複数のプロセス構成データからなる．プロセス構成

た，演習プロセス管理グラフ構成テーブルのデータは演習プロ

データは，コマンド名，マッピング用オプションデータ，前にセス管理グラフ作成機能により格納され，演習プロセス管理画

つながるプロセス，後ろにつながるプロセス，対象となる仮想面表示機能により呼び出される．

マシンを一意に決定する ID の 5 つ組で構成する．コマンド名

演習プロセス管理グラフ作成用データとマッピング用オプションデータは，操作履歴収集機能で示し

4. 提案システムの実現法

たものと同様である．前につながるプロセスと後ろにつながる

4. 1 操作履歴収集機能

プロセスはプロセスの順序を決定する項目である．例として，

LiNeS による仮想マシンネットワークの構築において，受講

仮想マシンの設置，起動，ネットワークインターフェース設定

者の行う操作は GUI 操作によるトポロジー作成と linux コマンの 3 つの操作を順に行うとき，仮想マシン起動の前につながるドによる各仮想マシンの設定操作がある．そこで操作履歴収集

プロセスは仮想マシンの設置，後につながるプロセスはネット

機能では，GUI 操作によるトポロジー作成操作をトポロジー作

ワークインターフェースの設定となる．

成履歴，linux コマンドによる各仮想マシンの設定操作を linux

ステップ２：

コマンド履歴として収集し．サーバ上の演習データベースの操プロセス構成データにおいて，前につながるプロセスに複数の作履歴テーブルに格納する．

プロセスが設定されている場合，その数だけダミープロセスのダミープロセスの生成

4. 1. 1 トポロジー作成履歴の収集生成を行う．生成されたダミープロセスは生成の原因となった

LiNeS による仮想マシンネットワーク構築におけるトポロ

２つのプロセスの間に挟まれる形で前後につながるプロセスのジー作成操作では，仮想マシンの設置，起動，停止，ケーブル設定を行う．

の接続，切断といった５つの操作がある．トポロジー作成履歴

ステップ３：の収集では，各操作が実行されたとき，操作の実行時刻，対象

全プロセス，全ダミープロセスの前後にプロダクトを生成し配となった仮想マシンを一意に決定する ID，コマンド名，マッピ置する．生成したプロダクトは，プロダクト ID，対象となる

ング用オプションデータといった４つのデータを収集する．各

仮想マシンを一意に決定する ID，横軸描画位置，縦軸描画位

操作に対するコマンド名，マッピング用オプションデータは表

置の４つ組によって表現される．横軸描画位置，縦軸描画位置

1 に示す．

の値は次のプロダクトの座標決定により値が決定される．

プロダクトの作成

ステップ４：

素とする集合を NPS ＝ { nps1 , nps2 , · · · , npsn } とする．

プロダクトの座標決定

各マシン毎に先頭となるプロダクトからプロダクトを順にたど演習プロセス管理グラフ上で強調表示を行うプロセスとプロダ

り，プロダクトの描画位置を決定する．プロダクトの縦軸描画

クトを S ＝ { PS,PD } で表す．プロセスと受講者の操作履歴

位置は，マシン毎に先頭プロダクトからたどり到達するためのを比較した結果，プロセスに対応付けを行った操作履歴を 操たどった回数を設定する．プロダクトの横軸描画位置は，マシ

作履歴：or , プロセス：ps の組 op ＝ (or,ps) で表し，この組

ン毎に縦軸描画位置の値が同じものを１から順に割り当てる．

を要素とし or.time 昇順にソートした配列 OP ＝ { op1 , op2 ,ステップ５：· · · , opn } とする．OP について，操作履歴 or が演習プロセ

演習プロセス管理グラフ構成データ

演習プロセス管理グラフ構成データはマシン構成データ，プロス管理グラフ上のどのプロセスとも対応付けされなかった場合，ダクト構成データ，プロセス構成データのデータからなり，各or の組となる ps は空とする．
説明用関数として以下のものを定義する．入力を ID とし，

データは以下の構成となる．
マシン構成データ： マシン ID，先頭のプロダクト ID

入力値を ID としてもつ要素を返す関数として，マシン構成

プロダクト構成データ： プロダクト ID, 対象マシン ID，横軸

データ，プロダクト構成データ，プロセス構成データ，操作履歴

描画位置，縦軸描画位置

それぞれを RetM(mid) ＝ m(m ∈ M),RetPD(pdid) ＝ pd(pdプロセス構成データ： プロセス ID，対象マシン ID, コマンド∈ PD),RetPS(psid) ＝ ps(ps ∈ PS),RetOR(orid) ＝ or(or ∈名，マッピング用オプションデータ，ダミー判定，接続元プロOR) とする.
また，M，PD，PS，OR は演習データベースから読み込む

ダクト ID, 接続先プロダクト ID

4. 3 演習プロセス管理画面表示機能

ものを初期値とする．NPS の初期値は，m ∈ M となる全て

演習プロセス管理画面表示機能では，演習データベースからの m について m.hpdid ＝ ps.srcpdid となる ps(ps ∈ PS)

演習プロセス管理グラフ構成データと受講者の操作履歴を呼びを用いて nps ＝ (m.mid,ps.psid) 持つ．S.PS の初期値は空と出し，演習プロセス管理グラフ，受講者の操作履歴，受講者がする．S.PD の初期値は，m ∈ M となる全ての m について次に実行すべき操作，受講者が最後に操作を行った時刻から経RetPD(m.hpdid) を持つ．OP の初期値は空とする．

過した時間の４つを表示する．

１．

演習プロセス管理グラフに対する操作履歴のマッピング

演習プロセス管理グラフに対する操作履歴のマッピングで

4. 3. 1 演習プロセス管理グラフ
演習プロセス管理グラフでは，演習プロセス管理グラフのプは，操作履歴とグラフ上プロセスとの比較を行う．比較関数をこの関数への入力を M,PD,PS,OR,NPS,S,OP

出力をロセスと操作履歴との比較を行う．比較した結果，操作履歴がF1

プロセスに対応付けられた場合，そのプロセスをグラフ上で強NPS,S,OP とし，F1(M,PD,PS,OR,NPS,S,OP) → NPS,S,OPとする．比較関数 F1 のアルゴリズムを以下に示す．

調表示を行う．
本稿では，集合・配列の各要素の参照はドット表記を用いる．

STEP1 OR の先頭要素 or を取り出す．OR が空の場合は

例えば，データ構造 X ＝（y,z）の変数 w において，y を参照

STEP7 へ進む．

する場合は w.y と表す．

STEP2 or.mid ＝ nps.mid かつ or.cmd ＝ RetPS(nps.psid).cmd

演習管理グラフで行われる 4 つの動作を実現するために以下

か つ or.opt ＝ RetPS(nps.psid).opt を 満 た す nps(nps ∈マシン ID:mid，先NPS) を求め, 取り出す．nps が求まった場合,OP に ( or ,頭のプロダクト ID:hpdid の組 m ＝（mid,hpdid）で表し，こRetPS(nps.psid) ) を格納し，S.PS に RetPS(nps.psid) を格の組を要素とする集合を M ＝ { m1 , m2 , · · · , mn } とす

納する．nps が求まらなかった場合,OP に ( or , ps = 空 ) をる．プロダクト構成データを プロダクト ID：pdid, 対象マシ

格納し，STEP1 へ戻る．

ン ID：mid，横軸描画位置：column，縦軸描画位置：row

STEP3 pd (pd ∈ PD) = RetPD(RetPS(nps.psid).dstpdid)の組 pd ＝（pdid,mid,column,row）で表し，この組を要素ととする．

のものを定義する．マシン構成データをする集合を PD ＝ { pd1 , pd2 , · · · , pdn } とする．プロセス

STEP4 pd.pdid ＝ ps.dstpdid を満たす ps(ps ∈ PS) の集

構成データを プロセス ID：psid，対象マシン ID：mid, コマ合 SRCPS を求め，SRCPS ⊂ S.PS の真偽を確認する．真のンド名：cmd，マッピング用オプションデータ：opt，ダミー判

場合，pd を S.PD に格納する. 偽の場合，STEP1 へ戻る．

定：dummy，接続元プロダクト ID：srcpdid, 接続先プロダク

STEP5 pd.pdid ＝ ps.srcpdid を満たす ps(ps ∈ PS) 全て

ト ID：destpdidについて，ダミーあるか否かを確認する．ps.dummy ＝ falseの組 ps ＝（psid，mid,cmd，opt，dummy，

srcpdid,destpdid）で表し，この組を要素とする集合を PS ＝の場合，NPS に (ps.mid,ps.psid) を格納する．ps.dummy ＝{ ps1 , ps2 , · · · , psn } とする．受講者の操作履歴をtrue の場合，S.PS に ps を格納し，pd ＝ RetPD(ps.dstpdid)

操作

履歴 ID：orid，対象マシン ID：mid，コマンド名：cmd，実行として STEP4 へ戻る．

時刻：time，マッピング用オプションデータ：opt の組 or ＝

STEP6 STEP1 へ戻る．

（orid,mid,cmd,time,opt）で表し，この組を要素とし time 昇

STEP7 NPS,S,OP を返す．

順にソートした配列を OR ＝ { or1 , or2 , · · · , orn } とする．
各マシンで次に実行すべきプロセスを マシン ID：mid，プ
ロセス ID：psid の組 nps ＝（mid,psid）で表し，この組を要比較関数 F1 を実行後，S に格納されているプロセス，プロ
ダクトを強調表示することでマッピングする．

２．

受講者の進捗表示

演習プロセス管理グラフ上で受講者の操作履歴をマッピング

ドバイスについて，有効性を評価する．

6. 1 評価実験の内容

し，強調表示することによって，受講者の進捗を表示する．

【評価実験の被験者】

３．

TA（Teaching Assistant）もしくは技術補佐員の経験を持つ，受講者が次に実行すべき操作

演習プロセスグラフ上で強調表示されたプロダクトに接続さ

名古屋工業大学大学院工学研究科情報工学専攻の学生 5 名．

れている，強調表示されていないプロセスが次に実行すべき操【評価実験の方法】

作となる．演習プロセスグラフ上で受講者の進捗を表示するこ

図 6 に示す設問に対する質問者の解答として，導通確認に失敗とにより，受講者の次に実行すべき操作を表示する．

する３パターンの解答を用意する．

４．

パターン A： Shb2 の起動し忘れ

受講者全体における受講者の進捗表示

マッピングで使用される比較関数 F1 を全受講者の操作履歴

パターン B： Rtr1 eth1 の IP アドレス設定ミスに対して実行し，各プロセス，プロダクトで操作履歴の対応付

パターン C： Svr2 のデフォルトルートの設定ミスけがされている人数をカウントする．カウントした人数の大小を，演習プロセス管理グラフ上で表示するプロセス，プロダク
トの色の濃淡で表す．プロセス，プロダクトの色の濃淡と受講者の進捗表示を見比べることにより，全受講者における受講者の進捗を表示する．

4. 3. 2 受講者の操作履歴一覧
op ∈ OP となるすべての op について，対象となるマシン毎に op.or.cmd と op.or.time をリストの形式で表示する．また，

op.ps が空の場合，op.or.cmd と op.or.time を強調表示する．
4. 3. 3 受講者が次に実行すべき操作一覧
nps ∈ NPS となるすべてを nps について，対象となるマシ
ン毎に RetPS(nps.psid).cmd をリストの形式で表示する．

4. 3. 4 受講者が最後に操作を行った時刻から経過した時間
受講者が最後に実行した操作となる orn ∈ OR について，現在時刻と or.time を比較し，その差となる時刻を表示する．

5. プロトタイプシステムの実装

図6

実験で使用した設問

被験者には，上記の３パターンの解答それぞれに対してローテーションしながら，以下の手法によって受講者の進捗を把握し，アドバイスとして，誤り箇所の特定，受講者が次に実行すべき操作を発見してもらう．

実現法をもとにプロトタイプシステムの実装を行った．使用
言語は C++ を使用し，Qt ライブラリ [10] を使用した．また，
データベースには MySQL [11] を使用した．実装した演習プロ
セス管理画面表示機能を図 5 に示す．

手法１： 従来手法である LiNeS を直接操作
手法２： 対象となるマシン，コマンド名，詳細情報 の３つ組を時系列順に表示した操作履歴一覧表示
手法３： 提案手法である演習プロセス管理画面表示機能
進捗把握について以下の手順で受講者の進捗把握を行う．
手順１： 進捗確認に必要となるデータの決定
手順２： 進捗確認に必要となるデータの収集
手順３： 収集したデータを解釈し，進捗を把握
アドバイスについてまた，以下の手順でアドバイスを行う．
手順１： 受講者の進捗を把握
手順２： 誤り箇所，もしくは躓き箇所を特定する
手順３： 次に実行すべき操作を特定し，アドバイスする
受講者の進捗確認，解答に対するアドバイスについて，手法

図5

プロトタイプシステム（演習プロセス管理画面表示機能）

１と手法３を比較することで，従来手法と比較した提案手法の優位性を評価する．また，操作履歴収集を前提とした際の受講

6. 評 価 実 験
仮想マシンを用いたネットワーク構築演習における演習プロ
セス管理グラフを用いた受講者の進捗把握と質問者に対するア

者の進捗確認，解答に対するアドバイスについて，手法２と手法３を比較することで，演習プロセス管理画面表示機能の優位性を評価する．

評価実験１として，アドバイスにかかった時間を計測する．

【総合評価】

評価実験２として，被験者にアンケート調査を行う．

項目１０

提案手法は受講者の進捗把握について，従来手法である LiNeS 直接操作による進捗把握，操作リストによる進捗【アンケートの内容】

把握と比べて優れていると思いましたか

進捗確認の手順とアドバイスの手順，提案システムの総合評価(1) 従来手法による進捗把握との比較について，５段階評価のアンケート調査を行った．
（５段階評価(2) 操作リスト一覧表示による進捗把握との比較｛5. そう思う—4. どちらかといえばそう思う—3. どちらともい

6. 2 評価実験の結果えない—2. どちらかといえばそう思わない—1. そう思わない｝）
アンケート調査の項目を以下に示す．

アドバイスにかかった時間の比較による評価 と アンケート調査による評価 の結果を以下に示す．

【進捗把握の手順に関する質問】

6. 2. 1 アドバイスにかかった時間の比較による評価

項目１ 進捗把握の手順１について，進捗把握に必要となる

従来手法，操作履歴一覧表示，提案手法 の３手法において，データの決定は難しかったですか(1) 従来手法である LiNeS 直接操作による進捗把握

被験者がアドバイスとして誤り箇所もしくは躓き箇所を特定し，次に実行すべき操作を発見するのにかかった時間を表 2 に示す．
表 2 実験１の結果(2) 操作リスト一覧表示による進捗把握

従来手法

操作履歴一覧表示

提案手法

被験者１

A：１００ (秒)B：９０ (秒)C：２７ (秒)

被験者２

B：１７７ (秒)C：８６ (秒)A：２３ (秒)被験者３

C：１８０ (秒)A：２３６ (秒)B：６０ (秒)

被験者４

A：１３３ (秒)B：８９ (秒)C：１１ (秒)項目３ 進捗把握の手順 2 について，従来手法である LiNeS

被験者５

B：１４７ (秒)C：９４ (秒)A：５０ (秒)直接操作による進捗把握では，必要となるデータの収集に負担

平均

１４７．４ (秒)１１９ (秒)

３４．２ (秒)項目２ 進捗把握の手順１について，進捗把握に必要となるデータの決定に負担を感じましたか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握を感じましたか項目４ 進捗把握の手順 3 について，進捗把握は難しかったか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握
項目５ 進捗把握の手順３ ついて，進捗把握に負担を感じたか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握【アドバイスの手順に関する質問】
項目６ アドバイスの手順２について，誤り箇所，躓き箇所の特定は難しかったですか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握
項目７ アドバイスの手順２について，誤り箇所，躓き箇所の解答に対するアドバイスにかかった時間計測の実験結果として，提案手法は従来手法と比較して解答に対するアドバイスにかかった平均時間が約４倍速いという結果が得られた．
また，操作履歴の収集を前提とした際の解答に対するアドバイ
スにかかった時間計測の実験結果として，提案手法は操作履歴
一覧表示と比較して解答に対するアドバイスにかかった平均時
間が約３．５倍速いという結果が得られた．
このことから，提案手法の演習プロセス管理画面表示機能が従来手法，操作履歴一覧表示の両手法と比較して，受講者の進捗を把握しやすく表現できていると考えられる．
以上の結果により，提案手法では従来手法と比べて解答に対するアドバイスにかかった時間について，優位の差がでることがわかった．また，操作履歴の収集を前提とした際の解答に対するアドバイスにかかった時間について，提案手法では操作履歴一覧表示と比べて優位の差がでることがわかった．

特定に負担を感じましたか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握
項目８ アドバイスの手順３について，次実行すべき操作の特定は難しかったですか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握
項目９ アドバイスの手順３について，次実行すべき操作の特定に負担を感じましたか(1) 従来手法である LiNeS 直接操作による進捗把握(2) 操作リスト一覧表示による進捗把握(3) 提案手法による進捗把握

6. 2. 2 アンケート調査による評価
アンケート調査の結果を表 3 に示す．また，進捗把握の手順
に関する質問の平均点を表 4 に示し，アドバイスの手順に関する質問の平均点を表 5 に示す．
質問１，質問４では，進捗確認の手順１，手順３において被験者が感じた難しさについて調査した．その結果，従来手法については手順３において平均値４以上，操作履歴一覧表示の手法については手順３において平均値４以上，提案手法について
は手順３において平均値２未満という結果を得ることができた．
このことから，進捗確認のためのデータ解釈について，提案手
法が従来手法，操作履歴一覧表示の両手法と比較して，容易に進捗を確認できることが明らかになった．
質問２，質問３，質問５では，進捗確認の手順１，手順２，

表 3 実験２の結果
質問内容

項目

小項目 平均値

８，操作履歴一覧表示の手法では平均値１．８，提案手法では

質問１（１） ３．４

平均値１という結果となった．この結果から，進捗確認と誤り（２） ２．８箇所，躓き箇所の特定ができている状態であれば次に実行すべ

質問２

（１）

４

（２） ３．２
質問３【進捗把握の手順に関する質問】

４．２（１） ４．２

質問４

質問５

手法では平均値３．４，操作履歴一覧表示の手法では平均値２．

（３） １．８

８，提案手法では平均値１という結果を得ることができ，質問（１） ４．６９については，従来手法では平均値２，操作履歴一覧表示の手（２） ３．６

法では平均値２，提案手法では平均値１という結果を得ること（３） １．４ができた．この結果から，アドバイスの手順において被験者が（２） ３．４（３） １．６

質問７【アドバイスの手順に関する質問】
質問８

質問９【総合評価】

質問１０（２） ２．８

従来手法との比較，操作履歴一覧表示との比較 双方について，（３）

平均値が５という結果を得ることができた．

１（１） １．８以上のことから，受講者の進捗把握と質問者に対するアドバ（２） １．８

イスについて，従来手法，操作履歴一覧表示と比較した提案手

（３）

１

（１）

２

（２）

２

（３）

１

（１）

５

本研究では，仮想マシンを用いたネットワーク構築演習のた（２）５めの演習プロセス管理システムの提案を行った．今後の課題と難しさを感じたか 負担を感じたか

従来手法平均点

３．８

４．３

操作履歴平均点

３．５

３．４

提案手法平均点

１．８

１．４

アドバイスの手順に関する質問の平均点【アドバイスの手順に関する質問】

手法＼質問内容

質問１０では，総合評価として，従来手法，操作履歴一覧表（１） ３．４【進捗把握の手順に関する質問】

表5

感じた負担はどの手法でも少ないということが明らかになった．
示と比較して提案手法が優れているかを調査した．その結果，

表 4 進捗把握の手順に関する質問の平均点
手法＼質問内容

質問７，質問９では，アドバイスの手順において被験者が感じた負担について調査した．その結果，質問７について，従来（２） ４．２（１） ４．２
質問６

き操作の特定は容易であると考えられる．

難しさを感じたか 負担を感じたか

従来手法平均点３

２．７

操作履歴平均点

２．６

２．４

提案手法平均点

１．３

１

手順３において被験者が感じた負担について調査した．その結果，従来手法についてはすべての手順において平均値４以上，操作履歴一覧表示の手法については手順１，手順３において平均値３以上，提案手法については手順１，手順３において平均値２未満という結果を得ることができた．このことから，提案手法が従来手法，操作履歴一覧表示の両手法と比較して，少ない負担で進捗を確認できることが明らかになった．
質問６，質問８では，アドバイスの手順において被験者が感じた難しさについて調査した．その結果，質問６について，従来手法では平均値４．２，操作履歴一覧表示の手法では平均値
３．４，提案手法では平均値１．６という結果を得ることができ，従来手法，操作履歴一覧表示の両手法と比較して提案手法が容易に誤り箇所，躓き箇所の特定が可能であることが明らかになった．しかし，質問８については，従来手法では平均値１．

法の有効性が示された．

7. お わ り にして，受講者の操作履歴と演習プロセス管理グラフとのマッチ
ング手法改善が挙げられる．マッチング手法を改善することにより，演習プロセス管理グラフを用いた自動正誤評価機能や受講者に対するヒント提示機能の実現が考えられる．
文

献[1] 立岩佑一郎: 仮想環境ソフトウェアに基づくネットワーク実習
環境提供システムの開発 名古屋大学情報科学研究科博士論文，
2008.
[2] UML：http://user-mode-linux.sourceforge.net/[3] 仲田和宏，阿久津智則，梶浦文夫，市村洋，吉田幸二， ブレン
ディッドラーニングにおける LINUX 授業の実践，マルチメディ
ア，分散，強調とモバイル（DICOMO），シンポジウム情報処
理学会，Vol1.2004.No7，pp245-248，2004[4] 仲田和宏，阿久津智則，クリス ウォルトン，藤井諭，市村洋，吉田幸二， LINUX 授業におけるブレンディッドラーニング・シ
ステムの開発，電子情報通信学会技術研究報告. ET, 教育工学
104(342), 21-26, 2004-10-09[5] Ala-Mutka,K,:A Survey of Automated Assessment Approaches for Programming Assignments,Computer Science
Education,Vol.15,No.2,pp.83-102(2005).
[6] Douce,C.,Livingstone,D.and Orewll,J.:Automatic test-based
assessment of programming:A review,Educational Resources in Computing,Col.5,No.3(2005).
[7] 内藤広志，齊藤隆，プログラミング演習のための進捗モニタリ
ングシステム，情報処理学会研究報告. コンピュータと教育研究会報告 2008(13), 33-40, 2008-02-16[8] Linux コマンド一覧：http://www.k4.dion.ne.jp/~mms/unix/
linux_com/index.html[9] 能見惇也，立岩佑一郎，山本大介，高橋直久，仮想マシンを用いたネットワーク構築演習における構築操作履歴の収集と活用，
情報処理学会 第 74 回全国大会，2012 年 3 月[10] Qt Project
http://qt-project.org/[11] MySQL 世界でもっとも普及している、オープン ソース データ
ベース http://www-jp.mysql.com/