組込みシステムのアーキテクトとモデリング - jeita · 2017-01-05 ·...
TRANSCRIPT
![Page 1: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/1.jpg)
組込みシステムのアーキテクトとモデリング
2016年11月11日
パナソニック(株)AVCネットワークス社
四反田秀樹
1
![Page 2: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/2.jpg)
自己紹介(経歴) 四反田秀樹 現業
オートモーティブ開発センター
それ以前
ブルーレイ/DVDレコーダ(DIGA)
技術経歴
組込みLinuxの専門家
ソフトウェアアーキテクト
Title
ソフトウェアプラットホーム総括担当
上級ソフトウェアアーキテクト
2
![Page 3: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/3.jpg)
本日の内容
ソフトウェアアーキテクチャとは
モデリングとは
アーキテクトと組織
3
![Page 4: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/4.jpg)
本日の内容
ソフトウェアアーキテクチャとは
モデリングとは
アーキテクトと組織
4
![Page 5: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/5.jpg)
ソフトウェアアーキテクチャって何?
IEEE Std 1471-2000の定義
The fundamental organization of a system embodied in its components, their relationshipsto each other, and to the environment, and the principles guiding its design and evolution
コンポーネントとそれらの関連(I/F)から構成されるシ
ステムの基本構造
設計上の重要な決定事項・方針
http://www.sei.cmu.edu/architecture/definitions.htmlには多くのアーキテクチャの定義が載っている。
5
![Page 6: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/6.jpg)
理想的なアーキテクチャとは?
第3者が理解しやすい
1つを理解すれば、残り9個が推測できそれが正しい
部分的理解で変更しても不具合が入らない
再利用しやすい
「全体を理解してから差分開発できる時代は終わった」「現場は、部分的理解で差分開発をせざるを得ない」
「部分的理解で不具合が入らないようにすること」
差分開発と規模増大
6
![Page 7: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/7.jpg)
一人のプロジェクトでは要らない?
プロジェクトを第3者に引き継がない?
でも...3年後のあなたは「第3者」です
7
![Page 8: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/8.jpg)
何故必要なのか?
開発者の支援
作り方に制約を与えることで
複雑さの管理(同時に考える規模を小さくする)
整合性の維持(類似コンポーネントの類推を可能にする)
コンポーネント間の揉め事を防止
再利用・拡張の基礎
機能拡張するときの設計の基礎
どのコンポーネントまで再利用し、新規追加したコンポーネントにどこまでやらせるか
8
![Page 9: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/9.jpg)
エントロピー
アーキテクチャ設計+リファクタリング
アーキテクチャ設計
なし
進化
ソフトウェアエントロピーは常に増大エントロピー(乱雑さ)増大を少なくするのが
アーキテクチャ設計とリファクタリング
9
![Page 10: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/10.jpg)
どこまでアーキテクチャ設計で行うか?
ある本の回答 「アーキテクト次第」、アーキテクトが必要と思うことろまでがアーキテクチャ設計である
私の考え システム設計の一貫性を維持するのに必要な方針/設計
主要なユースケースのシステム設計事例
アーキテクチャ設計に従ったシステム設計の事例
矛盾する要件の判断基準 「性能」と「保守性(わかりやすさ)」のトレードオフ境界
外部から導入したソフトの修正方針 等
10
![Page 11: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/11.jpg)
本日の内容
ソフトウェアアーキテクチャとは
モデリングとは
アーキテクトと組織
11
![Page 12: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/12.jpg)
モデリングとは?
12
・モデル駆動開発(MDD)・モデルベース開発(MBD)・統一モデリング言語(UML)
ツール、コード生成、・・・・・
モデリングというキーワードから出てくるもの
ここで述べるモデリングとは?
アーキテクチャ設計時の「対象の抽象化」の作業
![Page 13: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/13.jpg)
アーキテクチャ設計の中のモデリング
13
(1)機能要件を列挙する(2)機能を実現するためのブロック構成を考える(3)(2)で作ったブロックの中で共通的なものを統合する
録画機能
再生機能
ダビング機能
選局
展開
表示
選局
展開
圧縮
DVD/HDD読出
DVD/HDD書込
(1)(3)(2)
(3)の工程でまとめるときに考えるのがモデリング
放送視聴機能
選局
変換
HDD書込
DVD/HDD読出
展開
表示
変換
HDD読出
DVD書込
表示
![Page 14: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/14.jpg)
14
アーキテクチャ設計の中のモデリング
・ 工程(3)でうまくまとめられないのは、工程(2)の分割の問題圧縮処理で、後段がHDD/DVDという知識を使うと共通化できないいいモデル化なら、他のストレージやネットワーク配信に進化できる
・現実物のものを抽象化したモデルは理解しやすい。
圧縮
DVD/HDD書込
ネットワーク配信
SDカードUSB
ストレージ
圧縮データ sink
DVD用圧縮
DVD HDD
HDD用圧縮
この状態では共通化できない 下段の知識を使わず圧縮が出来ると展開性大
![Page 15: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/15.jpg)
モデリングとは
15
モデリングとは
「共通なもの」と「個別なもの」を分離する作業で使う
仮想的なもの(モデル)が持つ特性を定義し、個別部分をパラメータ化し、各ブロックを共通化する
いいモデルとは
進化方向を予測し、それをモデルに内包している
![Page 16: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/16.jpg)
差分開発でのモデリング
前提
既存のアーキテクチャ設計、モデリングが存在
既存のアーキテクチャで(少しの修正で)設計したい
アーキテクチャ設計
新規要件を既存のアーキテクチャ設計、モデリングにどのようにマッピングするか?
どのモデルをより抽象化する必要があるのか?
コンポーネントの責務が巨大になりすぎないか?
16
![Page 17: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/17.jpg)
差分開発のモデリングのコツ 手段(仕様)ではなく目的(なにがしたいか)に拘る
既存のモデルに合わせるには「仕様調整」が必須
目的がわからないと「仕様調整」は難しい
仕様が制御できること
仕様提案が出来ると差分開発はやりやすい
見た目の仕様を直接モデリングしない
仕様開発者は「見た目」に拘る。ここは調整しにくい
性能要件変更もアーキテクチャに影響する
17
![Page 18: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/18.jpg)
差分開発アーキテクチャに影響を与える要素
18
外部から導入したソフト資産
開発の順番(過去の経緯)
![Page 19: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/19.jpg)
外部から導入したソフトの影響
独立コンポーネントとすることが多い
変更ポリシーの選択肢
原則変更しない
不自然な基本構造の一因
必要なら変更する
今後も進化する場合は追従性に課題
19
![Page 20: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/20.jpg)
開発順番の影響
過去は別だったが今は類似商品のものに見られる
デジカメとムービー
コピー、FAX、プリンタ
TVとDVDレコーダ
歴史的経緯を理解しないとなぜこのような構造になっているのか理解できない
20
アーキテクチャは全然違う
![Page 21: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/21.jpg)
何故影響をうけるか?
アーキテクトは新しい機能を既存機能の概念の応用と捉える特性をもつ
動画は静止画の連続記録、再生
静止画は動画のスナップショット
21
![Page 22: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/22.jpg)
差分開発でのアーキテクチャ設計書の必須項目
22
アーキテクチャに影響を与えた項目とその理由特に仕様以外の項目
第3者のアーキテクチャ理解を助ける
![Page 23: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/23.jpg)
本日の内容
ソフトウェアアーキテクチャとは
モデリングとは
アーキテクトと組織
23
![Page 24: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/24.jpg)
アーキテクトとは何をする人?
リーダの名称 責務
プロジェクトリーダ プロジェクトの開発進捗を管理
チームリーダ プロジェクトへの人材割り当てと人材育成
アーキテクト 設計方針を決めコンポーネントの責務を定義、
コンポーネントの設計がアーキテクチャ設計に合致しているかをレビュー
ソフトリーダと呼ばれている人の実態は?
アーキテクトはプロジェクトリーダ/チームリーダとは別の人材24
![Page 25: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/25.jpg)
プロジェクトリーダがアーキテクトを兼任すると
規模が大きくなるとプロジェクトリーダ優先
・プロジェクトリーダ不在 →進捗管理が出来ないプロジェクトが止まる
・アーキテクト不在 →設計をすすめても物は(なんとか)できる困るのはあとになってから
25
![Page 26: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/26.jpg)
プロジェクト構成
コンポーネントリーダ
コンポーネントリーダ
アーキテクチャチーム
アーキテクト分析者
開発者 開発者
プロジェクトリーダ
26
![Page 27: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/27.jpg)
アーキテクトに必要な能力 ドメイン知識
要求を理解し、ソフトウェア構造に分解できること
進化方向を予測できること
ソフトウェア開発力 複数の機能/処理から、共通と固有を分離する力(モデル化、抽象化)
信頼感 重要な判断/決定を行ない、メンバーに浸透させることが出来ること
コミュニケーション力 決定に対する根拠をうまく説明できる能力(コンポーネント開発者間で利害が対立する事案の決定が多い)
深入りしすぎない
27
![Page 28: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/28.jpg)
組織に求める事(1)~アーキテクトが仕事をやりやすくするために~
プロジェクトリーダとアーキテクトの分離 兼任すると進捗管理しか出来なくなる
アーキテクトに権限を与える システム設計レビュー、再設計指示権限
アーキテクチャ設計を守らなくてもシステムは出来る しかし、継続的にシステムを発展できない
アーキテクトが信頼されているのが条件
28
![Page 29: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/29.jpg)
糸口のつかめない問題の解決を割り当てない。 アーキテクトがパンクする
システム設計をスケープゴートにしない アーキテクトのなり手がいなくなる
組織に求める事(2)~アーキテクトが仕事をやりやすくするために~
29
![Page 30: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/30.jpg)
適度なコンポーネント間の開発メンバー入替 コンポーネント間の押し付け合いの緩和
組織に求める事(3)~アーキテクトが仕事をやりやすくするために~
30
![Page 31: 組込みシステムのアーキテクトとモデリング - JEITA · 2017-01-05 · 過去は別だったが今は類似商品のものに見られる デジカメとムービー](https://reader034.vdocuments.site/reader034/viewer/2022042220/5ec65db6ffb60e794c5cebba/html5/thumbnails/31.jpg)
ご静聴有難うございました
31