図面 (/)

技術 オブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体

出願人 日本電信電話株式会社
発明者 大嶋嘉人内川昌平関根純
出願日 1998年7月23日 (21年11ヶ月経過) 出願番号 1998-208241
公開日 2000年2月8日 (20年4ヶ月経過) 公開番号 2000-039998
状態 未査定
技術分野 ストアードプログラム制御 特殊なプログラム実行装置 ストアードプログラム ストアードプログラム
主要キーワード 組み立て型 部品変更 導出パターン 操作変更 導出プロセス 部品提供者 複合属性 雛形情報
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2000年2月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

部品に対して指定された変更操作から、それに必要な波及的変更操作の導出の自動化を行い、部品の変更が容易となるよう支援する、部品の内容に独立なオブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体を提供する。

解決手段

本発明は、指定された第1の変更種別と、第1の変更操作パラメータ適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定し、第1の変更種別と第1の変更操作パラメータを波及的変更操作指定式に適用して、波及的変更操作ある第2の変更種別と第2の変更操作パラメータを導出する。

概要

背景

オブジェクト指向設計開発手法(James Rumbaugh et al. Object-OrientedModeling and Design. Prentice-Hall International, Inc., 1992. (邦訳「オブジェクト指向方法論MT」羽生栄一監訳、トッパン、1992年))によるアプリケーションソフトウェア(以下、APと記す)は、「オブジェクト」と呼ばれる基本的なソフトウェア構成要素の組み合わせで表現される。オブジェクトとは、目的のシステムが対象とする実世界の処理や実体を表したもので、属性情報項目)、手続き(メソッド)などを持ち、それらを利用して他のオブジェクトと協調して動作する。

オブジェクトの持つ情報項目やメソッドなどは、クラスと呼ばれる、オブジェクトのテンプレートにおいて定義される。そのため、クラスの設計は、APの設計そのものに相当し、AP全体の動作を左右する非常に重要な作業となっている。このクラス設計作業の労力を削減する手法として、複数のシステムにおいて共通して見られるような部分を抽出し、協調して動作するクラス群として部品化しておき、それ以降の類似したシステムの構築の際には、それらオブジェクト指向ソフトウェア部品を再利用するという手法が提案されている(青山雄:コンポーネントウェア:部品組み立て型ソフトウェア開発技術、情報処理、Vol. 37,No.1, pp.71-79,1996 、木下茂行:上流肯定における再利用を前提としてドメインモデル使用法、情報処理、Vol.38, No.12, pp.1104-10, 1997 、Mohamed E. Fayad and Douglas C. Schmidt. Object-Oriented Application Frameworks. Comunications of theACM, Vol. 40, No.10, pp.32-38,1997)。

概要

部品に対して指定された変更操作から、それに必要な波及的変更操作の導出の自動化を行い、部品の変更が容易となるよう支援する、部品の内容に独立なオブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体を提供する。

本発明は、指定された第1の変更種別と、第1の変更操作パラメータ適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定し、第1の変更種別と第1の変更操作パラメータを波及的変更操作指定式に適用して、波及的変更操作ある第2の変更種別と第2の変更操作パラメータを導出する。

目的

それにもかかわらず、従来はこの作業を支援・自動化する技術が存在していないため、人間が人手で行っており、ソフトウェア部品を再利用する際の大きな問題点となっている。本発明は、上記の点に鑑みなされたもので、部品に対して指定された変更操作から、それに必要な波及的変更操作の導出の自動化を行い、部品の変更が容易となるよう支援する、部品の内容に独立なオブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体を提供することを目的とする。

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

オブジェクト指向ソフトウェア部品に対する変更操作波及的変更操作を導出するためのオブジェクト指向ソフトウェア部品変更支援方法において、指定された第1の変更種別と、第1の変更操作パラメータ適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定し、前記第1の変更種別と前記第1の変更操作パラメータを前記波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出することを特徴とするオブジェクト指向ソフトウェア部品変更支援方法。

請求項2

前記波及的変更操作指定式は、指定された前記第1の変更種別、前記第1の変更操作パラメータ、波及的変更操作の変更種別及び変更操作パラメータとの対応関係を表す式とする請求項1記載のオブジェクト指向ソフトウェア部品変更支援方法。

請求項3

変更種別と変更操作パラメータから構成される情報である変更操作雛形定義情報を用いて、前記第1の変更種別と、前記第1の変更操作パラメータの候補を提示する請求項1記載のオブジェクト指向ソフトウェア部品変更支援方法。

請求項4

前記波及的変更操作指定式が、部品定義情報内の関連を用いて前記第1の変更操作パラメータが示す該部品定義情報内の要素と変更の波及する部品定義情報内の要素との対応関係を記述した2次パラメータ導出式と、変更操作パラメータと2次パラメータを用いて記述した、波及的変更操作の種別と変更操作パラメータを表す式であり、該2次パラメータが変更の波及する部品定義情報内の要素である波及的変更操作記述から構成される請求項1記載のオブジェクト指向ソフトウェア部品変更支援方法。

請求項5

オブジェクト指向ソフトウェア部品に対する変更操作の波及的変更操作を導出するオブジェクト指向ソフトウェア部品変更支援装置であって、指定された第1の変更種別と、第1の変更操作パラメータを適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定する判定手段と、前記判定手段で適用すると判定された場合に、前記第1の変更種別と前記第1の変更操作パラメータを前記波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出する波及的変更操作導出手段とを有することを特徴とするオブジェクト指向ソフトウェア部品変更支援装置。

請求項6

前記波及的変更操作指定式は、指定された前記第1の変更種別及び前記第1の変更操作パラメータの対応関係を表す式とする請求項5記載のオブジェクト指向ソフトウェア部品変更支援装置。

請求項7

変更種別と変更操作パラメータから構成される情報である変更操作雛形定義情報を用いて、前記第1の変更種別と、前記第1の変更操作パラメータの候補を提示する変更操作受付処理手段を有する請求項5記載のオブジェクト指向ソフトウェア部品変更支援装置。

請求項8

前記適用条件式と前記第1の変更種別と前記第1の変更操作パラメータと前記波及的変更操作指定式から構成される波及的変更操作導出パターン定義情報を管理記憶する波及的変更操作導出パターン定義情報管理記憶手段を有する請求項5記載のオブジェクト指向ソフトウェア部品変更支援装置。

請求項9

前記変更操作雛形定義情報を管理・記憶する変更操作雛形定義情報記憶手段を有する請求項5及び7記載のオブジェクト指向ソフトウェア部品変更支援装置。

請求項10

オブジェクト指向ソフトウェア部品の変更作業の際に、該部品に対する変更操作に必要となる波及的変更操作を導出することにより該変更作業を支援するためのオブジェクト指向ソフトウェア部品変更支援装置であって、クラス、情報項目メソッドを含む部品を構成する要素と、該要素の属性、ならびに、該要素の関連を定義する情報からなる部品定義情報を蓄積する部品定義情報記憶手段と、複数の変更種別のそれぞれに対応した、該変更種別の変更操作の対象となる前記部品定義情報内の要素や変更の内容を特定するために必要な変更パラメータ、ならびに、該変更の内容を定める情報からなる変更操作雛形定義情報を複数蓄積する変更操作雛形情報記憶手段と、複数の変更種別それぞれに対応した、該変更種別の変更操作と、該変更操作に必要となる波及的変更操作との対応関係を定義する情報からなる波及的変更操作導出パターン定義情報を複数蓄積する波及的変更操作導出パターン定義情報記憶手段と、前記変更種別と前記変更パラメータの組を、順序付けて格納する変更操作記憶手段と、変更種別と変更パラメータの組を入力として受け取り、前記変更操作記憶手段に格納する変更操作受付手段と、前記変更操作記憶手段に格納されている変更操作を先頭から順に一つずつ読み出し、それぞれの変更操作について、該変更操作の変更種別に対応する全ての波及的変更操作導出パターン定義情報を前記波及的変更操作導出パターン定義情報記憶手段から読み出し、該変更操作に必要となる波及的変更操作を決定し、重複の無い限り前記変更操作記憶手段に追加格納する波及的変更操作導出手段とを有することを特徴とするオブジェクト指向ソフトウェア部品変更支援装置。

請求項11

オブジェクト指向ソフトウェア部品に対する変更操作の波及的変更操作を導出するためのオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体であって、指定された第1の変更種別と、第1の変更操作パラメータを適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定するプロセスと、前記第1の変更種別と前記第1の変更操作パラメータを前記波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出するプロセスとを有することを特徴とするオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体。

請求項12

