JPH06236295A - プログラム移植支援システム - Google Patents

プログラム移植支援システム

Info

Publication number
JPH06236295A
JPH06236295A JP4089298A JP8929892A JPH06236295A JP H06236295 A JPH06236295 A JP H06236295A JP 4089298 A JP4089298 A JP 4089298A JP 8929892 A JP8929892 A JP 8929892A JP H06236295 A JPH06236295 A JP H06236295A
Authority
JP
Japan
Prior art keywords
program
porting
transplant
test data
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4089298A
Other languages
English (en)
Inventor
Tatsunori Hashimoto
辰範 橋本
Hirobumi Hotta
博文 堀田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP4089298A priority Critical patent/JPH06236295A/ja
Publication of JPH06236295A publication Critical patent/JPH06236295A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 プログラムの移植作業において、その作業工
程の効率化をはかると共に、移植に伴うバグの検出効率
を上げるようにする。 【構成】 移植対象となるプログラムPA とその移植元
処理系で用いた試験データTi を入力とし、プログラム
の静的解析により移植の影響を受けない記述部分を選別
する静的解析器11と、既存の試験データTi を用いた
プログラムの実行トレースによる情報収集に基づき、動
作の条件に関わらず、その試験データに対しては全く移
植の影響を受けない記述部分を選別する動的解析器13
で実施する。これにより、移植対象プログラムの解析に
基づき、移植における改造必要箇所と、既存の試験デー
タに対する試験優先順位を得る。そのため、改造が必要
な箇所を選別する工程を効率化し、しかも移植後のプロ
グラム試験工程において移植に伴うバグの検出効率を上
げることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの移植作業
の効率化を支援するプログラム移植支援システムに関す
るものである。
【0002】
【従来の技術】従来、プログラムの移植作業は、開発元
と移植先の計算機間に存在するプログラム記述言語やシ
ステムコールの差、すなわち処理系差を人手で調査し、
その結果に基づきプログラムの書換えを行い、試験する
という手順で実施されてきた。この中で、プログラムの
書換え場所を特定するために、事前に調査した処理系差
をもとに、書換えが必要な記述、あるいは書換えが必要
となる可能性のある記述を静的に検出するプログラムチ
ェッカが個々に作成され用いられている。
【0003】しかし、プログラムの静的解析に基づいた
この技術では、チェックアウトされる記述の大部分が、
書換えが必要となる可能性があるという判定にとどまる
ため、最終的には、多くの工数を費やす人手による判断
を余儀なくされている。また、移植後のプログラム試験
では、通常次の問題がある。まず、開発時に使用したす
べての試験データを用いて移植後の試験するのは、無駄
が多い。さらに、適当な順で試験データを選択すると、
問題点検出,改造の後の再試験が多く必要となる。しか
し、これらの問題については特に考慮されていない。
【0004】
【発明が解決しようとする課題】一般に、プログラムの
移植作業工程では、改造を必要とする箇所の判断と移植
後のプログラム試験に大きな工数が費やされる。つま
り、移植作業工程を効率化するためには、改造が必要な
箇所を的確に探し出す方法と、移植に伴うバグの検出効
率を上げるために改造された部分を重点的に試験する方
法の確立が課題となる。
【0005】
【課題を解決するための手段】本発明は、上記課題を解
決するために、移植対象プログラムの解析に基づき、移
植における改造必要箇所と、既存の試験データに対する
試験優先順位を得るようにしたものである。移植対象プ
ログラムの解析とは、プログラムの流通を想定した複数
処理系で共通な仕様を示す共通仕様データと、移植元,
移植先各処理系の処理系差データを用いて、移植しても
プログラムの動作に全く影響を及ぼさない記述とそうで
ない記述をプログラムの制御フローグラフ上で分別する
ものである。プログラム移植支援システムの構成を図1
に示す。
【0006】移植対象プログラムの解析は、図1に示す
ように、プログラムの静的解析により移植の影響を受け
ない記述部分を選別する静的解析器11と、既存の試験
データTi を用いたプログラムの実行トレースによる情
報収集に基づき、動作の条件に関わらず、その試験デー
タに対しては全く移植の影響を受けない記述部分を選別
する動的解析器13で実施する。このときプログラム変
換器14は、プログラムの実行トレースに先立ち、移植
の影響を受ける可能性のある記述に対し実行時情報を収
集する機能を元のプログラムに挿入する。
【0007】
【作用】このように本発明によるプログラム移植支援シ
ステムは、移植対象プログラムとその試験データを入力
とし、改造情報と試験情報を出力するものである。この
改造情報は移植作業の効率化に、試験情報は移植プログ
ラムの試験の効率化に利用される。本システムは、全般
にわたって移植作業プログラムPA の制御フローグラフ
のノードを彩色する。色の意味は、次に示すものであ
る。 白:移植の観点で、必ず正しい動作をする。 黒:移植の観点で、必ず誤った動作をする。 灰:移植後の動作が正しいか否か分からない。 本システムの作用を以下に示し、ステップをStep.と称
する。
【0008】Step.1 制御構造解析器17(図1参
照)が移植対象プログラムPA の制御フローグラフGf
(PA)を作成する。このときグラフ18上の全ノード
を灰に彩色する。 Step.2 静的解析器11で移植の影響を受けない記述
部分を選別する。静的チェックが、共通仕様データDA
を参照し、移植時に100%安全な地点と100%問題
を起こす地点を認識し、グラフ彩色器16を介してGf
(PA )彩色を次にように変更したグラフGm(PA)を
作成する。 灰→白:100%安全な地点に対応するノード。 灰→黒:100%危険な地点に対応するノード。
【0009】Step.3 さらに静的チェッカ12は、移
植元の処理系EA と、移植後の処理系EB 間の差異を示
す仕様差データDB をもとに、両者で動作が同一の地点
に対応するGm (PA)上のノードの色を白に変更した
グラフGm (PA,EA,EB)を作成する。
【0010】Step.4 動的解析器13で移植の影響を
受けない記述部分を選別する。まず、プログラム変換器
14が、Gm(PA)上の灰色に彩色されたノードに対応
するPA の地点に移植性チェック用コードを埋め込む。
次に、実行トレーサ15が、変換されたプログラムとP
AのEA上での動作を確認した試験データTi (i=1,
2,・・・,n:nは試験データ個数)を用いて、Gm
(PA)上の灰色に彩色されたノードに対応する地点の
動作をチェックする。その結果、Ti に対してどんな処
理系でも100%安全であることが判明した地点に対す
るGm(PA)上のノードの色を白に変更したグラフGmi
(PA,Ti,EA )を各iに対し作成する。この試験時
に移植後の処理系EB が既知の場合には、Gm(PA)の
代わりにGm(PA,EA,EB)を用いてGmi(PA
i,EA,EB)を作成する。このときStep.5は省略
する。
【0011】Step.5 Step.4のチェック結果とEB
に関する情報を用いて、各iに対し、Gmi(PA,Ti
A )上の灰色に彩色されたノードを次のように彩色し
直したグラフGmi(PA,Ti,EA,EB)(i=1,
2,・・・,n)を作成する。 灰→黒:EB上とEA上の動作が必ず異なる部分に対応す
るノード。 灰→白:EB上とEA上の動作が必ず同一である部分に対
応するノード。
【0012】Step.6 レポータ19はStep.5までに
得られたグラフを用いて以下の情報を出力する。改造情
報 Gmi(PA,Ti,EA,EB)(i=1,2,・・
・,n)内のノードの色で判別する。 白:改造不要。 黒:改造必須。 灰:改造の必要性を検討要。
【0013】試験情報 改造部に関わる試験を優先する
ために、各試験データに対し、次の優先度を出力する。 優先度1:Gmi(PA,Ti,EA,EB)が黒に彩色され
たノードを持つTi。 優先度2:Gmi(PA,Ti,EA,EB)が灰色に彩色さ
れたノードを持つTi。 優先度3:残りのTi
【0014】
【実施例】以下、本発明によるプログラム移植支援シス
テムの動作をISO規格のC言語で記述されたプログラ
ムの移植を例に示す。例を簡単化するために次の2点を
仮定する。 (i) 処理系Ex,Eyは、どちらもISO規格に適合した
Cコンパイラをもつ。 (ii)移植対象プログラムP中に、システムコールは現れ
ない。 これらの仮定より、ExとEyの処理系差は、ISO−C
規格中で処理系定義と規定された項目だけに存在するこ
とになる。
【0015】図2に移植対象プログラムPを示す。この
例では、共通仕様データはISO−C規格そのものであ
る。ここで、ISO−C規格で処理系定義と規定されて
いる項目の中で、移植対象プログラムPに関連するもの
を示す。 (a) int型からshort型への代入における桁あふれ処理。 (b) 印字の方向および端末の改行位置を越えた出力の処
理。 (c) 文字の内部表現 これらの項目に対し、処理系Ex,Eyではそれぞれ次の
ように定義されているとする。
【0016】Exの仕様に対し、Exでは次のように定義
する。 (a) int型のサイズ=short型のサイズ(4バイト)であ
り、桁あふれなし。 (b) 印字の方向は右。印字が端末の改行位置を越えた場
合は次の行へ出力を継続。 (c) 文字の内部表現は処理系独自のもの。
【0017】Eyの仕様に対し、Eyでは次のように定義
する。 (a) int型のサイズ(4バイト)>short型のサイズ(2
バイト)。代入時にあふれた桁は無視する。 (b) 印字方向は右。印字が端末の改行位置を越えた場合
は次の行へ出力を継続。 (c) 文字の内部表現は処理系独自のもの。 すなわち、印字の方向および端末の改行位置を越えた出
力の処理については処理系差は存在せず、他の2項目だ
けが異なるとする。
【0018】さらに、移植対象プログラムPに対しEx
上で用いた試験データT={T1,T2,T3}は以下の
通りとする。 T1=(j←1) T2=(j←6) T3=(j←99999)
【0019】以上の条件でプログラム移植支援システム
を動作させた時のグラフの推移を図3に示し、その時の
動作を以下に順を追って説明する。 Step.1 プログラムPの制御フローグラフGf(P)
を作成する。各ノードは図2に示すプログラム中のコメ
ントに記述されている番号(1)〜(5)に1対1に対応して
いる。なお、全ノードの初期色は灰色としておく。
【0020】Step.2 共通仕様データDA をもとに、
移植の影響を受けないことを静的に判断できる部分、す
なわち、上記ISO−C規格で処理系定義として規定さ
れている項目に全く関与しない記述に対応したノード
(1)と(5)を白に彩色する(Gm(P))。 Step.3 Gm(P) で灰色のノードに対し、仕様差デ
ータDB から移植の影響を受けないことを静的に判断で
きるものを選択する。この例では、ノード(3)がこれに
あたり、白に彩色される(Gm(P,Ex,Ey))。
【0021】Step.4 Gm(P,Ex,Ey)で灰色の
ノードに対し、試験データT={T1,T2,T3}を用
いたトレース実行により移植の影響を調査する。まず、
ノード(2)について説明する。ノード(2)は、対応する記
述の直前でjがshort 型に収まらない値をもつ場合に異
なった動作を引き起こす。そこで、プログラム変換器1
4は、対応する記述直前のjの値をチェックする処理を
プログラムP中に挿入する。ここで、試験データTを用
いて実行トレースすると、試験データT3 を用いた場合
だけjが short型に収まらない値を持つことが明かとな
る(jの値99999は2バイトで表現できる範囲内に
ない)。このとき、Gm3(P,T3,Ex,Ey)のノー
ド(2)は黒に、Gm1(P,T1,Ex,Ey)とGm2(P,
2,Ex,Ey)のノード(2) は白に彩色される。ノー
ド(4) については、*iを単なるバイトデータとして扱
っているのか、それとも文字の内部表現を意識して扱っ
ているのかによって、移植による影響の有無が異なる。
しかし、これを判断することは困難であり、人による確
認に頼らざるを得ない。よって、ノード(4) は灰色のま
まとする。
【0022】Step.5 この例ではこのステップは不要
である。 Step.6 Step.4で得られたグラフをもとに、以下の
改造情報と試験情報を出力する。 改造情報 プログラムPのコメント中の番号別を示す。 改造必須:(2) 検討要 :(4) 改造不要:(1)(3)(5) 試験情報 試験データ名別に示す。 優先度1:T3 優先度2:T1,T2
【0023】
【発明の効果】以上説明したように本発明によれば、プ
ログラムの移植作業において、移植対象プログラムの解
析に基づき、移植における改造必要箇所と、既存の試験
データに対する試験優先順位を得るようにしたので、改
造が必要な箇所を選別する工程を効率化すると共に、移
植後のプログラム試験工程において移植に伴うバグの検
出効率を上げることが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例によるプログラム移植支援シ
ステムの構成図である。
【図2】本実施例の移植対象プログラムの一例を示す図
である。
【図3】図2のプログラムに対するグラフ彩色の例を示
す図である。
【符号の説明】
11 静的解析器 12 静的チェッカ 13 動的解析器 14 プログラム変換器 15 実行トレーサ 16 グラフ彩色器 17 制御構造解析器 18 グラフ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの移植作業において、移植対
    象となるプログラムとその移植元処理系で用いた試験デ
    ータを入力とし、プログラムの静的解析により移植の影
    響を受けない記述部分を選別する静的解析器と、試験デ
    ータを用いたプログラムの実行トレースによる情報収集
    に基づいて動作の条件に関わらず移植の影響を受けない
    記述部分を選別する動的解析器を用いて改造必要箇所の
    解析を行い、その解析結果をもとに移植作業工程を効率
    化する改造情報と、移植プログラムの試験工程を効率化
    する試験情報を出力することを特徴とするプログラム移
    植支援システム。
