JP2004110378A - オブジェクト指向開発支援方法および装置 - Google Patents
オブジェクト指向開発支援方法および装置 Download PDFInfo
- Publication number
- JP2004110378A JP2004110378A JP2002271743A JP2002271743A JP2004110378A JP 2004110378 A JP2004110378 A JP 2004110378A JP 2002271743 A JP2002271743 A JP 2002271743A JP 2002271743 A JP2002271743 A JP 2002271743A JP 2004110378 A JP2004110378 A JP 2004110378A
- Authority
- JP
- Japan
- Prior art keywords
- diagram
- scenario
- input
- oriented development
- sequence diagram
- 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
Links
Images
Abstract
【課題】オブジェクト指向開発で用いるユースケースとシナリオ、オブジェクト図およびシーケンス図、ソースコードの関係が整合関係に保たれるように、オブジェクト指向開発作業を支援すること。
【解決手段】ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3のステップとを備える。
【選択図】 図1
【解決手段】ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3のステップとを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法に関するものである。
【0002】
【従来の技術】
従来、オブジェクト指向開発における入出力項目を抽出する技術として、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出するものがある(例えば、特許文献1参照)。
また、既存の業務システムから新たな業務システムを効率的に開発するものがある(例えば、特許文献2参照)。
【0003】
【特許文献1】
特開平8−249165号公報
【0004】
【特許文献2】
特開2001−282517号公報
【0005】
特開平8−249165号公報に記載の従来技術は、詳しくは、既存のクラスライブラリからクラス定義情報、メソッド実装情報、画面部品、イベントハンドラ情報を抽出し、画面のイベントとクラスのメソッドの対応関係を導き出したユーザ・インタフェース設計支援情報を抽出して出力するものである。
また、特開2001−282517号公報に記載の従来技術は、詳しくは、パターン化された既存の業務システムを元に、作成しようとしているHTML画面からパラメータを解析し、データベース作成に必要な設定を判定し、設定を入力すると、業務システムで必要なデータベース、画面テンプレート、プログラムモジュールを生成するものである。
【0006】
一方、オブジェクト指向開発で用いるオブジェクト図とシーケンス図をクラス図と連動することでオブジェクト指向開発を支援するツールや、オブジェクト指向開発で用いるクラス図とシーケンス図をソースコードと連動することでオブジェクト指向開発を支援するツールは市販されている。
オブジェクト指向開発では、ユースケースとシナリオの分析は手作業で行い、出来上がったソースコードに対して、手作業でVerification、Validationを行うことでユースケースとシナリオに合ったプログラムが生成されているか確認する。
ここで、Verificationとは、作成したプログラムがユースケース、シナリオと過不足がないかをチェックすることを指し、Validationとは実際にプログラムを動かし、PCL等を用いて、厳密にテストすることを指す。
【0007】
【発明が解決しようとする課題】
しかしながら、特開平8−249165号公報に記載の技術は、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出することはできるものの、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、特開2001−282517号公報に記載の技術は、作成しようとしているHTML画面から入出力パラメータを抽出することはできるが、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、市販されているツールはオブジェクト図とシーケンス図をクラス図、シーケンス図と同期を取る(整合させる)ことや、クラス図とシーケンス図をソースコードと同期を取る(整合させる)ことはできるが、ユースケース、シナリオをオブジェクト図、シーケンス図と同期を取ることができない問題点がある。
【0008】
本発明の目的は、オブジェクト指向開発で用いるユースケースとシナリオ、オブジェクト図およびシーケンス図、ソースコードの関係が整合関係に保たれるように、オブジェクト指向開発作業を支援することができるオブジェクト指向開発支援方法およびシステムを提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明は、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援方法であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3のステップとを備えることを特徴とする。
【0010】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援方法であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1のステップと、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2のステップと、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3のステップと、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4のステップとを備えることを特徴とする。
【0011】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1のステップと、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2のステップと、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3のステップとを備えることを特徴とする。
【0012】
また、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援装置であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1の手段と、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2の手段と、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3の手段とを備えることを特徴とする。
【0013】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援装置であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1の手段と、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2の手段と、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3の手段と、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4の手段とを備えることを特徴とする。
【0014】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援装置であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1の手段と、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2の手段と、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3の手段とを備えることを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図1は、本発明の実施の一形態のオブジェクト指向開発支援装置のブロック図である。
図1に示すオブジェクト指向開発支援装置1は、ユースケースおよびシナリオ2の入力を受付け、シナリオに対応したオブジェクト図3、シナリオに対応したシーケンス図4を出力すると共に、オブジェクト図3およびシーケンス図4の入力を受付け、オブジェクト図3およびシーケンス図4に対応したユースケースおよびシナリオ2を出力するように構成されている。
オブジェクト指向開発支援装置1は、ユースケースおよびシナリオ2からオブジェクト図を抽出するオブジェクト抽出手段11、オブジェクト図からユースケースおよびシナリオの入出力項目を抽出する入出力項目抽出手段12、ユースケースおよびシナリオ2からシーケンス図を抽出するシーケンス抽出手段13、シーケンス図からユースケースおよびシナリオのステップを抽出するシナリオステップ抽出手段14を備えている。
【0016】
図2は、本発明を適用したオブジェクト指向開発手順の構成図である。
図2では、
(1)ユースケースおよびシナリオ2とオブジェクト図3およびシーケンス図4との関係をオブジェクト指向開発支援装置1を利用して整合関係にする
(2)オブジェクト図3およびシーケンス図4とクラス図5およびシーケンス図6との関係を市販ツール7を用いて整合関係にする、
(3)クラス図5およびシーケンス図6とソースコード8とを市販ツール9を用いて整合関係にする、
という開発支援手順が示されている。
【0017】
図3は、シナリオの具体例を示す図であり、1つのシナリオには複数のユースケースが存在するが、例として1つのシナリオを取り上げる。
図3の「掲示板に投稿する」シナリオは、シナリオ名3000と、シナリオステップ表3100、シナリオの入出力項目の詳細を表す投稿内容3300、記事3400、記事概略3500から構成されている。
シナリオステップ表3100は、シナリオのステップ毎にStep番号3110、掲示板を投稿する人を表す利用者アクタ3120、システムの処理3130を1行に記述する表であり、各ステップ毎に利用者アクタ3120、システムの処理3130のいずれかのみ記述する。
シナリオはステップ番号の順序に従って時系列で処理の流れを表す。《》で囲まれている項目は入出力項目を表す。《》の直後のアルファベット記号は入出力項目の詳細を参照することを表す。『』で囲まれている文はユースケースを表し、そのステップでは指定されたユースケースを呼び出すことを表す。
【0018】
図4はオブジェクト抽出手段11の処理を示すフローチャート、図5はオブジェクト図3の具体例である。図5のオブジェクト図3は、図3の「掲示板に投稿する」シナリオに対応しており、シナリオ名3000、掲示板オブジェクト5200、投稿内容オブジェクト5300、記事オブジェクト5400、記事概略オブジェクト5500から構成されている。
掲示板オブジェクト5200は、掲示板ID、掲示板名称という2つの属性を持つ。投稿内容オブジェクト5300は、投稿者名、題名、本文という3つの属性を持つ。
記事オブジェクト5400は、記事ID、投稿者名、題名、本文、投稿日時という5つの属性を持つ。
記事概略オブジェクト5500は、投稿者名、題名、投稿日時という3つの属性を持つ。
【0019】
図3の「掲示板に投稿する」ユースケースから図4のフローチャートに基づいて、図5のオブジェクト図を生成する手順を詳しく説明する。
まず、シナリオの次のステップは存在するかどうかを判定する(ステップ4100)。最初の場合には、シナリオステップ(1)の「『掲示板一覧を表示する』」3210が存在するので、シナリオステップ(1)「『掲示板一覧を表示する』」3210を読み取る(ステップ4200)。そして、入出力項目マーク《》が存在するかどうかを判定する(ステップ4300)。図3の例では、シナリオステップ(1)には入出力項目マーク《》は存在しないので、ステップ4100に戻り、再度、シナリオの次のステップは存在するかどうかを判定する。
【0020】
シナリオの次のステップは存在する。すなわち、「投稿先の《掲示板.掲示板ID》を指定する。」というシナリオステップ(2)が存在するので、その内容である「投稿先の《掲示板.掲示板ID》を指定する。」3220を読み取る(ステップ4200)。
そして、入出力項目マーク《》が存在するかどうかを判定する(ステップ4300)。入出力項目マーク《》は存在するので、ステップ4400に移り、入出力項目《掲示板.掲示板ID》を抽出する。
そして、複数項目を1組として扱っていないかどうかを判定する(ステップ4500)。図3の例のシナリオステップ(2)では、複数項目を1組として扱っていないので、ステップ4700に移り、入出力項目《掲示板.掲示板ID》をオブジェクト「掲示板」の属性「掲示板ID」にし、オブジェクト図へ出力する(ステップ4700)。
【0021】
これにより、図5の掲示板オブジェクト5200とその属性である掲示板IDがオブジェクト図に表示される。
複数項目を1組として扱っていた場合には、ステップ4600に進み、複数項目を属性に持つオブジェクトをオブジェクト図に出力する。
この後、ステップ4100に戻る(ステップ4800)。
以降、シナリオステップ(3)の「《掲示板.掲示板名称》を取得する」3230についても同様の処理を行う。これにより、図5の「掲示板」オブジェクトの掲示板名称が出力される。
【0022】
そして、次のシナリオステップ(4)の「《投稿内容》(a)を入力する。」3240を読み取る(ステップ4200)。
すると、入出力項目マーク《》が存在するので、ステップ4300からステップ4400に移り、入出力項目《投稿内容》(a)を抽出する。ここでは、投稿者名、題名、本文といった複数項目を1組として扱っているので、ステップ4500からステップ4600に移り、「投稿者名、題名、本文」という複数項目を属性に持つオブジェクト「投稿内容」5300をオブジェクト図に出力する(ステップ4600)。
これにより、投稿内容オブジェクト5300とその属性である投稿者名、題名、本文がオブジェクト図に表示される。この後、ステップ4100に戻る(ステップ4800)。
【0023】
以降、シナリオステップ(5)3250、シナリオステップ(6)3260、シナリオステップ(7)3270、シナリオステップ(8)についても同様な処理を繰り返す。
シナリオステップ(5)では、入出力項目マーク《》が存在するが、投稿内容オブジェクトは既にシナリオステップ(2)で作成されている。
シナリオステップ(6)では、入出力項目マーク《》が存在するが、掲示板オブジェクトは既にシナリオステップ(2)で作成されている。
【0024】
シナリオステップ(7)では、入出力項目マーク《》が存在するので、入出力項目《記事》(b)を抽出し、記事ID,投稿者名、題名、本文、投稿日時を属性に持つオブジェクト5400を出力する。
シナリオステップ(8)では、入出力項目マーク《》が存在するので、入出力項目《記事概略》(c)を抽出し、投稿者名、題名、投稿日時を属性に持つオブジェクト5500を出力する。
以上の処理により、図3のシナリオ3から図5に示すようなオブジェクト図が生成される。
【0025】
図6は、シナリオからシーケンス図を生成するシーケンス抽出手段13の処理を示すフローチャート、図7は生成されたシーケンス図の例を示す図である。
図7のシーケンス図4は、図3の「掲示板に投稿する」シナリオに対応しており、シナリオ名3000と、利用者アクタ3120、ディスパッチャオブジェクト7310、掲示板オブジェクト5200、投稿内容オブジェクト5300、記事オブジェクト5400、記事概略オブジェクト5500間のメッセージ7410から7480までで構成されている。
【0026】
以下、図3の「掲示板に投稿する」ユースケースから図7のシーケンス図を生成する手順について図6のフローチャートに基づいて詳細に説明する。
まず、図3のシナリオからアクタ名「利用者」3120を読み取り、図7のシーケンス図の「利用者」アクタ3120を表示する(ステップ6100)。次に、シーケンス図にディスパッチャオブジェクト7310を表示する。
次に、シナリオの次のステップは存在するかどうかを判定する(ステップ6300)。図3のシナリオでは、最初のシナリオステップ(1)が存在するので、「『掲示板一覧を表示する』」3210を読み取る(ステップ6400)。
シナリオステップ(1)3210は、アクタが行うステップである(ステップ6500)ので、ステップ6610に移り、シナリオステップの内容をアクタ「利用者」3120からディスパッチャオブジェクト7310へのメッセージ7410としてシーケンス図に出力する(ステップ6610)。そして、シナリオステップ(1)3210の「ステップ番号1」をメッセージ7410の先頭に付ける(ステップ6620)。この後、ステップ6300へ戻る(ステップ6800)。
次に、シナリオステップ(2)3220について同様の処理を行う。
【0027】
次のシナリオステップ(3)については、「《掲示板.掲示板名称》を取得する。」3230を読み取る(ステップ6400)。このシナリオステップ(3)3230はアクタが行うステップではない(ステップ6500)ので、ステップ6710に移り、入出力項目《掲示板.掲示板名称》に対応する掲示板オブジェクト5200をシーケンス図に出力する(ステップ6710)。
次に、シナリオステップ(3)3230の内容をディスパッチャオブジェクト7310から入出力項目に対応する掲示板オブジェクト5200へのメッセージ7430としてシーケンス図に出力する(ステップ6720)。
シナリオステップ(3)3230は項目を含まない(ステップ6730)ので、ステップ6620に移り、シナリオステップ(3)3230の「ステップ番号3」をメッセージ7430の先頭に付ける(ステップ6620)。この後、ステップ6300へ戻る(ステップ6800)。
シナリオステップ(4)3240についても同様の処理を行う。
【0028】
シナリオステップ(5)については、「《投稿内容をチェックする》」3250を読み取る(ステップ6400)。シナリオステップ(5)3250は、アクタが行うステップではない(ステップ6500)ので、ステップ6710に移る。
そして、入出力項目《投稿内容》(a)に対応する投稿内容オブジェクト5300をシーケンス図に出力する(ステップ6710)。また、シナリオステップ(5)3250の内容をディスパッチャオブジェクト7310から入出力項目に対応する投稿内容オブジェクト5300へのメッセージ7450としてシーケンス図に出力する(ステップ6720)。さらに、シナリオステップ(5)3250は複数の項目を含む(ステップ6730)ので、ステップ6740に移る。そして、シナリオステップ(5)3250の各項毎に入出力項目に対応する投稿内容オブジェクト5300への再帰メッセージ7451、7452、7453としてシーケンス図に出力する(ステップ6740)。また、シナリオステップ(5)3250の「ステップ番号5」と各項の番号1、2、3をメッセージ7451、7452、7453の先頭に付け、ステップ6300へ戻る(ステップ6800)。
【0029】
シナリオステップ(6)3260、シナリオステップ(7)3270、シナリオステップ(8)3280についても同様に行う。
これにより、図7にイ示すようなシーケンス図が生成される。
【0030】
図8は、オブジェクト図とユースケースおよびシナリオとを同期させる(整合させる)入出力項目抽出手段12の処理を示すフローチャートである。
図5のオブジェクト図3と図3のシナリオとの同期をとる場合の例を挙げて説明する。
図5の「掲示板に投稿する」場合のオブジェクト図に対応する図3の「掲示板に投稿する」シナリオに着目する(ステップ8100)。
オブジェクト図3で着目していないオブジェクトはあるかどうかを判定する(ステップ8200)、図5のオブジェクト図では、着目していないオブジェクトは存在するので、ステップ8300に進む。そこで、着目していない1つの掲示板オブジェクト5200に着目する(ステップ8300)。
【0031】
掲示板オブジェクト5200の属性、掲示板IDと同じ入出力項目はシナリオステップ(2)3220にある(ステップ8400)ので、掲示板オブジェクト5200の属性、掲示板IDに対応する入出力項目《掲示板.掲示板ID》に着目する(ステップ8500)。入出力項目《掲示板.掲示板ID》に対応するのはオブジェクトではなく、属性であるので(ステップ8600)、ステップ8800に移り、入出力項目が《掲示板.掲示板ID》となるようにシナリオまたはオブジェクト図を修正し、ステップ8200に戻る(ステップ8900)。
同様にして、掲示板オブジェクト5200の属性である掲示板名称についても行う。
【0032】
以降、着目していない1つの投稿内容オブジェクト5300に着目する(ステップ8300)。投稿内容オブジェクト5300の名前と同じ入出力項目はシナリオステップ(4)3240とシナリオステップ(5)3250にある(ステップ8400)ので、投稿内容オブジェクト5300に対応する入出力項目「《投稿内容》(a)」に着目する(ステップ8500)。入出力項目《投稿内容》(a)はオブジェクトに対応している(ステップ8600)ので、ステップ8710に移り、オブジェクト名「投稿内容」が入出力項目名《投稿内容》と同じになるようシナリオまたはオブジェクト図を修正する(ステップ8710)。そして、投稿内容オブジェクト5300の属性、投稿者名、題名、本文が入出力項目《投稿内容》(a)の詳細3300の項目、投稿者名、題名、本文と同じになるようシナリオまたはオブジェクト図を修正する(ステップ8720)。この後、ステップ8200に戻る(ステップ8900)。
同様にして、記事オブジェクト5400、記事概略オブジェクト5500についても行う。
【0033】
これにより、オブジェクト図とシナリオとの整合関係に修正される。したがって、オブジェクトを生成した後、このオブジェクト図に変更を加えたとしても、上記のような処理を行うことにより、オブジェクト図に加えた変更内容に対応してシナリオが修正され、両者の整合関係を維持することが可能になる。
【0034】
図9は、シナリオステップ抽出手段14の処理を示すフローチャートである。図7のシーケンス図4と図3のシナリオとを整合させる場合の処理について図9のフローチャートに基づいて詳細に説明する。
まず、着目していないメッセージはあるかどうかを判定する(ステップ9100)。図7のシーケンス図4においては、未だ着目していないメッセージ「掲示板一覧を表示する」7410があるので、まず「掲示板一覧を表示する」7410に着目する(ステップ9200)。
次に、メッセージ番号は連番が付いているかどうかを判定する。メッセージ「掲示板一覧を表示する」7410の「メッセージ番号1」(シナリオのステップ番号に対応する)は連番が付いていない(ステップ9300)ので、「メッセージ番号1」に対するシナリオステップ(1)3210に着目する(ステップ9400)。そして、メッセージ7410の内容とシナリオステップ(1)3210の内容が同じになるようにメッセージ7410またはシナリオを修正する(ステップ9500)。この後、ステップ9100に戻る(ステップ9800)。
【0035】
メッセージ7420、7430、7440、7450、7460、7470、7480についても同様に行う。
着目していないメッセージ「投稿者名は入力されているか」7451に着目すると(ステップ9200)、「メッセージ番号5.1」「5.1」、「5.2」といった連番が付いている(ステップ9300)ので、メッセージ番号5.1に対するシナリオステップ(5)の「項番1」3251に着目する(ステップ9400)。そして、メッセージ7451の内容とシナリオステップ(5)の「項番1」3251の内容が同じになるようにシーケンス図またはシナリオを修正する(ステップ9700)。この後、ステップ9100に戻る(ステップ9800)。
メッセージ7452、7453、7471、7472、7473についても同様に行う。
【0036】
以上のような機能を有するオブジェクト開発支援装置1と市販のツール7,9を組み合せて使用することにより、オブジェクト図3およびシーケンス図4とソースコード8とを対応付け、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめることができ、従来のVerificationの作業を自動化することができる。
すなわち、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させる場合に、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを図1のオブジェクト支援開発支援装置1を用いて対応付け、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを図2の市販ツール7を用いて対応付け、さらに対応付けられたクラス図およびシーケンス図がソースコードと対応するかを市販ツール9を用いて判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付けることにより、従来のVerificationの作業を自動化することができる。
【0037】
【発明の効果】
以上説明したように、本発明によれば、ユースケース、シナリオと対応するオブジェクト図、シーケンス図が自動的に生成され、ユースケース、シナリオに修正があった場合はオブジェクト図、シーケンス図に修正内容が反映される。
逆にオブジェクト図、シーケンス図で修正があった場合もユースケース、シナリオに修正内容が反映される。
これにより、オブジェクト指向開発において、ユースケース、シナリオとオブジェクト図、シーケンス図の同期が取れるので、効率的に開発することができる。
また、既存のツールと組み合わせることによって、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめるVerificationの作業を自動化することができる。
【図面の簡単な説明】
【図1】本発明を実現するオブジェクト指向開発支援装置の実施の形態を示すブロック図である。
【図2】図1のオブジェクト指向開発支援装置を用いたシナリオ、オブジェクト図、シーケンス図、ソースコードの整合処理の概要を示す図である。
【図3】シナリオの具体例を示す図である。
【図4】オブジェクト抽出手段の処理を示すフローチャートである。
【図5】オブジェクト図の具体例を示す図である。
【図6】シーケンス抽出手段の処理を示すフローチャートである。
【図7】シーケンス図の具体例を示す図である。
【図8】入出力項目抽出手段の処理を示すフローチャートである。
【図9】シナリオステップ抽出手段の処理を示すフローチャートである。
【符号の説明】
1…オブジェクト指向開発支援装置、2…シナリオ、ユースケース、3…オブジェクト図、4…シーケンス図、5…クラス図、11…オブジェクト抽出手段、12…入出力項目抽出手段、13…シーケンス抽出手段、14…シナリオステップ抽出手段。
【発明の属する技術分野】
本発明は、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法に関するものである。
【0002】
【従来の技術】
従来、オブジェクト指向開発における入出力項目を抽出する技術として、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出するものがある(例えば、特許文献1参照)。
また、既存の業務システムから新たな業務システムを効率的に開発するものがある(例えば、特許文献2参照)。
【0003】
【特許文献1】
特開平8−249165号公報
【0004】
【特許文献2】
特開2001−282517号公報
【0005】
特開平8−249165号公報に記載の従来技術は、詳しくは、既存のクラスライブラリからクラス定義情報、メソッド実装情報、画面部品、イベントハンドラ情報を抽出し、画面のイベントとクラスのメソッドの対応関係を導き出したユーザ・インタフェース設計支援情報を抽出して出力するものである。
また、特開2001−282517号公報に記載の従来技術は、詳しくは、パターン化された既存の業務システムを元に、作成しようとしているHTML画面からパラメータを解析し、データベース作成に必要な設定を判定し、設定を入力すると、業務システムで必要なデータベース、画面テンプレート、プログラムモジュールを生成するものである。
【0006】
一方、オブジェクト指向開発で用いるオブジェクト図とシーケンス図をクラス図と連動することでオブジェクト指向開発を支援するツールや、オブジェクト指向開発で用いるクラス図とシーケンス図をソースコードと連動することでオブジェクト指向開発を支援するツールは市販されている。
オブジェクト指向開発では、ユースケースとシナリオの分析は手作業で行い、出来上がったソースコードに対して、手作業でVerification、Validationを行うことでユースケースとシナリオに合ったプログラムが生成されているか確認する。
ここで、Verificationとは、作成したプログラムがユースケース、シナリオと過不足がないかをチェックすることを指し、Validationとは実際にプログラムを動かし、PCL等を用いて、厳密にテストすることを指す。
【0007】
【発明が解決しようとする課題】
しかしながら、特開平8−249165号公報に記載の技術は、既存のクラスライブラリからユーザ・インタフェース設計に用いる入出力情報を抽出することはできるものの、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、特開2001−282517号公報に記載の技術は、作成しようとしているHTML画面から入出力パラメータを抽出することはできるが、ユースケース、シナリオからアクタが入出力する項目を抽出し、オブジェクト図とシーケンス図を生成することができない問題点がある。
また、市販されているツールはオブジェクト図とシーケンス図をクラス図、シーケンス図と同期を取る(整合させる)ことや、クラス図とシーケンス図をソースコードと同期を取る(整合させる)ことはできるが、ユースケース、シナリオをオブジェクト図、シーケンス図と同期を取ることができない問題点がある。
【0008】
本発明の目的は、オブジェクト指向開発で用いるユースケースとシナリオ、オブジェクト図およびシーケンス図、ソースコードの関係が整合関係に保たれるように、オブジェクト指向開発作業を支援することができるオブジェクト指向開発支援方法およびシステムを提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明は、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援方法であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1のステップと、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2のステップと、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3のステップとを備えることを特徴とする。
【0010】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援方法であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1のステップと、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2のステップと、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3のステップと、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4のステップとを備えることを特徴とする。
【0011】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1のステップと、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2のステップと、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3のステップとを備えることを特徴とする。
【0012】
また、オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援装置であって、ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1の手段と、アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2の手段と、抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3の手段とを備えることを特徴とする。
【0013】
また、オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援装置であって、オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1の手段と、抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2の手段と、シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3の手段と、抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4の手段とを備えることを特徴とする。
【0014】
また、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援装置であって、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1の手段と、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2の手段と、対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3の手段とを備えることを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図1は、本発明の実施の一形態のオブジェクト指向開発支援装置のブロック図である。
図1に示すオブジェクト指向開発支援装置1は、ユースケースおよびシナリオ2の入力を受付け、シナリオに対応したオブジェクト図3、シナリオに対応したシーケンス図4を出力すると共に、オブジェクト図3およびシーケンス図4の入力を受付け、オブジェクト図3およびシーケンス図4に対応したユースケースおよびシナリオ2を出力するように構成されている。
オブジェクト指向開発支援装置1は、ユースケースおよびシナリオ2からオブジェクト図を抽出するオブジェクト抽出手段11、オブジェクト図からユースケースおよびシナリオの入出力項目を抽出する入出力項目抽出手段12、ユースケースおよびシナリオ2からシーケンス図を抽出するシーケンス抽出手段13、シーケンス図からユースケースおよびシナリオのステップを抽出するシナリオステップ抽出手段14を備えている。
【0016】
図2は、本発明を適用したオブジェクト指向開発手順の構成図である。
図2では、
(1)ユースケースおよびシナリオ2とオブジェクト図3およびシーケンス図4との関係をオブジェクト指向開発支援装置1を利用して整合関係にする
(2)オブジェクト図3およびシーケンス図4とクラス図5およびシーケンス図6との関係を市販ツール7を用いて整合関係にする、
(3)クラス図5およびシーケンス図6とソースコード8とを市販ツール9を用いて整合関係にする、
という開発支援手順が示されている。
【0017】
図3は、シナリオの具体例を示す図であり、1つのシナリオには複数のユースケースが存在するが、例として1つのシナリオを取り上げる。
図3の「掲示板に投稿する」シナリオは、シナリオ名3000と、シナリオステップ表3100、シナリオの入出力項目の詳細を表す投稿内容3300、記事3400、記事概略3500から構成されている。
シナリオステップ表3100は、シナリオのステップ毎にStep番号3110、掲示板を投稿する人を表す利用者アクタ3120、システムの処理3130を1行に記述する表であり、各ステップ毎に利用者アクタ3120、システムの処理3130のいずれかのみ記述する。
シナリオはステップ番号の順序に従って時系列で処理の流れを表す。《》で囲まれている項目は入出力項目を表す。《》の直後のアルファベット記号は入出力項目の詳細を参照することを表す。『』で囲まれている文はユースケースを表し、そのステップでは指定されたユースケースを呼び出すことを表す。
【0018】
図4はオブジェクト抽出手段11の処理を示すフローチャート、図5はオブジェクト図3の具体例である。図5のオブジェクト図3は、図3の「掲示板に投稿する」シナリオに対応しており、シナリオ名3000、掲示板オブジェクト5200、投稿内容オブジェクト5300、記事オブジェクト5400、記事概略オブジェクト5500から構成されている。
掲示板オブジェクト5200は、掲示板ID、掲示板名称という2つの属性を持つ。投稿内容オブジェクト5300は、投稿者名、題名、本文という3つの属性を持つ。
記事オブジェクト5400は、記事ID、投稿者名、題名、本文、投稿日時という5つの属性を持つ。
記事概略オブジェクト5500は、投稿者名、題名、投稿日時という3つの属性を持つ。
【0019】
図3の「掲示板に投稿する」ユースケースから図4のフローチャートに基づいて、図5のオブジェクト図を生成する手順を詳しく説明する。
まず、シナリオの次のステップは存在するかどうかを判定する(ステップ4100)。最初の場合には、シナリオステップ(1)の「『掲示板一覧を表示する』」3210が存在するので、シナリオステップ(1)「『掲示板一覧を表示する』」3210を読み取る(ステップ4200)。そして、入出力項目マーク《》が存在するかどうかを判定する(ステップ4300)。図3の例では、シナリオステップ(1)には入出力項目マーク《》は存在しないので、ステップ4100に戻り、再度、シナリオの次のステップは存在するかどうかを判定する。
【0020】
シナリオの次のステップは存在する。すなわち、「投稿先の《掲示板.掲示板ID》を指定する。」というシナリオステップ(2)が存在するので、その内容である「投稿先の《掲示板.掲示板ID》を指定する。」3220を読み取る(ステップ4200)。
そして、入出力項目マーク《》が存在するかどうかを判定する(ステップ4300)。入出力項目マーク《》は存在するので、ステップ4400に移り、入出力項目《掲示板.掲示板ID》を抽出する。
そして、複数項目を1組として扱っていないかどうかを判定する(ステップ4500)。図3の例のシナリオステップ(2)では、複数項目を1組として扱っていないので、ステップ4700に移り、入出力項目《掲示板.掲示板ID》をオブジェクト「掲示板」の属性「掲示板ID」にし、オブジェクト図へ出力する(ステップ4700)。
【0021】
これにより、図5の掲示板オブジェクト5200とその属性である掲示板IDがオブジェクト図に表示される。
複数項目を1組として扱っていた場合には、ステップ4600に進み、複数項目を属性に持つオブジェクトをオブジェクト図に出力する。
この後、ステップ4100に戻る(ステップ4800)。
以降、シナリオステップ(3)の「《掲示板.掲示板名称》を取得する」3230についても同様の処理を行う。これにより、図5の「掲示板」オブジェクトの掲示板名称が出力される。
【0022】
そして、次のシナリオステップ(4)の「《投稿内容》(a)を入力する。」3240を読み取る(ステップ4200)。
すると、入出力項目マーク《》が存在するので、ステップ4300からステップ4400に移り、入出力項目《投稿内容》(a)を抽出する。ここでは、投稿者名、題名、本文といった複数項目を1組として扱っているので、ステップ4500からステップ4600に移り、「投稿者名、題名、本文」という複数項目を属性に持つオブジェクト「投稿内容」5300をオブジェクト図に出力する(ステップ4600)。
これにより、投稿内容オブジェクト5300とその属性である投稿者名、題名、本文がオブジェクト図に表示される。この後、ステップ4100に戻る(ステップ4800)。
【0023】
以降、シナリオステップ(5)3250、シナリオステップ(6)3260、シナリオステップ(7)3270、シナリオステップ(8)についても同様な処理を繰り返す。
シナリオステップ(5)では、入出力項目マーク《》が存在するが、投稿内容オブジェクトは既にシナリオステップ(2)で作成されている。
シナリオステップ(6)では、入出力項目マーク《》が存在するが、掲示板オブジェクトは既にシナリオステップ(2)で作成されている。
【0024】
シナリオステップ(7)では、入出力項目マーク《》が存在するので、入出力項目《記事》(b)を抽出し、記事ID,投稿者名、題名、本文、投稿日時を属性に持つオブジェクト5400を出力する。
シナリオステップ(8)では、入出力項目マーク《》が存在するので、入出力項目《記事概略》(c)を抽出し、投稿者名、題名、投稿日時を属性に持つオブジェクト5500を出力する。
以上の処理により、図3のシナリオ3から図5に示すようなオブジェクト図が生成される。
【0025】
図6は、シナリオからシーケンス図を生成するシーケンス抽出手段13の処理を示すフローチャート、図7は生成されたシーケンス図の例を示す図である。
図7のシーケンス図4は、図3の「掲示板に投稿する」シナリオに対応しており、シナリオ名3000と、利用者アクタ3120、ディスパッチャオブジェクト7310、掲示板オブジェクト5200、投稿内容オブジェクト5300、記事オブジェクト5400、記事概略オブジェクト5500間のメッセージ7410から7480までで構成されている。
【0026】
以下、図3の「掲示板に投稿する」ユースケースから図7のシーケンス図を生成する手順について図6のフローチャートに基づいて詳細に説明する。
まず、図3のシナリオからアクタ名「利用者」3120を読み取り、図7のシーケンス図の「利用者」アクタ3120を表示する(ステップ6100)。次に、シーケンス図にディスパッチャオブジェクト7310を表示する。
次に、シナリオの次のステップは存在するかどうかを判定する(ステップ6300)。図3のシナリオでは、最初のシナリオステップ(1)が存在するので、「『掲示板一覧を表示する』」3210を読み取る(ステップ6400)。
シナリオステップ(1)3210は、アクタが行うステップである(ステップ6500)ので、ステップ6610に移り、シナリオステップの内容をアクタ「利用者」3120からディスパッチャオブジェクト7310へのメッセージ7410としてシーケンス図に出力する(ステップ6610)。そして、シナリオステップ(1)3210の「ステップ番号1」をメッセージ7410の先頭に付ける(ステップ6620)。この後、ステップ6300へ戻る(ステップ6800)。
次に、シナリオステップ(2)3220について同様の処理を行う。
【0027】
次のシナリオステップ(3)については、「《掲示板.掲示板名称》を取得する。」3230を読み取る(ステップ6400)。このシナリオステップ(3)3230はアクタが行うステップではない(ステップ6500)ので、ステップ6710に移り、入出力項目《掲示板.掲示板名称》に対応する掲示板オブジェクト5200をシーケンス図に出力する(ステップ6710)。
次に、シナリオステップ(3)3230の内容をディスパッチャオブジェクト7310から入出力項目に対応する掲示板オブジェクト5200へのメッセージ7430としてシーケンス図に出力する(ステップ6720)。
シナリオステップ(3)3230は項目を含まない(ステップ6730)ので、ステップ6620に移り、シナリオステップ(3)3230の「ステップ番号3」をメッセージ7430の先頭に付ける(ステップ6620)。この後、ステップ6300へ戻る(ステップ6800)。
シナリオステップ(4)3240についても同様の処理を行う。
【0028】
シナリオステップ(5)については、「《投稿内容をチェックする》」3250を読み取る(ステップ6400)。シナリオステップ(5)3250は、アクタが行うステップではない(ステップ6500)ので、ステップ6710に移る。
そして、入出力項目《投稿内容》(a)に対応する投稿内容オブジェクト5300をシーケンス図に出力する(ステップ6710)。また、シナリオステップ(5)3250の内容をディスパッチャオブジェクト7310から入出力項目に対応する投稿内容オブジェクト5300へのメッセージ7450としてシーケンス図に出力する(ステップ6720)。さらに、シナリオステップ(5)3250は複数の項目を含む(ステップ6730)ので、ステップ6740に移る。そして、シナリオステップ(5)3250の各項毎に入出力項目に対応する投稿内容オブジェクト5300への再帰メッセージ7451、7452、7453としてシーケンス図に出力する(ステップ6740)。また、シナリオステップ(5)3250の「ステップ番号5」と各項の番号1、2、3をメッセージ7451、7452、7453の先頭に付け、ステップ6300へ戻る(ステップ6800)。
【0029】
シナリオステップ(6)3260、シナリオステップ(7)3270、シナリオステップ(8)3280についても同様に行う。
これにより、図7にイ示すようなシーケンス図が生成される。
【0030】
図8は、オブジェクト図とユースケースおよびシナリオとを同期させる(整合させる)入出力項目抽出手段12の処理を示すフローチャートである。
図5のオブジェクト図3と図3のシナリオとの同期をとる場合の例を挙げて説明する。
図5の「掲示板に投稿する」場合のオブジェクト図に対応する図3の「掲示板に投稿する」シナリオに着目する(ステップ8100)。
オブジェクト図3で着目していないオブジェクトはあるかどうかを判定する(ステップ8200)、図5のオブジェクト図では、着目していないオブジェクトは存在するので、ステップ8300に進む。そこで、着目していない1つの掲示板オブジェクト5200に着目する(ステップ8300)。
【0031】
掲示板オブジェクト5200の属性、掲示板IDと同じ入出力項目はシナリオステップ(2)3220にある(ステップ8400)ので、掲示板オブジェクト5200の属性、掲示板IDに対応する入出力項目《掲示板.掲示板ID》に着目する(ステップ8500)。入出力項目《掲示板.掲示板ID》に対応するのはオブジェクトではなく、属性であるので(ステップ8600)、ステップ8800に移り、入出力項目が《掲示板.掲示板ID》となるようにシナリオまたはオブジェクト図を修正し、ステップ8200に戻る(ステップ8900)。
同様にして、掲示板オブジェクト5200の属性である掲示板名称についても行う。
【0032】
以降、着目していない1つの投稿内容オブジェクト5300に着目する(ステップ8300)。投稿内容オブジェクト5300の名前と同じ入出力項目はシナリオステップ(4)3240とシナリオステップ(5)3250にある(ステップ8400)ので、投稿内容オブジェクト5300に対応する入出力項目「《投稿内容》(a)」に着目する(ステップ8500)。入出力項目《投稿内容》(a)はオブジェクトに対応している(ステップ8600)ので、ステップ8710に移り、オブジェクト名「投稿内容」が入出力項目名《投稿内容》と同じになるようシナリオまたはオブジェクト図を修正する(ステップ8710)。そして、投稿内容オブジェクト5300の属性、投稿者名、題名、本文が入出力項目《投稿内容》(a)の詳細3300の項目、投稿者名、題名、本文と同じになるようシナリオまたはオブジェクト図を修正する(ステップ8720)。この後、ステップ8200に戻る(ステップ8900)。
同様にして、記事オブジェクト5400、記事概略オブジェクト5500についても行う。
【0033】
これにより、オブジェクト図とシナリオとの整合関係に修正される。したがって、オブジェクトを生成した後、このオブジェクト図に変更を加えたとしても、上記のような処理を行うことにより、オブジェクト図に加えた変更内容に対応してシナリオが修正され、両者の整合関係を維持することが可能になる。
【0034】
図9は、シナリオステップ抽出手段14の処理を示すフローチャートである。図7のシーケンス図4と図3のシナリオとを整合させる場合の処理について図9のフローチャートに基づいて詳細に説明する。
まず、着目していないメッセージはあるかどうかを判定する(ステップ9100)。図7のシーケンス図4においては、未だ着目していないメッセージ「掲示板一覧を表示する」7410があるので、まず「掲示板一覧を表示する」7410に着目する(ステップ9200)。
次に、メッセージ番号は連番が付いているかどうかを判定する。メッセージ「掲示板一覧を表示する」7410の「メッセージ番号1」(シナリオのステップ番号に対応する)は連番が付いていない(ステップ9300)ので、「メッセージ番号1」に対するシナリオステップ(1)3210に着目する(ステップ9400)。そして、メッセージ7410の内容とシナリオステップ(1)3210の内容が同じになるようにメッセージ7410またはシナリオを修正する(ステップ9500)。この後、ステップ9100に戻る(ステップ9800)。
【0035】
メッセージ7420、7430、7440、7450、7460、7470、7480についても同様に行う。
着目していないメッセージ「投稿者名は入力されているか」7451に着目すると(ステップ9200)、「メッセージ番号5.1」「5.1」、「5.2」といった連番が付いている(ステップ9300)ので、メッセージ番号5.1に対するシナリオステップ(5)の「項番1」3251に着目する(ステップ9400)。そして、メッセージ7451の内容とシナリオステップ(5)の「項番1」3251の内容が同じになるようにシーケンス図またはシナリオを修正する(ステップ9700)。この後、ステップ9100に戻る(ステップ9800)。
メッセージ7452、7453、7471、7472、7473についても同様に行う。
【0036】
以上のような機能を有するオブジェクト開発支援装置1と市販のツール7,9を組み合せて使用することにより、オブジェクト図3およびシーケンス図4とソースコード8とを対応付け、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめることができ、従来のVerificationの作業を自動化することができる。
すなわち、オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させる場合に、ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを図1のオブジェクト支援開発支援装置1を用いて対応付け、対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを図2の市販ツール7を用いて対応付け、さらに対応付けられたクラス図およびシーケンス図がソースコードと対応するかを市販ツール9を用いて判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付けることにより、従来のVerificationの作業を自動化することができる。
【0037】
【発明の効果】
以上説明したように、本発明によれば、ユースケース、シナリオと対応するオブジェクト図、シーケンス図が自動的に生成され、ユースケース、シナリオに修正があった場合はオブジェクト図、シーケンス図に修正内容が反映される。
逆にオブジェクト図、シーケンス図で修正があった場合もユースケース、シナリオに修正内容が反映される。
これにより、オブジェクト指向開発において、ユースケース、シナリオとオブジェクト図、シーケンス図の同期が取れるので、効率的に開発することができる。
また、既存のツールと組み合わせることによって、ユースケース、シナリオで定義された内容がソースコードで記述された内容と過不足がないかを確かめるVerificationの作業を自動化することができる。
【図面の簡単な説明】
【図1】本発明を実現するオブジェクト指向開発支援装置の実施の形態を示すブロック図である。
【図2】図1のオブジェクト指向開発支援装置を用いたシナリオ、オブジェクト図、シーケンス図、ソースコードの整合処理の概要を示す図である。
【図3】シナリオの具体例を示す図である。
【図4】オブジェクト抽出手段の処理を示すフローチャートである。
【図5】オブジェクト図の具体例を示す図である。
【図6】シーケンス抽出手段の処理を示すフローチャートである。
【図7】シーケンス図の具体例を示す図である。
【図8】入出力項目抽出手段の処理を示すフローチャートである。
【図9】シナリオステップ抽出手段の処理を示すフローチャートである。
【符号の説明】
1…オブジェクト指向開発支援装置、2…シナリオ、ユースケース、3…オブジェクト図、4…シーケンス図、5…クラス図、11…オブジェクト抽出手段、12…入出力項目抽出手段、13…シーケンス抽出手段、14…シナリオステップ抽出手段。
Claims (6)
- オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援方法であって、
ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1のステップと、
アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2のステップと、
抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3のステップと
を備えることを特徴とするオブジェクト指向開発支援方法。 - オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援方法であって、
オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1のステップと、
抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2のステップと、
シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3のステップと、
抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4のステップと、
を備えることを特徴とするオブジェクト指向開発支援方法。 - オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援方法であって、
ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1のステップと、
対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2のステップと、
対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3のステップと
を備えることを特徴とするオブジェクト指向開発支援方法。 - オブジェクト指向開発におけるユースケースとシナリオを分析し、該ユースケースおよびシナリオに整合したオブジェクト図およびシーケンス図を生成するオブジェクト指向開発支援装置であって、
ユースケースとシナリオの入力を受付け、ユースケースとシナリオからアクタが入出力する項目を抽出する第1の手段と、
アクタが入出力する項目から抽出した項目に対応する属性を持つオブジェクト生成し、オブジェクト図を出力する第2の手段と、
抽出したオブジェクトと前記シナリオに記載された入出力項目の記載内容とからシーケンス図を生成する第3の手段と
を備えることを特徴とするオブジェクト指向開発支援装置。 - オブジェクト指向開発におけるオブジェクト図およびシーケンス図と該オブジェクト図およびシーケンス図の生成元のユースケースとシナリオとの関係を整合させるオブジェクト指向開発支援装置であって、
オブジェクト図の入力を受付け、オブジェクト図からオブジェクトおよび属性を抽出する第1の手段と、
抽出したオブジェクトおよび属性とシナリオの入出力項目とを対応付ける第2の手段と、
シーケンス図の入力を受付け、シーケンス図から入出力項目を抽出する第3の手段と、
抽出した入出力項目と前記シナリオ中における入出力項目とを対応付ける第4の手段と、
を備えることを特徴とするオブジェクト指向開発支援装置。 - オブジェクト指向開発におけるユースケースとシナリオ、該ユースケースおよびシナリオから生成されるオブジェクト図およびシーケンス図、該オブジェクト図およびシーケンス図から生成されるソースコードとの関係を整合させるオブジェクト指向開発支援装置であって、
ユースケースおよびシナリオとオブジェクト図およびシーケンス図とを対応付ける第1の手段と、
対応付けられたオブジェクト図中のクラス図と前記シーケンス図とを対応付ける第2の手段と、
対応付けられたクラス図およびシーケンス図がソースコードと対応するかを判定し、その判定結果に応じて、クラス図およびシーケンス図とソースコードとを対応付ける第3の手段と
を備えることを特徴とするオブジェクト指向開発支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002271743A JP2004110378A (ja) | 2002-09-18 | 2002-09-18 | オブジェクト指向開発支援方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002271743A JP2004110378A (ja) | 2002-09-18 | 2002-09-18 | オブジェクト指向開発支援方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110378A true JP2004110378A (ja) | 2004-04-08 |
Family
ID=32268967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002271743A Pending JP2004110378A (ja) | 2002-09-18 | 2002-09-18 | オブジェクト指向開発支援方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110378A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350625A (ja) * | 2005-06-15 | 2006-12-28 | Nippon Telegr & Teleph Corp <Ntt> | プログラム実行手順の整合性判定装置、その方法及びプログラム |
JP2007004735A (ja) * | 2005-06-27 | 2007-01-11 | Ntt Data Corp | システム方式要件を考慮したビジネスプロセス生成装置、ビジネスプロセス生成方法及びコンピュータプログラム |
JP2007316734A (ja) * | 2006-05-23 | 2007-12-06 | Mitsubishi Electric Corp | 情報処理装置 |
US7484203B2 (en) | 2005-03-21 | 2009-01-27 | International Business Machines Corporation | Automated interaction diagram generation using source code breakpoints |
WO2015159400A1 (ja) * | 2014-04-16 | 2015-10-22 | 株式会社アイ・エル・シー | シーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラム |
JP2019050046A (ja) * | 2018-11-29 | 2019-03-28 | 株式会社アイ・エル・シー | シーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラム |
-
2002
- 2002-09-18 JP JP2002271743A patent/JP2004110378A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484203B2 (en) | 2005-03-21 | 2009-01-27 | International Business Machines Corporation | Automated interaction diagram generation using source code breakpoints |
US7971189B2 (en) | 2005-03-21 | 2011-06-28 | International Business Machines Corporation | Automated interaction diagram generation using source code breakpoints |
JP2006350625A (ja) * | 2005-06-15 | 2006-12-28 | Nippon Telegr & Teleph Corp <Ntt> | プログラム実行手順の整合性判定装置、その方法及びプログラム |
JP4688580B2 (ja) * | 2005-06-15 | 2011-05-25 | 日本電信電話株式会社 | プログラム実行手順の整合性判定装置、その方法及びプログラム |
JP2007004735A (ja) * | 2005-06-27 | 2007-01-11 | Ntt Data Corp | システム方式要件を考慮したビジネスプロセス生成装置、ビジネスプロセス生成方法及びコンピュータプログラム |
JP2007316734A (ja) * | 2006-05-23 | 2007-12-06 | Mitsubishi Electric Corp | 情報処理装置 |
WO2015159400A1 (ja) * | 2014-04-16 | 2015-10-22 | 株式会社アイ・エル・シー | シーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラム |
JPWO2015159400A1 (ja) * | 2014-04-16 | 2017-04-13 | 株式会社アイ・エル・シー | シーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラム |
JP2019050046A (ja) * | 2018-11-29 | 2019-03-28 | 株式会社アイ・エル・シー | シーケンス図作成装置、シーケンス図作成方法およびシーケンス図作成プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738055A (zh) | 文本的实体识别方法、设备及存储介质 | |
JP4978432B2 (ja) | 業務仕様理解支援システム及び方法 | |
JP2004110378A (ja) | オブジェクト指向開発支援方法および装置 | |
CN114047854A (zh) | 用于文档处理的信息交互方法、装置、电子设备和存储介质 | |
CN110008445A (zh) | 事件抽取方法及装置、电子设备 | |
US8140305B2 (en) | Conversion of an application program | |
JP2005276040A (ja) | デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム | |
JP2012248101A (ja) | プログラムテスト支援装置、プログラムテスト支援方法、プログラムテスト支援プログラム | |
CN115756486A (zh) | 一种数据接口解析方法及装置 | |
JP2003150762A (ja) | プロジェクト情報連携方法およびシステム | |
CN110515653B (zh) | 文档生成方法、装置、电子设备及计算机可读存储介质 | |
JP2010102606A (ja) | 製品構成決定支援装置及び方法 | |
JP2005122504A (ja) | Webアプリケーション開発支援装置及び開発支援方法 | |
WO2022054286A1 (ja) | 言語リソースのデータ構造及びこれを用いた発話理解支援のための装置、方法及びプログラム | |
JP2009187352A (ja) | 文書データ検証方法及び文書データ検証支援システム | |
JP2012150740A (ja) | プログラム生成装置及び方法 | |
JP3107975B2 (ja) | システムテスト仕様生成装置 | |
JP2007164708A (ja) | 変換データ生成装置、データ変換システム、及びこれらの方法並びにそのプログラム | |
JP2009301118A (ja) | 素材情報検索表示装置及びプログラム | |
JP2009059332A (ja) | 文書情報表示システム | |
JP2007018205A (ja) | アプリケーションプログラム実行装置,アプリケーション開発支援装置,画面遷移履歴表示装置及びプログラム | |
JP2004021347A (ja) | 電子帳票検索システムおよび電子帳票検索方式 | |
JP2006309284A (ja) | 電子付箋検索システム | |
JP2004021857A (ja) | グループウェアにおけるユーザの対話支援装置 | |
CN116991494A (zh) | 一种插件协作方法、装置、电子设备及存储介质 |