前記波及的変更操作指定式として、部品定義情報内の関連を用いて前記第1の変更操作パラメータが示す該部品定義情報内の要素と変更の波及する部品定義情報内の要素との対応関係を記述した2次パラメータ導出式と、変更操作パラメータと2次パラメータを用いて記述した、波及的変更操作の種別と変更操作パラメータを表す式であり、該2次パラメータが変更の波及する部品定義情報内の要素あるいは、波及的変更操作の変更操作パラメータの候補である波及的変更操作記述から構成される式を用いるプロセスを含む請求項10記載のオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体。

請求項13

オブジェクト指向ソフトウェア部品の変更作業の際に、該部品に対する変更操作に必要となる波及的変更操作を導出することにより該変更作業を支援するためのオブジェクト指向ソフトウェア部品変更支援プログラムであって、変更種別と変更パラメータの組を入力として受け取り、該変更種別と該変更パラメータの組を、順序付けて格納する変更操作記憶手段に格納する変更操作受付プロセスと、前記変更操作記憶手段に格納されている変更操作を先頭から順に一つずつ読み出し、それぞれの変更操作について、該変更操作の変更種別に対応する全ての波及的変更操作導出パターン定義情報を、複数の変更種別それぞれに対応した、該変更種別の変更操作と、該変更操作に必要となる波及的変更操作との対応関係を定義する情報からなる波及的変更操作導出パターン定義情報を複数蓄積している波及的変更操作導出パターン定義情報記憶手段から読み出し、該変更操作に必要となる波及的変更操作を決定し、重複の無い限り前記変更操作記憶手段に追加格納する波及的変更操作導出プロセスとを有することを特徴とするオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体。

技術分野

0001

本発明は、オブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体係り、特に、オブジェクト指向設計開発手法を用いたアプリケーションソフトウェアの開発において、既存ソフトウェア部品現ソフトウェア開発への適用(以下、部品の再利用)を支援するシステムにおいて、再利用するソフトウェア部品の変更・集成作業が容易となるよう支援するためのオブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体に関する。

背景技術

0002

オブジェクト指向設計・開発手法(James Rumbaugh et al. Object-OrientedModeling and Design. Prentice-Hall International, Inc., 1992. (邦訳「オブジェクト指向方法論MT」羽生栄一監訳、トッパン、1992年))によるアプリケーションソフトウェア(以下、APと記す)は、「オブジェクト」と呼ばれる基本的なソフトウェア構成要素の組み合わせで表現される。オブジェクトとは、目的のシステムが対象とする実世界の処理や実体を表したもので、属性情報項目)、手続き(メソッド)などを持ち、それらを利用して他のオブジェクトと協調して動作する。

0003

オブジェクトの持つ情報項目やメソッドなどは、クラスと呼ばれる、オブジェクトのテンプレートにおいて定義される。そのため、クラスの設計は、APの設計そのものに相当し、AP全体の動作を左右する非常に重要な作業となっている。このクラス設計作業の労力を削減する手法として、複数のシステムにおいて共通して見られるような部分を抽出し、協調して動作するクラス群として部品化しておき、それ以降の類似したシステムの構築の際には、それらオブジェクト指向ソフトウェア部品を再利用するという手法が提案されている(青山雄:コンポーネントウェア:部品組み立て型ソフトウェア開発技術、情報処理、Vol. 37,No.1, pp.71-79,1996 、木下茂行:上流肯定における再利用を前提としてドメインモデル使用法、情報処理、Vol.38, No.12, pp.1104-10, 1997 、Mohamed E. Fayad and Douglas C. Schmidt. Object-Oriented Application Frameworks. Comunications of theACM, Vol. 40, No.10, pp.32-38,1997)。

発明が解決しようとする課題

0004

上記オブジェクト指向ソフトウェア部品は、類似したAPの共通部分を抽出したAPの共通部分を抽出したものではあるが、個々のシステムにはその固有の機能や、管理すべき情報が存在するため、部品を再利用する際には、目的のシステムの要求条件に合わせて修正を加える必要がある。

0005

しかし、部品に含まれるオブジェクトは互いに協調して動作するものであるから、ある一つの変更は部品の他の箇所にも影響を与えてしまい、部品の整合性を保つために、新たに2次的な変更操作が必要となることがある。このような変更操作を波及的変更操作と呼ぶ。例えば、メソッドMA をメソッドMB 内から呼び出して利用するよう設計された部品において、メソッドMA を削除した場合、メソッドMB は正常に動作しなくなる。そのため、部品の整合性を保つためにメソッドMB も削除する、といった波及的変更操作が必要となる。

0006

オブジェクト指向ソフトウェア部品には、部品を構成する要素間の依存関係多様性や、部品を構成する要素の属性による波及の仕方差異、といった特性があるため、ある変更操作に必要な波及的変更操作を全て特定する作業は、これらの特性や、変更対象の部品に関する詳細な知識・情報を要する複雑な作業となっている。

0007

それにもかかわらず、従来はこの作業を支援・自動化する技術が存在していないため、人間が人手で行っており、ソフトウェア部品を再利用する際の大きな問題点となっている。本発明は、上記の点に鑑みなされたもので、部品に対して指定された変更操作から、それに必要な波及的変更操作の導出の自動化を行い、部品の変更が容易となるよう支援する、部品の内容に独立なオブジェクト指向ソフトウェア部品変更支援方法及び装置及びオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体を提供することを目的とする。

課題を解決するための手段

0008

図1は、本発明の原理を説明するための図である。本発明(請求項1)は、オブジェクト指向ソフトウェア部品に対する変更操作の波及的変更操作を導出するためのオブジェクト指向ソフトウェア部品変更支援方法において、指定された第1の変更種別と、第1の変更操作パラメータ適用条件に適用し(ステップ1)、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定し(ステップ2)、第1の変更種別と第1の変更操作パラメータを波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出する(ステップ3)。

0009

本発明(請求項2)は、波及的変更操作指定式は、指定された前記第1の変更種別、前記第1の変更操作パラメータ、波及的変更操作の変更種別及び変更操作パラメータとの対応関係を表す式とする。本発明(請求項3)は、変更種別と変更操作パラメータから構成される情報である変更操作雛形定義情報を用いて、第1の変更種別と、第1の変更操作パラメータの候補を提示する。

0010

本発明(請求項4)は、波及的変更操作指定式が、部品定義情報内の関連を用いて第1の変更操作パラメータが示す該部品定義情報内の要素と変更の波及する部品定義情報内の要素との対応関係を記述した2次パラメータ導出式と、変更操作パラメータと2次パラメータを用いて記述した、波及的変更操作の種別と変更操作パラメータを表す式であり、該2次パラメータが変更の波及する部品定義情報内の要素である波及的変更操作記述から構成される。

0011

図2は、本発明の原理構成図である。本発明(請求項5)は、オブジェクト指向ソフトウェア部品に対する変更操作の波及的変更操作を導出するオブジェクト指向ソフトウェア部品変更支援装置であって、指定された第1の変更種別と、第1の変更操作パラメータを適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定する判定手段1000と、判定手段1000で適用すると判定された場合に、第1の変更種別と第1の変更操作パラメータを波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出する波及的変更操作導出手段2000とを有する。

0012

本発明(請求項6)は、波及的変更操作指定式は、指定された第1の変更種別及び第1の変更操作パラメータの対応関係を表す式とする。本発明(請求項7)は、変更種別と変更操作パラメータから構成される情報である変更操作雛形定義情報を用いて、第1の変更種別と、第1の変更操作パラメータの候補を提示する変更操作受付処理手段を有する。

0013

本発明(請求項8)は、適用条件式と第1の変更種別と第1の変更操作パラメータと波及的変更操作指定式から構成される波及的変更操作導出パターン定義情報を管理記憶する波及的変更操作導出パターン定義情報管理記憶手段を有する。本発明(請求項9)は、変更操作雛形定義情報を管理・記憶する変更操作雛形定義情報記憶手段を有する。

0014

本発明(請求項10)は、オブジェクト指向ソフトウェア部品の変更作業の際に、該部品に対する変更操作に必要となる波及的変更操作を導出することにより該変更作業を支援するためのオブジェクト指向ソフトウェア部品変更支援装置であって、クラス、情報項目、メソッドを含む部品を構成する要素と、該要素の属性、ならびに、該要素の関連を定義する情報からなる部品定義情報を蓄積する部品定義情報記憶手段と、複数の変更種別のそれぞれに対応した、該変更種別の変更操作の対象となる部品定義情報内の要素や変更の内容を特定するために必要な変更パラメータ、ならびに、該変更の内容を定める情報からなる変更操作雛形定義情報を複数蓄積する変更操作雛形情報記憶手段と、複数の変更種別それぞれに対応した、該変更種別の変更操作と、該変更操作に必要となる波及的変更操作との対応関係を定義する情報からなる波及的変更操作導出パターン定義情報を複数蓄積する波及的変更操作導出パターン定義情報記憶手段と、変更種別と変更パラメータの組を、順序付けて格納する変更操作記憶手段と、変更種別と変更パラメータの組を入力として受け取り、変更操作記憶手段に格納する変更操作受付手段と、変更操作記憶手段に格納されている変更操作を先頭から順に一つずつ読み出し、それぞれの変更操作について、該変更操作の変更種別に対応する全ての波及的変更操作導出パターン定義情報を波及的変更操作導出パターン定義情報記憶手段から読み出し、該変更操作に必要となる波及的変更操作を決定し、重複の無い限り変更操作記憶手段に追加格納する波及的変更操作導出手段とを有する。

