資格道場 › レッスン一覧 › ユーザーインタフェース
ユーザーインタフェース・3/3・8分

入力画面の設計と入力データのチェック・コード設計

ゴール

入力画面の設計方針、入力データチェックの種類(論理チェック・チェックディジットなど)、コード設計で最初にやる作業を区別して、選択肢から正解を選べるようになる。

業務システムに入ったデータは、最初に間違えるとあとで直すのが大変です。そのため「入口で間違いを防ぐ設計」と「入口で間違いを見つけるチェック」が繰り返し出題されます。入力チェックは本試験でも出ていて、このレッスンでいちばん出る知識です。

このレッスンで稽古する(用語チェック・過去問)

結論:入力画面は「速く・迷わず」が正解

入力画面の設計で正解になるのは、関連する項目を隣どうしに並べることです。たとえば住所の「郵便番号・都道府県・市区町村」がバラバラの場所にあると、視線もカーソルもあちこちに飛んでしまいます。

不正解になりやすい選択肢は次のとおりです。

選択肢によく出る案 なぜダメか
初心者向けにコマンド入力方式 コマンドを覚える必要があり、初心者にはむしろ難しい(コマンド入力は熟練者向け)
エラーメッセージを「入力が誤っています」に統一 どこがどう間違っているか分からず、直せない
画面に詳細な使用方法を常に表示 画面がごちゃつく。説明はヘルプなどに分けるもの

見分け方は、「利用者がその場で迷わず、すばやく正しく入力できるか」を自分に問うことです。

ばらばら(×)関連項目が隣(○)郵便番号氏名電話番号都道府県市区町村郵便番号都道府県市区町村氏名電話番号視線もカーソルも飛ぶ上から順に進むだけ
関連する項目(郵便番号・都道府県・市区町村)が離れていると視線が行ったり来たりし、隣どうしに並べると上から順に進むだけで済む。

窓口業務は「項目を絞って専用端末」

条件が「専任の担当者が操作し、窓口の対応時間を短くしたい」のときは、入力項目を絞り込み、専用の端末で入力するのが正解です。毎日同じ操作をする慣れた担当者には、手取り足取りのガイドは要りません。

ガイドに従って1項目ずつ進むGUI、画面の階層を深くする方法、タッチパネルでのかな漢字入力は、どれも操作の手数が増えて遅くなります。これらは初心者向けの工夫です。

入力データチェックの種類(最重要)

入力データチェックとは、入力された値が正しいかをコンピュータが自動で調べる仕組みです。試験では「この状況を見るチェックはどれか」と名前を選ばせます。

チェック名 何を見るか 例
ニューメリック(数値)チェック 数値項目に数字以外が混じっていないか 数量に「1O」(英字のO)が入っている
フォーマットチェック 決められた形式・桁数になっているか 日付が「YYYYMMDD」の8桁か
範囲(リミット)チェック 値が上限・下限の範囲内か 月が1〜12に収まっているか
論理チェック 項目どうし・業務上の意味として矛盾がないか 注文日が入力日より後になっていないか
シーケンスチェック データが決められた順番に並んでいるか 伝票番号が昇順に並んでいるか
重複チェック 同じキーが二重に登録されていないか 同じ伝票番号が2件ある
照合(存在)チェック マスタ(基準となる台帳)に登録された値か 顧客コードが顧客マスタにあるか
バランスチェック 合計どうしが一致するか 借方合計=貸方合計
チェックディジット コードの値に打ち間違いがないか 社員番号の1桁を打ち間違えた

論理チェックは、形式は正しくても意味がおかしいものを捕まえます。「2024年2月30日」は8桁で形式は合っていても、実際には存在しない日付です。

20240230入力値フォーマットチェックYYYYMMDD の8桁か?通過論理チェック実際に存在する日付か?エラー形式は正しくても意味がおかしい2024年2月30日は存在しない
「20240230」は8桁でフォーマットチェックを通過するが、実在しない日付なので論理チェックで止められる。

