2013年度ソフトウェア工学分野の先導的研究支援事業 抽象化に基づいた UML設計の検証支援ツールの開発 公立大学法人岡山県立大学 情報工学部 情報システム工学科 横川 智教 Circuit Design Engineering Lab. - Okayama Prefectural University 背景 - 組込みソフトウェア開発の課題 組込みソフトウェアの開発プロセス 要求分析 設計 実装 テスト 手戻り 下流工程での不具合の検出 上流工程への手戻りの発生 手戻りによる開発コスト増大 設計検証の必要性の高まり 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 2 Circuit Design Engineering Lab. - Okayama Prefectural University 背景 - 組込みソフトウェアの設計検証 設計ドキュメント 要求仕様 どの状態にも いつか必ず到達する 危険な状態には 決して到達しない ある変数が定められた 値に必ず到達する UML(状態マシン図) ・・・ 作成された設計ドキュメントが 要求仕様を満たしているか? 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 3 Circuit Design Engineering Lab. - Okayama Prefectural University 背景 - 設計検証の困難さ 従来の枠組み(テスト・レビュー)で組込みソフトウェアの 設計検証を行うのは非常に困難である 理由 1. 組込みソフトウェアの不具合が社会に及ぼす影響が 甚大であり,信頼性への要求のハードルが非常に高 い 2. ソフトウェアの大規模・複雑化により,システムの 取り得る状態数が人手でテストを行う限界を遙かに 越えている 網羅的かつ自動検証が可能なモデル検査技術の利用 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 4 Circuit Design Engineering Lab. - Okayama Prefectural University モデル検査 モデル検査とは 状態遷移系でモデル化されたシステムの全数探索により 求める特性を満たすか否かを自動検証する技術 モデル検査の適用 1. モデル化言語により検査対象システム(仕様書・設計 書・回路図 etc.)を記述 2. 論理式として検査項目(要求仕様・試験仕様・基本性 質・客先要望 etc.)を記述 3. モデル検査ツールによる自動探索の実施 4. モデルが検査項目を満たすという証明か,満たさない場 合は反例を出力 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 5 Circuit Design Engineering Lab. - Okayama Prefectural University 研究課題 モデル検査を設計検証に導入する上での問題点 問題1.モデル作成の困難さ 対象システムを検証ツール固有のモデル化言語で記述 モデル作成には専門的な知識やノウハウが必要 問題2.状態爆発の危険性 モデル化された対象システムの状態空間を網羅的探索 モデル規模によっては検証に莫大な時間を要する モデル作成を支援するためのツールを開発し問題を解決 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 6 Circuit Design Engineering Lab. - Okayama Prefectural University 検証支援ツール 前提 1. 対象とする設計記法として,組込みソフトウェア開発に 広く利用されている形式仕様記法UMLを想定する 2. モデル検査ツールとして,モデル記述言語の表現力およ び検証速度に優れたNuSMVを利用する ツールの機能 1. SMV言語への自動変換を目的としたUML図の抽象化 2. モデルサイズ削減を目的としたUML図の抽出・分割およ び抽象化 3. UML図からSMV言語への自動変換 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 7 Circuit Design Engineering Lab. - Okayama Prefectural University 検証支援ツールの概要 要求仕様 (*.ctl) UML図 (*.asta) 入 力 イ ン タ フ ェ ー ス 仕様 テンプレート 要求仕様 記述制約 UML図 UMLモデリングツール astah* 抽 象 化 ・ 変 換 モ ジ ュ ー ル 検証モデル (*.smv) 検証結果 (*.out) モデル検査ツール NuSMV 出 力 イ ン タ フ ェ ー ス 検証結果 (整形済) (*.result) 違反箇所 情報 (*.ce) 検証支援ツール 外部ツール UML図の記述にはastah*を,検証にはNuSMVを用いる UML図が満たすべき記述制約と,要求仕様を記述するため の仕様テンプレートが定められている 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 8 Circuit Design Engineering Lab. - Okayama Prefectural University SMV言語による検証モデル生成の流れ MODULE main VAR XXX : {aaa, bbb, ccc}; YYY : {ddd, eee, fff}; fg1 : boolean; モデル生成 状態マシン図 モデル init(YYY) := ddd; next(YYY) := case fg = FALSE : fff TRUE : YYY; esac; シーケンス図 UML図ファイル(*.asta) safe(xxx = 1) live(message_1) reachable(S) 要求仕様ファイル(*.ctl) 2014/05/22 ASSIGN init(XXX) := aaa; next(XXX) := case fg = TRUE : bbb; TRUE : XXX; esac; CTL式 生成 init(fg) := FALSE; next(fg) := case fg = FALSE : {TRUE, FALSE}; TRUE : fg; esac; SPEC AG !(XXX = ccc) SPEC EF(ZZZ = iii) SPEC AF(YYY = fff) CTL式 検証モデルファイル(*.smv) 第2回産学連携のためのソフトウェアシンポジウム 9 Circuit Design Engineering Lab. - Okayama Prefectural University 事例適用による評価 経緯 – 某ソフトウェア開発企業に事例提供を打診 – 開発に用いた状態遷移表からUML図(状態マシン図) を作成 – 対象システムは店舗従業員向けの「商品供給指示シ ステム」 › 売場の端末と商品管理室のモニターの間で,商品供給の ための通信を行う 検査項目 – 検査1:仕様テンプレートを用いた基本特性の検査 – 検査2:事例提供元より要望のあった特性の検査 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 10 Circuit Design Engineering Lab. - Okayama Prefectural University 検査対象となるUML図 端末が2台の場合の状態遷移表とモニターの表示方法を 元に状態マシン図を作成したものを提供いただいた 端末A モニター 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 端末B UML図ファイル R_CDS.asta 11 Circuit Design Engineering Lab. - Okayama Prefectural University 検査1 仕様テンプレートを用いて以下の検査を行った • • • • 端末状態の到達可能性 通信モード(使用回線数)の到達可能性 通信モードの安全性 商品管理室のモニターの到達可能性 検査項目 状態の到達可能性 テンプレート reachable(s) 式 reachable(Terminal_A = send) reachable(Terminal_A = receive) reachable(Terminal_A = com) reachable(Terminal_B = send) reachable(Terminal_B = receive) reachable(Terminal_B = com) 通信モードの到達可能性 reachable(x,a) reachable(MD_A, 1) reachable(MD_A, 2) reachable(MD_B, 1) reachable(MD_B, 2) 通信モードの安全性 safe(x,a) safe(MD_A, 3) safe(MD_A, -1) 要求仕様 ファイル BASIC.ctl safe(MD_B, 3) safe(MD_B, -1) モニターの到達可能性 2014/05/22 reachable(s) reachable(Ctl_Monitor = surplus) reachable(Ctl_Monitor = sufficient) reachable(Ctl_Monitor = optimal) reachable(Ctl_Monitor = few) reachable(Ctl_Monitor = short) 第2回産学連携のためのソフトウェアシンポジウム 12 Circuit Design Engineering Lab. - Okayama Prefectural University 本ツールの適用結果(検査1) R_CDS.asta BASIC.ctl 本ツールを用いて SMVファイルを生成 R_CDS_BASIC.smv モデル検査器 NuSMVで検査 R_CDS_BASIC.out 検査結果の 整形 (001) EF Terminal_A = send is true (002) EF Terminal_A = receive is true (003) EF Terminal_A = com is true (004) EF Terminal_B = send is true (005) EF Terminal_B = receive is true (006) EF Terminal_B = com is true (007) EF MD_A = 1 is true (008) EF MD_A = 2 is true (009) EF MD_B = 1 is true (010) EF MD_B = 2 is true (011) AG !(MD_A = 3) is true (012) AG !(MD_A = -1) is true (013) AG !(MD_B = 3) is true (014) AG !(MD_B = -1) is true (015) EF Ctl_Monitor = surplus is true (016) EF Ctl_Monitor = sufficient is true (017) EF Ctl_Monitor = optimal is true (018) EF Ctl_Monitor = few is true (019) EF Ctl_Monitor = short is true R_CDS_BASIC.result R_CDS_BASIC.result 全ての結果がTRUE 2014/05/22 誤りは存在しない 第2回産学連携のためのソフトウェアシンポジウム 13 Circuit Design Engineering Lab. - Okayama Prefectural University 検査2 事例提供元より要望があり,以下の検査を行った 1. 2. 3. 端末が待機状態であり,かつ通信モードが通話無しでない状 態への到達可能性 端末が着信中状態であり,かつ通信モードが二話中である状 態への到達可能性 端末が通話中であり,かつ通信モードが通話無しである状態 への到達可能性 1A: SPEC !EF(Terminal_A = wait & !(MD_A = 0)) 2A: SPEC !EF(Terminal_A = receive & MD_A = 2) 2A: SPEC !EF(Terminal_A = com & MD_A = 0) 1B: SPEC !EF(Terminal_B = wait & !(MD_B = 0)) 2B: SPEC !EF(Terminal_B = receive & MD_B = 2) 3B: SPEC !EF(Terminal_B = com & MD_B = 0) 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 要求仕様ファイル R_CDS_REQ.ctl 14 Circuit Design Engineering Lab. - Okayama Prefectural University 本ツールの適用結果(検査2) R_CDS.asta R_CDS_REQ.ctl R_CDS_REQ.smv 同様にファイル生成し検証した結果, 誤りを検出し反例(R_CDS_REQ.ce)を出力 (001) !(EF (Terminal_A = wait & !(MD_A = 0))) is true (002) !(EF (Terminal_A = receive & MD_A = 2)) is true (003) !(EF (Terminal_A = com & MD_A = 0)) is false … R_CDS_REQ.result(一部) R_CDS_REQ.out R_CDS_REQ.result R_CDS_REQ.ce (003) !(EF (Terminal_A = com & MD_A = 0)) is false -> State: 1.1 <Terminal_A = initial MD_A = 0 Power = start Event_A = emp … R_CDS_REQ.ce(一部) 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 15 Circuit Design Engineering Lab. - Okayama Prefectural University 本ツールの適用結果(検査2) 特性3Aに対する反例の解析 1 2 3 4 5 Event_A emp emp report response emp MD_A 0 0 0 0 0 Terminal_A initial initial wait send com 端末が通信中(Terminal_A=com)であるにもかかわらず, 通信モードが通話無し(MD_A=0)となる状態に到達している 状態遷移表のアクションの1つが UML図に正しく転記されていなかった • UML図による設計の誤りを正しく検出できた • 反例を元に誤り箇所を特定することができた 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 16 Circuit Design Engineering Lab. - Okayama Prefectural University 研究成果の産業界への寄与 本ツールが果たす役割 • 組込みソフトウェア開発における設計検証のサポート • UML設計記述からモデル検査ツールの入力モデルへの 変換の大部分を自動化 • ツールによって得られた結果を整形して表示 • 抽象化により高速化な検証を実現 組込みソフトウェア開発の設計検証に対する モデル検査技術の導入促進 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 17 Circuit Design Engineering Lab. - Okayama Prefectural University 研究成果の産業界への寄与 本ツールを導入するメリット • 開発コストの削減 • 自動検証の実現により人的・時間的なコストを削減 • ソフトウェア信頼性の担保 • 証明されたアルゴリズムを利用することで,結果に ついては完全に保証可能 導入にあたって必要なこと • 開発環境 • UMLを用いた設計 • astah* communityの利用 2014/05/22 第2回産学連携のためのソフトウェアシンポジウム 18 Circuit Design Engineering Lab. - Okayama Prefectural University
© Copyright 2024 ExpyDoc