• 検索結果がありません。

組み込みソフトウェア開発技術:3.組み込みソフトの検証技術

N/A
N/A
Protected

Academic year: 2021

シェア "組み込みソフトウェア開発技術:3.組み込みソフトの検証技術"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)特集 組み込みソフトウェア開発技術. 3. 組み込みソフトウェアの モデル検査技術入門 中島 震 情報・システム研究機構 国立情報学研究所/ 科学技術振興機構 さきがけ. システムの不具合を開発の上流工程で早期に発見するための設計検証技術に関心が集まっている.組み込みソフトウェアは,並行 性,リアクティブ性,活性といった 3 つの特徴を持ち,状態遷移の考え方で表現することが多い.有限の状態遷移システムを対象と するモデル検査の考え方に基づく検証の方法を紹介する.. ソフトウェアの形式検証. 組み込みソフトウェアの特徴.  システムの不具合を,開発の上流工程で,早期に発見 するための設計検証技術に関心が集まっている. 1). . 従来.  組み込みソフトウェアは多様であり,特徴を一言で 4). 述べることは難しい .共通するのは,実世界と相互作. は,原子力発電所の制御,航空管制,自動運航制御など,. 用することであり,その結果,実世界が持つ特徴を引き. その不具合が社会的な問題となるため,開発に大きなコ. 継ぐ .. ストをかけることが許される高信頼システムへの適用が.  組み込みソフトウェアは装置と一体化して作動する.. 主であった.一方,ハードウェアの分野では形式手法が. ハードウェア(センサ)を通して外界の情報を捉え,外. 実用化されているといってよい.実際,汎用 CPU は大量. 界の変化に呼応して自身の動作を変化させ,また外界に. 販売され,多様なシステムの中核部を構成するため不具. 働きかける.すなわち,制御不能な外界の情報を扱うと. 合の影響範囲が広い.企業の立場からは,不具合を置き. いうオープン性がある.同時に,外界の時間経過に対処. 換えるリコールコストや和解金が大きな負担となる.そ. するため,入力と出力を結ぶ変換処理としてソフトウェ. のため,形式手法が信頼性の高い CPU を市場に出すため. アを捉えるだけでは不十分である.処理にかかる時間や. の必須技術となっている.. 処理の進行過程を明示的に扱う必要がある..  組み込みソフトウェアは装置と一体化して作動すると.  組み込みソフトウェアのデザイン表現を考えるため. いう特徴を持つ.一般の利用者は組み込みソフトウェア. に,計算の仕組みの観点から整理すると,並行性,リア. を使っているという意識がないことが多い.身の回りで. クティブ性,活性(liveness)という 3 つの特徴が浮かび. 数えあげることすら難しいが,組み込みソフトウェアは. 上がる.. きわめて幅広く存在する.先に高信頼ソフトウェアの例.  第 1 に,実世界では,通常,複数の事象が同時に発生. として挙げた自動運航制御からはじまり,プリンタや携. する.複数事象を処理するためには,並行性を持たねば. 帯電話のような利用者向けシステムまである.利用者向. ならない.第 2 に,外部からの事象に対応して,何らか. けシステムは,大量販売・大量消費されるため,不具合. の処理を起こすリアクティブ性を持つ必要がある.同じ. の置き換え,すなわち,リコールコストが大きいと考え. 事象であっても,システムの状態に依存して処理が異な. られる.汎用 CPU と同様な性格を持ち,高い信頼性を持. る.第 3 に,外界で発生した,個々の事象に対する計算. たねばならない.最近,実用的な組み込みソフトウェア. 結果の正しさだけでは不十分である.全体処理が常に進. の検証に科学的な基礎に立つ形式手法を適用する試みが. 行し,発生事象に適切に呼応した処理を行う活性を満た. 2). 5). 活発化している .. さねばならない..  本稿では,形式手法の基本技術の 1 つであるモデル検.  このような点から,当該ソフトウェアの特徴をよく表. 3). 査の考え方 を,組み込みソフトウェアのデザイン検証. す計算モデルとして,状態遷移の考え方を採用すること. への応用を念頭において紹介する.. が多い.UML で動的な振る舞い記述に用いている状態遷. 690. 45 巻 7 号 情報処理 2004 年 7 月.

