D社は, グループウェア (以下, GW という)を主力商品とするソフトウェア開発会社である。 D社では現在、次期のGW を開発しており, S君がデータベースの設計を行っている。
〔GW の主な機能〕
1.利用者管理機能
GWでは,ユーザ, グループなどを用いて GW の利用者の情報を管理する。
(1) ユーザとは, GW 上の利用者である。 GW の利用者は, GW上でユーザ登録を行い,ユーザID及びパスワードを使用して GW にログインし、 GW の各機能を利用する。
(2) グループとは, GW 上の組織である。 例えば,営業部, 経理部などである。グループには,上位のグループを一つ定めることができる。
(3) ロールとは, GW 上の役割である。 例えば, 経理担当者, 経理責任者などである。ロールは,ロール ID で一意に識別し,ロール名をもつ。
(4) ユーザは,一つのグループに必ず所属し,これを主務グループと呼ぶ。 ユーザは,一つ又は複数のグループに兼務として所属することができる。また, ユーザには,必要に応じて一つ又は複数のロールを付与でき,一つのロールを複数のユーザに付与することもできる。
なお,上位のグループの中には,ユーザが一人も所属しないグループが存在する。
2.予約機能
GW では,スケジュール予約及び設備予約を行うことができる。 例えば,打合せを行う場合に,出席者のスケジュール予約と会議室の設備予約を行うことができる。
(1) スケジュール予約とは,ユーザ自身又は他のユーザのスケジュールを予約する機能である。スケジュールを予約されたユーザは, そのスケジュールに参加するか否かを回答することができる。
(2) 設備予約とは,会議室,プロジェクタなど, あらかじめ GWに登録された設備を予約する機能である。 設備には,必要に応じて,当該設備の管理を行うグループを一つ定めることができる。
(3) スケジュール予約及び設備予約は, それぞれを同時に予約することも,いずれか一方を予約することもできる。
3.コミュニケーション機能
GWには, ユーザ間で直接メッセージをやり取りするメッセージ機能, 及び特定のテーマに関してユーザ同士で議論できる電子会議機能が備えられている。
(1) ユーザは,1人又は複数のユーザにメッセージを送信することができる。 送信先のユーザがメッセージを開封すると, 開封日時が記録される。
(2) 電子会議とは, GW 上の会議の単位である。 電子会議には,例えば“プロジェクタの利用について” などの議題が定められる。 ユーザは,新たな電子会議を作成することができる。
(3) 投稿とは, ユーザが電子会議上に文章を書き込むことである。
(4) 分野とは, 電子会議を分類する単位である。 例えば, 総務, 営業などである。電子会議は,いずれか一つの分野に属し, 分野ごとに定められた表示順に従って一覧表示される。
4.ワークフロー機能
GWには, 簡易なワークフロー機能があり、申請及び承認の流れを定義し, 定型業務として利用できる。
(1) 申請ひな形とは,各種申請のテンプレートである。 例えば,経費申請,交通費申請などの種類がある。
(2) 決裁ルートとは, 申請ひな形ごとに定められた, 申請を処理する承認経路であり,一つ以上のステップによって構成される。
(3) ステップには, 承認可能なユーザ, グループ又はロールを指定する。 ユーザ,グループ又はロールのいずれで指定されているかは、承認者区分で識別する。
(4) ユーザは,申請ひな形を指定して各種申請を行うことができる。 申請を行うと、決裁ルートの最初のステップに進む。
(5) 決裁ルートの各ステップに指定されている承認者は,自身が処理すべき申請に対して,承認処理として次のいずれかの処理を行う。
・承認 :最後のステップでは,申請状態を決裁済にする。 それ以外のステップでは,次のステップに進める。
・差戻し : 一つ前のステップに戻す。 ただし, 最初のステップでは,差戻しができない。
・否認 :申請状態を否認済にする。
(6) 申請を行ったユーザは, 申請中の申請を取り消すことができる。 取消しを行うと, 申請状態は取消済となる。
(7) 承認処理を行うと,その都度処理内容がデータベースに新規登録される。
なお,ステップの承認者をグループ又はロールで指定している場合,そのステップで複数のユーザが同時に承認処理を行うことはできない。
ワークフロー機能の決裁ルートの例を図1に, 承認画面の例を図2に示す。
〔データモデルの設計〕
S君は, 概念データモデル (図3) 及び関係スキーマ (図4) の設計を行った。
図4の関係スキーマの主な属性とその意味 制約を、 表1に示す。
〔T部長の指摘事項〕
S君の上司であるT部長は, S君が設計した成果物を確認し、次の事項を指摘した。
指摘事項①:ロールを管理するデータ構造が設計されていないので,ロールを用いて承認者を指定することができない。
指摘事項②:承認処理を行う際に, 不具合が発生するおそれがある。