システムズエンジニアリング(Systems Engineering、SE)は、複数の専門分野が関わるシステムを、要求、設計、実現、運用、終了まで、全体として成立させるための工学的なアプローチです。
NASAのSystems Engineering Handbookは、分野を横断して、構成要素とその相互作用を扱う方法として説明しています。
ソフトウェア開発だけを意味する用語ではありません。

部分の完成と全体の成立

仮に、倉庫の温度異常を知らせる仕組みを作るとします。
センサー、通信、通知画面が個別の仕様を満たしていても、通知を受ける担当者や対応手順が決まっていなければ、異常への対応につながりません。
人の作業と運用環境まで含め、システムの範囲と、実現したい成果を決めます。

要求を各構成要素へ割り当てるときは、全体とのつながりを残します。
通知までの時間を決めるなら、計測、通信、処理、表示へどう配分したかを示します。
各担当者が自分の範囲だけを最適化すると、費用や応答時間の合計が目標を超える場合があります。
接続条件と、変更がほかの部分へ与える影響も、分野をまたいで確認します。

検証と妥当性確認を分ける

検証(Verification)は、製品が定めた要求を満たすかを確かめます。
妥当性確認(Validation)は、想定する環境と使い方で、関係者が必要とする目的を果たすかを確かめます。
たとえば、異常を一定時間内に表示する要求への適合と、現場の担当者が気づいて対応できることは、異なる確認です。
どちらも、試験だけでなく、解析、点検、実演などを組み合わせて行えます。

確認は最後にまとめて行うだけでなく、要求やモデル、試作品の段階から進めます。
要求と利用場面が食い違っていれば、完成品の試験を増やすだけでは解決できません。
前提の変更を管理し、要求、構成、確認結果の対応を更新します。
進捗や予算を管理する活動とも連携しますが、技術的な成立を調整する役割まで、納期管理だけで置き換えることはできません。

関連する記事:製品アーキテクチャ、設計妥当性確認、リスク管理。