0015

本発明(請求項11)は、オブジェクト指向ソフトウェア部品に対する変更操作の波及的変更操作を導出するためのオブジェクト指向ソフトウェア部品変更支援プログラムを格納した記憶媒体であって、指定された第1の変更種別と、第1の変更操作パラメータを適用条件に適用し、該第1の変更種別と該第1の変更操作パラメータを該適用条件に対応する波及的変更操作指定式に適用するかを判定するプロセスと、第1の変更種別と第1の変更操作パラメータを波及的変更操作指定式に適用して、波及的変更操作である第2の変更種別と第2の変更操作パラメータを導出するプロセスとを有する。

0016

本発明(請求項12)は、波及的変更操作指定式として、部品定義情報内の関連を用いて第1の変更操作パラメータが示す該部品定義情報内の要素と変更の波及する部品定義情報内の要素との対応関係を記述した2次パラメータ導出式と、変更操作パラメータと2次パラメータを用いて記述した、波及的変更操作の種別と変更操作パラメータを表す式であり、該2次パラメータが変更の波及する部品定義情報内の要素あるいは、波及的変更操作の変更操作パラメータの候補である波及的変更操作記述から構成される式を用いるプロセスを含む。

0017

本発明(請求項13)は、オブジェクト指向ソフトウェア部品の変更作業の際に、該部品に対する変更操作に必要となる波及的変更操作を導出することにより該変更作業を支援するためのオブジェクト指向ソフトウェア部品変更支援プログラムであって、変更種別と変更パラメータの組を入力として受け取り、該変更種別と該変更パラメータの組を、順序付けて格納する変更操作記憶手段に格納する変更操作受付プロセスと、変更操作記憶手段に格納されている変更操作を先頭から順に一つずつ読み出し、それぞれの変更操作について、該変更操作の変更種別に対応する全ての波及的変更操作導出パターン定義情報を、複数の変更種別それぞれに対応した、該変更種別の変更操作と、該変更操作に必要となる波及的変更操作との対応関係を定義する情報からなる波及的変更操作導出パターン定義情報を複数蓄積している波及的変更操作導出パターン定義情報記憶手段から読み出し、該変更操作に必要となる波及的変更操作を決定し、重複の無い限り変更操作記憶手段に追加格納する波及的変更操作導出プロセスとを有する。

0018

上記のように、本発明においては、まず、部品定義情報、変更操作雛形定義情報(変更種別と変更操作パラメータから構成される情報)、波及的変更操作導出パターン定義情報をそれぞれ、部品定義情報記憶手段、変更操作雛形定義情報記憶手段、波及的変更操作導出パターン定義情報記憶手段に予め蓄積しておく。これらの情報は過去に定義したものを再利用して蓄積したり、また、一般に多用されるものを蓄積するなどの方法をとることができる。

0019

そこで、コンテンツ等のデータ処理手段を用いて変更操作受付処理を起動し、変更操作を示す変更種別と変更パラメータの組を入力として受け取り、変更操作記憶手段に格納する。次に、波及的変更操作導出処理を起動し、変更操作記憶手段に格納されている変更操作を、先頭から順に一つずつ読み出し、それぞれの変更操作について、当該変更操作の変更種別に対する全ての波及的変更操作導出パターン定義情報を波及的変更操作導出パターン定義情報記憶手段から読み出した後、それぞれについて、部品定義情報を参照しながら適用条件を評価し、その結果が「真」であれば、部品定義情報を参照しながら波及的変更操作指定式(指定された変更種別及び変更操作パラメータと、波及的変更操作の変更種別及び変更操作パラメータとの対応関係を表す式)を評価して、波及的変更操作の変更種別と変更パラメータを決定し、それらを、重複の無い限り変更操作記憶手段に追加する、という処理を、変更操作記憶手段の末端まで繰り返し実施する。

0020

そして、波及的変更操作導出処理が終了した時点において、変更操作記憶手段に格納されている全ての変更操作を出力し、終了する。波及的変更操作導出処理では、その処理中に導出された波及的変更操作を変更操作記憶手段へ追加することにより、導出した波及的変更操作からの、さらなる波及的変更操作の導出も行われるから、変更操作記憶手段の末端の変更操作まで処理が済んだ時点で変更操作記憶手段に格納されている変更操作が、変更操作受付処理により入力された変更操作を元とする全ての波及的変更操作となる。

0021

従って、本発明の目的である、部品に対する変更操作から、それに必要な波及的変更操作の導出する作業の自動化を実現することが可能となる。また、波及的変更操作導出処理において、波及的変更操作導出パターン定義情報に記述された適用条件を、部品定義情報を参照しながら評価し、その結果で当該波及的変更操作導出パターン定義情報から波及的変更操作を導出するか否かを決定するため、部品を構成する要素の属性の違いに応じて異なる波及的変更操作が導出されうる。

0022

従って、部品を構成する要素の属性による変更操作の波及の仕方の差異を実現することができる。さらに、波及的変更操作導出パターン定義情報や変更操作雛形定義情報といった蓄積・利用する情報、及び、変更操作受付処理、波及的変更操作導出処理といった処理手段を、部品定義情報とは独立にし、波及的変更操作導出処理においてのみ、これを参照するという仕組みにより、部品定義情報の内容を変更する場合にも、部品定義情報以外の蓄積情報、及び処理手段は変更することなく利用することが可能となる。

発明を実施するための最良の形態

0023

図3は、本発明のオブジェクト指向ソフトウェア部品変更支援システムハードウェア構成を示す。同図に示すシステムは、プログラム1、対話型端末2、CPU3、部品定義情報記憶部4、波及的変更操作導出パターン定義情報記憶部5、変更操作雛形定義情報記憶部6、変更操作記憶部7から構成される。

0024

プログラム1は、以下に説明する処理手順を実行するためのプログラムであり、主メモリ上に格納される。対話型端末2は、キーボードマウスなどの入力手段と、ディスプレイなどの出力手段を持ち、本発明において、部品変更の作業を行う者、つまり、部品変更者が各種の指示やデータを入力したり、処理結果を表示するために用いられる。

0025

CPU3は、プログラム1に基づく処理機能を有する。部品定義情報記憶部4は、変更対象である部品の部品定義情報を格納する。波及的変更操作導出パターン定義情報記憶部5は、波及的変更操作導出パターン定義情報を格納する。変更操作雛形定義情報記憶部6は、変更操作雛形定義情報を格納する。当該変更操作雛形定義情報は、変更操作雛形基本定義情報と変更パラメータ定義から構成される。

0026

変更操作記憶部7は、入力された変更操作、及び、導出された波及的変更操作の情報を格納する。図4は、本発明の本発明のオブジェクト指向ソフトウェア部品変更支援システムの機能構成を示す。同図において、図3と同一構成部分には同一符号を付し、その説明を省略する。

0027

同図に示すシステムは、変更種別10、変更パラメータ11を入力する入力部12、変更種別13、変更パラメータ14を出力する出力部15、部品定義情報記憶部4、波及的変更操作導出パターン定義情報記憶部5、変更操作雛形定義情報記憶部6、変更操作記憶部7、変更操作受付処理部8と波及的変更操作導出処理部9を有する処理部16から構成される。

0028

ここで、入力部12における処理を説明する。図5は、本発明の変更操作受付処理を示すフローチャートである。
ステップ20)部品変更者は、入力部12より部品定義情報を参照して、目的のシステムを構築するのに必要な部品の変更操作を判断し、その変更種別10と適切な変更パラメータ11を入力する。

0029

ステップ21) そして、部品変更者は、変更パラメータ定義情報より必要な変更パラメータを確認し、部品定義情報から、選択、あるいは、自由値を入力して変更パラメータを決定する。
ステップ22) 変更に必要な全ての変更パラメータが入力されたので、変更種別10と変更パラメータ11の組を変更操作記憶部7に格納する。

0030

次に、処理部16により行われる変更支援動作について説明する。図6は、本発明のオブジェクト指向ソフトウェア部品変更支援動作のフローチャートである。
ステップ30) まず、波及的変更操作導出処理部9は、変更操作記憶部7に未処理の変更操作が残っているかどうかを確認し、残っている場合にはステップ31に移行し、残っていない場合には処理を終了する。

0031

