システム開発の基礎知識

~ DX人材育成プログラム 事前学習テキスト ~


本テキストについて

このテキストは、システム開発に初めて触れる方を対象に、業務のデジタル化(DX)を推進するために最低限知っておくべき基礎知識をまとめたものです。プログラミングのスキルは問いません。「システムとは何か」「どうやって作られるのか」「自社の業務改善にどう活かせるのか」を理解することがゴールです。

想定読了時間:約1時間


第1章 コンピュータとソフトウェアの基本

1-1. コンピュータの5大機能

コンピュータは、どれほど高性能なものでも、基本的には次の 5つの機能 の組み合わせで動いています。

機能役割身近な例え
入力外部からデータを受け取るキーボード入力、マウス操作、タッチ操作
記憶データやプログラムを保存するメモリ(一時的な記憶)、SSD/HDD(永続的な記憶)
演算計算や比較などの処理を行う足し算、文字の並べ替え、条件の判定
制御各機能の動作順序を管理する「まず入力を受けて、次に計算して、結果を出す」という指揮
出力処理結果を外部に表示・送信する画面表示、印刷、メール送信

すべてのシステムは、この「入力 → 処理(演算・制御) → 出力」の流れで動いています。たとえば、Excelで売上データを入力し、合計を計算して、グラフを表示するのも、この流れそのものです。

1-2. ハードウェアとソフトウェア

コンピュータは ハードウェア(物理的な機器)と ソフトウェア(プログラム)の2つで構成されます。

OSは「建物の基礎や配管」、アプリケーションは「その上に作られた部屋や設備」だと考えるとわかりやすいでしょう。私たちが普段使っているアプリケーションは、すべてOSという土台の上で動いています。

1-3. 2種類の記憶装置

コンピュータの「記憶」には、速度と持続性の異なる2種類があります。

種類特徴例え
メモリ(主記憶)高速だが、電源を切ると消える一時的な記憶作業机(今使っている書類を広げる場所)
ストレージ(補助記憶)メモリより遅いが、電源を切っても消えない永続的な記憶書庫(書類をしまって保管する場所)

パソコンの動作が遅くなるのは、メモリ(作業机)がいっぱいになって処理しきれなくなっている場合が多くあります。この仕組みを知っておくと、「なぜ不要なアプリを閉じると動作が速くなるのか」が理解できます。


第2章 Webシステムの仕組み

2-1. クライアントとサーバー

私たちが普段使っているWebサービス(ネットショッピング、クラウド会計ソフトなど)は、クライアントサーバー という2つの役割に分かれて動いています。

たとえば、ネット通販で商品を検索するとき、次のようなやり取りが行われています。

[あなたのブラウザ]  →  「"タオル"で検索して」というリクエストを送る
                         ↓
[サーバー]          →  データベースから該当商品を探す
                         ↓
[あなたのブラウザ]  ←  検索結果の一覧を受け取って画面に表示する

このリクエスト(要求)とレスポンス(応答)のやり取りが、Webシステムの基本的な動き方です。

2-2. Webシステムの3つの層

規模の大きなWebシステムは、役割ごとに 3つの層 に分けて作られるのが一般的です。

役割わかりやすい例え
表示層(フロントエンド)利用者の画面を表示し、操作を受け付けるレストランのホールスタッフ(注文を受ける)
処理層(バックエンド)業務ロジック(計算、判定など)を実行するキッチンのシェフ(料理を作る)
データ層(データベース)データを保存・管理する食材倉庫(材料を保管する)

層を分けることで、たとえば「画面のデザインを変えたいが、裏側の計算ロジックは変えたくない」といった変更が、互いに影響を与えずに行えるようになります。これは、システムの保守(メンテナンス)を楽にするための重要な考え方です。

2-3. APIとは何か

API(Application Programming Interface) とは、ソフトウェア同士がデータをやり取りするための「窓口」のことです。

