第 19 回 若年者ものづくり競技大会「業務用 IT ソフトウェア・ソリューションズ」職種
競技課題

作成者：業務用 IT ソフトウェア・ソリューションズ競技委員会
作成日：2024 年 7 月 23 日
最終更新日：2024 年 7 月 24 日

1

■競技課題のタイトル
飲食店スタッフのシフト管理システム■競技課題の概要
飲食店のスタッフのシフト管理を効率化し、労働時間や勤務日を適切に管理できるデスクト
ップアプリケーションを作成する。参加者は、顧客のニーズをインタビューした資料をもとに、以下の機能を可能な限り実装したプロトタイプ版のアプリケーションを作成する。またプレゼンテーションを行って顧客に向けて自社のアプリケーションの利点を訴求し、自社への注文を獲得できるように訴求する。
詳細は現場の経営者へのインタビュー（資料 1）を参考にすること。

■必要とされる機能（１）管理者向けアプリケーション（コーディングを含めて今回の課題の範囲である）
以下の機能を持つ。アプリケーションは PC 上で稼働するデスクトップアプリケーションとする。
1. 管理者ログイン機能
適切な権限を持った管理者がログインできる機能
2.管理者ダッシュボード機能
適切な管理者ダッシュボード画面を表示する機能
3.シフト作成機能
スタッフが登録した希望シフトを確認および承認し、シフトを適切に割り当てる機能。
4.勤務状況確認機能
月単位でスタッフの出勤状況と労働時間を確認し、勤怠管理を行う機能。

2

（２）スタッフ向けアプリケーション（すでに完成済と仮定している。コーディング、実装の必要はないが要件定義や設計等を考える際には盛り込むこと）
以下の機能を持つ。PC、スマホ上で稼働するアプリケーションであり、スタッフがシフトをサーバーに登録する。

1. シフト登録・確認機能
自身のシフトを PC やスマートフォンからリアルタイムで登録し承認状況を表示確認できる機能。
2. シフト変更リクエスト機能
PC やスマートフォンからシフトの変更や修正リクエストを提出、承認状況を確認できる機能。
3. 勤務記録確認機能
月単位で自分の勤務時間や休暇の申請、承認状況を確認できる機能。

（３）その他の機能要件/非機能要件
・現場の経営者へのインタビューをもとに必要と思われる機能を盛り込むこと

3

課題 1
要件定義と設計
飲食店の管理者向けデスクトップアプリケーションを構築するための、要件定義と設計を行い、以下を提出しなさい。スタッフ向けアプリケーションについてはコーディング・実装する必要はないが、すでにアプリケーションが存在するという前提で資料を作成すること。なお必須提出物は必ず提出することとする。
（提出の仕方は競技委員の説明に従うこと）＜必須提出物（ファイル名は選手番号＋各内容がわかる名称とすること）＞
ex.009DFD/ 007 ユースケース図

008 テーブル定義書 など

・要件定義書・テーブル定義書
・DFD(データフロー図)・ユースケース図
・画面遷移図＜その他の提出物＞
基本設計段階で有益と思われるドキュメント（画面デザインモックアップ、ER 図、労働時間管理設計書、シフト適正化設計書、セキュリティ設計書など）※提出物を作成するアプリケーションは問わない。

4

課題 2
アプリケーションの実装
課題１に基づいたアプリケーションを作成しなさい。
（提出の仕方は競技委員の説明に従うこと）＜必須提出物＞
・ソリューションフォルダ（ソースファイル一式）
・アプリケーション実行ファイル（EXE、DLL 等）
・データベース作成スクリプト（データベースとそのテーブル、インデックス、制約などを作成するための SQL スクリプト）、またはダンプ
ファイル・アプリケーション仕様書
・アプリケーション操作手順書＜その他の提出物＞
・本アプリケーションの特徴を理解するために必要と考えられるドキュメント※スタッフ向けアプリケーションについてはコーディング・実装する必要はない。

5

課題 3:
プレゼンテーションとデモンストレーション

課題 1 と 2 の成果を報告するためのプレゼンテーション資料を作成し、5 分以内で、あなたのシステムの採用を検討している顧客に向けた効果的なプレゼンテーションとデモンストレーションを行いなさい。



これは競合プレゼンテーションであると仮定して資料を準備し、顧客に対してあなたの設計・作成したアプリケーションのメリット、他社製品に比べて優れていると思われる利点などを、強調すること。

＜必須提出物＞
・プレゼンテーション資料6