ステップ31)変更操作記憶部7に残っている先頭の変更操作に着目する。
ステップ32) 次に、着目している変更操作に必要な全ての波及的変更操作を、波及的変更操作導出パターン定義情報に基づいて導出する。当該波及的変更操作導出処理については後述する。
ステップ33) 変更操作記憶部7に未処理の波及的変更操作が残っているかを判定し、残っている場合にはステップ34に移行し、残っていない場合にはステップ30に移行する。

0032

ステップ34)変更操作記憶部7の未処理の波及的変更操作の先頭のものに着目する。
ステップ35)変更種別・変更パラメータが全て同一の変更操作が既に格納されているかを判定し、格納されている場合にはステップ33に移行し、格納されていない場合にはステップ36に移行する。

0033

ステップ36) 着目している波及的変更操作の変更種別・変更パラメータを変更操作記憶部7に追加格納する。
次に、上記のステップ32における波及的変更操作導出処理について説明する。図7は、本発明の波及的変更操作導出処理のフローチャートである。

0034

ステップ40)波及的変更操作導出処理部9は、着目している変更操作の変更種別に対する波及的変更操作導出パターン定義情報を波及的変更操作導出パターン定義情報記憶部5から読み出す。
ステップ41) 波及的変更操作導出パターン定義情報記憶部5から読み出した波及的変更操作導出パターン定義情報に未処理のものが残っているかを判定し、残っている場合にはステップ42に移行し、残っていない場合には、図6のステップ33に移行する。

0035

ステップ42) 未処理のものの中で先頭の行に着目する。
ステップ43) その適用条件の評価結果が「真」であるかを判定し、「真」である場合には、ステップ44に移行し、そうでない場合にはステップ41に移行する。
ステップ44)部品定義情報記憶部4の部品定義情報を参照して2次パラメータ(変更の波及するパラメータ:変更の波及する部品定義情報内の要素)を取得する。

0036

ステップ45) 得られた2次パラメータに未処理のものが残っているかを判定し、残っている場合にはステップ46に移行し、残っていない場合にはステップ41に移行する。
ステップ46) 未処理の2次パラメータの中で先頭のものに着目する。
ステップ47)波及的変更操作記述(第1の変更操作パラメータと2次パラメータも用いて記述した波及する変更操作(波及的変更操作)の変更種別と変更操作パラメータを表す式)を元に着目している2次パラメータ、着目している変更操作のパラメータを用いて波及的変更操作の変更種別、及びその変更パラメータを決定し、ステップ45に移行する。

0037

以下、図面と共に本発明の実施例を説明する。以下に示す処理の前提として、部品提供者は、部品定義情報、変更操作雛形定義情報、波及的変更操作導出パターン定義情報を、それぞれ、部品定義情報記憶部4、変更操作雛形定義情報記憶部6、波及的変更操作導出パターン定義情報記憶部5に予め蓄積しておくものとする。

0038

[第1の実施例]図8は、本発明の第1の実施例の部品定義情報の構成を示す。本実施例においては、部品定義情報を、部品に含まれるクラスを定義したクラス定義情報50、情報項目を定義した情報項目定義情報51、メソッドを定義したメソッド定義情報52、メソッドの持つ引数を定義したメソッド引数定義情報53、クラスの継承階層を定義したクラス継承定義情報54、クラスの間のクラス間関連を定義したクラス間関連定義情報55、メソッドからクラスへの参照を定義するメソッド対クラス参照定義情報56、メソッドから情報項目への参照を定義するメソッド対情報項目参照定義情報57、メソッドからメソッドへのメソッド呼出しによる参照を定義したメソッド対メソッド参照定義情報58、メソッドからクラス間関連への参照を定義したメソッド対クラス間関連参照定義情報59から構成される。

0039

図9は、本発明の第1の実施例のクラス定義情報の例を示す。クラス定義情報50は、各クラスについて、クラス名称101、シンボル102、カテゴリ103、そのクラスが永久的なのか一時的なのかを表す永久属性104、そのクラスが複合的なのか、原子的なのかを表す複合属性105を保持する。クラスは、クラス名称で一意に特定される。

0040

図10は、本発明の第1の実施例の情報項目定義情報の例を示す。情報項目定義情報51は、各情報項目について、情報項目が所属しているクラスの名称を表す所属クラス111、情報項目名称112、シンボル113、その情報項目がクラスに1つ存在するのか、インスタンス毎に存在するのかを表す配置114、その情報項目のデータ型を表すデータクラス115を保持する。情報項目は、所属クラスと情報項目名称の対で一意に特定される。

0041

図11は、本発明の第1の実施例のメソッド定義情報の例を示す。メソッド定義情報52は、各メソッドについて、そのメソッドが所属しているクラスの名称を表す所属クラス121、メソッド名称122、シンボル123、メソッドがクラスに存在するのか、インスタンスに存在するのかを表す配置124、メソッドの返却値のデータ型を表す返却値クラス125を保持する。メソッドは、所属クラスとメソッド名称の対で一意に特定される。

0042

図12は、本発明の第1の実施例のメソッド引数定義情報の例を示す。メソッド引数定義情報53は、各引数についてその引数が所属しているメソッドが所属しているクラスの名称を表す所属クラス131、その引数が所属しているメソッドの名称を表す所属メソッド132、引数名称133、その引数が所属するメソッドの何番目の引数なのかを表す通番134、シンボル135、その引数のデータ型を表すデータクラス136を保持する。引数は所属クラスと所属メソッドと引数名称の3つ組で一意に特定される。

0043

図13は、本発明の第1の実施例のクラス継承定義情報の例を示す。クラス継承定義情報54は、部品に含まれるクラスの継承階層を定義しており、各継承関係について、継承元となる親クラスの名称を表す上位クラス141、そのクラスを継承する子クラスの名称を表す下位クラス142を保持する。図14は、本発明の第1の実施例のクラス間関連提示情報の例を示す。

0044

クラス間関連定義情報150は、部品に含まれるクラスの間のクラス間関連を定義しており、各クラス間関連について、クラス間関連名称151、そのクラス間関連において参照元となるクラスの名称を表す参照元クラス152、参照先となるクラスの名称を表す参照先クラス153、そのクラス間関連が包含なのか参照なのかを示す包含属性154を保持する。

0045

図15は、本発明の第1の実施例のメソッド対クラス参照定義情報の例を示す。メソッド対クラス参照定義情報56は、各参照について、その参照において参照元となるメソッドが所属しているクラスの名称を表す参照元メソッド所属クラス161、参照元となるメソッドの名称を表す参照元メソッド162、参照先となるクラスの名称を表す参照先クラス163を保持する。

0046

図16は、本発明の第1の実施例のメソッド対情報項目参照定義情報の例を示す。メソッド対情報項目参照定義情報57は、各参照について、その参照において参照元となるメソッドが所属しているクラスの名称を表す参照元メソッド所属クラス171、参照元となるメソッドの名称を表す参照元メソッド172、参照先となる情報項目が所属しているクラスの名称を表す参照先情報項目所属クラス173、参照先となる情報項目の名称を表す参照先情報項目174を保持する。

0047

図17は、本発明の第1の実施例のメソッド対メソッド参照定義情報の例を示す。メソッド対メソッド参照定義情報58は、各参照について、参照元となるメソッドが所属しているクラスの名称を表す参照元メソッド所属クラス181、参照元となるメソッドの名称を表す参照元メソッド182、参照先となるメソッドが所属しているクラスの名称を表す参照先メソッド所属クラス183、参照先となるメソッドの名称を表す参照先メソッド184を保持する。

0048

図18は、本発明の第1の実施例のメソッド対クラス間関連参照定義情報の例を示す。メソッド対クラス間関連参照定義情報59は、各参照について、参照元となるメソッドが所属しているクラスの名称を表す参照元メソッド所属クラス191、参照元となるメソッドの名称を表す参照元メソッド192、参照先となるクラス間関連の名称を表す参照先クラス間関連193を保持する。

0049

本実施例においては、変更操作雛形定義情報記憶部6に格納されている変更操作雛形定義情報を変更操作雛形基本定義情報と変更パラメータ定義情報から構成するものとする。図19図20は、本発明の一実施例の変更操作雛形基本定義情報の例を示す。

0050

変更操作雛形基本定義情報200は、変更操作の基本的な情報を定義しており、変更操作の変更種別それぞれについて、変更種別201、その変更種別の変更操作の概要を記述した変更概要202、その変更種別の変更操作の部品定義情報に対する具体的な変更内容を記述した変更詳細203を保持する。図21図22は、本発明の第1の実施例の変更パラメータ定義情報の例を示す。

0051

変更パラメータ定義情報210は、変更操作の変更種別毎に必要となる変更パラメータに関する情報を定義しており、各変更パラメータについて、その変更種別211、その変更種別の変更操作において何番目の変更パラメータなのかを表す通番212、名称213、その変更パラメータのデータの型を示すデータ型214、説明215を保持する。

