時間割作成支援システム...

18
1 時間割作成支援システム の製作 S040954 下村

Upload: others

Post on 27-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

1

時間割作成支援システム

の製作

S040954 下村 聡

Page 2: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

2

目次

1.序論

2.システムの概要

2-1 時間割作成支援システムの開発方針

2-2 システム(アプリケーション)の説明

2-3 システムの基本設計

2-4 システムの開発環境

2-5 時間割作成支援システムの作業画面

2-6 システムの機能

・2-6-1 時間割の作成(編集)

・2-6-2 判定条件のアルゴリズム

2-7 時間割の CSV ファイル出力

2-8 教員ごとの時間割出力

3.システムの動作結果

4.結論と今後の課題

Page 3: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

3

1.序論

私には森田ゼミに所属した際の理由として、「コンピュータを活用して、人の役に立つシ

ステムを開発したい」という思いがあった。3年生最後のゼミ発表会において計算力養成

ソフトを製作し、発表したが、もっと発展したものを製作したいと考えていた。そんな折

に興味を持ったのが、本学社会情報学部の時間割作成業務である。

本学社会情報学部では、学部時間割の作成が教務課の方の手作業により行われている。

主に Microsoft 社の表計算ソフトにより作られているが、ゼミ担任である森田先生と、教務

課の榎本氏に伺ったところによると、かなり問題点があることが分かった。主な問題点と

して挙げられたのが、

・幾つかの条件を考慮しながら原案を教務課の職員の方が作成し、様々な調整作業を経て

確定、完成する一連の作業は、基本的に手作業で行われているので、かなり骨が折れる

ということである。

時間割作成を手作業で行う際、一番の問題点は複数ある考慮すべき条件である。上記に

示した条件はもちろんのこと、使用教室を重複させない、外国語講義の時間帯に 1・2 年生

の講義は重ならないようにするなど、条件は複数かつ多岐にわたる。

例えば、一度完成した時間割に対して教員側から使用教室の変更や講義時間について変

更の要望があった場合、玉突き的に使用教室の重なりや配当学年の重なり等の講義条件に

抵触するため、手作業ではすぐに判断することができず、変更した場合にどのような支障

が出るのかもすぐには分からない。これは、効率性はもちろんのこと、ミスをなくすとい

う確実性の観点からも改善を要する問題である。

さらに、本学部の場合、SA を採用する講義と、その科目内容と近接したゼミをなるべく

同じ時間帯に配置しないようにすることで SA を確保しなければならないという特別な事

情もある。本学部の時間割作成条件は、今までに列挙した条件はもちろんのこと、この条

件のために特別他学部より複雑になっていると思われる。

私はこの時間割作成の問題点を聞いて、時間割作成の作業において時間割の構造や作成

条件をアルゴリズム化してシステムを開発することができれば、上記の問題点を作成シス

テムによって短時間で処理し、大幅な作業の効率化をできるのではないかと考えた。具体

的には、作成した時間割が所定の条件を満たしているかどうか、満たしていなければどの

条件に抵触しているかをシステムによって示せれば、上記の問題は改善される。さらに、

抵触する条件を瞬時に明らかにすることができれば、これまで手作業で考慮や実現するこ

とのできなかった条件の実現も期待できる。

また、現状で本大学には該当する時間割作成システムを導入しておらず、導入の予定も

ないので、作成システムを製作し試験的に効果を確かめることは意義があるものと考えて

いる。

本研究では、まず試作の時間割作成支援システムを開発し、段階的に改良を重ねて目的

Page 4: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

4

を遂行・利便性を追及する形で完成を目指す。システムの改良に必要なアドバイスについ

ては、実際に本学部の時間割を作成している教務課の榎本氏にご協力をお願いした。

以下第2章では、製作したシステムの概要を実装した機能も含めて説明し、第3章では

開発したシステムの動作結果を述べる。第4章では結論と今後の課題について述べる。

Page 5: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

5

2.システムの概要

本章では、製作方針を含めた上でのプログラムの構成について説明する。

2-1 時間割作成支援システムの製作方針

実際にシステムを製作するにあたって、まずは試作のシステムを作り、現場の声を聞く

ことによって完成度を高めていくという方針をとった。製作したシステムを使用するのは

教務課であり、私の考える形でのシステムは、たとえうまく動作しようとも実際の現場の

ニーズに合わない可能性がある、と考えたためである。そのため、定期的に教務課の榎本

氏にシステムを見て頂き、より現場の要求に沿うシステムとなるようにした。この方法は

企業の製品開発現場でも行われることと同じであり、開発に則した形をとることにより、

完成度を上げ、利便性の追求を目指した。

また時間割作成の作業画面に、Microsoft Excel を参考にした画面設計を行った。これは

