TISの画面設計書テンプレ＆サンプルが役立ちそうなので紹介しておく

## はじめに
プロジェクトの要件定義〜基本設計にかけて必要となる画面設計書ですが、設計書テンプレがイマイチ定まっていなかったりするプロジェクトもあると思います。

そこで今回は実際のプロジェクトに使える画面設計書のテンプレ＆サンプルを紹介したいと思います。例によって大手SIerのTIS社のサンプルを紹介するだけですが、それゆえにそのまま使えるテンプレ・サンプルとなっていて使いやすいと思います。


## 画面一覧
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/937aeed5-2dc2-4cfd-6102-03755f2ec727.png)

まずは要件定義工程で作成しているであろう「画面一覧」です。
それぞれの画面名称と画面説明を記載します。
詳細設計に向けて、画面IDの体系を決めておくのも重要ですね。

このサンプルでは以下のようなルールになっています。
 1-9桁目：　画面ID（WA1020101:プロジェクト登録確認画面）
 1-7桁目：　取引ID（WA10201:プロジェクト登録）
 2-5桁目：　機能ID（A102:プロジェクト管理）
 1桁目：　機能分類（W:Web、B:バッチ） 

例えば、「プロジェクト登録機能」に入力・確認・完了の3つの画面が紐づいている形になります。
　WA10201:プロジェクト登録
　├　WA1020101：　入力画面
　├　WA1020102：　確認画面
　└　WA1020103：　完了画面
 
参考に機能一覧も載せておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/b7d4de17-7e8e-77fc-d250-d91e9f8b87a8.png)

## 画面遷移図
続いて画面遷移図です。
これも要件定義工程で整理しているプロジェクトが多いと思います。

サンプルは「ログイン」と「ログイン後」でExcelシートを分けて記述しています。

・ログインにおける画面遷移
![画面遷移図／ログイン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/f03dfc70-73c2-f6ba-d117-e1f423408aad.png)

・ログイン後の画面遷移
![画面遷移図／プロジェクト管理](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/fbc6f57d-beb5-3be6-17dc-b410f003894d.png)

先ほどの「機能」と「画面」の関係性も分かるようになっています。
水色で囲まれた部分が「機能」に該当し、白枠部分が「画面」に該当します。

## 個別画面設計書
ここからは個別画面の設計書になります。
記載項目は以下の通り。

<table>
<caption>個別画面設計書
<thead>
<tr><th>記載項目<th>内容 
<tbody>
<tr><tr><td>画面概要<td>画面のざっくりした機能概要や利用ユーザを記載
<tr><tr><td>画面レイアウト<td>見た目となるサンプル。できれば何かしら入力されたものを用意
<tr><tr><td>一覧表示<td>検索画面などで一覧表示画面はここに表示内容を記載
<tr><tr><td>画面項目定義<td>画面の入出力項目を記載。取得元のテーブル・カラム名も
<tr><tr><td>入出力一覧<td>当画面で扱うテーブルやファイルの一覧
<tr><tr><td>画面イベント一覧<td>イベントの発生タイミングや概要
<tr><tr><td>画面イベント詳細<td>各イベントの詳細な仕様
</table>

### 画面概要
細かい画面の仕様の説明資料に入る前に、この画面がどういった機能を持つ画面なのかが、ざっくり・簡単に分かるような記載があると、はじめて設計書を見る人でも分かりやすくなります。

このサンプルはプロジェクトの照会機能（検索→詳細画面表示）なので、こういった説明がなくても理解はできますが、複雑な画面になればなるほど「この画面機能を一言で言うと？」という説明が重要になってきます。

![画面概要](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/bac73de3-03d9-bfcd-f336-657a7a26b980.png)

### 画面レイアウト
画面モックを作成していた場合はそれがそのままレイアウトに使えます。
プロジェクトによってはExcelで整理する場合もあると思いますが、その場合でもレイアウトが固まった後は具体的なWeb画面上で見た目を張り付けておくようにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/8cee356d-bcc6-44be-0d47-52ae95bc0e08.png)

なお、ヘッダー部分や、左側のメニューは画面共通レイアウトして用意されると思いますが、個別画面の資料でもイメージしやすいように張り付けておきます。

### 一覧表示
画面で何かしら一覧表示をする機能をぱっと見で分かるように記載します。
![一覧表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/d843e3ce-cbd3-7d42-5ad2-e9d1be76ef54.png)

### 画面項目定義
画面で入力あるいは出力を行う項目の詳細を記載します。
![画面項目定義](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/8019901a-c6e0-0cfd-56ba-dd009b92f49a.png)

### 入出力一覧
画面で入力あるいは出力を行うテーブルやファイルを記載します。
![入出力一覧](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/86dea399-87d1-1d03-3ec3-8b855f7041b6.png)

### 画面イベント一覧
画面上で発生するイベントについて、発生タイミングやイベントの内容、画面遷移先やサーバ通信有無を記載します。
![画面イベント一覧](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/8529d5e2-e2cf-94c2-fcfb-cee12c3d10ce.png)

### 画面イベント詳細
前述の画面イベントについて、入力チェック（バリデーション）や、テーブル操作、画面表示などの詳細な処理を記載します。
![画面イベント詳細／バリデーション](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/83a88e1b-4f29-4245-5488-b9f2b9cf0d29.png)
![画面イベント詳細／DBアクセス](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/d754239f-4a37-9cc7-c640-aec18b565d0e.png)
![画面イベント詳細／表示処理](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2739239/a4cce37c-0915-ddb2-5095-8bf4f69df0c4.png)

## 各種資料へのリンク
今回紹介した資料のリンク一式を以下に記載します。
実際に資料を見てみるとイメージしやすいと思います。

[画面一覧](https://github.com/Fintan-contents/spring-sample-project/blob/main/設計書/A1_プロジェクト管理システム/010_要件定義/040_画面設計/画面一覧_A1_プロジェクト管理システム.xlsx)

[画面遷移図](https://github.com/Fintan-contents/spring-sample-project/blob/main/設計書/A1_プロジェクト管理システム/010_要件定義/040_画面設計/画面遷移図_プロジェクト管理システム.xlsx)

[画面設計書／プロジェクト照会](https://github.com/Fintan-contents/spring-sample-project/blob/main/設計書/A1_プロジェクト管理システム/030_アプリ設計/010_システム機能設計/システム機能設計書(画面)_WA10202_プロジェクト照会.xlsx)


## おわりに
今回も大手SIerのTIS社のテックブログから役立ちそうなドキュメントを紹介しました。

またいろいろ漁ってみて良さげなドキュメントがあったら共有したいと思います。

## 関連記事
[TISの単体テスト仕様書テンプレ＆サンプルが役立ちそうなので共有しておく](https://qiita.com/otomaru97/items/d1676bddfa32edb95e40)
[TISのテスト種別＆テスト観点カタログが有用すぎるので紹介しておく](https://qiita.com/otomaru97/items/b991bb99b5c07105e2ea)