0052

図23は、本発明の第1の実施例の変更操作記憶部の例を示す。変更操作記憶部7は、入力された変更操作、及び、導出された波及的変更操作の変更種別252と全ての変更パラメータ253からなる組を、順序付けで複数格納可能であり、それぞれの変更操作について、その変更操作の変更種別252、その変更操作に与えられた全ての変更パラメータ253を順に格納する。

0053

図24図25は、本発明の第1の実施例の波及的変更操作導出パターン定義情報記憶部の例を示す。波及的変更操作導出パターン定義情報記憶部5の波及的変更操作導出パターン定義情報260は、対応する変更操作の変更種別261、対応する波及的変更操作導出パターン定義情報の適用条件を、対応する変更操作に与えられた変更パラメータから特定される部品定義情報内の要素の属性を判定する式(適用条件)を用いて記述した適用条件262、対応する変更操作に与えられる変更パラメータと、それに対する波及的変更操作の変更パラメータに必要となる値との関係を、部品定義情報内の要素間の関連を用いて記述した式である2次元パラメータ導出式263、対応する変更操作に与えられた変更パラメータと2次パラメータを用いて、波及的変更操作の変更種別と、その変更パラメータを記述した波及的変更操作記述264を保持する。

0054

本実施例では、上記の2次パラメータと波及的変更操作記述により、波及的変更操作指定式を構成する。図9において、部品定義情報100、110、120、130、140、150、160、170、180、190を、RDBMSにおけるテーブル、あるいは、ビューとして実現すると、その要素の検索、操作は、SQL(Structured Query Language) で記述して機械的に処理することができるため、本実施例では、図24の2次パラメータ263の記述にSQLを採用している。

0055

なお、SQLについては、『増永良文:リレーショナルデータベース入門サイエンス社、1991』等を参照されたい。以上の情報が蓄積された状態において、まず、コンピュータ等のデータ処理手段を用いて、変更操作受付処理を行い、部品変更者により入力部12から入力された変更種別10と変更パラメータ11との組を、変更操作記憶部7に格納する。これを図5に示した変更操作受付処理の手順を用いて行うものとし、以下当該手順を説明する。

0056

最初に、部品変更者は、部品定義情報100、110、120、130、140、150、160、170、180、190を参照し、目的のシステムを構築するのに必要な、部品の変更操作を判断し、その変更種別と、適切な変更パラメータを入力する。ここでは、例えば、部品変更者がクラス「料金」108を削除しようと考えたとする。この場合、変更種別として、変更操作雛形基本定義情報記憶部6の変更操作雛形基本定義情報200より、“rmClass ”207が選択・入力される(ステップ20)。

0057

そして、部品変更者は、変更操作雛形基本定義情報記憶部6の変更パラメータ定義情報210より必要な変更パラメータ217を確認し、変更パラメータ“clsName ”に削除したいクラスのクラス名称「料金」を指定する(ステップ21)。この時、各変更パラメータのデータ型と異なる型の値を入力できないような仕組みを用意しておけば、誤った入力を防止することができる。

0058

例えば、この変更パラメータ“clsName ”には、「クラス名称」4217という型が指定されていることから変更パラメータ“clsName ”として入力された値をクラス定義情報のクラス名称に定義されている全ての値から検索し、もし無ければ、入力ミスとし、正しい値の入力を促す、という機構により実現可能である。

0059

変更操作に必要な全ての変更パラメータが入力されたので、変更種別と変更パラメータの組を変更操作記憶部7に格納し(ステップ22)、波及的変更操作導出処理に移行する。図23のデータ801は格納された様子を示す。続いて、図23に示す変更操作記憶部7に格納された部品変更操作に関する波及的変更操作導出処理について、図6図7のフローチャートを用いて説明する。ここでは、図7は、図6のステップ32をより詳細に表したものである。

0060

まず、変更操作記憶部7に未処理の変更操作が残っているかどうか確認し(ステップ30)、その先頭の変更操作801(図23)に着目する(ステップ31)。次に、着目している変更操作801に必要な全ての波及的変更操作を、波及的変更操作導出パターン定義情報記憶部5の波及的変更操作導出パターン定義情報に基づき導出する(ステップ32)。

0061

ここで、図7のフローチャートを用いて詳細に説明する。最初に、波及的変更操作導出パターン定義情報260から、着目している変更操作801の変更種別“rmClass ”に対応する波及的変更操作導出パターン定義情報266、267、268、269、1260、1262、1264、1265を読み出し(ステップ40)、それらを先頭から一つずつ処理する。

0062

まず、未処理の波及的変更操作導出パターン定義情報が残っているかを確認し(ステップ41)、先頭の波及的変更操作導出パターン遅疑情報266に着目する。そして、着目している波及的変更操作導出パターン定義情報266の適用条件
“クラス(クラス名称:clsName )::永久属性=Yes”
に対して、変更操作801の変更パラメータclsName =“料金”を当てはめて評価すると、クラス定義情報100(図9)のデータ108よりクラス“料金”が永久属性を持つことから、「真」が得られる(ステップ43)。よって、この波及的変更操作導出パターン定義情報を適用して、波及的変更操作の導出を行うこととなる。

0063

そこで、波及的変更操作の変更パラメータを特定するために必要な、2次パラメータを決定するために、波及的変更操作導出パターン定義情報266の2次パラメータ
ASELECTクラス間関連名称FROMクラス間関連定義情報as rel2Name WHERE(参照元クラス=clsName )”
に対して、変更操作801の変更パラメータclsName =“料金”を当てはめて評価すると、クラス間関連定義情報150(図14)のデータ155、156から、図26に示す2組の2次パラメータ271、272が得られる(ステップ44)。そこで、これらについて先頭から一つずつ処理する。

0064

まず、未処理の2次パラメータが残っているか確認し(ステップ45)、先頭の2次パラメータ271に着目する(ステップ46)。そして、波及的変更操作導出パターン定義情報266の波及的変更操作記述
“rmRelation (relName = rcl2Name )”
に、着目している2次パラメータ271rel2Name =“料金対契約”を当てはめて、
“rmRelation(relName=料金対契約)”
という波及的変更操作を得る(ステップ47)。この波及的変更操作を図27のデータ311に示す。

0065

ステップ45に移行し、残りの2次パラメータ272についても同様の処理を行うと、
“rmRelation(reName =料金対契約者)”
という波及的変更操作を得る。これを図27のデータ312に示す。これで、波及的変更操作導出パターン定義情報266について、得られた2次パラメータの中で未処理のものがなくなったので、ステップ41に移行する。

0066

読み出した波及的変更操作導出パターン定義情報の中で残っている、先程処理した波及的変更操作導出パターン定義情報266を除く、267、268、269、1260、1261、1262、1263、1264、1265それぞれについて、データ266と同様にステップ43からステップ47の処理を実施する。

0067

波及的変更操作導出パターン定義情報267に着目し、適用条件
“クラス(クラス名称:clsName )::永久属性=Yes”
に対して、clsName =“料金”を当てはめて評価すると、前述したのと同様にして「真」が得られる。しかし、2次パラメータ
“SELECT”クラス間関連名称as rel2Name FROM クラス間関連定義情報WHERE(参照先クラス=clsName )”
に、clsName =“料金”を当てはめて評価すると、クラス間関連定義情報55(図14)から得られる2次パラメータが一組もないので、そのまま次の波及的変更操作導出パターン定義情報268に移る。

0068

波及的変更操作導出パターン定義情報268に着目し、適用条件
“クラス(クラス名称:clsName )::永久属性=No”
に対して、clsName =“料金”を当てはめて評価すると、クラス定義情報50(図9)のデータ108より「」が得られる。よって、そのまま次の波及変更操作導出パターン定義情報269に移る。

0069

波及的変更操作導出パターン定義情報269に着目し、適用条件
“クラス(クラス名称:clsName )::複合属性=Yes”
に対してclsName =“料金”を当てはめて評価すると、クラス定義情報50(図9)のデータ108より「真」が得られる。そこで、2次パラメータ
“SELECT情報項目名称as item2Name FROM情報項目定義情報WHERE(所属クラス= clsName)”
に、clsName =“料金”を当てはめて評価すると、情報項目定義情報51(図10)のデータ116、117から、それぞれ、図28に示す2次パラメータ281、282の2組の2次パラメータが得られる。

0070

そして、波及的変更操作記述
“rmItem(clsName=clsName, itemName= item2Name) ”
に、これらをそれぞれ当てはめて、
“rmItem(clsName=料金、itemName=料金ID)”,
“rmItem(clsName=料金、itemName=料金種別)”
という波及的変更操作を得る。これらを、図27のデータ313、314に示す。

