5 設計モデルの作成

(文責:阿部)

5.1 アーキテクチャの作成と分担

プロトタイプの作成を終了し、これをもとにみるみるをWEBアプリケーション化することになった。 まず、みるみるのシステム全体アーキテクチャを次のようにした。

図 5.1.1 アーキテクチャと分担

まずは、WEBアプリ化し、ユーザーがボタンを押すことにより更新できるHTMLベースのものをつくり、 のちに別に開発した自動更新部分と連携させることになった。

学生のビューをHTMLベースの部分とアプレットを使った自動更新部分に分けたことには、 開発しやすくなるという利点があった。それぞれの部分を別々の者が並行に開発でき、 HTMLだけで動作するものは容易に実装することができた。

モデル部分はプロトタイプのものを使い、それぞれの担当は次のようになった。

5.2 状態遷移図の作成

Servletやjspの書き直しを防ぎ、確実に作るため、状態遷移図を作成した。 これがきちんとしていれば、実装後のエラーを防ぐことができる。また、問題がおきたときに第3者にわかりやすく状況を説明することができ、スムーズに話を進めることができる。

注意点としては図には画面(jsp)のみ書くことである。 はじめに作られたものは図の中にサーブレットも書いてしまい結果的に分かりにくい。 また、意味的に関連の高い画面は近くに配置し、全体的な理解を助けることも重要である。

図 5.2.1 はじめの学生状態遷移図

これらの反省を踏まえて作成した図は仕様変更により何度か修正され、次のようになった。

図 5.2.2 担当者状態遷移図

図 5.2.3 学生状態遷移図

5.3 フォームのデータ仕様の作成

フォームのデータ仕様も同様に、Servletやjspの書き直しを防ぎ、確実に作るために用意した。

リスト 5.3.1 担当者部分のフォームデータ仕様
フォームに渡すデータ形式(プロトコル仕様)

<RegisterServlet>
講義名(lectureName) : String
パスワード(password) : String
講師名(teacher) : String

<LoginServlet>
講義名(lectureId) : String
パスワード(password) : String

<QuestionServlet>
質問形式(questionPattern) : String
(Y/N,2,3…)

<ChangeQuestionServlet>
質問内容(questionContent) : String
選択肢内容(alternativeContent) : String
(alternativeContent1, alternativeContent2...)

<ShowListServlet>
選択肢番号(alternativeNumber) : String
(alternativeNumber1, alternativeNumber2...)
リスト 5.3.2 学生部分のフォームデータ仕様
フォームが渡すデータ形式(プロトコル仕様)

<RegistarServlet>
氏(familyName) : String
名(firstName) : String
学籍番号(id) : String
パスワード(password) : String

<LoginServlet>
学籍番号(id) : String
パスワード(password) : String
授業ID(lectureId) : String

<AnswerServlet>
選択肢番号(alternativeNumber) : String