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

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

Info

Publication number
JP3838825B2
JP3838825B2 JP27160899A JP27160899A JP3838825B2 JP 3838825 B2 JP3838825 B2 JP 3838825B2 JP 27160899 A JP27160899 A JP 27160899A JP 27160899 A JP27160899 A JP 27160899A JP 3838825 B2 JP3838825 B2 JP 3838825B2
Authority
JP
Japan
Prior art keywords
data item
data
access status
program
access
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.)
Expired - Fee Related
Application number
JP27160899A
Other languages
English (en)
Other versions
JP2001092651A (ja
Inventor
潤一 鎌倉
一弥 馬場
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

Images

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)

Description

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

  1. 1又は複数のプログラムを含むシステムを解析する装置であって、
    前記プログラム内におけるデータ項目アクセス状況を調査するアクセス状況調査手段と、
    プログラム、プログラムの集合又はプログラムの部分のうちの少なくとも一つであるプロセスとデータ項目の結合関係を、前記データ項目アクセス状況に基づき解析する解析器と、
    を有し、
    前記解析器が、
    前記データ項目アクセス状況に含まれる、前記データ項目に対するアクセスの態様及びアクセス回数を、アクセス態様毎に予め定義されている結合度係数を用いて数量化し、数量化されたデータ項目アクセス状況データを生成するアクセス状況データ生成手段と、
    前記数量化されたデータ項目アクセス状況データにおいて当該数量的な条件を満たすデータ項目にアクセスするプロセスを収集するプロセス収集手段と、
    前記数量化されたデータ項目アクセス状況データ及び収集されたプロセスの情報を使用して、前記データ項目の振り分け態様及び前記プロセスの分割態様のうち少なくとも一つを提示する態様提示手段とを含む
    システム解析装置。
  2. 前記解析器が、
    システム設計要件を含む外部要件により、前記数量化されたデータ項目アクセス状況データを補正する手段をさらに含む、
    請求項1記載のシステム解析装置。
  3. 提示された前記プロセスの分割態様における、プロセス・グループとデータ項目の関係を提示する手段をさらに有する請求項2記載のシステム解析装置。
  4. 1又は複数のプログラムを含むシステムを解析し、コンピュータにより実行される方法であって、
    前記プログラム内におけるデータ項目アクセス状況を調査するアクセス状況調査ステップと、
    プログラム、プログラムの集合又はプログラムの部分のうちの少なくとも一つであるプロセスとデータ項目の結合関係を、前記データ項目アクセス状況に基づき解析する解析ステップと、
    を含み、
    前記解析ステップが、
    前記データ項目アクセス状況に含まれる、前記データ項目に対するアクセスの態様及びアクセス回数を、アクセス態様毎に予め定義されている結合度係数を用いて数量化し、数量化されたデータ項目アクセス状況データを生成するアクセス状況データ生成ステップと、
    前記数値化されたデータ項目アクセス状況データにおいて当該数量的な条件を満たすデータ項目にアクセスするプロセスを収集するプロセス収集ステップと、
    前記数値化されたデータ項目アクセス状況データ及び収集されたプロセスの情報を使用して、前記データ項目の振り分け態様及び前記プロセスの分割態様のうち少なくとも一つを提示する態様提示ステップとを含む
    システム解析方法。
  5. 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 JP2001092651A (ja) 2001-04-06
JP3838825B2 true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4791660B2 (ja) * 2001-08-23 2011-10-12 日立公共システムエンジニアリング株式会社 データフロー自動生成装置とデータフロー自動生成方法およびコンピュータ読み取り可能な記録媒体
JP2006277430A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd ビジネスシステム開発支援方法及びシステム
JP4899544B2 (ja) * 2006-03-13 2012-03-21 富士通株式会社 プログラム解析方法、プログラム及びプログラム解析装置
JP5168099B2 (ja) * 2008-11-17 2013-03-21 富士通株式会社 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法
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
JP6729742B1 (ja) * 2019-03-27 2020-07-22 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US11416243B2 (en) 2020-01-23 2022-08-16 International Business Machines Corporation Microservice decomposition strategy of monolithic applications

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

Also Published As

Publication number Publication date
US6922825B1 (en) 2005-07-26
JP2001092651A (ja) 2001-04-06

Similar Documents

Publication Publication Date Title
AU2017202501B2 (en) Managing data queries
US7418453B2 (en) Updating a data warehouse schema based on changes in an observation model
CN107622103B (zh) 管理数据查询
JP2768433B2 (ja) 物理データベース設計システム
JP5328099B2 (ja) データプロファイリング
US7263512B2 (en) Accessing and updating views and relations in a relational database
JP4422345B2 (ja) スクリプト駆動ツールの並列処理アプリケーション
US8826225B2 (en) Model transformation unit
US5873091A (en) System for data structure loading with concurrent statistical analysis
US10331848B2 (en) Method for managing complex genomic data workflows
US20080027908A1 (en) Method for requesting and processing metadata which is contained in a data stream and associated device
JP3838825B2 (ja) システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体
JP3205406B2 (ja) 参照対象変数決定処理方法および翻訳処理システム
JP4791660B2 (ja) データフロー自動生成装置とデータフロー自動生成方法およびコンピュータ読み取り可能な記録媒体
US6104869A (en) Method of controlling a work flow system
JP3997495B2 (ja) ソフトウェア解析装置及びソフトウェア解析方法
US20100146002A1 (en) Capturing enterprise architectures
US20190287655A1 (en) Method for managing complex genomic data workflows
JP3144022B2 (ja) プログラムデータベースシステム
JPS6284337A (ja) 仕様書情報解析方式
CN112597156B (zh) 无编程化动态数据存储及表格绘制方法及装置
JPH09292985A (ja) プログラム再利用部品生成方法
JP2018190219A (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
JP3843957B2 (ja) ソフトウェア開発加工関連図生成システム,装置,方法およびプログラム
JP2003122892A (ja) 課題管理システム、ホームページサーバーおよびコンピュータ読み取り可能な課題管理システム用の記録媒体

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