首页 / 专利库 / 资料储存系统 / 复杂事件处理 / Software development supporting device

Software development supporting device

阅读:516发布:2020-12-01

专利汇可以提供Software development supporting device专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To provide a software development supporting device provided with a class method mounting supporting part for automatically generating event calling logic for being the help of a developer performing complicated method mounting work.
SOLUTION: A source code generation function 12 is provided with the class method mounting supporting part 30 provided with an event information obtaining part 17 for obtaining event information from the event information 11, an event-to-method relative information generation part 18 for obtaining a method corresponding to the event of the obtained event information from class information and relating them, an event processing code generation part 19 for generating a source code for calling the event based on the related event and method and a source code synthesis and output part for synthesizing the source code generated from a class diagram and the source code of an event processing.
COPYRIGHT: (C)1999,JPO,下面是Software development supporting device专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】 OMT(OMTはobject mod
    eling techniqueの略、オブジェクト指向を使ってシステム分析や設計を進めるオブジェクト指向分析/設計開発方法論の1つ)の少なくともクラスとメソッドとクラス間の関係とをクラス情報として入力し図示するクラス図の作成/編集作業を支援するクラス図エディタと、 OMTの少なくともクラスのインスタンスとイベントの発生順序とをイベント情報として入力し図示するイベントトレース図の作成/編集作業を支援するイベントトレース図エディタと、 前記クラス図エディタによって作成したクラス図のクラス情報をもとに処理本体のソースコードを自動生成するソースコード生成部とを有するソフトウェア開発支援装置において、 前記ソースコード生成部は、前記クラス図エディタにより入力されたクラス情報と、前記イベントトレース図エディタにより入力されたイベント情報とをもとにイベントとメソッドとを関連づけてイベントに対応するメソッドを呼び出す処理のソースコードを作成して、前記生成したソースコードを、前記処理本体のソースコードに実装させるクラスメソッド実装支援部を備えたことを特徴とするソフトウェア開発支援装置。
  • 【請求項2】 前記クラスメソッド実装支援部は、前記クラス図エディタにより入力されたクラス情報と、前記イベントトレース図エディタにより入力されたイベント情報をもとにイベントとメソッドを関連づけてイベント対メソッド相対情報を生成するイベント対メソッド相対情報生成部と、 前記イベント対メソッド相対情報生成部により生成されたイベント対メソッド相対情報よりイベントに対応するメソッドを呼び出す処理のソースコードを生成するイベント処理コード生成部と、 前記イベント処理コード生成により作成されたソースコードを、前記処理本体のソースコードに合成するソースコード合成出力部とを備えたことを特徴とする請求項1
    記載のソフトウェア開発支援装置。
  • 【請求項3】 OMT(OMTはobject mod
    eling techniqueの略、オブジェクト指向を使ってシステム分析や設計を進めるオブジェクト指向分析/設計開発方法論の1つ)の少なくともクラスとメソッドとクラス間の関係とをクラス情報として入力し図示するクラス図の作成/編集作業を支援するクラス図エディタと、 OMTの少なくともクラスのインスタンスとイベントの発生順序とをイベント情報として入力し図示するイベントトレース図の作成/編集作業を支援するイベントトレース図エディタと、 前記クラス図エディタによって作成したクラス図の情報をもとに処理本体のソースコードを自動生成するソースコード生成部とを有するソフトウェア開発支援装置において、 前記ソースコード生成部は、前記クラス図エディタにより入力されたクラス情報と、前記イベントトレース図エディタにより入力されたイベント情報をもとにイベントとメソッドとを関連づけてイベント対メソッド相対情報を生成するイベント対メソッド相対情報生成部と、 前記イベント対メソッド相対情報生成部により生成されたイベント対メソッド相対情報よりイベントに対応するメソッドを呼び出す処理のソースコードを生成するイベント処理コード生成部と、 前記イベント処理コード生成部により生成されたソースコードを、前記処理本体のソースコードに合成するソースコード合成出力部とを備えたことを特徴とするソフトウェア開発支援装置。
  • 【請求項4】 前記イベントトレース図エディタは、入力されたイベント情報のイベントに対応するメソッドが、前記クラス図エディタにより入力されたクラス情報に存在するか否かを検索して、存在していない場合に、
    前記イベント情報よりクラスを決定して、決定したクラスに対して前記イベントをメソッドとして追加定義するイベントトレース図要素仕様編集部を備えたことを特徴とする請求項2または3記載のソフトウェア開発支援装置。
  • 【請求項5】 前記ソフトウェア開発支援装置は、さらに、プログラムルーチンで汎用的に用いる処理のパターンを処理部品として記憶する処理部品庫を備え、 前記イベントトレース図エディタは、入力されたイベント情報に対して前記処理部品庫に記憶された処理部品を指定する処理部品割当部を備えたことを特徴とする請求項2または3記載のソフトウェア開発支援装置。
  • 【請求項6】 前記イベント処理コード生成部は、前記イベント対メソッド相対情報をもとにイベントに対するメソッドを呼び出す処理のソースコードを生成するとともに、前記処理部品割当部によりイベント情報に対して指定された処理部品を前記処理部品庫より取得してソースコードを生成することを特徴とする請求項5記載のソフトウェア開発支援装置。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の属する技術分野】この発明は、計算機上でオブジェクト指向ソフトウェア開発の方法論に係わり、中でも特に、OMTによるクラス図、或いは、イベントトレース図及びクラス図からオブジェクト指向言語のソースコードを自動生成するソースコード生成部を備えたソフトウェア開発支援装置に関するものである。

    【0002】

    【従来の技術】従来の技術について説明する前に、まずオブジェクト指向ソフトウェア開発分野において使用される用語の意味について説明する。

    【0003】オブジェクト指向アプローチでは、実世界を「もの(=オブジェクト)」と、「もの」同士の「関係」を定義した関係定義情報で構成し、システムを「もの」と「関係」を表現したものとして構築する。

    【0004】オブジェクトは、オブジェクトの役割を果たすのに必要な「属性」データと、「メソッド」と呼ばれる手続き(プロシージャ)とで構成される。

    【0005】オブジェクト指向では、個々のオブジェクトに共通な性質を抽象化し、クラスというモデルを考え、これを用いてシステムを表現する。 クラスを使って作成されたモデルをクラス図と呼ぶ。

    【0006】プログラムの実行時に、クラスを型として生成させたものをインスタンスと呼ぶ。

    【0007】従来例1. 次に、従来例について説明する。 クラス図の表現方法としてよく知られている方法として、オブジェクト指向方法論(OMT)がある。 また、OMTではイベントトレース図と呼ばれるクラス間におけるイベントの発生順序を記述する図が用いられる。 計算機上でOMTを支援する装置の一例として、米国Rational社のツールRose/C++がよく知られている。 この装置では、クラス図やイベントトレース図など各種の図の作成/編集が可能である。 また、
    この装置ではオブジェクト指向プログラミング言語の1
    つであるC++のソースコード生成機能を持ち、クラス図上の各クラスの定義をもとにC++のソースコードを生成する。

    【0008】図4は、Rose/C++の機能を表わしたブロック図である。 この装置は、クラス図エディタ1、イベントトレース図エディタ6及びソースコード生成部であるC++ソースコード生成機能12を主要な機能として持つ。 この装置は、他にも各種エディタを持っているが、本明細書では省略する。

    【0009】図5は、クラス図の例を示したもので、図には互いに矢印線で接続された3つの矩形が表現されている。 これら3つの矩形はクラスを示しており、51はDriverクラス、52はAutomobileクラス、53はEngineクラスを表わしている。 また、
    各クラスの間を結ぶ矢印線は、お互いの関係を示しており、54はクラス名表示領域、55は属性のリスト表示領域、56はメソッドのリスト表示領域である。 また、
    矩形間の矢印線である関係57の左側にある菱形のマーク57aは集約をあらわし、AutomobileクラスがEngineクラスを含んでいることを示している。 Rose/C++では、クラス図エディタ1を用いて、図5のようなクラス図を作成することができる。 R
    ose/C++では、クラス図表示部2に図を表示し、
    ユーザはクラス図要素編集部3によって、クラス図上の要素であるクラスや属性、メソッド、関係などを編集する。 さらに、ユーザはクラス図要素仕様編集部4によって、各要素の名前や定義など詳細情報を入していく。
    そしてさらに、コード生成プロパティ編集部5によって、ソースコード生成のために必要な情報を入力していく。

    【0010】図6は、イベントトレース図の例を示したものであり、図において、58で示すUserはDri
    verクラスのインスタンス、59で示すMyCarはAutomobileクラスのインスタンス、60で示すTheEngineはEngineクラスのインスタンスである。 各インスタンス間の矢印線は、イベントを示している。 61で示すイベントは、UserからMy
    Carへ送られるStartEngine()イベントである。 62で示すイベントはMyCarからTheE
    ngineへ送られるStart()イベントであり、
    StartEngine()イベントの次に発生する。
    このように、イベントトレース図は、いくつかのクラスのインスタンス間で送出されるイベント及びそれらのイベントの順序を表現している。 Rose/C++では、
    このようなイベントトレース図を作成することができる。 Rose/C++では、イベントトレース図表示部7に図を表示し、ユーザはイベントトレース図要素編集部8によって、イベントトレース図上の要素であるインスタンスやイベントを編集する。 さらに、ユーザはイベントトレース図要素仕様編集部9によって、各要素の名前や定義など詳細情報を入力していく。

    【0011】オブジェクト指向アプローチによる分析及び設計の成果物であるこれらのクラス図やイベントトレース図は、C++などのオブジェクト指向プログラミング言語によってプログラムを実装する上で重要な設計図となる。 Rose/C++の場合、ソースコード生成機能12によってC++ソースコードのスケルトンを生成することができる。 ソースコード生成機能12では、クラス定義取得部13によって、クラス図エディタ1で作成したクラス図のクラス情報を記憶したクラス情報10
    からクラスごとの定義情報を抽出し、これらの定義情報をクラス定義変換部14によってC++ソースコードに置き換える。 そして、ソースコード出力部15によって、ソースコードを生成し、生成したソースコードをソースコード16に記憶する。

    【0012】イベントトレース図は、実行時の動作を示すシナリオであり、各インスタンス間でのイベントの発生順を示す。 イベントトレース図で示されるイベントは、受信側のインスタンスの元となるクラスが持つメソッドに等しい。 例えば、図6のイベントトレース図では、StartEngine()イベントは、受信側のインスタンスであるMyCarのクラスAutomob
    ileが持つメソッドStartEngine()と等しい。 図6のイベントトレース図でもそうなっており、
    これらの情報はプログラムの実装において重要である。
    しかし、Rose/C++が生成するソースコードはクラス図の情報だけを元にしており、イベントトレース図の情報は全くソースコードに反映されない。

    【0013】また、Rose/C++では、クラスのインスタンス生成や削除、属性の値参照や設定といった単純なメソッドについては、その処理本体まで実装してくれる。 しかし、その他ユーザが定義した単純でないようなメソッドについては、処理本体のない骨組みのみを生成する。 このようなユーザ定義のメソッドの処理本体は、エディタ上で開発者の手作業による記述が必要である。 以下、これらの点について説明する。

    【0014】図6のイベントトレース図では、クラスD
    river、Automobile、EngineのそれぞれのインスタンスUser、MyCar、TheE
    ngineがある。 そして、インスタンスUserからインスタンスMyCarへ送信されるイベントStar
    tEngine()、インスタンスMyCarからインスタンスTheEngineへ送信されるイベントSt
    art()の2つのイベントがある。 そして、イベントStartEngine()が送信された後、イベントStart()が送信されている。 イベントStart
    Engine()はインスタンスMyCarのメソッド、イベントStart()はインスタンスTheEn
    gineのメソッドであるとすると、C++ソースコードでの実装において、クラスAutomobileのメソッドStartEngine()の処理本体に、クラスEngineのメソッドStart()を呼び出す処理を手作業で記述する必要がある。

    【0015】従来例2. 他の従来例として、特開平9−
    22358号の発明がある。 特開平9−22358号の発明の第1の目的は、ある業務を実現するためのクラスを設計する初期段階で、オブジェクト指向アプローチに精通していない者であっても、クラスの持つべきメソッドを少ない工数で自動生成することができるクラス別メソッドの自動生成方法を提供することにある。 また、第2の目的は、再利用性が高く、品質の良いクラスとなるように、クラスの持つべきメソッドを自動生成することができるクラス別メソッドの自動生成方法を提供することにある。 さらに、第3の目的は、クラスが持つべきメソッドのコードを自動生成し、単純な実装作業を軽減することができるクラス別メソッドの自動生成方法を提供することにある。

    【0016】前記第1の目的を達成するために、複数のクラス属性にそれぞれ対応した複数のメソッド生成パターン情報をパターン情報記憶手段に予め蓄積しておき、
    目的とする処理機能を実現する上で必要となるクラスのメソッドを生成する際に、クラスの名称、属性等の情報からなるクラス定義情報及びクラス同士の関係を定めるクラス間関係情報とを定義した後、前記クラス定義情報とクラス間関係情報とを比較し、クラス定義情報で定義されたクラスの属性が他のクラスと関係しない単純属性か、他のクラスと関係する関係属性かを判定し、その判定結果の属性に対応したメソッド生成パターン情報を前記パターン情報記憶手段から読み出し、そのメソッド生成パターン情報を展開して前記クラス定義情報及びクラス間関係情報で定義された各クラスのメソッドを生成することを特徴とする。 また、第2の目的を達成するために、関係属性を有するクラスのメソッドを生成した後、
    関係するクラスの型がクラス定義情報に定義されているか否かを判定し、定義されていなければ、その型の属性に対応するメソッドを削除することを特徴とする。 さらに、第3の目的を達成するために、各クラスのメソッドを生成した後、そのメソッドをコード化することを特徴とする。

    【0017】

    【発明が解決しようとする課題】以上のように、従来例1において説明したソースコード生成機能を備えたオブジェクト指向分析/設計支援装置によれば、クラスのインスタンス生成や削除、クラスの属性の値参照/設定を行うような単純なメソッドを除き、ほとんどのメソッドを手作業で記述しなければならないという問題点があった。 また、作成したイベントトレース図の情報は、ソースコード生成機能で生成されるソースコードへ全く反映されないという問題点があった。

    【0018】また、従来例2において説明した特開平9
    −22358号の発明は、基本的なパターンのメソッドを自動生成させるという発明であり、方法論や手段に違いはあるものの、その趣旨に近いことを実現したものとして、米国Rational社製品Rose/C++がリリースされている。

    【0019】この発明は、上記問題点に鑑みてなされたもので、ソフトウェア開発支援装置にメソッド実装支援部を備えることによって、複雑なメソッドの実装作業を行う開発者の手助けとなるソフトウェア開発支援装置を提供することを目的とする。

    【0020】

    【課題を解決するための手段】この発明に係るソフトウェア開発支援装置は、OMT(OMTはobjectm
    odeling techniqueの略、オブジェクト指向を使ってシステム分析や設計を進めるオブジェクト指向分析/設計開発方法論の1つ)の少なくともクラスとメソッドとクラス間の関係とをクラス情報として入力し図示するクラス図の作成/編集作業を支援するクラス図エディタと、OMTの少なくともクラスのインスタンスとイベントの発生順序とをイベント情報として入力し図示するイベントトレース図の作成/編集作業を支援するイベントトレース図エディタと、前記クラス図エディタによって作成したクラス図のクラス情報をもとに処理本体のソースコードを自動生成するソースコード生成部とを有するソフトウェア開発支援装置において、前記ソースコード生成部は、前記クラス図エディタにより入力されたクラス情報と、前記イベントトレース図エディタにより入力されたイベント情報とをもとにイベントとメソッドとを関連づけてイベントに対応するメソッドを呼び出す処理のソースコードを作成して、前記生成したソースコードを、前記処理本体のソースコードに実装させるクラスメソッド実装支援部を備えたことを特徴とする。

    【0021】前記クラスメソッド実装支援部は、前記クラス図エディタにより入力されたクラス情報と、前記イベントトレース図エディタにより入力されたイベント情報をもとにイベントとメソッドを関連づけてイベント対メソッド相対情報を生成するイベント対メソッド相対情報生成部と、前記イベント対メソッド相対情報生成部により生成されたイベント対メソッド相対情報よりイベントに対応するメソッドを呼び出す処理のソースコードを生成するイベント処理コード生成部と、前記イベント処理コード生成により作成されたソースコードを、前記処理本体のソースコードに合成するソースコード合成出力部とを備えたことを特徴とする。

    【0022】この発明に係るソフトウェア開発支援装置は、OMT(OMTはobjectmodeling
    techniqueの略、オブジェクト指向を使ってシステム分析や設計を進めるオブジェクト指向分析/設計開発方法論の1つ)の少なくともクラスとメソッドとクラス間の関係とをクラス情報として入力し図示するクラス図の作成/編集作業を支援するクラス図エディタと、
    OMTの少なくともクラスのインスタンスとイベントの発生順序とをイベント情報として入力し図示するイベントトレース図の作成/編集作業を支援するイベントトレース図エディタと、前記クラス図エディタによって作成したクラス図の情報をもとに処理本体のソースコードを自動生成するソースコード生成部とを有するソフトウェア開発支援装置において、前記ソースコード生成部は、
    前記クラス図エディタにより入力されたクラス情報と、
    前記イベントトレース図エディタにより入力されたイベント情報をもとにイベントとメソッドとを関連づけてイベント対メソッド相対情報を生成するイベント対メソッド相対情報生成部と、前記イベント対メソッド相対情報生成部により生成されたイベント対メソッド相対情報よりイベントに対応するメソッドを呼び出す処理のソースコードを生成するイベント処理コード生成部と、前記イベント処理コード生成部により生成されたソースコードを、前記処理本体のソースコードに合成するソースコード合成出力部とを備えたことを特徴とする。

    【0023】前記イベントトレース図エディタは、入力されたイベント情報のイベントに対応するメソッドが、
    前記クラス図エディタにより入力されたクラス情報に存在するか否かを検索して、存在していない場合に、前記イベント情報よりクラスを決定して、決定したクラスに対して前記イベントをメソッドとして追加定義するイベントトレース図要素仕様編集部を備えたことを特徴とする。

    【0024】前記ソフトウェア開発支援装置は、さらに、プログラムルーチンで汎用的に用いる処理のパターンを処理部品として記憶する処理部品庫を備え、前記イベントトレース図エディタは、入力されたイベント情報に対して前記処理部品庫に記憶された処理部品を指定する処理部品割当部を備えたことを特徴とする。

    【0025】前記イベント処理コード生成部は、前記イベント対メソッド相対情報をもとにイベントに対するメソッドを呼び出す処理のソースコードを生成するとともに、前記処理部品割当部によりイベント情報に対して指定された処理部品を前記処理部品庫より取得してソースコードを生成することを特徴とする。

    【0026】

    【発明の実施の形態】実施の形態1. 以下、本発明の第1の実施形態について、図1,図5,図6に基づいて説明する。 図1は、本実施形態におけるシステム全体構成を示したブロック図である。 なお、従来例1で述べた図4と同じ要素には同じ符号をつけ、説明は省略する。 図1において、17はイベント情報11からイベントと送受信両側のインスタンスの情報を抽出するイベント情報取得部、18はイベント情報取得部17より得たイベントとクラス定義取得部13より検索したイベントに対応するメソッドとの関連付けを行い、イベント対メソッド相対情報を生成するイベント対メソッド相対情報生成部、19はイベント対メソッド相対情報をもとに、イベントの受信側のインスタンスに対応するクラスのメソッドの処理本体へ埋め込む、つまり、メソッドの処理本体から呼び出す別のインスタンスのメソッドのソースコードを生成するイベント処理コード生成部である。 30はクラスメソッド実装支援部であり、イベント情報取得部17とイベント対メソッド相対情報生成部18とイベント処理コード生成部19とソースコード合成出力部20
    より構成される。 また、20はクラス定義変換部14及びイベント処理コード生成部19が生成したソースコードを適切に合成し、ソースコード16を出力するソースコード合成出力部である。

    【0027】次に、図5のクラス図及び図6のイベントトレース図をもとにクラスメソッドを実装する例として、図2のフローチャートを参照しながら、本実施の形態におけるイベント処理部品生成の動作について説明する。

    【0028】まず、図5のクラス図では、Driver
    クラス、Automobileクラス及びEngine
    クラスを定義しており、それぞれのクラス間に関連を定義している。 開発者はクラス図要素仕様編集部4により、EngineクラスがAutomobileクラスに集約されることを定義する。 また、図6のイベントトレース図では、図5のクラス図で定義した3つのクラスに対応するそれぞれのインスタンスを定義しており、それぞれの間にイベントを定義している。 開発者はイベントトレース図要素仕様編集部9により、DriverクラスのインスタンスUserからAutomobile
    クラスのインスタンスMyCarへ送信されるイベントに、AutomobileクラスのメソッドStart
    Engine()を指定する。 さらに、Automob
    ileクラスのインスタンスMyCarからEngin
    eクラスのインスタンスTheEngineへ送信されるイベントに、EngineクラスのメソッドStar
    t()を指定する。

    【0029】開発者がソースコード生成機能12に対して実行を命令すると、クラス定義取得部13は、クラス情報10からクラスの定義情報を取得し、イベント情報取得部17は、イベント情報11からイベント及び送受信側のインスタンスの情報を取得する(ステップ10
    1)。

    【0030】次に、イベント対メソッド相対情報生成部18は、イベント情報取得部17が取得したイベントの受信側インスタンス情報をもとに、クラス情報の中から該当するクラスを検索し、イベントに定義されたメソッドが該当するクラスのものであることを確認する(ステップ102)。

    【0031】具体的には、イベント情報取得部17がS
    tart()というイベントを取得し、このイベントの受信側インスタンスTheEngineがEngine
    クラスであることを知る。 そして、イベント対メソッド相対情報生成部18は、クラス情報の中からEngin
    eクラスを見つけ、EngineクラスにあるメソッドStart()がイベントstart()と同一であることを確認する。

    【0032】さらに、イベント対メソッド相対情報生成部18は、イベントの送信側インスタンスが直前に受信したイベントの情報を得て、そのイベントに相当するメソッドを確認する(ステップ103)。

    【0033】具体的には、送信側インスタンスMyCa
    rにおいて、イベントStart()が呼ばれる直前のイベントStartEngine()を取得し、そのイベントがAutomobileクラスのメソッドであることを確認する。

    【0034】イベント対メソッド相対情報生成部18
    は、対象のイベント(ここでは、イベントStar
    t())と受信側インスタンスによって示されるクラスが持つメソッドとを組み合わせて、また一方で、送信側インスタンスにおいて、対象のイベントの直前に受信したイベント(ここでは、イベントStartEngin
    e())とそれを受けたインスタンスによって示されるクラスが持つメソッドとを組み合わせて、これら2つの組み合わせを関連付けた情報を生成する(ステップ10
    4)。

    【0035】具体的には、イベント情報の1つであるインスタンスTheEngineとそのクラス情報の1つであるメソッドStart()とイベント情報の1つであるイベントStart()を組み合わせて、一方で、
    インスタンスMyCarとそのメソッドStartEn
    gine()とイベントStartEngine()とを組み合わせて、これら2つの情報を関連付けた情報を生成する。

    【0036】イベント処理コード生成部19は、イベント対メソッド相対情報生成部18が生成した情報をもとに、C++ソースコードを生成し、どのメソッドに生成したソースコードを埋め込むかを指定した情報を付加する(ステップ106)。

    【0037】具体的には、インスタンスTheEngi
    neのメソッドStart()を呼び出す処理をC++
    ソースコードで生成して、この処理はインスタンスMy
    CarのメソッドStartEngine()の中で行われることを指定する情報を付加しておく。

    【0038】各イベントごとに、対応するメソッドの情報取得からC++ソースコード生成までのステップ10
    2〜ステップ106の処理を繰り返す(ステップ10
    7)。

    【0039】クラス定義変換部14は、クラス定義取得部13からクラス定義情報を受け取り、C++ソースコードへ変換する(ステップ108)。

    【0040】具体的には、図5のクラス図にあるDri
    verクラス、Automobileクラス、Engi
    neクラスの定義とメソッドの定義の骨組みをC++ソースコードに生成する。

    【0041】最後に、ソースコード合成出力部20において、クラス定義変換部14が生成したC++ソースコードの指定の位置へ、イベント処理コード生成部19が生成したC++ソースコードを挿入する(ステップ10
    9)。

    【0042】具体的には、AutomobileクラスのメソッドStartEngine()の定義の骨組みの中に、インスタンスTheEngineのメソッドS
    tart()を呼び出す処理のC++ソースコードを挿入する。

    【0043】以上のようにして、図5及び図6に示したクラス図およびイベントトレース図から、クラスメソッドの処理本体を補足する形で実装することができるので、開発者の実装作業における手作業の負担を減らすことができる。

    【0044】実施の形態2. 次に、本発明の第2の実施の形態について説明する。 本実施の形態におけるシステムの全体構成は、図1と同じである。

    【0045】イベントトレース図エディタ6において、
    新たにイベントを定義する。 このとき、イベントトレース図要素仕様編集部は、イベントに対応するメソッドがクラス情報10に設定されていない場合、ここで新たにメソッドを定義すると、受信側インスタンスのもととなるクラスに、イベントトレース図エディタ上で新規に定義したメソッドを自動的に追加し、クラス情報10に格納する。

    【0046】このようにすると、イベントトレース図を作成する過程において、イベントトレース図エディタ上での追加作業を反映して、クラス図の修正が自動的に行われるため、開発者の設計作業の負担を減らすことができる。

    【0047】実施の形態3. 次に、本発明の第3の実施の形態について、図3に基づいて説明する。 図3は、本実施の形態におけるシステムの全体構成を示したブロック図である。 なお、第1の実施の形態と同じ要素には同じ符号をつけ、説明を省略する。 図3において、21は各イベントに処理部品を割り当てる処理部品割当部、2
    2は汎用的な各種処理部品を格納して管理する処理部品庫である。 処理部品とは、プログラムルーチンで用いる条件分岐制御や反復制御などの基本的な処理を部品化したもの、さらに、それらを組み合わせて部品化したものなど、各種パターンの処理部品であるとする。

    【0048】本実施の形態におけるイベント処理部品は、実施の形態1で説明したイベント処理コード生成部19が生成するC++ソースコードのことである。 このため、イベント処理部品の生成動作については説明を省略して、追加した動作を説明する。

    【0049】イベントトレース図エディタ6上で、処理部品割当部21によって各イベントごとに処理部品の指定を必要に応じて行う。 このときに、別に指定したメソッドとの処理順の指定も同時に行う。 イベント情報11
    には、これらの処理部品情報や処理順情報も格納される。

    【0050】ソースコード生成の際、イベント処理コード生成部19において、イベント対メソッド相対情報生成部18が生成した情報をもとに、C++ソースコードを生成し、どのメソッドに生成したソースコードを埋め込むかを指定した情報を付加する。 このとき、生成したソースコードには、処理部品割当部21で指定した処理部品の呼出しコードも追加され、その情報は処理部品庫22から取得することによって補われる。

    【0051】このようにすると、クラスメソッドの処理本体をイベント呼出しだけでなく、既存の処理部品の呼出しもさらに補足する形で実装することができるので、
    開発者の実装作業における手作業の負担を減らすことができる。

    【0052】

    【発明の効果】本発明によれば、クラスメソッド実装支援部、特に、イベント処理コード生成部を備えたことにより、イベントトレース図を元にメソッド呼出しの処理コードを自動的に生成することができ、クラスメソッドの処理本体への実装を補なうことが可能になる。 これにより、イベントトレース図の情報を有効に生かすことができる効果がある。

    【0053】また、この発明によれば、クラス情報とイベントトレース図要素仕様編集部を連携させることにより、クラス図とイベントトレース図とを対応させた一元管理が実現でき、ミスの少ない設計作業を行うことができる効果がある。

    【0054】また、この発明によれば、処理部品庫を導入することにより、クラスメソッドの処理本体をイベントトレース図上で各イベントに割り当てることが可能になる。 これにより、さらにクラスメソッドの処理本体を追加して自動生成させることができ、実装作業の工程を短縮できる。

    【図面の簡単な説明】

    【図1】 本発明の第1の実施の形態に係るソフトウェア開発支援装置の全体構成を示すブロック図である。

    【図2】 第1の実施の形態におけるソースコード生成機能のフローチャート図である。

    【図3】 本発明の第3の実施の形態に係るソフトウェア開発支援装置の全体構成を示すブロック図である。

    【図4】 従来例の装置の全体構成を示すブロック図である。

    【図5】 クラス図の一部を示す図である。

    【図6】 クラス図に定義されたクラスのインスタンス間のイベントを示したイベントトレース図である。

    【符号の説明】

    1 クラス図エディタ、2 クラス図表示部、3 クラス図要素編集部、4クラス図要素仕様編集部、5 コード生成プロパティ編集部、6 イベントトレース図エディタ、7 イベントトレース図表示部、8 イベントトレース図要素編集部、9 イベントトレース図要素仕様編集部、10 クラス情報、11 イベント情報、12
    ソースコード生成機能、13 クラス定義取得部、1
    4 クラス定義変換部、15 ソースコード出力部、1
    6 ソースコード、17 イベント情報取得部、18
    イベント対メソッド相対情報生成部、19 イベント処理コード生成部、20 ソースコード合成出力部、21
    処理部品割当部、22処理部品庫、30 クラスメソッド実装支援部、51 Driverクラス、52 A
    utomobileクラス、53 Engineクラス、54 クラス名表示領域、55 属性のリスト表示領域、56 メソッドのリスト表示領域、57 関係、
    57a 菱形のマーク、58 DriverクラスのインスタンスUser、59 AutomobileクラスのインスタンスMyCar、60EngineクラスのインスタンスTheEngine、61 Start
    Engine()イベント、62 Start()イベント。

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