公表

第 19 回若年者ものづくり競技大会「業務用 IT ソフトウェア・ソリューションズ」職種
模擬競技課題作成者：業務用 IT ソフトウェア・ソリューションズ競技委員会
作成日：2024 年 6 月 27 日
最終更新日：
1

■模擬競技課題について
・これは模擬競技課題である。実際の競技で使用するものではない。
・模擬競技課題は、競技内容の参考のために競技課題の出題形式等を模したものであり，この模擬競技課題と実際の競技課題との内容あるいは難易度の同一性を保証するものではない。
・本課題においては、模擬競技課題の 50%以内程度を目安に変更される場合がある。

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

■必要とされる機能（１）管理者向けアプリケーション（コーディングを含めて今回の課題の範囲である）

2

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

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

1. シフト登録・確認機能
自身のシフトを PC やスマートフォンからリアルタイムで登録し承認状況を表示確認できる機能。
2. シフト変更リクエスト機能
PC やスマートフォンからシフトの変更や修正リクエストを提出、承認状況を確認できる機能。

3

3. 勤務記録確認機能
月単位で自分の勤務時間や休暇の申請、承認状況を確認できる機能。

（３）その他の機能要件/非機能要件
・本番試験では別に情報を示される場合があるが、その他、自由に発想し可能な範囲で付加すること。

4

課題 1

（要件定義と設計）

飲食店の管理者向けデスクトップアプリケーションを構築するための、要件定義と設計を行い、以下を提出しなさい。なお必須提出物は必ず提出すること。
＜必須提出物＞
・要件定義書・DFD(データフロー図)・ユースケース図
・画面遷移図＜その他の提出物＞
基本設計段階で有益と思われるドキュメント（画面デザインモックアップ、ER 図、労働時間管理設計書、シフト適正化設計書、セキュリティ設計書など）※スタッフ向けアプリケーションについてはコーディング・実装する必要はな
いが、すでに存在するという前提で資料を作成すること。

5

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

6

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

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



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

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

7

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

データ型

制約

説明

AdminID

INT

PRIMARY KEY 管理者 ID（自動増分）

Username

VARCHAR(50) NOT NULL

管理者のユーザー名

PasswordHash VARCHAR(255) NOT NULL

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

FullNameVARCHAR(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
カラム名ShiftID

データ型
INT

制約
PRIMARY
KEY

説明
シフト ID（自動増分）

8カラム名StaffID

データ型

制約

説明

FOREIGN

INTスタッフ ID

KEY

ShiftDate DATENOT NULL

シフトの日付

StartTime TIMENOT NULL

シフト開始時間

EndTime TIMENOT NULL

シフト終了時間

Status

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

VARCHAR(20) NOT NULLなど）

テーブル: ShiftRequests
カラム名

データ型

RequestID

INT

StaffID

INT

OriginalShiftID

INT

制約
PRIMARYKEY
FOREIGNKEY
FOREIGN
KEY

RequestedShiftID INT

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

スタッフ ID

元のシフト ID
リクエストされたシフト ID

RequestDate

DATE

NOT NULL

Status

VARCHAR(20) NOT NULL

リクエストの日付
リクエストの状態（承認済み、申請中など）

テーブル: Attendance
カラム名

データ型

制約

説明

AttendanceID INTPRIMARY KEY 出勤 ID（自動増分）

StaffID

INT

FOREIGN KEY スタッフ ID

ShiftID

INT

FOREIGN KEY シフト ID

CheckInTime

DATETIME NOT NULL

出勤時間9

カラム名

データ型

CheckOutTime DATETIME

制約

説明
退勤時間10