JPH09160765A - ソフトウェア部品作成方法 - Google Patents

ソフトウェア部品作成方法

Info

Publication number
JPH09160765A
JPH09160765A JP31997495A JP31997495A JPH09160765A JP H09160765 A JPH09160765 A JP H09160765A JP 31997495 A JP31997495 A JP 31997495A JP 31997495 A JP31997495 A JP 31997495A JP H09160765 A JPH09160765 A JP H09160765A
Authority
JP
Japan
Prior art keywords
data
procedure
procedure block
block
component
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
JP31997495A
Other languages
English (en)
Inventor
Hirobumi Danno
博文 団野
Gunji Tsukuda
軍治 佃
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP31997495A priority Critical patent/JPH09160765A/ja
Publication of JPH09160765A publication Critical patent/JPH09160765A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 データ項目に着目したデータ項目毎の生成
式、チェック式の抽出では、データの生成順序を抽出す
ることができない点。 【解決手段】 ソースプログラムを解析し、1つ以上の
データ項目により構成したデータ部品を作成するステッ
プ1,2と、作成したデータ部品内のデータ項目値を作
成する手続きブロックを、予め設定した、データ部品に
保存するデータ項目および手続きと既存プログラムにお
けるデータ項目および手続きとを対応付ける識別情報に
基づき、解析したプログラムから抽出するステップ4
と、抽出した手続きブロック内のデータ項目名の変更、
他データ部品を参照・生成する手続きへの変更、他手続
きブロックへ制御を渡す手続きの変更を行いデータ部品
に保存するステップ5,8,9,10とを有することを
特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、既開発ソフトウェ
ア(プログラム)から、新規ソフトウェア開発に用いる
ソフトウェア部品を生成する技術に係り、特に、事務処
理ソフトウェアの資産継承において重要な、データ項目
に着目したソフトウェア部品(データ部品)の再利用性
を向上させるのに好適なソフトウェア部品作成方法に関
するものである。
【0002】
【従来の技術】ソフトウェアの生産性向上、特に既存ソ
フトウェアの再構築において、新規開発ソフトウェアへ
の仕様情報の継承、信頼性及び生産性の向上のため、従
来、ソースプログラムの一部を部品化して、データベー
ス等に蓄積することにより、あるいは、既開発ソフトウ
ェアの仕様情報を抽出することにより、新規ソフトウェ
アの開発へのソースコードの再利用や、仕様の再利用に
用いる技術がある。
【0003】このような既開発ソフトウェアのソースプ
ログラムの一部を部品化する技術には、例えば、特開昭
63−30936号公報(ソフトウェア部品作成装置)
に記載のものがある。この技術によれば、ソースプログ
ラム上の任意の手続き部分を手続き内で利用する変数と
共に抽出し、部品名を付加して、部品として作成でき、
再利用可能なソースコードを得ることが出来る。このよ
うに、ソースプログラムの一部を部品化する技術は、ソ
ースプログラム上の任意の機能を実現する手続き部分を
部品として作成することで、既存ソフトウェア資産であ
る機能の一部を実現するソースコードを再利用する有力
な技術である。
【0004】しかし、事務処理ソフトウェアの資産継承
において、データ項目を再利用することは、事務処理で
扱うデータの単位を再利用することになり、事務処理ソ
フトウェアの構築あるいは再構築では、必須の条件とな
っているが、上述の従来技術では、ソースプログラム上
の任意の機能を実現するための手続き部分が部品の単位
として抽出されており、機能の再利用に重点があり、事
務処理で重要な、データ項目に着目した部品を構築する
ことができない。また、ソースコードをそのまま部品に
していることで、複数の部品間で、同一データを扱うデ
ータ項目であっても、データ項目名が異なり、再利用時
の理解が容易でなく再利用性を低下させる問題がある。
【0005】既開発ソフトウェアから、データ集合と、
そのデータ集合に対する手続きを持つ仕様情報を抽出
し、データ項目に着目したソフトウェア部品(データ部
品)を作成する技術としては、例えば、特願平5−29
0467号(階層仕様情報作成方法)に記載のものがあ
る。この技術では、既開発ソフトウェアのデータ項目、
特に業務上重要なキーとなる項目、すなわち、既開発ソ
フトウェアから業務の上で再利用性の高いデータ集合に
着目し、このデータ集合と対応する手続き情報を抽出
し、ソフトウェア仕様部品を作成、拡張する。この結
果、事務処理ソフトウェアの構築で必須のデータに着目
したソフトウェア仕様部品を簡易に、早期に作成するこ
とができる。
【0006】既存ソフトウェア資産の継承において、後
述のデータの生成順序を示す制御情報の抽出は、既存ソ
フトウェアのサービスを実現するために必須の重要な情
報である。このサービスは、複数の機能で構成し、これ
らの各機能を実現するため、既存ソフトウェア資産で
は、データの生成順序を機能単位にまとめ、手続きブロ
ックとしてプログラム言語により明示して記述してい
る。以下、データの生成順序に関して説明する。
【0007】特定の機能(サービス)を実現するために
は、一般に、複数のデータ項目を、所定の手続き順に従
って生成、チェックする。これには、データ依存関係と
時間依存関係の組み合わせが利用される。データ依存関
係は、データ生成の前提となるデータを事前準備する関
係であり、また、時間依存関係には、(a)同じ時間に
依存する関係(b)前の時間に依存する関係(c)流れ
としての時間に依存する関係がある。
【0008】(a)同じ時間に依存する関係とは、ある
データ項目を生成する場合、必ず同時期に生成するデー
タ項目がある関係であり、例えば、データ項目Aを生成
する場合、データ項目Bも生成する。 (b)前の時間に依存する関係とは、あるデータ項目を
生成し、このデータ項目を生成するのに利用した他のデ
ータ項目を、次に再生成(=更新)するもので、例え
ば、「A=B+C」のステップの次のステップが「B=
D+E」の関係である。 (c)流れとしての時間に依存する関係とは、判定と生
成が順次組み合わされて有効となる関係であり、例え
ば、判定により検査したデータ項目を利用して、あるデ
ータ項目を生成し、このデータ項目を判定に利用する。 (例)IF A>0 B=X/A IF B>5 :
【0009】データ項目に着目した、データ項目毎の生
成式、チェック式の抽出では、上述の時間依存関係を抽
出することは不可能である。すなわち、上述の特願平5
−290467号に記載の技術では、データ集合内のデ
ータ項目毎に生成式やチェック式を抽出しており、デー
タの生成順序を抽出することはできない。その結果、ソ
フトウェア部品群内で矛盾無く動作できるようソースコ
ードを変更することができない。
【0010】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、データ集合内のデータ項目毎に
生成式やチェック式を抽出しており、データの生成順序
を抽出することはできず、ソフトウェア部品群内で矛盾
無く動作できるようソースコードを変更することができ
ない点である。本発明の目的は、これら従来技術の課題
を解決し、既存ソフトウェア資産の継承において重要な
データ項目と機能の再利用性を高め、ソフトウェア開発
の生産性の向上と、業務仕様の信頼性および品質の向上
を可能とするソフトウェア部品作成方法を提供すること
である。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明のソフトウェア部品作成方法は、(1)既存
のプログラムの解析に基づき(ステップ1)、既存プロ
グラムに含まれるデータ項目とこのデータ項目を生成す
る手続きとを抽出し、新規ソフトウェアに再利用するデ
ータ部品を作成する(ステップ2)ソフトウェア部品作
成方法であって、データ部品に保存するデータ項目およ
び手続きと、既存プログラムにおけるデータ項目および
手続きとを対応付ける識別情報を設定し、この識別情報
に基づき、既存プログラムから、データ部品に保存する
データ項目を生成する手続きを包含する手続きブロック
を抽出し(ステップ3,4)、抽出した手続きブロック
に含まれる各データ項目の内、データ部品に保存するデ
ータ項目に対応するデータ項目を、識別情報に基づき検
出し、この検出したデータ項目の名称を、データ部品に
保存するデータ項目の名称に変更し、このデータ項目の
名称を変更した手続きブロックをデータ部品に保存する
(ステップ5)ことを特徴とする。また、(2)上記
(1)に記載のソフトウェア部品作成方法において、識
別情報403を、既存プログラム300のプログラム名
302と行番号(20〜113、・・・)により構成
し、手続きブロックに包含される手続き313の行番号
(110)312より少ない行番号の方向に既存プログ
ラム300を順次検索して手続きブロックの開始602
を検出し、手続きの行番号312より大きい行番号の方
向に既存プログラム300を順次検索して手続きブロッ
クの終了603を検出し、手続きブロックの開始の行番
号(100)306から終了の行番号間(111)30
9の既存プログラム内の手続きを手続きブロック701
として抽出し、この抽出した手続きブロック701に含
まれる各データ項目の内、このデータ項目を定義する既
存プログラムにおける行番号が、データ部品に保存する
データ項目と同じ行番号のものを検出し、この検出した
データ項目(支給額313)の名称を、データ部品に保
存するデータ項目の名称(総支給702)に変更するこ
とを特徴とする。また、(3)上記(1)、もしくは、
(2)のいずれかに記載のソフトウェア部品作成方法に
おいて、抽出した手続きブロック1001〜1003を
一覧で出力する(ステップ7)と共に、各手続きブロッ
クで入出力対象となるデータ項目1004,1006を
持つデータ部品1103を識別情報に基づき検出し、こ
の検出したデータ部品1103を、手続きブロックに対
応付けて、この手続きブロックに対する入出力関係の識
別と共に一覧出力し、この一覧から利用者が選択した手
続きブロックに対してのみ、上述の名称変更を伴うデー
タ部品への保存を行なうことを特徴とする。また、
(4)上記(1)、もしくは、(2)のいずれかに記載
のソフトウェア部品作成方法において、識別情報に基づ
く手続きブロックの抽出に代えて、既存プログラムから
利用者が選択した手続きブロックを抽出し(ステップ1
1)、この利用者選択の手続きブロックが生成するデー
タ項目を保存したデータ部品1500を識別情報に基づ
き検出し、この検出したデータ部品1500に、利用者
が選択した手続きブロック1502を、名称変更を行な
って保存することを特徴とする(ステップ5)。また、
(5)上記(1)から(4)のいずれかに記載のソフト
ウェア部品作成方法において、自データ部品の手続きブ
ロック内に、他データ部品のデータ項目を参照あるいは
生成する手続き705,707があれば、参照あるいは
生成の対象となるデータ項目を保存する他データ部品を
識別情報(AE010.53,AE010.54)に基
づき検出し、この検出した他データ部品内に、データ項
目を参照する手続きブロック1106あるいは生成する
手続きブロック1107を作成して保存し、自データ部
品の手続きブロック内の参照手続き705あるいは生成
手続き707を、他データ部品内に保存した参照手続き
ブロックあるいは生成手続きブロックへ制御を渡す手続
き1201,1203に変更し(ステップ8,9)、識
別情報(AE010.53,AE010.54)に基づ
く検出で、データ項目を保存する他データ部品を検出し
なければ、このデータ項目を、自データ部品の手続きブ
ロック内でのみ利用するデータ項目1202としてこの
手続きブロック内で定義することを特徴とする。また、
(6)上記(1)から(5)のいずれかに記載のソフト
ウェア部品作成方法において、手続きブロック内に、他
の手続きブロックへ制御を渡す手続き709があれば、
この他手続きブロックを保存する他データ部品を識別情
報(AE010.112)に基づき検出し、他手続きブ
ロックへ制御を渡す手続きを、識別情報に基づき検出し
た他データ部品の他手続きブロックへ制御を渡す手続き
1204に変更し(ステップ10)、識別情報に基づく
検出で、他手続きブロックを保存する他データ部品を検
出しなければ、この他手続きブロック内で生成するデー
タ項目を保存する他データ部品を、識別情報に基づき検
出し、この検出した1つ以上の他データ部品のいづれ
か、あるいは全てに、他手続きブロックを名称変更して
作成して保存し、他手続きブロックへ制御を渡す手続き
を、各他データ部品に保存した他手続きブロックの1つ
へ制御を渡す手続きに変更することを特徴とする。ま
た、(7)既存のプログラムの解析に基づき、この既存
プログラムに含まれるデータ項目とこのデータ項目を生
成する手続きとを抽出し、新規ソフトウェアに再利用す
るデータ部品を作成するソフトウェア部品作成方法であ
って、データ部品に保存するデータ項目および手続き
と、既存プログラムにおけるデータ項目および手続きと
を対応付ける識別情報を設定し、解析した既存プログラ
ム内の手続きで参照あるいは生成するデータ項目を保存
しているデータ部品を、識別情報に基づき検出し、この
検出したデータ部品に、データ項目を参照する手続きブ
ロックあるいは生成する手続きブロックを作成して保存
し、既存プログラム内の参照手続きあるいは生成手続き
を、データ部品に作成して保存した参照手続きブロック
あるいは生成手続きブロックに制御を渡す手続きに変更
し(ステップ8,9)、既存プログラムにおけるデータ
項目の定義部分に、検出したデータ部品の定義を追加す
ることを特徴とする。また、(8)上記(7)に記載の
ソフトウェア部品作成方法において、識別情報に基づ
き、既存プログラムから、手続きブロック毎に、この手
続きブロックに含まれる各データ項目を保存する各デー
タ部品を、識別情報に基づき検出し、この検出回数を、
手続きブロック毎に各データ部品別に計数し、この計数
結果に基づき手続きブロックを保存するデータ部品を特
定し(ステップ14)、この特定したデータ部品に手続
きブロックを複写し、この複写した手続きブロックに含
まれる各データ項目の内、複写先のデータ部品に保存し
ているデータ項目に対応するデータ項目を、識別情報に
基づき検出し、この検出したデータ項目の名称を、複写
先のデータ部品に保存しているデータ項目の名称に変更
する(ステップ5)ことを特徴とする。また、(9)上
記(1)〜(8)に記載のソフトウェア部品作成方法に
おいて、手続きブロックを、プログラム言語に依存しな
い仕様情報としてデータ部品に保存し、このデータ部品
に保存した手続きブロックから任意のプログラム言語に
よるコードを生成する(ステップ6,16)ことを特徴
とする。
【0012】
【発明の実施の形態】本発明においては、データ依存関
係、時間依存関係の組み合わせで作成された手順のう
ち、既存プログラムの作成者が、まとまった単位として
分類した手続きブロック(データの生成順序を機能単位
にまとめ、プログラム言語により明示して記述されてい
る)を、抽出の一単位とすることで、データの生成順序
を抽出することができる。
【0013】すなわち、本発明においては、プログラム
の解析に基づき抽出したデータ部品(データ項目に着目
したソフトウェア部品)内のデータ項目と、このデータ
項目を作成する手続きとを、既存プログラムのプログラ
ム名と行番号等からなる識別情報により対応付ける。こ
のことにより、この識別情報に基づき、既存プログラム
から、データ部品に保存するデータ項目を生成する手続
きを包含する手続きブロックを抽出することが可能とな
る。さらに、抽出した手続きブロックに含まれる各デー
タ項目の内、データ部品に保存するデータ項目に対応す
るデータ項目も検出可能となる。そして、手続きブロッ
クのデータ項目の名称を、データ部品に保存するデータ
項目の名称に変更した後、この手続きブロックをデータ
部品に保存することにより、データ部品内で影響を受け
るデータ項目が明確になり、データ部品の再利用におけ
る理解が容易となると共に、ソフトウェア部品群内で矛
盾無く動作できるようソースコードを変更することがで
きる。
【0014】さらに、抽出した手続きブロック内で、参
照手続きの変更と他データ部品への保存、生成手続きの
変更と他データ部品への保存、及び、他手続きブロック
に制御を渡す手続きの変更と他データ部品への他手続き
ブロックの保存を行なうことにより、手続きブロック内
の各種手続きを、他のデータ部品を利用した手続きに変
換し、他のデータ部品の操作手続きを拡張することがで
きる。このことにより、既存ソフトウェア資産(プログ
ラム)の機能を、データ部品群を利用した機能に再構築
することができる。
【0015】また、抽出した手続きブロックの一覧表
を、利用者に提示し、利用者が選択した手続きブロック
のみを、データ部品への保存対象とすることにより、あ
るいは、任意の手続きのまとまりを利用者が指示して、
手続きブロックとして抽出することにより、任意の機能
のみをデータ部品に保存することができる。このことに
より、再利用性の高い機能のみを持つコンパクトなデー
タ部品を作成することができる。
【0016】さらに、データ部品に保存する各種操作手
続きを、プログラム言語に依存しない仕様情報として保
存し、この仕様情報から任意のプログラム言語によるコ
ードを生成する。このことにより、新規開発ソフトウェ
アのプログラム言語に合わせたコードを、プログラミン
グの基礎的エラー無く生成でき、再利用性の高いデータ
部品の作成と、新規開発ソフトウェアの品質を向上する
ことができる。
【0017】また、解析したプログラムの各手続きの
内、データ部品に関係付けられた各データ項目の手続き
部分をデータ部品に保存し、プログラムの当該する手続
き部分を、このデータ部品を利用する手続きに変更し、
かつ、プログラムのデータ定義部にこのデータ部品を定
義する。このように、任意のソースプログラム内の手続
き全体を、ソフトウェア部品への制御を渡す手続きに変
更することで、既存ソースプログラムの機能を維持した
まま、ソフトウェア部品を利用した新規開発ソフトウェ
アの一部にすることができる。このことにより、データ
部品を利用する、既存プログラムと同機能のプログラム
を作成でき、データ部品の保守や差し替えによる影響を
受けない保守性の高いプログラムを作成することができ
ると共に、既存ソフトウェア資産の継承率を向上させる
ことができる。
【0018】また、手続きブロック毎に、各データ部品
内のデータ項目に関連する手続きの数を、データ部品の
構成比として算出し、一定の割合を超えたデータ部品を
特定し、手続きブロックを、特定したデータ部品の操作
手続きとして保存する。このことにより、データ部品の
機能を拡張することができ、かつ、データ部品間で同一
機能を重複して持つことを回避することができ、コンパ
クトなデータ部品群を作成することができる。
【0019】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。まず、図1〜図8を用いて、本発明の第1の
実施例を説明する。図1は、本発明のソフトウェア部品
作成方法の本発明に係る処理手順の第1の実施例を示す
フローチャートであり、図2は、その処理を行なうシス
テムの構成を示すブロック図である。また、図3は、本
発明のソフトウェア部品作成方法の対象となるソースプ
ログラム例を示し、図4は、図1におけるソフトウェア
部品作成方法で作成されるデータ部品の一例を示し、図
5は、図1におけるソフトウェア部品作成方法における
手続きブロックの抽出手順の詳細を示し、図6は、図1
におけるソフトウェア部品作成方法で作成される手続き
ブロック情報を持つデータ部品の一例を示し、図7は、
図1におけるソフトウェア部品作成方法で作成される手
続きブロックを含むデータ部品の一例を示し、図8は、
図1におけるソフトウェア部品作成方法でコード生成さ
れたソースプログラムの一例を示している。
【0020】図2において、201はCPU(Central
Processing Unit;中央処理装置)、202はメモリ、2
03はHDD(Hard Disk Drive;ハードディスク装置)
等からなる外部記憶装置、204はキーボードやマウス
等からなる入力装置、205はCRT(Cathode Ray Tu
be;陰極線管)等からなる出力装置である。メモリ20
2には、図4におけるデータ部品400のメモリ内表現
の情報が格納される。外部記憶装置203には、図4に
おけるデータ部品400の外部記憶表現の情報と、図3
のソースプログラム300および図8のソースプログラ
ム800とが格納される。CPU201は、メモリ20
2および外部記憶装置203に格納された本発明に係る
処理プログラムに基づき、本発明に係るソフトウェア部
品の作成を行なう。
【0021】以下、本第1の実施例のソフトウェア部品
抽出動作を図1に従って説明する。まず、ステップ1で
は、図2の外部記憶装置203に蓄積している図3に示
すソースプログラム300等を入力して、プログラム言
語に従って構文解析し、図2のメモリ202内に記憶す
る。図3におけるソースプログラム300は、COBO
L言語で記述されたソースプログラムの例を示してい
る。ソースプログラムの構文解析は、コンパイラで行っ
ている公知の技術である。本実施例では、説明を容易に
するため解析結果の複雑なメモリ内表現をさけ、ソース
プログラムによって説明する。従って、ソースプログラ
ム中のデータ項目定義の識別、1手続き(プログラム言
語によっては「命令」とも呼ぶ)の識別には、「プログ
ラム名+行番号」を用い、「ソース識別子」と記述す
る。このことにより、本発明の特徴が損なわれることは
ない。
【0022】例えば、図3において、語(PROGRA
M−ID)301は、これに続く語がプログラム名であ
ることを示す予約語であり、プログラム名302を得
る。また、行番号303を解析し、データ項目名304
とデータ属性305を得、例えば、プログラム名「AE
010」の行「50」を用いて、他のデータ定義と識別
する。また、行番号306を解析し、語307により、
手続きブロックの手続きブロック名308(支給計算)
と手続きブロックの開始行306(100)を得、行番
号309を解析し、語310により、手続きブロック名
308(支給計算)で示す手続きブロックの終了行30
9(111)を得る。
【0023】次に、図1におけるステップ2では、ステ
ップ1で解析した情報から、既存ソフトウェア中のコー
ド設計されたコードを示すデータ項目を、データ部品を
識別するキーとし、識別するキーの値により唯一に決定
する値を持つデータ項目、および、このデータ項目が示
すデータを作成する手続き(以下、生成手続きと記述す
る)を含むデータ部品を、例えば、特願平5−2904
67「階層仕様情報作成方法」に示す技術により作成す
る。しかし、ステップ2では、この技術の使用が前提で
はなく、既存ソフトウェア内のデータ項目から抽出した
データ項目と、このデータ項目に関連する手続きを一体
化したデータ部品を作成することにより、データ部品内
のデータ項目に関連する既存ソフトウェア内のデータ項
目を検出することを目的としている。尚、データ部品内
のデータ項目を、ソースプログラム内のデータ項目と明
確に識別するために、「データ属性」と以下記述する。
【0024】解析したソースプログラムのデータ項目定
義の内、データ項目名にコードを示す、例えば、「コー
ド」や「NO」等を持つデータ項目を抽出し(このよう
にコード設計された項目は再利用性が高い)、このデー
タ項目を、他データ部品と識別するためのキーとするデ
ータ属性としたデータ部品を新規に作成し、関連する任
意のデータ項目を利用者の指示により、このデータ部品
内のデータ属性として作成し、メモリ内に記憶する。こ
のようにして作成されたデータ部品の例を図4に示す。
【0025】例えば、図3で示すデータ項目名304
は、名称の一部に「コード」を持つので、このデータ項
目名304をキーとする図4で示すデータ部品400を
作成し、データ部品名401(社員)を利用者の指示に
より付加する。図3で示すデータ項目名304は、図4
で示すソース識別子403を持つデータ属性402とし
て記憶する。このソース識別子403は、元になったデ
ータ項目を識別するための情報で、本例では、「ソース
プログラム名+行番号」(AE010.50)で示して
いる。
【0026】次に図1におけるステップ3では、ステッ
プ2により作成された複数のデータ部品群について、以
下で示すステップ4、ステップ5の処理を終了している
場合、ステップ6の処理を行う。このステップ4、ステ
ップ5では各データ部品毎に処理を行う。すなわち、ス
テップ4では、データ部品内の各データ属性毎に、関連
するソースプログラム中のデータ項目毎に、このデータ
項目の生成手続きを含む手続きブロックを抽出する。
【0027】図5は、ステップ4の詳細な処理手順を示
し、図6は、関連する手続きブロックを記憶したデータ
部品の例を示す。ステップ4の詳細な処理手順を図5に
従って説明する。ステップ501では、データ部品内の
各データ属性について、関連する手続きブロックの抽出
処理が終了した場合、ステップ4を終了し、未終了の場
合、未処理のデータ属性について、関連する手続きブロ
ックの抽出処理を行う。ステップ502では、未処理の
データ属性について、このデータ属性の抽出元の各デー
タ項目毎に、このデータ項目が生成先となる生成手続き
をソースプログラムの手続き部分より全て検出し、検出
した生成手続きを識別する情報であるソース識別子を全
て記憶する。
【0028】例えば、図4で示すデータ属性404は、
抽出元データ項目のソース識別子405を持ち、このソ
ース識別子405は、プログラム名「AE010」、行
番号「51」を表し、図3のデータ項目定義311を示
している。データ項目定義311のデータ項目名「支給
額」を生成先とする生成手続きを、同一プログラム内の
手続き部分から検索する。図3の例では、手続き312
が該当し、この手続きを識別するソース識別子をメモリ
内に一時記憶する。複数の生成手続きを検出した場合、
全てのソース識別子を記憶する。また、図4で示すデー
タ属性404の他の抽出元データ項目についても同様の
検索を行い、生成手続きを示す全てのソース識別子を記
憶する。
【0029】図5におけるステップ503では、ステッ
プ502で検出しメモリ内に記憶した複数の生成手続き
のソース識別子について、全て処理を終了した場合、ス
テップ501に戻り、未処理のソース識別子がある場
合、未処理のソース識別子についてステップ504以下
の処理を行う。ステップ504では、ステップ502に
より抽出した生成手続きを示すソース識別子の内の1つ
について、このソース識別子が示す生成手続きを包含す
る手続きブロックを抽出する。
【0030】すなわち、ソース識別子の示す行番号を範
囲内に持つ手続きブロックを、解析したソースプログラ
ムから検出し、手続きブロックの開始位置、終了位置を
ソース識別子として記憶する。手続きブロックの検出方
法は、例えば、探索元のソース識別子の示す行番号よ
り、少ない行番号の方向に順次、手続きが手続きブロッ
クの開始か否か判定し、手続きブロックの開始であれ
ば、そのソース識別子を記憶する。また、探索元のソー
ス識別子の示す行番号より、大きい行番号の方向に順
次、手続きが手続きブロックの終了か否か判定し、手続
きブロックの終了であれば、そのソース識別子を記憶す
る。
【0031】例えば、図3で示す手続き312の場合、
行番号「110」を起点に、行番号の少なくなる方向に
手続きブロックの開始位置の探索をする。例では、行番
号306「100」で示す手続きが、手続きブロックの
開始であるため、手続きブロック名308「支給計算」
および、この手続きのソース識別子「AE010.10
0」を検出する。また、行番号「110」を起点に、行
番号の多くなる方向に手続きブロックの終了位置の探索
をする。例では、行番号309「111」で示す手続き
が、手続きブロックの終了であるため、この手続きのソ
ース識別子「AE010.111」を検出する。
【0032】次に、図5におけるステップ505では、
データ部品内の手続き部に、ステップ504で検出した
手続きブロックの情報を重複無く記憶するため、既にス
テップ504で検出した手続きブロックの情報が、デー
タ部品内の手続き部にある場合、ステップ503に戻
り、ない場合は、ステップ506に進む。このステップ
506では、ステップ504で検出した手続きブロック
情報を、データ部品内の手続き部に記憶する。手続きブ
ロック情報は、手続きブロック名、手続きブロック開始
・終了位置を示すソース識別子である。
【0033】図6に、このような手続きブロックの開始
・終了位置を保存したデータ部品の例を示す。例えば、
図5のステップ504で検出した図3で示す手続きブロ
ック名308と、この手続きブロックの開始位置を示す
ソース識別子「AE010.100」、および、終了位
置を示すソース識別子「AE010.111」を、図6
で示すデータ部品内の手続き部に手続き名601、ソー
ス識別子602、およびソース識別子603として記憶
する。
【0034】次に、図1に戻り、ステップ5では、ステ
ップ4により作成した手続きブロック情報を含むデータ
部品内に、手続きブロック情報の示すソースプログラム
の手続きブロックを複写し、このデータ項目内のデータ
属性と関連を持つデータ項目の名称が、複写した手続き
ブロック内に含まれる場合、手続きブロック内のこのデ
ータ項目名を対応するデータ属性名に変更する。図7
に、データ属性名で変更した手続きブロックを含むデー
タ部品の例を示す。
【0035】例えば、図6の手続きブロックの開始位置
を示すソース識別子602と終了位置を示すソース識別
子603により、図3で示す行番号306「100」か
ら、行番号309「111」までの手続きを、1手続き
ブロックとして図7で示す手続き部に手続きブロック7
01として複写する。図3で示すデータ項目名313
は、データ項目定義311に定義されており、ソース識
別子は「AE010.51」となる。この識別子は、図
7で示すデータ部品内のデータ属性定義の中の探索によ
り、ソース識別子405に該当し、データ属性名404
を得る。このデータ属性名「総支給」により、複写した
手続きブロック内の対応するデータ項目名を、データ属
性名702として変更する。
【0036】図1におけるステップ6では、作成したデ
ータ部品群から、仕様情報としてのデータ部品、あるい
は任意のプログラム言語に従ったコードを作成し、外部
記憶装置に保存する。データ部品は、データ部品名と、
データ属性定義部、および手続き部により構成している
が、特定のプログラム言語に従った記述形式で記憶して
いない仕様情報である。
【0037】図8に、オブジェクト指向COBOL言語
で作成したソースコードの例を示す。また、前述の図7
は、図2の外部記憶装置203に保存したデータ部品の
例でもある。例えば、図7で示す手続きブロック名70
3は、図8で示す予約語801の次の語802として、
コード作成する。また、図7で示す手続きブロック全体
704は、図8の予約語803に続けて、手続きブロッ
ク804としてコード作成する。
【0038】このように、本第1の実施例によれば、事
務処理ソフトウェアにおいて再利用性の高い、データ項
目に着目したデータ部品を抽出でき、既存ソフトウェア
内のデータ項目の継承・再利用を促進する。また、機能
実現の単位である手続きブロックが抽出でき、既存ソフ
トウェア内の機能の継承・再利用を促進する。さらに、
データ部品内で影響を受けるデータ属性が明示でき、デ
ータ部品の再利用における理解を支援することができ
る。
【0039】次に、図9〜図13を用い、本発明の第2
の実施例を説明する。図9は、本発明のソフトウェア部
品作成方法の本発明に係る処理手順の第2の実施例を示
すフローチャートである。本第2の実施例は、第1の実
施例に比較して、より再利用性の高いデータ部品内の手
続きブロックを作成するために、抽出した手続きブロッ
クに対し、(1)他データ部品のデータ項目を参照する
手続きの変更、(2)他データ部品のデータ項目を作成
する手続きの変更、(3)他手続きブロックに制御を渡
す手続きの変更、(4)任意の手続きブロックをデータ
部品に記憶する、図1に示される第1の実施例に加えた
ことに特徴を持つ。
【0040】本第2の実施例の処理手順は、図1の第1
の実施例とほぼ同様であるが、ステップ7〜10を加え
ている。他ステップ(ステップ1〜6)は第1の実施例
と同様である。ステップ7では、解析したソースプログ
ラムから抽出した(ステップ4)手続きブロック中の、
任意の手続きブロックを選択する。これにより、再利用
性の高い手続きブロックのみをデータ部品内に記憶する
ことが可能となり、データ部品の再利用性の向上を図る
ことができる。
【0041】図10は、図9におけるソフトウェア部品
作成方法で抽出した手続きブロック名の一覧を出力装置
に出力した例を示す説明図であり、図11は、図9にお
けるステップ8での処理対象となる他のデータ部品の例
を示す説明図である。ステップ7において、ステップ4
により抽出した手続きブロック情報を、出力装置に一覧
表示し、利用者の選択した手続きブロック情報以外の手
続きブロック情報をこのデータ部品の記憶から削除す
る。
【0042】一覧表示は、データ部品内に記憶する手続
きブロック情報毎に、手続きブロック名と、手続きブロ
ックへの入力、出力となるデータ項目を持つデータ部品
および入出力識別を構成単位として出力装置に表示す
る。手続きブロックへの入出力データ部品は、手続きブ
ロック情報の手続きブロック開始位置、終了位置で示す
ソースプログラム内で、このデータ部品内のデータ属性
以外のデータ項目について、このデータ項目をソース識
別子に持つデータ属性を記憶するデータ部品を検出し、
検出したデータ部品のデータ部品名を、このデータ項目
が生成手続きの生成側にある場合、「出力」とし、その
他の場合、「入力」とする入出力識別とともに出力装置
に表示する。
【0043】例えば、図6の手続きブロック名601,
604,605で示す手続きブロックを、図10で示す
ように、図2の出力装置205に、手続きブロック名1
001〜1003として表示する。利用者が図2の入力
装置204を操作し、例えば手続きブロック名1001
を選択することで、未選択の手続きブロック名100
2,1003に対応する図6で示す手続きブロック情報
604,605を削除する。
【0044】図10で示すデータ部品名1004は、手
続きブロック「支給計算」内で作成するデータ項目を、
データ属性に関係するデータ項目として持つデータ部品
の名称を示す。図3で示す手続き314は、データ項目
「手当金」にデータ項目「本給」と値「0.2」を掛け
合わせた結果を設定することを示す生成手続きである。
データ項目「手当金」は、図3においてデータ項目定義
315により定義されており、ソース識別子「AE01
0.54」を得る。このソース識別子「AE010.5
4」をデータ属性の関連する情報として持つデータ部品
を検索する。
【0045】本例では、図11で示すデータ部品が、ソ
ース識別子1101を持つデータ属性1102を記憶し
ており、データ部品名1103を検出し、図10で示す
データ部品名1004として、生成手続きを示す「出
力」側に表示する。データ部品名1005も同様に検出
するが、元となる手続きが生成手続き以外の場合、「入
力」側に表示する。本例では、図3で示す手続き316
が該当し、データ項目「手当コード」が関連するデータ
項目となる。
【0046】図9におけるステップ8では、ステップ5
で複写した手続きブロック内に、他のデータ部品のデー
タ属性を参照する手続きを追加することで、従来、参照
データ項目を手続きブロックの引数とすることに比べ、
他データ部品との関係を明示することができ、データ部
品を再利用する際の理解を支援することができる。
【0047】図12は、図9のソフトウェア部品作成方
法におけるステップ8の処理で変更を加えた手続きブロ
ックを持つデータ部品の例を示す説明図である。手続き
ブロック内で、このデータ部品のデータ属性以外のデー
タ項目について、参照している場合、このデータ項目を
関連するデータ項目として持つデータ属性を検索し、検
出したデータ属性を持つデータ部品に、このデータ属性
を参照する手続きブロック(以下、参照手続きブロック
と記述する)を重複することなく作成し記憶する。そし
て、元の手続きブロック内のデータ項目を参照する当該
手続き部分を、作成した参照手続きブロックに制御を渡
す手続きに変更する。
【0048】尚、参照しているデータ項目を関連するデ
ータ項目として持つデータ属性の検索で、検出しない場
合、この手続きブロック内でのみ使用するデータ項目と
して、重複することなくデータ項目定義を行う。例え
ば、図7で示す手続き705の「手当コード」は、この
データ部品のデータ属性ではない。「手当コード」は、
ソース識別子「AE010.53」としてメモリ内部で
は表されており、ソース識別子「AE010.53」を
関連するデータ項目として持つデータ属性を検索する。
本例では、図11のソース識別子1104を検出し、こ
のデータ部品に、ソース識別子1104に対応するデー
タ属性1105を参照する手続きブロック1106を作
成し記憶する。
【0049】図7で示す手続き705の「手当コード」
を、作成した手続きブロックに制御を渡す手続きに変更
する。図12で示す手続き1201は「手当コード」か
ら変更した手続きを示す。「手当」は他データ部品の名
称、「GET−手当コード」は追加した参照手続きブロ
ックの名称を示す。また、図7で示す手続き706の
「定額」は、このデータ部品のデータ属性でも、関連す
るデータ項目として持つデータ属性もない。図12に示
すデータ項目定義1202は、手続きブロック内でのみ
利用するデータ項目として定義したデータ項目「定額」
を示す。
【0050】図9におけるステップ9では、ステップ5
で複写した手続きブロック内に、他のデータ部品のデー
タ属性を生成する手続きを追加することで、ステップ8
と同じ効果を得ることができる。すなわち、従来、生成
するデータ項目を手続きブロックの引数とすることに比
べ、他データ部品との関係を明示することができ、デー
タ部品を再利用する際の理解を支援することができる。
【0051】手続きブロック内で、このデータ部品のデ
ータ属性以外のデータ項目について、生成している場合
(生成するための命令で識別でき、例えば、COMPU
TE命令、MOVE命令等)、このデータ項目を関連す
るデータ項目として持つデータ属性を検索し、検出した
データ属性を持つデータ部品に、このデータ属性を生成
する手続きブロック(以下、生成手続きブロックと記述
する)を重複することなく作成し記憶する。元の手続き
ブロック内のデータ項目を生成する手続きを、作成した
生成手続きブロックに制御を渡す手続きに変更する。
【0052】生成しているデータ項目を関連するデータ
項目として持つデータ属性の検索で、検出しない場合、
この手続きブロック内でのみ使用するデータ項目とし
て、重複することなくデータ項目定義を行う。例えば、
図7で示すデータを生成するための手続き707の生成
先のデータ項目名「手当金」は、このデータ部品のデー
タ属性ではない。「手当金」は、ソース識別子「AE0
10.54」としてメモリ内部では表されており、この
ソース識別子「AE010.54」を関連するデータ項
目として持つデータ属性を検索する。
【0053】本例では、図11のソース識別子1101
を検出し、このデータ部品に、ソース識別子1101に
対応するデータ属性1102を生成する手続きブロック
1107を作成し記憶する。手続きブロック1107
は、元になった生成手続き「COMPUTE 手当金
= 基本給 * 0.2」の中で、参照するデータ項目
「基本給」「0.2」を引数1108とし、生成手続き
をそのまま設定する。ただし、定数(数値定数、文字定
数などで、本例では「0.2」)は、データ項目名に変
更する。また、生成手続きが異なる場合、生成手続きブ
ロックも異なる(生成手続きブロック1107と生成手
続きブロック1109)。
【0054】その後、図7で示す手続き707を、作成
した手続きブロックに制御を渡す手続きに変更する。図
12における手続き1203は変更した手続きを示し、
「手当」は他データ部品の名称、「PUT−手当コー
ド」は追加した生成手続きブロックの名称、「[基本
給,0.2]」は引数を示す。また、図7で示す手続き
708の「定額」は、このデータ部品のデータ属性で
も、関連するデータ項目として持つデータ属性もない。
そして、図12に示すデータ項目定義1202は、ステ
ップ8で既に記憶済みのため、重複して作成しない。
【0055】図9において、ステップ10では、ステッ
プ5で複写した手続きブロック内の、他の手続きブロッ
クへ制御を渡す手続きを、他のデータ部品の手続きブロ
ックへ制御を渡す手続きに変更することで、ステップ8
と同じ効果を得ることができる。すなわち、従来の機能
としての手続きブロックに比較して、他データ部品との
関係を明示することができ、データ部品を再利用する際
の理解を支援することができる。
【0056】手続きブロック内で、他の手続きブロック
へ制御を渡す手続きについて、他の手続きブロックのソ
ース識別子を持つ手続きブロック情報を、メモリ内に記
憶するデータ部品群から検索し、検出したデータ部品の
手続きブロックへ制御を渡す手続きに変更する。また、
該当する手続きブロックを検出しない場合、他手続きブ
ロック内で生成するデータ項目を関連するデータ項目と
して持つデータ属性を検索し、検出した1つ以上のデー
タ部品のいづれか、あるいは全てに他手続きブロックを
保存し、この手続きブロックの1つへ制御を渡す手続き
に変更する。
【0057】図13は、手続きブロック「税金計算」を
持つデータ部品の例を示す説明図である。例えば、図7
で示す他の手続きブロックへ制御を渡す手続き709の
示す手続きブロック「税金計算」は、ソース識別子「A
E010.112」としてメモリ内部では表されてお
り、ソース識別子「AE010.112」を手続きブロ
ック開始位置として持つ手続きブロック情報を検索す
る。本例では、図13のソース識別子1301を検出
し、手続きブロック名1302を得る。図7で示す手続
き709を、検出した手続きブロックに制御を渡す手続
きに変更する。図12の手続き1204は変更した手続
きを示す。「税金」は他データ部品の名称、「税金計
算」は検出した生成手続きブロックの名称を示す。
【0058】また、ソース識別子「AE010.11
2」を手続きブロック開始位置として持つ手続きブロッ
ク情報を検出できなかった場合、ソースプログラム内の
手続きブロック「税金計算」で生成しているデータ項
目、例えば、データ項目名317「税率数」は、ソース
識別子「AE010.56」としてメモリ内部では表さ
れており、ソース識別子「AE010.56」を持つデ
ータ属性を検索する。本例では、図13で示すソース識
別子1303を検出し、データ部品1300の手続きブ
ロックとして、手続きブロック「税金計算」を作成す
る。この場合の作成手順は、第1の実施例で示したとお
りである。
【0059】このように、本第2の実施例によれば、第
1の実施例で示したデータ部品よりも、データ部品間の
関係が明瞭な手続きブロックを抽出でき、再利用時の理
解を促進する。また、データ部品の組み合わせを手続き
ブロック内で行うことで、新規にデータ部品を組み合わ
せる手続きを作成することなく既存ソフトウェア資産の
継承率を向上させることができる。
【0060】次に、図14,15を用い、本発明のソフ
トウェア部品作成方法の第3の実施例を説明する。図1
4は、本発明のソフトウェア部品作成方法の本発明に係
る処理手順の第3の実施例を示すフローチャートであ
る。上述の第1,第2の実施例に示したものよりも、再
利用性の高いデータ部品内の手続きブロックを作成する
ために、本第3の実施例では、図9の処理手順に示され
る第2の実施例の手続きブロックを抽出する方法を、利
用者の指示により任意の手続きのまとまりを手続きブロ
ックとして抽出することに特徴を持つ。本第3の実施例
の処理手順は、第2の実施例とほぼ同様であるが、ステ
ップ4をステップ11に変更している。他ステップは第
2の実施例と同様である。
【0061】図14において、ステップ11では、解析
したソースプログラムの手続き部を図2の出力装置20
5に表示し、利用者の指示により、任意の手続きのまと
まりを手続きブロックとすることで、複数の機能を持つ
手続きブロックを機能毎に分割することが可能となり、
データ部品の再利用性の向上を行うことができる。すな
わち、利用者の指示により、解析したソースプログラム
の任意のプログラムについて、手続き部分を図2の出力
装置205に表示し、利用者の指示した手続きのまとま
りを手続きブロックとして、この手続きブロック内で生
成するデータ項目を関連するデータ項目として持つデー
タ属性を検索し、検出した1つ以上のデータ部品のいづ
れか、あるいは全てに、この手続きブロックを保存す
る。
【0062】図15は、図14におけるソフトウェア部
品作成方法により任意の手続きのまとまりを設定したデ
ータ部品の例を示す説明図である。例えば、図3で示す
ソースプログラムを図2の出力装置205に表示し、利
用者の指示により、行番号「101」から行番号「10
8」を手続きブロックとして指定された場合、この手続
きブロック内で生成するデータ項目、例えば、手続き3
14の「手当金」は、ソース識別子「AE010.5
4」としてメモリ内部では表されており、ソース識別子
「AE010.54」を持つデータ属性を検索する。
【0063】本例では、図15のソース識別子1501
を検出し、データ部品1500の手続きブロックとし
て、手続きブロック1502「手当計算」を作成する。
尚、手続きブロックの名称は利用者の指示による。そし
て、データ部品内の手続きブロックの作成手順は、第
1、第2の実施例で示したとおりである。本第3の実施
例によれば、第2の実施例で示したデータ部品よりも、
任意の機能で手続きブロックを作成することができ、再
利用性の高い手続きブロックを持つデータ部品をの作成
を可能にし、また、再利用時の理解を促進することがで
きる。
【0064】次に、図16,17を用い、本発明のソフ
トウェア部品作成方法の第3の実施例を説明する。図1
6は、本発明のソフトウェア部品作成方法の本発明に係
る処理手順の第4の実施例を示すフローチャートであ
る。本第4の実施例は、既存ソフトウェア資産の継承率
向上のために、解析したソースプログラム毎に、手続き
ブロック内のデータ項目の参照及び生成について、関連
するデータ部品の手続きブロックへ制御を渡す手続きに
変更し、同一機能を持ち、データ部品を利用したソース
プログラムを作成することに特徴を持つ。本実施例の処
理手順は第2の実施例とほぼ同様であるが、ステップ
3,4,6,7,10を削除し、ステップ12,13,
14,15を追加している。他のステップは第2の実施
例と同様である。
【0065】図16において、ステップ12では、解析
したソースプログラム毎に処理を行うため、処理するプ
ログラムがない場合、本処理手順を終了する。処理する
ソースプログラムがある場合、該当するソースプログラ
ムについて、以下の処理を行う。まず、ステップ13で
は、このソースプログラム内の手続きブロック毎に、以
下の処理を行うため、処理する手続きブロックがない場
合、ステップ16に進み、処理する手続きブロックがあ
る場合、該当する手続きブロックについて、ステップ1
4の処理を行う。
【0066】このステップ14では、該当する手続きブ
ロック内で利用するデータ項目を関連するデータ項目と
して持つデータ属性を検索し、検出したデータ部品の重
複数を、この手続きブロック内で集計し、データ部品の
構成比が一定の割合を超えた場合、一定の割合を超えた
データ部品内に、この手続きブロックを保存することを
決定する。
【0067】図17は、図16におけるソフトウェア部
品作成方法により集計されたデータ部品毎の構成比表示
の例を示す説明図である。本例は、手続きブロック「支
給計算」内の関連するデータ部品の集計をメモリ内に記
憶した集計表の例を示す。すなわち、図3で示すソース
プログラムの手続きブロック「支給計算」において、デ
ータ項目、例えば、手続き314の「手当金」は、ソー
ス識別子「AE010.54」としてメモリ内部では表
されており、ソース識別子「AE010.54」を持つ
データ属性を検索する。
【0068】本例では、図15のソース識別子1501
を検出し、データ部品名「手当」として計数する。この
手続きブロック内の全データ項目について、計数後、そ
の構成比を計算する。図17で示す欄1701は検出し
たデータ部品名を記憶し、検出できなかったデータ項目
については、本欄が「未検出」の行に計数する。欄17
02は、同一データ部品名の計数値を記憶し、欄170
3は、計数後、各データ部品毎の構成比を算出した値を
記憶する。一定の割合を予め設定しておき、例えば、割
合設定値1704「50%」以上と設定した場合、本例
では、データ部品名「手当」が該当し、手続きブロック
「支給計算」は、データ部品「手当」の手続きブロック
として決定する。
【0069】もし、割合設定値1704が「60%」だ
った場合、該当するデータ部品がないため、この手続き
ブロックをデータ部品の手続きブロックとするための、
データ部品がないことを示す。図16において、ステッ
プ15では、ステップ14で該当するデータ部品が決定
した場合のみ、ステップ5の処理を行い、手続きブロッ
クを決定したデータ部品に設定する。
【0070】また、ステップ16では、対象としたソー
スプログラムの手続きブロックを上述の手順により、変
更したソースプログラムのコードを生成する。このステ
ップでの処理は、図1,9,14におけるステップ6と
ほぼ同様で、生成するコードの単位がデータ部品と、プ
ログラムの違いのみである。このようにして、本第4の
実施例によれば、既存ソフトウェア資産の一部をデータ
部品として継承した前述までの第1〜第3の実施例より
も、既存ソフトウェア資産のソースプログラム単位で、
かつ、再利用性の高いデータ部品を利用したソースプロ
グラムとして継承でき、既存ソフトウェア資産の継承率
の向上の効果がある。
【0071】以上、図1〜図17を用いて説明したよう
に、本実施例のソフトウェア部品作成方法では、データ
項目に着目したデータ部品の抽出と、機能実現の単位で
ある手続きブロックが抽出でき、既存ソフトウェア資産
の継承において重要なデータ項目の再利用と、機能を示
す手続きブロックの再利用により、生産性の向上、業務
仕様の信頼性、品質の向上、及び、再利用性の向上をは
かることができる。また、抽出した手続きブロック内の
参照手続きの変更と他データ部品への参照手続きブロッ
クの追加、および、抽出した手続きブロック内の生成手
続きの変更と他データ部品への生成手続きブロックの追
加、さらに、抽出した手続きブロック内の他手続きブロ
ックに制御を渡す手続きの変更と他データ部品への他手
続きブロックの追加により、ソフトウェア部品群内で矛
盾無く動作できるようソースコードを変更することを可
能にし、業務仕様の信頼性、品質の向上、及び、再利用
性の向上をはかることができる。
【0072】また、抽出した手続きブロックの一覧表
を、利用者に提示し、任意の手続きを、データ部品に保
存するステップの対象とすることにより、任意の機能を
持つ再利用性の高いデータ部品を作成することができ、
再利用性の向上をはかることができる。また、任意の手
続きのまとまりを利用者が指示し、手続きブロックとし
て抽出することにより、任意の機能を持つ再利用性の高
いデータ部品を作成することができ、再利用性の向上を
はかることができる。
【0073】また、任意のソースプログラム内の手続き
全体を、データ部品への制御を渡す手続きに変更するこ
とで、既存ソースプログラムの機能を維持し、データ部
品を利用した新規開発ソフトウェアの作成を可能にし、
既存ソフトウェア資産の継承率を向上することができ
る。また、手続きブロック毎に、利用するデータ部品の
構成比により決定したデータ部品の手続きブロックとし
て追加することにより、既存ソースプログラムの機能を
維持し、データ部品を利用した新規開発ソフトウェアの
作成を可能にし、既存ソフトウェア資産の継承率を向上
することができる。また、データ部品から任意のプログ
ラム言語によるコードを生成することことにより、新規
開発ソフトウェアの品質を向上することができる。
【0074】尚、本発明は、図1〜図17を用いて説明
した実施例に限定されるものではなく、その要旨を逸脱
しない範囲において種々変更可能である。例えば、本実
施例においては、「手続きブロックの抽出」に関して
は、「プログラム名と行番号」に基づき行なっている
が、プログラムの解析時にブロックの開始と終了を取得
し、包含するブロックを抽出することでも良い。また、
本第3の実施例では、第1,第2の実施例におけるステ
ップ4による手続きブロックの抽出の代わりに、既存プ
ログラムから利用者が選択したブロックの抽出を行なっ
ているが、両方の抽出技術を併用することでも良い。
【0075】
【発明の効果】本発明によれば、既存プログラムの作成
者がまとまった単位として分類した手続きブロックを抽
出の1単位とすることで、データの生成順序を抽出する
ことができ、ソフトウェア部品群内で矛盾無く動作でき
るようソースコードを変更することができ、既存ソフト
ウェア資産の継承において重要なデータ項目と機能の再
利用性を高め、ソフトウェア開発の生産性の向上と、業
務仕様の信頼性および品質の向上、並びに、既存ソフト
ウェア資産の再利用性の向上と継承率を向上することが
可能である。
【図面の簡単な説明】
【図1】本発明のソフトウェア部品作成方法の本発明に
係る処理手順の第1の実施例を示すフローチャートであ
る。
【図2】図1におけるソフトウェア部品作成方法の処理
を行なうシステムの構成を示すブロック図である。
【図3】本発明のソフトウェア部品作成方法の対象とな
るソースプログラム例を示す説明図である。
【図4】図1におけるソフトウェア部品作成方法で作成
されるデータ部品の一例を示す説明図である。
【図5】図1におけるソフトウェア部品作成方法におけ
る手続きブロックの抽出手順の詳細を示すフローチャー
トである。
【図6】図1におけるソフトウェア部品作成方法で作成
される手続きブロック情報を持つデータ部品の一例を示
す説明図である。
【図7】図1におけるソフトウェア部品作成方法で作成
される手続きブロックを含むデータ部品の一例を示す説
明図である。
【図8】図1におけるソフトウェア部品作成方法でコー
ド生成したソースプログラムの一例を示す説明図であ
る。
【図9】本発明のソフトウェア部品作成方法の本発明に
係る処理手順の第2の実施例を示すフローチャートであ
る。
【図10】図9におけるソフトウェア部品作成方法で抽
出した手続きブロック名の一覧を出力装置に出力した例
を示す説明図である。
【図11】図9におけるステップ8での処理対象となる
他のデータ部品の例を示す説明図である。
【図12】図9のソフトウェア部品作成方法におけるス
テップ8の処理で変更を加えた手続きブロックを持つデ
ータ部品の例を示す説明図である。
【図13】手続きブロック「税金計算」を持つデータ部
品の例を示す説明図である。
【図14】本発明のソフトウェア部品作成方法の本発明
に係る処理手順の第3の実施例を示すフローチャートで
ある。
【図15】図14におけるソフトウェア部品作成方法に
より任意の手続きのまとまりを設定したデータ部品の例
を示す説明図である。
【図16】本発明のソフトウェア部品作成方法の本発明
に係る処理手順の第4の実施例を示すフローチャートで
ある。
【図17】図16におけるソフトウェア部品作成方法に
より集計されたデータ部品毎の構成比表示の例を示す説
明図である。
【符号の説明】
201:CPU、202:メモリ、203:外部記憶装
置、204:入力装置、205:出力装置、300:ソ
ースプログラム、301:語、302:プログラム名、
303:行番号、304:データ項目名、305:デー
タ属性、306:行番号、307:語、308:手続き
ブロック名、309:行番号、310:語、311:デ
ータ項目定義、312:手続き、313:データ項目
名、314:手続き、315:データ項目定義、31
6:手続き、317:データ項目名、400:データ部
品、401:データ部品名、402:データ属性、40
3:ソース識別子、404:データ属性名、405:ソ
ース識別子、601:手続きブロック名、602,60
3:ソース識別子、604,605:手続きブロック情
報、701:手続きブロック、702:データ属性名、
703:手続きブロック名、704:手続きブロック全
体、705〜709:手続き、800:ソースプログラ
ム、801:予約語、802:語、803:予約語、8
04:手続きブロック、1001〜1003:手続きブ
ロック名、1004,1005:データ部品名、110
1:ソース識別子、1102:データ属性、1103:
データ部品名、1104:ソース識別子、1105:デ
ータ属性、1106:手続きブロック、1107:手続
きブロック、1108:引数、1109:手続きブロッ
ク、1201:手続き、1202:データ項目定義、1
203,1204:手続き、1300:データ部品、1
301:ソース識別子、1302:手続きブロック名、
1303:ソース識別子、1500:データ部品、15
01:ソース識別子、1502:手続きブロック、17
01〜1703:欄、1704:割合設定値。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 既存のプログラムの解析に基づき、該既
    存プログラムに含まれるデータ項目と該データ項目を生
    成する手続きとを抽出し、新規ソフトウェアに再利用す
    るデータ部品を作成するソフトウェア部品作成方法であ
    って、上記データ部品に保存する上記データ項目および
    手続きと、上記既存プログラムにおける上記データ項目
    および手続きとを対応付ける識別情報を設定し、該識別
    情報に基づき、上記既存プログラムから、上記データ部
    品に保存するデータ項目を生成する手続きを包含する手
    続きブロックを抽出し、該抽出した手続きブロックに含
    まれる各データ項目の内、上記データ部品に保存するデ
    ータ項目に対応するデータ項目を、上記識別情報に基づ
    き検出し、該検出したデータ項目の名称を、上記データ
    部品に保存するデータ項目の名称に変更し、該データ項
    目の名称を変更した上記手続きブロックを上記データ部
    品に保存することを特徴とするソフトウェア部品作成方
    法。
  2. 【請求項2】 請求項1に記載のソフトウェア部品作成
    方法において、上記識別情報を、上記既存プログラムの
    プログラム名と行番号により構成し、上記手続きブロッ
    クに包含される上記手続きの行番号より少ない行番号の
    方向に上記既存プログラムを順次検索して上記手続きブ
    ロックの開始を検出し、上記手続きの行番号より大きい
    行番号の方向に上記既存プログラムを順次検索して上記
    手続きブロックの終了を検出し、上記手続きブロックの
    開始の行番号から上記手続きブロックの終了の行番号間
    の上記既存プログラム内の手続きを上記手続きブロック
    として抽出し、該抽出した手続きブロックに含まれる各
    データ項目の内、該データ項目を定義する上記既存プロ
    グラムにおける上記行番号が、上記データ部品に保存す
    るデータ項目と同じ行番号のものを検出し、該検出した
    データ項目の名称を、上記データ部品に保存するデータ
    項目の名称に変更することを特徴とするソフトウェア部
    品作成方法。
  3. 【請求項3】 請求項1、もしくは、請求項2のいずれ
    かに記載のソフトウェア部品作成方法において、上記抽
    出した手続きブロックを一覧で出力すると共に、各手続
    きブロックで入出力対象となるデータ項目を持つデータ
    部品を上記識別情報に基づき検出し、該検出したデータ
    部品を、上記手続きブロックに対応付けて、該手続きブ
    ロックに対する入出力関係の識別と共に一覧出力し、該
    一覧から利用者が選択した手続きブロックに対しての
    み、上記名称変更を伴う上記データ部品への保存を行な
    うことを特徴とするソフトウェア部品作成方法。
  4. 【請求項4】 請求項1、もしくは、請求項2のいずれ
    かに記載のソフトウェア部品作成方法において、上記識
    別情報に基づく手続きブロックの抽出に代えて、上記既
    存プログラムから利用者が選択した手続きブロックを抽
    出し、該利用者選択の手続きブロックが生成するデータ
    項目を保存したデータ部品を上記識別情報に基づき検出
    し、該検出したデータ部品に、上記利用者が選択した手
    続きブロックを、上記名称変更を行なって保存すること
    を特徴とするソフトウェア部品作成方法。
  5. 【請求項5】 請求項1から請求項4のいずれかに記載
    のソフトウェア部品作成方法において、上記自データ部
    品の手続きブロック内に、他データ部品のデータ項目を
    参照あるいは生成する手続きがあれば、上記参照あるい
    は生成の対象となるデータ項目を保存する他データ部品
    を上記識別情報に基づき検出し、該検出した他データ部
    品内に、上記データ項目を参照する手続きブロックある
    いは生成する手続きブロックを作成して保存し、上記自
    データ部品の手続きブロック内の上記参照手続きあるい
    は生成手続きを、上記他データ部品内に保存した参照手
    続きブロックあるいは生成手続きブロックへ制御を渡す
    手続きに変更し、上記識別情報に基づく検出で、上記デ
    ータ項目を保存する他データ部品を検出しなければ、該
    データ項目を、上記自データ部品の手続きブロック内で
    のみ利用するデータ項目として該手続きブロック内で定
    義することを特徴とするソフトウェア部品作成方法。
  6. 【請求項6】 請求項1から請求項5のいずれかに記載
    のソフトウェア部品作成方法において、上記手続きブロ
    ック内に、他の手続きブロックへ制御を渡す手続きがあ
    れば、該他手続きブロックを保存する他データ部品を上
    記識別情報に基づき検出し、上記他手続きブロックへ制
    御を渡す手続きを、上記識別情報に基づき検出した他デ
    ータ部品の上記他手続きブロックへ制御を渡す手続きに
    変更し、上記識別情報に基づく検出で、上記他手続きブ
    ロックを保存する他データ部品を検出しなければ、該他
    手続きブロック内で生成するデータ項目を保存する他デ
    ータ部品を、上記識別情報に基づき検出し、該検出した
    1つ以上の他データ部品のいづれか、あるいは全てに、
    上記他手続きブロックを上記名称変更して作成して保存
    し、上記他手続きブロックへ制御を渡す手続きを、上記
    各他データ部品に保存した他手続きブロックの1つへ制
    御を渡す手続きに変更することを特徴とするソフトウェ
    ア部品作成方法。
  7. 【請求項7】 既存のプログラムの解析に基づき、該既
    存プログラムに含まれるデータ項目と該データ項目を生
    成する手続きとを抽出し、新規ソフトウェアに再利用す
    るデータ部品を作成するソフトウェア部品作成方法であ
    って、上記データ部品に保存する上記データ項目および
    手続きと、上記既存プログラムにおける上記データ項目
    および手続きとを対応付ける識別情報を設定し、上記解
    析した既存プログラム内の手続きで参照あるいは生成す
    るデータ項目を保存しているデータ部品を、上記識別情
    報に基づき検出し、該検出したデータ部品に、上記デー
    タ項目を参照する手続きブロックあるいは生成する手続
    きブロックを作成して保存し、上記既存プログラム内の
    上記参照手続きあるいは生成手続きを、上記データ部品
    に作成して保存した上記参照手続きブロックあるいは生
    成手続きブロックに制御を渡す手続きに変更し、上記既
    存プログラムにおける上記データ項目の定義部分に、上
    記検出したデータ部品の定義を追加することを特徴とす
    るソフトウェア部品作成方法。
  8. 【請求項8】 請求項7に記載のソフトウェア部品作成
    方法において、上記識別情報に基づき、上記既存プログ
    ラムから、上記手続きブロック毎に、該手続きブロック
    に含まれる各データ項目を保存する各データ部品を、上
    記識別情報に基づき検出し、該検出回数を、上記手続き
    ブロック毎に各データ部品別に計数し、該計数結果に基
    づき上記手続きブロックを保存するデータ部品を特定
    し、該特定したデータ部品に上記手続きブロックを複写
    し、該複写した手続きブロックに含まれる各データ項目
    の内、上記複写先のデータ部品に保存しているデータ項
    目に対応するデータ項目を、上記識別情報に基づき検出
    し、該検出したデータ項目の名称を、上記複写先のデー
    タ部品に保存しているデータ項目の名称に変更すること
    を特徴とするソフトウェア部品作成方法。
  9. 【請求項9】 請求項1〜8記載のソフトウェア部品作
    成方法において、上記手続きブロックを、プログラム言
    語に依存しない仕様情報として上記データ部品に保存
    し、該データ部品に保存した上記手続きブロックから任
    意のプログラム言語によるコードを生成することを特徴
    とするソフトウェア部品作成方法。