手作業で行われている時間割作成が表計算ソフト上であるからであり、違和感のない動作

をユーザ側が行えるようにする目的があったためである。

2-2 システム(アプリケーション)の説明

システム(アプリケーション)はスタンドアローン形式のアプリケーションである。ま

た、データベースとして Microsoft Access を用いている。オープンソースの MySQL では

なく Access を用いたのは、教務課で使用している PC 環境において、基本的な業務ソフト

として Microsoft Office がインストールされていると考えたためである。さらに、Office を

使用しているとの前提で考慮したのが、上記の画面設計である。本システムはこのように

して極力既存の環境で行えることを目指した。

2-3 システムの基本設計

本システムは基本的に作業画面で時間割作成を行い、作成された時間割(データ)をデ

ータベースに格納するやり取りを経てから、時間割データを条件と照合し判定を行う。設

計としては単純なデータベース経由のシステムで、出力は作成した時間割データをデータ

ベースからロードし、システムで適切な編集を施してから行われる。以下に図1、図2と

してシステムの概念と作業の流れを示す。

Page 6: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

6

<システム動作の流れ>

前年度時間

割読み込み

データベース登録

時間割完成

条件不適合、

時間割再編集へ

教員の講義

情報出力

作成した

時間割出力

条件判定

時間割の入力

(開講科目登録)

図2

メインシステム

(作業画面) データベース

(登録した時間割

情報・講義情報) 作成条件判定

時間割一覧表示・出力

時間割入力

<システム概念図>

開講科目登録

図1

Page 7: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

7

<記号の意味>

データ

入出力

処理の流れ

条件判定分岐

手操作入力

処理の開始

図3

データベース

Page 8: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

8

2-4 システムの開発環境

開発環境として Eclipse 3.5 GALILEO、開発言語は Java 言語を用いた。データベース管

理システムには Microsoft Access を、プログラムと Access のやり取りには Sun JDBC

ODBC ブリッジドライバーを導入した。

2-5 時間割作成支援システムの作業画面

システムの表示形式は Microsoft Excel に近い、JTable クラスを採用した。セルサイズ構

成は 60×26で成り立っている。また、各講時において 1学年は 3講義まで配置可能である。

ただ単に JTable クラスを使用するだけでは設定したサイズに合わせてセルの大きさが収縮

してしまうが、図4で示すとおり JTable クラスに JScrollPane クラスを組み込むことによ

りセルの収縮を回避し、ヘッダーに講時・学年・講義名・担当者・教室・開講時期の項目

を取り入れることにより、Excel での作業と、実際に配られるプリントに起こされた時間割

表に近い状態を、それほど違和感なく再現できたと思う。

図4を見るとセルに四段ごと色が着色されているが、これは講時表示が一番左の欄にあ

り、画面が右にスクロールすると把握が困難なため、現在どの学年なのかを判別する材料

としてこの仕様にした。さらに、「データ読み込み」ボタンの横に現在編集しているセルが

どの「学年」で、どの「講義時間」であるかを表示するようにした。スクロール導入によ

る視覚的な問題を、この二つの機能でサポートできたと考えている。

図4 メインの作業画面

Page 9: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

9

2-6 システムの機能

ここでは、本システムに搭載した機能について説明する。

2-6-1 時間割の作成(編集)

時間割の編集は、図5のように各曜日の講義情報欄のセルをクリックすると、コンボボ

ックス形式によって登録されている講義情報が呼び出され、一覧から任意の講義情報を選

ぶことによって講義の編集が終了する。使用教室の登録も同様である。さらに、講義情報

を登録した際、登録した講義情報に連動している開講学年・担当教員・開講時期の情報が、

それぞれ対応したセルに同時に登録される仕様にした(9 ページの図5参照)。この機能に

よって手入力のミスをなくし、作業時間の短縮といったユーザの負担軽減を実現できた。

また、本学部の時間割は白紙の状態から作るよりも、従来の時間割作成は前年度の時間

割を元に編集する場合が多いと伺ったため、前年度時間割を CSV ファイル形式で読み込ん

で時間割を作成できるようにするための「前年度時間割表示」ボタンを用意した(10 ペー

ジの図 6 参照)。この2点は、ユーザを強く意識した機能である。

図5 講義情報の編集中、コンボボックス形式で講義情報の一覧が現れる

Page 10: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

10

図6 講義情報の登録確定、連動している情報も対応したセルにセットされる

図7「前年度時間割表示」ボタンを押したときの動作

Page 11: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

11

2-6-2 判定条件のアルゴリズム

判定条件として、いろいろな条件が挙げられるが、本研究では「必修講義判定」「外国語

講義判定」「使用教室判定」の3つの条件を搭載した。3つにした理由は、それらが確実に

