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

20230615tdm

m-miura.jp
June 15, 2023

 20230615tdm

m-miura.jp

June 15, 2023
Tweet

More Decks by m-miura.jp

Other Decks in Design

Transcript

  1. ビューとモデルとビューモデルと
    2023.06.15 上流工程なんでもLT! TDM Vol.4
    miure
    https://m-miura.jp/

    View Slide

  2. ビューとモデルと(ビューモデルと)
    2023.06.15 上流工程なんでもLT! TDM Vol.4
    miure
    https://m-miura.jp/

    View Slide

  3. Copyright levii Inc. All rights reserved.
    自己紹介
    三浦 政司 (みうら まさし)
    JAXA宇宙科学研究所 宇宙飛翔工学研究系 准教授
    深宇宙探査技術実証機(DESTINY+)プロジェクトチーム
    株式会社レヴィ 共同創業者/システムデザイン研究所所長
    専門分野
    ● 制御工学  :分散協調制御、飛翔体誘導制御
    ● システム工学:システム設計論、システムモデリング
    ● 工学教育  :PBL型工学教育
    好きなこと
    ● 蟻コロニーの飼育
    ● 自転車
    ● コミック
    m-miura.jp
    2024年打上予定
    DESTINY+

    View Slide

  4. 今日の発表は…
    ● TechDLT 要件定義についてLT!Vol.9(3/23)で紹介した
    「モデルベースな要件定義の実例紹介」で使った考え方に関するもの
    ● 上記の発表で紹介した対話型モデリングにおいて重要となる
    ビュー、モデル、(ビューモデル)などの概念についてもう少し突っ込んで
    議論してみたい。

    View Slide

  5. 「モデルベースな要件定義の実例紹介」の復習

    View Slide

  6. 詳しくはこちらをご参照下さい
    ■ 株式会社レヴィ導入事例|株式会社仲介テレビ放送様
    https://levii.co.jp/cases/21/
    ■ 発表スライド
    https://speakerdeck.com/miure/20230323techdlt
    ■ TechDLTのアーカイブ動画
    https://youtu.be/0DNqnOSWd1A?t=911
    ◀導入事例ページ

    View Slide

  7. システムモデルが有効(なはず)
    開発者
    (設計)
    ユーザ 開発者
    (実装)
    ● 視覚的・直感的な理解
    ● 認識齟齬の抑制
    ● スムーズな合意形成
    ● ▲ ■

    View Slide

  8. システムデザインのためのフレームワーク:システミング®
    ● 誰でもシステム思考やシステム工学を上手に実践できることを
    目指して構築したシステムデザインのためのフレームワーク
    ● 今回紹介する対話型モデリングが中心となっている
    株式会社レヴィのWebサイトにてガイドブックを無料配布中:levii.co.jp

    View Slide

  9. 事例:株式会社中海テレビ放送によるシステム開発
    ● 本社:鳥取県米子市
    ● 鳥取県西部をエリアとするケーブルテレビ局
    ● 電力小売事業を展開する地域新電力事業者でもある
    今回紹介する事例の開発対象システム
    ● 新サービス「オール電化プラン」の
    お申込み受付システム
    ● 「誰でも簡単にお申込みができる」
    を目指してLINEと連携
    ● 新プランでどれだけお得になるか、
    電気料金をシミュレーション
    https://www.chukai.co.jp/

    View Slide

  10. 開発の流れ
    対話型モデリングによる上流設計
    ● 要求ヒアリング、要求定義
    ● アーキテクチャ設計
    モデルを中心に置いた実装フェーズ
    ● 詳細設計
    ● 実装
    上流設計の成果物としてモデルを納品
    リリース・運用
    レヴィ 中海テレビ
    地域のベンダ 中海テレビ レヴィ
    モデルで対話
    モデルで対話
    開発支援

    View Slide

  11. 上流設計で構築したモデル

    View Slide

  12. 担当者の声
    「発注する側」も設計に参加して欲しいシステムのあり方を伝えること
    ができました。そのおかげで、手戻りらしい手戻りや関係者間の認識
    違いがほとんどなくて、計画通りに開発を進めることができました。
    いつもは運用を開始してからたくさんの質問や要望が来て業務負荷になることも
    あるのですが、今回はほとんどありません。
    システムの運用に関わるたくさんのメンバーが設計に口出しできたことが良かっ
    たのかなと思っています。ドキュメントだけだと設計に関する会話に参加できませ
    んからね。
    時間が経ってからでも設計の意図が分かるというところがいいですね。私も一緒
    につくった図なので、後から見ても設計の意図や意思決定の理由が分かります。
    機能追加などを行う際に役に立ちそうです。

    View Slide

  13. 対話型モデリングの前提:視点を分ける

    View Slide

  14. 提案:対話型モデリング
    1. 視点をわける
    2. システムモデルで対話する
    3. 視点をつなげる
    運用
    フロー
    機能
    構造
    運用フローを実現する
    のに必要十分な機能が
    挙げられているか?
    (整合性観点)

    View Slide

  15. 提案:対話型モデリング
    1. 視点をわける
    2. システムモデルで対話する
    3. 視点をつなげる
    運用
    フロー
    機能
    構造
    運用フローを実現する
    のに必要十分な機能が
    挙げられているか?
    (整合性観点)
    対話するための前提
    対話しながらシステムモデルを
    構築していくことで合意できる
    要求・アーキテクチャを探す
    対話しながらモデリングを
    するときの注意点

    View Slide

  16. Copyright levii Inc. All rights reserved.
    「視点をわける」とは?
    ● 複雑なシステムの全体をそのまま考えたり理解したりすることは困難
    ● 対象のシステムをモデルで表現するためには「視点をわける」ことが必要
    ● 視点をわける = 視点を決める × 複数の視点から見る
    ○ 視点を決める:モデルを描く際の関心/抽象度/範囲を決める
    ○ 複数の視点から見る:様々な視点からモデルを描くことでシステムの姿を
              表現する(システムの全体を表現する)

    View Slide

  17. Copyright levii Inc. All rights reserved.
    なぜ「視点を決める」が必要なのか?
    ■ 例えば、「機能間のつながり」と「(物理的な)部品間のつながり」を
    同じモデルの中で描くことはできない
    ○ 無理やり描くことはできるかもしれないが、わかりやすくは描けない
    ■ 異なる抽象度で見たシステムの姿を同じモデルで描くのは難しいことが多い
    ○ 例外)ツリーモデルで包含関係を描いていく場合などはOK
    ■ 複雑なシステムの全体を一度に描こうとするとわかりづらくなってしまうこと
    がある
    ○ 特に抽象度が低い時はそうなりがち
    何に関心を持って描くか?どんな抽象度で描くか?どの範囲まで描くか?などを
    決めないと(わかりやすい)モデルを描くことができない。

    View Slide

  18. Copyright levii Inc. All rights reserved.
    なぜ「複数の視点から見る」が必要なのか?
    ● 視点を決めて描いたモデルは、システムのある一面でしかない
    ○ そのモデルを描くために多くの情報を捨てている(捨象している)
    ● システムに対する認識を合わせるためには、十分な数の視点が必要
    (ほとんどの場合は1つの視点では不十分)
    ● ではどんな視点が必要なのか?いくつ必要なのか?→対象や目的によるので、
    対話しながら探索するしかない(上流設計の難しさの一つ)
    システム
    システムのある一面しか
    表現していない
    複数の視点で表現しないと
    システムが十分には理解できない

    View Slide

  19. Copyright levii Inc. All rights reserved.
    ここまでのまとめ
    ● 対話や認識合わせのためにはシステムを分かりやすく表現することが必要
    ● システムを分かりやすく表現するためには「視点をわける」ことが必要
    ● 視点をわける = 視点を決める × 複数の視点から見る が対話の前提
    システム
    視点を決める
    複数の視点から表現する

    View Slide

  20. 上流設計で構築したモデル

    View Slide

  21. ビューとモデル

    View Slide

  22. Copyright levii Inc. All rights reserved.
    モデル
    一般的な定義
    物事について、着目している特徴や性質だけを抽出し、
    その他の細部を簡略化して表現したもの。

    ● 形状モデル(3Dモデルなど)
    ● 数理モデル
    ● シミュレーションモデル
    ● …
    ● システムモデル
    ● …

    View Slide

  23. Copyright levii Inc. All rights reserved.
    システム設計におけるモデル
    システム
    モデル
    ビューから見たシステム
    を表現したもの
    ビュー
    分けて見るときの枠

    View Slide

  24. Copyright levii Inc. All rights reserved.
    ビュー + 表現方法 = モデル
    モデル
    ● ◯◯仕様書
    ● ◯◯リスト
    ● ◯◯図、◯◯表
    ● ◯◯報告書
      ︙
    ビュー
    ■ 目的
    ■ 関心
    ■ 抽象度
    ■ 範囲
    表現方法
    ■ 文書
    ■ リスト
    ■ 図、表
    ■ システムモデル
      ︙
    ビューと表現方法を決めれば、モデルでシステムを表現できる。
    システム
    モデル
    ビュー

    View Slide

  25. Copyright levii Inc. All rights reserved.
    ビュー + 表現方法 = モデル
    モデル
    ● ◯◯仕様書
    ● ◯◯リスト
    ● ◯◯図、◯◯表
    ● ◯◯報告書
      ︙
    ビュー
    ■ 目的
    ■ 関心
    ■ 抽象度
    ■ 範囲
    表現方法
    ■ 文書
    ■ リスト
    ■ 図、表
    ■ システムモデル
    ビューと表現方法を決めれば、モデルでシステムを表現できる。
    システム
    モデル
    ビュー
    対話には
    システムモデル
    が向いている!
    (と主張したい)

    View Slide

  26. ビューを具体的に定義する

    View Slide

  27. Copyright levii Inc. All rights reserved.
    ビュー
    システム
    ● 「視点をわける」の「視点」を具体的に定義
    ● ビュー
    ○ システムの姿をモデルで表現するときの、システムの切り取り方、枠
    ○ 目的・関心・抽象度・範囲を決めるとビューが決まる
    ○ (逆に言うと)目的・関心・抽象度・範囲を決めると、システムをモデルで
    表現できる

    View Slide

  28. Copyright levii Inc. All rights reserved.
    システム設計におけるモデル
    システム
    モデル
    ビューから見たシステムを
    表現したもの
    ビュー
    分けて見るときの枠
    ● 目的
    ● 関心
    ● 抽象度
    ● 範囲
    で決まる

    View Slide

  29. Copyright levii Inc. All rights reserved.
    ビューを定める特徴①「目的」
    システム
    ● 目的
    ○ そのビューでシステムを表現する目的。なんのためにそのビューが必要か?
    ● パターン/例
    ○ 誰と、どんなことについて認識を合わせたいのか(合意したいのか)
    ○ ビューAとビューBを接続するため
    ■ AとBの間の整合性を直接確認することができない場合
    ○ ◯◯について
    ■ アイデアを出すため、要素を洗い出すため
    ■ 議論するため、確認するため
    ○ ◯◯について具体的に考えるため/抽象的に考えるため
    ○ …
    ● 備考

    View Slide

  30. Copyright levii Inc. All rights reserved.
    ビューを定める特徴②「関心」
    システム
    ● 関心(ビューポイント)
    ○ システムのどんな側面について着目してモデルを描くのか?
    ○ 要素は何か(ノードは何か)、どんな関係性を見るのか(リンクは何か)
    ● パターン/例
    ○ コンテキスト
    ■ システムの「全体と境界」や「外部との相互作用」に関心を持つ
    ■ システムを取り巻く環境やステークホルダに関心を持つ
    ■ ノード:外部要素、ステークホルダ
    ■ リンク:システムとの相互作用
    ○ 運用の流れ
    ○ 物理的な構成
    ● 備考
    ○ ISO42010にDoD AFなどに書いてある:
    ○ 対話型モデリングでは「ビューポイントが必要か?」もみんなで考える

    View Slide

  31. Copyright levii Inc. All rights reserved.
    システム設計者がよく使うビューポイント
    Context Viewpoint
    システムの全体と境界、および外部との相互作用に関心を持つ
    Functional Viewpoint
    システムの機能に関心を持つ
    Operational Viewpoint
    システムを操作する、運用するという側面に関心をもつ
    Process Viewpoint
    システムの動作、処理の順番などに関心がある視点
    Physical Viewpoint
    システムの物理的な構成、特性、形状などに関心がある視点
    どのようなビューポイントが必要か?も探りポイント(対話が必要)

    View Slide

  32. Copyright levii Inc. All rights reserved.
    ビューを定める特徴③「抽象度」
    システム
    ● 抽象度
    ○ どのくらいの抽象度でモデルを描くのか?
    ○ どのくらい粗く/どのくらい細かくモデルを描くのか?
    ○ 要素(ノード)の粒度は?
    ● パターン/例
    ○ ◯◯が一つのノードになるくらいの抽象度
    ○ ビューAより一段階細かい/粗い
    ○ ノードは具体的なものをバイネームで記述するくらい
    ○ 全体像(全範囲)を描けるように俯瞰的に
    ○ 販売されている単位の部品(コンポーネント)まで
    ○ 担当者を割り振れるレベルまで分解しておく
    ● 備考

    View Slide

  33. Copyright levii Inc. All rights reserved.
    ビューを定める特徴④「範囲」
    システム
    ● 範囲(スコープ)
    ○ どの範囲まで見るか?時間方向も。
    ○ モデルとして記述する範囲。
    ● パターン/例
    ○ 対象システムの全体
    ○ サブシステムAについて
    ○ 対象システムを含む環境全体(スーパーシステム)
    ○ AsIsを描きましょう、ToBeを描きましょう(時間方向の範囲)
    ○ ケースAの場合、ケースBの場合(場合分け)
    ● 備考
    ○ 「抽象度が低い」かつ「範囲が広い」は表現しにくいので、そのような
    ビューは(レヴィは)通常は選ばない。※実装フェーズへのインプットとし
    てそのようなビューでのモデルが描かれる場合はある

    View Slide

  34. 例:業務フロー(全体)

    View Slide

  35. ビューモデル

    View Slide

  36. Copyright levii Inc. All rights reserved.
    ビューモデル
    システム
    ● ビューとビュー間の間をつないだリンク(整合性リンク)から構成される図
    ● ビュー間の関係性を表現している
    ● これ自体が、ビューをノードとした場合のモデルである(メタモデル)

    View Slide

  37. Copyright levii Inc. All rights reserved.
    ビューモデル
    整合性リンク:つながりをチェックできるよ!という印
    (チェックするべき!)

    View Slide

  38. Copyright levii Inc. All rights reserved.
    ソフトウェア設計のビューモデルの例
    システムの中を見る
    システムを外から見る
    コンテキスト
    ユースケース
    業務フロー
    画面レイアウト
    概念モデル クラス図
    ソースコード

    View Slide

  39. Copyright levii Inc. All rights reserved.
    電子回路設計のビューモデルの例
    システムの中を見る
    システムを外から見る
    コンテキスト
    回路
    ブロック
    回路図
    運用
    シナリオ
    機能フロー
    要求・制約

    View Slide

  40. まとめ+おわりに

    View Slide

  41. Copyright levii Inc. All rights reserved.
    システム設計におけるモデル
    システム
    モデル
    ビューから見たシステムを
    表現したもの
    ビュー
    分けて見るときの枠
    ● 目的
    ● 関心
    ● 抽象度
    ● 範囲
    で決まる

    View Slide

  42. お気軽にお声がけ下さい
    ■https://levii.co.jp/ にて各種資料配布中 株式会社レヴィ
    ■SNS、メールニュースなどで情報発信中
    https://levii.co.jp/mailnews/ 

    @levii_sdl @levii.inc
    ISECON2021最優秀賞!
    システム開発体験ゲーム

    View Slide