JP31997495A 1995-12-08 1995-12-08 ソフトウェア部品作成方法 Pending JPH09160765A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31997495A JPH09160765A (ja) 1995-12-08 1995-12-08 ソフトウェア部品作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31997495A JPH09160765A (ja) 1995-12-08 1995-12-08 ソフトウェア部品作成方法

Publications (1)

Publication Number Publication Date
JPH09160765A true JPH09160765A (ja) 1997-06-20

Family

ID=18116340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31997495A Pending JPH09160765A (ja) 1995-12-08 1995-12-08 ソフトウェア部品作成方法

Country Status (1)

Country Link
JP (1) JPH09160765A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001350624A (ja) * 2000-06-07 2001-12-21 Nec Corp モジュール再分割提案装置およびモジュール再分割提案方法、並びに記録媒体
KR100456023B1 (ko) * 2001-12-19 2004-11-08 한국전자통신연구원 절차 지향 프로그램을 컴포넌트 기반의 시스템으로래핑하기 위한 방법 및 그 장치
KR100496868B1 (ko) * 2001-12-28 2005-06-22 한국전자통신연구원 레가시 시스템으로부터 설계 패턴 추출을 통한 컴포넌트의생성 장치 및 방법
KR100694948B1 (ko) * 2004-04-26 2007-03-14 미츠비시덴키 가부시키가이샤 프로그램 실행 제어 방식
JP2008217292A (ja) * 2007-03-02 2008-09-18 Hitachi Software Eng Co Ltd ソフトウェア部品テンプレート管理システム
KR101016755B1 (ko) * 2008-07-18 2011-02-25 한국과학기술원 특정 기능에 관련된 함수 목록 작성 방법
US8429607B2 (en) 2007-06-22 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for managing variability points
US11119886B2 (en) 2016-02-17 2021-09-14 Mitsubishi Electric Corporation Software analysis apparatus, software analysis method, and computer readable medium

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001350624A (ja) * 2000-06-07 2001-12-21 Nec Corp モジュール再分割提案装置およびモジュール再分割提案方法、並びに記録媒体
KR100456023B1 (ko) * 2001-12-19 2004-11-08 한국전자통신연구원 절차 지향 프로그램을 컴포넌트 기반의 시스템으로래핑하기 위한 방법 및 그 장치
KR100496868B1 (ko) * 2001-12-28 2005-06-22 한국전자통신연구원 레가시 시스템으로부터 설계 패턴 추출을 통한 컴포넌트의생성 장치 및 방법
KR100694948B1 (ko) * 2004-04-26 2007-03-14 미츠비시덴키 가부시키가이샤 프로그램 실행 제어 방식
JP2008217292A (ja) * 2007-03-02 2008-09-18 Hitachi Software Eng Co Ltd ソフトウェア部品テンプレート管理システム
US8429607B2 (en) 2007-06-22 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for managing variability points
KR101016755B1 (ko) * 2008-07-18 2011-02-25 한국과학기술원 특정 기능에 관련된 함수 목록 작성 방법
US11119886B2 (en) 2016-02-17 2021-09-14 Mitsubishi Electric Corporation Software analysis apparatus, software analysis method, and computer readable medium

