Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェアからシステムに視野を広げる / Zoom out from Software

ソフトウェアからシステムに視野を広げる / Zoom out from Software

Hiroki Iseri

March 15, 2020
Tweet

More Decks by Hiroki Iseri

Other Decks in Programming

Transcript

  1. システムズエンジニアリングの体系や標準 ⚫ISO/IEC 15288:2015 • システムライフサイクルプロセスの標準。システムズエンジニアリングのプロセス標 準として参照されることが多い。旧版はJIS化されている ⚫INCOSE, OOSEM • 前者はシステムズエンジニアリングについての体系の解説書

    • 後者は前者で解説されるMBSEのプロセス ⚫Harmony for Systems Engineering • システムズエンジニアリングについてのIBMのプロセス体系 ⚫SEBOK • システムズエンジニアリングのBOK。ウェブで公開されている • https://www.sebokwiki.org/wiki/Guide_to_the_Systems_Engineering_Body_of_Knowled ge_(SEBoK) 7
  2. システムズエンジニアリングにおける開発プロセス (V字モデルへのマッピング) 8 ステークホルダ 要求定義 システム 要求定義 システムアーキ テクチャ設計 サブシステム

    分析・設計 サブシステム 実装 サブシステム 単体検証 サブシステム 結合および検証 システム 結合および検証 システム 妥当性確認 サブシステムごとに プロセスを運用する。 複数階層化する場合も
  3. システムズエンジニアリングでのアクティビティ 9 フェーズ 目的 アクティビティ ステークホルダ要求定義 ステークホルダにとって必要なサービ スを実現するために、ステークホルダ からシステムに対する要求を定義す る

    ・ステークホルダの識別 ・ステークホルダのニーズ・シーズの収集 ・ステークホルダの要求の定義 システム要求定義 ステークホルダの要求を、実現可能 なシステムの要求に仕様化する ・ステークホルダとの折衝 ・システムの要求と制約の定義 スコープの定義 機能、制約、品質の定義 システムアーキテクチャ設計 システム要求の実現手段を、サブシ ステム開発が可能になるまで分析・ 設計する ・外部仕様の具体化 ・構成要素やその関係についての仕様化 ・設計方針の策定
  4. 複数の領域を横断・システム全体 プロダクトシステムズでのサブシステム(例:カメラ) 11 システム分析・ 設計 光学系システム レフ制御システム センサ制御・ 画像処理システム ネットワーク・

    メディア制御 システム モニタシステム メカ開発 エレキ開発 ソフト開発 それぞれでサブシステムの開発プロセスを運用する 筐体・外装 デジタル回路開発 アナログ回路開発 FPGA開発 全体でエンジニアリングを 進める
  5. 反復的な洗練 13 基礎研究 基礎開発 開発 発展 要求分析 設計 実装 テスト

    発展 反復的なエンジニアリングで複雑・大規模・困難な問題に対応する
  6. モデル、モデリング(モデル化)とは ⚫「モデル化とは、認知したいと考えている構造、振る舞い、現象など について、別の効率的な形式や方法による表現を用いることであ る」 • (「The Nature of Modeling」。訳はSQuBOK V2)

    ⚫「モデルとは『ある人によっての、ある状況、あるいはある状況につい ての概念の明示的な解釈』です」 • (「UMLモデリングの本質」にて、システム仕様の分析学の引用を用いた解 説) 15
  7. モデリングの恩恵 1. 理解を助ける • 例)大規模な実装をクラス図で抽象化し俯瞰 2. 思考を深める • 例)マインドマップでアイデアを掘り下げ 3.

    共有を助ける • 例)ロジックツリーで第三者に問題を明示化 4. 協力を支える • 例)構造モデルを使って分担決め 5. モデル対応ツール・手法の恩恵を得る • 例)モデル駆動テストで仕様を検証 17 モデリングで より効率的に物事をこなす より難しい物事をこなす 仲間とシナジーを発揮する モデリング= 表現の工夫で人間の 能力を拡張する
  8. SysMLとは ⚫OMG Systems Modeling Languageの略 システムズエンジニアリングを支援するためのモデリング言語 ⚫UMLからの拡張: • UMLと同一 •

    シーケンス図、ステートマシン図、ユースケース図、パッケージ図 • UMLを改変 • アクティビティ図、ブロック定義図(元:クラス図)、内部ブロック図(元:複合構造図) • UMLから削除 • 上記で触れていないUMLダイアグラム • 新規 • 要求図、パラメトリック図 20
  9. 【補足】SysMLを現場で活用するためには 23 モデル記法の知識 モデルの活用手法 の知識 モデルで課題 解決する能力 23 【勉強する】 SysML/UML

    【勉強・実践する】 MBSE(OOSEM、Harmony for Systems Engineering) 【実践して磨く】 優れたモデリングから学ぶ 優れたエンジニアリングから学ぶ 日頃の業務で、モデル活用経験を重ね、継続 的に磨く 必要スキル
  10. アンチパターン:象牙の塔のアーキテクト ⚫開発の現実・現場から距離をとって、トップダウンでシステムアーキテ クチャを指示するアーキテクト • 背景: • 手法や方法論など教条への狂信 • 上流工程と下流工程の断絶 •

    コンサルなど外部リソースへのアーキテクティングの丸投げ • WFで手戻りを悪として学習フィードバックを否定した成れの果て • 属人的要因 →ステークホルダ・開発・ビジネスが断絶しプロジェクト失敗へ 28
  11. システムアーキテクチャ設計のアプローチ: 責務を分離して問題を扱いやすくする ⚫大きな問題をより小さく、より管理しやすい問題へと変える ⚫人々の協働の仕方を示す 33 システム要求 重要な アーキテクチャメカニズム メカ エレキ

    ソフト サブシステム メカ エレキ ソフト サブシステム メカ エレキ ソフト 過去の蓄積、反復による学習フィードバック、一般的な知見 重要な アーキテクチャ設計方針
  12. ワークショップ1:AEシステムの責務割り当て ⚫AEのアルゴリズム 1. 映像の明るさ値を計算する 2. 映像明るさ値と理想明るさ値から、明るさ補正値を計算する 3. 明るさ補正値から、センサ制御ユニットを制御し、映像明るさを調整する ⚫各パートの処理ごとの得意・不得意 36

    処理 センサ制御ユニット 画像処理ユニット (FPGA) 中央制御ユニット (ソフトウェア) 映像の出力 〇 × × 映像の明るさ値の計算 × 〇 × 明るさ補正値の計算 × △ 〇 センサ制御ユニットの制御 × × 〇 映像明るさの調整 〇 △ × 〇:得意、△:やや得意、×:実現不能