必要な優先条件の高い条件であるからであり、他の条件については、どの程度満たすべき

かという要求度の重みの分析がまだ十分できなかったため、機械的にそれらの判定条件を

実装しても混乱する恐れがあると判断して、現時点では外すことにした。

・「必修講義判定」ボタン

このボタンは、同一講時内に同一学年の必修講義が複数配置されないようにチェックす

る機能である。上の判定を各曜日、各講時そして各学年について行うので、判定部分は3

重ループの中に存在している。このアルゴリズムは他の条件システムにも採用しているた

め、本システムの条件判定の基本アルゴリズムとなっている。

条件判定の際、必修講義の重複があると、その旨のメッセージがダイアログメッセージ

で表示される。メッセージには問題の箇所の講時等の情報も併せて明記されている(図8

を参照)。また、必修講義の重複がない場合でも、「問題ありません」と確認メッセージを

出す仕様にした。

図8 必修講義判定に適合しなかった場合

Page 12: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

12

・「外国語講義判定」ボタン

外国語の講義が、1、2 年生の講義と同じ時間に重なっていないかを判断する機能である。

あらかじめデータベースに登録している講義情報から読み込んだ科目情報を合致させ、1、

2 年生の配当学年の科目が外国語講義と同じ時間帯だった場合、ダイアログメッセージで問

題箇所の「曜日・学年・講時」を指摘する警告文を出す(図9を参照)。あるいは従来、今

後も続くと思われる「初級外国語 A・初級外国語 B」の同時間帯の組み合わせが成り立って

いない場合も、「外国語講義が対になっていない」と上記の「曜日・学年・講時」の問題箇

所の情報とあわせて警告する(13 ページの図 10 を参照)。アルゴリズムのベースは必修講

義判定の場合と同様になっていて、データベースの参照箇所の違い程度しか差はない。

図9 1、2 学年配当の講義が外国語講義と重なった場合

Page 13: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

13

図 10 外国語講義が1つしかない(対でない)場合

・「使用教室判定」ボタン

これは、同じ講時に使用教室が重なっていないか判定する機能である。一学年の同一時

間帯ごとにチェック、それを 5 講時分、さらに曜日分とループ文で動かすため、若干上記

の判定システムとはアルゴリズムが異なる。また、この判定システムのみデータベースと

連動しておらず、使用教室情報を配列に格納し、教室の重なりのすり合わせを行うことに

よってチェックする仕組みとなっている。14 ページの図 11 のように、条件に反する場合は

ダイアログメッセージにて該当箇所の曜日と講時を返すが、この点はそれほど変わりない。

もちろん問題がない場合のメッセージも同様である。

Page 14: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

14

図 11 使用教室が重なっている場合

・「ALL 判定」ボタン

上記3つの判定条件をすべて行える機能である。動作としては上記の判定を上から順に

行うというもので、ひとつのアルゴリズムにまとめてスリム化と、今回実装しなかった判

定条件もこの機能の中に取り入れる予定だったが、作業の遅れにより実現することができ

なかった。

Page 15: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

15

2-7 時間割の CSV ファイル出力

時間割の CSV ファイル出力は、作成した時間割を「データベース登録」ボタンで登録し

たのち、「教員講義時間一覧」ボタンを押した先の「時間割出力」ボタンで行える。アルゴ

リズム自体は単純で、文字列型変数に JTable クラスのヘッダーを書き込み、作成した時間

割を1セルずつ getValueAt メソッドで抜き取り、「、」を追加して 60 行分繰り返す反復処

理である。実際に教務課で作成している学部時間割表に近いつくりになっているため、

Excel にて罫線を引く程度での簡単な作業で時間割表を作り上げることができる。出力先は

JFileChooser クラスを用いることによって保存先を選択することができるようにした。

だが、JFileChooser クラスは出力の際すべてのファイルにすることができるが、この機

能ではデフォルトで CSV ファイルとして出力することを目的としていた。しかし、ファイ

ルタイプを予め CSV ファイルに指定することができなかった。

2-8 教員ごとの時間割出力

教員ごとの時間割出力は、上記の時間割出力と同じく作成した時間割をデータベース登

録したのち、「教員講義時間一覧」ボタンを押した先の「教員情報出力」ボタンから行える。

アルゴリズムはやや複雑で、データベース登録をした際に付けられる教員ごとの認識コー

ド順に教員情報を呼び出し、教員時間割を組み上げていく。CSV ファイルで教員の時間割

は作成されるが、ファイルの構築は時間割出力とは若干違い、まず認識コードの若い順に

教員の氏名、講時ヘッダー、講義情報は前期開講科目から後期開講科目の順に行う。また、

データベースに登録されている教員の講義情報ごとに、配当年次や講義時間によって講義