Similar Documents

Publication Publication Date Title
US5758160A (en) Method and apparatus for building a software program using dependencies derived from software component interfaces
US9471575B2 (en) Managing changes to one or more files via linked mapping records
US9779158B2 (en) Method, apparatus, and computer-readable medium for optimized data subsetting
CN103729580A (zh) 一种检测软件抄袭的方法和装置
JP2005515518A (ja) レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム
JPH10509264A (ja) 現存する関係データベーススキーマから意味オブジェクトモデルを作成するコンピュータシステム
US8548967B1 (en) System for visual query and manipulation of configuration management records
CN113168497A (zh) 改进的电子表格和用于更新电子表格的方法
US20020013779A1 (en) Reverse foreign key techniques in website development
EP2199905A1 (en) Lifecycle management and consistency checking of object models using application platform tools
JPH09160765A (ja) ソフトウェア部品作成方法
JPH07141168A (ja) 階層仕様情報作成方法
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
JP4948126B2 (ja) Java(登録商標)言語プログラムを用いた大規模業務システムを分析するプログラム及びその処理方法
RU2260206C2 (ru) Способ и устройство для воспроизведения программы и носитель с записанной на нем программой для воспроизведения программы
JP2785317B2 (ja) ソフトウェア標準化方法
JPH08147152A (ja) ソフトウェア仕様再利用支援装置
CN109739835A (zh) 一种数据版本保存方法及装置
JPH06348477A (ja) ソフトウエア開発システム
Alexis et al. Improving geocoding quality via learning to integrate multiple geocoders
JP2015011685A (ja) ビジネスルール管理システム及びビジネスルール管理方法
JPH05197534A (ja) プログラムデータベースシステム
EP4290368A1 (en) Computer-implemented method and system for generating a command pipeline for controlling a technical device
JPH0736684A (ja) ドメイン指向部品管理方法
JP4936684B2 (ja) 仕様再利用支援装置及び仕様再利用支援プログラム