学位論文要旨



No 212800
著者(漢字) 長谷川,晴朗
著者(英字)
著者(カナ) ハセガワ,ハルオ
標題(和) SDLとペトリネットを用いた交換ソフトウェアの開発支援に関する研究
標題(洋)
報告番号 212800
報告番号 乙12800
学位授与日 1996.03.18
学位種別 論文博士
学位種類 博士(工学)
学位記番号 第12800号
研究科 工学系研究科
専攻 電子工学専攻
論文審査委員 主査: 東京大学 教授 浅野,正一郎
 東京大学 教授 羽島,光俊
 東京大学 教授 斎藤,忠夫
 東京大学 教授 田中,英彦
 東京大学 教授 石塚,満
 東京大学 助教授 瀬崎,薫
内容要旨

 近年,需要が飛躍的に増大しつつある交換ソフトウェア開発に対する生産性向上への様々な取り組みの中で,非形式的なユーザ要求をもとに形式的な仕様を作成・検証・保守さえすれば,後のソースプログラムへは機械的に変換できるという仕様を重視した新しいソフトウェア開発パラダイムが適用されている。このパラダイムに則ってSDL,LOTOS,Estelleやペトリネット等の各種の仕様記述言語を用いた開発支援システムが構築されている。ところが,現在各機関で構築されている支援システムはいずれも高級技術者が使用することを前提としており,かつ実用化という点で必ずしも満足できるものにはなっていないのが実情である。つまり,通信システムに関してある程度以上の知識を有していることを前提とし,彼らによる記述や検証に重点を置き過ぎていて,一般ユーザレベルで使えるような自動検証ツールとなっておらず,また通信システムを実際に制御するプログラムの作成についてあまり考慮が払われていないという問題がある。

 本論文では,交換ソフトウェア開発支援システムの中でこれまで扱われていなかった3つの分野,つまりユーザ要求の仕様化工程の支援,設計仕様の代数的かつ自動的な検証方式,および設計仕様から最終的に動作するプログラム作成までのインプリメンテーション方式について新たな方式を提案し,それを適用することでトータルなソフトウェア開発の生産性を向上しようとするものである。

 ここで提案する,統合化交換ソフトウェア開発支援環境のシステム構成図を図1に示す。

 図1に示すように,全体システムは以下の3サブシステムからなる。

 ・EXPRESS(EXPeRt system for ESS)自然言語で入力した正常処理に関するサービスをもとに,最終的に完全で誤りのないペトリネット(PN)で表現されたサービス仕様を作成するサブシステム

 ・ALVER(ALgebraic VERification system)作成されたSDL仕様を検証するにあたり,いったんハイレベルネットに変換し,ペトリネットの解析能力を利用して有界性や活性を代数的かつ自動的に検証するサブシステム

 ・SDE(Sdl Development Environment)SDLで表現された設計仕様に対して各種の検証を行って誤りを除去し,最終的にC++言語で書かれたプログラムを作成するサブシステム

図1:統合化交換ソフトウェア開発支援環境のシステム構成図

 EXPRESSでは,一般ユーザ以上の知識を有するが設計者ほどではない人,例えば通信システム販売の営業者の使用を前提としている。ここで提案するサービス仕様作成支援システムEXPRESSの構成を図2に示す。

