Project_OKI’s diary

エンジニアの勉強ブログ

IEC 62304対応ソフトウェア開発の勉強2(行うことについて)

IEC 62304対応ソフトウェア開発の勉強

はじめに

医療機器ソフトウェアの開発に関わる中で、IEC 62304という規格の存在は知っていても、

  • 実際の開発ではどう進めるのか?
  • 書類は何を、どこまで作ればよいのか?
  • 規格の要求事項が、実装やテストとどう結びつくのか?

といった点が非常に分かりにくいと感じていました。

本ブログでは、IEC 62304 第5章(ソフトウェア開発プロセス)を中心に、「実際に簡易装置を作りながら、対応の流れを可視化する」ことを目的に、学習・実践の記録を連載形式でまとめていきます。

※ 本ブログは規格の逐語解説や転載は行わず、あくまで筆者の理解・解釈・実践内容を記録するものです。


この取り組みの目的

この学習プロジェクトでは、以下を目指します。

  • IEC 62304に対応したソフトウェア開発の勉強を行う
  • 学習・実践内容をブログとして記録・公開する
  • IEC 62304を意識した簡易ソフトウェア装置を実際に作成する
  • IEC 62304対応の具体的な手順・流れを明確化する

規格を読むだけでなく、実際に手を動かして理解を深めることが重要だと考えています。


なぜこの取り組みを行うのか

IEC 62304については、規格本文、解説書、要件定義・設計手法に関する書籍といった情報は多く存在します。

しかし、

「結局、実際の開発ではどう進めればいいの?」

という部分について、製品や簡易装置を例にした一連の作成事例は、あまり多くありません。

そこで本取り組みでは、

  • 書籍・規格・AIを活用して学習し
  • 実際に簡易な装置を作り
  • その過程で「何が必要だったのか」「どこが大変だったのか」を明確化

することを目指します。

あえて複雑な装置は作らず、まずは一連の流れを把握することを重視します。

この成果をベースに、将来的に規模を大きくした場合や、他規格(ISO 14971など)と組み合わせた場合へ発展させることも視野に入れています。


ゴール設定

本ブログのゴールは以下です。

  • IEC 62304 第5章(ソフトウェア開発プロセス)を中心
  • 最低限の対応書類を作成し
  • 対応を意識した簡易ソフトウェア実機(簡易装置)を作成
  • その過程をブログで連載形式にて公開

ブログ自体は、簡易的な記録を主目的とし、できるだけ時間をかけすぎないという方針で進めます。


現状

現時点では、以下の状態からスタートします。

Obsidian上にIEC 62304 第5章のまとめを作成済み

  • 規格本文の整理
  • 関連書籍の要点整理
  • AIによる要約

このまとめを「知識ベース」として、ここから実践に落とし込んでいきます。


目標設定(A / B / C)

期間目標:2026年8月まで

A:理想目標

  • DFPlayerを用いた簡易装置を作成
  • IEC 62304を意識した開発を実施
  • 単体テストまで完了

※ 第4章(リスク分析)は今回は未実施

B:現実的目標

  • DFPlayerを用いた簡易装置を実装まで完了
  • テストは未実施

C:最低限の目標

  • IEC 62304を意識した要求仕様作成まで完了

※ 当初はDFPlayerを想定していますが、その前段としてLED点滅+ボタンのみの簡易装置から開始します。


作成する簡易装置

① LED点滅装置(超簡易)

以下のプロセスを一通り実施します。

② DFPlayer装置

上記に加え、可能な範囲で以下まで扱う予定です。

  • リリース
  • 問題解決プロセス

今回やらないこと(スコープ外)

以下は意図的に実施しません

  • IEC 62304 第4章(リスク分析)
    • ISO 14971が必要になるため、今回は別枠
  • ソフトウェア構成管理の厳密運用
    • バージョン管理は最低限
  • 他規格対応(ISO 9001 / 13485 / 14971 等)
  • 製品レベルの完成度
  • 不具合対応・変更管理プロセス(時間があれば検討)

「やらないこと」を明示することで、学習目的の範囲を明確にします。


