ひな形とサンプル

この教材で「自分の手で作るもの」と「動かして確かめるもの」を、使う順番に並べています。

  1. 1ひな形を埋める要件・設計などを自分の言葉で書く。空欄版と記入例があります
  2. 2実験コードを動かすAIが作った仕組みを、架空データで実際に動かしてみる
  3. 3実行記録で答え合わせ「正しく動いたときの記録」と見比べる(上級者向け)

各記事で使うひな形と記入例、最小実験コード、匿名化した実行記録です。閲覧用ページとファイルの保存リンクを分けています。保存ファイルの内容は正本と同一です(正本のSHA-256を MANIFEST.json に記録)。

演習コードは架空データ用で、意図的な失敗例(approval_v1.py、cleanup_v1_1.py)と削除処理を含みます。業務データやサーバー上では実行しないでください。このサイトにコードを実行する機能はありません。

ひな形(空欄版・記入例)

まず使う3つ

ひな形58種のうち、最初に手に取ることが多い3つです。閲覧版(このサイトで読む)と保存版(.md ファイル)の両方があります。

すべてのひな形は、この下の工程ごとの一覧にあります。

工程(00〜13)ごとに分けています。見出しを押すと開閉します。記事A・B・C用のひな形は、それぞれが属する工程(02・09・12)の中にあります。