身近な例を挙げると、天気予報アプリは自分で天気を観測しているわけではありません。気象データを提供しているサービスの「API」を通じてデータを受け取り、画面に表示しています。

APIの仕組みを理解しておくと、「あるシステムのデータを、別のシステムで自動的に使う」という システム連携 の発想ができるようになります。これはDXの推進において非常に重要な考え方です。

たとえば:


第3章 システム開発の進め方

3-1. 2つの開発手法

システム開発には、大きく分けて2つの進め方があります。

ウォーターフォール型

水が上から下に流れるように、工程を順番に1つずつ進めていく手法です。

要件定義 → 設計 → 実装(プログラミング) → テスト → 運用開始

アジャイル型

短い期間(通常2〜4週間)で「設計→実装→テスト」の小さなサイクルを繰り返し、動くものをまず作って、利用者のフィードバックを得ながら改善していく手法です。

どちらが良い・悪いではなく、プロジェクトの性質に応じて使い分けることが重要です。

3-2. 開発工程の全体像

どちらの手法でも、システム開発は基本的に以下の工程を経て進みます。

工程やること成果物の例
要件定義「何を作るか」を決める。業務上の課題を分析し、システムに必要な機能を明確にする要件定義書
設計「どう作るか」を決める。画面の構成、データの持ち方、処理の流れを設計する画面設計書、データベース設計書
実装設計に基づいてプログラムを作成するソースコード
テスト作ったプログラムが正しく動くかを検証するテスト報告書
運用・保守システムを稼働させ、不具合の修正や機能追加を行う運用マニュアル

特に重要なのは、最初の「要件定義」がシステムの品質を決定づける という点です。ここで業務の課題や必要な機能を正確に洗い出せないと、どれほど優れた技術で実装しても、使えないシステムになってしまいます。

3-3. テストの種類

テストは1回やれば終わりではなく、段階的に行われます。

テストの種類確認すること例え
単体テストプログラムの各部品が、単独で正しく動くか部品1つ1つの品質検査
結合テスト部品同士をつなげたとき、正しく連携するか部品を組み合わせた動作確認
総合テストシステム全体が、実際の利用環境で正しく動くか完成品の最終検査
受入テスト発注者(顧客)が、要件通りにできているかを確認する顧客による検収

テストで不具合(バグ)が見つかるのは、むしろ正常なプロセスです。テストの目的は「バグがないことを証明する」ことではなく、「バグを早期に発見して修正する」 ことにあります。


第4章 業務改善とシステム化の考え方

4-1. As-Is / To-Be 分析

業務をシステム化する際、いきなり「どんなシステムを作るか」を考えるのは危険です。まずは次の2つを整理します。

As-Is と To-Be のギャップ(差分)こそが、システムで解決すべき課題 です。

具体例:紙の申請書を使った経費精算

項目As-Is(現状)To-Be(理想)
申請方法紙の申請書に手書きで記入PCやスマホから入力
承認プロセス上司のデスクに紙を持っていき、ハンコをもらうシステム上でワンクリック承認
経理処理紙の内容をExcelに転記申請データが自動で経理に連携
所要時間申請から精算まで約2週間申請から精算まで約3日

4-2. 要件定義の基本

As-Is / To-Be のギャップが明確になったら、それをシステムの 要件 として整理します。要件には2種類あります。

種類内容
機能要件システムが「何をできるか」経費申請の入力画面、承認ワークフロー、CSV出力
非機能要件システムが「どのように動くべきか」画面表示は3秒以内、24時間365日稼働、同時に100人が使える

初学者がつい見落としがちなのが 非機能要件 です。「動く」だけでは不十分で、「どれくらいの速さで」「どれくらいの負荷に耐えて」「どれくらい安全に」動くかまで定義する必要があります。