JP4089298A 1992-03-16 1992-03-16 プログラム移植支援システム Pending JPH06236295A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4089298A JPH06236295A (ja) 1992-03-16 1992-03-16 プログラム移植支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4089298A JPH06236295A (ja) 1992-03-16 1992-03-16 プログラム移植支援システム

Publications (1)

Publication Number Publication Date
JPH06236295A true JPH06236295A (ja) 1994-08-23

Family

ID=13966770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4089298A Pending JPH06236295A (ja) 1992-03-16 1992-03-16 プログラム移植支援システム

Country Status (1)

Country Link
JP (1) JPH06236295A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2011133966A (ja) * 2009-12-22 2011-07-07 Fujitsu Ltd プログラムの解析装置及び解析方法
JP2012073682A (ja) * 2010-09-27 2012-04-12 Nec Corp 移行検査プログラム作成装置、移行検査プログラム作成方法および移行検査プログラム作成プログラム
JP2012141741A (ja) * 2010-12-28 2012-07-26 Fujitsu Ltd 解析支援プログラム,解析支援装置および解析支援方法
JP2016018390A (ja) * 2014-07-08 2016-02-01 株式会社エヌ・ティ・ティ・データ 検証支援方法、検証支援装置、及びプログラム
US9563547B2 (en) 2014-02-14 2017-02-07 International Business Machines Corporation Testing optimized binary modules
JP2021068021A (ja) * 2019-10-18 2021-04-30 株式会社デンソー 抽出装置、及び抽出プログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226010A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd コンパイル方法及びコンパイル装置
JP2011133966A (ja) * 2009-12-22 2011-07-07 Fujitsu Ltd プログラムの解析装置及び解析方法
JP2012073682A (ja) * 2010-09-27 2012-04-12 Nec Corp 移行検査プログラム作成装置、移行検査プログラム作成方法および移行検査プログラム作成プログラム
JP2012141741A (ja) * 2010-12-28 2012-07-26 Fujitsu Ltd 解析支援プログラム,解析支援装置および解析支援方法
US9563547B2 (en) 2014-02-14 2017-02-07 International Business Machines Corporation Testing optimized binary modules
US9569347B2 (en) 2014-02-14 2017-02-14 International Business Machines Corporation Testing optimized binary modules
JP2016018390A (ja) * 2014-07-08 2016-02-01 株式会社エヌ・ティ・ティ・データ 検証支援方法、検証支援装置、及びプログラム
JP2021068021A (ja) * 2019-10-18 2021-04-30 株式会社デンソー 抽出装置、及び抽出プログラム

