70
201699日 講演会 SWEBOKSWEBOKの全体、お、 つなが 時代の&品質 鷲崎 弘宜 しざき 鷲崎 弘宜 早稲田大学 早稲田大学 研究所 Twitter: @Hiro_Washi [email protected] http://www.washi.cs.waseda.ac.jp/ http://www.washi.cs.waseda.ac.jp/

SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質

Embed Size (px)

Citation preview

2016年9月9日 講演会

SWEBOKにみるソフトウェアエンジニSWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながるアリングの全体、および、 つながる

時代のソフトウェアモデリング&品質

鷲崎 弘宜わしざき ひろのり

鷲崎 弘宜早稲田大学早稲田大学

グローバルソフトウェアエンジニアリング研究所

Twitter: @Hiro_Washi [email protected]

http://www.washi.cs.waseda.ac.jp/http://www.washi.cs.waseda.ac.jp/

• 早稲田大学グローバルソフトウェアエンジニアリング研究所所ェアエンジニアリング研究所所長・教授長・教授

• 国立情報学研究所客員教授

• 株式会社 システム情報 社外取締役締役

• ISO/IEC/JTC1/SC7/WG20 • ISO/IEC/JTC1/SC7/WG20

Convenor

• SEMAT Japan Chapter Chair• SEMAT Japan Chapter Chair

• IEEE CS Japan Chapter Secretary• IEEE CS Japan Chapter Secretary

• IEEE ICST 2017 PC Co-ChairIEEE ICST 2017 PC Co-Chair

2

目次目次

• SWEBOKに見る広がり

• IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦

• ソフトウェアモデ リング技術• ソフトウェアモデ リング技術

• ソフトウェア品質技術• ソフトウェア品質技術

• まとめ

3

エンジニアリンエンジニアリングとは科学にグとは科学に裏打ちされた裏打ちされた技術活動、学問体系

4

ソフトウェアエンジニアリングとはソフトウェアエンジニアリングとは

the application of a systematic, disciplined,

quantifiable approach to the development, quantifiable approach to the development,

operation, and maintenance of software; that operation, and maintenance of software; that

is, the application of engineering to software)

SWEBOK v3.0SWEBOK v3.0

5

我々のソフトウェ我々のソフトウェア技術活動は、ア技術活動は、正統なエンジニ正統なエンジニアリングか?アリングか?

6

正統なエンジニアリング

職業人が果たす判断,職業人が果たす判断,行為,助言が,社会で実質的な価値を形成実質的な価値を形成

コミュニティで妥当と確コミュニティで妥当と確認される知識が科学的基盤に基づく

知識・適格性の妥当性をコミュニティで性をコミュニティで判定できる環境

7松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010.Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982.

知識の島々知識の島々

知識 プロフェッショナリズム知識 プロフェッショナリズム

ベストプラクティベストプラクティスに裏打ちされた能力れた能力

経験、ガイド

知識の島々

同値分割 経験、ガイドカバレッジ

同値分割

インスペクションUML

Java, C# アジャイル直交表

参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Java, C# アジャイル

8

9

活動

To Do Doing Done

活動

プラクティス、プラクティス、パターンと手法

知識の体系

SWEBOK

SQuBOK知識の体系 SQuBOK

・・・

知識の島々

・・・

知識の島々10

知識体系 Body Of Knowledge知識体系 Body Of Knowledge

BOK ガイド妥当と認められ

た知識群を整

BOK ガイド 知識体系へのガイド

た知識群を整理・構造化し ・・・カテゴリ 知識領域の大分類

(BOKによっては無し)理・構造化した全体

・・・知識領域

(BOKによっては無し)

知識の技術・プロセス

専門領域の定

・・・知識領域

トピック

上の分類

専門領域の定義づけ

トピック(知識項目)

最小の知識単位(技術・プロセス知識)

文献文献

(技術・プロセス知識)

知識の詳細記述・実体文献 知識の詳細記述・実体

11

組織組織

ビジネ

BA

BO

K

ビジネス

PM

BO

K

BA

BO

K

システム

PM

BO

K

BA

BO

K RE

BO

K

SE

BO

K ム

PM

BO

K

RE

BO

K

SE

BO

K

SW

EB

OK

ソフト

SW

EB

OK

SQ

uB

OK

ソフトウェア

SW

EB

OK

SQ

uB

OK

SQ

uB

OK

12

Guide to the Software Engineering Body of Knowledge(SWEBOK)(SWEBOK)

SQuBOKガイド• 背景

– IEEE CS/ACM, Software Engineering Coordinating Committee

SQuBOK

知識領域 ・・・ ・・・

Coordinating Committee

– 1998年開始、2001年 Trial v0.7, v1.0, 2004年 v2004、2014年 v3.0 知識領域 ・・・ ・・・v2004 2014 v3.0

– ISO/IEC JTC1/SC7/WG20 におけるTR化ISO/IEC TR 19759:2005 (v2004)

– http://www.swebok.org/– http://www.swebok.org/

• 目的– 世界中への一貫性ある見解の普及推進、

他分野との境界

トピックトピック

–他分野との境界

– 内容の性格付け、知識体系へのアクセスの促し

推薦書籍– カリキュラムおよび技術者認証 CSDA, CSDP の基礎

• 対象読者

推薦書籍推薦論文国際規格など• 対象読者

– ソフトウェアエンジニアリングの実務家、研究者、学習者

– 特に、大学卒業後4年以上の実務経験者

国際規格など