非機能要件が見落とされやすいのには理由があります。機能要件は「経費を申請できる」「承認できる」のように目に見える動作なので、現場の人も言語化しやすい。一方、非機能要件は「画面が3秒以内に表示される」「月末の集中アクセスでも落ちない」のように、普段は意識されない"当たり前"の期待です。利用者はそれが満たされないとき初めて不満を感じますが、事前に自分から要望として言語化することはほとんどありません。

近年の生成AIは、機能要件の洗い出しや整理を効率よく手伝ってくれます。しかし、非機能要件はシステムを実際に使う人間の業務環境・利用状況に深く依存するため、AIだけでは引き出しきれません。「月末に何人が同時にアクセスしますか?」「出先からスマートフォンで使うことはありますか?」「停止が許されない時間帯はありますか?」といった問いを、人間が意図して投げかけて聞き出すことが不可欠です。

4-3. ユーザーヒアリングの重要性

要件を正しく定義するためには、実際に業務を行っている現場の人にヒアリングを行うことが不可欠です。

ヒアリングでよくある落とし穴は、現場の人が「今のやり方」を前提に要望を出してしまう ことです。

表面的な要望の裏にある 「本当に達成したいこと(目的)」 を引き出すのが、要件定義の難しさであり、最も価値のあるスキルです。


第5章 AI時代のシステム開発

5-1. 生成AIがもたらした変化

2023年以降、ChatGPTに代表される 生成AI の急速な進化により、システム開発のあり方は大きく変わりつつあります。

従来のシステム開発では、プログラミング言語を習得し、コードを1行ずつ書く技術が必須でした。しかし現在では、AIに対して自然な言葉(日本語)で「こういう機能を作りたい」と伝えるだけで、AIがプログラムのコードを生成してくれる時代になっています。

この「自然言語でAIに指示を出し、アプリケーションを作る」手法は Vibeコーディング(Vibe Coding) と呼ばれ、プログラミング経験のない人でもアプリケーション開発に参加できる可能性を広げました。

5-2. AIが力を発揮する領域

生成AIは、システム開発のさまざまな場面で人間の生産性を大きく引き上げています。具体的にどのような作業が変わったのかを見てみましょう。

コードの自動生成

最も大きな変化は、プログラムのコードをAIが書いてくれるようになったことです。「ログイン画面を作って」「入力されたデータをデータベースに保存する処理を書いて」といった指示を日本語で出すだけで、数秒〜数分でプログラムが生成されます。

従来は数日かかっていたような機能の実装が数時間で終わるケースも珍しくなく、開発のスピードは飛躍的に向上しました。

ドキュメント・仕様書の作成支援

要件定義書、設計書、テスト仕様書、マニュアルなどの文書作成にもAIは有効です。たとえば「経費精算システムの要件定義書のたたき台を作って」と指示すれば、必要な項目が網羅された草案が即座に出力されます。ゼロから書き始める負担がなくなり、人間は内容の精査と判断に集中できるようになりました。

データの整理・分析

大量のデータを読み込ませて傾向を分析したり、Excelに散在するデータを整理・変換したりする作業も、AIが得意とする領域です。「この売上データから月別の推移をグラフにまとめて」といった指示で、従来は手作業で何時間もかかっていた分析がすぐに完了します。

テストと品質確認の支援

第3章で学んだテスト工程でも、AIの活用が進んでいます。「この仕様に対して、考えられるテストケースを洗い出して」と指示すれば、人間が見落としがちなパターンも含めた網羅的なテスト項目を生成してくれます。

既存システムの理解と調査

前任者が作ったプログラムの中身がわからない、引き継ぎ資料がない ── 業務現場ではよくある問題です。AIにプログラムのコードを読み込ませて「このプログラムは何をしているか、日本語で説明して」と聞けば、コードの意味を平易な言葉で解説してくれます。

5-3. ソフトウェア産業に起きている変化

AIの進化は、個々の作業効率を上げただけでなく、ソフトウェア産業全体の構造を変えつつあります。