の表示配置を変更するよう振り分けるようにしている。情報を教員ごと文字列型変数に書

き込んでは改行して次の教員…というループ処理を繰り返すため、情報を書き込んだ CSV

ファイルを読み込むと縦に長くなってしまうという課題が残ってしまった。

Page 16: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

16

<教員ごとの時間割出力の流れ>

時間割完成

教員講義時間一覧を表示

教員の講義

情報出力

作成した

時間割出力

図 12

時間割の CSV ファイル出力または

教員ごとの時間割出力を選択

データベースから

必要な情報を抜き出す

Page 17: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

17

3.システムの動作結果

作成したシステムの動作は以下の通りである。時間割の入力は講義情報欄セルをクリッ

クすることにより講義情報一覧を表示させ、選択することで「講義情報・配当学年・担当

者・開講時期」が同時にセルに記入されることで、手作業での入力の手間を大幅に軽減で

きた。

条件判定に関しては、判定ボタンを押すことによって入力した時間割が所定の条件を満

たしているかどうかを判定し、その結果がダイアログメッセージで返され、もし条件を満

たしていない科目情報があるなら、その科目の「曜日・学年・講時」が伝えられるという

機能となった。以上の機能をもって、目標としていたシステムの形は完成したと考えてい

る。

その他の点として、作業画面が挙げられるが、この点は特にこだわりがある。時間割表

は当初2分割という方向も考えたが、実際に印刷する時間割表に近いものをと、ひとつの

表で作業する現在の形になった。そのため表が PC の画面内に収まらず、縦横にスクロール

しなければならなくなったが、セルを学年ごとに色分けしたり、現在の講義情報欄の学年

と講時を伝えるナビゲーションメッセージを画面中央に搭載することによって、表示の問

題点は解決することができた。結果的にかなりの時間がかかってしまったが、榎本氏や森

田教員の意見も取り入れて、納得のいくものができたと考えている。

また、時間割表を作るにあたって不可欠な出力機能も実現することができた。作成した

時間割表を CSV ファイル出力するのはもちろんだが、教務課の担当の方の意見を生かして

教員ごとの時間割出力機能も搭載した。従来は実際にできあがった時間割表から人力で教

員ごとの時間割を作成していた手間を、プログラムを用いることによって教員ごとに前期

と後期の時間割を一瞬で出力することができたので、その作業時間を大幅に軽減できたこ

とはかなり大きいと考えている。

4.結論と今後の課題

上の結果で述べた通り、目標としていた機能の実装、動作は達成することができた。し

かし、現時点でシステムとして不完全な点がいくつかある。以下に改善すべき点を列挙す

る。

① 時間割に科目を入力する際、講義情報欄セルから選ぶ形式になっているが、そのリス

トが膨大であるので選びにくい。そこで、一度選択したものを一覧から削除、または選

べないようにする必要がある。

② 現時点では開講科目の情報をシステムから登録する機能を実装していない。システム

Page 18: 時間割作成支援システム の製作ext-web.edu.sgu.ac.jp/HIKO/Seminar/13thStudent/Paper...理システムにはMicrosoft Access を、プログラムとAccess のやり取りにはSun

18

として稼働させるためにはこの機能は必須である。

③ 上記②の問題点はデータベースに格納されている講義情報にも当てはまる。

①の改善は時間割作成作業時間の短縮に繋がり、且つ選択ミスを防ぐために必要である。

配列に講義等の情報を格納しているため、使用した科目情報を配列から削除するなど、問

題解決の可能性はある。

そして、②・③であるが、現状のシステムでは開講科目はシステム内の配列に、参照用

の講義情報はデータベースに直接格納しており、教員の変更や入れ替わり、科目の変更に

対応できない。データを入れ替えれば動くというシステムの基本をなしていないため、こ

れは非常に大きな問題点であり、要改善点であると理解している。

今回のシステム開発においては、表示の形式やデータベース運用に予想外に苦戦したた

め、システムの大多数が実装できたのは本年になってからだった。用意した機能も、CSV

ファイル出力や判定条件の種類、判定条件の優先順位の考慮など向上する余地はあり、上

記に列挙した問題点・改善点も含め、システムの運用レベルにはまだ到達していないと考

えている。

謝辞

今回のシステム開発については、教務課の榎本愛氏に時間割作成での考慮すべき条件に

ついて、また作業画面についてのアドバイスも頂き、お忙しい中、多大なご協力を頂きま

した。並びに、指導教員の森田教授とゼミの友人には相談やアドバイスといった色々な面

で支えていただきました。心より感謝致します。

参考文献

1.大村忠史、池田成樹(2008)『Java GUI プログラミング vol.Ⅰ・vol.Ⅱ』カットシス

テム

指導教員: 森田 彦