チェックディジットの仕組み

チェックディジット(検査数字)は、コードの末尾に付ける検査用の1桁です。ほかの桁から決まった計算式で求めておき、入力されたときにもう一度計算して末尾の値と一致するかを確かめます。

たとえるなら、荷物の個数を書いた伝票に「合計」欄を付けておくようなものです。中身を1か所書き間違えると、合計が合わなくなって気づけます。重みを掛けて足し、割った余りから求める方式(モジュラス方式)がよく使われます。

検出できるのはコードの値の誤り(打ち間違いや、隣り合う数字の入れ替え)です。桁数の誤りや範囲外の値、英字の混入を見つけるのは別のチェックの役目です。

例:重み3・2・1を掛けて足し、10で割った余り登録時2471検査数字×3×2×16+8+7=21 → 余り1 を末尾に付ける4と7を入れ替えて入力すると入力時2741×3×2×16+14+4=24 → 余り4計算した4 ≠ 末尾の1打ち間違いに気づける
チェックディジットは他の桁から計算した検査用の1桁。隣り合う数字を入れ替えて入力すると、計算し直した値が末尾と合わなくなる(数値は説明用の例)。

コード設計は「何をコード化するか」から

コード設計とは、商品や顧客などに付ける番号(コード)の付け方を決める作業です。最初にやるのはコード化対象の選定、つまり「何に番号を付けるか」を決めることです。

flowchart LR
A["コード化対象の選定"] --> B["使用期間・データ量の予測"]
B --> C["コード体系の決定"]
C --> D["コード化作業・コード表作成"]
D --> E["コードファイルの作成"]

対象が決まらなければ、何件あるか(データ量)も、何桁あれば足りるかも決められません。

例題 1

どのチェックかを判定する手順

次のような注文データが入力されたとき,注文日が入力日以前の営業日かどうかを検査するチェックはどれか。
注文データ:
伝票番号(文字)注文日(文字)商品コード(文字)数量(数値)顧客コード(文字)

ア シーケンスチェック
イ 重複チェック
ウ フォーマットチェック
エ 論理チェック

出典:平成30年度 春期 基本情報技術者試験 午前 問24

解き方と答えを見る
  1. 何を確かめたいかを1行にまとめる:「注文日が入力日以前の営業日か」
  2. 形式(桁数・文字種)の話かを確認する → 違う。日付として正しい形式でも起こりうる問題なのでフォーマットチェックではない
  3. 並び順・重複の話かを確認する → 違う。1件のデータの中の話なので、シーケンスチェックでも重複チェックでもない
  4. 「注文日」と「入力日」という2つの日付の関係、さらに「営業日か」という業務上の意味を見ている → 項目間・業務の整合性を見るのは論理チェック

答え:エ:論理チェック

例題 2

コード設計の作業順を並べる

コード設計の作業の中で,最初に行うべき作業はどれか。

ア コード化作業とコード表作成
イ コード化対象の選定
ウ コードファイルの作成
エ 使用期間とデータ量の予測

出典:基本情報技術者試験 科目A免除 修了試験 200906 実施分 問27

解き方と答えを見る
  1. 各作業が「前に何が決まっていないとできないか」を考える
  2. コードファイルの作成 → コード表ができていないと作れない
  3. コード化作業とコード表作成 → コード体系(桁数や付け方)が決まっていないとできない
  4. 使用期間とデータ量の予測 → 何をコード化するかが決まっていないと予測できない
  5. コード化対象の選定 → 前提が何も要らないので、これが最初

答え:イ:コード化対象の選定

