第3回システムズエンジニアリングにおいて重要なライフサイクル
第3回 システムズエンジニアリング、MBSE<モデルベース・システムズエンジニアリング>コラム
一般社団法人JCOSE(Japan Council on Systems Engineering)※では、「システムズエンジニアリングとは、システムを成功させるための、複数の専門分野にまたがるアプローチと手段のことを指します。」と定義しています。
※一般社団法人JCOSE(https://www.jcose.org/)は、INCOSEの日本支部として、システムズエンジニアリングを日本に普及させることを目的としている団体です。
システムズエンジニアリング、MBSE(モデルベース・システムズエンジニアリング)とは、「システムの企画段階から運用・廃棄に到るまでのライフサイクルを通じて、全ての技術分野の成果を1つのシステムへとインテグレート(統合)する技術」と定義されています。では、システムのライフサイクルとは何なのでしょうか。
今回は、システムのライフサイクルとは何か、システムズエンジニアリングにとって、なぜライフサイクルが重要なのかについて説明します。
目次
システムライフサイクル
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
システムには、ライフサイクルがあります。
コンセプトから、開発して、製造し、運用、保守があって、廃棄まで、つまり、システムが生まれてから、システムが無くなるまでのすべての過程となります。
システムは、これらのライフサイクルを通じて、管理・実行され、これらの活動を実行するためにプロセスが用いられます。そのプロセスを、システムライフサイクルプロセスと呼びます。
システムライフサイクルプロセス
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
システムライフサイクルプロセスは「ISO/IEC/IEEE15288」で定義されています。
いわゆるVモデルだけではなく、システム要件を定義するためのインプットとなる「ビジネス/ミッション分析」や、「利害関係者要求定義」、また、「運用」、「保守」、「廃棄」も含まれます。システムライフサイクルプロセスを定義したISO/IEC/IEEE15288では、これらをあわせてテクニカルプロセスと呼んでいます。
また、テクニカルプロセス以外に、合意プロセス、品質管理などを含む組織のプロジェクトイネーブリングプロセス、プロジェクト計画や構成管理などを含むテクニカルマネジメントプロセスがあり、ISO/IEC/IEEE15288では、これらすべてをシステムライフサイクルプロセスと定義しています。
ここで注意すべき点としては、「システム設計」はシステムズエンジニアリングと異なるということです。システム設計は、あくまでシステムライフサイクルの中のひとつのプロセスであり、混同しないように注意しましょう。
システムズエンジニアリング、MBSE(モデルベース・システムズエンジニアリング)で考慮すべき事
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
システムズエンジニアリングでは、ライフサイクルの「開発」だけでなく、コンセプトから廃棄まで、システムライフサイクル全体を考慮する必要があります。
そのため、「開発」、「製造」、「運用」のことだけを考えてアーキテクチャを設計するのではなく、「保守」や「廃棄」のことも考慮して設計する必要があります。
例えば、保守を考慮した要件として、「サービスマンが不具合の原因を解析しやすいように、システムのログの記録とログ情報の取り出しを容易にすること」を定義したり、廃棄を考慮した要件として、「○○部分は再利用しやすいように物理的に切り離しておくこと」を定義したりします。
システムライフサイクルは、「コンセプト」から「廃棄」まで、つまりシステムが生まれてからなくなるまでの全ての過程です。
システムライフサイクルプロセスは、「ISO/IEC/IEEE15288」で定められています。
システムズエンジニアリングは、システムライフサイクル全体を考慮し、効率よく作業を進められるように考えることが重要です。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
システム開発で使われる技術要素
次にシステム開発で使われる技術要素について、いろいろな観点から紹介します。
システム開発を効率よく進めるためには、技術要素を適切に導入することが重要です。では、どのような技術要素があるのでしょうか。
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
ここでは、システム開発で使われる技術要素を、一部ですが紹介します。
要件定義の技法にはUSDMがあります。また、SysMLやEAST-ADLは、システム開発における要件定義からシステムアーキテクチャ設計で使われる技術要素です。
システムズエンジニアリングには、ソフトウェアエンジニアリングを起源とする部分があるため、一部の技術要素は共通で使用されます。
自分たちが実現したいことを考え、そしてそれを実現するための手段として、最適な技術要素を選択することが大事です。
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
ドメイン観点で分類したのがこちらの図です。
ここで示している様に、システムレベルで、どのようなドメインがあるかを明確にし、そのあとに、ドメインに適した技術要素を用いることが大事です。例えば、HMIならばUIプロトタイピングを用いる、など、必要な技術要素を検討する際には、ドメイン観点で検討することも有効です。
技術要素例:世の中のプロセス
https://member.eureka-box.com/products/2-e55506af-0ccd-4f6e-8c89-277e44a42bf7/categories/2147509028/posts/2147568198
IEEE 1220は、IEEE Standard for Application and Management of the Systems Engineering Processのことで、システムズエンジニアリングプロセスを左の図のように定義しています。
また、Harmony SEは、IBMが提唱するもので、IBMのベストプラクティスを集約し、体系化した手法です。
エクスモーションが提供するシステムズエンジニアリングのプロセスは、現場での経験や、これら、IEEE 1220、Harmony SEなどを参考にして構築したものです。
システムズエンジニアリング、MBSE(モデルベース・システムズエンジニアリング)を実際に学んでみる
今後の開発効率を上げるために実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
ソフトウェア開発を改善するための開発技術を“知り・学び”“実践する”
超実践的オンライン学習プラットフォーム
Eureka Box(ユーリカボックス)
システムズエンジニアリング、MBSE(モデルベース・システムズエンジニアリング)を正しく理解した上で適用し、最大限の効果を得られるようスキルアップしたい方にもEureka Boxでの学習はお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
システムを成功させるためには、様々な技術要素を活用しながら、効率的に開発を進める必要があります。
技術要素を導入することが目的になってしまうケースも見受けられますが、目的指向で考えることが大事です。まず何を実現したいのか(目的)を考え、そしてそれを実現するためにどのような技術要素(手段)を用いるのが効率的なのかを考えましょう。
このコラムでは、システム開発で使われる技術要素を紹介しました。世の中にはほかにも様々な技術要素があります。自分たちの目的にあった技術要素を選択し活用するようにしましょう。