00開発を始める前の基礎4種この段階で使う:開発を始める前に、アプリの仕組み・用語・工程の全体・人とAIの分担を自分の言葉で整理する
ひな形何に使う使う記事空欄版・記入例
アプリの見取り図00-01自分のアプリの利用者・画面・処理・保存先・通信を1枚の見取り図にする00-01
基本用語対応表・架空データ例00-02ファイル・プログラム・入力データ・データ形式の違いを、手元のファイルを指して整理する00-02
工程・成果物対応表00-0314の工程それぞれの目的と成果物、前の工程へ戻る場面を一覧にする00-03
人とAIの役割表00-04作業ごとに「AIに任せる/人が決める」と検証方法を決める00-04
01課題発見・企画4種この段階で使う:困り事を聞き取り、目的と効果を決め、「作るべきか」を判断する
ひな形何に使う使う記事空欄版・記入例
利用者・関係者の整理表01-01利用者・担当者・承認者・管理者を区別し、聞き取り先を整理する01-01
現状業務フロー・課題一覧01-02今の作業の流れと待ち時間・手戻り・例外を書き出し、困り事を現象と原因に分ける01-02
目的・評価指標・測定方法01-03何が改善すれば「役立った」と言えるかを、指標と測り方まで決める01-03
選択肢比較表・企画書01-04運用変更・既存機能・既製サービス・新規開発を比べ、作る/作らないを説明する01-04
02要件定義:何を実現するか決める5種この段階で使う:困り事を「誰が・どの条件で・何を」の要件にし、受入条件まで書く
ひな形何に使う使う記事空欄版・記入例
要件定義ひな形02-01曖昧な希望を「誰が・どの条件で・何を」の要件と受入条件に書き分ける(記事Aの中心)記事A
AIへ渡す資料と指示02-01AIに要件の下書きを頼む前に、渡す資料・制約・返してほしい形式・人が確認する点を書き出す記事A・B
機能一覧・対象範囲02-02最小限の機能、後回しの機能、作らない機能を分けて対象範囲を決める02-02
品質条件一覧02-03安全性・速度・使いやすさなど機能以外の条件を、利用状況に結びつけて書く02-03
受入条件対応表02-04正常時・不正操作・途中失敗・再実行を含めた受入条件と、要件との対応を書く02-04
03開発計画・技術選定4種この段階で使う:社内の制約を確かめ、作り方と技術を比べ、作業順序と役割を決める
ひな形何に使う使う記事空欄版・記入例
制約・前提条件一覧03-01端末・ネットワーク・データ持出し・使えるAI・予算などの制約を先に洗い出す03-01
方式比較表03-02表計算の改善からWebアプリまで、作り方の候補を目的と制約で比べる03-02
技術選定理由書03-03言語・保存先・配置先を、保守担当や費用・学習負担も含めて選び、理由を残す03-03
開発計画03-04作業を小さく分け、順序・完了条件・費用の前提・役割を決める03-04
04業務・画面の設計4種この段階で使う:利用者の操作と画面を描き、正常時と例外時の流れを決める
ひな形何に使う使う記事空欄版・記入例
役割別シナリオ04-01役割ごとの操作と、その前後で業務がどう変わるかを描く04-01
画面の原型04-02入力項目・一覧・詳細・操作ボタンの並びと優先順位を紙の原型で決める04-02
画面遷移・正常系確認記録04-03依頼作成から承認までを利用者別にたどり、正常時の流れを確認して記録する04-03
例外時の画面・表示ルール04-04入力ミス・差戻し・空の一覧・通信失敗など例外時の画面と表示ルールを決める04-04
05データ・システム構成の設計4種この段階で使う:データ項目・状態・権限・構成と復旧方針を決める
ひな形何に使う使う記事空欄版・記入例
データ項目表・関係図05-01データ項目のID・型・必須・重複の扱いと、データ同士の関係を表と図にする05-01
状態遷移表・更新ルール05-02状態の一覧と遷移、同時更新・二重処理・失敗時の扱いを決める05-02
権限表05-03利用者・対象データ・操作の組合せで「できる/できない」を表にする05-03
構成図・復旧方針05-04画面・処理・保存先の分担と、故障時の影響・バックアップ・復旧目標を整理する05-04
06開発環境・変更管理の準備4種この段階で使う:作業場所・環境の区別・変更履歴・秘密情報の扱いを整える
ひな形何に使う使う記事空欄版・記入例
環境構築手順06-01作業フォルダ・エディタ・実行環境を用意した手順を、再現できる形で残す06-01
環境一覧・接続先確認方法06-02開発・検証・本番の接続先を一覧にし、操作前に確かめる方法を決める06-02
変更履歴・変更管理ルール06-03変更の記録単位・分岐・レビュー・共有のルールを決め、変更履歴を残す06-03
設定見本・秘密情報管理ルール06-04設定見本を作り、秘密情報の置き場と外部部品の出所・更新の確認方法を決める06-04
07AIと進める作業の設計4種この段階で使う:AIに渡す資料・作業の分け方・指示と検証・実行ルールを決める
ひな形何に使う使う記事空欄版・記入例
AIへ渡す情報セット07-01AIに渡す目的・要件・設計・既存コード・制約・完成条件を必要な範囲に絞る07-01
作業分解・依存関係表07-02一回の変更と確認の範囲を小さく分け、作業同士の依存関係を表にする07-02
AI作業指示書07-03AIへの指示に成果物・期待結果・証拠・やり直し方を書き、検証と修正の手順を決める07-03
AI実行ルール・再開用メモ07-04AIがしてはいけないこと・止める条件・引継ぎのメモを決める07-04
08実装:実際に動く仕組みを作る4種この段階で使う:小さく動かし、保存・連携・エラー処理を確かめながら作る
ひな形何に使う使う記事空欄版・記入例
最小の動作例・説明08-01変数・条件分岐・関数など最小の処理を動かした例と説明を残す08-01
処理コード・保存確認記録08-02入力チェック・保存・読出し・更新をつないだコードと、保存を確かめた記録を残す08-02
連携処理・実行記録08-03画面と処理の間の通信を確かめ、データ形式・失敗時の扱いと実行結果を残す08-03
修正差分・失敗時の動作例08-04想定外の入力や部分失敗への対応を直した差分と、失敗時の動作例を残す08-04
09テスト・レビュー:正しさを確かめる4種この段階で使う:テスト・リスク別の検証・第三者レビューで正しさを確かめる
ひな形何に使う使う記事空欄版・記入例
テストケース・実行結果09-01正常・異常・境界のテストケースを用意し、処理単位の実行結果を残す09-01
要件・テスト対応表と修正記録09-02要件ごとに期待結果を先に決め、テスト結果と修正の記録を1枚で対応させる記事B
リスク別の検証結果09-03許可されない操作・重複・途中失敗・同時更新・想定利用量の検証結果を残す09-03
レビュー記録・残課題一覧09-04実装者以外の観点でのレビュー結果と、残った課題を一覧にする09-04
10導入・受入の準備4種この段階で使う:受入確認・データ移行・利用説明を済ませ、利用開始の可否を判断する
ひな形何に使う使う記事空欄版・記入例
受入確認記録10-01業務担当者が要件と使い勝手を確認した結果と、不合格の条件を記録する10-01
移行計画・照合表10-02既存データの変換・件数と内容の照合・やり直し方を計画し、照合結果を残す10-02
利用手順書・問い合わせ手順10-03操作手順、困ったときの連絡先、権限の申請先、管理担当を書く10-03
利用開始判定記録10-04未解決の問題・利用範囲・責任者・復旧手段を照合し、利用開始の可否を記録する10-04
11公開・本番移行4種この段階で使う:公開前チェック、配置、段階的な利用開始、切戻しの準備
ひな形何に使う使う記事空欄版・記入例
公開前チェック結果11-01公開範囲・接続先・設定値・秘密情報・権限・費用を公開前に確かめて記録する11-01
配置手順・実行記録11-02何をどこへ配置したかと版を明確にし、手順と実行結果を残す11-02
初期利用の確認記録11-03対象者・機能・時間帯を絞った初期利用で、正常利用と異常の兆候を記録する11-03
切戻し手順・引渡し記録11-04旧版に戻せる範囲とデータの扱いを決め、引渡しの記録を残す11-04
12運用・障害対応5種この段階で使う:稼働の把握、異常の初動、障害からの復旧、復元演習
ひな形何に使う使う記事空欄版・記入例
運用項目・確認頻度一覧12-01稼働・処理結果・利用状況・費用の確認項目と頻度を一覧にする12-01
異常時の初動手順12-02異常の申告から事実確認・影響範囲・暫定対応までの初動手順を決める12-02
障害対応記録12-03障害が起きたときに、事実・影響・対応・原因・再発防止を時系列で残す記事C
復旧確認表12-03復元のあと、件数・内容・関係・業務の再開可否を順に確かめる記事C
復元演習記録12-04隔離した場所へ復元し、件数・内容・関係・利用可否を確かめた記録を残す12-04
13保守・改善・引継ぎ・終了4種この段階で使う:改善要望の整理、変更の影響調査、更新と再検証、引継ぎ・終了
ひな形何に使う使う記事空欄版・記入例
改善要望一覧13-01利用状況と業務課題から、追加・修正・廃止の要望と優先順位を整理する13-01
変更影響調査13-02変更が要件・データ・連携・権限・運用・教材のどこに及ぶかをたどる13-02
更新記録・再検証結果13-03小さな変更の記録と、既存機能が壊れていないことを確かめた再検証の結果を残す13-03
引継ぎ資料・終了チェック表13-04担当者の変更、残すデータ、アクセス停止、契約・接続の終了を漏れなく確認する13-04