図2:EXPRESSの構成

 まず,端末の操作とそれに対するシステムの応答という形で表された個々のユーザ要求から,ユーザ要求要素およびサービス要素を経てペトリネットで表す個別サービスグラフ(ISG)に変換する手順を明らかにし,さらに複数個のISGを統合して一つの完全な統合サービスグラフ(TSG)を作成する手順を明確にした。

 上記2種類のサービスグラフを作成する際に,ユーザ要求に含まれ得るエラーを自動的に検出するために意味検証,論理検証,およびプロトタイピング検証の3つの方法により検証を行った。意味検証では,通信システムを構成するハードウェアを構造的かつ機能的に知識表現して,操作上のエラーを検出する。論理検証では,作成したTSGが統合したISGをすべて含み,それ以外のサービスを含まないかを自動的に検出する。ISGがちょうどペトリネットでいうTインバリアントに対応するため,ISGを統合して生成されたTSGはTインバリアントによって被覆されることに着目する。すなわち,TSGの接続行列から求められるTインバリアントがISGのそれをすべて含み,かつそれ以外を含んでいないことを調べることで自動的に検証することが可能である。プロトタイピング検証では,本サービス仕様作成支援システムを実装したWSに外付けしたハードウェア装置(端末が接続されたPBX)をプロダクションルールを利用して実際に動作させ,ユーザが想定するようなサービスとなるかを確認する。最後に,このように作成した完全で誤りのないTSGからSDL設計仕様に変換する,ペトリネット(PN)-SDL変換手順を明確にした。

 ALVERでは,EXPRESSで最終的に作成されるSDLファイルをもとに,準正常処理や異常処理等を追加して得られる設計仕様をいったんペトリネットに変換し,ペトリネットの表現形式のままで自動的に検証する。代数的仕様検証システムALVERの構成を図3に示す。

図3:ALVERの構成

 まずPBXのSDL仕様を端末から見た状態の遷移に着目してハイレベルネットに変換する手順を明確にした。ここでハイレベルネットを使用したのは,通常のペトリネットに比較してトークンに色をつけることで表現能力を高めていることから,システムを簡潔に記述できるからである。変換したペトリネットについて,プレースとトランジションの接続関係を表す接続行列から求められる2つのインバリアントを用いてその構造的な側面から仕様の検証を行う。つまり,Sインバリアントを用いて有界性を調べ,Tインバリアントを用いてデッドロックの検出を行う手法を明確にした。一般に,ハイレベルネットでインバリアントを求めることは容易ではない。しかし,この場合,トークンを無色とした通常のペトリネットとして求めたインバリアントがそのまま使え,有界性や活性について安全側に立った検証を行うことができる。

 さらに,通信システムには機能拡張が多いことに鑑みて,インクリメンタルな設計に対処する必要があることに着目した。つまり,機能追加により仕様を追加した部分に誤りが生成されることは十分予想されることとして,その除去のための措置は種々考えられている。しかし,現実に問題となるのは,仕様を追加したことによって,もともと有していた仕様に誤りが混入してしまうことである。これを自動的に検出するため,仕様追加前に成り立っていた有界性や活性といった諸性質を仕様追加後も失っていないことを確認する手順を明確にした。つまり,仕様追加前に求められる両インバリアントが仕様追加後も求められることでそれを検証できる。これはすべて自動的に行えるので極めて有効である。

 SDEでは,十分に検証され完全なものとなったSDL設計仕様をもとに,実際にハードウェア装置を制御するプログラムを作成する。まず,実環境の選定についてソフトウェアの移植性と再利用性に留意して,オペレーションシステムとしてTRON仕様OSを,プログラミング言語としてC++言語を採用した。そして,TRON仕様OSの上にSDL/OSを構築し,SDLから変換したC++のプログラムがそのままの形で動くようにした。このSDL/OSは,C++のクラスを利用したライブラリであり,TRON仕様OSの有するタスク管理機能,メッセージ通信機能を利用して,それぞれSDLプロセスの制御,タイマの管理を実行する。なお,このSDL/OSは一つのオペレーティングシステムに対して一度作成すればよいものである。これらの関係を図4に示す。

図4:SDLアプリケーション,SDL/OSおよびTRON仕様OSの間の関係

 以上述べてきた開発方式を,実際に伝送装置監視システムとPBX試作システムの2つの試作に適用した。伝送装置監視システムは,特にSDLによらない従来の方式によっても開発を行い,本方式と生産量や生産性等の比較を行った。それによると,設計量は従来方式に比べて約52%に削減された。一般に,プログラムの生産性はプログラミング言語によらず一定で,従って高級言語を使用すればそれだけ生産性が向上するといわれるので,その分生産性が向上すると考えられ,実際の評価でもそれが確認できた。

 試作したPBXについて同じハードウェア装置で従来方式で作成したものとの性能比較において,約32%への性能低下の補償として2つの性能向上手法を提案した。一つはSDLプロセスとOSタスクとの対応であり,もう一つはプロセス間通信の実装に関してである。

 まず,OSタスクの生成・削除といったオーバヘッドを少なくするために,複数個のプロセスを一つのタスクに対応させることとした。タイマ以外のシグナルを受信することなく動作するプロセスである能動プロセスと,その能動プロセスからシグナルを受信して動作する受動プロセスとを一つのタスクに対応させることで性能低下を防止することとした。プロセス間通信の実装は同期通信の実現方式を考慮したものである。非同期通信を基本とするSDLで,同期通信的な機能を実現させるため,あるプロセスが他のプロセスからのシグナルの到着まで待ち状態にいるときに両プロセスは直列関係にあるとし,それらを一つのタスクに対応させ,かつ通信を関数呼出しで実現することで処理の高速化を図った。以上の2つの性能改善をPBX試作システムに適用し,適用前に比較して性能を56%向上させることができた。