0071

波及的変更操作導出パターン定義情報1260に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT DISTINCT所属クラスas cls2Name ,メソッド名称as method2Name FROMメソッド引数定義情報WHERE(データクラス=clsName )”
に対して、clsName =“料金”を当てはめて評価すると、メソッド引数定義情報53(図12)から得られる2次パラメータが1組もないので、そのまま次の波及的変更操作導出パターン定義情報1261に移る。

0072

波及的変更操作導出パターン定義情報1261に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT所属クラスas cls2Name ,メソッド名称as method2Name FROM メソッド定義情報WHERE(返却値クラス=clsName )”
に対して、clsName =“料金”を当てはめて評価すると、メソッド定義情報52(図11)から、得られる2次パラメータが1組もないので、そのまま次の波及的変更操作導出パターン定義情報1262に移行する。

0073

波及的変更操作導出パターン定義情報1262に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT下位クラスas cls2Name FROMクラス継承定義情報 WHERE(上位クラス=clsName )”
に対して、clsName =“料金”を当てはめて評価すると、クラス継承定義情報54(図13)のデータ143から、図29のデータ291に示す1組の2次パラメータが得られる。

0074

そこで、波及的変更操作記述“rmClass(clasName=cls2Name)”に当てはめて、“rmClass (clsName=加入料金)”を波及的変更操作として得る。これを、図27のデータ315に示す。そして、次の波及的変更操作導出パターン定義情報1263に移行する。波及的変更操作導出パターン定義情報1263に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECTメソッド名称as method2Name FROM メソッド定義情報HWERE(所属クラス=clsName)”
に対してclsName =“料金”を当てはめて評価すると、メソッド定義情報52(図11)のデータ126、127、128からそれぞれ図30のデータ301、302、303に示す3組の2次パラメータが得られる。

0075

そこで、波及的変更操作記述
“rmMethod(clsName=clsName, methodName =method2Name )”
に、これらをそれぞれ当てはめて、
“rmMethod (clsName =料金、methodName=負担料金生成)”
“rmMethod (clsName =料金、methodName=契約検索)”
を波及的変更操作として得る。これらを、それぞれ図27のデータ316、317、318に示す。そして、次の波及的変更操作導出パターン定義情報1264に移る。

0076

波及的変更操作導出パターン定義情報1264に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT参照元メソッド所属クラスas cls2Name, 参照元メソッド asmethod2Name FROM メソッド対クラス参照定義情報 WHERE(参照先クラス=clsName )”
に対して、clsName =“料金”を当てはめて評価すると、メソッド対クラス参照定義情報56(図15)から得られる2次パラメータが1組もないので、そのまま次の波及的変更操作導出パターン定義情報1265に移行する。

0077

波及的変更操作導出パターン定義情報1265に着目し、適用条件がないので、すぐさま、2次パラメータ
“SELECT上位クラスas superClsName,下位クラスas childClsName FROMクラス継承定義情報 WHERE (下位クラス=clsName )”
に対してclsName =“料金”を当てはめて評価すると、クラス継承定義情報54(図13)から得られる2次パラメータが1組もないので、そのままステップ41に移行する。

0078

ステップ41では、ステップ40で読み込んだ波及的変更操作導出パターン定義情報に未処理のものが残っていないことから、ステップ32は終了し、ステップ34に移行する。変更操作801から導出された、図27のデータ311、312、313、314、315、316、317、318に示す8つの波及的変更操作について、導出順に一つずつ変更操作記憶手段への追加処理を行う。

0079

追加処理にあたり、まず、波及的変更操作の中で追加処理の済んでいないものが残っているかどうかを確認し(ステップ33)、その中で先頭の波及的変更操作311に着目する(ステップ34)。着目している波及的変更操作311の、変更種別、変更パラメータについて、同一の変更操作が、変更操作記憶部7に既に格納されていないかを検査する(ステップ35)。

0080

これにより、同じ変更操作からの波及的変更操作の導出を複数下位行うといった無駄な処理の防止と、変更操作の間の波及の関係が循環状になった場合の無限ループの防止を実現する。波及的変更操作311については、まだ、同一の変更操作が格納されていないので、その変更種別と変更パラメータを変更操作記憶部7の末尾に追加する(ステップ36)。この結果を図31のデータ802に示す。

0081

ステップ33に戻り、先程処理した波及的変更操作311を除く、データ312、313、314、315、316、317、318が未処理で残っているので、これらについても、波及的変更操作311と同様に、変更操作記憶部7に追加する。これらが変更操作記憶部7に追加された結果を図31のデータ803、804、805、806、807、808、809に示す。

0082

このあと、ステップ33に戻ると、追加処理の済んでいない波及的変更操作が残っていないことから、波及的変更操作801についての波及的変更操作の導出と変更操作記憶部7への追加処理が終了する。そこで、ステップ30に戻り、未処理の変更操作が変更操作記憶部7に残っているかどうかを確認すると、図31に示すデータ802、803、804、805、806、807、808、809に示す変更操作が未処理なので、その先頭の変更操作802に着目する(ステップ31)。

0083

そして、変更操作802の変更種別、“rmRelation”に対応する波及的変更操作導出パターン定義情報1268、1269を読み出す(ステップ32)。まず、先頭の波及的変更操作導出パターン定義情報1268に着目し、適用条件
“クラス間関連(クラス間関連名称:relName )::包含属性=Yes”
に、変更操作802の変更パラメータrelName =“料金対契約”を当てはめて評価すると、クラス間関連定義情報55(図14)のデータ155より、クラス間関連“料金対契約”は、包含属性を持っていないことから、「偽」が得られるので(ステップ43)、そのまま波及的変更操作的変更操作導出パターン定義情報1269に残る。

0084

波及的変更操作導出パターン定義情報1269に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT参照元メソッド所属クラスas cls2Name 参照元メソッド asmethod2Name FROM メソッド対クラス間関連参照定義情報 WHERE(参照先クラス間関連= relName )”
に、relName =“料金対契約”を当てはめて評価すると、メソッド対クラス間関連参照定義情報59(図18)のデータ194から、一組の2次パラメータ
“(cls2Name =料金、method2Name =契約検索)”
が得られる。

0085

そして、波及的変更操作記述
“rmMethod(clsName= cls2Name, methodName =method2Name )”
に、これを当てはめて、図32の波及的変更操作381を得る。変更操作802からは、以上、一つの波及的変更操作381が導出されたので、変更操作記憶部7に同一の変更操作がないかを確認すると(ステップ35)、同一の変更操作を表す変更操作808が既に格納されているため、追加しない。

0086

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作803に着目する(ステップ31)。これは、変更操作802と同一の変更種別であり、同様に処理を行い、図33のデータ401に示す波及的変更操作を得るが、こちらもやはり、既に格納されている変更操作809と同一であるため、変更操作記憶部7への追加は行わない。

0087

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作804に着目する(ステップ31)。そして、変更操作804の変更種別、“rmItem”に対する波及的変更操作導出パターン定義情報2261を読み出す(ステップ32)。波及的変更操作導出パターン定義情報2261に着目し、適用条件がないので、すぐさま、2次パラメータ
“SELECT参照元メソッド所属クラスas cls2Name, 参照元メソッド asmethod2Name FROM メソッド対情報項目参照定義情報 WHERE((参照先情報項目所属クラス= clsName)and (参照先情報項目=itemName))”
に、変更パラメータclsName =“料金”、itemName=“料金ID”を当てはめて評価すると、メソッド対情報項目参照定義情報57(図16)から得られる2次パラメータが1組もないため、波及的変更操作は導出されない。

0088

結局、変更雄さ804からは、一つも波及的変更操作が導出されないことになる。ステップ30に戻り、未処理の変更操作を確認した後、先頭の変更操作805に着目する(ステップ31)。これは、変更操作804と同一の変更種別であり、同様に処理を行うが、こちらも波及的変更操作が一つも導出されない。

0089

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作804に着目する(ステップ31)。これは、変更操作801と同一の変更種別であり、同様に処理を行うと、波及的変更操作導出パターン定義情報1265に着目したときに、1組の2次パラメータ、
“(superClsName=料金、childClsName=加入料金)”
が得られる。

0090

そこで、波及的変更操作記述
“rmMethod(clsName=cls2Name, methodName=method2Name )”
に、これを当てはめると、クラス継承定義情報54(図13)のデータ143から、図34のデータ411に示す波及的変更操作が得られるので、これを変更操作記憶部7に追加する。その結果を図35のデータ810に示す。

0091

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作807に着目する(ステップ31)。そして、変更操作807の変更種別“rmMethod”に対する波及的変更操作導出パターン定義情報2263、2264、2265、2266、2267、2268を読み出す(ステップ32)。

0092