最小実験コード

1セット=1枚のカードです。「動かし方(README)」に起動手順と注意があります。同じフォルダに全ファイルをそろえてください(依存関係があります)。

記事B 最小実験コード(sample-b)

ファイル 6 個 / 実行環境:Python 3(標準機能のみ・SQLite) / 使う記事:記事B

承認処理のテスト12件を実行し、説明用の失敗例(approval_v1.py)では権限や重複の不備が検出され、修正版(approval_v2.py)ではすべて成功します。

approval_v1.py は意図的に不備を入れた説明用の失敗例です。メモリ上の新規 SQLite だけを使います。

ファイル一覧(6)

記事C 復元演習コード(sample-c)

ファイル 6 個 / 実行環境:Python 3(標準機能のみ・SQLite) / 使う記事:記事C

架空データのバックアップを取り、意図的に壊してから別の場所へ復元し、件数・内容・指紋を照合して「戻った/戻らない」を確かめます。

cleanup_v1_1.py は意図的に危険にした失敗例で、演習領域内の履歴を削除します。演習領域(このフォルダ直下の work*)の外では動きません。

ファイル一覧(6)

00-02 プログラム・入力データ・出力の最小例

ファイル 5 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:00-02

同じ依頼一覧をCSVとJSONで読み、状態ごとの件数を表示します。件名にカンマを含むCSVでは列がずれることを観察します。