– 特に、大学卒業後4年以上の実務経験者が有すべき知識体系 13

SWEBOK 2004: 10の知識領域(KA: Knowledge Area)+8個の関連分野: コンピュータエンジニアリング、コンピュータサイエンス、マネジメント、数学、

要求 設計 構築 テスティング 保守テスティングの基礎

+8個の関連分野: コンピュータエンジニアリング、コンピュータサイエンス、マネジメント、数学、プロジェクトマネジメント、品質マネジメント、ソフトウェア人間工学、システムエンジニアリング

要求の基礎的概念 設計の基礎的概念テスティングの基礎的概念

保守の基礎的概念

要求エンジニアリングプロセス

設計における主要な問題

テストレベル

構造とアーキテク保守プロセス

構築の基礎的概念

要求の抽出構造とアーキテクチャ

テスト技法

要求分析 設計品質の分析評価

保守プロセス

テストに関した計量尺度

構築の管理保守における主要な課題

要求仕様 設計のための表記

要求の妥当性確認設計戦略および手法 実践上の考慮事項 保守のための技法テストプロセス

尺度構築の管理

課題

実践上の考慮事項設計戦略および手法 実践上の考慮事項 保守のための技法テストプロセス

構成管理 マネジメント プロセス ツールおよび手法 品質SCMプロセスのマネジ プロセス実現および変SCMプロセスのマネジメント

開始と範囲定義プロセス実現および変更

構成の識別 プロジェクト計画 プロセス定義品質の基礎的概念

ツール

構成制御 プロジェクト実施

構成状態記録および報告

レビューおよび評価プロセスアセスメント マネジメントプロセス

構成監査 終結

リリース管理および配布

計量

開発手法プロセス計量 実践上の考慮事項 14

SWEBOK V3 (2014): 15の知識領域

要求 構築設計 テスティング 保守要求 構築設計 テスティング 保守要求の基礎要求プロセス

設計の基礎設計の主要問題

構築の基礎構築の管理

テストの基礎テストレベル

保守の基礎保守の主要問題

要求抽出要求分析要求仕様要求妥当性確認

構造とアーキテクチャユーザインタフェース設計設計品質の分析評価設計の表記

実践上の考慮事項構築技法構築ツール

テスト技法テスト関連計量尺度テストプロセステストツール

保守プロセス保守技法保守ツール

マネジメント プロセス構成管理 モデル・手法

要求妥当性確認実践上の考慮事項

設計の表記設計戦略・手法設計ツール

テストツール

マネジメント プロセス構成管理 モデル・手法 品質SCMプロセスのマネジメント

開始と範囲定義プロジェクト計画

プロセス定義ライフサイクル

モデリングモデル種別

品質の基礎品質マネジメントプジメント

構成の識別構成制御構成状態記録・報告構成監査

プロジェクト計画プロジェクト実施レビュー・評価終結

ライフサイクルプロセス査定・改善計量プロセスツール

モデル種別モデルの分析開発手法

品質マネジメントプロセス実践上の考慮事項品質ツール

経済プロフェッショナル

構成監査リリース管理・配布構成管理ツール

計量マネジメントツール

プロセスツール

計算基礎 数学基礎エンジニアリング

経済プロフェッショナル

実践

プロフェッショナリズム集団ダイナミクス・心理

経済の基礎ライフサイクル経済

計算基礎 数学基礎エンジニアリング

基礎

15

集団ダイナミクス・心理コミュニケーションスキル

ライフサイクル経済リスク・不確実性経済分析手法実践上の考慮事項

組織組織

ビジネビジネス

PM

BO

K

BA

BO

K

システ

PM

BO

K

BA

BO

K RE

BO

K

SE

BO

K ム

PM

BO

K

RE

BO

K

SE

BO

K

SW

EB

OK

SW

EB

OK

V3

ソフト

SW

EB

OK

SQ

uB

OK

SW

EB

OK

V3

ソフトウェア

SW

EB

OK

SQ

uB

OK

SW

EB

OK

V3

計算、数学、エンジニアリング

SQ

uB

OK

プロフェッショナリズム

計算、数学、エンジニアリング

16

V3改訂に見るソフトウェアエンジニアリングの傾向• プロフェッショナリズムの重要性の高まり• プロフェッショナリズムの重要性の高まり

– 倫理、法令、技術者認定、コミュニケーション– 倫理、法令、技術者認定、コミュニケーション

• ソフトウェアの外への拡大– ビジネス、経済– ビジネス、経済

– 計算、数学、エンジニアリング

• 深化や定着• 深化や定着– 各種ツール・自動化– 各種ツール・自動化

– モデリング: モデリングの原則、表記、種別、分析

– 構築技法: テンプレート、契約による設計、MDA– 構築技法: テンプレート、契約による設計、MDA

– テスト技法: モデルベース、ペアワイズ、テスト駆動

• 新たな品質特性• 新たな品質特性– ユーザビリティ: UI設計、インタラクションテスティング– ユーザビリティ: UI設計、インタラクションテスティング

– セーフティ: Airborne Systems and Equipment Certification17

目次目次

• SWEBOKに見る広がり

• IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦

• ソフトウェアモデ リング技術• ソフトウェアモデ リング技術

• ソフトウェア品質技術• ソフトウェア品質技術

• まとめ

18

IoT/CPSの時代• Internet of Things

– 物理世界にあるモノのインターネットによる接続– 物理世界にあるモノのインターネットによる接続

– IoEへ: データ・情報、生体の接続

• Cyber Physical System