「作る人」のすそ野が広がった

従来、システム開発はプログラミングスキルを持つ専門のエンジニアだけの仕事でした。しかしAIを介することで、プログラミング未経験の営業担当者が自分の業務ツールを作ったり、経理担当者が集計処理を自動化したりすることが現実になっています。

これは 「市民開発者(Citizen Developer)」 と呼ばれる動きで、現場の業務を最もよく知っている人自身が改善ツールを作れるという大きな利点があります。

開発にかかるコストと期間の短縮

以前は数百万円・数ヶ月かかっていた業務アプリの開発が、AIを活用することで数十万円・数週間で実現できるケースが増えています。これは中小企業にとって特に大きなインパクトです。「システム開発は大企業がやるもの」という前提が崩れ、規模の小さな企業でも自社に合ったシステムを持てる時代になりつつあります。

人間の役割が「実装」から「判断」へ

AIがコードを書いてくれるようになった結果、人間に求められるスキルは大きく変わりました。

従来求められたスキルAI時代に求められるスキル
プログラミング言語の文法を覚える業務の課題を正確に言語化する
コードを1行ずつ書くAIへの指示(プロンプト)を的確に書く
バグを自力で見つけて修正するAIの出力結果を検証し、正しいか判断する
技術的な実装方法を調べる何を作るべきか・作らないべきかを判断する

つまり、プログラミングの技術そのものよりも、「何を解決したいのか」を明確にする力と、「AIの出力が正しいかどうかを見極める力」が重要になっています。

5-4. AIを活用した業務改善の具体イメージ

ここでは、地域の中小企業でAIを活用した業務改善がどのように実現するかを、具体的な例で紹介します。

例1:紙の日報をデジタル化

項目従来のやり方AIを活用した改善
記録手書きで用紙に記入スマホから音声入力 → AIが定型フォーマットに自動整形
集計月末にExcelに手入力で転記データが自動で蓄積され、月次レポートをAIが生成
活用ファイルに綴じて棚に保管(ほぼ見返さない)過去データをAIに質問できる(例:「先月のトラブル一覧を出して」)

例2:問い合わせ対応の効率化

社内のよくある問い合わせ(「有給の申請方法は?」「経費の締め日は?」など)にAIチャットボットが自動回答することで、総務・人事担当者の対応時間を削減できます。AIは社内のマニュアルやFAQを学習し、回答を自動生成します。

例3:見積書・提案書の作成支援

過去の見積書や提案書をAIに読み込ませておくことで、新しい案件に対して「過去の類似案件を参考にしたたたき台」を自動生成できます。ゼロから書く時間が大幅に短縮されます。

5-5. AIを使う上での注意点

しかし、生成AIは万能ではありません。AIを活用する際には、以下のリスクを必ず理解しておく必要があります。

ハルシネーション(もっともらしい嘘)

AIは、事実に基づかない情報をあたかも正しいかのように出力することがあります。これを ハルシネーション と呼びます。たとえば、存在しない法律の条文を引用したり、架空の統計データを提示したりすることがあります。AIの出力を鵜呑みにせず、必ず人間が確認・検証することが重要です。

ブラックボックス化

AIが生成したプログラムの中身を人間が理解しないまま使い続けると、不具合が起きたときに原因を特定できなくなります。さらに、改修や機能追加をしようとしても、既存のプログラムが何をしているのかわからないため手が付けられない ── という事態に陥ります。

「コードを書けなくてもよいが、読めること(何をしているか理解できること)は必要」 というのが、AI時代の開発者に求められる基本姿勢です。

セキュリティリスク

AIに対して不正な指示を紛れ込ませる攻撃(プロンプトインジェクション)や、AIが意図せず脆弱なコードを生成してしまうリスクがあります。AIが作ったものであっても、セキュリティの確認は人間の責任です。

機密情報の取り扱い