同じ依頼一覧を CSV と JSON で読んで状態ごとの件数を表示するプログラムと、その入力データです。requests-comma.csv は件名にカンマを含む説明用の入力データで、列がずれる読み違えを観察します。ファイルを読むだけで何も書き換えません。Node.js標準機能のみを使用しています。

ファイル一覧(5)

06-02 接続先確認の演習コード

ファイル 5 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:06-02

設定ファイルから「今どの環境につながっているか」を読み、本番なら処理を止めます。実際の接続先はありません。

操作の前に「今どの環境につながっているか」を設定ファイルから確認し、本番なら止めるコードです。設定ファイルはすべて架空で、実際の接続先・実データは存在しません。何も書き換えません。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(5)

06-03 変更履歴の演習コード

ファイル 4 個 / 実行環境:シェル(sh)と git / 使う記事:06-03

使い捨てのGit置き場で、変更→差分の確認→保存→やり直しの流れを実際に実行し、画面の出力を見ます。

作業開始→分岐→変更→確認(status・diff)→add→commit→確認→やり直し(revert)→共有先の確認、という最小の流れを、フォルダ直下の work/ に作る使い捨ての Git 置き場で実行するシェルスクリプトです。共有先は設定せず送信しません。演習用の名前・日時を固定するので個人の Git 設定は読みません。approval_after.js は教材上の変更例で、実際のAI出力ではありません。

ファイル一覧(4)

06-04 秘密情報の混入確認 演習コード

ファイル 4 個 / 実行環境:Node.js と git / 使う記事:06-04

設定見本・Gitの対象外・履歴・AIへ渡す資料の4か所に、架空の秘密の値が混入していないかを確かめます。

設定見本が空欄か、.env が Git の対象外か、履歴に秘密の値が無いか、AIへ渡す資料と公開する実行記録に混入が無いか、の4つを使い捨ての置き場で確かめるコードです。秘密の値は架空(DRILL-FAKE-KEY-0000)で本物ではありません。Node.js標準機能(node:fs、node:path、node:child_process)と git を使い、共有先は設定しません。

ファイル一覧(4)

08-01 最小の動作例コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:08-01

承認できるかを判定する最小の関数に、いろいろな入力を渡して結果を表示します。初稿版では割当承認者の判定が抜けています。

承認可否を判定する最小の関数と、入力を変えて確認する実行スクリプトです。approval-draft.js は「AIの初稿」という設定の説明用の失敗例(実際のAI出力ではない)で、割当承認者の判定が抜けています。Node.js標準機能のみを使用し、追加パッケージは導入していません。

ファイル一覧(4)

08-02 保存処理コード

ファイル 5 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:08-02

依頼を作成・保存・状態更新し、演習用のJSONファイルに正しく保存されたかを確かめます。

依頼の作成・保存・状態更新を、教材演習用のJSONファイル1つに対して行うコードです。storage.js は保存だけを担当し、submit_guard.js が提出前に対象の存在と状態を確かめます。approval.js は 08-01 の正本のコピーで、保存した依頼に対して判定関数を呼ぶ接続を確かめます。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(5)