Similar Documents

Publication Publication Date Title
US20090013313A1 (en) Debug device, debug method, and program
JPH0748182B2 (ja) プログラム・エラー検出方法
JPH06236295A (ja) プログラム移植支援システム
US20050216897A1 (en) Converter, automation device with a converter, and a development environment having an automation device with converter
CN113434385A (zh) 一种针对软件模型检查工具的测试用例自动生成方法和系统
CN116955170A (zh) 火箭测发软件自动化测试系统
JPH06168111A (ja) デバッグ文の自動作成方式
JP3028589B2 (ja) 論理回路検証装置のエラー検出制御方法
KR100329991B1 (ko) 프로젝트 매니저의 체크박스를 이용한 전처리기 디파인 처리방법
US11241962B2 (en) Evaluation apparatus for display arbitration control and generation apparatus for rule definition file
JP7392821B2 (ja) 制御用ソフトウェアの自動テスト方法及び装置ならびにコンピュータプログラム
JPH08328897A (ja) 並列プログラム動作解析方法及びその装置
JP2795332B2 (ja) ループ処理誤り検出装置
JP4149047B2 (ja) シミュレータ
JPH1115695A (ja) プログラムテストパターン自動生成システム
JP3114199B2 (ja) 言語処理システムのリスト出力方式
JPS6033640A (ja) デ−タ・モニタ方式
CN114281336A (zh) 一种软件接口的适配方法、装置及其系统
JPH1031584A (ja) ソフトウエアの検証自動化装置
JPH08212105A (ja) プログラム管理装置
JPH02183834A (ja) コンパイラを用いたプログラム開発方法
JPH0344708A (ja) プラント監視操作装置
CN115905006A (zh) 用于检验程序代码的方法、存储介质及电子装置
JPS6274130A (ja) プログラム構造資料作成処理装置
JPH02205930A (ja) インタフェースチェック処理方法