率直に言って、要求事項に胸を躍らせる人はほとんどいません。とはいえ、どのハードウェアチームも、要求が曖昧であることの代償を経験しています。つまり、後工程で発覚する手戻りや、ステークホルダーが実際に求めていた内容を満たさない試作・製品化です。
要求工学(RE)とは、最終製品が正しい課題を解決できるように、要求を定義・文書化・管理するための構造化されたプロセスに従う分野です。これを適切に適用すれば、ミスを早期に発見し、チームの足並みをそろえ、出荷されるものが実際に合意された内容どおりであるという確信を関係者全員に与えられます。
しかし、この用語はしばしば混同されます。というのも、ソフトウェア工学と、ハードウェア製品のシステムズエンジニアリングの両方にルーツがあるためです。
この記事では、要求工学の明確な定義と、ハードウェア製品開発におけるその役割を説明します。理論的な概要と、ハードウェアプロジェクトでどのように適用されるかについての実践的なフレームワークの両方を取り上げ、実際の事例、よくある落とし穴の一覧、そしてそれらを回避する方法も紹介します。
要求工学とは、ハードウェア製品開発において、要求を定義・文書化・管理するための体系的かつ規律あるアプローチです。
これによりチームは、解決すべき課題を理解し、ステークホルダーのニーズを明確化・分析し、対立やトレードオフを解消し、製品が達成すべき内容を文書化し、製品の進化に合わせてその理解を最新の状態に保つことができます。
実務上、要求は、何を作るのか、なぜ作るのか、そして最終製品が設計意図を満たしているかをチームがどのように判断するのかについて、ステークホルダーとエンジニアリングチームの間に共通認識を生み出します。
REが適切に実施されると、誤解や高コストなミスを防ぎ、チームの足並みをそろえ、最終製品が要求を満たすようにする助けになります。
REの主な利点には、次のようなものがあります。
要求工学は、システムズエンジニアリングとソフトウェア工学の両方にルーツを持っています。これら2つの系譜は異なる工学的文脈で発展してきたため、情報源によっては、この用語の対象範囲が今でもやや異なることがあります。
ソフトウェア工学の文脈では、主な焦点はソフトウェア開発の要求、すなわちソフトウェアが何をすべきか、どのように振る舞うべきか、どのような品質特性を満たすべきかにあります。ソフトウェアエンジニアは、機能要求と非機能要求を、ユーザーストーリー、ユースケース、受け入れ基準として文書化されたものとして捉えます。一方、システムズエンジニアリングの文脈では、対象範囲はより広くなります。要求は、ハードウェア、ソフトウェア、人、プロセス、インターフェース、動作条件、その他のシステム特性を含むシステム全体を指します。システムエンジニアは、システムレベル要求をハードウェア、機械、電気、ファームウェア、安全要因へと割り当て、正式な要求記述や要求トレーサビリティマトリクスとして記録します。
ハードウェア開発では、REはこれら両方の視点を統合します。部品表(BOM)コスト、熱制約、製造上の制約に対応するために必要な、システムズエンジニアリングの厳密さと学際的な対象範囲を取り入れるとともに、要求をテスト可能にし、開発全体を通じて結び付けておくために、ソフトウェア工学で用いられるライフサイクルトレーサビリティも組み合わせます。
要求工学は、他の製品開発分野、特にシステムズエンジニアリングやプロダクトマネジメントと密接に関係しています。
システムズエンジニアリングでは、製品をひとつの完全なシステムとして捉えます。システムエンジニアは、ハードウェア、ソフトウェア、機械部品、試験といった異なる要素が適切に連携し、互いに矛盾しないことを確認します。
これはREと密接に結び付いています。なぜなら、要求が、製品が達成すべきことについて、これらすべてのチームに共通の参照点を与えるからです。
たとえ話が好きなら、家を建てる場面を想像してみてください。基礎、電気、配管、暖房などは異なる専門家が担当しますが、それでもそれらすべてが実際にひとつの完成した構造としてうまく収まるように確認する人が必要です。システムズエンジニアリングは、製品開発においてまさにその役割を果たします。
プロダクトマネジメント は、何を、なぜ作るのかを決める助けとなります。プロダクトマネージャーは、顧客と話し、市場を調査し、競合を分析し、ビジネス部門と連携しながら、どの問題を解決する価値があるのか、どの機能が最も重要なのかを判断します。
これもREと関係しています。なぜなら、こうした高レベルの顧客ニーズやビジネス目標が、製品要求を定義する出発点になるからです。
REプロセスは、適用分野、関与する人々、組織によってさまざまな形で構成されます。あるプロジェクトでは、活動の大半が順番に進みますが、別のプロジェクトでは、チームの学びに応じて繰り返し見直されることもあります。
Requirements Engineering journalに掲載された記事で説明されているように、一般的な教科書的アプローチでは、REプロセスを4つの中核活動(フェーズ)に分けます。
REフレームワークには、製品が何をすべきかを定義するために協力する、いくつかの重要な役割が関与します。
上記の4つの活動がREプロセスの中核を定義する一方で、ハードウェアチームには、それらをプロジェクト全体を通じて適用するための実践的な方法が必要です。
以下は、ハードウェア開発における要求工学フレームワークの実践的な見方であり、各段階で要求がどのように位置付けられるかを示しています。
プロジェクトの開始時には、技術リードは通常、顧客要求、提案依頼書(RFP)、ビジネス目標、あるいはコスト・サイズ・スケジュールの制約といった、曖昧な入力を受け取ります。たとえば、顧客が特定のユースケースに対応する、より小型のデバイスを求めることがあります。
要求オーナーとともに、技術リードは何が必要かを明確にし、それらの入力を、製品が達成すべきことを記述する高レベル要求へと変換します。
プロジェクトキックオフ段階で得られた高レベル要求は、詳細設計にはまだ抽象的すぎます。この段階では、要求オーナーがシステム全体を定義し、それを要素やサブシステムに分解し、それらの高レベル要求を各要素向けのより具体的な要求へと落とし込みます。
また、要求同士が矛盾していないか、重要な抜け漏れがないか、それぞれが明確でテスト可能かどうかも確認します。その結果、エンジニアリングチームが製品設計の出発点として使える、合意済みの要求セットが得られます。
実装エンジニアは、合意された要求を使って製品の担当部分を設計・構築します。たとえば、回路図の作成、3D部品のモデリング、ソフトウェアやファームウェアの記述などです。設計が進むにつれて、各要求はそれを満たす設計要素に関連付けられます。こうしたリンクがプロジェクトのトレーサビリティを形成し、要求オーナーが要求の実装状況を把握する助けになります。
要求は、レビューや試験で何を確認すべきかも定義します。検証エンジニアは、各要求をどのように確認するかを定義し、実装エンジニアと協力して必要なレビュー、測定、試験を実施し、その結果を記録します。これにより、製品に求められていた達成内容と、それを実際に達成したかどうかを示す証拠が結び付けられます。
要求や製品設計は、開発中にしばしば変更されます。ある要求が達成不可能であると判明したり、部品が市場で入手できなくなったり、新たな制約が現れたりすることがあります。そうした場合、要求オーナーは、何が変わったのか、なぜ変わったのか、そしてどの要求、設計部分、試験に影響が及ぶのかを追跡します。
プロジェクトの最後には、Requirements Owner が Verification Engineer およびチームの他のメンバーと連携して、要件、設計レビュー、検証活動のクローズアウトを行います。最終ドキュメントには、何が要求され、何が構築され、どのように検証されたかを追跡可能な形で記録しておく必要があります。顧客、製造業者、監査担当者、または今後その製品に継続して関わるチームは、後になってこの情報を必要とします。
要件エンジニアリングは、医療およびケアテクノロジー製品全般で活用されています。要件は開発期間を通じて製品とともに維持されます。チームはステークホルダーのニーズを体系化されたシステム要件へと落とし込み、仕様変更があってもそれらのつながりを保ち、検証計画の策定や試験結果の文書化に活用します。
医療機器では、さらに規制対応という側面が加わります。チームはトレーサビリティ、検証、文書化、および各種書類作成により多くの労力をかけます。これは、米国の FDA 21 CFR Part 820や、EU およびその他の市場における ISO 13485:2016といった枠組みに基づく規制承認を支えるためです。
「要件を体系的に文書化するアプローチにより、ワークフローが効率化され、プロジェクト仕様をより簡単かつ効果的に管理・整理できるようになりました。」 — Sensio 部門ディレクター、Alf-Einar Løberg |
HitIQ のマウスガードは、安全性の要求があらゆる技術仕様を左右する医療用ウェアラブルの一例です。詳しくは、完全版のCustomer Success storyをご覧ください。
要件エンジニアリングの基本プロセスは、民生用電子機器と産業用電子機器で共通していますが、製品は異なる条件下で開発されます。スマートホーム機器やウェアラブルのような民生製品は大量に販売され、短期間で市場投入されます。一方、PLC(プログラマブルロジックコントローラ)やモータードライブのような産業製品は、過酷な環境下で何年にもわたって稼働しなければなりません。
どちらの場合でも、チームは製品が何をしなければならないかを書き出し、各要件を設計に関連付け、変更が生じた際には要件を更新し、それらに基づいて試験を行います。
異なるのは、チームが追加で注力するポイントです。民生用エレクトロニクスでは、要件の誤解が基板の再設計につながりかねないため、急速な変化への追随に注力します。産業用エレクトロニクスでは、出荷前に長寿命や過酷環境への適合を試験する必要があるため、検証に重点が置かれます。
安全規制に準拠した信頼性の高いハードウェアを構築するには、要件と設計変更を結び付けて維持することが重要です。MakeSafe Tools がこれをどのように実現しているかは、full success storyでご覧いただけます。
要件エンジニアリングには、いくつかの典型的な課題があります。どのような問題が起こり得るかを知っておくことで、ハードウェア製品開発の早い段階で問題を見つけ、回避しやすくなります。
ここでは、注意すべきよくある落とし穴と、その回避方法を紹介します。
よくある落とし穴 | 回避方法 |
適切なステークホルダーから十分な意見を得る前に、プロジェクト要件を定義してしまう。 | 適切なステークホルダーを早い段階で巻き込み、十分に質問を行い、そのニーズを完全に理解する。 |
影響を確認しないまま要件を追加または変更する。 | 新規または変更された要件は受け入れる前に必ずレビューし、スコープ、スケジュール、コスト、試験への影響を確認する。 |
異なる解釈が可能、または検証できない要件を書いてしまう。 | 要件は明確で、測定可能で、検証可能なものにする。 |
増え続ける要件をスプレッドシートで管理し、トレーサビリティを失ってしまう | プロジェクトの拡大に合わせて拡張でき、トレーサビリティを維持できる専用の要件管理ツールに移行する。 |
要件管理に時間をかけすぎてしまう。 | purpose-built AIを活用して、要件管理の煩雑な作業を減らす。 |
少数の要件を管理するのは比較的簡単です。しかしプロジェクトが大きくなるにつれて、すべてを整理し最新の状態に保つには、より多くの労力が必要になります。その段階になると、要件をどのように管理するかがより重要になってきます。
実際には、チームは通常次のいずれかのアプローチを採用します。
目標は、必要以上に要件管理を複雑にすることなく、そのプロジェクトに見合った十分な構造を取り入れることです。
スプレッドシートでは対応しきれなくなったものの、大規模なエンタープライズ RM ワークフローまでは必要としない小規模ハードウェアチームにとって、 Requirements Portalは検討する価値のある実用的な選択肢です。これは、従来のエンタープライズシステムのような大きな負担なしに、小規模チームがより体系的に要件を管理できるよう設計されています。
ここまでで、要件エンジニアリングの主要な概念と、それらが実務でどのように適用されるかを明確に理解できたはずです。
要件エンジニアリングについてさらに学びたい場合は、次のリソースがよい出発点になります。
理論から実践へ進む準備ができているなら、Requirements Portalを試して、構造化された要件を実際のハードウェアプロジェクトで今日から活用してみてください。無料で、セットアップも不要です。
要件エンジニアリングが重要なのは、設計や開発が進みすぎる前にステークホルダーのニーズを明確に理解することで、チームが正しい製品を構築できるよう支援するからです。
Requirements Engineer は、ステークホルダーのニーズをエンジニアリングチームが活用できる明確な要件に変換し、プロジェクトの変化に応じてそれらの要件を整理・維持します。クライアントと開発チームの橋渡し役を担います。
Requirements Engineering は、そもそもシステムが何を行う必要があるのかを明らかにし、理解し、文書化するまでを含むプロセス全体を指します。Requirements Management はその中の特定の部分であり、記述された要件を整理し、変更があれば追跡する役割を担います。