07-03 AI作業指示書の検証コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:07-03

要件から先に決めた期待結果と「AIの初稿」(説明用の失敗例)を照合し、不一致があれば終了コード1で終わります。修正版では一致します。

approval-draft.js は「AIの初稿」という設定の説明用の失敗例(実際のAI出力ではない)です。verify.js は要件から先に決めた期待結果と照合し、不一致があれば終了コード1で終わります。Node.js標準機能のみを使用しています。

ファイル一覧(4)

08-03 連携処理コード

ファイル 5 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:08-03

手元の通信(localhost)で画面役と処理役をつなぎ、提出操作の一巡と、失敗時の応答を確かめます。

画面(クライアント)と処理(サーバー)の間の提出操作の一巡をローカル通信(localhost)で確かめ、08-02の保存処理(storage.js のコピー)で保存するコードです。Node.js標準機能(node:http、node:fs、node:path)のみを使用しています。

ファイル一覧(5)

08-04 エラー処理・修正差分コード

ファイル 5 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:08-04

「状態は変わったのに履歴が書けなかった」部分失敗を再現し、修正版で失敗時に何も残らないことを確かめます。

storage_v1.jsは意図的に不備を入れた説明用の失敗例(部分失敗を正常完了として扱うバグ)です。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(5)

09-01 テストケース・実行結果コード

ファイル 6 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:09-01

判定関数に正常・異常・境界のテストを実行します。故意に壊した版で、テストがどの壊れ方を検出できるかも確かめます。

承認可否の判定関数に対する正常・異常・境界のテストケースと、実行して期待値と照合するスクリプトです。mutants.js は故意に壊した版(説明用、正本は変えない)で、run_mutation_tests.js がテストの検出力を確かめます。Node.js標準機能(node:assert)のみを使用しています。

ファイル一覧(6)

09-03 リスク別の検証コード

ファイル 6 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:09-03

重複した承認、承認と再提出の入れ違い、繰り返し実行を、保存先の状態条件で確かめます。

重複した承認操作、承認と再提出の入れ違いを、保存先の状態条件で確認するコードです(実際の同時アクセスの再現ではありません)。run_mutation_check.js は正本のコピーを故意に壊してテストの検出力を確かめます(正本は変えません)。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(6)

10-01 受入確認の演習コード

ファイル 3 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:10-01

受入条件AC-005のうち、今の実装で観測できる「作成時の必須項目チェック」だけを依頼者役の操作で確かめます。

受入条件 AC-005 のうち現在の実装範囲で観測できる部分(作成時の必須項目チェック)だけを、依頼者役の操作に相当する呼び出しで確かめる演習コードです。画面を使った受入確認ではありません。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(3)

10-02 移行・照合コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:10-02

架空の過去依頼(CSV)をアプリのデータ項目に変換し、件数と内容を照合します。日付の形式変換と文字化けの検出を含みます。

架空の過去依頼(CSV)をアプリのデータ項目へ変換し、件数照合・内容照合を行うコードです。日付の形式変換と文字化けの検出を含みます。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(4)

11-02 配置・確認コマンドコード

ファイル 3 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:11-02

ローカルの配置先へコードとデータをコピーし、配置元との同一性(指紋)を記録して、健全性確認を実行します。先に10-02の実行が必要です。

ローカルの配置サンドボックスに、08-01 の正本 approval.js と 10-02 の出力 migrated_requests.json を実ファイルとしてコピーして配置し、配置元の sha256 を記録して確認コマンド(健全性確認)を実行するコードです。先に 10-02 を実行しておく必要があります。実際の外部サービスへの配置ではありません。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(3)

11-01 公開前チェックの演習コード

ファイル 3 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:11-01

公開前チェック6項目のうち手元で確かめられることを機械的に確かめ、「演習で確認」「未確認」「実環境で確認が必要」に分けます。

