「システムズエンジニアリング(Systems Engineering)」は、日本語に訳すと「システム工学」となります。 システム開発を研究している分野です。
ややこしいのですが、「システムズエンジニアリング」と「システム工学」の文献は、時期によって内容がだいぶ違います。 ざっくり分けると、1990年〜2010年の文献は、タイトルが「システム工学」になっていて、制御システムなどの数理モデルの話が多いです。 また、生態系や社会などのように、範囲があいまいで大きなシステムについての研究もあります。
一方、2010年以降の文献は、タイトルが「システムズエンジニアリング」になっていて、ITシステムを開発する話になっていることが多いです。 数理モデルの話はあまり出なくなっていて、 プロジェクトマネジメント の話と、質の良いITシステムを作る話が多いです。
このサイトでは、 デジタルトランスフォーメーション(DX) を目指す新しいシステムや、環境問題を視野に入れた社会システムを考えようとしています。 そこで、新旧のシステムズエンジニアリングを一度分解して、再構築してまとめたのが下記になります。
システムズエンジニアリングでは、システムを作って終わりではなく、システムを廃棄するところまで考えて、全体的な動きを決めます。
また、ステークホルダー(関係者)との関係が良好になることも念頭に置きます。
システムの開発は、システムのライフサイクルの計画を立てて、実際に進めることになります。
プロジェクトにはいろいろなものがありますが、何かを作るプロジェクトの プロジェクトマネジメント と、システム開発は、内容がとても似ています。 ひとつの事柄について、「システムを作る」と見るか、「プロジェクトで作る」と見るかで、名前が違っています。 強いて言えば、以下のような違いで語られることが多いです。
プロジェクトマネジメントでは、「作る」ところまでで終了するプロジェクトが一般的に多いと思いますが、 システムズ開発では、作った後のことも重視します。
プロジェクトマネジメントでは、期間やコストの話が比較的重視されます。
システムの種類によっては、
データサイエンス
がシステム開発の要所要所で活躍します。
システムエンジニアリングが想定しているシステムは、ひとつの機能を持ったようなシステムではなく、 そのような機能をもったシステムが相互にやりとりをしているシステムであることが多いです。 このようなシステムは、SoS(System of Systems:システム・オブ・システムズ)と呼ばれています。
このようなシステムの特徴として、システムの範囲がはっきりしていない点があります。 また、関係者が多面的にシステムに関わっています。
以下に、英語の文献を4冊並べましたが、大まかな内容は同じです。 上に並べたものほど、内容が豊富になっています。
「SEBoK」2021
https://www.sebokwiki.org/w/images/sebokwiki-farm!w/6/66/SEBoK_v_2.6_20220520.pdf
SEBoKというのは、「Systems Engineering Body of Knowledge:システムズエンジニアリング知識体系」の略です。
1000ページを超えるボリュームで詳しく解説されています。
システムズエンジニアリングと
プロジェクトマネジメント
は、とても似ているものであることも書かれています。
「INCOSE Systems Engineering Handbook」 INCOSE 著 2015
INCOSEという団体が発行しているガイドです。
この本は、「システムズエンジニアリングハンドブック 第4版」という名前で、日本語訳も出版されています。
「Systems Engineering Guidebook」2022
https://ac.cto.mil/wp-content/uploads/2022/02/Systems-Eng-Guidebook_Feb2022-Cleared-slp.pdf
米国の国防総省が公開しているシステムズエンジニアリングのガイドです。
「Systems Engineering Handbook」
https://www.nasa.gov/connect/ebooks/nasa-systems-engineering-handbook
米国のNASAが公開しているシステムズエンジニアリングのガイドです。
読む媒体を選べるようになっています。
筆者の場合は、「Web browser:」が読みやすかったです。
モデルベースシステムズエンジニアリングの「モデル」というのは、「図」のことです。 様々な図を使うことで、わかりやすくシステムを設計していこうとする分野です。
「モデルベースシステムズエンジニアリング入門」 David Long・Zane Scott 著 ブイツーソリューション 2019
システムとは何か、モデルとは何か、といった基本的なことをまとめた本になっています。
「モデルに基づくシステムズエンジニアリング」 西村秀和 総監修 日経BP社 2015
SysMLというモデルを使いながら、システムを開発する時のガイドになっています。
システムの評価には、シミュレーションを使います。
「UMLのしくみと実装がこれ1冊でしっかりわかる教科書」 尾崎惇史 著 技術評論社 2022
UML自体の話の前に、オブジェクト指向の考え方をわかりやすい例で解説しています。
また、UMLの説明の後に、システム開発の手順の説明と、その中で、UMLをどのように使うのかの説明もあります。
日本語で「システム工学」という名前の、本やサイトを調べると、 システム開発で使うデータサイエンスの話に力を入れているものが、けっこうあります。
「システム工学」 中森義輝 著 コロナ社 2002
- 非常に広範囲な手法が解説されています。ざっと並べると、
思考法・
多変量解析
構造モデル・
システムダイナミクス
・時系列モデル・マルコフ連鎖・
オペレーションズ・リサーチ
・ファジィ推論・
ニューラルネットワーク
・ボルツマンマシン・遺伝的アルゴリズム・
信頼性工学等々
です。
最初と最後の章で、システム的な考え方を解説しています。
東洋思想の話も出てきます。
ソフトシステム方法論としてSSMが、登場します。
Soft Systems Methodologyの略です。
7段階を順に追うことによって、
現実をモデルにし、モデルから現実を改善に導こうとします。
「システム工学 問題発見・解決の方法」 井上雅裕・陳新開・長谷川浩志 著 オーム社 2011
・問題構造分析法:グラフ理論・ISM
・問題解決プロセス:システムズアプローチ
・システムの要求定義:
・システムの機能設計:QFD(品質機能展開)
・システムの評価法:AHP・経済性分析(回収期間法・正味現在価値(NPV)・内部収益率(IRR))・環境影響評価、等
「システム工学 計画・分析の方法」 池田將明・井上雅裕・陳新開 著 オーム社 2011
階層化意思決定法(AHP)、線形計画法、確率・統計解析法、待ち行列理論、シミュレーション、スケジューリングで構成されています。
「新版 システム工学通論」 中村嘉平・浜岡尊・山田新一 著 朝倉書店 1997
システムの分類・システム分析・システム計画・数理計画法・制御工学
・信頼性・シミュレーション・モデリング・情報ネットワーク。
システムのモデルは数式を使うものがほとんどですが、図を使うものがあることも説明しています。
「システム工学 エンジニアリングシステムの解析と計画」 赤木新介 著 共立出版 1992
システム工学の本は、あらゆるシステムを対象としているものが多いですが、この本は、機械やプラントのシステムを想定して書かれています。
・ISMとDEMATEL
の解説が詳しかったです。
・最適な方式は、規模によって異なる。
自然法則と社会法則による優劣が規模によって変わるため。
規模が大きい時は、各機能ができるだけ独立している方式が良い。
・構造モデルは、数学式で処理が実行される。
AIモデルは、オブジェクト指向は記号処理になる。
処理速度は、数学式の方が速いが、柔軟な処理は記号処理の方が良い。
オブジェクト指向で数学的な処理も可能なので、AIモデルは構造モデルの拡張とみることができる。
(なお、この本の「AI」というのは、
エキスパートシステム
のこと。)
「基礎システム工学」 浅井喜代治 編著 オーム社 2001
モデリング・システムの特性と解析・システムの最適化
いろいろな手法が詰め込まれていますが、とても見通しがよくまとまっています。
まとめ方の良さは、このページの本の中で一番だと思います。
「システム論の基礎」 高原康彦 著 日刊工業新聞社 1991
モデリングとして、因果的モデルの線形方程式とオートマトン、非決定論的モデルの確率論が紹介されています。
そして、システムの安定性(制御の理論)・意思決定論・
複数の意思決定者によるシステムとしてのゲーム理論が出てきます。
記号等で、数学の言葉が多いです。
「システム工学」 田村担之 編著 オーム社 1999
数式や図によるモデリング・
シミュレーション
・
数理計画法
・
信頼性工学
・
遺伝的アルゴリズム
・
ニューラルネットワーク
・
人工知能
「システム工学」 足立紀彦 他 著 コロナ社 1996
システムの概要・
回帰分析・
・システムのモデル化・オペレーションズリサーチ・信頼性評価
「システム工学(第2版)」 室津義定 他 著 森北出版 2006
システムの評価で経済性評価が入っているところが珍しいです。
回帰分析・オペレーションズリサーチ・信頼性評価。
「システム工学通論」 山田新一・藤川英司・安部誠二 著 コロナ社 2001
システムの計画・数理計画法・信頼性評価・シミュレーション・制御・情報システム
「システム工学 −複雑化社会のナビゲーター −」 脇田英治 著 技報堂出版 2004
最適化手法が数理計画法ではなく、数理計画法の中で使われている
数値計算の手法になっているところが変わっています。
「システム工学+複雑系」になっていて、
いろいろな手法が入っています。
「システム工学の数理手法」 奈良宏一・佐藤泰司 著 コロナ社 1996
数理計画法 + 人工知能
「システム工学入門」 松永省吾 著 東京電機大学出版局 1987
数理計画法
と
PERT
を中心にした、最適化の方法の話が中心になっています。
「システム工学とは何か」 渡辺茂・須賀雅夫 著 日本放送出版協会 1988
シミュレーションや最適化といったシステム工学の方法が、これからの世の中に重要になってくる話をしています。
「システムのはなし 複雑化・多様化へのチャレンジ」 大村平 著 日科技連出版社 2020
システムの話を平易な言葉でまとめています。
「成功するシステム開発は裁判に学べ! 契約・要件定義・検収・下請け・著作権・情報漏えいで失敗しないためのハンドブック」 細川義洋 著 技術評論社 2017
システム開発の様々なフェーズで起こるトラブルについて、裁判で争われた点を中心に、原因と対策を解説。
「プロジェクトを成功に導くシステム外注の教科書 知識ゼロから学べるシステム開発の基礎知識」 島本道夫 著 ナツメ社 2019
社内のシステムを外部に発注して開発するプロジェクトの進め方について、要件定義、発注、テスト、ユーザ教育などのポイントを解説しています。
「システムインテグレーション再生の戦略 いまSIerは何を考え、どう行動すればいいのか?」 斎藤昌義・後藤晃 著 技術評論社 2016
2009年頃から、SIer(ITシステムの導入する企業)は存亡の危機になって来ている。
Sierが必要だったのは、業務の効率化のためのITシステムの導入。
費用の人月計算、常駐型の開発、ウォーターフォール型(最初から導入計画のすべてを決めてしまう)、といったSIerの仕事の仕方は、
そういったシステム導入をするのに良い方法だった。
今は、そういったITシステムの存在は当たり前になって来ていて、
それを前提として、何ができていくのかが問われている。
IoT、ビッグデータ、
人工知能
など、ソフトやハードも新しいものが出て来ているので、その使いこなしが求められている。
今後の仕事の仕方は、アジャイル型が良い。
PDCAを細かく回すことで、問題点の修正や、変化に柔軟に対応できるようにする。
「よくわかる最新ソフトウェア開発の基本」 谷口功 著 秀和システム 2011
同じ意味を表す用語の説明があります。
要求定義書(要求仕様書):依頼者の要求をまとめたもの
外部設計書(機能設計書、概要設計書):ソフトウェアの使用者に対する設計。ユーザーインターフェースだけでなく、周辺システムとのインターフェースも含む。
内部設計書(詳細設計書):外部設計された機能の、ソフトウェアでの実現方法
プログラム設計書:内部設計したプログラムをモジュールに分割して、個々のモジュールに対して設計したもの。
プログラム(ソースコード):プログラミングして作ったもの
「ソフト・エッジ ソフトウェア開発の科学を求めて」 中島震・みわよしこ 著 丸善出版 2013
ソフトウェアによって起こる事故や問題について、様々な科学の分野の考え方を使って、起こっていることの考え方や、解決の道筋を考察しています。
具体的な話ではなく、考え方の糸口をいろいろと考察した内容になっていました。
「デザイン思考に基づく新しいソフトウェア開発手法EPISODE」 西野哲朗 著 コロナ社 2022
EPISODEというのは、企画、設計、実装、評価という4段階のフローで進めていく方法論です。
通常のソフトウェア開発は、依頼者からの要求があってから、それに応える形で進みますが、
そうではなく、何もないところから開発する時の方法論として提案されています。
4段階は、発散、収束、発散、収束という順番にもなっています。
チャットボットのソフトウェア開発の話がこの本で多くのページを使っていますが、EPISODEは、データ分析や論文作成の方法論にもなることを紹介しています。
「マイクロサービス/コンテナ大全 開発テクニックの新潮流」 日経XTECH 編 日経BPマーケティング 2021
クラウドが当たり前になった時代における有力な方法として、マイクロサービスとコンテナを紹介しています。
また、先進的にこれらの技術を利用している事例を紹介しています。
コンテナ:従来の仮想環境は、ひとつの仮想サーバーの中に、アプリとミドルウェアとゲストOSがセットになっている。
その仮想サーバーがたくさんある形になり、動きに時間がかかる。
コンテナの中身は、アプリとミドルウェアであり、OSは共通になる。このため、時間が桁違いに短くなる。
複数のコンテナの一括管理するのが、Kubernetes。
マイクロサービス:機能同士がAPIを介した疎結合になっている。
このため、ひとつの機能を変更した時に、システム全部を再検証する必要がなくなる。
「絵で見てわかるマイクロサービスの仕組み」 樽澤広亨 他 著 翔泳社 2021
マイクロサービスの技術が詳しいです。
順路
次は
システムの要件定義