JP2001092651A - システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体 - Google Patents

システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体

Info

Publication number
JP2001092651A
JP2001092651A JP27160899A JP27160899A JP2001092651A JP 2001092651 A JP2001092651 A JP 2001092651A JP 27160899 A JP27160899 A JP 27160899A JP 27160899 A JP27160899 A JP 27160899A JP 2001092651 A JP2001092651 A JP 2001092651A
Authority
JP
Japan
Prior art keywords
data item
program
data
access status
programs
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.)
Granted
Application number
JP27160899A
Other languages
English (en)
Other versions
JP3838825B2 (ja
Inventor
Junichi Kamakura
潤一 鎌倉
Kazuya Baba
一弥 馬場
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP27160899A priority Critical patent/JP3838825B2/ja
Priority to US09/553,316 priority patent/US6922825B1/en
Publication of JP2001092651A publication Critical patent/JP2001092651A/ja
Application granted granted Critical
Publication of JP3838825B2 publication Critical patent/JP3838825B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】現行システムにおいて使用されているデータ項
目及びプロセスの結合関係を解析する。 【解決手段】プログラム等を分析し、プログラムの各ス
テップごとにデータ項目に対するアクセス命令の種類及
び回数を調べる(ステップ13)。そして、アクセス命
令の種類等によりデータ項目結合度を計算し、システム
要件等により結合度の値を補正する(ステップ15及び
17)。補正された結合度を参照して、結合度の高いプ
ロセスを収集する(ステップ21)。収集されたプロセ
スの塊などから、プロセス及びデータ項目の分割を実施
する(ステップ22)。分割されたプロセス及びデータ
項目に基づき、プロセス間のインターフェースを表示す
る(ステップ25)。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、システム解析技術
に関し、より詳しくは、既存システム内のサブシステム
を他の資産から分離等するために使用されるシステム解
析技術に関する。
【0002】
【従来の技術】現行システムを再構築する場合には、新
システムでも中心となる機能は現行システムとあまり変
わらないということもあって、現行システムのサブシス
テムを再利用することが開発費用の削減と開発期間の短
縮の両面から必要とされている。再利用するためには、
膨大な既存システムの資産から再利用に必要なサブシス
テムを分離・分割することが必要となる。現在このシス
テムの分離・分割は、開発時の設計ドキュメントや開発
者の知識を使用して行われているが、設計時のノウハウ
に負うところが大きい。しかし、このような人間の経験
などに依存する手法では、再利用するシステム資産を明
確にすることができず、余分な開発費用と期間を必要と
する場合も生ずる。加えて、再利用部分と新規開発部分
のインターフェースの設計ミスにより開発途中のコスト
増加につながる危険性が高くなる。
【0003】また、設計ドキュメントに不備があった
り、設計ドキュメントと現行システムに不一致があった
り、現行システムの開発者が不在であったりすると、現
行システムのサブシステムをまとめたり、サブシステム
単位に再利用、新規開発、パッケージ適用等といった検
討すら簡単にはできないので、システム自体の解析が必
要となる。
【0004】さらに、ほとんどすべての業務がシステム
化されている今日においては、業務自体がブラックボッ
クス化されてしまっていたり、業務同士の関係が複雑化
しているため、すべてを新規に開発することは非常に難
しく、この点においても現行システムの再構築には現行
システム自体の解析作業が必須となる。
【0005】
【発明が解決しようとする課題】よって本発明の目的
は、現行システムを解析するためのシステム解析装置及
び方法並びに解析プログラムを提供することである。
【0006】また、現行システムを解析することによ
り、現行システムの分割等に使用するための情報を得る
ことも目的である。
【0007】
【課題を解決するための手段】本発明の第1の態様に係
る、1又は複数のプログラムを含むシステムを解析する
装置は、プログラム内におけるデータ項目アクセス状況
を調査する手段と、プログラム、プログラムの集合又は
プログラムの部分のうちの少なくとも一つであるプロセ
スとデータ項目の結合関係を、データ項目アクセス状況
に基づき解析する解析器とを有する。データ項目は、例
えば、データ・ファイル内のデータ項目、電文メッセー
ジ内のデータ項目、サブプログラム・インターフェース
内のデータ項目である。このようにシステム解析として
データ項目及びプロセスの結合関係を解析することによ
り、システムの分割などに役立つ情報を得ることができ
る。より具体的には、様々な単位のプロセス(プログラ
ムの部分、プログラム自体、JOB、サブシステム)の
まとまり、データ項目のまとまり、データ項目とプロセ
スの結合関係を明確化することができる。
【0008】上で述べた解析器を、データ項目アクセス
状況に含まれる、データ項目に対するアクセスの態様
(例えば参照・更新など)及びアクセス回数を数量化
し、数量化されたデータ項目アクセス状況データを生成
する手段を含むような構成とすることも可能である。数
値化することによりデータ項目及びプロセスの結合度が
示されることになる。
【0009】また、上で述べた解析器を、システム設計
要件を含む外部要件により、数量化されたデータ項目ア
クセス状況データを補正する手段をさらに含むような構
成とすることも可能である。システム設計要件などの外
部要件により結合させるべき部分を指定するためであ
る。
【0010】また、上で述べた解析器を、数値化された
データ項目アクセス状況データにおいて所定の条件を満
たすデータ項目にアクセスするプロセスを収集する手段
をさらに含むような構成とすることも可能である。
【0011】さらに、上で述べた解析器を、数値化され
たデータ項目アクセス状況データ及び収集されたプロセ
スの情報を使用して、データ項目の振り分け態様及びプ
ロセスの分割態様のうち少なくとも一つを提示する手段
をさらに含むような構成とすることも可能である。
【0012】本発明の第1の態様に係るシステム解析装
置を、提示されたプロセスの分割態様における、プロセ
スのインターフェースを提示する手段をさらに有するよ
うな構成とすることも可能である。これにより、システ
ム分割時のインターフェースの設計に役立つ。
【0013】本発明の第2の態様に係るシステム解析方
法は、プログラム内におけるデータ項目アクセス状況を
調査するステップと、プログラム、プログラムの集合又
はプログラムの部分のうちの少なくとも一つであるプロ
セスとデータ項目の結合関係を、データ項目アクセス状
況に基づき解析するステップとを含む。
【0014】このような方法をコンピュータに実行させ
るプログラムを作成することも可能であって、当該プロ
グラムは、例えばフロッピー・ディスク、CD−RO
M、光磁気ディスク、半導体メモリ、ハードディスク等
の記憶媒体又は記憶装置に格納される。
【0015】
【発明の実施の形態】図1に本発明の機能ブロック図を
示す。入力は現行システムにおいて使用されているプロ
グラム101、JCL(Job Control Language)10
3、サブシステム情報105である。これらの入力をデ
ータ項目アクセス状況集計部107が用いる。データ項
目アクセス状況集計部107の出力はデータ項目結合度
計算部109に入力される。データ項目結合度計算部1
09は別途用意されている結合度係数を用いて計算を行
い、結果をデータ項目結合度補正部113に出力する。
データ項目結合度補正部113は補正処理を実施した後
その結果をプロセス集積部115に出力する。プロセス
集積部115は集積処理の結果を、プロセス・データ分
割部117に出力する。プロセス・データ分割部117
の処理結果はインターフェース表示部119に出力され
る。インターフェース表示部119の処理結果はインタ
ーフェース情報121として表示され且つ記憶装置に格
納される。各機能の処理結果も記憶装置に格納される。
【0016】データ項目アクセス状況集計部107は、
あるデータ項目に、どの段階でどのような種類のアクセ
スが何回行われるかを、ソース・プログラムであるプロ
グラム101、実行するプログラム名や制御パラメー
タ、プログラムに割り当てられるデータ・セット等を定
義したJCL103、サブシステム名と従属するJOB
の情報を含むサブシステム情報105を使用して集計す
る。データ項目結合度計算部109は、アクセスの態様
(例えば、参照、更新など)及びアクセス回数によりデ
ータ項目アクセス状況を数値化する。アクセス態様毎に
結合度の強弱があるので、アクセス態様毎に定義された
結合度を予め格納した結合度係数格納部111を参照し
て、アクセス態様に対応する結合度とアクセス回数の積
で数値化する。
【0017】データ項目結合度補正部113は、システ
ム設計要件等の外部要件の入力により、強く結合させる
べき部分等に関連する結合度を補正する。例えば、ある
データ項目のデータ量が他と比べて多い場合には、その
データ項目の結合度を増加させる等の処理を行う。プロ
セス集積部115は、所定の条件を満たすデータ項目を
アクセスするプロセスを収集し、データ項目アクセス状
況のデータの中で当該プロセスを寄せ集める。プロセス
を寄せ集めたことにより、データ項目及びプロセスはそ
のまとまりが分かりやすくなったので、プロセス・デー
タ分割部117はプロセスの分割及びデータ項目の振り
分けを行う。そして、このプロセスの分割によりプロセ
ス間のインターフェースが明らかになるので、インター
フェース表示部119は、そのインターフェースを表示
する。
【0018】では、本発明の全体処理のフローを図2に
示し、各ステップについて詳細に説明する。まず、デー
タ項目アクセス状況集計部107が、プログラム10
1、JCL103及びサブシステム情報105を分析
し、データ項目アクセス命令を集計する(ステップ1
3)。この処理は例えば図3のような処理フローにて行
われる。
【0019】まず、COBOL等のプログラミング言語
にて記述されたソース・プログラムに対し語分解を実施
する(図3:ステップ33)。すなわち、ソース・プロ
グラムを各命令に分解する。そして、アクセス命令テー
ブルを参照しつつ、データ項目毎にアクセス状況を記録
する(ステップ35)。アクセス命令テーブルとは、デ
ータを参照する命令(例えばREAD,GET)、データを生
成する命令(例えばWRITE,STORE)、データを更新する
命令(例えばREWRITE,MODIFY)、データを削除する命
令(例えばDELETE)及びデータを再定義する命令(例え
ばREDEFINE)等のアクセス命令として取り扱われる命令
群をリストアップしたものである。すなわち、アクセス
命令テーブルに列挙された命令を見出す毎に、例えば図
4のような記録を行う。すなわち、プログラムの名称
と、そのプログラムにおけるセクション名、そのセクシ
ョンにおけるステップ名、アクセスされたデータ項目、
そしてアクセス種類を記憶装置に記録する。図4の例で
は、現在プログラム名Pgm11のセクションSec1
11を分析中であり、ステップ1にはデータ項目D11
及びD12への参照アクセスがあり、ステップ4にはデ
ータ項目D11、D12及びD22への更新アクセスが
存在する。図4は分析途中であって、解析対象システム
に含まれる全てのプログラムについて記録する。
【0020】ステップ35にてアクセス毎にアクセス状
況が記録されると、さらにJCL103及びサブシステ
ム情報105を参照し、各ステップ毎に同じ種類のアク
セスをカウントして、データ項目アクセス状況テーブル
を作成する(ステップ37)。データ項目アクセス状況
テーブルは例えば図5のようなテーブルであって、記憶
装置に格納される。図5はシステムSystemAのデ
ータ項目アクセス状況テーブルである。SystemA
には、ジョブJob1、Job2、Job3が含まれて
いる。そしてJob1にはプログラムPgm11及びP
gm12、Job2にはプログラムPgm21及びPg
m22、Job3にはプログラムPgm31が含まれて
いる。これらの情報は、JCL103及びサブシステム
情報105を参照することにより得られる。Pgm11
にはセクションSec111及びSec112、Pgm
12にはセクションSec121、Pgm21にセクシ
ョンSec211、Pgm22にはセクションSec2
21、Pgm31にはセクションSec311が含まれ
る。そして、Sec111にはステップ1乃至7、Se
c112にはステップ8乃至10、Sec121にはス
テップ11乃至13、Sec211にはステップ14乃
至16、Sec221にはステップ17乃至19、Se
c311にはステップ20乃至25が含まれる。ステッ
プはセクション内の処理の括りごとの連番を示す。これ
らの情報はステップ35の処理にて図4に示すように記
録される。
【0021】一方、ファイルF1はレコードR1及びR
2、ファイルF2はレコードR3を含んでいる。このレ
コードR1はデータ項目D11乃至D14、レコードR
2はデータ項目D21及びD22、レコードR3はD3
1及びD32を含んでいる。これらの情報はファイルの
構造から得られる。図5のテーブル内には、参照(REA
D)アクセスが存在する場合にはRが、更新アクセス(U
PDATE)が存在する場合にはUが、生成アクセスが存在
する場合にはCが、記録されている。図5では使用され
ていないが、削除アクセスが存在する場合にはDを、再
定義アクセスが存在する場合にはAを記録する。それら
の英文字の後にはアクセス回数を記録している。R5は
参照アクセスが5回あったことを示す。また上で説明し
た英文字の後にaが記録されている場合には、全レコー
ド処理であることを示す。
【0022】図5のようなデータ項目アクセス状況テー
ブルが生成された後に、データ項目結合度計算部109
が結合度係数格納部111を参照してデータ項目結合度
を計算する(図2:ステップ15)。結合度はアクセス
の態様によって強弱があり、その強弱を表したのが結合
度係数である。一般的に結合度は、データを参照してい
るよりも、更新する方が強く、更新よりも生成・削除の
方がより強い。また、ファイルへのアクセスより、サブ
プログラムを呼び出すCALLパラメータで使用される
方が強く、さらにCOPY句やローカル変数を共用する
方がより強い。よって、一般的には、以下のような大小
関係がある。結合関係については、 参照 < 更新 < 生成=削除 < 再定義 結合媒体については、 ファイル < CALLパラメータ < COPY句
< ローカル変数 これらの大小関係に基づき、例えば図6に示したような
具体的な結合度係数を用意する。但し、図6は一例であ
って異なる数値を使用することが可能である。さらに、
上で述べた大小関係を、状況に応じて変更することも可
能である。
【0023】ステップ15では、データ項目アクセス状
況テーブル(図5)にまとめられたアクセスの態様とア
クセス回数を、アクセス態様に対応する結合度係数×ア
クセス回数で数値化する。なお、図5の例ではファイル
アクセスしか存在していないので、この例ではその他の
結合媒体の部分は使用されない。数値化の結果を図7に
示す。数値化されたデータ項目アクセス状況テーブルは
記憶装置に格納される。例えば図5でU2とあった場合
には、更新であるから結合度係数は5で回数2であるか
ら結合度10となる。また、本例では全レコード処理の
場合にはアクセス回数10回として計算している。すな
わち、Raは結合度係数が1で回数10であるから結合
度10となる。
【0024】次に、データ項目結合度補正部113が、
データ項目アクセス状況テーブル内の結合度を補正する
(図2:ステップ17)。プロセスとデータの結合度合
いは、データをアクセスする命令の種類や回数の他に、
データの量やクリアすべきレスポンス時間などによって
も強弱がある。このようなシステム設計要件を考慮する
ことにより、ステップ15にて得られたデータ項目アク
セス状況テーブル内の結合度を補正する必要がある。例
えば、データ量が多いデータ項目については、結合度を
それに応じて増加させる。図7の例ではファイルF2の
データ量が多いので、このF2に含まれるデータ項目の
結合度を2倍にする。結合度を2倍にする補正を実施し
た後のデータ項目アクセス状況テーブルを図8に示す。
【0025】なお、システム設計要件で例えばあるプロ
セス又はデータを結合させなければならないという要件
があった場合に、そのような拘束を付けてプロセス又は
データの分割処理を行うことも可能である。しかし、本
例のように個々のデータ項目の結合度を増加(又は減
少)させるということにより本実施例における後の処理
を実施すれば、明示的に結合させた場合に隠れてしまう
ような、データ項目及びプロセス(データ項目間、プロ
セス間及びデータ項目とプロセス間)の結合関係を見出
すことができるようになる。但し、補正(ステップ1
7)を行わないで、プロセスの集積(ステップ21)を
行うことも可能である。
【0026】そして、補正が適正であるか確認する(ス
テップ19)。補正が適正でなければステップ17に戻
って補正をやり直す。なお補正が適正であるか否かは、
例えば次の処理であるプロセスの集積処理が可能か否か
で判断する。
【0027】次に、プロセス集積部115が結合度の高
いプロセスを集積する(ステップ21)。例えば、図9
のような処理を実施する。まず、結合度が最高のデータ
項目を求める(ステップ43)。図8の例ではデータ項
目D32である。次に、当該データ項目を含むレコード
を使用しているプログラムをプログラム単位で集める
(ステップ45)。図8の場合にはデータ項目D32を
含むレコードはレコードR3であり、レコードR3を使
用するのはプログラムPgm11、Pgm22及びPg
m31である。次に、集められたプログラムを結合度の
点数順にプログラム単位で並べる(ステップ47)。プ
ログラムPgm11は結合度140、Pgm22は結合
度20、Pgm31は結合度40であるから、Pgm1
1、Pgm31、Pgm22の順番に並べられる。
【0028】そして、並び替え対象となったプログラム
(データ項目アクセス状況テーブルの縦方向)及びレコ
ード(横方向)をテーブルから除いた場合に残りの要素
があるかを判断する(ステップ49)。図8の例では、
プログラムPgm11とPgm31とPgm22が縦方
向で除去されるので、Pgm12、Pgm21のみが残
る。また、レコードR3が横方向で除去されるので、レ
コードR1及びR2が残る。この残った部分で結合度が
所定のしきい値より大きい要素があればステップ43に
戻る。図8の例では残った部分の最大の結合度が10で
あるが、しきい値より小さいとして処理を終了する。
【0029】ステップ21の結果を図10に示す。ステ
ップ21ではデータ項目アクセス状況テーブルにおける
並べ替え対象プログラムの列を全て移動させる。よっ
て、図10に示すように、Pgm11の次にPgm3
1、その次にPgm22が並べられることになる。一
方、並び替え対象以外のプログラムは図8の例ではそれ
以上の並べ替えを行わなかったので、Pgm12、Pg
m21の順番でPgm22の後に並べられている。JO
B名は並べ替え対象のプログラムに従って記述し直され
ている。当然プログラム内のセクション及びステップ
も、プログラムの並べ替え及び移動に伴って移動してい
る。このように並べ替えると、プログラム毎に使用して
いるデータ項目に偏りがあることが明らかになる。な
お、図10のデータ項目アクセス状況テーブルは、記憶
装置内に格納される。
【0030】なお、図9の例では結合度が最高のデータ
項目を含むレコードを基準にプログラムを集めたが、レ
コードを基準に行うのは一例であって他の単位、例えば
データ項目を基準にプログラムを集めるようにしても良
い。また、プログラム単位でプログラムを集めていた
が、これもセクション単位やJOB単位で集めるように
しても良い。
【0031】では図2に戻って、プロセス・データ分割
部117がプロセス及びデータ項目の分割を実施する
(ステップ22)。この処理の一例について図11を用
いて詳しく説明する。
【0032】まず結合度が5点以上のデータ項目をセク
ション単位で括る(ステップ63)。ステップ63を実
施すると、図12のようになる。すなわち、データ項目
D11はセクションSec111とSec112とSe
c311にて結合度が5以上になる。データ項目D12
は、セクションSec111とSec311にて結合度
が5以上になる。データ項目D13は、セクションSe
c211にて結合度が5以上になる。データ項目D14
は、セクションSec211にて結合度が5以上にな
る。データ項目D21は、セクションSec311にて
結合度が5以上になる。データ項目D22は、セクショ
ンSec111及びSec311にて結合度が5以上に
なる。データ項目D31は、セクションSec112及
びSec311にて結合度が5以上になる。データ項目
D32は、セクションSec112、Sec311及び
Sec221にて結合度が5以上になる。
【0033】そして、同一ファイル内で並んだデータ項
目で且つ下記のいずれかの条件を満たした場合、一つに
括る(ステップ65)。条件とは、(1)括ったセクシ
ョンの範囲が同じである、(2)共通するセクションが
ある、である。例えば図12の上の行から順番に処理す
る。第1行と第2行は同じファイルF1のデータ項目で
並んでおり、共通するセクションがあるから一つに括る
(範囲a)。第3行目は同じファイルF1のデータ項目
であるが、括ったセクションの範囲が同じではなく且つ
共通するセクションが無いので、第1行目から第3行目
まで一つに括ることはできない。第3行目と第4行目を
比較すると、同じファイルF1のデータ項目であって、
括ったセクションの範囲が同じであるから一つに括る
(範囲d)。第3行目乃至第5行目は同じファイルF1
のデータ項目であるが、括った範囲が同じでもなく且つ
共通のセクションでもないので、一つに括ることはでき
ない。
【0034】第5行目と第6行目を比較すると、同じフ
ァイルF1のデータ項目で並んでおり、括った範囲に共
通のセクションが存在するので一つに括る(範囲b)。
第6行目と第7行目の間にファイルの切れ目があるの
で、第7行目と第8行目を比較する。これを見ると、同
じファイルF2のデータ項目で並んでおり、セクション
Sec112及びSec311が共通しているので一つ
に括る(範囲c)。以上の括りを図示すると図13のよ
うになる。図12及び図13の情報は、記憶装置に格納
される。
【0035】さらに、この範囲a乃至dをデータ項目ア
クセス状況テーブルに示すと図14のようになる。図1
1の処理ではデータ項目毎にセクションをまとめたの
で、データ項目の結合関係が明らかになる。また、デー
タ項目とプロセスとの結合関係も示される。図14の例
では、データ項目D11及びD12は結合度合いが強
く、このデータ項目D11及びD12と結合度合いが強
いプロセスは、セクションSec111、Sec112
及びSec311又はプログラムPgm11及びPgm
31である(範囲a)。また、データ項目D13とD1
4は結合度合いが強く、このデータ項目D13及びD1
4と結合度合いが強いプロセスは、セクションSec2
11又はプログラムPgm21である(範囲d)。デー
タ項目D21とD22は結合度合いが強く、このデータ
項目D21及びD22と結合度合いが強いプロセスは、
セクションSec111及びSec311又はプログラ
ムPgm11及びPgm31である(範囲b)。データ
項目D31及びD32は結合度合いが強く、このデータ
項目D31及びD32と結合度合いが強いプロセスは、
セクションSec112、Sec311及びSec22
1又はプログラムPgm11、Pgm31及びPgm2
2である(範囲c)。この図14をユーザに提示するよ
うな構成も可能である。
【0036】このように括れば、レコードR1中のデー
タ項目D11及びD12とD13及びD14を分離し、
別レコードにすることができることが分かる。
【0037】なお、図11では結合度5点以上のデータ
項目を探すようになっているが、これは一例であって、
解析対象システムにおける状況に応じて変更することが
できる。また、セクション単位で括るとしているが、プ
ログラム単位などで括るようにすることも可能である。
【0038】上で述べた範囲a乃至dに括ることにより
プロセスの分割もできる。図14を見ても分かるよう
に、範囲a乃至cについてはプログラムPgm31又は
セクションSec311を含んでいるのに対し、範囲d
は含んでいない。よって、範囲a乃至cから導き出され
るプログラムPgm11、Pgm31及びPgm22
(又はセクションSec111、Sec112、Sec
311及びSec221)と、範囲dから導き出される
Pgm21(又はSec211)とでプロセスの分割が
できることも分かる。どちらの範囲にも属さないプログ
ラムPgm12(又はSec121)は、Pgm12
(又はSec121)が使用するデータ項目はD13で
あり、データ項目D13及びD14と強く結合している
のはPgm21であるから、Pgm21といっしょに括
る。図14には分割単位として、Pgm11、Pgm3
1及びPgm22と、Pgm12及びPgm21とが示
されている。
【0039】前段落で述べた処理をより詳しく述べると
以下のようになる。(1)データ項目D11及びD12
をベースに結合度合いの強いセクションを集める。Se
c111、Sec112及びSec311である。
(2)D21及びD22をベースに結合度合いの強いセ
クションを集める。Sec111及びSec311であ
る。(3)D31及びD32をベースに結合度合いの強
いセクションを集める。Sec112、Sec311及
びSec221である。(4)これら3つのセクション
群に共通するセクションSec311が存在しているの
で、D11及びD12、D21及びD22、並びにD3
1及びD32と結合度合いの強いセクションを集める。
Sec111、Sec112、Sec311及びSec
221となる。プログラム単位ではPgm11、Pgm
31及びPgm22となる。(5)D13及びD14を
ベースに結合度合いの強いセクションを集める。Sec
211である。結合度1の部分は結合度合いが弱いので
集めない(Sec311及びSec121)。Sec2
11は他のデータ項目との結合度が弱いことが分かる。
(6)結合度合いの強いデータ項目がないSec121
についてはD13への参照が含まれているので、D13
及びD14との結合度合いの強いSec211と同じグ
ループにする。プログラム単位ではプログラムPgm2
1とPgm12が同じグループとなる。よって、Sec
111、Sec112、Sec311及びSec221
のグループと、Sec211及びSec121のグルー
プの2つの分割単位に分割する。
【0040】では図2に戻って、ステップ22を実施し
た後に、分割は適正か否かを判断する(ステップ2
3)。適正でなければステップ17まで戻る。適正でな
いかどうかは、例えばシステム設計要件を満たしている
か否かで判断する。また、ステップ22で分割できなか
った場合も適正でないと判断される。
【0041】もしステップ23で分割が適正であると判
断された場合には、インターフェース表示部119がイ
ンターフェースを表示する(ステップ25)。ここでは
ステップ22で分割したプロセスと、プロセスで使用す
るデータを表示する。図15にインターフェースの例を
示す。分割されたプロセスは、プログラム単位でPgm
11、Pgm31及びPgm22と、Pgm12及びP
gm21である。分割されたプロセスをオブジェクトと
し、最初のグループをオブジェクトObj−1、二番目
のグループをオブジェクトObj−2としている。デー
タ項目は、分割したプロセスの他のプロセスとのインタ
ーフェースで使用する外部データをパブリック・データ
(public data)とし、分割したプロセス内部だけで使
用する内部データをプライベート・データ(private da
ta)とする。
【0042】図14の分割単位を見ると、データ項目D
11及びD12はオブジェクトObj−1にとってはプ
ライベート・データであるが、オブジェクトObj−2
にとってデータ項目D11はパブリック・データであ
る。一方、データ項目D13及びD14はオブジェクト
Obj−2にとってはプライベート・データであるが、
オブジェクトObj−2にとってデータ項目D14はパ
ブリック・データである。また、D21及びD22並び
にD31及びD32はオブジェクトObj−1にとって
プライベート・データである。インターフェース表示に
おいても、データ項目の振り分け、プロセスの分離が示
されている。
【0043】また、インターフェースでは、図14にお
ける結合度の数値を参照や更新といったアクセスの態様
に戻して表示する。このようにすれば、プライベート・
データ及びパブリック・データに対しどのようなアクセ
スがなされるかが明確になる。図15ではパブリック・
データは参照のみで、外部のプロセスとの結合度が低い
ということも分かる。オブジェクトに分けることによ
り、オブジェクト指向技術等を適用することができるよ
うになる。
【0044】以上のようにすれば、分割後のプロセスの
インターフェースが明確になり、新システムの設計に役
立てることができる。このように明確なインターフェー
スが提示されれば、部品であるオブジェクトの仕様を決
めることが容易になり、設計ミスが少なくなることが期
待できる。
【0045】以上説明した図2の各ステップをプログラ
ミングすれば本発明をプログラムにて実装することがで
きる。このプログラムは、例えばフロッピー・ディス
ク、CD−ROM、光磁気ディスク、半導体メモリ、ハ
ードディスク等の記憶媒体又は記憶装置に格納される。
そして、通常のコンピュータにて実行される。本発明の
システム解析プログラムを実行するコンピュータはシス
テム解析装置として動作する。
【0046】また、例えば図1に示す各機能ブロック
を、専用の電子回路、又は電子回路とプログラムの組み
合せにて実装し、本発明のシステム解析装置を実現する
ことも可能である。なお、図1に示した機能ブロックは
一例であって、複数の機能ブロックを一つにすること
も、また一つの機能ブロックを複数に分けることも可能
である。
【0047】以上述べた本発明を使用することにより、
プロセス間の結合強度を解析することができ、プロセス
単位で再構築の方式を検討することができ、開発費用と
期間を大幅に削減することができるようになる。また、
結合強度の強いプロセスの塊を集めることにより、サブ
システムのまとまり、サブシステム内のJOBのまとま
り、JOB内のプログラムのまとまり、プログラム内の
セクションのまとまり、セクション内の命令群のまとま
りを明確にすることができ、プログラムやプログラムの
一部の再利用を可能にすることができる。さらに、プロ
セスの分割だけでなく、データ・ファイルの分割も可能
にし、データの正規化の支援やデータの最適再配置を行
うことができるようになる。
【0048】
【発明の効果】現行システムを解析するためのシステム
解析装置及び方法並びに解析プログラムを提供すること
ができた。
【0049】また、現行システムを解析することによ
り、現行システムの分割等に使用するための情報を得る
こともできた。
【図面の簡単な説明】
【図1】本発明における機能ブロック図である。
【図2】本発明の全体処理のフローチャートである。
【図3】本発明の命令集計処理のフローチャートであ
る。
【図4】命令集計処理中に記録されるデータの一例を示
す図である。
【図5】第1段階のデータ項目アクセス状況テーブルを
示す図である。
【図6】本発明の結合度係数表の一例を示す図である。
【図7】第2段階のデータ項目アクセス状況テーブルを
示す図である。
【図8】第3段階のデータ項目アクセス状況テーブルを
示す図である。
【図9】本発明のプロセス集積処理のフローチャートで
ある。
【図10】第4段階のデータ項目アクセス状況テーブル
を示す図である。
【図11】本発明のプロセス・データ項目分割処理のフ
ローチャートである。
【図12】プロセス・データ項目分割処理中に記録され
るデータの一例を示す。
【図13】プロセス・データ項目分割処理中に記録され
るデータの一例を示す。
【図14】第5段階のデータ項目アクセス状況テーブル
を示す図である。
【図15】本発明におけるプロセスのインターフェース
表示の一例である。
【符号の説明】
101 プログラム 103 JCL 105 サ
ブシステム情報 107 データ項目アクセス状況集計部 109 データ項目結合度計算部 111 結合度係
数格納部 113 データ項目結合度補正部 115 プロセス
集積部 117 プロセス・データ分割部 119 インター
フェース表示 121 インターフェース情報

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】1又は複数のプログラムを含むシステムを
    解析する装置であって、 前記プログラム内におけるデータ項目アクセス状況を調
    査する手段と、 プログラム、プログラムの集合又はプログラムの部分の
    うちの少なくとも一つであるプロセスとデータ項目の結
    合関係を、前記データ項目アクセス状況に基づき解析す
    る解析器と、 を有するシステム解析装置。
  2. 【請求項2】前記解析器が、 前記データ項目アクセス状況に含まれる、前記データ項
    目に対するアクセスの態様及びアクセス回数を数量化
    し、数量化されたデータ項目アクセス状況データを生成
    する手段を含む、請求項1記載のシステム解析装置。
  3. 【請求項3】前記解析器が、 システム設計要件を含む外部要件により、前記数量化さ
    れたデータ項目アクセス状況データを補正する手段をさ
    らに含む、請求項2記載のシステム解析装置。
  4. 【請求項4】前記解析器が、 前記数値化されたデータ項目アクセス状況データにおい
    て所定の条件を満たすデータ項目にアクセスするプロセ
    スを収集する手段をさらに含む、請求項3記載のシステ
    ム解析装置。
  5. 【請求項5】前記解析器が、 前記数値化されたデータ項目アクセス状況データ及び収
    集されたプロセスの情報を使用して、前記データ項目の
    振り分け態様及び前記プロセスの分割態様のうち少なく
    とも一つを提示する手段をさらに含む、請求項4記載の
    システム解析装置。
  6. 【請求項6】提示された前記プロセスの分割態様におけ
    る、プロセスのインターフェースを提示する手段をさら
    に有する請求項5記載のシステム解析装置。
  7. 【請求項7】1又は複数のプログラムを含むシステムを
    解析する方法であって、 前記プログラム内におけるデータ項目アクセス状況を調
    査するステップと、 プログラム、プログラムの集合又はプログラムの部分の
    うちの少なくとも一つであるプロセスとデータ項目の結
    合関係を、前記データ項目アクセス状況に基づき解析す
    るステップと、 を含むシステム解析方法。
  8. 【請求項8】1又は複数のプログラムを含むシステムを
    解析するための解析プログラムを格納した記憶媒体であ
    って、 前記解析プログラムは、コンピュータに、 前記プログラム内におけるデータ項目アクセス状況を調
    査するステップと、 プログラム、プログラムの集合又はプログラムの部分の
    うちの少なくとも一つであるプロセスとデータ項目の結
    合関係を、前記データ項目アクセス状況に基づき解析す
    るステップと、 を実行させる、記憶媒体。
JP27160899A 1999-09-27 1999-09-27 システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体 Expired - Fee Related JP3838825B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27160899A JP3838825B2 (ja) 1999-09-27 1999-09-27 システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体
US09/553,316 US6922825B1 (en) 1999-09-27 2000-04-20 System analysis apparatus and method, and storage medium storing system analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27160899A JP3838825B2 (ja) 1999-09-27 1999-09-27 システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体

Publications (2)

Publication Number Publication Date
JP2001092651A true JP2001092651A (ja) 2001-04-06
JP3838825B2 JP3838825B2 (ja) 2006-10-25

Family

ID=17502452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27160899A Expired - Fee Related JP3838825B2 (ja) 1999-09-27 1999-09-27 システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体

Country Status (2)

Country Link
US (1) US6922825B1 (ja)
JP (1) JP3838825B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067186A (ja) * 2001-08-23 2003-03-07 Hitachi Koukiyou Syst Eng Kk データフロー自動生成方法
JP2006277430A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd ビジネスシステム開発支援方法及びシステム
JP2007241916A (ja) * 2006-03-13 2007-09-20 Fujitsu Ltd プログラム解析方法、プログラム及びプログラム解析装置
JP2010122716A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法
JP2020160922A (ja) * 2019-03-27 2020-10-01 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100242024A1 (en) * 2009-03-17 2010-09-23 Gonzales Ii Jesus Orlando User Interface System and Method for Controlling Conversion of a Source Job Control Language File into a Test Job Control Language File

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161216A (en) * 1989-03-08 1992-11-03 Wisconsin Alumni Research Foundation Interprocedural slicing of computer programs using dependence graphs
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5937195A (en) * 1996-11-27 1999-08-10 Hewlett-Packard Co Global control flow treatment of predicated code
US6085035A (en) * 1997-09-09 2000-07-04 Sun Microsystems, Inc. Method and apparatus for efficient operations on primary type values without static overloading
US6247175B1 (en) * 1998-12-22 2001-06-12 Nortel Networks Limited Method and apparatus for identifying and removing unused software procedures
US6449711B1 (en) * 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
US6430741B1 (en) * 1999-02-26 2002-08-06 Hewlett-Packard Company System and method for data coverage analysis of a computer program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067186A (ja) * 2001-08-23 2003-03-07 Hitachi Koukiyou Syst Eng Kk データフロー自動生成方法
JP2006277430A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd ビジネスシステム開発支援方法及びシステム
JP2007241916A (ja) * 2006-03-13 2007-09-20 Fujitsu Ltd プログラム解析方法、プログラム及びプログラム解析装置
JP2010122716A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法
JP2020160922A (ja) * 2019-03-27 2020-10-01 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP3838825B2 (ja) 2006-10-25
US6922825B1 (en) 2005-07-26

Similar Documents

Publication Publication Date Title
US7418453B2 (en) Updating a data warehouse schema based on changes in an observation model
US8566810B2 (en) Using database knowledge to optimize a computer program
JP2768433B2 (ja) 物理データベース設計システム
JP4422345B2 (ja) スクリプト駆動ツールの並列処理アプリケーション
CN115543402B (zh) 一种基于代码提交的软件知识图谱增量更新方法
JP3205406B2 (ja) 参照対象変数決定処理方法および翻訳処理システム
CN110990055B (zh) 一种基于程序分析的Pull Request功能分类方法
JP2001092651A (ja) システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体
CN110618926A (zh) 源代码分析方法和源代码分析装置
US20050086647A1 (en) Apparatus for and method of creating computer program specifications, and computer program product
JP2003067186A (ja) データフロー自動生成方法
US20220206788A1 (en) Version control method for program project and associated electric device
US7844627B2 (en) Program analysis method and apparatus
JP3144022B2 (ja) プログラムデータベースシステム
US7996366B1 (en) Method and system for identifying stale directories
US8296336B2 (en) Techniques for efficient dataloads into partitioned tables using swap tables
JP2785317B2 (ja) ソフトウェア標準化方法
JP3703076B2 (ja) 構造化文書により定義された品質管理及び品質評価ルールによるソフトウェア品質管理・評価方法、ならびにそのプログラムを記録した記録媒体
CN112597156B (zh) 无编程化动态数据存储及表格绘制方法及装置
CN117608536B (zh) 缺口数据在线模版定制补录系统及其方法
JPS6284337A (ja) 仕様書情報解析方式
JP3295930B2 (ja) 実行プログラム管理方法及び装置及び記録媒体
JP2023151987A (ja) 項目名チェック装置、項目名チェック方法、及びプログラム
Kugler et al. Bridging data management and knowledge discovery in the life sciences
Fantechi et al. Object-oriented analysis of COBOL

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050727

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060801

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130811

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees