Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
汎用携帯ゲーム機を用いた
出席管理システムの構築
2007年 11月 27日
阪南大学 経営情報学部 経営情報学科
5104167 瀧内 大輔 5104329 徳田 達也
1
目次 1章 はじめに ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p3 2章 関連研究 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p4 1節 ニンテンドーDS ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p4 2節 Struts ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p4 1項 Strutsのメリット ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p5 2項 Strutsのデメリット ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p5 3章 出席管理システムの概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p5 1節 システムの全体像 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p5 2節 ハードウェア構成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p6 3節 ソフトウェア設計 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p6 1項 JavaServlet ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p6 2項 JSP ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p7 3項 MySQL ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p7 4項 Struts ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p7 4章 出席管理システムの詳細 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p7
1節 システムの UI ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p7 2節 クラス設計 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p8 1項 Dsdbクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p9 2項 LoginFormクラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p9 3項 LoginAction クラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p9 4項 LogoutAction クラス ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p10 3節 各画面の詳細 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p11 1項 ログイン画面 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p11 2項 ログイン成功画面 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p11 3項 ログイン処理 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p12 4項 ログアウト処理 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p13 4節 データベース ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p13 1項 teachertable ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p13 2項 studenttable ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p14 3項 classroomtable ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p14 4項 ログイン時の動作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p14 5章 出席管理システムの考察 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p16 6章 まとめ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p17 参考文献 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p17 謝辞 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・p17
2
1章 はじめに
近年、大学では講義においてコンピュータを利用する講義が増加傾向にある。本学でも
コンピュータを利用する講義だけでなく、コンピュータを使用しない講義でも出席の管理
などにコンピュータが利用されている。特に学生の受講数が多くなれば手作業での出欠確
認は時間がかかり過ぎるため、大講義室でのコンピュータを利用した出欠管理は非常に有
効である。しかし、コンピュータの設置には設備費用が必要となり、講義室が大きくなれ
ばその費用も大きくなる。そのため本学のコンピュータ設置は一部の教室に限られ,大講
義室ではコンピュータを使用しない手作業での出席管理が行われている。 また、大講義室での講義の問題点として教員が講義を行い、学生は聴講する一方向の講
義になりやすいという事がある。この場合、学生は授業中に不明瞭な部分があったとして
も講義中に質問を行いづらく不明瞭なまま聴講を続けなければいけない。講義が終わって
から教員か友人に質問をしなければいけないが、結局不明瞭なまま終わらせてしまう学生
も非常に多い。また、教員側も学生の理解度が把握しづらく一方通行のスピーチ形式の講
義だけになりやすい。結果、同じ教員の同じ講義でも年度によって学生の理解度に大きく
差が出ることもある。このような状況を防ぐために教員側は小テストなどにより学生の理
解度を把握しようとするが、小テストの実施や採点などに時間がかかり,リアルタイムの
学生理解度の把握が困難となり,結果的に授業の進行速度が遅くなるなどの欠点がある。 本システムは携帯ゲーム機の携帯性を利用することにより、安価にコンピュータの設置
をしていない教室でも出席管理を行うことが出来るシステムである。図 1-1で出席管理システムのイメージを示す。また、現段階では実装していないが、将来的に学生の出欠を管理
するだけでなく小テスト機能などを実装することにより、学生数の多い大講義室で薄れが
ちな個人指導のような双方向性の授業効果を実現し授業の理解度向上も期待できるシステ
ムを実装予定である。 本論文では、2章において関連研究の紹介を述べ、3章ではシステムの概要について説明する。そして、4章では出席管理システムの詳細説明を行い、5章において出席管理システムの考察を行い、最後に 6章においてまとめを述べる。
図 1-1 出席管理システムのイメージ
3
2章 関連研究
2.1 ニンテンドーDS 本システムの媒体には汎用携帯ゲーム機「ニンテンドーDS®」を使用する[1]。本機は定
価が 16,800円とコンピュータと比べて安く、本機を使用することにより設備投資の費用が削減できる。さらに日本国内で 1602万台を売り上げ、国民の約 7.5人に一人が持っているという普及率を持ち、既存のゲーム機と一線を画す操作法を採用しており、その操作性か
らいくつかの教育現場において使用され始めている。例えば大阪電気通信大学のニンテン
ドーDSプロジェクトでは 2006年から英語の学習支援に既存のソフトである「英語漬け®」
を使用した講義を取り入れ、2007年度には独自のソフト開発に乗り出すことを発表している[2]。また、京都私立ノートルダム学院小学校では携帯電話向け情報配信を行う企業イマ
ジニアが同小学校に向け「ニンテンドーDS®」本体と学習ソフトを開発する子会社ロケッ
トカンパニーのソフト「漢検DS」「漢検DS2」約 170本を無償で提供することを決定した[3]。
これらの研究では、「ニンテンドーDS®」を学習の道具として使用することで学生の語彙
数が上昇する効果が確認されたものもある[3]。しかし、これまでの研究は既存の学習ソフトを使用しているので、ソフトに合わせた授業を行わないといけないため、自由度が低い
のが問題であった。今回の研究では既存のブラウザソフトを使用するが独自の環境を構築
することにより、自由度を高めている。 2.2 Struts 本システムではフレームワークとして Strutsを使用する。Strutsとは、Jakarta Project
によって開発されている Java Servletや JSPの技術を用いたWebアプリケーションの開発を行う上で有能なオープンソースフレームワークのことである[4]。Struts は、100% Pure Javaで記述されており、ほぼ全てのサーブレットコンテナでの動作が確認されている。Struts では MVC 手法を採用しており。MVC とは、ソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じて ViewとModelを制御する「Controller」の 3要素の組み合わせでシステムを実装する 方式である[5]。今回の設計では、「Model」がデータベースのビジネスロジックの部分であり上記の表では Bb.javaにあり、「View」が JSPで表示されている部分、「Controller」が Action関連の部分になる。Strutsの仕組みを図 2-1に示す。
4
図 2-1 Strutsの仕組み
2.2.1 Strutsのメリット
Struts を使用するメリットとして3つの点が上げられる。ひとつは Model、View、Controllerの結合が弱いため作業分担が容易になること。次に 処理間の関係を薄くすることにより一部を変更したときに他の部分に与える影響が薄くなるので、後々変更を加えた
ときにエラーが発生しにくくなること。最後に JSP を変更するだけで画面デザインの変更ができるのでデザイン部分の変更が容易なるなどのメリットがある[4]。 2.2.2 Strutsのデメリット Strutsのデメリットは幾つかある。まず、あげられるのが Strutsは自由度の高いフレームワークである為、ビジネスロジックを記述する箇所、フォームのエラーチェックを行う
箇所等、 各プロジェクトで規約を設けるか、または Struts をベースとして取り決めをきつ
くしたフレームワークの構築が必要であること。次に データベースにアクセスする仕組みがない為、別途用意する必要があること。そして struts-config.xmlにはシステム全ての画
面遷移情報が記述される為、非常に大きなファイルになり編集が困難になる。などの3つ
の点が主に挙げられる[4]。
3章 出席管理システムの概要
3.1 システムの全体像 本システムでは、学生がログインすることにより、教員の画面に学生の出席状況が表示
5
されるというシステムである。画面には、「ログイン画面」、「着席順学生一覧画面」、「学生
用ログイン成功画面」がある。ユーザーは「ニンテンドーDS®」から「ログイン画面」に
アクセスし、専用のページにログインする。 3.2 ハードウェア構成 ハードウェアの構成はサーバ用コンピュータと「ニンテンドーDS®」を使用している。コンピュータはホストサーバーとして、「ニンテンドーDS®」はクライアントとして利用している。図 3-1にハードウェアの構成を示す。
図 3-1 ハードウェア構成図
3.3 ソフトウェア設計 本システムのソフトウェア設計について図 3-2に示す。開発は主に JavaServletを使用し
た。また、画面の表示には JSPを使用し、データベースの管理にはMySQLを、フレームワークには Strtusを使用している。各技術の詳細について説明していく。
図 3-2 ソフトウェア設計図
3.3.1 JavaServlet
JavaServlet とは、Web サーバ上で実行されるモジュール化されたプログラムのことで
6
ある。サーブレットは、Javaで記述されているため、特定の OSやハードウェアに依存することなく、サーブレット API を実装したあらゆるサーバで稼動できる。当初は、Sun Microsystems社の Java Web Serverの機能の一つとして提供されていたが、仕様が Java Servlet API として独立し、現在では様々な Web サーバ向けにサーブレットの実行環境が用意されている[5]。 3.3.2 JSP
Java Server Pages(JSP)は、HTML内に記号で囲まれたスクリプトレットとよばれるJavaのコードをスクリプトのような形で埋め込むことのできる技術のことである。Apache Struts、Jakarta Project JSTL(JSP Standard Tag Library)などのJSPカスタムタグライブラリを用いることでスクリプトレットを記述する必要性を無くし開発効率を高めることが
できるという特徴がある。[6] 3.3.3 MySQL
MySQLとは、TCX DataKonsultAB社などが開発している、オープンソースのリレーショナルデータベース管理システム(RDBMS)のことである。マルチユーザ、マルチスレッドで動作し、高速性と堅牢性に定評がある。オープンソースなので基本的には無償で利用する
ことができ、国内では有償でサポートを提供する企業もある。Windowsや各種UNIX系OSなど、多くのプラットフォームで動作するのも特長の一つであり、PostgreSQLなどと並んで人気の高いシステムである[5]。 3.3.4 Strtus
Strtusとは、Jakartaプロジェクトが開発しているオープンソースのソフトウェアで、Java言語を用いアプリケーションを開発する際の必要な基盤(フレームワーク)のことである。MVCというソフトウェア設計モデルに基づいており、JavaサーブレットやJSPを組み合わせてアプリケーションを構築する際に必要となる諸機能を提供している。Strtusは、Apache Software Licenseというライセンスに基づいて公開されており、誰でも自由かつ無償で利用・改変・再配布できる[5]。
4章 出席管理システムの詳細
4.1 システムの UI 本システムは、学生がログインすることにより教員の画面に学生の出席状況が表示され
るというシステムである。プログラムの画面は「ログイン画面」(図 4-1参照)、「着席順学生一覧画面」(図 4-2参照)、「学生用ログイン成功画面」(図 4-3参照)があり,ユーザーは
7
「ニンテンドーDS®」から「ログイン画面」にログインする。ログインするユーザーによ
り専用のページに送られ、教員の場合は「着席順学生一覧画面」、学生の場合は「学生用ロ
グイン成功画面」に遷移する。
図 4-1 ログイン画面
図 4-2 着席順学生一覧画面 図 4-3 学生用画面
4.2 クラス設計 主なクラスは以下の一覧となる。まずメインクラスである Dsdb.java では、学生画面と先生画面のログイン処理とログアウト処理の呼び出し、データベースのチェックを行って
いる。次に LoginForm.java は、Dsdb のログイン処理のフォームの作成を行う。最後にLoginAction.javaはログイン処理設定、LogoutActionはログアウト処理のボタン設定を行っている。図 4-4にクラス間の関係を記述したクラス図を示す。
8
図 4-4 クラス図
図 4-4 のクラス図を MVC モデルで示すと、「Model」がデータベースのビジネスロジックの部分で図 4-4では Dsdb.javaにあたり、「View」が login.jsp、student.jsp、logout.jspの部分、「Controller」が LoginAction.java、LogoutAction.javaの部分にあたる。 4.2.1 Dsdbクラス
Dsdb クラスの主な役割は、データベースのチェックと LoginAction クラス、LogoutActionクラスの呼び出しを行っている。データベースを呼び出し classroomtableの座席が空いているかの確認をしたあと、そのあと studenttableのユーザーIDとパスワードをチェックし、入力されたデータが登録されているデータと一致しているかを確認し、一
致していれば学生画面または先生画面に遷移し、間違っていれば遷移しないという仕様に
なっている。 4.2.2 LoginFormクラス
Dsdbのログイン処理に対するフォームの作成を行っている。 4.2.3 LoginActionクラス
LoginAcitonクラス内のフラグ resultが 1ならば学生画面に転移し、2なら先生画面に 転移させるという処理を行っている。図 4-5に LoginActionのプログラムコードを示す。 下記の図で 17行目から 25行目が上記の処理を行っている部分である。
9
図 4-5 LoginAction 4.2.4 LogoutActionクラス LogoutAction クラスでは、ログアウトボタンが押された場合ログアウト画面に遷移し、その他のボタンが押された場合,学生画面、つまり元の画面を表示する。図 4-6 にLogoutActionのプログラムコードを示す。下記の図で 11行目から 22行目が上記の処理を行っている部分である。
10
図 4-6 LogoutAction
4.3 各画面の詳細 4.3.1 ログイン画面 ユーザーID、パスワード、座席番号を入力するためのテキストボックス。ログインボタン、リセットボタンが表示される。ID とパスワードを入力した状態でログインボタンをクリックすると IDとパスワードをデータベースと照合する。リセットボタンをクリックするとテキストボックスの状態を空にする(図 4-7参照)。
図 4-7 ログイン画面
4.3.2 ログイン成功画面 ログイン成功画面には教員用、学生用画面が用意される。教員用画面にはログイン時に
使用したユーザーIDと学生の着席状況を表示する着席順学生一覧が表示される(図 4-8参照)。学生用画面には学生がログアウト用のログアウトボタンを表示する(図 4-9参照)。図4-10に着席順学生一覧画面のプログラムコードを示す。下記の図で 14行目から 25行目が着席順学生一覧の表示を行っている部分である。
図 4-8 着席順学生一覧画面 図 4-9 学生用画面
11
図 4-10 teacher.jsp
4.3.3 ログイン処理 まず教員は図 4-11 のようにログイン画面で ID とパスワードを入力し着席順学生一覧画面(図 4-8 参照)にログインする。次に学生が図 4-12 のように ID とパスワード、座席番号を入力し学生用画面(図 4-9参照)にログインする。学生のログインが行われると着席順学生一覧画面には図 4-13のように学生の入力した座席番号に対応した座席表が変更される。
図 4-11 教員ログイン 図 4-12 学生ログイン
12
図 4-13 学生のログイン
4.3.4 ログアウト処理 学生が学生用画面(図 4-9参照)のログアウトボタンをクリックした場合、図 4-14ログアウト画面が表示される。学生のログアウトが行われると着席順学生一覧画面には図 4-15のようにログアウトした学生の入力した座席番号に対応した座席表が変更される。
図 4-14 学生ログアウト
図 4-15 学生のログアウト
4.4 データベース 4.4.1 teachertable
13
UserID, Name, Password の3列のテーブルを使用する.UserIDは教員のユーザーIDを、Nameは教員名、Passwordは教員画面に転移するためのパスワードを管理している(図4-16参照)。
図 4-16 teachertable
4.4.2 studenttable UserID, Name, Password, Login の 4列のテーブルを使用する.UserIDは生徒のユーザーID、Nameは生徒名、Passwordは生徒画面に転移するためのパスワード、Loginは生徒がログインしているかを管理している(図 4-17参照)。
図 4-17 studenttable
4.4.3 classroomtable
Classroomtable は生徒がどこの席に着席したかを管理する。2 列のテーブルで,DeskNumber は 8306001~ 30 の座席番号を表しており、生徒が出席するとAttendanceConfirmation(出席確認 DB)にユーザーIDが表示される(図 4-18参照)。
14
図 4-18 classroomtable 4.4.4 ログイン時の動作 学生(asayama yuki)がログインした場合には図 4-19のように、データベースの Loginが
0から 1に書き換えられる。同じく学生(asayama yuki)がログアウトした場合はデータベースの Loginが 1から 0に書き換えられる。
studenttable の Login が 1 に書き換えられた場合、図 4-20 のように対応するAttendanceConfirmation(出席確認 DB)の falseがユーザーIDの 8106001に書き換えられる。このようにデーターベースが更新されることにより図 4-13の動作が行われる。同じくLogin が 0 に書き換えられた場合は対応していた AttendanceConfirmation(出席確認 DB)のユーザーID8106001が falseに書き換えられ、図 4-15の動作が行われる。
15
図 4-19 studenttableの動作
図 4-20 classroomtableの動作
5章 出席管理システムの考察
開発において JSP、Strutsの構造、MySQLの仕組み、JavaServletの知識が必要と されたが、この中で最も苦労した点といえば Strutsの構造である。 確かに、Strutsを使うメリットは多かった。しかし Strutsの複雑な構造を理解するのに
16
時間がかかったためプログラムを組むまでに余分な時間がかかってしまった。これまでに
MVCモデルの構造に当てはめてプログラムを組むという経験が無かったが、Strutsを使用してプログラムを組むためにはMVCモデルに当てはめて組む必要があるため、まずMVCモデルについて理解しなければならなかった。つまりプログラムを組むためには基本的な
ActionFormや Action、カスタムタグなどへの理解が必要であり、データベースについてもアクセスするための仕組みが無かったため、MySQLの理解も深めなければならなかった。 つまり、開発するために多くの知識面の準備が必要だったという点が一番苦労したことで
ある。しかし、今までの開発では一部のコードの修正を行うと全体のコードに影響が起こ
り、修正が困難であったが、Struts を使用することにより結合性が弱いというメリットを活かすことで開発の終盤においても容易にコードの修正が行えた。
6章 まとめ
「ニンテンドーDS®」で動作する出席管理システムが実現できた。大規模での実験を行ってはいないが、小規模で動作することが確認できたので、1章でも述べたようにコンピ
ュータを設置していない教室でも出席管理を行うことが容易になり、それにより本システ
ムの目的である、経費削減、スペースの確保ができるだろう。今後の課題としては、デザ
インの変更、セキュリティの問題の解消、システム面の修正が必要である。 参考文献 [1]フリー百科事典Wikipedia, http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8[2]大阪電気通信大学情報処理教育センターニンテンドーDSプロジェクト, http://www.osakac.ac.jp/ecip/ds/[3]インサイドWii&DSコミュニティ,http://www.inside-games.jp/nintendo/[4] IT用語辞書 e-words,http://e-words.jp/[5]StrutsによるWebアプリケーション開発, http://www.infoscience.co.jp/technical/struts/index.html#whats_struts,[6]インターネットアカデミー http://www.nexs.jp/user/parakeet/school/intro/010029.html 謝辞 研究において非常に多くのアドバイスをして頂いた先輩である大学院生の池宮直氏に感
謝します。同じく研究において非常に多くのアドバイスをして頂いた先輩である大学院生
の麻山勇樹氏に感謝します。研究に関わらず日常から非常に多くのアドバイスをして頂い
17
た先輩である大学院生の尾花将輝氏に感謝します。非常に多くのアドバイスをして頂いた
先輩である JIP(日本電子計算)の後藤慶多氏に感謝します。卒論の参考において非常に多く
のお世話になった同ゼミの卒業生である高橋俊介氏に感謝します。同じく卒論の参考にお
いて非常に多くのお世話になった同ゼミの卒業生である山本祐次氏に感謝します。同じく
卒論の参考において非常に多くのお世話になった同ゼミの卒業生である宇治孝太郎氏に感
謝します。同じく卒論の参考において非常に多くのお世話になった同ゼミの卒業生である
突田裕之氏に感謝します。同じく卒論の参考において非常に多くのお世話になった同ゼミ
の卒業生である斎藤大資氏に感謝します。同じく卒論の参考において非常に多くのお世話
になった同ゼミの卒業生である妹尾潤氏に感謝します。同じく卒論の参考において非常に
多くのお世話になった同ゼミの卒業生である伊藤裕美氏に感謝します。同じく卒論の参考
において非常に多くのお世話になった同ゼミの卒業生である山田慎冶氏に感謝します。こ
の二年間切磋琢磨してきた同ゼミ4回生の大西真之氏に感謝します。同ゼミの神田昌幸氏
に感謝します。同ゼミの川口洋平氏に感謝します。同ゼミの紀尚幸氏に感謝します。同ゼ
ミの木原秀樹氏に感謝します。同ゼミの重松拓朗氏に感謝します。同ゼミの芝池雄志氏に
感謝します。同ゼミの白川仁志氏に感謝します。同ゼミの南里昭好氏に感謝します。同ゼ
ミの野口真司氏に感謝します。同ゼミの藤田敬之氏に感謝します。同ゼミの矢野佑治氏に
感謝します。プログラムを製作する上で非常に参考になった数々の HPの管理人の方に感謝
します。最後に学業、就職活動、大学院の事等非常に多くのことにご指導して頂いた花川
典子先生に感謝をします。
18