– 物理世界の情報とサイバー世界の情報の融合– 物理世界の情報とサイバー世界の情報の融合

• 効率化、新ビジネス・価値の創発

Cloud

19岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.

IoT/CPS時代の課題IoT/CPS時代の課題

• 社会やビジネスとの接続• 社会やビジネスとの接続– バリューをどう創発するか?

• 物理世界との接続– ギャップは?(連続/離散、(非)同期)– ギャップは?(連続/離散、(非)同期)

• ヘテロな構成– 異領域やライフサイクルをどう扱うか?– 異領域やライフサイクルをどう扱うか?

• 不確実な未来– 変化を予測できるか?対応できるか?– 変化を予測できるか?対応できるか?

• 品質、特にセキュリティ&セーフティ&プライバシライバシ– リスクの増大、全体を保証できるか?

20

岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013.P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

ISO/IEC 9126-1:2001利用時の品質利用時の品質

Quality in use

有効性 生産性 安全性 満足性有効性

Effectiveness

生産性

Productivity

安全性

Safety

満足性

Satisfaction

内部品質・外部品質内部品質・外部品質

Internal and external quality

機能性 信頼性 使用性 効率性 保守性 移植性機能性

Functionality

信頼性

Reliability

使用性

Usability

効率性

Efficiency

保守性

Maintainability

移植性

Portabilitybility

Suitability Maturity Understandability Time behavior Analyzability Adaptability

Accurateness Fault tolerance Learnability Resource Changeabilit InstallabilityAccurateness Fault tolerance Learnability Resource behavior

Changeability

Installability

Interoperability Recoverability Operability Compliance Stability Co-existenceexistence

Security Compliance Attractiveness Testability Replaceability

21

y

Compliance Compliance Compliance Compliance

ISO/IEC 9126-1:2001,Software engineering−Product quality−Part 1: Quality model

ISO/IEC 25010:2011利用時の品質

ISO/IEC 25010:2011 Systems and software engineering-Systems and software Quality Requirements and Evaluation (SQuaRE) -System and software quality models

ISO/IEC 25010:2011Quality in use

有効性

Effectivenes

効率性

Efficiency

リスク回避性

Freedom from risk

満足性

Satisfaction

利用状況網羅性

Context coverageEffectiveness

Efficiency Freedom from risk Satisfaction Context coverage

内部品質・外部品質

Internal and external qualityInternal and external quality

機能

適合性

Functional

互換性

Compatibility

セキュリティ

Security

信頼性

Reliability

使用性

Usability

性能効率性

Performance efficiency

保守性

Maintainability

移植性

PortabilityFunctional

suitability

y Security efficiency y

Functional completen

Co-existence

Confidentiality

Maturity Appropriateness recognisability

Time-behavior

Analysability Adaptabilitycompleten

essexistence ality recognisability behavior lity

Functional correctne

Interoperability

Integrity Fault tolerance

Learnability Resource utilization

Modifiability Installabilitycorrectne

sslity tolerance utilization lity

Functional appropriat

Non-repudiation

Recoverability

Operability Capacity Reusability Replaceabilityappropriat

enessrepudiation ility bility

Accountability

Availability

User error protection

Testability

Authenticit UI aesthetics Modularity

22

Authenticity

UI aesthetics Modularity

Accessibility

IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性

参照アーキテクチャ社会やビジネスとの接続

物理世界との接続知識ベース、ガイドライン

エコシステム

バリューや物理世界

物理世界との接続

ヘテロな構成

エコシステム

バリューや物理世界を含むモデリング

ヘテロな構成

予測と適応的不確実な未来

データと機械学習によ品質、特にセキュリティ&

適応的追跡・回復

データと機械学習による品質保証の改善

セーフティ&プライバシ

23

岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013.P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

目次目次

• SWEBOKに見る広がり

• IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦

• ソフトウェアモデ リング技術• ソフトウェアモデ リング技術

• ソフトウェア品質技術• ソフトウェア品質技術

• まとめ

24

IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性

参照アーキテクチャ社会やビジネスとの接続

物理世界との接続知識ベース、ガイドライン

エコシステム

バリューや物理世界

物理世界との接続

ヘテロな構成

エコシステム

バリューや物理世界を含むモデリング

ヘテロな構成

予測と適応的不確実な未来

データと機械学習によ品質、特にセキュリティ&

適応的追跡・回復

データと機械学習による品質保証の改善

セーフティ&プライバシ

25

岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013.P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

モデルとはモデルとは

「現実世界の何か」に対する「認知上の目的」のためのコスト上効率的な「代用物」のためのコスト上効率的な「代用物」

メタモデル

~に従う

システム モデル~の表現

~に従う

システム モデル

28日高宗一郎, Jean BEZIVIN, 胡振江, Frederic JOUAULT, 『モデル駆動工学の原理と応用』(1) モデル駆動工学の歴史と背景, コンピュータソフトウェア, 30(3), 2013

プログラミングからモデリングへ29プログラミングからモデリングへ• 「どう動かすのか」から「何をしたいのか」へ• 品質の早期の作り込みと検証• 品質の早期の作り込みと検証• コミュニケーション

抽象度 要求要求

モデル

プログラム

アセンブラアセンブラ

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

MOVADD…MOVADD…

updateObserver(Subject s, Observer o);updateObserver(Subject s, Observer o);

ハード/システム

時代

31

モデリングの成熟度Lv0: モデルなし

– 口頭伝達、その場しのぎの修正

モデリングの成熟度