公開前チェック6項目のうち今の環境で確かめられることを機械的に確かめ、「演習で確認」「未確認」「実環境で確認が必要」に分類するコードです。存在しない公開設定・本番の接続先は確認済みにしません。何も書き換えません。Node.js標準機能のみを使用しています。

ファイル一覧(3)

11-03 初期利用の演習コード

ファイル 2 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:11-03

11-02で配置した範囲だけを対象に、対象者・機能・期間を絞った初期利用を演習し、確認記録を残します。先に11-02の実行が必要です。

11-02 の正本が配置した deploy_target/ をそのまま使い、配置した範囲(承認可否の判定関数と移行データ3件)だけを対象に、対象者・機能・期間を絞った初期利用を演習として行い、確認記録を残すコードです。配置コードのコピーは持たず、配置し直しもしません。実際の利用者による利用ではありません。Node.js標準機能(node:fs、node:path)のみを使用しています。

ファイル一覧(2)
  • README.md(起動手順と注意。配布用に生成)
  • run.js(6.4 KB)

11-04 切戻し演習コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:11-04

配置先で、旧版の退避→失敗例の配置→確認で不一致→旧版へ切戻し→確認、を実際に行い、コードを戻してもデータは戻らないことも確かめます。

11-02 が配置した配置サンドボックスで、旧版の退避→新版(説明用の失敗例)の配置→配置後の確認で不一致→旧版への切戻し→切戻し後の確認を実際に行うコードです。コードの切戻しではデータが戻らないことも確かめます。実際の外部サービスへの配置ではありません。Node.js標準機能のみを使用しています。

ファイル一覧(4)

12-02 異常時の初動 演習コード

ファイル 2 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:12-02

08-04の部分失敗を題材に、申告→事実確認→影響範囲→原因→暫定対応の初動を、記録を読みながら進めます。記録は書き換えません。

08-04 で再現できる部分失敗(状態は変わったが履歴の書き込みに失敗)を題材に、申告→事実確認→影響範囲→仮説と切り分け→原因→暫定対応→恒久対応/残課題の初動を、実際の記録を読んで行うコードです。実際に発生した障害ではありません。記録を読むだけで書き換えません。Node.js標準機能のみを使用しています。

ファイル一覧(2)

12-04 復元演習コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:12-04

バックアップを別の場所へ復元し、件数・内容・関係の3つを照合します。復元先が既にあるときは上書きせず拒否することも確かめます。

バックアップ(基準時点)を別の場所へ復元し、件数・内容・関係の3照合と戻らない変更を確認するコードです。run_reject_check.js は復元先が既にあるときに上書きせず拒否することを確かめます。記事C(SAMPLE-C)の演習と同じ考え方を、Node.js標準機能(node:fs、node:path)だけで再現しています。

ファイル一覧(4)

13-03 更新・再検証コード

ファイル 4 個 / 実行環境:Node.js(標準機能のみ) / 使う記事:13-03

「取り下げ」の小さな変更を加え、新しいテストと既存のテスト(09-01)を再実行して、既存機能が壊れていないことを確かめます。

13-01の要望に対応する小さな変更(withdraw.js)を実装し、新規テストと既存テスト(09-01のcanApproveテストケース)を再実行して既存機能への影響を確認するコードです。Node.js標準機能(node:assert)のみを使用しています。

ファイル一覧(4)

実行記録(匿名化版)

これは、実験コードを実際に動かしたときの記録(画面に出た文字と終了コード)です。手元で動かした結果と見比べる用途で、SHA-256(ファイルが改ざんされていないことを確かめる指紋のような値)は MANIFEST.json にあります。主に上級者向けです。

作業フォルダの絶対パスを <PROJECT_ROOT>、ホームを <HOME>、一時フォルダを <TMP> に置き換えた公開用コピーです(変換規則と件数は制作フォルダ内の変換記録に残しています)。実行結果の内容は変えていません。初版の記録は含めていません(初版のコードは改訂済みのため)。

他環境での確認については検証の補足を参照してください。