AIサービスに入力したデータは、サービス提供元のサーバーに送信されます。顧客情報や個人情報、社内の機密データをAIに入力する際は、そのサービスの利用規約やデータの取り扱い方針を確認する必要があります。「便利だから」と安易に機密情報を入力してはいけません。

5-6. AI時代に人間に求められること

AIが進化しても、人間にしかできない重要な役割があります。

役割なぜAIにはできないのか
業務課題の発見と定義現場の暗黙知や人間関係を含めた課題は、AIには見えない
要件の優先順位づけ予算・人員・期限の中で何を優先するかは、経営判断
非機能要件の引き出し「当たり前」すぎて言語化されない期待は、人間が意図的に聞き出す必要がある(→ 第4章 4-2参照)
AIの出力の検証と判断最終的な品質の責任を負うのは人間
ステークホルダーとの合意形成関係者の納得を得るコミュニケーションは人間の仕事

つまり、AI時代のDX人材に求められるのは「プログラミングができること」ではなく、「業務の課題を正しく分析し、AIやシステムをツールとして使いこなし、成果を出せること」 です。AIは強力な道具ですが、道具を使う方向を決めるのは、あくまで人間です。


第6章 セキュリティの基礎知識

6-1. なぜセキュリティが重要なのか

システムを導入すると、業務データがデジタル化され、ネットワークを通じてやり取りされるようになります。これは利便性が高い反面、情報漏洩や不正アクセスのリスク が生まれることを意味します。

中小企業だからといってサイバー攻撃の対象にならないわけではありません。むしろ、セキュリティ対策が手薄な中小企業は攻撃者にとって狙いやすいターゲットです。また、取引先の大企業への攻撃の踏み台として、サプライチェーン上の中小企業が狙われるケースも増えています。

6-2. 知っておくべきセキュリティの基本

認証と認可

この2つは混同されがちですが、まったく別の概念です。正しいパスワードでログインできた(認証)からといって、すべてのデータにアクセスしてよい(認可)わけではありません。

パスワード管理の原則

フィッシング詐欺への対策

フィッシング詐欺とは、銀行やサービス提供元を装った偽のメール・Webサイトで、パスワードやクレジットカード情報を盗み取る手口です。

6-3. 組織としてのセキュリティ対策

個人の注意だけでは限界があるため、組織としての対策も重要です。

対策内容
アクセス権限の管理業務に必要な最小限の権限のみを付与する(最小権限の原則)
ソフトウェアの更新OS・アプリケーションのアップデートを速やかに適用し、既知の脆弱性を塞ぐ
バックアップデータの定期的なバックアップを行い、ランサムウェア(データを暗号化して身代金を要求するマルウェア)への備えとする
インシデント対応計画万が一の情報漏洩時に、誰が何をするかを事前に決めておく

まとめ

本テキストで学んだ内容を振り返ります。

学んだこと
第1章コンピュータは入力・記憶・演算・制御・出力の5大機能で動いている。ハードウェアとソフトウェア、2種類の記憶装置の違い
第2章Webシステムはクライアントとサーバーのやり取りで動いている。3層構造とAPIによるシステム連携の考え方
第3章システム開発にはウォーターフォール型とアジャイル型がある。開発は5つの工程を経て進み、テストは段階的に行う
第4章システム化の第一歩はAs-Is/To-Be分析。要件には機能要件と非機能要件がある。表面的な要望ではなく本当の目的を引き出すことが大切
第5章生成AIはコード生成・文書作成・データ分析など幅広く活躍し、開発の敷居を下げた。一方でハルシネーション・ブラックボックス化・機密情報の取り扱いなどのリスクがあり、AIの出力を検証する人間の判断力が不可欠
第6章セキュリティは全員の責任。認証と認可の違い、パスワード管理、フィッシング対策、組織的な対策の4つが基本

次のステップとして、Google Formによる確認テスト(10問)に取り組んでください。テキストの内容を理解していれば、すべて正解できる内容です。