[Prev] [Up] [Next] [Index] [Contents]
  1. CASEツールプラットフォーム
    1. SDB
      1. I-model [ShortCut, PDF]
      2. P-model [ShortCut, PDF]
      3. AreaModel [ShortCut, PDF]
      4. B-model
      5. D-model
      6. SDA4 [ShortCut, PDF]
      7. StmtModel [ShortCut, PDF]
      8. SDAarea-model
      9. Type-view
      10. Comment-view [ShortCut, PDF]
      11. Flow-view
      12. FCD-view
      13. F-model [ShortCut, PDF]
      14. J-model [ShortCut, PDF]
      15. JX-model [ShortCut, PDF]
      16. WX-model [ShortCut, PDF]
      17. JSX-model [ShortCut, PDF]
    2. AR
      1. AR4 [ShortCut, PDF]
      2. AR5 [ShortCut, PDF]
      3. SMU [ShortCut, PDF]
      4. SpdUtil [ShortCut, PDF]
    3. PIDB [ShortCut, PDF]
    4. SDB4 [ShortCut, PDF]
    5. SML [ShortCut, PDF]
    6. StreamedSapid [ShortCut, PDF]

4 CASEツールプラットフォーム

4.1 SDB

我々は,ソフトウェアモデルに基づいた ソフトウェアの解析を行うツールを作成した.その中心は,コマンドsdbinであり, 前処理が施されたC言語のソースプログラムを入 力するとソフトウェアモデルに従ったデータベースのインスタンスを生成する.

データベースのアクセスためにARと呼ばれるC言 語のAPIが用意されている.Sapidの利用者はARを用いることで,sdbinによっ て解析されたソフトウェアの情報を得ることができる.

sdbinおよびARの使用により,従来必要であったソフトウェアの解析機能のた めのプログラム開発にかかる労力を軽減し,CASEツールを見通しよく開発する ことができる.

4.1.1 I-model

I-modelはソフトウェアの構造を基にソフトウェアを捉えたモデルであり,プロ グラマからの視点に重点を置いている.ただし,C言語の文法をそのまま構造と して用いたわけではなく,プログラマの視点から抽象化を図り,必要ないと思わ れる情報を捨象した.

また,関連の多くは構成関連として捉えることが自然であるため,構成関連を的 確に表現するモデルとして,OMTモデルのオブジェクト図の記法を採用した.主 に用いた記法は,構成関連を表現する記法と汎化を表現する記法である.

より詳しい説明

4.1.2 P-model

P-modelでは前処理指令を10のクラスと14の関連としてモデル化した. 現在,モデル化されているのは,#include指令と #define指令である.

より詳しい説明

C-modelは前処理前のソースプログラムに対するソフトウェアモデ ルであり,前処理後のソースプログラムに対するモデル I-modelを基にして構築される. C-modelはSapid-2.188において削除されたので, 前処理前のソースプログラムを扱うためには,I-modelとP-modelを併用すること.

4.1.3 AreaModel

AreaModelは,メモリ上の領域と値に関する情報のモデルであり, 3つのクラスと15の関連から構成されている.

より詳しい説明

AreaModelARは複雑な構造を持つ AreaModelのインスタンスを作成・利用する ための高レベルなアクセスルーチンである.

より詳しい説明

4.1.4 B-model

ドキュメント作成中.

4.1.5 D-model

ドキュメント作成中.

4.1.6 SDA4

SDA4 (Sapid Dependency Analyzer ver.4)はソフトウェア の高レベルな関係を取得す るAPI関数で,プログラムの制御の依存関係とデータの依存関係を扱うプロ グラムの記述を簡潔にするために作成されたライブラリである.

SDA4で扱う依存関係は,ソフトウェアの制御の依存関係と, 変数の依存関係で ある.依存関係は有向グラフで表現される.制御の依存関係では,制御流れグ ラフ(CFG: Control Flow Graph)を用い,データの依存関係ではデータ流れグ ラフ(DFG: Data Flow Graph)を用いる.

SDA4は,近い将来,Flow-viewに置き換え られる.

SDA4のより詳しい説明

4.1.7 StmtModel

Statement Modelはクラスstatementとそれに関係する関 連のモデルである.

より詳しい説明

4.1.8 SDAarea-model

ドキュメント作成中.

4.1.9 Type-view

ドキュメント作成中.

4.1.10 Comment-view

Comment-viewは,C言語プログラムに関する細粒度のモデル I-modelと組み合わせて使うことができる,コメントに関するモデルである.

より詳しい説明

4.1.11 Flow-view

ドキュメント作成中.

4.1.12 FCD-view

FCD-viewは,ライブラリ関数間のデータ依存関係,ライブラリ 関数と条件式との間のデータ依存関係,条件式とライブラリ関数間の制御依存関 係を表現するモデルである.

より詳しい説明