要点(試験直前に読む)

  • 入力画面は「関連する項目を隣どうしに置く」が正解。コマンド入力の採用・エラーメッセージの統一・詳細な説明の常時表示はダメ
  • 専任の担当者が窓口で使う画面は「項目を絞り込み、専用端末で入力」が最速。ガイドや階層を増やす方法は遅くなる
  • 論理チェックは、項目どうし・業務の意味の矛盾を見る(注文日が入力日より後になっていないか など)
  • チェックディジットは、コードの「値」の誤りを見つける。桁数・範囲・文字種は別のチェックの担当
  • コード設計の最初は「コード化対象の選定」。予測 → 体系の決定 → コード表 → ファイルはそれより後

ひっかけ

  • 「日付が正しいか」を見る問題でフォーマットチェックを選ばせる → 2つの項目の関係や業務ルールが絡むなら論理チェック
  • チェックディジットの目的に「桁数の誤り」「範囲外」「英字の混入」を並べる → どれも別のチェックの役目。正解は「コードの値の誤り」
  • 「初心者でも容易に」という前置きでコマンド入力方式を正解に見せる → コマンド入力は熟練者向け
  • 窓口の時短なのに「GUIのガイドに従って入力」「階層を増やして1画面の項目を減らす」を選ばせる → 手数が増えて遅くなる
  • コード設計の最初に「データ量の予測」を選ばせる → 対象が決まらないと予測できない

用語(12)

論理チェック ろんりチェック
項目どうしの関係や業務上の意味として、矛盾がないかを確かめるチェック。
⚠ フォーマットチェックは形式(桁数・文字種)だけを見る。形式は正しくても意味がおかしいものを捕まえるのが論理チェック。
フォーマットチェック フォーマットチェック
データが決められた形式・桁数・文字種になっているかを確かめるチェック。
⚠ 論理チェックとの区別に注意。「2月30日」は形式としては合っている(意味の誤りは論理チェックが捕まえる)。
ニューメリックチェック numeric check(数値チェック)
数値項目に数字以外の文字が混じっていないかを確かめるチェック。
⚠ 英字や記号の混入を見つけるのはこちらで、チェックディジットではない。
範囲チェック はんいチェック(リミットチェック)
値があらかじめ決めた上限・下限の範囲に収まっているかを確かめるチェック。
⚠ 範囲外の値はチェックディジットでは検出しない。
シーケンスチェック sequence check(順序チェック)
データが決められた順番(昇順など)に並んでいるかを確かめるチェック。
⚠ 重複チェックは同じキーが2件あるかを見る。順番を見るのがシーケンスチェック。
重複チェック ちょうふくチェック
同じキー(伝票番号など)のデータが二重に登録されていないかを確かめるチェック。
⚠ シーケンスチェックとの違いは、並び順ではなく重なりを見る点。
照合チェック しょうごうチェック(存在チェック)
入力されたコードがマスタファイルに登録されているかを照らし合わせるチェック。
⚠ チェックディジットは計算で誤りを見つけ、照合チェックはマスタと突き合わせて見つける。
バランスチェック balance check(貸借一致チェック)
関連する合計値どうし(借方と貸方など)が一致するかを確かめるチェック。
チェックディジット check digit(検査数字)
コードのほかの桁から計算して末尾に付け、入力時に計算し直してコードの値の誤りを見つけるための数字。
⚠ 桁数の誤りはフォーマットチェック、範囲外は範囲チェック、英字の混入はニューメリックチェック。チェックディジットが見るのは「コードの値」の誤り。
コード設計 コードせっけい
商品・顧客などに付ける番号の対象・桁数・体系を決める作業。
コード化対象の選定 コードかたいしょうのせんてい
何に対してコードを付けるかを決める、コード設計の最初の作業。
⚠ データ量の予測やコード表作成は、対象が決まった後の作業。
コマンド入力方式 コマンドにゅうりょくほうしき
命令を文字で打ち込んで操作する方式で、慣れた熟練者には速いが初心者には難しい。
⚠ 初心者向けなのはGUIやメニュー選択の方式。「初心者向けにコマンド入力」はひっかけ。

このレッスンの過去問

このレッスンで稽古する