この取り組みで行うこと(概要)

具体的には、以下の作業を進めていきます。

  • IEC 62304 第5章の確認
  • 小さな開発計画の作成(1か月 / 3か月単位)
  • Obsidian上でのフォルダ・文書構成整理
  • AI活用方針の明確化
  • 各章ごとの作業手順・テンプレート作成
  • 必要文書の作成(優先度付き)
  • トレーサビリティ整理
  • ブログ用記録ルール・テンプレート作成
  • 簡易対応・省略点の明示
  • 最終的な総括

ブログの進め方について

ブログの記録は、以下の方針で進めます。

  • 日々の作業はMarkdown(.md)で簡易記録
  • 章ごとにまとめ記事を作成
  • 記事構成や文章化はAIを活用
  • 人間は「判断・取捨選択」に集中

という形で、IEC 62304学習 × AI活用の実験的な側面も含めて進めます。


おわりに

本ブログは、

「IEC 62304を完璧に満たした製品を作る」

ことが目的ではありません。

  • 規格を理解し
  • 実際に手を動かし
  • 開発プロセスを一周させ
  • 本番対応との差分を理解する

そのための学習用・実践用プロジェクトです。

次回は、**「全体の進め方(開発フロー・文書構成)」**から整理していく予定です。

同じようにIEC 62304に悩んでいる方の、何かしらの参考になれば幸いです。

 

関連記事

 

※本ブログは基本的にAIにより作成し、軽く手直ししたものです。

IEC62304に関するものは、基本はAIを使ってブログ化していく予定です。

AIクソゲー開発4(魔王殲滅兵器:クロノシス攻防戦)

AIを使って、クソゲーを量産し、紹介動画を作る

1. 目的

 AIを使って100個のクソゲーと紹介動画を量産し、
「どれか1本くらいバズるんじゃね?」という軽いノリで始めた企画です。

 今までは特に画像などなしで作成していましたが、今回は、AIに画像を生成してもらい、その画像を使用してゲームを作成します。

 今回は、その第4作品目として、作成したゲームを紹介します。

 

2. 概要

今回のテーマはシンプルです。

「ゲーム企画〜実装〜画像〜動画まで、全部AIで完結させる」

人間がやったことは、

  • テーマをざっくり決める

  • 出力されたものを「まあこれでいいか」と受け入れる

それだけです。

ゲームの仕様、実装、画像、動画編集まで
すべてAI任せにすると、どんなクソゲーが生まれるのか?

それを確認するのが今回の目的です。

 

作成方法は下記に準じます

ゲーム制作の革命: AIとのコラボで簡単にゲームを作ろう - Project_OKI’s diary

AIクソゲー開発3(画像をつけてみよう) - Project_OKI’s diary

 

3. 使用しているAIツール

 

4. 今回作成したゲーム

www.youtube.com

 

5. ゲームテーマ

魔王殲滅兵器を完成させた女神の魔王攻略

魔王殲滅兵器「ラーム・ブリヤント」を完成させた女神は、
前回の反省を踏まえ、

  • 時間干渉制限フィールド《クロノシス》を展開

  • 人間に信託を与え

  • 魔王殲滅作戦を開始する

――という、無駄に壮大な設定だけが存在するゲームです。

 

 

関連記事

過去の記事:

 

AIクソゲー開発3(画像をつけてみよう)

AIを使って、クソゲーを量産し、紹介動画を作る

1. 目的

 AIを使って100個のクソゲーと紹介動画を量産し、
「どれか1本くらいバズるんじゃね?」という軽いノリで始めた企画です。

 今までは特に画像などなしで作成していましたが、今回は、AIに画像を生成してもらい、その画像を使用してゲームを作成します。

 今回は、その第3作品目として、作成したゲームを紹介します。

 

2. 概要

AIの力を借りて、

  • ゲームの仕様を考え、

  • 実際にゲームを作り、

  • 動画まで仕上げる。

  • 今回は、生成する画像も指定しもらう。

  • 指定した画像をGeminiを使用して画像を作成する。