4.1.13 F-model

I-modelを利用してソースプログラムの変更を行う場合,利用 者は前処理後のソースプログラムを基にして変更されたソースプログラムを手 に入れることになる.しかし,多くの場合,利用者は前処理前のソースプログラ ムに対する変更を望んでいる.

一般に,前処理前のソースプログラムは,構文規則を満たしておらず,構文解析をす ることはできない.そこで,入力されるソースコードをある程度制限すること によって,前処理前のソースプログラムを対象とした解析を試みる.

F-modelは,解析対象のファイルの中で使われているマクロを,変数や関数呼 び出しと見なして,I-modelのように解析する. 現在,F-modelとStreamedSapidとの連携によって前処理前 のソースプログラムを変更するCASEツールの実現に関する研究を進めている.

このモデルは実験的なモデルで,現在は利用できない(2002/02/04).

より詳しい説明

4.1.14 J-model

J-modelはJavaソースプログラムのモデルである.

より詳しい説明

4.1.15 JX-model

JX-modelは,JavaソースプログラムのXML版リポジトリのためのモデル である.JX-modelでは,Java (Java 2 ver. 1.4)のソースプログラムを 20種類の非終端要素と7種類の終端要素によってモデル化した.ここで,終端要 素は子ノードとしてJX-model要素を持たない要素のことをいう.

より詳しい説明

4.1.16 WX-model

WX-modelは,scriptlet拡張を含むXHTML文書と(以下,XHTMLという) のXML版リポジトリのためのモデルである.WX-modelでは, XHTMLを12の終端要素と10の非終端要素によってモデル化した.

より詳しい説明

4.1.17 JSX-model

JSX-modelは,EcmaScript (JavaScript)ソースプログラムのXML版リポジトリのた めのモデルである.JSX-modelでは, EcmaScript 3rd Editionの文法規則に基づいて書かれたソースプログラムを 7種類の終端要素と6種類の非終端要素よってモデル化した.

より詳しい説明

4.2 AR

AR (Access Routine)は,SDBのデータにアクセスするためのC言語の APIである.このAPIが提供する関数は,CASEツール作成者にとって 必要かつ基本的なものである.ARには, データベーススキーマを得るためのクラス・属性名関数,データ属性値取得関 数,関連取得関数,実体取得関数などがある.

CASEツール作成者は,これらの基本関数を組み合わせてより複雑な機能を作成 する.ARを用いると,

などの操作を容易に実現することができる.

また,ARには,ソフトウェアの開発で多く用いられる前処理に対処するために, 前処理情報データベースPIDBから前処理に関する情報を取得する機能が組み込 まれている.この機能を用いることにより,前処理を行なう前のソースプログ ラムに対して,

などの操作を実現することも可能となる.

4.2.1 AR4

AR4はI-modelP-modelSDBを使用する アクセスルーチンである. AR4では前処理前のソースプログラムのモデル P-modelと前処理後のソースプログラムのモデル I-modelの間を,主にファイル名とoffsetに よって関連づける. AR3はSapid-2.535において削除されたので,今後はAR4を使うこと.

より詳しい説明

4.2.2 AR5

AR5は,これまで用いられてきたAR3, AR4とは異なり,スキーマに対するアクセスを行うことが でき,また,新たなデータモデルを定義したり,複数のデータベースを 同時に扱ったりする能力を持つ新たなデータベースアクセスライブラリである.

より詳しい説明

4.2.3 SMU

SMUはSDB Access Routines使用の便宜を計る為の 各種関数を提供する.

より詳しい説明

4.2.4 SpdUtil

SpdUtilはSapidで利用されている各種のユーティリティ関数 を提供する.

より詳しい説明

4.3 PIDB

前処理情報データベースを生成する機能を持つプリプロセッサである.

より詳しい説明

4.4 SDB4

コマンドsdb4は,SDB4を構成するために用いられる. sdb4は,その内部で sdbin4sdblink4を呼び出す. コマンドsdb3はSapid-2.553において削除されたので, 今後はsdb4を使うこと.

より詳しい説明

4.5 SML

ソフトウェア操作言語SMLは, ソフトウェアの開発・保守を行う際にソースプログラムに対して行われ る様々な変更操作や情報取得操作を簡潔で直感的に記述するための言語である.

より詳しい説明

4.6 StreamedSapid

StreamedSapid(以下 |Sapid|)は,ソースプログラムの 変更操作を伴なうCASEツールを簡単に実現するための環境である. |Sapid| が提供するツールにより,ソースプログラムは StreamCodeと呼ばれる形式に変換される.StreamCodeはソースプログラムと 等価な情報を持ち,ソースプログラムに戻すことができる.CASEツールは StreamCodeを書き換えることで,ソースプログラムの変更操作を実現する.

より詳しい説明


[Prev] [Up] [Next] [Index] [Contents]