まず、先頭の波及的変更操作導出パターン定義情報2263に着目し、適用条件がないので、すぐさま2次パラメータ
“SELECT参照元メソッド所属クラスas cls2Name, 参照元メソッド asmethod2Name FROM メソッド対メソッド参照定義情報 WHERE((参照先メソッド所属クラス= clsName)and (参照先メソッド=methodName))”
に変更パラメータ
clsName =“料金”、methodName=“負担料金生成”
を当てはめて評価すると、メソッド対メソッド参照定義情報58(図17)のデータ185から、一組の2次パラメータ
“(method2Name =料金未納チェック)”
が得られる。

0093

そこで、波及的変更操作記述
“rmMethod (clsName = cls2Name, methodName = method2Name)”
に、これを当てはめて、図36のデータ431に示す波及的変更操作を得る(ステップ47)。次いで、波及的変更操作導出パターン定義情報2264に着目し、適用条件がないので、すぐさま、2次パラメータ
“SELECT参照先メソッド所属クラスas cls2Name ,参照先メソッド as method2Name FROM メソッド対メソッド参照定義情報 WHERE((参照元メソッド所属クラス=clsName )and (参照元メソッド= methodName ))”
に、
clsName = “料金”、methodName=“負担料金生成”
を当てはめて評価するが、メソッド対メソッド参照定義情報58(図17)から得られる2次パラメータが一組もないため、波及的変更操作は導出されない。

0094

以下、波及的変更操作導出パターン定義情報2265、2266、2267、2268についても同様に処理を行うと、いずれについても、得られる2次パラメータが一組もないので、波及的変更操作は導出されない。変更操作807からは、以上、一つの波及的変更操作431が導出されたので、これについて追加処理を行う。

0095

変更操作記憶部7を確認すると(ステップ35)、変更操作431と同一の変更操作がまだ格納されていないので、追加する。その結果を図37のデータ811に示す。ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作808に着目する(ステップ31)。そして、同一の変更種別の変更操作807と、同様に処理した結果導出された2つの波及的変更操作が変更操作記憶部7に追加された結果を図38のデータ812、813に示す。

0096

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作809に着目すす(ステップ31)。同様に処理した結果導出された2つの波及的変更操作が変更操作記憶部7に追加された様子を図38のデータ814、815に示す。ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作810に着目する(ステップ31)。しかし、この変更種別“rmHierarchy ”についての波及的変更操作導出パターンが定義されておらず、一つも読みだされないため、波及的変更操作が一つも導出されない。

0097

ステップ30に戻り、未処理の変更操作の確認の後、先頭の変更操作811に着目する(ステップ31)。そして、同一の変更種別の変更操作807、808、809と、同様に処理した結果、導出された2つの波及的変更操作が変更操作記憶部7に追加された様子を図39のデータ816、817に示す。

0098

再び、ステップ30に戻り、変更操作記憶部7に残っている変更操作812、813、814、815、816、817に対する処理を繰り返すが、これらの変更種別、“rmClassRef”、“rmRelationRef ”、“rmCallee”、“rmItemRef”についての波及的変更操作導出パターン定義情報が定義されていないため、結局いずれからも波及的変更操作が導出されない。

0099

変更操作816についての処理が終了した後、ステップ30に戻り、変更操作記憶部7の確認を行うと、未処理の変更操作が残っていないため、変更操作記憶部7の内容を全て出力した後、本実施例における部品変更操作支援システムの動作は終了する。処理終了時の最終状態の変更操作記憶部7の状態を図39に示す。

0100

波及的変更操作導出処理では、その処理中に導出された波及的変更操作を変更操作記憶部7へ追加するため、導出した波及的変更操作からの、更なる波及的変更操作の導出も行われるから、変更操作記憶部7の末端の変更操作まで処理が済んだ時点で変更操作記憶部7に格納されている変更操作、つまり、結果として出力される変更操作の集合が、変更操作受付処理により最初に入力された変更操作を元とする、全ての波及的変更操作となる。

0101

このように、上記の実施例によれば、部品に対するある変更による影響がどのような範囲に及び、どのような波及的変更操作が必要なのか、全て特定する作業が自動化されるので、部品変更者は、オブジェクト指向ソフトウェア部品の特性や、変更対象の部品に関する詳細な知識を持たずとも、全ての波及的な変更操作を入手することができる。

0102

また、本実施例では、波及的変更操作導出パターン定義情報や、変更操作雛形定義情報といった蓄積・利用する情報、及び、変更操作受付処理、波及的変更操作導出処理といった処理手段を、部品定義情報とは独立にし、波及的変更操作導出処理においてのみ、これを参照するという仕組みを採っている。そのため、本実施例においては、図9図18に示すように、定義した部品定義情報を用いたが、異なる内容の部品定義情報に対しても、その他の蓄積情報、及び処理手順は変更せずにそのまま利用可能である。

0103

[第2の実施例]本実施例は、第1の実施例と比較して、変更操作それぞれに、変更操作記憶部7中で変更操作を一意に識別する変更操作IDを払いだして割り当てること、また、導出した波及的変更操作を変更操作記憶部7に格納する際に、導出の元となった変更操作の変更操作IDを合わせて記憶することが特徴的である。

0104

図40は、本発明の第2の実施例の変更操作記憶部を示す。同図に示す内容は、第1の実施例の図23の変更操作記憶部7と比べ、格納する変更操作それぞれに割り当てられた変更操作ID1251と、その波及元の変更操作の変更操作IDを示す波及的変更操作ID1254が増えたことが特徴的である。図41は、本発明の第2の実施例の変更操作受付処理を示すフローチャートであり、図5に示す第1の実施例における動作とは、ステップ62において、変更操作IDを払い出して、変更種別、変更パラメータと共に、変更操作記録部7へ記録する点が異なる。

0105

図42は、本発明の第2の実施例の波及的変更操作導出処理を示すフローチャートである。前述の第1の実施例で示した図6のフローチャートと比較して、ステップ56において、波及的変更操作に変更操作IDを払い出して、変更種別、変更パラメータと共に変更操作記憶部7へ記録すること、また、波及元変更操作IDを記録する。ステップ57とステップ58が増えたことが異なる。

0106

部品定義情報、波及的変更操作導出パターン定義情報、変更操作雛形定義情報については、前述の第1の実施例と同一のものを用いる。部品定義情報、波及的変更操作導出パターン定義情報、変更操作雛形定義情報などが蓄積された状態において、まず、変更操作受付処理を行う。ここで、部品変更者が第1の実施例と同様に、変更種別として“rmClass ”207を選択し(ステップ20)、その変更パラメータとして、“(clsName=料金)”を入力したとする(ステップ21)。

0107

すると、図41において、ステップ62では、新規に変更操作ID“M001”が払い出されて、“rmClass ”、“(clsName=料金)”と共に、変更操作記憶部7に格納される。その結果を図40のデータ1801に示す。次に、第1の実施例と同様に、波及的変更操作導出処理により、図40に示す変更操作記憶部7に格納された部品変更操作に関する波及的変更操作導出処理について、図7図42のフローチャートを用いて説明する。ここでは、図7は、図42のステップ32をより詳細に表したものである。

0108

まず、変更操作記憶部7(図40)に未処理の変更操作が残っているかどうかを確認し(ステップ30)、その先頭の変更操作1801に着目する(ステップ31)。次に、着目している変更操作1801に必要な波及的変更操作を、波及的変更操作導出パターン定義情報に基づき導出していくが、続くステップ40からステップ47の処理は、第1の実施例と同一であり、処理対象の変更操作の変更種別、変更パラメータの組も同一なので、変更操作1801からは、第1の実施例における変更操作801と同じく、図27のデータ311、312、313、314、315、316、317、318に示す8つの波及的変更操作が導出される。

0109

そこで、ステップ33に移行し、これらの変更操作について、その導出順に一つずつ、変更操作記憶部7への追加処理を行う。まず、先頭の波及的変更操作311に着目し、その変更種別、変更パラメータについて、同一の変更操作が変更操作記憶部7に既に格納されていないかを検査する(ステップ35)。

0110

同一の変更操作が格納されていないので、新規に変更操作ID“M002”を払出し、変更種別と変更パラメータと共に変更操作記憶部7の末尾に追加する(ステップ56)。そして、この変更操作の波及元の変更操作の変更操作ID“M001”を、波及元変更操作IDに記録する(ステップ57)。

0111

ステップ33に戻り、先程処理した波及的変更操作311を除く。データ312〜318が未処理で残っているので、これらについても、同一の変更操作はまだ格納されていないので、波及的変更操作311と同様に、ステップ33からステップ35、及びステップ56、ステップ57に至る処理を繰り返し、変更操作記憶部7に追加する。これらが変更操作記憶部7に追加された結果を図43に示す。

0112