という一連の制作をすべてAIで完結させる試みです。
テーマやゲーム性は、毎回自分でざっくり決めて、あとはAIに任せています。

 

3. ゲーム開発手順

  • ゲーム制作の革命: AIとのコラボで簡単にゲームを作ろう - Project_OKI’s diary
  • 今回は、上記に加え、画像の挿入を行いました。
  • 画像挿入方法
    • Geminiの生成AIにより生成した画像をpictureフォルダを作成しその中に入れます。
    • その画像を使って、ゲームに反映するように、Cursorに指示を出します。
    • これだけで、ゲーム内に画像を埋め込むことができます。
    • 仕様の中に、どの部分の画像かを明確にし、名前を紐づけるようにしておくとやりやすいです。

 

4. 使用しているAIツール

 

4. 今回作成したゲーム

www.youtube.com

  • テーマ
異世界に転生する予定だった佐藤武志は、魔王によって阻止されてしまった。その結果、魂は時空の彼方へと葬られた。
しかし、葬られた先で、佐藤武志の意識は目覚めた。
その魂に刻まれていた魔王と女神の戦争や、異世界、現実世界の記憶を元に、元の世界へ戻り、女神と魔王に復讐する為、修行を開始した。

 それが、今回のクソゲーのテーマです。

 

関連記事

過去の記事:

 

クソゲー開発2(女神の魔王殲滅兵器開発)

AIを使って、クソゲーを量産し、紹介動画を作る

1. 目的

 AIを使って100個のクソゲーと紹介動画を量産し、
「どれか1本くらいバズるんじゃね?」という軽いノリで始めた企画です。

 今回は、その第2作品目を完成させたので紹介します。

 

2. 概要

AIの力を借りて、

  • ゲームの仕様を考え、

  • 実際にゲームを作り、

  • 動画まで仕上げる。

という一連の制作をすべてAIで完結させる試みです。
テーマやゲーム性は、毎回自分でざっくり決めて、あとはAIに任せています。

 

3. ゲーム開発手順

 

4. 使用しているAIツール

 

4. 今回作成したゲーム

  異世界転生阻止ゲームによって、阻止されてしまった転生。それにより、時間は逆転し、このままでは魔王が世界を支配してしまう。 そこで魔王を倒したい女神は、新たなる魔王殲滅兵器の開発に乗り出す。

 それが、今回のクソゲーのテーマです。

 

 

関連記事

過去の記事:

 

クソゲー開発記1 (異世界転生阻止)



AIを使って、クソゲーを量産し、紹介動画を作る

1. 目的

 AIで100個のクソゲーとその紹介動画とかを作って、1個くらいバズらないかなって思って始めた。

異世界転生阻止の相談はこちら:異世界転生阻止プロジェクト - 魔王の復讐

 (AIで作ったダミーホームページです。)

2. 概要

 AIを用いて、ゲームの仕様の作成、ゲームの作成、動画の作成を行う。

 アイディアが無くなったら、それもAIに出してもらう。

 クソゲーと動画を量産すれば、一個くらいバズらないかなという願望を実現する。

 

3. ゲーム開発手順

  •  下記記事にて紹介している方法を基本的に用いるが、AI関連の仕様はめっちゃ変わるので、途中で方法が変わる可能性は高い。

 →ゲーム制作の革命: AIとのコラボで簡単にゲームを作ろう - Project_OKI’s diary

  •  動画開発手順については、別途記事にする予定

 

4. 使用しているAIツール

 

4. 今回作成したゲーム

www.youtube.com

    • 概要

50代男性・佐藤武志は会社帰りに車に引かれ命を落とした。光に包まれた彼の魂は、異世界に転生し魔王を倒す英雄として生まれ変わる運命にあった。しかし、未来の敗北を知る魔王は時空干渉魔法を発動し、過去へ干渉して佐藤の転生を阻止する作戦を開始した。プレイヤーは魔王となり、魂がポータルへ到達するのを防ぐ。

 

関連記事

過去の記事:

 

ゲーム制作の革命: AIとのコラボで簡単にゲームを作ろう

