Submit Search
Upload
高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-
•
Download as PPTX, PDF
•
0 likes
•
717 views
Yoshio SAKAI
Follow
第8回 組込みシステム開発技術展(ESEC) 2005年6月29日~7月1日 専門セミナー の講演資料
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 71
Download now
Recommended
IoT のシナリオを変える Azure SQL Edge
IoT のシナリオを変える Azure SQL Edge
IoTビジネス共創ラボ
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
日本ヒューレット・パッカード株式会社
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
自然言語処理における深層学習を用いた予測の不確実性 - Predictive Uncertainty in NLP -
自然言語処理における深層学習を用いた予測の不確実性 - Predictive Uncertainty in NLP -
tmtm otm
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する
株式会社MonotaRO Tech Team
Recommended
IoT のシナリオを変える Azure SQL Edge
IoT のシナリオを変える Azure SQL Edge
IoTビジネス共創ラボ
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
日本ヒューレット・パッカード株式会社
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
自然言語処理における深層学習を用いた予測の不確実性 - Predictive Uncertainty in NLP -
自然言語処理における深層学習を用いた予測の不確実性 - Predictive Uncertainty in NLP -
tmtm otm
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する
株式会社MonotaRO Tech Team
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
Eiji Sasahara, Ph.D., MBA 笹原英司
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
智啓 出川
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
Pythonによる累乗近似
Pythonによる累乗近似
智啓 出川
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
@yuzutas0 Yokoyama
Docker超入門
Docker超入門
VirtualTech Japan Inc.
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
Capsule Graph Neural Network
Capsule Graph Neural Network
harmonylab
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
ManaMurakami1
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報
NVIDIA Japan
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
Hideki Tsunashima
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
joisino
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
株式会社MonotaRO Tech Team
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
Akihiro Nomura
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
Daiyu Hatakeyama
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
More Related Content
What's hot
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
Eiji Sasahara, Ph.D., MBA 笹原英司
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
智啓 出川
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
Pythonによる累乗近似
Pythonによる累乗近似
智啓 出川
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
@yuzutas0 Yokoyama
Docker超入門
Docker超入門
VirtualTech Japan Inc.
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
Capsule Graph Neural Network
Capsule Graph Neural Network
harmonylab
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
ManaMurakami1
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報
NVIDIA Japan
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
Hideki Tsunashima
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
joisino
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
株式会社MonotaRO Tech Team
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
Akihiro Nomura
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
Daiyu Hatakeyama
What's hot
(20)
Docker Tokyo
Docker Tokyo
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Pythonによる累乗近似
Pythonによる累乗近似
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Docker超入門
Docker超入門
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
Capsule Graph Neural Network
Capsule Graph Neural Network
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
TSUBAME3のインタラクティブ利用の利便性向上にむけた取り組み
Python に行く前に Excel で学ぶデータ分析のいろは
Python に行く前に Excel で学ぶデータ分析のいろは
Similar to 高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
Hironori Washizaki
サービス開発における工程
サービス開発における工程
Hidetoshi Mori
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
Akiko Kosaka
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
智治 長沢
ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方
MLSE
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
Masanori Kaneko
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
智治 長沢
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma
クラウドがアプリケーションの価値を上げる
クラウドがアプリケーションの価値を上げる
Nissho-Blocks
Qs info002
Qs info002
Kei Nakahara
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
Yasuharu Nishi
ITPro Expo 2014: クラウド統合基盤 ソリューション ~ VMware/Cisco/EMC 統合基盤 VBlock ~
ITPro Expo 2014: クラウド統合基盤 ソリューション ~ VMware/Cisco/EMC 統合基盤 VBlock ~
シスコシステムズ合同会社
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
智治 長沢
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
光平 八代
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
Hironori Washizaki
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
Hironori Washizaki
テスト自動化への1エンジニアとしての期待
テスト自動化への1エンジニアとしての期待
teyamagu
Similar to 高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-
(20)
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
サービス開発における工程
サービス開発における工程
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
ソフトウェア工学における問題提起と機械学習の新たなあり方
ソフトウェア工学における問題提起と機械学習の新たなあり方
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
[3rd 長崎QDG] チームで、長期間で、たくさんのソフトウェアを快適に開発し、価値を生み続けるためのエンジニアリング
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
クラウドがアプリケーションの価値を上げる
クラウドがアプリケーションの価値を上げる
Qs info002
Qs info002
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
ITPro Expo 2014: クラウド統合基盤 ソリューション ~ VMware/Cisco/EMC 統合基盤 VBlock ~
ITPro Expo 2014: クラウド統合基盤 ソリューション ~ VMware/Cisco/EMC 統合基盤 VBlock ~
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
【JaSST'11 Kansai】 開発者とテスト担当者に最適なコラボレーションと効率化を!
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
テスト自動化への1エンジニアとしての期待
テスト自動化への1エンジニアとしての期待
高信頼性を確保するソフトウェア開発手法と実践-組込み製品の潜在的価値を今以上に高めるために-
1.
©Yoshio Sakai 高信頼性を確保するソフトウェア開発手法と実践 -組込み製品の潜在的価値を今以上に高めるために- 組込みソフトウェア管理者・技術者育成研究会 酒井 由夫 EEBOF
(Embedded Engineer's Birds Of a Feather) 第8回 組込みシステム開発技術展(ESEC) 2005年6月29日~7月1日 専門セミナー 講演資料
2.
©Yoshio Sakai まずはこのプレゼンの結論から 組込みソフトの信頼性を高めたいのなら、高凝集、疎結合のサブシステ ムの組み合わせにすることが有利です(それが基本) でも、それを突き詰めすぎると競争力のない組込み製品になる危険性も あります すでに確立されているソフトウェアの信頼性向上の考え方・技術を日本 の組込みソフト向けにテーラリングすることが大事です 人に依存していることを認識しつつ、しかし、依存しすぎないこと・・・これ に尽きます 精神論にならないように、高信頼性ソフトウェアの実現に向けて「具体的 に何をすべきか」にフォーカスをあてて理論的に語ります
3.
©Yoshio Sakai 1. 高信頼性ソフトウェアの定義と必要性 2.
高信頼性ソフトウェア実現のフレームワーク 3. 日本のもの造りについて分析する 4.体系的な再利用によるソフトウェア信頼性向上の実践
4.
©Yoshio Sakai 組込み製品の安全性とソフトウェア 組込み製品の安全性が求められています 使ったら怪我をする製品では安心して使えません 食品/薬/自動車/遊具/電気機器・・・・ 企業は安全な製品を市場に出すことを求められています リスクの原因にはソフトウェアによるものも含まれているし、リスクの回避 にもソフトウェアが役立っています 企業にとってソフトウェアは諸刃の刃なのです
5.
©Yoshio Sakai 組込み製品の信頼性とソフトウェア 組込み製品の信頼性=潜在的価値 品質は宣伝にもなります Quality is
its own advertisement. (品質それ自体が広告である) 顧客満足を高めるには組込み製品の安全性・信頼性を高めることが重 要です それは日本の得意分野であるはず 組込みソフトウェアの安全性や信頼性を高めるには、技術も必要ですし、 もちろんコストもがかかります 製品の安全性や信頼性を効率よく高めるソフトウェアの開発手法が必要 です
6.
©Yoshio Sakai 組込みソフトが原因になった不具合の例 公表日 製品種別
不具合の内容 2004.08.16 DVDレコーダ DVDレコーダで電源がオン状態の時に録画予約メールを受 信できない 2004.10.04 デジタルカメラ 連続撮影中や、オートパワーオフ状態でレンズを着脱後、デ ジタル・カメラが操作不能になる 2004.10.21 携帯電話 電話を発信するとほぼ同時に着信があった場合、電話帳の 内容が消失する 公表日 社名/製品名 不具合の内容 2004.03.18 英ジャガー「XJ8」など12車種 6速自動変速機で、勝手にギヤが3速に固定されたり後退に 入る 2004.08.31 仏プジョー「206」など10車種 電源制御装置の不具合により、リモコン・キーでドアロック時 にホーンが鳴り続ける 2004.09.14 独BMW「525i」など7車種 着座センサーの情報が感知できず、事故時に助手席エア バッグが作動しない 携帯電話やAV機器などの故障を引き起こした事例 自動車のリコールにつながった事例 日経コンピュータ 2004.12.27 号 『組み込みソフトの巨大化に立ち向かう』 p119 より
7.
©Yoshio Sakai リコールの数を比較されてしまったら? ソフトウェアをアップロードする仕組みを作ってしまえば、リコールがあっても大き な損害はないと考えていませんか? しかし、ユーザーに過去のリコール数を比較されて、信頼性の高い企業の製品を 購入したいと考えるようになったらどうでしょうか? 安全性や信頼性=潜在的な価値の高さは、消費者の購入行動の基準になること もあるのです A 社 B 社 C 社 リコール数 A社はリコールが多いの で買うのはやめよう
8.
©Yoshio Sakai 0 2 4 6 8 10 壊れにくい 手入れしやすい 故障判断が的確 24時間連絡体制相談電話のつながり易さ 修理代が安い 修理が早い 組込み製品の品質がユーザーに評価される日は近い 0 2 4 6 8 10 価格 デザイン 操作性 画質 手ぶれ補正 バッテリ 携帯性 拡張性 たとえば家電製品の評価サイトでビデオカメラの機能・性能のみならず、品質もあ わせて評価されるようになるとどうなるでしょうか? 商品の性能(顕在的価値)評価 商品の品質(潜在的価値)評価 左レーダーチャート:価格.com
ビデオカメラ人気アイテムランキング1位の商品の評価バランスより
9.
©Yoshio Sakai 組込み製品の価値とは 顕在的価値 ユーザーの本質的な要求 何をしたい? 何を解決したい?
どうなるとうれしい? 要求を満たすためのサービスや機能 そこから導き出される製品の本質的特長 使いやすさ、わかりやすさ 潜在的価値 製品の品質(安全・信頼できる・壊れにくい) 保守性(故障しても直してくれる、直しやすい) 使い方の分からないところはすぐに教えてくれる 組込み製品が売れるためには “顕在的な価値” と “潜在的な価値” の両 方が高くなければいけません 作り上げた製品で顧客満足を高めることができなければ、何の意味もありません 顕在的価値 潜在的価値
10.
©Yoshio Sakai 長く市場に投入する組込み製品にとって潜在的価値はとても大事 顕在的価値 潜在的価値が高い 顕在的価値 潜在的価値が低い 商品A 商品B 品質が悪いので二度と 買いたくない 次もこのメーカーの製品 を買おう
11.
©Yoshio Sakai 企業におけるマーケティングの役割に対する見方の変遷 財務 人事 マーケ ティング 製造 顧客 マーケティング 製造 財務 人事 顧客が全体をコントロールし、マーケティ ングは各機能を統合する 顧客は登場せず、マーケティングは各 機能と同じ重要性を有する 顧客が中心ではなかった 過去の企業の見方 顧客中心の 現在の企業の見方 出典:P.コトラー「マーケティング・マネージメント」
プレジデント社,p19
12.
©Yoshio Sakai
13.
©Yoshio Sakai 高信頼性ソフトウェアの実現イメージ まず、最初に“どのようにしたら組込みシステムを高信頼性へと導くこと ができるのか”というイメージを示します 最終的な“理想モデル”と“そこに至るまでの過程”を掴んでおくことは重 要です
14.
©Yoshio Sakai 高信頼性ソフトウェア・システムへの道筋 軽微なバグ 重大なバグ システムが分割されていない バグが多く混在する未熟な組込みシステム
15.
©Yoshio Sakai コア資産を切り出し、結合度を弱めます 高凝集 (high
cohesion) 疎結合 (low coupling) コア資産 を目指す
16.
©Yoshio Sakai コア資産を高凝集・疎結合にします 結合度小 コア資産
17.
©Yoshio Sakai まず、コア資産のバグを摘出します コア資産 テスト環境 いくつかのバグは残るかもしれません 重大なバグ 軽微なバグ
18.
©Yoshio Sakai 残りのシステムをドメインに分割します ユーザー インターフェース コア資産 ドメイン
19.
©Yoshio Sakai ドメインごとにバグを摘出し、不具合を抑制します 不具合を完全に摘出 できなくても、 バリデーションにより システムの重大な リスクを抑制すること ができます リスク分析 バリデーションの実施 ユーザー インターフェース コア資産 重大なバグ 不具合の抑制 ドメインによって効率的な不具合の摘出手段が異なります 例えばユーザーインターフェースには機能テストが有効です
20.
©Yoshio Sakai 電子ポットのリスク分析・妥当性確認 R&Dセンターの省電力研究室から、電子ポットの温度テーブルを最適化するこ とで、ポットの消費電力を10%削減できるという調査報告が回ってきました この調査報告を受けて、ポットの消費電力を削減すべく設計変更をいました E0: (℃) <-3
≧-3 =0 ≦3 >3 ΔT0 (℃) <-3 0 100 100 100 100 ≧-3 0 70 70 70 100 =0 0 30 30 50 100 ≦3 0 0 0 30 100 >3 0 0 0 0 100 E0:目標の水温-現在の水温 ΔT0:前回の制御周期時の水温-今回の制御周期時の水温 例示 参考: SESSAME WEBサイト 話題沸騰ポット GOMA-1015型 要求仕様書
21.
©Yoshio Sakai ポットから煙がでた! ユーザー先で使用中の電子ポットで煙がでたという報告がありました ポットを分解したところヒータの異常加熱により、周りの部品が焼けこげていました 品質保証部門の解析チームがプログラムを解析したところ、省電力のために変更した温度 テーブルの組込みでミスがあり、テーブルのヒータ制御量の中に誤って負の値が定義された 部分がありました 負の値がヒータ制御のソフトウェアに渡るとヒータを最大出力で熱してしまうプログラムに なっていたことが判明しました エラー監視のプログラムでヒータ連続オンの時間の上限を監視していませんでした 例示 E0: (℃) <-3
≧-3 =0 ≦3 >3 ΔT0(℃) <-3 -1 100 100 100 100 ≧-3 0 70 70 70 100
22.
©Yoshio Sakai リスク分析表を使った信頼性の向上 番 号 障害 原因
重要度 発生の可能 性/故障率 対策 実施確認の方法 チェック No. Hazard Cause Level of Concern Likelihood/ Failure Rate Method of Control Trace Check A-1 ヒータの異常加 熱により火災が 起こる ・サーミスタの故障 ・ヒータの故障 High 1/10000 (故障率) ・ハードウェアによる対策 温度ヒューズによるヒータ への回路切断 ・ソフトウェアによる対策 ブザーによる注意喚起とエ ラー表示(30秒)を行う. 設計書番号 #001 テスト計画 #001 □ □ ・水の量が少ない に加熱した High たまにあり (Moderate) ・ソフトウェアによる対策 第1水位センサがオフ状態なら ば,ヒータや沸騰ボタンは動作 しない. 設計書番号 #002 テスト計画 #002 □ □ ヒータ制御ソフト ウェアの安全対策 不備 High まれ (Low) ・ソフトウェアによる対策 ヒーター制御値のマイナス値は 受け付けない 連続ヒーターONの時間に上限を 設ける 設計書番号 #003 テスト計画 #003 □ □ フィールドで起こった不具合の対策をコア資産に追加し、より強固なものにします 出典:Guidance for FDA Reviewers - Premarkrt Notification Submissions for Automated Testing Instruments Used in Blood Establishments 例示
23.
©Yoshio Sakai システムの信頼性を高めることができました 不具合がゼロになることはまれです しかし、重大な欠陥は摘出または抑制され、コア資産の信頼性はアップしています ユーザー インターフェース コア資産 残存するバグ 抑制された不具合 リスク分析の対策
24.
©Yoshio Sakai 高信頼性ソフトウェアを実現するための心得 限られた予算、限られた期間内で不具合をゼロにすることは不可能に近 いと考えましょう リコールに至るような不具合を取り除くまたは抑制することが先決です 製品のソフトウェアをドメイン分割し、コア資産を分離した後、コア資産の 信頼性を高めることが効果的です 作成したソフトウェアがユーザーニーズを満たしているかどうかを確認す ること(Validation:妥当性確認)とリスク分析の結果と対策を蓄積し、対 策をもれなく実施することが重要です
25.
©Yoshio Sakai 1. 高信頼性ソフトウェアの定義と必要性 2.
高信頼性ソフトウェア実現のフレームワーク 3. 日本のもの造りについて分析する 4.体系的な再利用によるソフトウェア信頼性向上の実践
26.
©Yoshio Sakai 過ちを犯しやすい人間の活動をコントロールする ソフトウェアの不具合を作り込 む原因は後にも先にも人間で す 高信頼性ソフトウェアを目指す には過ちを犯しやすい人間の活 動をコントロールする必要があ ります ソフトウェアの品質向上を目的 とした Activity
を“過ちを犯しや すい人間の活動をコントロール するという視点”で分類すると右 のようになります 人間の過ちを軽減する Activity (取り組み) 人間の介在を少なくする Activity (取り組み) プロセスの定義 MDD(モデル駆動開発) リスク分析 ソフトウェア資産の再利用 コーディングルールの定義 優れたアーキテクチャ フレームワークの採用 静的コードテスト メトリクス分析による指導 テスト・レビュー・インスペクション ソフトウェア資産の再利用 不具合・仕様変更データベースの整備 UMLによるシステム構造の階層化 不具合発生・対策曲線の分析
27.
©Yoshio Sakai 信頼性向上の Activity
Map 機能設計 詳細設計 単体テスト 結合テスト システムテスト プログラ ミ ング Verification 不良 入り込み分布 不良 摘出分布 Software Life Cycle Process 設計努力 摘出努力 User Requirements Software ProductSoftware Validation Design Validation Verification Verification 要求分析 UML 構造化分析 レビュー,インスペクション ユーザー要求の分析 品質機能展開 プロダクトリスク分析 コーディングルール コードインスペクション 静的コードテスト、メトリクス分析 テスト レビュー,インスペクション 統計分析 不具合データベース 不具合発生・対策曲線 各種テスト 内部設計 Verification 不具合を 作り込まない努力 プロセスで抑える 不具合を 摘出する努力 参考:保田 勝通 『ソフトウェア品質保証の考え方と実際』 p36 図 1.10 「不具合低減のための方針」 重要
28.
©Yoshio Sakai Drivers Real Time
OS Middle Ware 1 Middle Ware 2 Product User Requirements Design Validation Software Validation ApplicationSoftware ApplicationSoftware ApplicationSoftware Software Subsystem の結合 システムはサブシステム の集合体です 個々のサブシステムの信 頼性が高くなければ、シス テムに爆弾を埋め込むの と同じです システム全体の信頼性を 高めるには、個々のサブ システムの Verification(検証)とユー ザー要求に基づいた Validation(妥当性確認) を行うことが重要です サブシステムが高凝集、 疎結合の関係になってい る必要もあります Framework for high quality embedded software system
29.
©Yoshio Sakai Drivers Real Time
OS Middle Ware 2 Product User Requirements ApplicationSoftware ApplicationSoftware ApplicationSoftware COTSに爆弾が含まれていたら? COTS: Commercial Off-The-Shelf (商用で即利用可能なソフトウェア部品) Middle Ware 1 COTS (Black Box) Design Validation Software Validation COTS 製品に使うために購入した“商用で即利 用可能なソフトウェア部品”=COTSには、 爆弾が含まれていないとは限りません ブラックボックスのCOTSに含まれる爆 弾は、Software Validation や Design Validation によって取り除きます 具体的にはCOTSに対してブラックボッ クスで機能テストをしたり、サブシステム 同士の結合テストや製品の機能テストに よって爆弾を見つけます 見つけた爆弾はCOTSの供給者に取り 除いてもらうしかありません 社内で過去に作成した中身の分からな いサブシステムでも同じです 検証が十分に行われ市場で長い時間使 用されたサブシステムは再利用できます
30.
©Yoshio Sakai Product A User
Requirements SoftwareValidation Product B User Requirements SoftwareValidation Product C User Requirements Design Validation SoftwareValidation Support Process Product Line Education Core Asset Core Asset Core Asset Architecture Software Engineer Software Product Line と Engineer 製品群におけるコア 資産は製品群の価値 が凝縮された重要な サブシステムです コア資産の信頼性を 高めることが商品群 全体の信頼性を向上 させることにつながり ます 不具合を作り込むの は人間です エンジニアの教育は 不具合の元を断つこ とに直結しています Framework for high quality embedded software system
31.
©Yoshio Sakai
32.
©Yoshio Sakai 組織成熟度・視点別QA向上のためのActivity Map ※「要」は必要性を表す ※A,B,Cは要求レベルを表す ※◎○△は優先度を表す 開発プロセスの定義、Validation(妥当性確認)の 実施、エンジニアの教育はどのような組織、どの ようなプロジェクトにとっても必要です 組織成熟度レベルの低い組織は、不具合を摘出 する
Activity を強化します 組織成熟度レベルが高くなってきたら、不具合を 作り込まない Activity(要求仕様の分析技術の向 上) や支援プロセス(構成管理や不具合管理DB など)を整備します アーキテクチャの適用や体系的な再利用の推進 はパイロットプロジェクトを編成しノウハウをフィー ドバックするとよいでしょう Q A向上に必要な施策 さまざまな視点 開発プロセスの定義 Validationの実施 エンジニアの教育 不具合を作り込まないためのActivity 不具合を摘出するActivity 支援プロセスの整備 アーキテクチャの適用 再利用の推進 組織成熟度レベル1 要 要 要 C B C C C 組織成熟度レベル2 要 要 要 B B B B B 組織成熟度レベル3 要 要 要 A A A A A 組織から見た重要度 ◎ ◎ ◎ ○ ○ ◎ ○ ◎ プロジェクトから見た重要度 ○ ◎ ◎ ◎ ◎ ○ ◎ ◎ エンジニア個人から見た重要度 ○ ○ ◎ ◎ ◎ △ ○ ○
33.
©Yoshio Sakai コーディングルールを定めているか?
障害票データベースを持っているか? ソース管理システムを持っているか? 開発の節目節目でレビューを実施しているか? スケジュール表を常に更新しているか? 仕様書を作ってからプログラムを書き始めているか? プログラムを変更した後の回帰テストは実施しているか? 買える範囲で一番良い開発ツールを使っているか? OJT以外に技術者教育のカリキュラムを持っているか? テスト担当者はいるか? 1~4(レベル1)、 5~7(レベル2)、8~10(レベル3) 参考:ジョエル・テスト(The Joel Test: 12 Steps to Better Code) http://www.joelonsoftware.com/ まずはプロジェクトの成熟度を評価しましょう
34.
©Yoshio Sakai 0 1 2 3 不具合を作り込まない ためのActivity 不具合を摘出する Activity 支援プロセスの整備アーキテクチャの適用 再利用の推進 (プロダクトライン) 組織成熟度レベル3 組織成熟度レベル2 組織成熟度レベル1 組織成熟度と注力すべきActivityの関係 要求分析 UML 構造化分析 レビュー インスペクション コードインスペクション 静的コード解析 メトリクス分析 各種テスト 不具合データベース 構成管理
35.
©Yoshio Sakai ソフトウェアの規模によってもアプローチが異なります ソフトウェアの信頼性はかなりの部分人に依存しています 小規模システム(たとえば1万行以下) 優秀なメンバーの選出で製品の信頼性の大部分を確保できる 中規模システム(たとえば10万行以下) プロセスの定義やルールがないと信頼性をコントロールしきれない プロジェクト単位でのエンジニア教育 大規模システム(たとえば10万行以上) 組織的な教育システムが必要 プロセスの定義やルールの策定に加えて分業が必要 体系的なソフトウェアの再利用が必要 ただし組み込みシステムは単なるモジュールの組み合わせでは製品の要件(リ アルタイム性や資源の制約など)を満たせないことが多いので注意が必要
36.
©Yoshio Sakai CMMIと本プレゼンテーションの視点の違い - 比較項目
- CMMI 本プレゼンテーション アーキテクチャ 組み合わせ開発が前提 摺り合わせ開発を考慮 規模 組織全体に適用させる (大規模プロジェクト) チーム・個人にフォーカスをあてる (小・中規模プロジェクト) 設計手法 設計手法には踏み込んでいない 体系的再利用の設計手法を取り入れ ている 商品価値の視点 組織の成熟度向上が目的であり商 品価値には直接は結びつかない 商品の潜在的価値向上が目的 責任と権限 責任と権限が厳格である 責任と権限の曖昧さを許容する What/How あるべき姿を提示 (What) 具体的なActivityを提示 (How)
37.
©Yoshio Sakai
38.
©Yoshio Sakai 高信頼性ソフトウェア実現のアプローチの例 トップダウンアプローチ(Validation &
Verification) ユーザーニーズに適合しているかどうかを確認するために、 Validation チームのレベルを上げる 商品に要求される機能のうち重要度の高い基本要件に対しては網 羅性の高いテストを行う 過去に起こった不具合の対策が実施されていることを確認する TopDownBottomup Reuse ボトムアップアプローチ(コードスクリーニング) コーディングルールの策定 客観的にソースコードをスクリーニングして、引っかかったものをコード レビューする ソースコードはルールに従って作るという習慣づける 体系的再利用アプローチ(プロダクトライン) ソフトウェアをモジュール単位/サブシステム単位で再利用を推進し、 再利用資産をマネージメントする 再利用資産をブラックボックスにしないことがポイント コア資産のシミュレーション環境も再利用の対象とする DEMO
39.
©Yoshio Sakai Software Validation
の実施 Software Validation(妥当性確認) Validation は製品を開発するプロセスの中で、見落とされた真のユーザー ニーズや、安全性や信頼性に関わる危険性を摘出し対策するために役立ち ます Validation 実施グループ 組織成熟度の問題や開発期間が短いなどの理由で、信頼性向上の Activity を十分に実施できない場合は、Validation 実施グループを組織し、 Validation グループよるテストで不具合を摘出します これは、おそらくどんなプロジェクトでも経験的に実施していることですが、こ の方法が有効な理由は熟練したテスターがユーザービリティだけでなく、設 計者が想定しにくいユーザーの使用方法や誤用をシミュレーションすること ができるからです
40.
©Yoshio Sakai Validation 実施グループの簡易評価指標
Validationメンバーにユーザーが含まれている Validationメンバーに複数人のユーザーが含まれている Validationメンバーに製品が使われる場面をよく知っている開発メンバー が含まれている テスターがソフトウェア技術者である テスター経験5年以上のソフトウェア技術者である テスター経験10年以上のソフトウェア技術者である 製品のすべての機能を網羅した取り扱い説明書や機能仕様書がある テスターが製品を使ったランダムテストを実施した経験が3回以上ある 製品の入力に対して境界値を発生させる手段がある Software Validationを実施する期間が5日以上ある 評価点が4以下の場合は、Validation 実施グループを再編成する必要が あります
41.
©Yoshio Sakai Validation &
Verification 計画の簡易評価指標 すべてのソースコードを一定の基準でスクリーニングするようになって いるか(レガシーコードを除外する場合はその理由が明確であるか) 正常使用における機能テスト計画はあるか Validation 実施グループに製品が使われる場面をよく知っている開発 メンバーが含まれているか リスク対策の実施を確認する計画になっているか システムの入力に対する網羅性は分析されているか システムの入力に対する境界値テスト計画はあるか Validation 実施グループ、テスターの要件は満たされているか
42.
©Yoshio Sakai 組込みシステムに対するテスト設計のポイント 機能テスト(ファンクションテスト) 機能を階層表現する 機能(特にユーザーインターフェース)は変更されやすいので変更しやすいドローイングツールを使うとよい 機能仕様の他に、入力の範囲やエラー処理なども追記する 階層表現された機能に対するテスト仕様を作る このテスト仕様は基本的に正常な使われ方をしたときのテストとなる 回帰テスト(リグレッションテスト)は通常この機能テストを実施する 堅牢性テスト(ロバストネステスト) システムの異常や異常入力、範囲ギリギリの入力に対するテストを設計する 設計とテストの並行作業になることが多い 入力を再現することが難しいので、シミュレータなどが必要になる場合がある インプットコンビネーション 入力のコンビネーションは考慮する必要のある組み合わせと考慮する必要のない独立性の高いものとの区別を明確に する ユーザビリティテスト/ランダムテスト 製品の使用環境を熟知したテスターが製品の使い勝手や、使い方の組み合わせテストを行う このテストは設計されたテストではないが、テスターが技術力によっては最も不具合の摘出に効力を発揮する 不具合検出、対策曲線によりリリース判定を行うこともある
43.
©Yoshio Sakai 1. 高信頼性ソフトウェアの定義と必要性 2.
高信頼性ソフトウェア実現のフレームワーク 3. 日本のもの造りについて分析する 4.体系的な再利用によるソフトウェア信頼性向上の実践
44.
©Yoshio Sakai 日本のもの造り哲学(藤本隆宏著)から学ぶこと 東京大学COE ものづくり経営研究センター
センター長 藤本 隆宏氏 日本経済新聞社 1,600- 日本の製造業について長年技術管理論や生産管理論を専門に研究された 藤本先生がさまざまな企業の開発部門や工場を実地調査した経験にもとづ き、日本、アメリカ、ヨーロッパ、中国のもの造りの違いについて分析していま す ソフトウェアに特化した内容ではありませんが、欧米発のソフトウェア開発手 法をそのまま日本の組込みソフトウェア開発に取り入れることが必ずしもベス トではないことがわかります 日本のもの造りの強みについて理解し、欧米発のさまざまなソフトウェア開発 に関する手法を日本向けにテーラリングすることが重要です
45.
©Yoshio Sakai 機能と構造の関係 モジュラー型(例:パソコン・システム) パソコン プロジェクター プリンター 演算 映写 印刷 インテグラル型(例:自動車) 走行安定性 乗り心地 燃費 サスペンション ボディ エンジン モジュラー型は機能とサブシステム が一対一になっている インテグラル型は機能とサブシステ ムの関係が一対多で、機能とサブ システムが複雑に絡み合っている 参照 日本もの造り哲学(藤本隆宏著)
p125 図10 アーキテクチャとは何か
46.
©Yoshio Sakai アーキテクチャの基本タイプ クローズド・インテグラル型 自動車 オートバイ 薄型超小型家電 ゲームソフト 他 クローズド・モジュラー型 メインフレーム 工作機械 レゴ
他 オープン・モジュラー型 パソコン・システム パソコン本体 インターネット製品 自転車 他 モジュラー(組合せ)インテグラル(摺り合わせ) ク ロ ー ズ ド (囲 い 込 み ) オ ー プ ン (業 界 標 準 ) ※ 国 別 分 類 は あ く ま で も 参 考 で す 参考 日本もの造り哲学(藤本隆宏著) p132 図11 アーキテクチャの基本タイプ
47.
©Yoshio Sakai 組込み(摺り合わせ)とパソコン(組み合わせ)では世界が異なる Windows / Linux T-Engine 共通プラットフォームの世界 プラットフォームが共通にならない組込みの世界 人工衛星 医療機器 デジタルカメラ 腕時計 電子ポット 複合複写機携帯電話 組込みは同じ土俵で話しするのがむずかしい・・・ でも、高信頼性を求められているという点で共通性がある 自動車 カーナビ ソフトウェアに目を向けると・・・
48.
©Yoshio Sakai 組込みソフトウェアが市場とキーデバイスを結びつける 【顧客要素】 求められるサービス 潜在的な欲求 顕在的な要求 Market Software Key Device 【環境要素】 時代の流れ 流行 インフラストラクチャー 【アプリケーションソフト】 【制御ソフト】 【要求を実現するための キーデバイス】
49.
©Yoshio Sakai 組込みソフトは摺り合わせと組合せのバランスが重要 Hardware Hard ware Hard ware Hard ware Software 過去 (摺り合わせのみ) 現在 (摺り合わせ+組合せ) Hardware Hard ware Hard ware Hard ware Hardware Software Software Software Software Software ハードウェアは変形できないが、ソフトウェ アは変形して隙間を埋めることができる ソフトウェアの量が増えると開発工数が増え、 信頼性を確保することが難しくなくなる 摺り合わせ Hardware Hard ware Hard ware Hard ware Hardware Software Software SoftwareSoftware Software Software Software (Integral) 未来 (摺り合わせ+組合せのバランス) 組合せ
50.
©Yoshio Sakai オープン・モジュールは日本の強みにならない Software Software (Closed Module) Hardware Hard ware Hard ware Hardware Software (Open
Module) Software (Open Module) Software (Open Module) Software (Open Module) Hard ware Software (Integral) オープンモジュール のソフトウェアとそ の組合せ部分は商 品のオリジナルの 強みにはならない ノウハウとして外部に 流出させてはいけない 部分(Closed Integral の部分はもともと流失 しにくい) コア資産の組み合わせ 部は開発効率のために モジュール化すべきだ が、あくまでも Closed にしておく コア資産: コア資産は摺り合わせ 部と組み合わせ部両方 含まれるのが日本の強 い形
51.
©Yoshio Sakai ソフトウェア高信頼化技術の日本向けテーラリングとは? システムをモジュラー型のソフトウェアにすると、開発効率が上がり信頼性が向上する一方 で、CPUのパフォーマンスやメモリ資源をより多く消費してしまう場合があります その解決のためにCPUのランクを上げたり、多くのメモリを積むことで、バッテリの持ち時間 が減ったり商品の価格が高くなり顧客満足を下げてしまったのでは意味がありません 開発効率と信頼性、商品価値の維持・向上が背反する場合、最良の落としどころ(アーキテ クチャ)を選択できるのは、その商品が使われるシチュエーションを熟知していて、組込み システムのハードウェア的・ソフトウェア的制約条件を知っている組込みアーキテクトです。 その組込みアーキテクトはハード・ソフトの知識だけでなく、その商品群のドメインエキス パートである必要もあります なんでもかんでもモジュラー化するのではなく、市場を考慮したドメイン分析を行い、どこを 「クローズド・インテグラル」にし、どこを「クローズド・モジュラー」または「オープン・モジュ ラー」にするのかを切り分けることがもっとも重要です
52.
©Yoshio Sakai コアアセットをどこにするかが大事 Software Software (Closed Module) Hardware Hard ware Hard ware Hardware Software (Open
Module) Software (Open Module) Software (Open Module) Software (Open Module) Hard ware Software (Integral) 摺り合わせ部 コア資産: コア資産は摺り合わせ 部と組み合わせ部両方 含まれるのが日本の強 みを消さない 組み合わせ部
53.
©Yoshio Sakai Software SoftwareSoftware Software Software Software
Software プログラムの汚さはユーザーには直接見えません 制約条件 CPUパフォーマンス ROM/RAMの容量 リアルタイム性 開発期間 コスト スパゲッティプログラム きれいに機能分割された プログラム コア資産を抽出した プログラム どんなにきれいなプログラムでも制約条件をクリアできなければ商品としての価値はないのです 不具合がある確 率は高いが・・・ Software Software (Closed Module) Hardware Hard ware Hard ware Hardware Software (Open Module) Software (Open Module) Software (Open Module) Software (Open Module) Hard ware Software (Integral)
54.
©Yoshio Sakai 1. 高信頼性ソフトウェアの定義と必要性 2.
高信頼性ソフトウェア実現のフレームワーク 3. 日本のもの造りについて分析する 4.体系的な再利用によるソフトウェア信頼性向上の実践
55.
©Yoshio Sakai
56.
©Yoshio Sakai 1ch信号ノイズ除去装置商品群があったとします ノイズが重畳された信号成分からノイズを除去しUSB経由でパソコン等へデータを転送することができます 1chノイズ除去装置には小さなLCDの窓があり、入力信号とノイズが除去された後の信号を確認することが できます ノイズを除去するハイカットフィルタのカットオフ周波数はバリエーションがあり、これにより1chノイズ除去装 置の商品群が形成されています USB 信号ピックアッププローブ 入力信号 出力信号 信号確認窓
1ch Noise Rejecter
57.
©Yoshio Sakai 1ch信号ノイズ除去装置のドメイン構造図 dd ドメイン構造図 1ch
Noise Rejecter System RealTimeOS USBインターフェース ノイズフィルタ 信号入力 信号計測アプリケーション 波形表示 信号計測のコン トローラ ハードウェアに 依存するドメイン ハードウェアに 依存しないコア資産
58.
©Yoshio Sakai コア資産であるフィルタをシミュレーションする ノイズ除去装置のコア資産であるフィルタドメインを仮想システムで設計、確認します 確認の終わったフィルタドメインのソースをそのまま、実システムで使用します コア資産のシミュレーション環境を構築することは、コア資産の信頼性の検証の面でも重要です リアルシステム ハイカットフィルタ LCD DisplayA/D変換器 バーチャルシシステム ハイカットフィルタ ファイルから 取り込み パソコンのディスプレイ
59.
©Yoshio Sakai 仮想システムでフィルタの効果を確認する 要素技術としてフィルタを確認し、確認されたフィルタドメインをそのまま実システムに 使用する 要素技術の検討に使った仮想システムは、コア資産の検証環境として使用できる バーチャルシステム ハイカットフィルタA ファイルから 取り込み パソコンのディスプレイ ハイカットフィルタB 1Hz Sin
Wave + 10Hz Sin Wave DEMO
60.
©Yoshio Sakai 1HzのSin波に10Hzのノイズを重畳させる
61.
©Yoshio Sakai Filter A
と Filter B の効果を試してみる カットオフ 4.3Hz のハイカットフィルタカットオフ 8.4Hz のハイカットフィルタ 10Hzのノイズが十分に除去されていない 10Hzのノイズが十分に除去された
62.
©Yoshio Sakai 1ch信号ノイズ除去装置のドメイン構造図 dd ドメイン構造図 1ch
Noise Rejecter System RealTimeOS USBインターフェース ノイズフィルタ 信号入力 信号計測アプリケーション 波形表示 信号計測のコン トローラ ハードウェアに 依存するドメイン ハードウェアに 依存しないコア資産
63.
©Yoshio Sakai cd 実システムと仮想システムを共存させた例 信号計測アプリケーション::MeasureSignal +
MeasureSignal() + measureSignal() : void + activateHighCutFilter() : void + stopHighCutFilter() : void + stopMeasurement() : void + giveDataFileInformation() : void + getDelayTime() : unsigned short + getFastDataSet() : void + getSlowDataSet() : void + initializeMeasureSignal() : void + setBehaviorOnSystem() : void 信号入力::SignalProcessorOnSystem + <<pure>> getSignalData() : signed short + <<pure>> setDataInfomation() : void + <<pure>> initializeSystem() : void 信号入力:: SignalProcessorOnRealSystem + getSignalData() : signed short + setDataInfomation() : void + initializeSystem() : void 信号入力:: SignalProcessorOnVirtualSystem + BehaviorOnVirtualSystem() + getSignalData() : signed short + setDataInfomation() : void + initializeSystem() : void 信号入力:: SignalProcessorOnVirtualDemo + BehaviorOnVirtualDemo() + getSignalData() : signed short + setDataInfomation() : void + initializeSystem() : void ノイズフィルタ::HighCutFilter + <<pure>> doHighCutFilter() : signed short + <<pure>> getDelayTimeOfHighCutFilter() : unsigned short + <<pure>> initializeHighCutFilter() : void ノイズフィルタ::HighCutFilterTypeA + HighCutFilterTypeA() + doHighCutFilter() : signed short + getDelayTimeOfHighCutFilter() : unsigned short + initializeHighCutFilter() : void ノイズフィルタ::HighCutFilterTypeB + HighCutFilterTypeB() + doHighCutFilter() : signed short + getDelayTimeOfHighCutFilter() : unsigned short + initializeHighCutFilter() : void 1..*1 1..* 1 Template Method パターン Strategy パターン ファイルから 取り込み A/D変換器 デモ入力波形 実システムと仮想システム を共存させるクラス構成
64.
©Yoshio Sakai 1ch信号ノイズ除去装置の摺り合わせ部と組み合わせ部 Software (Closed Module) Hardware Hard ware Hard ware Hardware Software (Open
Module) Software (Open Module) Software (Open Module) Software (Open Module) Hard ware Software (Integral) 摺り合わせ部 ・信号入力部 組み合わせ部 ・ノイズフィルタ ・信号制御アプリ USB インターフェース A/D変換器 Real Time OS
65.
©Yoshio Sakai コア資産のシミュレーションテスト環境 ハードウェア OSの呼び出しを含む部分 (アクティブオブジェクト) ハードウェアの制御や OS機能の呼び出しを 含まない部分 オペレーティングシステム ハードウェアの制御を含む 部分 (ドライバ) テスト データ 出力 正解値 ハードウェアスタブ OSの呼び出しを含む部分 (アクティブオブジェクト) ハードウェアの制御や OS機能の呼び出しを 含まない部分 OSシミュレート機構 ハードウェアの制御を含む 部分 (ドライバ) 実機環境における ソフトウェアコア資産 シミュレーション環境における ソフトウェアコア資産 比較 検証 一部置き換え コア資産のシミュレーションテスト
66.
©Yoshio Sakai 日本の強みを活かしたドメイン構造の構築例 ハードウェアキーデバイスの存在を考慮し、その強みを消さないような摺り合わ せソフトウェア(ドライバ等)をドメインとして摘出します 商品のコア資産となるクローズド・モジュールのドメインを特定し、摺り合わせ部 分のドメインとの依存関係が最小になるようなインターフェースにします コア資産は、摺り合わせ部と組み合わせ部を合わせて、実システムと仮想システ ムの両方が可能になるようなドメイン構造にします デザインパターンを有効に利用し、パソコンの豊富なGUI環境を使ったシミュレー ションによる仮想システムを構築します コア資産を仮想システムで検証し、検証の終わったモジュールをそのまま実シス テムに実装できるようになります この仮想システムは、コア資産にさらなる付加価値を加えたときの、開発・検証 の環境としても利用できます
67.
©Yoshio Sakai 何に気を付ければ高信頼性ソフトウェアを実現できる? 組込みソフトウェア品質向上のために次の5つを是非実施し てください 人への依存を前向きにとらえる 技術者の教育に力を注ぐ エンジニアやプロジェクトの信頼性向上スキルを客観的に評価する 過ちを犯しやすいソフトウェアエンジニアの活動を制御する 過度な人への依存が起こらないような仕組みを組織が段階的に整 備し続ける
68.
©Yoshio Sakai 信頼性向上の Activity
Map 機能設計 詳細設計 単体テスト 結合テスト システムテスト プログラ ミ ング Verification 不良 入り込み分布 不良 摘出分布 Software Life Cycle Process 設計努力 摘出努力 User Requirements Software ProductSoftware Validation Design Validation Verification Verification 要求分析 UML 構造化分析 レビュー,インスペクション ユーザー要求の分析 品質機能展開 プロダクトリスク分析 コーディングルール コードインスペクション 静的コードテスト、メトリクス分析 テスト レビュー,インスペクション 統計分析 不具合データベース 不具合発生・対策曲線 各種テスト 内部設計 Verification 不具合を 作り込まない努力 プロセスで抑える 不具合を 摘出する努力 再掲
69.
©Yoshio Sakai 高信頼性ソフトウェアの実現には、ソフトウェアのモジュール化、サブシステム化が有効です 特に製品群の価値が凝縮されたコア資産を摘出しマネージメントすることが組込み製品の顕在的価値と潜在的価値を同 時に高めることに貢献します このときコア資産をブラックボックスにしないことが、コア資産の寿命を長くするためのポイントとなります 組み合わせだけのアーキテクチャでは、競争力の高い組込み製品を作ることはできません ユーザー要求が多様なユビキタスの時代に対応するにはオープン・モジューラー型のアーキテクチャが必要です しかし、システム全体をオープン・モジュラー型にしてしまっては日本の強みが消えてしまいます コア資産の中の摺り合わせ部と組み合わせ部を見極める必要があります 信頼性の高い組込みソフトウェアを実現させるにはバリデーション(妥当性確認)の技術が必要です バリデーションを確実なものにするには、正常使用に基づいた機能テストだけでは十分とは言えません 製品に求められている基本要件を分析し、その入力の全範囲、また範囲外のデータをインプットする環境をあらかじめ設 計しておく必要があります 高信頼性ソフトウェアの実現は、製品の潜在的価値を高めるだけでなく、品質が高いというブランドイメージを 顕在化させることに役立ちます 高信頼性ソフトウェアのフレームワーク構築が成功すれは,エンジニアは日々の仕事に追われる余裕のない悪循環の状 況から脱し、クリエイティブな商品の構想を考える余裕を生み出すことが可能となり、より競争力の高い商品を作り出せる 好循環の状況にパラダイムシフトすることができます
70.
©Yoshio Sakai Appendix A 参考書籍 ソフトウェアプロダクトライン Pail
Clements, Linda Northrop(著), 前田卓雄(訳) 日刊工業新聞社 藤本 隆宏:日本のもの造り哲学,日本経済新聞社 (2004). 組み込みUML 渡辺 博之 (著), 堀松 和人 (著), 渡辺 政彦 (著), 渡守部 和記 (著) 翔泳社
71.
©Yoshio Sakai Appendix B 酒井
由夫:人間の考え方,コンピュータの考え方, Software People,vol.4,pp.112-120,技術評論社 (2004). 酒井 由夫:組込みソフトウェア品質向上のためのActivity Mapping JaSST’05: Japan Symposium on Software Testing 2005 (2005). 保田 勝通:ソフトウェア品質保証の考え方と実際,日科技連 (1995) CMMI モデル-公式日本語翻訳版 http://www.sei.cmu.edu/cmmi/translations/japanese/models/index.html (2004). SESSAME:組込みソフトウェア管理者・技術者育成研究会(SESSAME) http://www.sessame.jp/ General Principles of Software Validation, Final Guidance for Industry and FDA Staff 3.1.2 Verification and Validation http://www.fda.gov/cdrh/comp/guidance/938.html 酒井 由夫:組み込み商品群におけるソフトウェアの妥当性確認 JaSST’04: Japan Symposium on Software Testing 2004 (2004). 酒井 由夫, 今関 剛他:具体例で学ぶ組み込みソフトの再利用技術 Interface,2003年12月号,pp. 67-137, CQ出版社 (2003).
Download now