(2) 3. 組み込みソフトウェアのモデル検査技術入門. ������. ������. ����. ������. �������. �. �. �. �. �. �. ������. �. �������. ����������. 図 -1 プロセス構成. ������. ������. �. �. ����. ������. �. �. � ������. 移ダイアグラムあるいは Statecharts を考えればよい.状 ����������. 態遷移モデルを基本として,適切な通信機構を導入した チャネル通信オートマトンやプロセス代数の考え方でデ ザインを表現する.. ������. ������. �. �. モデル検査の技術. �. � ������. ������. �����������. �����������.  モデル検査は,対象を有限の状態空間で表現できるシ ステムに限定し,状態空間の網羅的な探索を行うことで. 図 -2 状態遷移モデル. 不具合を発見する技術である.. ●簡単な例. RESOURCE はプリンタとスキャナを表すプロセスで,.  簡単な並行システムの例を用いて基本的な考え方を紹. 初期状態において獲得 (get) 待ちとなり,その後,解. 6). 介する .. 放 (put) だけを受け取る.解放されると初期状態に戻.  図 -1 に示すように,2 つの利用者 P と Q とが,2 つの資. る.P プロセスはプリンタ,ついで,スキャナを獲得し,. 源 Printer と Scanner を使う状況を考える.利用者は. copy 動作を行った後,順に 2 つの資源を解放する.Q プ. スキャナから読み込んだデータをプリンタにコピー出力. ロセスはスキャナを先に獲得する点だけが P と異なる.. する.この作業を行うためには Printer と Scanner の. 図 -2 に状態遷移モデルでの表現を示した.. 2 つの資源を同時に必要とする.資源を獲得した利用者.  ||ZENTAI1 は,以上 4 つのプロセスを並行合成した. が作業を完了して解放するまで,もう一方は待たされる.. システム全体を表す.図 -3(a)がシステム全体の状態遷.  ところが,資源獲得の順序によっては,互いに相手の. 移記述である.状態 1 から開始したシステムは状態 8 に. 作業完了待ちのデッドロックに陥ることが容易に分か. 至ると出力遷移がないため,これ以降動作を続けること. る.すなわち,P が Printer を獲得し,Q が Scanner を. ができない.状態 8 がデッドロックになる.. 獲得すると,双方とも作業を進めることができない.こ.  図 -3(a)の状態空間を調べると,初期状態 1 からはじ. の問題をモデル検査の方法で見つけることを考える.. まり,デッドロック状態 8 に至る遷移系列は次の 2 つが.  第 1 に,対象となる問題を抽象化して本質だけを抜き. あることが分かる.. 出す.利用者と資源がやりとりする情報として,獲得と 解放だけを考えればよい.以下,この問題を仕様記述言 7). p.pr.get -> q.sc.get ->. 語 FSP を用いて表現する.. q.sc.get -> p.pr.get ->. RESOURCE=(get->put->RESOURCE) .. すなわち,この 2 つの遷移系列がシステムをデッドロッ. P=(pr.get->sc.get->copy->pr.put->sc.put->P) .. クに導くシナリオとなる. モデル検査ツール LTSA を用. Q=(sc.get->pr.get->copy->pr.put->sc.put->Q) .. いると,上記の FSP 記述をもとに自動的に不具合シナリ 7). オを求めることができる . ||ZENTAI1=(p:P||q:Q||(p,q)::pr:RESOURCE ||(p,q)::sc:RESOURCE) ..   次 に,Q の 記 述 を 変 更 し,プ リ ン タ の 後 に ス キ ャ ナ を 獲 得 す る Q2 と す る.こ の 時 の シ ス テ ム 全 体 は ||ZENTAI2 として定義することができ,また,その挙 IPSJ Magazine Vol.45 No.7 July 2004. 691.