AIを使って誰でも簡単にゲームを作る方法(私のやり方)

ゲーム制作と聞くと、「難しそう」「プログラミングが必要」と思われがちですが、今はAIを活用すれば、誰でも驚くほど簡単にゲームを作ることができます。
ここでは、私が実際に行っている「AIを活用したゲーム制作の手順」をご紹介します。

1. 目的

AI(主にChatGPTやClaude)を使って、ゲームのコンセプトづくりから、仕様設計、さらにはHTMLゲームの完成までを効率的に行うのが目的です。

2. 手順

  1. ゲームのテーマを決める
    まず、どんなゲームを作りたいかキーワードで決めます。
    例:超高速成長系シューティングゲーム、ターン制RPG など
  2. ChatGPTに仕様を作ってもらう
    決めたキーワードをもとに、ChatGPTに「ゲームの仕様書を作ってください」とお願いすると、かなり実用的な仕様を作成してくれます。
  3. 仕様を.mdファイルに保存・編集
    生成された仕様はMarkdown形式(.md)で保存すると整理しやすく、あとで修正や追記もしやすいです。WordやExcel形式も可能です。
  4. Claude Sonnetにゲームの実装を依頼
    仕様書をClaudeに貼り付け、「この仕様でゲームを作ってください」と指示します。ClaudeはHTML/CSS/JavaScriptでそのまま動くコードを出してくれます。
  5. 動作確認・デバッグ
    出力されたコードをブラウザで開いて確認します。うまく動かない場合は、Claudeやコードエディタ(例:Cursor)でデバッグします。

※補足: Claudeは無料枠に制限があるため、私は基本的にChatGPTで仕様を作成し、Claudeでは実装と最小限の修正に絞っています。

3. 使用しているAIツール

4. 実際に作ったゲーム例

5. なぜこの方法を選んでいるのか?

ChatGPT単体でもゲーム制作は可能ですが、コードの品質や安定性という点ではClaudeが一歩リードしていると感じています。
そのため、私の流れとしては「ChatGPTで仕様 → Claudeで実装」のように役割を分けて使うことで、スムーズかつ高品質なゲーム制作を実現しています。


ゲーム制作に興味があるけど難しそう…と感じている方は、ぜひこの方法を試してみてください!
AIと一緒なら、きっと楽しくゲームが作れるはずです。

 

関連記事

過去の記事:

 

 

体験ブログ(静電気試験トラブルと対策|気中放電でCPUが故障した話)

医療機器に関わる組み込みエンジニアである私は、製品開発において、IEC60601-1の適合が求められる。 そのため、静電気試験(IEC61000-4-2)を行うことがある。

今回は、実際に静電気試験を行った中で発生したトラブルと、その原因調査、対策方法について実体験を語っていく。

静電気試験とは?IEC61000-4-2の概要

静電気試験はIEC 61000-4-2に則って行い、大きく3つの試験に分かれる。

(1)間接放電

(2)直接放電

(3)気中放電

それぞれ、ざっくり説明する。

間接放電は、製品を載せている水平結合板と、製品の横におく垂直結合板にそれぞれ静電気を打ち問題ないか確認する。

直接放電は、製品の金属部分に直接接触させ、静電気を打ち問題ないか確認する。

気中放電は、製品の隙間やLCD部分などに気中から静電気を打ち問題ないか確認する。

それぞれIEC61000-4-2に則って行う為、詳細はその資料や規格書を参照する必要がある。

静電気試験中に発生したトラブル事例とその影響

今回行った静電気試験では、下記のような様々な問題が発生した。

(1) 電源スイッチの隙間に気中放電

 →CPUが破損。電源がOFFしなくなる又は、起動自体しなくなる。

(2)接続しているヘッドホン部分に気中放電

 →ACアダプタが破損。充電しなくなる。

さて、このような問題が発生した時、我々はその問題を解決する為に対策を行わなければならない。

こういう時、何を考え、何を見て、どんな風に進めたのかをざっくりとでも記載する。

今回は、この中の電源スイッチの隙間に気中放電を行ったとき発生した問題について記載する。