（資料１）
現場の経営者へのヒアリングインタビュー
インタビュアー:
お忙しい中、ありがとうございます。まずは、お店の現状についてお伺いしたいと思います。お店の場所や規模、スタッフの状況について教えていただけますか？
経営者:
はい、よろしくお願いします。私たちのカフェは駅からほど近い場所にあり、毎日 10:00 から21:00 まで営業しています。現在、アルバイト登録スタッフの人数は 50 人です。
インタビュアー:
それはかなり大きな規模ですね。営業時間中は常に何名のスタッフが必要ですか？
経営者:
営業中は常に 4 名のスタッフが必要です。しかし、スタッフの欠員や急なシフト変更が発生すると、対応が非常に難しくなります。
インタビュアー：現在はどのようなシステムで管理をされているのですか？
経営者：
現在は Excel を使って手動で管理しているのですが、変更があったときの修正やシートの共有がとても大変です。
インタビュアー:
なるほど。他にスタッフのシフト管理業務で特に困ることはどんな点ですか？
経営者:
いくつかの点で困っています。まず、急なシフト変更や欠員が出たときの対応が非常に大変です。特に急な欠員が発生すると、代わりのスタッフを見つけるのが難しいです。また、一部の7スタッフが働きすぎてしまうことも問題です。特定のスタッフが連続で長時間働くことがあり、健康や法令遵守の観点からも心配です。
インタビュアー:
それは大変ですね。新しいシステムに期待する機能や改善点はありますか？
経営者:
はい、以下の点を改善したいと思っています。まず、スタッフの希望と経験度を考慮したシフト作成機能が必要です。新人のスタッフだけでその日のシフトを組んでしまうと、店舗の運営が大変になりますからね。シフト変更や承認の際に管理者にリアルタイムで通知してくれる機能もあるとうれしいですね。
管理者向けのダッシュボードでは、労働時間の分析や効率化のためにレポートを作成できるデータ分析機能、労働時間や残業時間を自動でチェックし、過剰な労働にならないよう必要に応じてアラートを出してくれる法令遵守チェック機能があるシステムだと助かります。
インタビュアー:
法令遵守チェックについて、具体的にどのような機能が必要ですか？
経営者:
法令遵守チェック機能としては、1 日の労働時間が 8 時間を超えないように、また 1 週間の労働時間が 40 時間を超えないようにすることが重要です。休息時間の管理も必要です。
労働基準法では、労働時間が 6 時間を超える場合には 45 分以上、8 時間を超える場
合には 1 時間以上の休憩を取らせることが義務づけられています。この休憩時間が適切に設定され、管理される機能が必要です。
インタビュアー:新しいシステムで特に重要視する点は何でしょうか？
経営者:
重要なのは、管理者が管理画面で、スタッフのスケジュール管理が簡単にできることです。ス
タッフにとっては、モバイルアプリでスタッフが自分のシフトが確認しやすくなること、急な欠員時にリアルタイムで他のスタッフに通知できると代替要員を探すのに助かりますね。個人情報も8含まれるので、データのセキュリティも重要です。
※スタッフ側のアプリケーションの実装は今回必要ありません
インタビュアー:今回のシステムに特に期待する部分は何でしょうか？また、数社によるコンペティションなので、発注を決める上で特に重視する点についても教えてください。
経営者:
今回のシステムに特に期待する部分は、日々の業務がスムーズに行えるように誰でも簡単に操作できる、使いやすくて直感的なインターフェースです。そして、将来的な機能追加や法改正への対応が容易である柔軟性と拡張性も重要です。
その他には、問題が発生した際に迅速かつ丁寧に対応してもらえるサポート体制や、システム導入と運用のコストが見合うコストパフォーマンスも重視しています。どんなに素晴らしい機能があっても、日常的に使いにくかったり、サポートが不十分だったりすると困ります。また、システムの導入後に発生するランニングコストも重要な要素です。できるだけ短い教育期間で導入できるといいですね。
インタビュアー:ありがとうございます。それでは、これらの情報をもとにシステムを提案させていただきます。ご期待に沿えるよう、努力いたします。
経営者:
ありがとうございます。期待しています。

9（資料 2）
テーブル定義書のサンプル（これは一部に関する実例であり、参考資料である。この通りに設計する必要はない）
テーブル: Admins
カラム名

データ型

制約

説明AdminID

INT

PRIMARY KEY

管理者 ID（自動増分）

Username

VARCHAR(50)NOT NULL

管理者のユーザー名

PasswordHash

VARCHAR(255)

NOT NULL

ハッシュ化されたパスワード

FullName

VARCHAR(100)NOT NULL

管理者の氏名EmailVARCHAR(100)NOT NULL

管理者のメールアドレス

テーブル: Staff
カラム名

データ型

制約

説明

StaffID

INT

PRIMARY KEY

スタッフ ID（自動増分）

Username

VARCHAR(50)NOT NULL

スタッフのユーザー名

PasswordHash

VARCHAR(255)

NOT NULL

ハッシュ化されたパスワードFullName

VARCHAR(100)NOT NULL

スタッフの氏名EmailVARCHAR(100)NOT NULL

スタッフのメールアドレス

PhoneNumber

VARCHAR(20)スタッフの電話番号

テーブル: Shifts
カラム名

データ型

制約

説明ShiftIDINT

PRIMARY KEY

シフト ID（自動増分）

StaffID

INT

FOREIGN KEY

スタッフ ID

ShiftDateDATE

NOT NULL

シフトの日付

StartTimeTIME

NOT NULL

シフト開始時間

EndTimeTIMENOT NULL

シフト終了時間10

Status

VARCHAR(20)NOT NULL

シフトの状態（承認済み、申請中、変更中など）

テーブル: ShiftRequests
カラム名

データ型

制約

説明

RequestIDINT

PRIMARY KEY

リクエスト ID（自動増分）

StaffID

INT

FOREIGN KEY

スタッフ ID

OriginalShiftID

INT

FOREIGN KEY

元のシフト IDRequestedShiftID

INT

RequestDate

DATE

NOT NULL

リクエストの日付

Status

VARCHAR(20)NOT NULL

リクエストの状態（承認済み、申リクエストされたシフト ID

請中など）

テーブル: Attendance
カラム名

データ型

制約

説明

AttendanceID

INT

PRIMARY KEY

出勤 ID（自動増分）

StaffID

INT

FOREIGN KEY

スタッフ ID

ShiftID

INT

FOREIGN KEY

シフト ID

CheckInTime

DATETIMENOT NULL

出勤時間

CheckOutTime

DATETIME

退勤時間

11