(3) 特集 組み込みソフトウェア開発技術. ��������. ��������. �������� ��������. �. �. �. �. �. �. �. �. �. ��. ��. �. ��. ��. ��������. ��������. ������������. �������� �������� ��������. ��������. �. �. �. �. �. �. �. ��������. �. �������� ��������. �����������. 図 -3 全体構成.  ツール(開発機関).  特徴.  現状.  SMV(CMU).  CTL のモデル検査,BDD による高速化.  改版終了?(後継は Cadence SMV).  NuSMV(ITC & CMU).  CTL/LTL, 有界モデル検査  .  公開(SMV の後継).  SPIN(Bell 研).  オートマトンベース Promela.  v4.0 公開.  LTSA(ICL).  プロセス代数 FSP.  公開(発展中) .  CWB(Edingburgh U.).  プロセス代数 CCS, µ- 計算.  Concurrency Factory に発展.  FDR(Oxford U.).  プロセス代数 CSP.  以前は商用. 表 -1 モデル検査ツール. 動は図 -3(b) になる..  モデル検査の技術に対する素朴な見方の 1 つは,前に 述べた例題のように,システム全体を表す有限の状態空. Q2=(pr.get->sc.get->copy->pr.put->sc.put->Q2) .. 間を網羅的に探索し,デッドロックなどの不具合を示す 状態の有無を調べることである.特に,これを安全性の. ||ZENTAI2=(p:P||q:Q2||(p,q)::pr:RESOURCE ||(p,q)::sc:RESOURCE) .. 解析と呼ぶ.どのような状況を不具合とするかは対象問 題依存であるが,先の例では,遷移先を持たない状態を 不具合とした.また,性質を時相論理の式で表現するこ 3). 図 -3(b)から分かるように,システムはデッドロックの. とも多い .実際,モデル検査という用語は時相論理式. ない意図通りの振る舞いを示す.. の検証方法からきている.  1970 年代から並行システムの仕様表現と検証を行う枠. ●検証ツール. 組として,時相論理による方法が知られていた.しかし,.  最近は,コンピュータのハードウェア性能が向上した. 検証対象のシステムならびに検証性質の双方を時相論理. こと,状態空間を表現するデータ構造や探索アルゴリズ. の式として表現し,その記述全体が妥当であることを演. ムの工夫などにより,実用的なモデル検査ツールが登場. 繹的に証明するという人手のかかる作業を必要とした.. している.多くは Web 公開されているので容易に入手で.  1980 年代になって,アメリカの E.Clarke グループと. きる.表 -1 に代表的なモデル検査ツールを示す.以下,. フランスの J.Sifakis グループが独立に,時相論理に対す. モデル検査の技術発展を簡単に振り返る.. る自動検査の方法を着想した .第 1 に,当該システム. 692. 45 巻 7 号 情報処理 2004 年 7 月. 3).