審査要旨

 本論文は「SDLとペトリネットを用いた交換ソフトウェアの開発支援に関する研究」と題し、今後多様化する通信サービスの実現への要求に応えるべく、交換ソフトウェアの開発環境の改善を目的として、サービスの仕様化、論理的な完全性を高めるためのサービス仕様検証ならびに実装を一貫して論じ、生産性の向上を確認したものであって、6章からなる。

 第1章は「緒論」であって、本研究の背景、必要性、目的および概要について述べている。すなわち、本研究の目的は、交換ソフトウェアの開発において、必ずしも高度の知識を持たない技術者であっても交換サービス仕様を作成でき、作成した仕様に対して論理検証を自動的に実施でき、更に仕様を直接実装する一連の開発支援環境を実現することにあることを述べている。また、仕様記述や論理検証の研究を概観して、本研究の位置づけを明らかにするとともに、論文の構成について説明している。

 第2章は「基本用語の定義および開発支援システム全体の概要」と題し、3章以降の準備として、本論文で使用するSDLとペトリネットの概要を説明するとともに、統合化交換ソフトウェア開発支援システムの全容を示し、各論の関連を明らかにしている。

 第3章は「通信サービス設計支援」と題し、個々の利用者からのサービス実現への要求を、高度な専門性を持たなくても統合サービスグラフとして記述する設計支援について論じている。本研究では、利用者の要求の記述との親和性、論理矛盾の解析手法との整合性、ならびに意味検証・論理検証・プロトタイピング検証からなる一連の検証の直接実行性の観点から、統合サービスグラフをペトリネットにより表現することを提案している。ソフトウェア開発環境が国際標準であるSDLにより与えられていることから、最後にペトリネットによる統合サービスグラフのSDLによる表現への変換を述べている。

 第4章は「通信仕様の代数的検証方式」と題し、ペトリネットで表現されたサービス仕様に対する代数的な検証方式を提案している。ここで、交換サービスのリソースを全てモデル化する能力があるカラーペトリネットを採用することにより、全体の仕様が有界な検証対象である条件、仕様に含まれる要素が動作できる条件、サービスが規定に従い停止する条件、および規定されないサービスが含まれない条件等を系統的に検証できることを明らかにしている。またこれらの検証が、仕様の追加に際しても矛盾なく実施できることを数学的に示している。最後に、提案する検証手法をPBXの事例に適用した結果を述べている。

 第5章は「通信SDL仕様のインプリメンテーション方式」と題し、検証されたサービス仕様を、SDLにより表現することで、容易に実装する方式について論じている。ここでは、オペレーティングシステムとしてTRONを採用し、またC++言語をSDL仕様からの変換対象言語として用いている。変換ルールに従いSDL仕様から変換したC++が動作するために、TRON仕様のOSに必要なライブラリ、プロセスの生成・実行・終了等の機能が装備されたシステムを試作し、総合評価を行った結果、目標とする交換ソフトウェアの生産性の向上を実証している。また処理能力についても、システム的な改善を示し、実用性に目処を与えている。

 第6章は「結論」であって、本論文をまとめている。

 以上これを要するに本論文は、SDLとペトリネットに基づいた交換ソフトウェアの仕様化並びに仕様の自動検証を提案し、その実装に関する検討を含めて一連の研究をまとめたものであって、電子工学上貢献するところが少なくない。

 よって本論文は博士(工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク