~ DX人材育成プログラム 事前学習テキスト ~
本テキストについて
このテキストは、システム開発に初めて触れる方を対象に、業務のデジタル化(DX)を推進するために最低限知っておくべき基礎知識をまとめたものです。プログラミングのスキルは問いません。「システムとは何か」「どうやって作られるのか」「自社の業務改善にどう活かせるのか」を理解することがゴールです。
想定読了時間:約1時間
コンピュータは、どれほど高性能なものでも、基本的には次の 5つの機能 の組み合わせで動いています。
| 機能 | 役割 | 身近な例え |
|---|---|---|
| 入力 | 外部からデータを受け取る | キーボード入力、マウス操作、タッチ操作 |
| 記憶 | データやプログラムを保存する | メモリ(一時的な記憶)、SSD/HDD(永続的な記憶) |
| 演算 | 計算や比較などの処理を行う | 足し算、文字の並べ替え、条件の判定 |
| 制御 | 各機能の動作順序を管理する | 「まず入力を受けて、次に計算して、結果を出す」という指揮 |
| 出力 | 処理結果を外部に表示・送信する | 画面表示、印刷、メール送信 |
すべてのシステムは、この「入力 → 処理(演算・制御) → 出力」の流れで動いています。たとえば、Excelで売上データを入力し、合計を計算して、グラフを表示するのも、この流れそのものです。
コンピュータは ハードウェア(物理的な機器)と ソフトウェア(プログラム)の2つで構成されます。
OSは「建物の基礎や配管」、アプリケーションは「その上に作られた部屋や設備」だと考えるとわかりやすいでしょう。私たちが普段使っているアプリケーションは、すべてOSという土台の上で動いています。
コンピュータの「記憶」には、速度と持続性の異なる2種類があります。
| 種類 | 特徴 | 例え |
|---|---|---|
| メモリ(主記憶) | 高速だが、電源を切ると消える一時的な記憶 | 作業机(今使っている書類を広げる場所) |
| ストレージ(補助記憶) | メモリより遅いが、電源を切っても消えない永続的な記憶 | 書庫(書類をしまって保管する場所) |
パソコンの動作が遅くなるのは、メモリ(作業机)がいっぱいになって処理しきれなくなっている場合が多くあります。この仕組みを知っておくと、「なぜ不要なアプリを閉じると動作が速くなるのか」が理解できます。
私たちが普段使っているWebサービス(ネットショッピング、クラウド会計ソフトなど)は、クライアント と サーバー という2つの役割に分かれて動いています。
たとえば、ネット通販で商品を検索するとき、次のようなやり取りが行われています。
[あなたのブラウザ] → 「"タオル"で検索して」というリクエストを送る
↓
[サーバー] → データベースから該当商品を探す
↓
[あなたのブラウザ] ← 検索結果の一覧を受け取って画面に表示する
このリクエスト(要求)とレスポンス(応答)のやり取りが、Webシステムの基本的な動き方です。
規模の大きなWebシステムは、役割ごとに 3つの層 に分けて作られるのが一般的です。
| 層 | 役割 | わかりやすい例え |
|---|---|---|
| 表示層(フロントエンド) | 利用者の画面を表示し、操作を受け付ける | レストランのホールスタッフ(注文を受ける) |
| 処理層(バックエンド) | 業務ロジック(計算、判定など)を実行する | キッチンのシェフ(料理を作る) |
| データ層(データベース) | データを保存・管理する | 食材倉庫(材料を保管する) |
層を分けることで、たとえば「画面のデザインを変えたいが、裏側の計算ロジックは変えたくない」といった変更が、互いに影響を与えずに行えるようになります。これは、システムの保守(メンテナンス)を楽にするための重要な考え方です。
API(Application Programming Interface) とは、ソフトウェア同士がデータをやり取りするための「窓口」のことです。
身近な例を挙げると、天気予報アプリは自分で天気を観測しているわけではありません。気象データを提供しているサービスの「API」を通じてデータを受け取り、画面に表示しています。
APIの仕組みを理解しておくと、「あるシステムのデータを、別のシステムで自動的に使う」という システム連携 の発想ができるようになります。これはDXの推進において非常に重要な考え方です。
たとえば:
システム開発には、大きく分けて2つの進め方があります。
水が上から下に流れるように、工程を順番に1つずつ進めていく手法です。
要件定義 → 設計 → 実装(プログラミング) → テスト → 運用開始
短い期間(通常2〜4週間)で「設計→実装→テスト」の小さなサイクルを繰り返し、動くものをまず作って、利用者のフィードバックを得ながら改善していく手法です。
どちらが良い・悪いではなく、プロジェクトの性質に応じて使い分けることが重要です。
どちらの手法でも、システム開発は基本的に以下の工程を経て進みます。
| 工程 | やること | 成果物の例 |
|---|---|---|
| 要件定義 | 「何を作るか」を決める。業務上の課題を分析し、システムに必要な機能を明確にする | 要件定義書 |
| 設計 | 「どう作るか」を決める。画面の構成、データの持ち方、処理の流れを設計する | 画面設計書、データベース設計書 |
| 実装 | 設計に基づいてプログラムを作成する | ソースコード |
| テスト | 作ったプログラムが正しく動くかを検証する | テスト報告書 |
| 運用・保守 | システムを稼働させ、不具合の修正や機能追加を行う | 運用マニュアル |
特に重要なのは、最初の「要件定義」がシステムの品質を決定づける という点です。ここで業務の課題や必要な機能を正確に洗い出せないと、どれほど優れた技術で実装しても、使えないシステムになってしまいます。
テストは1回やれば終わりではなく、段階的に行われます。
| テストの種類 | 確認すること | 例え |
|---|---|---|
| 単体テスト | プログラムの各部品が、単独で正しく動くか | 部品1つ1つの品質検査 |
| 結合テスト | 部品同士をつなげたとき、正しく連携するか | 部品を組み合わせた動作確認 |
| 総合テスト | システム全体が、実際の利用環境で正しく動くか | 完成品の最終検査 |
| 受入テスト | 発注者(顧客)が、要件通りにできているかを確認する | 顧客による検収 |
テストで不具合(バグ)が見つかるのは、むしろ正常なプロセスです。テストの目的は「バグがないことを証明する」ことではなく、「バグを早期に発見して修正する」 ことにあります。
業務をシステム化する際、いきなり「どんなシステムを作るか」を考えるのは危険です。まずは次の2つを整理します。
As-Is と To-Be のギャップ(差分)こそが、システムで解決すべき課題 です。
| 項目 | As-Is(現状) | To-Be(理想) |
|---|---|---|
| 申請方法 | 紙の申請書に手書きで記入 | PCやスマホから入力 |
| 承認プロセス | 上司のデスクに紙を持っていき、ハンコをもらう | システム上でワンクリック承認 |
| 経理処理 | 紙の内容をExcelに転記 | 申請データが自動で経理に連携 |
| 所要時間 | 申請から精算まで約2週間 | 申請から精算まで約3日 |
As-Is / To-Be のギャップが明確になったら、それをシステムの 要件 として整理します。要件には2種類あります。
| 種類 | 内容 | 例 |
|---|---|---|
| 機能要件 | システムが「何をできるか」 | 経費申請の入力画面、承認ワークフロー、CSV出力 |
| 非機能要件 | システムが「どのように動くべきか」 | 画面表示は3秒以内、24時間365日稼働、同時に100人が使える |
初学者がつい見落としがちなのが 非機能要件 です。「動く」だけでは不十分で、「どれくらいの速さで」「どれくらいの負荷に耐えて」「どれくらい安全に」動くかまで定義する必要があります。
非機能要件が見落とされやすいのには理由があります。機能要件は「経費を申請できる」「承認できる」のように目に見える動作なので、現場の人も言語化しやすい。一方、非機能要件は「画面が3秒以内に表示される」「月末の集中アクセスでも落ちない」のように、普段は意識されない"当たり前"の期待です。利用者はそれが満たされないとき初めて不満を感じますが、事前に自分から要望として言語化することはほとんどありません。
近年の生成AIは、機能要件の洗い出しや整理を効率よく手伝ってくれます。しかし、非機能要件はシステムを実際に使う人間の業務環境・利用状況に深く依存するため、AIだけでは引き出しきれません。「月末に何人が同時にアクセスしますか?」「出先からスマートフォンで使うことはありますか?」「停止が許されない時間帯はありますか?」といった問いを、人間が意図して投げかけて聞き出すことが不可欠です。
要件を正しく定義するためには、実際に業務を行っている現場の人にヒアリングを行うことが不可欠です。
ヒアリングでよくある落とし穴は、現場の人が「今のやり方」を前提に要望を出してしまう ことです。
表面的な要望の裏にある 「本当に達成したいこと(目的)」 を引き出すのが、要件定義の難しさであり、最も価値のあるスキルです。
2023年以降、ChatGPTに代表される 生成AI の急速な進化により、システム開発のあり方は大きく変わりつつあります。
従来のシステム開発では、プログラミング言語を習得し、コードを1行ずつ書く技術が必須でした。しかし現在では、AIに対して自然な言葉(日本語)で「こういう機能を作りたい」と伝えるだけで、AIがプログラムのコードを生成してくれる時代になっています。
この「自然言語でAIに指示を出し、アプリケーションを作る」手法は Vibeコーディング(Vibe Coding) と呼ばれ、プログラミング経験のない人でもアプリケーション開発に参加できる可能性を広げました。
生成AIは、システム開発のさまざまな場面で人間の生産性を大きく引き上げています。具体的にどのような作業が変わったのかを見てみましょう。
最も大きな変化は、プログラムのコードをAIが書いてくれるようになったことです。「ログイン画面を作って」「入力されたデータをデータベースに保存する処理を書いて」といった指示を日本語で出すだけで、数秒〜数分でプログラムが生成されます。
従来は数日かかっていたような機能の実装が数時間で終わるケースも珍しくなく、開発のスピードは飛躍的に向上しました。
要件定義書、設計書、テスト仕様書、マニュアルなどの文書作成にもAIは有効です。たとえば「経費精算システムの要件定義書のたたき台を作って」と指示すれば、必要な項目が網羅された草案が即座に出力されます。ゼロから書き始める負担がなくなり、人間は内容の精査と判断に集中できるようになりました。
大量のデータを読み込ませて傾向を分析したり、Excelに散在するデータを整理・変換したりする作業も、AIが得意とする領域です。「この売上データから月別の推移をグラフにまとめて」といった指示で、従来は手作業で何時間もかかっていた分析がすぐに完了します。
第3章で学んだテスト工程でも、AIの活用が進んでいます。「この仕様に対して、考えられるテストケースを洗い出して」と指示すれば、人間が見落としがちなパターンも含めた網羅的なテスト項目を生成してくれます。
前任者が作ったプログラムの中身がわからない、引き継ぎ資料がない ── 業務現場ではよくある問題です。AIにプログラムのコードを読み込ませて「このプログラムは何をしているか、日本語で説明して」と聞けば、コードの意味を平易な言葉で解説してくれます。
AIの進化は、個々の作業効率を上げただけでなく、ソフトウェア産業全体の構造を変えつつあります。
従来、システム開発はプログラミングスキルを持つ専門のエンジニアだけの仕事でした。しかしAIを介することで、プログラミング未経験の営業担当者が自分の業務ツールを作ったり、経理担当者が集計処理を自動化したりすることが現実になっています。
これは 「市民開発者(Citizen Developer)」 と呼ばれる動きで、現場の業務を最もよく知っている人自身が改善ツールを作れるという大きな利点があります。
以前は数百万円・数ヶ月かかっていた業務アプリの開発が、AIを活用することで数十万円・数週間で実現できるケースが増えています。これは中小企業にとって特に大きなインパクトです。「システム開発は大企業がやるもの」という前提が崩れ、規模の小さな企業でも自社に合ったシステムを持てる時代になりつつあります。
AIがコードを書いてくれるようになった結果、人間に求められるスキルは大きく変わりました。
| 従来求められたスキル | AI時代に求められるスキル |
|---|---|
| プログラミング言語の文法を覚える | 業務の課題を正確に言語化する |
| コードを1行ずつ書く | AIへの指示(プロンプト)を的確に書く |
| バグを自力で見つけて修正する | AIの出力結果を検証し、正しいか判断する |
| 技術的な実装方法を調べる | 何を作るべきか・作らないべきかを判断する |
つまり、プログラミングの技術そのものよりも、「何を解決したいのか」を明確にする力と、「AIの出力が正しいかどうかを見極める力」が重要になっています。
ここでは、地域の中小企業でAIを活用した業務改善がどのように実現するかを、具体的な例で紹介します。
| 項目 | 従来のやり方 | AIを活用した改善 |
|---|---|---|
| 記録 | 手書きで用紙に記入 | スマホから音声入力 → AIが定型フォーマットに自動整形 |
| 集計 | 月末にExcelに手入力で転記 | データが自動で蓄積され、月次レポートをAIが生成 |
| 活用 | ファイルに綴じて棚に保管(ほぼ見返さない) | 過去データをAIに質問できる(例:「先月のトラブル一覧を出して」) |
社内のよくある問い合わせ(「有給の申請方法は?」「経費の締め日は?」など)にAIチャットボットが自動回答することで、総務・人事担当者の対応時間を削減できます。AIは社内のマニュアルやFAQを学習し、回答を自動生成します。
過去の見積書や提案書をAIに読み込ませておくことで、新しい案件に対して「過去の類似案件を参考にしたたたき台」を自動生成できます。ゼロから書く時間が大幅に短縮されます。
しかし、生成AIは万能ではありません。AIを活用する際には、以下のリスクを必ず理解しておく必要があります。
AIは、事実に基づかない情報をあたかも正しいかのように出力することがあります。これを ハルシネーション と呼びます。たとえば、存在しない法律の条文を引用したり、架空の統計データを提示したりすることがあります。AIの出力を鵜呑みにせず、必ず人間が確認・検証することが重要です。
AIが生成したプログラムの中身を人間が理解しないまま使い続けると、不具合が起きたときに原因を特定できなくなります。さらに、改修や機能追加をしようとしても、既存のプログラムが何をしているのかわからないため手が付けられない ── という事態に陥ります。
「コードを書けなくてもよいが、読めること(何をしているか理解できること)は必要」 というのが、AI時代の開発者に求められる基本姿勢です。
AIに対して不正な指示を紛れ込ませる攻撃(プロンプトインジェクション)や、AIが意図せず脆弱なコードを生成してしまうリスクがあります。AIが作ったものであっても、セキュリティの確認は人間の責任です。
AIサービスに入力したデータは、サービス提供元のサーバーに送信されます。顧客情報や個人情報、社内の機密データをAIに入力する際は、そのサービスの利用規約やデータの取り扱い方針を確認する必要があります。「便利だから」と安易に機密情報を入力してはいけません。
AIが進化しても、人間にしかできない重要な役割があります。
| 役割 | なぜAIにはできないのか |
|---|---|
| 業務課題の発見と定義 | 現場の暗黙知や人間関係を含めた課題は、AIには見えない |
| 要件の優先順位づけ | 予算・人員・期限の中で何を優先するかは、経営判断 |
| 非機能要件の引き出し | 「当たり前」すぎて言語化されない期待は、人間が意図的に聞き出す必要がある(→ 第4章 4-2参照) |
| AIの出力の検証と判断 | 最終的な品質の責任を負うのは人間 |
| ステークホルダーとの合意形成 | 関係者の納得を得るコミュニケーションは人間の仕事 |
つまり、AI時代のDX人材に求められるのは「プログラミングができること」ではなく、「業務の課題を正しく分析し、AIやシステムをツールとして使いこなし、成果を出せること」 です。AIは強力な道具ですが、道具を使う方向を決めるのは、あくまで人間です。
システムを導入すると、業務データがデジタル化され、ネットワークを通じてやり取りされるようになります。これは利便性が高い反面、情報漏洩や不正アクセスのリスク が生まれることを意味します。
中小企業だからといってサイバー攻撃の対象にならないわけではありません。むしろ、セキュリティ対策が手薄な中小企業は攻撃者にとって狙いやすいターゲットです。また、取引先の大企業への攻撃の踏み台として、サプライチェーン上の中小企業が狙われるケースも増えています。
この2つは混同されがちですが、まったく別の概念です。正しいパスワードでログインできた(認証)からといって、すべてのデータにアクセスしてよい(認可)わけではありません。
password123」などは絶対に避けるフィッシング詐欺とは、銀行やサービス提供元を装った偽のメール・Webサイトで、パスワードやクレジットカード情報を盗み取る手口です。
amazon.co.jp と amaz0n.co.jp の違い)個人の注意だけでは限界があるため、組織としての対策も重要です。
| 対策 | 内容 |
|---|---|
| アクセス権限の管理 | 業務に必要な最小限の権限のみを付与する(最小権限の原則) |
| ソフトウェアの更新 | OS・アプリケーションのアップデートを速やかに適用し、既知の脆弱性を塞ぐ |
| バックアップ | データの定期的なバックアップを行い、ランサムウェア(データを暗号化して身代金を要求するマルウェア)への備えとする |
| インシデント対応計画 | 万が一の情報漏洩時に、誰が何をするかを事前に決めておく |
本テキストで学んだ内容を振り返ります。
| 章 | 学んだこと |
|---|---|
| 第1章 | コンピュータは入力・記憶・演算・制御・出力の5大機能で動いている。ハードウェアとソフトウェア、2種類の記憶装置の違い |
| 第2章 | Webシステムはクライアントとサーバーのやり取りで動いている。3層構造とAPIによるシステム連携の考え方 |
| 第3章 | システム開発にはウォーターフォール型とアジャイル型がある。開発は5つの工程を経て進み、テストは段階的に行う |
| 第4章 | システム化の第一歩はAs-Is/To-Be分析。要件には機能要件と非機能要件がある。表面的な要望ではなく本当の目的を引き出すことが大切 |
| 第5章 | 生成AIはコード生成・文書作成・データ分析など幅広く活躍し、開発の敷居を下げた。一方でハルシネーション・ブラックボックス化・機密情報の取り扱いなどのリスクがあり、AIの出力を検証する人間の判断力が不可欠 |
| 第6章 | セキュリティは全員の責任。認証と認可の違い、パスワード管理、フィッシング対策、組織的な対策の4つが基本 |
次のステップとして、Google Formによる確認テスト(10問)に取り組んでください。テキストの内容を理解していれば、すべて正解できる内容です。