(57)【要約】【課題】オブジェクト指向開発で用いるユースケースとシナリオ、オブジェクト図およびシーケンス図、ソースコードの関係が整合関係に保たれるように、オブジェクト指向開発作業を支援すること。【解決手段】ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第１のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第２のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第３のステップとを備える。【選択図】　　　　図１
2004110378.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援方法であって、
ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第１のステップと、
アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第２のステップと、
抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第３のステップと
を備えることを特徴とするオブジェクト指向開発支援方法。
【請求項２】
オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援方法であって、
オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第１のステップと、
抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第２のステップと、
シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第３のステップと、
抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第４のステップと、
を備えることを特徴とするオブジェクト指向開発支援方法。
【請求項３】
オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法であって、
ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第１のステップと、
対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第２のステップと、
対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第３のステップと
を備えることを特徴とするオブジェクト指向開発支援方法。
【請求項４】
オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援装置であって、
ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第１の手段と、
アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第２の手段と、
抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第３の手段と
を備えることを特徴とするオブジェクト指向開発支援装置。
【請求項５】
オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援装置であって、
オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第１の手段と、
抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第２の手段と、
シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第３の手段と、
抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第４の手段と、
を備えることを特徴とするオブジェクト指向開発支援装置。
【請求項６】
オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援装置であって、
ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第１の手段と、
対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第２の手段と、
対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第３の手段と
を備えることを特徴とするオブジェクト指向開発支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法に関するものである。
【０００２】
【従来の技術】
従来、オブジェクト指向開発における入出力項目を抽出する技術として、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出するものがある（例えば、特許文献１参照）。
また、既存の業務システムから新たな業務システムを効率的に開発するものがある（例えば、特許文献２参照）。
【０００３】
【特許文献１】
特開平８−２４９１６５号公報
【０００４】
【特許文献２】
特開２００１−２８２５１７号公報
【０００５】
特開平８−２４９１６５号公報に記載の従来技術は、詳しくは、既存のクラスライブラリからクラス定義情報、メソッド実装情報、画面部品、イベントハンドラ情報を抽出し、画面のイベントとクラスのメソッドの対応関係を導き出したユーザ・インタフェース設計支援情報を抽出して出力するものである。
また、特開２００１−２８２５１７号公報に記載の従来技術は、詳しくは、パターン化された既存の業務システムを元に、作成しようとしているＨＴＭＬ画面からパラメータを解析し、データベース作成に必要な設定を判定し、設定を入力すると、業務システムで必要なデータベース、画面テンプレート、プログラムモジュールを生成するものである。
【０００６】
一方、オブジェクト指向開発で用いるオブジェクト図とシーケンス図をクラス図と連動することでオブジェクト指向開発を支援するツールや、オブジェクト指向開発で用いるクラス図とシーケンス図をソースコードと連動することでオブジェクト指向開発を支援するツールは市販されている。
オブジェクト指向開発では、ユースケースとシナリオの分析は手作業で行い、出来上がったソースコードに対して、手作業でＶｅｒｉｆｉｃａｔｉｏｎ、Ｖａｌｉｄａｔｉｏｎを行うことでユースケースとシナリオに合ったプログラムが生成されているか確認する。
ここで、Ｖｅｒｉｆｉｃａｔｉｏｎとは、作成したプログラムがユースケース、シナリオと過不足がないかをチェックすることを指し、Ｖａｌｉｄａｔｉｏｎとは実際にプログラムを動かし、ＰＣＬ等を用いて、厳密にテストすることを指す。
【０００７】
【発明が解決しようとする課題】
しかしながら、特開平８−２４９１６５号公報に記載の技術は、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出することはできるものの、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、特開２００１−２８２５１７号公報に記載の技術は、作成しようとしているＨＴＭＬ画面から入出力パラメータを抽出することはできるが、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、市販されているツールはオブジェクト図とシーケンス図をクラス図、シーケンス図と同期を取る（整合させる）ことや、クラス図とシーケンス図をソースコードと同期を取る（整合させる）ことはできるが、ユースケース、シナリオをオブジェクト図、シーケンス図と同期を取ることができない問題点がある。
【０００８】
本発明の目的は、オブジェクト指向開発で用いるユースケースとシナリオ、オブジェクト図およびシーケンス図、ソースコードの関係が整合関係に保たれるように、オブジェクト指向開発作業を支援することができるオブジェクト指向開発支援方法およびシステムを提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明は、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援方法であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第１のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第２のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第３のステップとを備えることを特徴とする。
【００１０】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援方法であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第１のステップと、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第２のステップと、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第３のステップと、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第４のステップとを備えることを特徴とする。
【００１１】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第１のステップと、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第２のステップと、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第３のステップとを備えることを特徴とする。
【００１２】
また、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援装置であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第１の手段と、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第２の手段と、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第３の手段とを備えることを特徴とする。
【００１３】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援装置であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第１の手段と、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第２の手段と、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第３の手段と、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第４の手段とを備えることを特徴とする。
【００１４】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援装置であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第１の手段と、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第２の手段と、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第３の手段とを備えることを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図１は、本発明の実施の一形態のオブジェクト指向開発支援装置のブロック図である。
図１に示すオブジェクト指向開発支援装置１は、ユースケースおよびシナリオ２の入力を受付け、シナリオに対応したオブジェクト図３、シナリオに対応したシーケンス図４を出力すると共に、オブジェクト図３およびシーケンス図４の入力を受付け、オブジェクト図３およびシーケンス図４に対応したユースケースおよびシナリオ２を出力するように構成されている。
オブジェクト指向開発支援装置１は、ユースケースおよびシナリオ２からオブジェクト図を抽出するオブジェクト抽出手段１１、オブジェクト図からユースケースおよびシナリオの入出力項目を抽出する入出力項目抽出手段１２、ユースケースおよびシナリオ２からシーケンス図を抽出するシーケンス抽出手段１３、シーケンス図からユースケースおよびシナリオのステップを抽出するシナリオステップ抽出手段１４を備えている。
【００１６】
図２は、本発明を適用したオブジェクト指向開発手順の構成図である。
図２では、
（１）ユースケースおよびシナリオ２とオブジェクト図３およびシーケンス図４との関係をオブジェクト指向開発支援装置１を利用して整合関係にする
（２）オブジェクト図３およびシーケンス図４とクラス図５およびシーケンス図６との関係を市販ツール７を用いて整合関係にする、
（３）クラス図５およびシーケンス図６とソースコード８とを市販ツール９を用いて整合関係にする、
という開発支援手順が示されている。
【００１７】
図３は、シナリオの具体例を示す図であり、１つのシナリオには複数のユースケースが存在するが、例として１つのシナリオを取り上げる。
図３の「掲示板に投稿する」シナリオは、シナリオ名３０００と、シナリオステップ表３１００、シナリオの入出力項目の詳細を表す投稿内容３３００、記事３４００、記事概略３５００から構成されている。
シナリオステップ表３１００は、シナリオのステップ毎にＳｔｅｐ番号３１１０、掲示板を投稿する人を表す利用者アクタ３１２０、システムの処理３１３０を１行に記述する表であり、各ステップ毎に利用者アクタ３１２０、システムの処理３１３０のいずれかのみ記述する。
シナリオはステップ番号の順序に従って時系列で処理の流れを表す。《》で囲まれている項目は入出力項目を表す。《》の直後のアルファベット記号は入出力項目の詳細を参照することを表す。『』で囲まれている文はユースケースを表し、そのステップでは指定されたユースケースを呼び出すことを表す。
【００１８】
図４はオブジェクト抽出手段１１の処理を示すフローチャート、図５はオブジェクト図３の具体例である。図５のオブジェクト図３は、図３の「掲示板に投稿する」シナリオに対応しており、シナリオ名３０００、掲示板オブジェクト５２００、投稿内容オブジェクト５３００、記事オブジェクト５４００、記事概略オブジェクト５５００から構成されている。
掲示板オブジェクト５２００は、掲示板ＩＤ、掲示板名称という２つの属性を持つ。投稿内容オブジェクト５３００は、投稿者名、題名、本文という３つの属性を持つ。
記事オブジェクト５４００は、記事ＩＤ、投稿者名、題名、本文、投稿日時という５つの属性を持つ。
記事概略オブジェクト５５００は、投稿者名、題名、投稿日時という３つの属性を持つ。
【００１９】
図３の「掲示板に投稿する」ユースケースから図４のフローチャートに基づいて、図５のオブジェクト図を生成する手順を詳しく説明する。
まず、シナリオの次のステップは存在するかどうかを判定する（ステップ４１００）。最初の場合には、シナリオステップ（１）の「『掲示板一覧を表示する』」３２１０が存在するので、シナリオステップ（１）「『掲示板一覧を表示する』」３２１０を読み取る（ステップ４２００）。そして、入出力項目マーク《》が存在するかどうかを判定する（ステップ４３００）。図３の例では、シナリオステップ（１）には入出力項目マーク《》は存在しないので、ステップ４１００に戻り、再度、シナリオの次のステップは存在するかどうかを判定する。
【００２０】
シナリオの次のステップは存在する。すなわち、「投稿先の《掲示板．掲示板ＩＤ》を指定する。」というシナリオステップ（２）が存在するので、その内容である「投稿先の《掲示板．掲示板ＩＤ》を指定する。」３２２０を読み取る（ステップ４２００）。
そして、入出力項目マーク《》が存在するかどうかを判定する（ステップ４３００）。入出力項目マーク《》は存在するので、ステップ４４００に移り、入出力項目《掲示板．掲示板ＩＤ》を抽出する。
そして、複数項目を１組として扱っていないかどうかを判定する（ステップ４５００）。図３の例のシナリオステップ（２）では、複数項目を１組として扱っていないので、ステップ４７００に移り、入出力項目《掲示板．掲示板ＩＤ》をオブジェクト「掲示板」の属性「掲示板ＩＤ」にし、オブジェクト図へ出力する（ステップ４７００）。
【００２１】
これにより、図５の掲示板オブジェクト５２００とその属性である掲示板ＩＤがオブジェクト図に表示される。
複数項目を１組として扱っていた場合には、ステップ４６００に進み、複数項目を属性に持つオブジェクトをオブジェクト図に出力する。
この後、ステップ４１００に戻る（ステップ４８００）。
以降、シナリオステップ（３）の「《掲示板．掲示板名称》を取得する」３２３０についても同様の処理を行う。これにより、図５の「掲示板」オブジェクトの掲示板名称が出力される。
【００２２】
そして、次のシナリオステップ（４）の「《投稿内容》（ａ）を入力する。」３２４０を読み取る（ステップ４２００）。
すると、入出力項目マーク《》が存在するので、ステップ４３００からステップ４４００に移り、入出力項目《投稿内容》（ａ）を抽出する。ここでは、投稿者名、題名、本文といった複数項目を１組として扱っているので、ステップ４５００からステップ４６００に移り、「投稿者名、題名、本文」という複数項目を属性に持つオブジェクト「投稿内容」５３００をオブジェクト図に出力する（ステップ４６００）。
これにより、投稿内容オブジェクト５３００とその属性である投稿者名、題名、本文がオブジェクト図に表示される。この後、ステップ４１００に戻る（ステップ４８００）。
【００２３】
以降、シナリオステップ（５）３２５０、シナリオステップ（６）３２６０、シナリオステップ（７）３２７０、シナリオステップ（８）についても同様な処理を繰り返す。
シナリオステップ（５）では、入出力項目マーク《》が存在するが、投稿内容オブジェクトは既にシナリオステップ（２）で作成されている。
シナリオステップ（６）では、入出力項目マーク《》が存在するが、掲示板オブジェクトは既にシナリオステップ（２）で作成されている。
【００２４】
シナリオステップ（７）では、入出力項目マーク《》が存在するので、入出力項目《記事》（ｂ）を抽出し、記事ＩＤ，投稿者名、題名、本文、投稿日時を属性に持つオブジェクト５４００を出力する。
シナリオステップ（８）では、入出力項目マーク《》が存在するので、入出力項目《記事概略》（ｃ）を抽出し、投稿者名、題名、投稿日時を属性に持つオブジェクト５５００を出力する。
以上の処理により、図３のシナリオ３から図５に示すようなオブジェクト図が生成される。
【００２５】
図６は、シナリオからシーケンス図を生成するシーケンス抽出手段１３の処理を示すフローチャート、図７は生成されたシーケンス図の例を示す図である。
図７のシーケンス図４は、図３の「掲示板に投稿する」シナリオに対応しており、シナリオ名３０００と、利用者アクタ３１２０、ディスパッチャオブジェクト７３１０、掲示板オブジェクト５２００、投稿内容オブジェクト５３００、記事オブジェクト５４００、記事概略オブジェクト５５００間のメッセージ７４１０から７４８０までで構成されている。
【００２６】
以下、図３の「掲示板に投稿する」ユースケースから図７のシーケンス図を生成する手順について図６のフローチャートに基づいて詳細に説明する。
まず、図３のシナリオからアクタ名「利用者」３１２０を読み取り、図７のシーケンス図の「利用者」アクタ３１２０を表示する（ステップ６１００）。次に、シーケンス図にディスパッチャオブジェクト７３１０を表示する。
次に、シナリオの次のステップは存在するかどうかを判定する（ステップ６３００）。図３のシナリオでは、最初のシナリオステップ（１）が存在するので、「『掲示板一覧を表示する』」３２１０を読み取る（ステップ６４００）。
シナリオステップ（１）３２１０は、アクタが行うステップである（ステップ６５００）ので、ステップ６６１０に移り、シナリオステップの内容をアクタ「利用者」３１２０からディスパッチャオブジェクト７３１０へのメッセージ７４１０としてシーケンス図に出力する（ステップ６６１０）。そして、シナリオステップ（１）３２１０の「ステップ番号１」をメッセージ７４１０の先頭に付ける（ステップ６６２０）。この後、ステップ６３００へ戻る（ステップ６８００）。
次に、シナリオステップ（２）３２２０について同様の処理を行う。
【００２７】
次のシナリオステップ（３）については、「《掲示板．掲示板名称》を取得する。」３２３０を読み取る（ステップ６４００）。このシナリオステップ（３）３２３０はアクタが行うステップではない（ステップ６５００）ので、ステップ６７１０に移り、入出力項目《掲示板．掲示板名称》に対応する掲示板オブジェクト５２００をシーケンス図に出力する（ステップ６７１０）。
次に、シナリオステップ（３）３２３０の内容をディスパッチャオブジェクト７３１０から入出力項目に対応する掲示板オブジェクト５２００へのメッセージ７４３０としてシーケンス図に出力する（ステップ６７２０）。
シナリオステップ（３）３２３０は項目を含まない（ステップ６７３０）ので、ステップ６６２０に移り、シナリオステップ（３）３２３０の「ステップ番号３」をメッセージ７４３０の先頭に付ける（ステップ６６２０）。この後、ステップ６３００へ戻る（ステップ６８００）。
シナリオステップ（４）３２４０についても同様の処理を行う。
【００２８】
シナリオステップ（５）については、「《投稿内容をチェックする》」３２５０を読み取る（ステップ６４００）。シナリオステップ（５）３２５０は、アクタが行うステップではない（ステップ６５００）ので、ステップ６７１０に移る。
そして、入出力項目《投稿内容》（ａ）に対応する投稿内容オブジェクト５３００をシーケンス図に出力する（ステップ６７１０）。また、シナリオステップ（５）３２５０の内容をディスパッチャオブジェクト７３１０から入出力項目に対応する投稿内容オブジェクト５３００へのメッセージ７４５０としてシーケンス図に出力する（ステップ６７２０）。さらに、シナリオステップ（５）３２５０は複数の項目を含む（ステップ６７３０）ので、ステップ６７４０に移る。そして、シナリオステップ（５）３２５０の各項毎に入出力項目に対応する投稿内容オブジェクト５３００への再帰メッセージ７４５１、７４５２、７４５３としてシーケンス図に出力する（ステップ６７４０）。また、シナリオステップ（５）３２５０の「ステップ番号５」と各項の番号１、２、３をメッセージ７４５１、７４５２、７４５３の先頭に付け、ステップ６３００へ戻る（ステップ６８００）。
【００２９】
シナリオステップ（６）３２６０、シナリオステップ（７）３２７０、シナリオステップ（８）３２８０についても同様に行う。
これにより、図７にイ示すようなシーケンス図が生成される。
【００３０】
図８は、オブジェクト図とユースケースおよびシナリオとを同期させる（整合させる）入出力項目抽出手段１２の処理を示すフローチャートである。
図５のオブジェクト図３と図３のシナリオとの同期をとる場合の例を挙げて説明する。
図５の「掲示板に投稿する」場合のオブジェクト図に対応する図３の「掲示板に投稿する」シナリオに着目する（ステップ８１００）。
オブジェクト図３で着目していないオブジェクトはあるかどうかを判定する（ステップ８２００）、図５のオブジェクト図では、着目していないオブジェクトは存在するので、ステップ８３００に進む。そこで、着目していない１つの掲示板オブジェクト５２００に着目する（ステップ８３００）。
【００３１】
掲示板オブジェクト５２００の属性、掲示板ＩＤと同じ入出力項目はシナリオステップ（２）３２２０にある（ステップ８４００）ので、掲示板オブジェクト５２００の属性、掲示板ＩＤに対応する入出力項目《掲示板．掲示板ＩＤ》に着目する（ステップ８５００）。入出力項目《掲示板．掲示板ＩＤ》に対応するのはオブジェクトではなく、属性であるので（ステップ８６００）、ステップ８８００に移り、入出力項目が《掲示板．掲示板ＩＤ》となるようにシナリオまたはオブジェクト図を修正し、ステップ８２００に戻る（ステップ８９００）。
同様にして、掲示板オブジェクト５２００の属性である掲示板名称についても行う。
【００３２】
以降、着目していない１つの投稿内容オブジェクト５３００に着目する（ステップ８３００）。投稿内容オブジェクト５３００の名前と同じ入出力項目はシナリオステップ（４）３２４０とシナリオステップ（５）３２５０にある（ステップ８４００）ので、投稿内容オブジェクト５３００に対応する入出力項目「《投稿内容》（ａ）」に着目する（ステップ８５００）。入出力項目《投稿内容》（ａ）はオブジェクトに対応している（ステップ８６００）ので、ステップ８７１０に移り、オブジェクト名「投稿内容」が入出力項目名《投稿内容》と同じになるようシナリオまたはオブジェクト図を修正する（ステップ８７１０）。そして、投稿内容オブジェクト５３００の属性、投稿者名、題名、本文が入出力項目《投稿内容》（ａ）の詳細３３００の項目、投稿者名、題名、本文と同じになるようシナリオまたはオブジェクト図を修正する（ステップ８７２０）。この後、ステップ８２００に戻る（ステップ８９００）。
同様にして、記事オブジェクト５４００、記事概略オブジェクト５５００についても行う。
【００３３】
これにより、オブジェクト図とシナリオとの整合関係に修正される。したがって、オブジェクトを生成した後、このオブジェクト図に変更を加えたとしても、上記のような処理を行うことにより、オブジェクト図に加えた変更内容に対応してシナリオが修正され、両者の整合関係を維持することが可能になる。
【００３４】
図９は、シナリオステップ抽出手段１４の処理を示すフローチャートである。図７のシーケンス図４と図３のシナリオとを整合させる場合の処理について図９のフローチャートに基づいて詳細に説明する。
まず、着目していないメッセージはあるかどうかを判定する（ステップ９１００）。図７のシーケンス図４においては、未だ着目していないメッセージ「掲示板一覧を表示する」７４１０があるので、まず「掲示板一覧を表示する」７４１０に着目する（ステップ９２００）。
次に、メッセージ番号は連番が付いているかどうかを判定する。メッセージ「掲示板一覧を表示する」７４１０の「メッセージ番号１」（シナリオのステップ番号に対応する）は連番が付いていない（ステップ９３００）ので、「メッセージ番号１」に対するシナリオステップ（１）３２１０に着目する（ステップ９４００）。そして、メッセージ７４１０の内容とシナリオステップ（１）３２１０の内容が同じになるようにメッセージ７４１０またはシナリオを修正する（ステップ９５００）。この後、ステップ９１００に戻る（ステップ９８００）。
【００３５】
メッセージ７４２０、７４３０、７４４０、７４５０、７４６０、７４７０、７４８０についても同様に行う。
着目していないメッセージ「投稿者名は入力されているか」７４５１に着目すると（ステップ９２００）、「メッセージ番号５．１」「５．１」、「５．２」といった連番が付いている（ステップ９３００）ので、メッセージ番号５．１に対するシナリオステップ（５）の「項番１」３２５１に着目する（ステップ９４００）。そして、メッセージ７４５１の内容とシナリオステップ（５）の「項番１」３２５１の内容が同じになるようにシーケンス図またはシナリオを修正する（ステップ９７００）。この後、ステップ９１００に戻る（ステップ９８００）。
メッセージ７４５２、７４５３、７４７１、７４７２、７４７３についても同様に行う。
【００３６】
以上のような機能を有するオブジェクト開発支援装置１と市販のツール７，９を組み合せて使用することにより、オブジェクト図３およびシーケンス図４とソースコード８とを対応付け、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめることができ、従来のＶｅｒｉｆｉｃａｔｉｏｎの作業を自動化することができる。
すなわち、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させる場合に、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを図１のオブジェクト支援開発支援装置１を用いて対応付け、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを図２の市販ツール７を用いて対応付け、さらに対応付けられたクラス図およびシーケンス図がソースコードと対応するかを市販ツール９を用いて判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付けることにより、従来のＶｅｒｉｆｉｃａｔｉｏｎの作業を自動化することができる。
【００３７】
【発明の効果】
以上説明したように、本発明によれば、ユースケース、シナリオと対応するオブジェクト図、シーケンス図が自動的に生成され、ユースケース、シナリオに修正があった場合はオブジェクト図、シーケンス図に修正内容が反映される。
逆にオブジェクト図、シーケンス図で修正があった場合もユースケース、シナリオに修正内容が反映される。
これにより、オブジェクト指向開発において、ユースケース、シナリオとオブジェクト図、シーケンス図の同期が取れるので、効率的に開発することができる。
また、既存のツールと組み合わせることによって、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめるＶｅｒｉｆｉｃａｔｉｏｎの作業を自動化することができる。
【図面の簡単な説明】
【図１】本発明を実現するオブジェクト指向開発支援装置の実施の形態を示すブロック図である。
【図２】図１のオブジェクト指向開発支援装置を用いたシナリオ、オブジェクト図、シーケンス図、ソースコードの整合処理の概要を示す図である。
【図３】シナリオの具体例を示す図である。
【図４】オブジェクト抽出手段の処理を示すフローチャートである。
【図５】オブジェクト図の具体例を示す図である。
【図６】シーケンス抽出手段の処理を示すフローチャートである。
【図７】シーケンス図の具体例を示す図である。
【図８】入出力項目抽出手段の処理を示すフローチャートである。
【図９】シナリオステップ抽出手段の処理を示すフローチャートである。
【符号の説明】
１…オブジェクト指向開発支援装置、２…シナリオ、ユースケース、３…オブジェクト図、４…シーケンス図、５…クラス図、１１…オブジェクト抽出手段、１２…入出力項目抽出手段、１３…シーケンス抽出手段、１４…シナリオステップ抽出手段。
【図１】
2004110378.tif 000003
【図２】
2004110378.tif 000004
【図３】
2004110378.tif 000005
【図４】
2004110378.tif 000006
【図５】
2004110378.tif 000007
【図６】
2004110378.tif 000008
【図７】
2004110378.tif 000009
【図８】
2004110378.tif 000010
【図９】
2004110378.tif 000011