(4) 3. 組み込みソフトウェアのモデル検査技術入門. の大域的な状態空間を Kripke 構造と考える.第 2 に,そ. これを行うためには,対象システムの特性ならびに検証. の Kripke 構造が命題時相論理式のモデルであるか否か. すべき性質に熟知する必要がある.抽象化したために,. を決定するアルゴリズムを考案し,この決定アルゴリズ. システムが本来持っていた性質が失われてはならない.. ムをモデル検査手続きと呼んだ.特に命題時相論理の. 抽象化の作業は知的な要素が大きく,現状では多くの場. 1 つとして分岐時相論理 CTL(Computation Tree Logic). 合,ノウハウに依存する.. を導入し,具体的なアルゴリズムを提案した.すなわ.  第 2 に,組み込みシステムの特徴にかかわる課題があ. ち,Kripke 構造 M=(S, R, L) が,有限状態からなる並行. る.協調して全体の機能を果たす複数の状態遷移マシン. システムを表現するとする.ここで,S は状態の有限集. が,同一ハードウェアの上で適切に作動するためには,. 合,R は遷移関係,L はラベルつけ関数と呼ぶ.L は各状. ハードウェアの適切な配分,すなわち,スケジューリン. 態に対して当該状態で成り立つ命題を割り当てる関数で. グを行わなければならない.また,状態遷移マシンに実. ある.次に,当該システムが満たすべき性質を CTL の式. 行の優先順序がある場合,競合する複数のイベント間に. f として表す.この時,モデル検査の問題とは, 「論理式 f. 優先順序がある場合などを考慮する必要がある.外部事. を満たす状態の集合を求めること」, すなわち,. 象に周期性があるなどの時間的な制約を持つこともあ り,時間制約型スケジューリングを行うことも多い..  { s ∈ S |M, s|= f }.  このようなスケジューリング問題に関しては,独自の 8). 技術が開発されている .現状では,モデル検査の技術 を求めることである.. による検証との関係は,個別対応のノウハウとすること.  さて,モデルという言葉はソフトウェアの世界で,非. が多い.設計と検証を含めた全体について,系統的な取. 常によく使われる.オブジェクト指向モデリングや分. り扱い方法を整理することが大切である.. 析・設計の方法論,最近の MDA では,プログラムより.  最後に,大量販売・大量消費される組み込みソフト. も抽象的なデザインの記述をモデルと呼ぶ.一方,モデ. ウェアの問題の 1 つとして,リコール時に発生するコス. ル検査検証技法でのモデルとは,論理式(時相論理の式). トがある.これに対しては,ネットワーク経由の遠隔管. を満たす具体的な集合(Kripke 構造あるいはラベルつき. 理手法による自動置き換えなどの方法も実用化されてい. 遷移システム)のことである.. くと期待できる.しかし,正当な置き換えダウンロード.  まとめると,デザインのモデル検査とは,抽象的な記. であるかなどのセキュリティに関連する事項が新たに発. 述である状態遷移モデルから作られる Kripke 構造があ. 生すると考えられる.すなわち,組み込みソフトウェア. り,これが当該システムが持つべき性質を表現した時相. の信頼性確保というと,従来は安全性の点だけを考えて. 論理式の具体的なモデルになっているか否か,すなわち. きた.しかし,今後は,安全性とセキュリティの検証を. 当該論理式を満たすか否か,を解析する検証方法のこと. 同時に考慮する必要があるといえる.. である.. 実用的な技術に向けて  モデル検査の技術を組み込みソフトウェアのデザイン 検証に応用する際に問題となる課題を整理する.  第 1 に,モデル検査の技術一般の課題がある.素朴に は,網羅的な探索を行うことが方式の特徴であり,これ が大きな問題となる.探索が終了するためには,状態数 が有限でなければならない.現実的には,検証ツールが 作動しているコンピュータの計算資源の制約がある.す なわち,状態空間がメモリに入りきるか,計算が終了す. 参考文献 1)亘理誠夫 : 高信頼ソフトウェア技術の研究動向− ソフトウェア基礎 技術の確立に向けて−,科学技術動向,科学技術政策研究所,No.24, pp.22-30(Mar. 2003). 2)システム設計検証技術シンポジウム,独立行政法人産業技術総合研究 所関西センター尼崎事業所(Feb. 2004). 3)Clarke, E., Grumberg, O. and Peled, D. : Model Checking, The MIT Press(1999). 4)組込みシンポジウム論文集,情報処理学会ソフトウェア工学研究会 (Oct. 2003). 5)Lee, E. A. : Embedded Software, Advances in Computers, Vol.56, Academic Press(2002). 6)中島 震 : モデル検査検証のソフトウェア開発への応用,日本ソフト ウェア科学会 DSW04(Feb. 2004). 7)Magee, J. and Kramer, J. : Concurrency − State Model & Java Programs, Wiley(1999). 8)Cottet, F., Delacroix, J., Kaiser, C. and Mammeri, Z. : Scheduling in Real-time Systems, Wiley(2002). (平成 16 年 6 月 4 日受付). ることは分かっていても実用的な応答時間で答えが得ら れるのか,などが問題となる.  そこで,対象システムを適切に抽象化することが重要 である.設計者あるいは検証者が,あらかじめ対象シス テムを抽象化し適切な規模の状態遷移システムを得る. IPSJ Magazine Vol.45 No.7 July 2004. 693.

(5)

表 -1  モデル検査ツール

参照

関連したドキュメント

なお、関連して、電源電池の待機時間については、開発品に使用した電源 電池(4.4.3 に記載)で

今回工認モデルの妥当性検証として,過去の地震観測記録でベンチマーキングした別の 解析モデル(建屋 3 次元

機関室監視強化の技術開発,および⾼度なセ キュリティー技術を適用した陸上監視システム の開発を⾏う...

Issuers ; Proposed Rule, No-