– 口頭伝達、その場しのぎの修正

Lv1: 文書のみ– あいまい、主観がそのまま– あいまい、主観がそのまま

Lv2: 文書+図– 理解しやすい– 理解しやすい

Lv3: 図+文書Lv3: – 主観が客観に

Lv4: 精密な図+文書Lv4: 精密な図+文書– コードとの自動接続

Lv5: 図のみ

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

public abstract aspect ObserverProtocol {

protected interface Subject { }

protected interface Observer { }

 protected abstract pointcut

  subjectChange(Subject s);

after(Subject s): subjectChange(s) {

Iterator iter = getObservers(s).iterator();

while(iter.hasNext())

updateObserver(s,(Observer)iter.next()); }

protected abstract void

updateObserver(Subject s, Observer o);

Lv5: 図のみ– MDDが目指す未来

参考: ヨシュヴァルメル他: UML/MDAのためのオブジェクト制約言語OCL,エスアイビーアクセス, 2004

32

モデル駆動開発とは• モデル変換• モデル変換

– モデルに付加情報を加えて、異なる視点のモデルや

飛行船とは・・・基地局とは・・・

出発地

目的地

WP1

WP2

出発地

目的地

WP1

WP2て、異なる視点のモデルやコードを得る

– 視点の設定、モデルの記回転の指示が CIM

– 視点の設定、モデルの記述・操作の重要性

– 関心事の分離

回転の指示があると・・・

PIM– 関心事の分離• Computation Independent

• Platform Independent

PIM

• Platform Independent

• Platform Specific

• モデル駆動開発(MDD)

プロトコルXXXに従い16bitデータYYYを受信し

PM

CPU, モータ,• モデル駆動開発(MDD)– 分析・設計情報をモデルと

して表現

YYYを受信し CPU, モータ,OS, 言語・・・

して表現– モデル変換の繰り返し

– 可搬性、再利用性、相互class Ship{void move()

PSM

– 可搬性、再利用性、相互運用性向上

x = y + 1;

コード

周辺領域との関係周辺領域との関係

• ドメイン特化言語(Domain-Specific Language; DSL)– 特定の問題領域(ドメイン)用の開発言語– 特定の問題領域(ドメイン)用の開発言語

– MDDにおけるモデリング言語として

• ドメイン駆動設計(Domain-Driven-Design; DDD)• ドメイン駆動設計(Domain-Driven-Design; DDD)– ドメインモデル中心の考え方

– MDDがパターン・実現方法の一つ– MDDがパターン・実現方法の一つ

• プロダクトラインエンジニアリング(Product-Line Engineering; PLE)Engineering; PLE)

– 共通資産を再利用した組織的・戦略的なプロダクト系列開発・管理開発・管理

– MDDが実現方法の一つ

33

モデル駆動IoT開発の例 [Patel]

•• 関心事の分離

– ドメイン– ドメイン

– 機能

– 配備– 配備

– プラットフォーム– プラットフォーム

34P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

モデル駆動IoT開発の例(つづき) [Patel]

• モデル変換• モデル変換とコード生成

– 関心事ごと– 関心事ごとのDSL

– マッピング– マッピングとリンク

35

P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

参照アーキテクチャに向けて: セキュリティ&プライバシメタモデルセキュリティ&プライバシメタモデル

• 情報科学国際交流財団 SSRフォーラム プロジェクト ’15-’16• 情報科学国際交流財団 SSRフォーラム プロジェクト ’15-’16• クラウドサービス開発運用におけるメタモデル

クラウド要求

Bridge

(ブリッジ)知識ベース アーキテクチャ

新規 分析評価

Problem

(問題)

( )

Solution

(解決)Target

知識ベース

パターン

プラクティス

事例

アーキテクチャ

Target

(対象)Application

(アプリケーション)

Infrastructure

(インフラ)メタモデル

Platform

(プラットフォーム)

36H. Washizaki, “A Metamodel for Security and Privacy Knowledge in Cloud Services,” Proceedings of the 12th IEEE World Congress on Services (IEEE SERVICES 2016)

メタモデルに基づく知識活用の例contents = Protecting the confidentiality of personal information

: PrivacyGoal

: PrivacyPolicy

untrustedOnlineService : Attacker (Miss User) Register user profile (Server) : UseCaseTrustedProvider : CloudServiceRegister user profile (client) : UseCase : User

1: connectSecurely(target)1.1: connectSecurely(target)()

メタモデルに基づく知識活用の例

contents = Ensuring persons' privacy and specifically preventing unauthorized access to their personal information

Name = Encryption of the personal information of the user prior to storing it with, or transferring it through an online service

: PrivacyPattern

contents = Generating a strong encryption key

: Guideline: CloudService

個人情報が盗聴されてしまう : Vulnerability

TrustedCloudServiceProvider : Organization (Provider)

connection

2.1: connection.transfer(encryptedPersonalInformation)2.1.1: connection.transfer(encryptedPersonalInformation)

2.1.1.1: decrypt(encryptedPersonalInformation)()

2: input(personalInformation)

2.1.1.1.1: business logic()

name = Register user profile

: UseCase

authority = Share user

: User

: PersonalInformation

codeTemplate = ...contents = Generating a strong encryption key

codeSnippet = /* Code for Generating a strong encryption key */

: CodingRule

authority = user with no login

untrustedOnlineService : Attacker (Miss User)

authority = user with no login

untrusted3rdParty : Attacker (Miss User)

Encryption : Function

Manage(Protect) name = Unauthorized access to personal information

: MisUseCase

access:プライバシゴール

構造 振る舞い:プライバシポリシ

ユーザ管理キーでユーザ管理キーで暗号化:パターン

暗号化キー生成:暗号化キー生成:ガイドライン盗聴: 脆弱性 暗号化:パターン ガイドライン

キー コード断片: キー コード断片:

盗聴: 脆弱性

規約キー コード断片: コーディング規約:クラウドサービス :プロバイダ

:ミスユース37暗号化:機能 :個人情報

:ミスユースケース

:攻撃者

ゴールやバリューとの接続 GQM+Strateges

顧客満足度10%向上 顧客満足度調査OG. 上位

M. メトリクス

顧客満足度10%向上 顧客満足度調査OG. 上位組織目標

製品の信頼性 製品の使いやS. 戦略 を改善する すさを改善するS. 戦略

不具合指摘を20%削減

不具合データOG. 下位

M. メトリクス

20%削減不具合データ

プログラムの複雑さ

OG. 下位組織目標

テスト効率 保守性をS. 戦略

38

テスト効率を改善する

保守性を改善する

S. 戦略

参考: Jens Heidrich, Adam Trendowicz, “測定を基にした、ソフトウェア戦略とビジネス目標の整合” IPA/SEC資料

事例: 新規事業の組織目標、根拠、戦略の整合

39

目次目次

• SWEBOKに見る広がり

• IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦

• ソフトウェアモデ リング技術• ソフトウェアモデ リング技術

• ソフトウェア品質技術• ソフトウェア品質技術

• まとめ

40

IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性

参照アーキテクチャ社会やビジネスとの接続

物理世界との接続知識ベース、ガイドライン

エコシステム

バリューや物理世界

物理世界との接続

ヘテロな構成

エコシステム

バリューや物理世界を含むモデリング

ヘテロな構成

予測と適応的不確実な未来

データと機械学習によ品質、特にセキュリティ&

適応的追跡・回復

データと機械学習による品質保証の改善

セーフティ&プライバシ

41

岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013.P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.

SWEBOK V3 (2014)における品質SWEBOK V3 (2014)

• 「ソフトウェア品質はソフトウェアエンジニアリングのいたるところにかかわる問題」たるところにかかわる問題」

• ソフトウェア品質KA+他の全てのKA

ソフトウェア品質

ソフトウェア品質の基礎的概念

ソフトウェア品質マネジメント

実践上の考慮事項

ソフトウェア品質

の基礎的概念マネジメント

プロセス事項

ソフトウェアエンジニ ソフトウェア品質保証 ソフトウェア品質要求

ア品質ツール

ソフトウェアエンジニアリング文化・倫理

品質の価値・コスト

ソフトウェア品質保証

検証・妥当性確認

ソフトウェア品質要求

欠陥の特徴づけ

ソフトウェア品質マ品質の価値・コスト

モデル・品質特性

品質改善

レビュー・監査 ソフトウェア品質マネジメント技法

ソフトウェア品質計量(測定)品質改善 ソフトウェア品質計量(測定)

42ソフトウェアセーフティー

SWEBOKに見る品質保証の技術SWEBOKに見る品質保証の技術

• テスティング

– 基礎、テストレベル、技法、計量尺度、プロセス、– 基礎、テストレベル、技法、計量尺度、プロセス、ツール

• 品質

– 品質の基礎、品質マネジメントプロセス、実践上– 品質の基礎、品質マネジメントプロセス、実践上の考慮事項、品質ツール

• エンジニアリング基礎

– 実証手法・実験的技法、統計分析、計量(測定)、– 実証手法・実験的技法、統計分析、計量(測定)、根本原因分析

43

テスト技術ロードマップ

Fault Fault

localization

44A. Bertolino, “Software Testing Research: Achievements, Challenges, Dreams,” FoSE, ICSE 2007.

Fault (Bug) Localization

Testcase (a, b)

P(All), F(All) : N. passed or failed tests

P(s), F(s) : N. tests going through s

(3,2

)

(4,4

)

(0,1

)

(a, b)class Max{

int max(int a, Risk(s) = %F(s)

%P(s) + %F(s)

P(s), F(s) : N. tests going through s

(3,2

)

(4,4

)

(0,1

)

✔✔ ✔

int max(int a,int b){

int max=0; P(s) F(s) %P(s) %F(s) Risk

1 2 1.0 1.0 0.5

%P(s) + %F(s)

✔✔

✔✔✔

✔✔

int max=0;if(b<a)

max=a;

1 2 1.0 1.0 0.5

1 2 1.0 1.0 0.5

✔✔

✔✔ ✔

max=a;if(a<=b)

max=6;

1 0 1.0 0.0 0.0

1 2 1.0 1.0 0.5✔✔✔

✔✔return max;

}0 2 0.0 1.0 1.0

1 2 1.0 1.0 0.5

P FF}Visualization for Fault Localization. James A. Jones, Mary Jean Harrold, and John Stasko. Proceedings of the Workshop on Software Visualization, 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, May 2001

45

Software Visualization, 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, May 2001http://pleuma.cc.gatech.edu/aristotle/Tools/tarantula/Susumu Tokumoto, Kazunori Sakamoto, Kiyofumi Shimojo, Tadahiro Uehara and Hironori Washizaki, “Semi-automatic Incompatibility Localization for Re-engineered Industrial Software,” Proceedings of the 7th IEEE International Conference on Software Testing, Verification and Validation (ICST 2014)

Evaluation in a Company• Target: C language, Tarantula • Target: C language, Tarantula

as the suspiciousness formula89% bugs in

All bugs in

25% code

67% bugs in

89% bugs in

top 10% code

25% code

67% bugs in

top 5% code

Frequency

Frequency

Frequency

Code [%]

Frequency Code [%]

Bug [%]

46

ソフトウェア品質とメトリクス• 測定の方法と尺度• 測定の方法と尺度

– ソフトウェア品質: 使用時に必要性を満たす能力を決定– ソフトウェア品質: 使用時に必要性を満たす能力を決定する属性(測定可能な特徴)全体 [ISO25000]

– 成功率 31% → 定量的評価導入 46% [矢口08]– 成功率 31% → 定量的評価導入 46% [矢口08]

• 落とし穴: ホーソン効果、不確実な未来ファンクション

ポイント凝集度結合度

複雑度コード行数

欠陥密度 消化数

機能仕様書

ポイント

モジュール設計

結合度

ソースコード

コード行数

欠陥票テストケース

要求設計 実装 テスト

仕様書 設計 コード欠陥票

ケース

定義設計 実装 テスト

47[矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008.

工数、期間

コツ「ゴール指向のメトリクス定義」コツ「ゴール指向のメトリクス定義」

• Goal-Question-Metric(GQM)パラダイム• Goal-Question-Metric(GQM)パラダイム

I. 解釈(評価基準)

G. 目標 達成評価(評価基準)

Q. 質問 答え

M. メトリクス

Q. 質問 答え

測定値M. メトリクス

測定対象(データ)

測定値

測定対象(データ)

48楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012.

リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009.

V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)

コツ「横に広げて多面的に見る」コツ「横に広げて多面的に見る」

保守性保守性

G. 目標

モジュール性 再利用性 修正性 ・・・

処理が複雑すぎないか?

処理が構造化されているか?

・・・Q. 質問すぎないか? されているか?

Q. 質問

コールグラフ階層の深さ

サイクロマティック複雑度

関数内の戻り点の数

・・・ ・・・M. メトリクス階層の深さ ィック複雑度 戻り点の数

…… ……… …

…… ……… …対象

49

鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25

[Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html

…… … …… …対象

事例: 測定による保守性・機能性評価・改善

50H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14

事例: 開発中の(動的な)欠陥予測

予測欠陥数の変動欠陥数と予測モデル

不確定性時間変化

K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14

0.215

0.2

0.3

0.05

0.1

0.15

0.2

5

10

-0.1

0

0.1

0.2

0.15

0.1

0.05

0

-10

-5

00 0.5 1

-0.4

-0.3

-0.2

-0.1

0.25

0.2

0.15

-15

-10

-0.5

-0.4

52

K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14

コツ「仮定の明示とシステム改善」コツ「仮定の明示とシステム改善」

G. 変更されやすい

計画箇所を特定できている

A. するモA. あちこちと依存するモ

測定改善

A. するモジュールは されやすいA. あちこちと依存するモ

ジュールは変更されやすい

測定改善Q. モジュールの依存関係はどの程度か?

評価

関係はどの程度か?

評価M. 呼び出し先モジュール数

M. 呼び出し元モジュール数

53

N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral

事例: 機械学習によるメトリクス・システム改善事例: 機械学習によるメトリクス・システム改善300

△ OK, ○ NG300

実行

行数 NG△ OK, ○ NG

150

M. 実

行行

OK

10 25

M. 関数の数

M. OK

M. 関数の数

実行

行数

実行

行数

NG71

M. 実

行行

OK

NG

54M. 関数の数

M.

N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral

SWEBOKに見る工程共通品質技術SWEBOKに見る工程共通品質技術

• モデル・手法

– モデリング、モデル種別、モデルの分析、開発手– モデリング、モデル種別、モデルの分析、開発手法

• エンジニアリング基礎

– 統計分析、モデリング・シミュレーション・プロトタ– 統計分析、モデリング・シミュレーション・プロトタイピング・・・

55

window.onload = setEventHandler;function setEventHandler() {

$(“reg_type”).onchange = calcPrice;$(“reg_type”).onchange = calcPrice;・・・$(“reg_addcart”).onclick = addCart;

};function calcPrice() { ・・・ };function addCart () {function addCart () {

if(isValidInput()) {reqRunTrans();

} else {alert(“Invalid user inputs”);

}}};function reqRunTrans() {

new Ajax.Request(“runTrans.php”, {method: “GET”, parameters: getParams(), onSuccess : succeeded });onSuccess : succeeded });

};function succeeded() { disableAll();

Nov.

14,

201

56

jumpToConfirm();}; [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden,

“Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013

状態のモデル化と形式検証 [Maezawa13][Maezawa13]

二重注文二重注文

Nov.

14,

201

[Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013

window.onload = setEventHandler;function setEventHandler() {

$(“reg_type”).onchange = calcPrice;$(“reg_type”).onchange = calcPrice;・・・$(“reg_addcart”).onclick = addCart;

};function calcPrice() { ・・・ };function addCart () {function addCart () {

if(isValidInput()) {$(“addCart”).disabled = true;reqRunTrans();

} else {alert(“Invalid user inputs”); alert(“Invalid user inputs”); $(“addCart”).disabled = false;

}};function reqRunTrans() {

new Ajax.Request (“runTrans.php”, {new Ajax.Request (“runTrans.php”, {method: “GET”, parameters: getParams(), onSuccess: succeeded }); };

Nov.

14,

201

58

function succeeded() { disableAll();jumpToConfirm(); }; [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden,

“Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013

SWEBOKに見る工程個別品質作り込み技SWEBOKに見る工程個別品質作り込み技術・上流

• 要求• 要求

– 要求の基礎、要求プロセス、要求抽出、要求分– 要求の基礎、要求プロセス、要求抽出、要求分析、要求仕様、要求妥当性確認、実践上の考慮事項事項

• 設計

– 設計の基礎、設計の主要問題、構造とアーキテクチャ、ユーザインタフェース設計、設計品質のクチャ、ユーザインタフェース設計、設計品質の分析評価、設計の表記、設計戦略・手法、設計ツールール

59

リダイレクトシステム開発の例 [繁在家08]リダイレクトシステム開発の例 [繁在家08]

• 要求• 要求

品質要求を明確化できるか? リダイレクトリダイレクトきるか?

– シナリオ

リダイレクトシステム

リダイレクトシステム

– シナリオ

– ゴール指向分析

• 設計

品質を着実に組み入品質を着実に組み入れられるか?

–– パターン

– 品質駆動設計・評価– 品質駆動設計・評価

[繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008.

60

要求: 品質シナリオ要求: 品質シナリオ環境

成果物

環境

刺激 応答

応答測定法

刺激源刺激 応答

A7(環境)通常稼働時に(環境)通常稼働時に(刺激)リダイレクト情報に変更があった場合(応答)運用を止めずに反映できる。

A1(環境)通常稼働時に(刺激)JMeterで高負荷をかけた場合(刺激)JMeterで高負荷をかけた場合(応答)HTTPリクエストを秒間1000トランザクション処理できる。

[繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008.

61

要求: ゴール指向分析品質特性群品質特性群

PC/携帯リダイレクト処理

ができる

効率性保守性 ISO9126の観点

時間資源変更性試験性

使用性

運用性 副特性

PC/携帯リダイレクト処理

ができる

効率性保守性 ISO9126の観点

時間資源変更性試験性

使用性

運用性 副特性

AND

効率性効率性試験性運用性 副特性

ゴールモデル高いスループットが得ら

平均レスポンスタイムが諸元値を

CPU利用率が諸元値以

デバッグ作業及び試験が容易に実施

運用状況及びリダイレクト情報の変更の確認が容

A1 A2A3A5A7

A9 AND

効率性効率性試験性運用性 副特性

ゴールモデル高いスループットが得ら

平均レスポンスタイムが諸元値を

CPU利用率が諸元値以

デバッグ作業及び試験が容易に実施

運用状況及びリダイレクト情報の変更の確認が容

A1 A2A3A5A7

A9

PCと携帯を リダイレクト

マイルストーン分割

れること 満たすこと下であること容易に実施できること

変更の確認が容易に行えること

リダイレクト情報を容易に変更できること

A6A8 リダイレクト処理をリダイレクト情報 PCと携帯を リダイレクト

マイルストーン分割

れること 満たすこと下であること容易に実施できること

変更の確認が容易に行えること

リダイレクト情報を容易に変更できること

A6A8 リダイレクト処理をリダイレクト情報 PCと携帯を

判別するリダイレクト

種別を判別する

AND

APSの再起動なし マイルストーン

リダイレクト処理を実行する

ログを

リダイレクト情報を取得する

PCと携帯を判別する

リダイレクト種別を判別する

AND

APSの再起動なし マイルストーン

リダイレクト処理を実行する

ログを

リダイレクト情報を取得する

ファイルを読み込む

APSの再起動なしにリダイレクト情報の変更が反映される

責任モデルキャッシュに

情報を保持する

マイルストーン分割

ログを出力する

AND事例分割

ファイルを読み込む

APSの再起動なしにリダイレクト情報の変更が反映される

責任モデルキャッシュに

情報を保持する

マイルストーン分割

ログを出力する

AND事例分割

ログの出力を実行する

ログデータを提供する

AND

ログの出力を実行する

ログデータを提供する

ANDANDAND

ロギングモジュール

PC/携帯判定モジュール

リダイレクト情報ファイル読込モジュール

URLパラメータ判定モジュール

リダイレクト実行モジュール

ロギングモジュール

PC/携帯判定モジュール

リダイレクト情報ファイル読込モジュール

URLパラメータ判定モジュール

リダイレクト実行モジュール

[繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008.

62

設計: パターンと品質駆動設計設計: パターンと品質駆動設計

環境

成果物

環境

刺激 応答

応答測定法実現手法

刺激源成果物

刺激 応答

アーキテクチャパターンアーキテクチャパターン

定義ファイル動的読込み

多重化・負荷分散

A7. リダイレクト情報の

動的読込み 負荷分散

A7. リダイレクト情報の変更を停止無しで反映

A1. HTTPリクエストを秒間A1. HTTPリクエストを秒間1000トランザクション処理

[繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008.

63

ノード負荷分散

FW分散

システム・基盤

クラスタ

アプリケーション

UIレイヤ

アプリケーション

レイヤ

PC/携帯判定

URLパラメータ判定

リダイレクト実行

リダイレクト情報ファイル読込

ロギング アスペクト型ロギング

定義ファイル動的読込み

リダイレクト情報ファイル

的読込み[繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008.

64

SWEBOKに見る工程個別品質作り込み技術・下流術・下流

• 構築• 構築

– 構築の基礎、構築の管理、実践上の考慮事項、構築技法、構築ツール構築技法、構築ツール

• 保守•– 保守の基礎、保守の主要問題、保守プロセス、

保守技法、保守ツール保守技法、保守ツール

• 構成管理– SCMプロセスのマネジメント(継続的統合 CI)、構– SCMプロセスのマネジメント(継続的統合 CI)、構

成制御、・・・

• 計算基礎– ネットワーク通信の基本(クラウド)、・・・– ネットワーク通信の基本(クラウド)、・・・

65

開発と運用にみる次の”ABCD” [青山14]開発と運用にみる次の”ABCD” [青山14]

継続的統合CI

タスク・チケット駆動開発など

A. アジャイル D. DevOps

タスク・チケット駆動開発など

A. アジャイル D. DevOps

プラットフォームプラットフォームフィードバック

C. クラウドB. ビッグデータモニタリングデータ解析

[青山14] 青山幹雄,次世代ソフトウェア工学への展望: A(gile), B(ig Data), C(loud), D(evOps)が提起する機会と課題, 情報処理学会ウィンターワークショップ2014・イン・大洗

66

SWEBOKに見る専門的品質特性のSWEBOKに見る専門的品質特性の品質技術

• 設計

– ユーザインタフェース設計– ユーザインタフェース設計

• 品質• 品質

– 品質の基礎(ソフトウェアセーフティー)

• 計算基礎

– セキュア開発・保守(要求セキュリティ、設計セキ– セキュア開発・保守(要求セキュリティ、設計セキュリティ・・・)

67

例えばセキュリティパターン [Shiroma10]例えばセキュリティパターン [Shiroma10]

要求 設計 実装要求 設計 実装

脅威は? 構造は? コードは?脅威は?対策は?

構造は? コードは?

認可パターンSubjectid

ProtectionObjectid認可パターン

問題: 認可の構造が資源と独立・・・解決: 資源にアクセスしようとする・・・ Right

namename

* *

解決: 資源にアクセスしようとする・・・ Right

accessType

checkRight()checkRight()

[Shiroma10] Y. Shiroma, H. Washizaki, et al., “Model-Driven Security Patterns Application and Validation,” PLoP 2010 T. Kobashi, N. Yoshioka, H. Kaiya, H. Washizaki, Y. Fukazawa, “Validating Security Design Pattern Applications Using Model Testing,” ARES2013

68

目次目次

• SWEBOKに見る広がり

• IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦

• ソフトウェアモデ リング技術• ソフトウェアモデ リング技術

• ソフトウェア品質技術• ソフトウェア品質技術

• まとめ

69

取り上げた技術のSWEBOK上のつながり

要求 構築設計 テスティング 保守要求 構築設計 テスティング 保守要求の基礎要求プロセス

設計の基礎設計の主要問題

構築の基礎構築の管理

テストの基礎テストレベル

保守の基礎保守の主要問題

要求抽出要求分析要求仕様要求妥当性確認

構造とアーキテクチャユーザインタフェース設計設計品質の分析評価設計の表記

実践上の考慮事項構築技法構築ツール

テスト技法テスト関連計量尺度テストプロセステストツール

保守プロセス保守技法保守ツール

•シナリオ

マネジメント プロセス構成管理 モデル・手法

要求妥当性確認実践上の考慮事項

設計の表記設計戦略・手法設計ツール

テストツール•シナリオ•ゴール指向分析 •品質駆動設計・評価

•パターン

マネジメント プロセス構成管理 モデル・手法 品質SCMプロセスのマネジメント

開始と範囲定義プロジェクト計画

プロセス定義ライフサイクル

モデリングモデル種別

品質の基礎品質マネジメントプジメント

構成の識別構成制御構成状態記録・報告構成監査

プロジェクト計画プロジェクト実施レビュー・評価終結

ライフサイクルプロセスアセスメント・改善プロセス計量

モデル種別モデルの分析開発手法

品質マネジメントプロセス実践上の考慮事項品質ツール

UML

MDD

プロフェッショナル

構成監査リリース管理・配布構成管理ツール

計量マネジメントツール

プロセスツール

エンジニアリング

MDD

形式検証継続的統合

経済プロフェッショナル

実践

プロフェッショナリズム集団ダイナミクス・心理

経済の基礎ライフサイクル経済

計算基礎 数学基礎エンジニアリング

基礎

クラウド

70

集団ダイナミクス・心理コミュニケーションスキル

ライフサイクル経済リスク・不確実性経済分析手法実践上の考慮事項

セキュリティパターン

クラウド

まとめ

• 共通基盤上でより良く、早く、幸せに• 共通基盤上でより良く、早く、幸せに

– 知識体系上での知識の整理、深耕、拡大

–– 知識の組み立て、パターン・プラクティス・手法化

– プロフェッショナリズム– プロフェッショナリズム

• IoT/CPS時代の課題と挑戦

– 参照アーキテクチャ

– モデリング技術と品質保証技術– モデリング技術と品質保証技術

– 予測と適応

71

10th IEEE International Conference on Software Testing, Verification and Validation

IPSJ International AI Programming Contest

samuraicoding.infoMar 13-18 (due Sep 2016)aster.or.jp/conference/icst2017/aster.or.jp/conference/icst2017/

72

Trace-Any (‘16-’20 under review)

Trace in all directions Reliable trace

by transitive and by transitive and

interactive recovery

Req. JavaScript

Cloud

ER, UML SysML, UML Java

Cloud

Modularize and

Reuse, change

managementmanagementExtractionVerification

77SimulinkGoal models C