専門ゼミ登録システム仕様書

専門ゼミ登録システム仕様書
1
1.システム仕様
1-1 システム内容
インターネット接続環境の PC にて希望するゼミ
の登録、変更、またその登録作業の管理を行うこ
とのできるオンラインシステム
1-2
システム構成
サーブレットを用いたクライアントサーバシステ
ム構成
1-3
動作環境(テスト済み環境)
サーバサイド(管理側):
JDK1.5.0.09 (JAVA 開発環境)
Tomcat5.5.20 (アプリケーションサーバ)
MySQL5.5 (データベース)
JTSL1.1.2 (タグライブラリ)
クライアントサイド(利用側)
InternetExplorer6.0 以降 (ブラウザ)
2
2 データベース構成
2-0 E-R図
KYOUMU
ACCOUNT
ZEMIINFO
TEACHER
SKILL
2-1 ACCOUNT テーブル
・学生のアカウントを管理する
ID
PASS
NAME
ZEMIID
SKILL
PASSCHANGE ZEMICHANGE KAKUTEI
ANSWER2
ANSWER3
SEX
ANSWER1
・ ID:学籍番号
PASS:パスワード
NAME:氏名
ZEMIID:選択ゼミ。初期値(未登録)は z0000
SEX:性別 男=1 女=2
SKILL(現時点では未使用):履修状況 初期値 no
PASSCHANGE:パスワード変更フラグ 初期値 no 変更後 yes
ZEMICHANGE:ゼミ変更フラグ 初期値 no 変更後 yes
KAKUTEI:登録状況 未登録=0 仮登録=1 本登録=2
ANSWER1、2、3:登録理由 初期値 null
・
・
・
・
・
・
・
・
・
2-2 KYOUMU テーブル
3
・管理者(教務課)のアカウントを管理する
YEAR
AVGNUM
LIMITDATE
PASS
YEAR:実施年度 半角 4 桁で西暦を入力 (これが管理 ID になる)
AVGNUM:ゼミ平均人数
LIMITDATE:登録日時 yyyymmddhhmm の形式で入力
PASS:管理者用パスワード 半角小文字
・
・
・
・
2-3 SKILL テーブル(現時点では未使用)
・履修状況確認機能(未実装)を実現するためのテーブル。現時点ではこの
テーブルが存在しなくても問題はない
ZEMIID
LECTURE
WEIGHT
・ ZEMIID:ゼミ ID 半角小文字 5 桁
・ LECTURE:講義名
LECURL
例 z0000
・ WEIGHT:講義の重み付け係数(重要科目)
・ LECURL:講義のシラバス上の URL
2-4 TEACHER テーブル
・教員のアカウントを管理する
TEAID
・
・
・
・
TEANAME
TEAURL
TEAPASS
TEAID:教員 ID 半角小文字 5 桁 t0000
TEANAME:教員氏名
TEAURL:本学 HP 上の教員照会ページの URL
TEAPASS:教員用パスワード 半角小文字
2-5 ZEMIINFO テーブル
・ゼミ情報を管理する
ZEMIID
ZEMINAME
TEAID
MANNUM
FENUM
COMENT
STATUS
QUESTION
1
QUESTION
2
QUESTION
3
4
MAXNUM
・
・
・
・
・
・
ZEMIID:ゼミ ID
ZEMINAME:ゼミ名
TEAID:担当教員 ID
MANNUM:このゼミを登録している男子の数 半角
FENUM:上記同女子の数
COMENT:ゼミ選択画面に表示されるゼミ紹介文
・ QUESTION1,2,3:このゼミを本登録する際に表示される質問
・ MAXNUM:このゼミの最大受け入れ人数
5
3 プログラム構成図
3-1 データベースアクセス部分(各サブシステム共通)
このモジュールはデータベースのアクセスを各サブシステムに提供するもの
である
主なモジュール
(以下本システムディレクトリのWEB-INF / SRCフォルダをルートと
したディレクトリ表記)
・ fw / DBManager.java (JDBCドライバのロード、データベースとのコネクショ
ンの確立、DBMS へのUPDATE、INSERT、SELECT文の発行)
・ fw / ResultSetBeanMapping.java(SELECT文の検索結果を各サブシステムに応じた
データ格納クラスに格納)
・ ze / DAO.java (SQL文の作成)
DBManager
接続要求
Connection オブジェクト
DAO
ResultSetBean
Mapping
アクセス
要求
SQL
6
データ
3-2 データを格納するクラス
これはデータベースの検索結果をプログラムで処理するために一時的にそのデータを
保持するクラス(以降、データオブジェクト)である
・ ze / Account.java(学生、教員、ゼミ情報の情報を格納することができるクラス。内部
で使用している定数によってデータの格納種類を分類できる)
・ ze / Kyoumu.java (管理者用アカウントを格納するクラス
Account
ResultSet
BeanMap
ping
Kyoumu
定数によってク
選択されたオブジェク
ラスを判別
トをプログラムに渡す
7
サブシステムの構成
以降はサブシステムの構成について説明する。
○各サブシステム共通構成
・処理はサーブレットが行い、表示はJSPが行うという一般的なモデルによって設計
する
・JSPの表示、演算処理等はタグライブラリを使用する
3-3 学生用サブシステムの構成
○ログイン処理
Login.jsp
ID, パ ス ワ ー ド を
学生情報
入力
LoginLogic.java
データベースから
読み込んだアカウ
誤入力、不正なア
ントと照合
カウント
正しいアカウ
ント
Top.jsp
8
○ ゼミ登録処理
Top.jsp
学生のアカウントのオブジ
ェクトを渡す
Entry.java
登録フラグを確認
Nochange.jsp
し、分岐させる
Change.jsp
DBからZEMII
ゼミ情報
NFOデータを取得
Entry.jsp
登録希望フラグで分岐
Mainentry.jsp
Confirm1.jsp
学生アカウントを使い
メール送信
DBUpdate.java
DBのアカウント
を更新
SendMail.java
学生情報
Confirm2.jsp
更新したアカウントを
元に確認情報を表示
9
○ パスワード変更処理
Top.jsp
学生情報
Passchange.jsp
更新が正常終了し
た場合メール送信
新旧パスワード、I
Dを入力
SendMail.java
PassChange.java
学生情報
passMiss
Passchangefinish.jsp
正常更新
パスワードの不
備、誤入力
10
○ 登録状況確認処理
Top.jsp
DB から Zemiinfo
データを取得
ゼミ情報
EntryInfo.java
HTMLタグの高さ設
定によりグラフ描写
Entryinfo.jsp
○ ログアウト
Top.jsp
LogOut.java
セッション情報を
意図的に削除
Logout.jsp
11
3-4 教員用サブシステムの構成
・ ログイン、ログアウト処理は学生用と共通
○コメント編集機能
Top.jsp
ゼミ情報
DB から Zemiinfo
,teacher データを取得
教員情報
EditComent.java
変更前のデータを画
面に表示
editComent.jsp
Comit.java
DB に更新情報を
ゼミ情報
反映させる
comit.jsp
12
○登録人数確認機能
Top.jsp
学生情報
DB から必要データ
を取得
ゼミ情報
TeaZemiInfo.ja
教員情報
va
各教員のゼミを志望
しかつ本登録者のみ
抽出し表示する
teazemiinfo.jsp
13
3-5 管理者用サブシステム
・ ログイン処理は他システムと同様
○ 学生情報登録処理
topK.jsp
csv ファイルをダイアログから入
CSVファイ
力させる。パスはアプリケーショ
ル(ローカル)
upload.jsp
ンの配備ルートをルートとする
Upload.java
CSVファイ
サーバに入力されたCSV
ル(サーバ上)
ファイルを配置する。
Updated.jsp
一度Topメニューに戻る
Inputcsv.jsp
学生情報
InputCsv.java
前動作でサーバに配置さ
れたCSVからDBを更
新する
Updated.jsp
14
○ゼミ情報、教員情報入力処理
topK.jsp
各 情 報 入 力画
面
この処理は共通なもの
で、情報を入力→DB更
新という流れになる
データベース更
DB
新処理
Updated.jsp
15
○ CSVデータ出力処理
Top.jsp
出力条件を入力
Requirement.jsp
入力された条件をフラ
ShowResult.java
グの配列として次に渡
す(表示処理のため)
Showresult.jsp
フラグを参照しながら
必要な列、行のみ表示
OutPutDetail.java
PassSendCaour
ionMail.java
メールを送信する
表示内容をCSVで出力
16
○ 学生データ修正処理
Top.jsp
Uddb.jsp
修正をする学生の学
籍番号を入力
学生情報
UdStudent.ja
該当する学生の情報
va
をデータオブジェク
トにいれ次に渡す
更新前情報と比べな
Fixac.jsp
がら更新後の情報を
入力
更新後の情報で上
書きしDBに反映
学生情報
Fixac.java
17
させる