ここで、ステップ30に戻り、処理を繰り返す。次の変更操作1802に着目すると、図32のデータ381に示す一つの変更操作が導出される。しかし、変更操作記憶部7に同一の変更操作1808が格納されているので(ステップ35)、データ381は、変更操作記憶部7には追加されず、変更操作1808の波及的変更操作IDに、変更操作1802の変更操作ID“M002”が追加される。

0113

次の変更操作1803に着目すると、図33のデータ401に示す一つの変更操作が導出される。しかし、こちらも変更操作記憶部7に同一の変更操作1809が格納されているので(ステップ35)、データ401は、変更操作記憶部7には追加されず、変更操作1809の波及的変更操作IDに変更操作1803の変更操作ID“M003”が追加される。ここまでの結果を図44に示す。

0114

変更操作記憶部7に格納されている残りの変更操作に、以上と同様の処理を行って、波及的変更操作導出処理が終了した時点での変更操作記憶部7の内容を図45に示す。この変更操作記憶部7の内容を全て出力した後、本実施例における部品変更操作支援システムの動作を終了する。

0115

このように、変更操作それぞれに、変更操作記憶部7中で、変更操作を一意に識別する変更操作IDを払い出して変更操作IDを併せて記録することによって、導出処理が終了したのち任意の変更操作について、その波及元の変更操作、並びに、その波及的変更操作を特定することが可能となる。例えば、図45において、変更操作1808は、その波及元変更操作IDが“M001,M002”であることから、変更操作1801と、変更操作1802の両方から波及的に必要になった、ということが分かり、また、変更操作1812、1813、の波及的変更操作IDが、“M008”で同一であることから、変更操作1808が、“M008”で同一であることから、変更操作1808が波及的変更操作して、変更操作1812、1283の2つの変更操作が必要になったということが分かる。

0116

これにより、変更操作の出力を受け取った後の、部品変更者による変更操作間の関係の理解を助けることができる。また、上記の実施例では、図3図4の構成に基づいて説明したが、図4の処理部16の機能をプログラムとして構築し、オブジェクト指向ソフトウェア部品変更支援装置として利用されるコンピュータに接続されるディスク装置や、フロッピーディスクCD−ROM等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることにより容易に本発明を実現できる。

0117

なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。

発明の効果

0118

上述のように、本発明によれば、部品定義情報と、変更操作雛形定義情報、及び波及的変更操作導出パターン定義情報を、それぞれ部品定義情報記憶手段、変更操作雛形定義情報記憶手段、及び、波及的変更操作導出パターン定義情報記憶手段に、過去のものを再利用するなどして予め蓄積しておき、操作変更を示す変更種別と、変更パラメータの組からなる入力から、その変更操作について部品の整合性を失わないために必要な全ての波及的変更操作を自動的に計算し、出力することが可能であり、部品変更者は、オブジェクト指向ソフトウェア部品の特性や、変更対象の部品に関する詳細な知識を持たなくとも、全ての波及的変更操作を入手するとができ、ソフトウェア部品の再利用によるアプリケーションソフトウェアの構築の際の、部品の変更・修正にかかる工数を削減することができる。

図面の簡単な説明

0119

図1本発明の原理を説明するための図である。
図2本発明の原理構成図である。
図3本発明のオブジェクト指向ソフトウェア部品変更支援システムのハードウェアの構成図である。
図4本発明のオブジェクト指向ソフトウェア部品変更支援システムの機能構成図である。
図5本発明の変更操作受付処理を示すフローチャートである。
図6本発明のオブジェクト指向ソフトウェア部品変更支援動作のフローチャートである。
図7本発明の波及的変更操作導出処理のフローチャートである。
図8本発明の第1の実施例の部品定義情報の構成図である。
図9本発明の第1の実施例のクラス定義情報の例である。
図10本発明の第1の実施例の情報項目定義情報の例である。
図11本発明の第1の実施例のメソッド定義情報の例である。
図12本発明の第1の実施例のメソッド引数情報の例である。
図13本発明の第1の実施例のクラス継承定義情報の例である。
図14本発明の第1の実施例のクラス間関連定義情報の例である。
図15本発明の第1の実施例のクラス間関連定義情報の例である。
図16本発明の第1の実施例のメソッド対情報項目参照定義情報の例である。
図17本発明の第1の実施例のメソッド対メソッド参照定義情報の例である。
図18本発明の第1の実施例のメソッド対クラス間関連参照定義情報の例である。
図19本発明の第1の実施例の変更操作雛形基本定義情報の例(その1)である。
図20本発明の第1の実施例の変更操作雛形基本定義情報の例(その2)である。
図21本発明の第1の実施例の変更パラメータ定義情報の例(その1)である。
図22本発明の第1の実施例の変更パラメータ定義情報の例(その2)である。
図23本発明の第1の実施例の変更操作記憶部の例である。
図24本発明の第1の実施例の波及的変更操作導出パターン記憶部定義情報の例(その1)である。
図25本発明の第1の実施例の波及的変更操作導出パターン記憶部定義情報の例(その2)である。
図26本発明の第1の実施例の波及的変更操作導出の際に導出された2次パラメータの例(その1)である。
図27本発明の第1の実施例の導出された波及的変更操作の例である。
図28本発明の第1の実施例の波及的変更操作導出の際に導出された2次パラメータの例(その2)である。
図29本発明の第1の実施例の波及的変更操作導出の際に導出された2次パラメータの例(その3)である。
図30本発明の第1の実施例の波及的変更操作導出の際に導出された2次パラメータの例(その4)である。
図31本発明の第1の実施例の波及的変更操作導出処理仮定での変更操作記憶部の状態を示す図である。
図32本発明の第1の実施例の導出された波及的変更操作の例である。
図33本発明の第1の実施例の導出された波及的変更操作の例である。
図34本発明の第1の実施例の導出された波及的変更操作の例である。
図35本発明の第1の実施例の波及的変更操作導出処理過程での変更操作記憶部の状態を示す図である。
図36本発明の第1の実施例の導出された波及的変更操作の例である。
図37本発明の第1の実施例の波及的変更操作導出処理過程での変更操作記憶部の状態を示す図である。
図38本発明の第1の実施例の波及的変更操作導出処理過程での変更操作記憶部の状態を示す図である。
図39本発明の第1の実施例の波及的変更操作導出処理過程での変更操作記憶部の状態を示す図である。
図40本発明の第2の実施例の変更操作記憶部の内容を示す図である。
図41本発明の第2の実施例の変更操作受付処理を示すフローチャートである。
図42本発明の第2の実施例の波及的変更操作導出処理を示すフローチャートである。
図43本発明の第2の実施例の変更操作記憶部の内容を示す図である。
図44本発明の第2の実施例の変更操作記憶部の内容を示す図である。
図45本発明の第2の実施例の変更操作記憶部の内容を示す図である。

--

0120

1プログラム
2対話型端末
3 CPU
4部品定義情報記憶部
5変更操作雛形定義情報記憶部
6波及的変更操作導出パターン定義情報記憶部
7 変更操作記憶部
8 変更操作受付処理部
9 波及的変更操作導出処理部
10変更種別
11変更パラメータ
12 入力部
13 変更種別
14 変更パラメータ
15 出力部
16 処理部
50クラス定義情報
51情報項目定義情報
52メソッド定義情報
53メソッド引数定義情報
54クラス継承定義情報
55クラス間関連定義情報
56 メソッド対クラス参照定義情報
57 メソッド対情報項目参照定義情報
58 メソッド対メソッド参照定義情報
59 メソッド対クラス間関連参照定義情報
101クラス名称
102シンボル
103カテゴリ
104永久属性
105複合属性
111所属クラス
112情報項目名称
113 シンボル
114 配置
115データクラス
121 所属クラス
122 メソッド名称
123 シンボル
124 配置
125返却値クラス
131 所属クラス
132所属メソッド
133引数名称
134通番
135 シンボル
136 データクラス
141上位クラス
142下位クラス
151 クラス間関連名称
152参照元クラス
153参照先クラス
154包含属性
161 参照元メソッド所属クラス
162 参照元メソッド
163 参照先クラス
171 参照元メソッド所属クラス
172 参照元メソッド
173参照先情報項目所属クラス
174 参照先情報項目
181 参照元メソッド所属クラス
182 参照元メソッド
183 参照先所属クラス
184 参照先メソッド
191 参照元メソッド所属クラス
192 参照元メソッド
193 参照先クラス間関連
201 変更種別
202 変更概要
203 変更詳細
252 変更種別
253 変更パラメータ
211 変更種別
212 通番
213 名称
214データ型
215 説明
260 波及的変更操作導出パターン定義情報
261 変更種別
262適用条件
263 2次パラメータ導出式
264 波及的変更操作記述
1251 変更操作ID
1252 変更種別
1253 変更パラメータ
1254 波及的変更操作ID

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