静電気がCPUに影響した原因の考察

まず初めに行うのは、何故スイッチ部分に静電気を打つとCPUが壊れてしまうのかの原因を確認する。

ここで問題になるのが、静電気の通り道だ。

ACアダプタを使う製品なのか、使わない製品なのか、GND接地端子があるのかなど様々な要因で変わる。

一番は、金属形態でGNDが大地に接地されるものであれば、金属に全部飛んでそこからGNDに流れるので強いが、実際にはそういう製品ばかりではない。

今回行った製品も規格を通っているACアダプタを使用しているが、GND接地端子はない。

その為、まずはどこを通って静電気が機器に影響を与えているのかを推測する必要がある。

主にここでは、下記3つを行う。

(1) 再現性の確認

 CPUが壊れなければ、何度か行い同じ問題が再発するのか再現性を確認する。

(2)目視確認

 実際に壊れた所で基板をむき出しの状態で静電気を打つと、静電気が実際に飛んで見える場合もある為、部屋を暗くし、静電気を打ち、静電気が飛んでるところが無いか確認する。

(3) 回路確認

 PCB(配線図)と本体を確認し、静電気の通り道になりそうな部分の回路の通り道を探す。

(4)ソフトウェア確認]

 今回の場合は、行わないが。ソフトウェアが意図しない動きをする場合がある。その時は、ソフトウェアのプログラムを確認する。

 (静電気を打つため、デバッカが使えないので、これも難しい)

今回の場合は、配線図と本体を確認すると、電源のスイッチに金属部分があった。

その形状により、近くにビアがあり、そこから静電気が入ってしまっていたと考えられる。

スイッチの金属部分がどこにも接続されておらず、静電気が信号ラインに影響を与えやすい状態だったのだ。

ここで問題は、本当にそこが原因の可能性もあるが、別の可能性もあり、目に見えないという部分んだ。これが非常に難しい。

今回は結果的には、この想定があっていたため、対策が可能だった。

原因:スイッチの金属部がGNDに落ちておらず、ビア経由で静電気がCPUへ流入

スイッチへの静電気図面

実施したハードウェア対策

対策を行う方法は色々な方法がある。

よく使われるのは、バリスタや、TVSダイオード、コモンモードチョークコイルなどの静電気対策部品。

また、静電気は抵抗の低い所に流れることから、電気の流れそうな方向に対して抵抗やコンデンサを入れ対策する場合もある。

他には、あまり製品として出来上がった状態が多いため使える方法にはなりにくいが、そもそも静電気がその部分に飛ばないように絶縁する方法場合。

逆に、GNDの端子などを使い、静電気の通り道を別に作ってやり、直接不具合の通り道に飛ばないようにして対策する場合もある。

今回は、下記のような対策を入れた。

・電源スイッチの金属部分をGNDに落としてやること。

・GNDとACアダプタの+側間にTVSダイオードを付けてやること。

ビアを取れればよかったが、それはできなかったので、別の対策を行った。

これらは主にハード側の対策となる。

これとは別にソフト側の対策を行う場合もある。

ソフトウェアでできる静電気トラブル対策

このソフト側の対策というのは、不具合が起こった場合にソフトウェアとしてどういう状態がNGで、どういう状態ならOKとするか。その会社、製品によって変わる。

実際に、ソフトウェアとしてはハードウェアフォルトやウォッチドックが発生する場合があり、それは別で対策を行った。

これは、起こらないようにするのではなく、起こった場合の復帰処理をどうするのかを決め、規格上問題ないように復帰させる。

まとめ:静電気対策の難しさ

ここでは、例の一つとして、電源スイッチ部分で発生した不具合について記載したが、これ以外にも多くの問題が発生した。

このような形で、静電気を打つと様々な問題が起こる。

しかも、それが基板やプログラム、ケースによって発生する現象は様々だ。

その為、ある程度の対策部品と言われるものはあっても、実際にはどこに入れ、どういう風に効果を発揮させるのか。

どう考えて対策を行っていくのか。それはとても難しく。毎回ひぇーってなりながら行っている。