(57)【要約】【課題】曖昧性を排除して、ソフトウェアシステムの振る舞いを正確に形式化することができるソフトウェアにおけるシーケンス図の解析用ツリー構造への変換方法及びそのコンピュータプログラムを提供する。【解決手段】ソフトウェア設計書に含まれるシーケンスを表すダイアグラムから各シーケンスに含まれる動詞であるアクティビティとその目的語を抽出し、シーケンスを表すダイアグラムのタイトルである機能を最上位のアクティビティとして定義し、シーケンスにより引き起こされるシーケンスについても同様の手順でアクティビティを定義し、アクティビティの上下関係をツリー構造で表現すると共に、各アクテイビテイの入力及び出力としてその目的語を定義し、最後のアクティビティの出力をシーケンスを表すダイアグラムのタイトルに含まれる目的語として定義し、シーケンスの構造を解析するためのツリー構造ヘ変換する。【選択図】図２
2006201924.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置によって、ソフトウェア設計書に含まれる２以上の実行者のそれぞれによって実行されるシーケンスを表すダイアグラムを、シーケンスの構造を解析するためのツリー構造ヘ変換する方法であって、
前記コンピュータ装置は、
前記シーケンスを表すダイアグラムから各シーケンスに含まれる動詞であるアクティビティとその目的語を抽出するステップと、
前記シーケンスを表すダイアグラムのタイトルである機能を表す動詞を最上位のアクティビティとして定義するステップと、
前記シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス及び該シーケンスを実行した実行者によって実行されるシーケンスに含まれるアクティビティを最上位のアクティビティの１階層下位のアクティピティとして定義し、最上位のアクティビティの下位のアクティビティをシーケンスの順序ごとに定義するステップと、
上記のステップにおけるシーケンスにより引き起こされるシーケンスを実行した他の実行者によって実行されるシーケンスについても上記と同様の手順でさらに下位のアクティビティをシーケンスの順序ごとに定義する処理を繰り返すステップと、
シーケンスと該シーケンスに対応する応答シーケンスの間に他のシーケンスが存在しない場合に、該シーケンスを引き起こす元となったシーケンスから、該応答シーケンスによって引き起こされるシーケンスまでの全てのシーケンスに含まれるアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義するステップと、
各シーケンスに定義されたアクティビティの入力として該アクティビティの目的語を定義すると共に、シーケンスに定義されるアクティビティの入力としての目的語を該シーケンスを引き起こすシーケンスに定義されたアクティビティの出力として定義し、前記ダイアグラムのタイトルに含まれる目的語を最後のシーケンスに定義された最後のアクティビティの出力として定義するステップと、
前記定義したアクティビティの上下関係と目的語をツリー構造で表現するステップとを実行する
ことを特徴とするソフトウェアにおけるシーケンス図の解析用ツリー構造への変換方法。
【請求項２】
コンピュータ装置によって、ソフトウェア設計書に含まれる２以上の実行者のそれぞれによって実行されるシーケンスを表すダイアグラムを、シーケンスの構造を解析するためのツリー構造ヘ変換するためのコンピュータプログラムであって、
前記シーケンスを表すダイアグラムから各シーケンスに含まれる動詞であるアクティビティとその目的語を抽出するステップと、
前記シーケンスを表すダイアグラムのタイトルである機能を表す動詞を最上位のアクティビティとして定義するステップと、
前記シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス及び該シーケンスを実行した実行者によって実行されるシーケンスに含まれるアクティビティを最上位のアクティビティの１階層下位のアクティピティとして定義し、最上位のアクティビティの下位のアクティビティをシーケンスの順序ごとに定義するステップと、
上記のステップにおけるシーケンスにより引き起こされるシーケンスを実行した他の実行者によって実行されるシーケンスについても上記と同様の手順でさらに下位のアクティビティをシーケンスの順序ごとに定義する処理を繰り返すステップと、
シーケンスと該シーケンスに対応する応答シーケンスの間に他のシーケンスが存在しない場合に、該シーケンスを引き起こす元となったシーケンスから、該応答シーケンスによって引き起こされるシーケンスまでの全てのシーケンスに含まれるアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義するステップと、
各シーケンスに定義されたアクティビティの入力として該アクティビティの目的語を定義すると共に、シーケンスに定義されるアクティビティの入力としての目的語を該シーケンスを引き起こすシーケンスに定義されたアクティビティの出力として定義し、前記ダイアグラムのタイトルに含まれる目的語を最後のシーケンスに定義された最後のアクティビティの出力として定義するステップと、
前記定義したアクティビティの上下関係と目的語をツリー構造で表現するステップとを含む
ことを特徴とするソフトウェアにおけるシーケンス図の解析用ツリー構造への変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ソフトウェア開発の分野において、開発期間の短縮やソフトウエアの品質向上を実現するために、開発工程において設計書に記述されるモデルを解析するためのソフトウェアにおけるシーケンス図の解析用ツリー構造への変換方法及びそのコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、ソフトウェアシステムを解析するために、テキストのみからなるソフトウェアシステムの振る舞いに関するドキュメントから、振る舞いを構成する処理の構造を明確化する手法が知られている。ここでのテキストは、図６に示すような主部(11)とタスクアクテイビティ(動詞)(12)からなる処理(10-1〜10-n（ｎは自然数）)が時系列的に並べられているものである。また、図７のように、ソフトウェアシステムの振る舞いを表現するタスクに対して、順序付の階層関係でタスクアクティビティａ〜ｇの構成を明らかにしたものを解析用ツリー構造とする手法の知られている。この解析用ツリーの構築手法は、ＡＦＭ(Activity-First Method)と呼ばれる手法で下記の非特許文献１に開示されている。
【０００３】
この方法は、テキストからなるドキュメントから、問題解決のための対処と処理を含む文であるタスクユニットを抽出すると共に、タスクユニット内に含まれている動詞であるタスクアクティビティａ〜ｇの目的語Ａ〜Ｅを定義し、タスクアクティビティａ〜ｇの流れから、タスクを解析用ツリーで構造化する方法である。
【非特許文献１】石川誠一、久保成毅、古崎晃司、束村徳信、溝ロ理一郎、"タスク・ドメインロールに基づくオントロジー構築ガイドシステムの設計と開発''，人工知能学会論文誌，Vol17，No.5，pp.585-597，2002．
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ソフトウェア開発における要求を、語彙の曖昧性を排除して、体系的に表現することは極めて困難である。この結果ソフトウェアの設計書には曖昧性が含まれ、設計者が要求を誤解することにより、設計のやり直しなどが発生している。
【０００５】
また、従来の概念体系構築技術では、設計書に現れる語彙の揺らぎをなくすことができるが、振る舞いを構成する処理の構成を一意的に表現できておらず、処理の構成を機械的に決定することができていなかった。
【０００６】
さらに、従来の技術では、ドキュメントから、問題解決の処理手順の構造を解析するためのツリー構造を構築する際に、構築作業を行う担当者の主観に依存し、機械的に構造を決定することができなかった。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的とするところは、曖昧性を排除して、ソフトウェアシステムの振る舞いを正確に形式化することができるソフトウェアにおけるシーケンス図の解析用ツリー構造への変換方法及びそのコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の目的を達成するために、コンピュータ装置によって、ソフトウェア設計書に含まれる２以上の実行者のそれぞれによって実行されるシーケンスを表すダイアグラムを、シーケンスの構造を解析するためのツリー構造ヘ変換する際に、前記コンピュータ装置は、以下のステップを含むコンピュータプログラムによって動作し、前記シーケンスを表すダイアグラムから各シーケンスに含まれる動詞であるアクティビティとその目的語を抽出するステップと、前記シーケンスを表すダイアグラムのタイトルである機能を表す動詞を最上位のアクティビティとして定義するステップと、前記シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス及び該シーケンスを実行した実行者によって実行されるシーケンスに含まれるアクティビティを最上位のアクティビティの１階層下位のアクティピティとして定義し、最上位のアクティビティの下位のアクティビティをシーケンスの順序ごとに定義するステップと、上記のステップにおけるシーケンスにより引き起こされるシーケンスを実行した他の実行者によって実行されるシーケンスについても上記と同様の手順でさらに下位のアクティビティをシーケンスの順序ごとに定義する処理を繰り返すステップと、シーケンスと該シーケンスに対応する応答シーケンスの間に他のシーケンスが存在しない場合に、該シーケンスを引き起こす元となったシーケンスから、該応答シーケンスによって引き起こされるシーケンスまでの全てのシーケンスに含まれるアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義するステップと、各シーケンスに定義されたアクティビティの入力として該アクティビティの目的語を定義すると共に、シーケンスに定義されるアクティビティの入力としての目的語を該シーケンスを引き起こすシーケンスに定義されたアクティビティの出力として定義し、前記ダイアグラムのタイトルに含まれる目的語を最後のシーケンスに定義された最後のアクティビティの出力として定義するステップと、前記定義したアクティビティの上下関係と目的語をツリー構造で表現するステップとを実行する。
【０００９】
本発明によれば、ソフトウェア設計書に含まれる２以上の実行者のそれぞれによって実行されるシーケンスを表すダイアグラムから各シーケンスに含まれる動詞であるアクティビティとその目的語が抽出され、シーケンスを表すダイアグラムのタイトルである機能を表す動詞が最上位のアクティビティとして定義される。
【００１０】
さらに、シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス及び該シーケンスを実行した実行者によって実行されるシーケンスに含まれるアクティビティが最上位のアクティビティの１階層下位のアクティピティとして定義され、最上位のアクティビティの下位のアクティビティがシーケンスの順序ごとに定義される。
【００１１】
また、上記のステップにおけるシーケンスにより引き起こされるシーケンスを実行した他の実行者によって実行されるシーケンスについても上記と同様の手順でさらに下位のアクティビティをシーケンスの順序ごとに定義する処理が繰り返される。
【００１２】
また、シーケンスと該シーケンスに対応する応答シーケンスの間に他のシーケンスが存在しない場合に、該シーケンスを引き起こす元となったシーケンスから、該応答シーケンスによって引き起こされるシーケンスまでの全てのシーケンスに含まれるアクティビティが最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義される。
【００１３】
さらに、各シーケンスに定義されたアクティビティの入力として該アクティビティの目的語が定義されると共に、シーケンスに定義されるアクティビティの入力としての目的語が該シーケンスを引き起こすシーケンスに定義されたアクティビティの出力として定義され、前記ダイアグラムのタイトルに含まれる目的語が最後のシーケンスに定義された最後のアクティビティの出力として定義され、定義したアクティビティの上下関係と目的語がツリー構造で表現される。
【発明の効果】
【００１４】
上記のように本発明によれば、ソフトウェアの振る舞いを表現する２以上の実行者のそれぞれによって実行されるシーケンスを表すダイアグラムを理解しやすい解析用ツリー構造に変換する際に、解析用ツリーを構成するタスクアクティビティの構造を機械的に決定することができる。
【００１５】
このため、ソフトウェアの設計書に含まれている語彙の曖昧性を排除してソフトウェア開発における要求を体系的に表現することができるので、設計のやり直しなどが発生を防止することができる。
【００１６】
また、設計書に現れる語彙の揺らぎをなくすことができると共に、ソフトウェアの振る舞いを構成する処理の構成を一意的に表現することができ、処理手順の構造を解析するためのツリー構造として構築する際に機械的に決定することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の一実施形態を説明する。
【００１８】
本実施形態は、テキストによるドキュメントからソフトウェアシステムの振る舞いに関する解析用ツリー構造を構築するのではなく、ソフトウェアシステムの振る舞いに関してより詳細な処理が記されているシーケンスを表すダイアグラムから解析用ツリー構造を構築する。その際に、本発明のコンピュータプログラムによって動作するコンピュータ装置を用い、図１に示すようなシーケンスを表すダイアグラムの構造を入力し、これを、図２に示すような解析用ツリーの構造に変換して表示する。尚、コンピュータ装置に入力されるシーケンスを表すダイアグラムは、例えば周知のＸＭＬ(Extensible Markup Language)を用いて形式的に表現されているものである。
【００１９】
上記のように構造化する際に、複数の処理手順に含まれる動詞をグループ化して階層をどのように形成するかを決定するために、次のような手順でシーケンスを表現するダイアグラムの機能構成として形式化した後、解析用ツリーの構造に変換して表現する。
【００２０】
例えば、図１に示すシーケンスを表すダイアグラムでは、「タイトル」(100)が設定され、処理実行者が３名存在し、各処理実行者間でタスクユニットが実行されることが表されている。
【００２１】
即ち、図１に示すシーケンスを表すダイアグラムによれば、処理実行者１から処理実行者２に対してタスクユニットＡが実行された後(101)、処理実行者２から処理実行者３に対してタスクユニットＢが実行される(102)。
【００２２】
次いで、処理実行者３から処理実行者２に対してタスクユニットＣが実行され(103)、処理実行者２から処理実行者３に対してタスクユニットＤが実行され(104)、処理実行者３から処理実行者２に対してタスクユニットＥが実行される(105)。
【００２３】
この後、処理実行者２から処理実行者１に対してタスクユニットＦが実行され(106)、処理実行者１から処理実行者２に対してタスクユニットＧが実行される(107)。さらに、処理実行者２から処理実行者３に対してタスクユニットＨが実行され(108)、処理実行者３から処理実行者２に対してタスクユニットＩが実行され(109)、処理実行者２から処理実行者３に対してタスクユニットＪが実行され(110)、処理実行者３から処理実行者２に対してタスクユニットＫが実行される(111)。次いで、処理実行者２から処理実行者１に対してタスクユニットＬが実行される(112)。
【００２４】
ここで、各タスクユニットＡ〜Ｌは、「ＰをＱする」という形式で表現されており、「Ｐ」が目的語であり、「Ｑ」がタスクアクティビティである。
【００２５】
次に、図１に示すシーケンスを表すダイアグラムを、図２に示す解析用ツリー構造に変換する手順を図３に示すフローチャートを参照して説明する。
【００２６】
先ず、ソフトウェア設計書に含まれるシーケンスを表すダイアグラムを入力し（ＳＡ１）、このダイアグラム（タスクユニットＡ〜Ｌ）から各シーケンスに含まれる動詞であるタスクアクティビティとその目的語を抽出する（ＳＡ２）。ここでは、各タスクユニットＡ〜Ｌのダイアグラムから動詞であるタスクアクティビティＡ〜Ｌとその目的語Ｏa〜Ｏlを抽出する。
【００２７】
次に、シーケンスを表すダイアグラムのタイトル(100)に示されている機能を表す動詞を最上位のタスクアクティビティ(201)として定義する（ＳＡ３）。
【００２８】
この後、シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス(101)及び該シーケンス(101)を実行した処理実行者１によって実行されるシーケンス(107)に含まれるタスクアクティビティＡ，Ｇを最上位のタスクアクティビティ(201)の１階層下位のタスクアクティピティ(202,203)として定義し、最上位のタスクアクティビティ(201)の下位のタスクアクティビティ(202,203)をシーケンスの順序ごとに定義する（ＳＡ４）。
【００２９】
上記のステップにおけるシーケンス(101,107)により引き起こされるシーケンス(102〜112)を実行した他の処理実行者についても上記と同様の手順でさらに下位のタスクアクティビティ(204〜215)をシーケンスの順序ごとに定義する処理を繰り返す（ＳＡ５）。
【００３０】
シーケンスと該シーケンスに対応する応答シーケンスの間に他のシーケンスが存在しない場合に、該シーケンスを引き起こす元となったシーケンスから、この応答シーケンスによって引き起こされるシーケンスまでの全てのシーケンスに含まれるタスクアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義する（ＳＡ６）。
【００３１】
ここでは、シーケンス(102)とシーケンス(103)の間、シーケンス(104)とシーケンス(105)の間に他のシーケンスが存在しないので、これらのシーケンス(102〜105)を引き起こす元となった処理実行者１によって実行されたシーケンス(101)から、応答シーケンス(105)によって引き起こされるシーケンス(106)までの全てのシーケンス(101〜106)に含まれるタスクアクティビティＡ〜Ｆを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義すると共に、シーケンス(108)とシーケンス(109)の間、シーケンス(110)とシーケンス(111)の間に他のシーケンスが存在しないので、これらのシーケンス(108〜111)を引き起こす元となった処理実行者１によって実行されたシーケンス(107)から、応答シーケンス(111)によって引き起こされる最後のシーケンス(112)までの全てのシーケンス(107〜112)に含まれるタスクアクティビティＧ〜Ｌを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義する。
【００３２】
さらに、各シーケンス(101〜112)に定義されたタスクアクティビティＡ〜Ｌの入力としてこのタスクアクティビティＡ〜Ｌの目的語Ｏa〜Ｏlを定義すると共に、各シーケンス(102〜112)に定義されるタスクアクティビティＢ〜Ｌ(205〜215)の入力としての目的語Ｏb〜Ｏlをこのシーケンス(102〜112)を引き起こすシーケンス(101〜111)に定義されたタスクアクティビティＡ〜Ｋの出力として定義し、ダイアグラムのタイトルに含まれる目的語Ｏmを最後のシーケンス(112)に対応する最後のタスクアクティビティＬ(215)の出力として定義する（ＳＡ７）。
【００３３】
最後に、上記のように定義したタイトル(100)に示されている機能を表す動詞であるタスクアクティビティ(201)及びタスクアクティビティＡ〜Ｌ(202〜215)の上下関係と目的語Ｏa〜Ｏmをツリー構造で表現する（ＳＡ８）。ここでは、上記のツリー構造が、コンピュータ装置のディスプレイに表示されると共にプリンターによって印刷される。
【００３４】
上記のツリー構造では、シーケンスを表すダイアグラムのタイトル(100)に含まれている最上位（第１階層）のタスクアクティビティ(201)に対して第２階層の２つのタスクアクティビティＡ，Ｌ(202,203)が分岐して接続されている。さらに、一方のタスクアクティビティＡ(202)に対して第３階層の６つのタスクアクティビティＡ〜Ｆ(204〜209)が分岐して接続され、他方のタスクアクティビティＬ(203)に対して第３階層の６つのタスクアクティビティG〜L(210〜215)が分岐して接続されている。
【００３５】
また、第１階層のタスクアクティビティ(201)に対しては、入力の目的語Ｏaが定義されると共に出力の目的語Ｏmが定義されている。
【００３６】
第２階層の一方のタスクアクティビティ(202)に対しては、入力の目的語Ｏaが定義されると共に出力の目的語Ｏgが定義されている。
【００３７】
第２階層の他方のタスクアクティビティ(203)に対しては、入力の目的語Ｏgが定義されると共に出力の目的語Ｏmが定義されている。
【００３８】
第３階層のタスクアクティビティA(204)に対しては、入力の目的語Ｏaが定義されると共に出力の目的語Ｏbが定義されている。
【００３９】
第３階層のタスクアクティビティB(205)に対しては、入力の目的語Ｏbが定義されると共に出力の目的語Ｏcが定義されている。
【００４０】
第３階層のタスクアクティビティC(206)に対しては、入力の目的語Ｏcが定義されると共に出力の目的語Ｏdが定義されている。
【００４１】
第３階層のタスクアクティビティD(207)に対しては、入力の目的語Ｏdが定義されると共に出力の目的語Ｏeが定義されている。
【００４２】
第３階層のタスクアクティビティE(208)に対しては、入力の目的語Ｏeが定義されると共に出力の目的語Ｏfが定義されている。
【００４３】
第３階層のタスクアクティビティF(209)に対しては、入力の目的語Ｏfが定義されると共に出力の目的語Ｏgが定義されている。
【００４４】
第３階層のタスクアクティビティG(210)に対しては、入力の目的語Ｏgが定義されると共に出力の目的語Ｏhが定義されている。
【００４５】
第３階層のタスクアクティビティH(211)に対しては、入力の目的語Ｏhが定義されると共に出力の目的語Ｏiが定義されている。
【００４６】
第３階層のタスクアクティビティI(212)に対しては、入力の目的語Ｏiが定義されると共に出力の目的語Ｏjが定義されている。
【００４７】
第３階層のタスクアクティビティJ(213)に対しては、入力の目的語Ｏjが定義されると共に出力の目的語Ｏkが定義されている。
【００４８】
第３階層のタスクアクティビティK(214)に対しては、入力の目的語Ｏkが定義されると共に出力の目的語Ｏlが定義されている。
【００４９】
第３階層のタスクアクティビティL(215)に対しては、入力の目的語Ｏlが定義されると共に出力の目的語Ｏmが定義されている。
【００５０】
上記のように本実施形態によれば、ソフトウェアの振る舞いを表現するシーケンスを理解しやすい解析用ツリー構造に変換する際に、解析用ツリーを構成するタスクアクティビティの構造を機械的に決定することができる。
【００５１】
このため、ソフトウェアの設計書に含まれている語彙の曖昧性を排除してソフトウェア開発における要求を体系的に表現することができるので、設計のやり直しなどの発生を防止することができる。
【００５２】
また、設計書に現れる語彙の揺らぎをなくすことができると共に、ソフトウェアの振る舞いを構成する処理の構成を一意的に表現することができ、処理手順の構造を解析するためのツリー構造として構築する際に機械的に決定することができる。
【実施例１】
【００５３】
次に、本発明を適用した具体的な一実施例に関して説明する。
【００５４】
本実施例では、GE-PON(Gigabit Ethernet-Passive Optical Network)（「Ethernet」は登録商標）システムのGE-OLT(GE-Optical Line Terminal)のサーバ機能設計書を基に本発明の手法を適用した例を示す。
【００５５】
機能設計書の中の「OLTを変更する」というタイトルを有するシーケンスのダイアグラムの機能に関するタスクを理解するために、各タスクユニットの機能を表現する。
【００５６】
図４に示すUML(Unified Modeling Language)のシーケンス図から、解析するためのツリー構造を構築すると図５に示すようになる。「OLTを変更する」というタイトル(300)を有するシーケンスの中に現れている処理実行者が「OSS-Client」、「OSS-Sever」、「DB(データベース)」の３者であることより、ツリー構造の階層が３階層になる。
【００５７】
また、本実施例では、第２階層のタスクアクティビティのところはOSS-ClientからOSS-Severに対して実行されるシーケンスのタスクアクティビティのもので表現し、第３階層のタスクアクティビティは全てのシーケンスを時系列に重複しないように並べて表現している。このことにより、タスクの構造を解析するためのツリー構造を機械的に構築できることが確認できる。
【００５８】
即ち、図４に示すシーケンスを表すダイアグラムによれば、OSS-ClientからOSS-Serverに対して「未変更状態を確認する」というタスクユニット(401)が実行された後(301)、OSS-ServerからDBに対して「変更待ち状態を変更する」というタスクユニット(402)が実行される(302)。
【００５９】
次いで、DBからOSS-Serverに対して「変更済受理未通知状態を受理する」というタスクユニット(403)が実行され(303)、OSS-ClientからOSS-Serverに対して「変更済未通知状態を確認する」というタスクユニット(404)が実行され(304)、OSS-ServerからOSS-Clientに対して「通知可能状態を通知する」というタスクユニット(405)が実行される(305)。
【００６０】
ここで、各タスクユニット(401〜405)は、前述したように「ＰをＱする」という形式で表現されており、「Ｐ」が目的語であり、「Ｑ」がタスクアクティビティである。
【００６１】
次に、図４に示すシーケンスを表すダイアグラムを、図５に示す解析用ツリー構造に変換する手順を説明する。
【００６２】
まず、解析用ツリー構造を作成するために、ソフトウェア設計書に含まれるシーケンスを表すダイアグラム（タスクユニット）から各シーケンス301〜305に含まれる動詞であるタスクアクティビティとその目的語を抽出する。ここでは、前述した各タスクユニット401〜405のダイアグラムから動詞であるタスクアクティビティとその目的語を抽出する。
【００６３】
次に、シーケンスを表すダイアグラムのタイトル(300)である「ＯＬＴ（変更済状態）を変更する」の機能を表す「変更する」を最上位のタスクアクティビティ(501)として定義する。
【００６４】
この後、シーケンスを表すダイアグラムにおいて最初に実行されるシーケンス(301)及び該シーケンス(301)を実行したOSS-Clientによって実行されるシーケンス(304)のタスクユニット(401,404)に含まれるタスクアクティビティを最上位のタスクアクティビティ(501)の１階層下位のタスクアクティピティ(502,503)として定義し、最上位のタスクアクティビティ(501)の下位のタスクアクティビティ(502,503)をシーケンスの順序ごとに定義する。ここでは、最上位のタスクアクティビティ(501)の下位のタスクアクティビティ(502,503)として「確認する」と「通知する」が定義される。
【００６５】
上記のステップにおけるシーケンス(301,304)により引き起こされる他のシーケンス(302,303,305)についても上記と同様の手順でさらに下位のタスクアクティビティ(504〜508)を定義する処理を繰り返す。
【００６６】
また、シーケンス(302)とこれに対応する応答シーケンス(303)の間に他のシーケンスが存在しないので、これらのシーケンスを引き起こす元となったOSS-Clientによって実行されたシーケンス(301)から、応答シーケンス(303)までの全てのシーケンス(301〜303)のタスクユニット(401〜403)に含まれるタスクアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義すると共に、シーケンス(304)とこれに対応する応答シーケンス(305)の間に他のシーケンスが存在しないので、これらのシーケンス(304,305)のタスクユニット(404,405)に含まれるタスクアクティビティを最下位のアクティビティとしてシーケンスの順序ごとに重複しないように定義する。
【００６７】
ここでは、最下位のタスクアクティビティ(504〜508)として、「確認する」、「変更する」、「受理する」、「確認する」、「通知する」が定義される。
【００６８】
さらに、各シーケンス(301〜305)に定義されたタスクアクティビティの入力としてこのタスクアクティビティ(504〜308)の目的語(601〜605)である「未変更状態」と、「変更待ち状態」、「変更済受理未通知状態」、「変更済未通知状態」、「通知可能状態」を定義する。そして、各シーケンス(302〜305)に定義されるタスクアクティビティ(505〜508)の入力としての目的語(602〜605)をこのシーケンス(302〜305)を引き起こすシーケンス(301〜304)に定義されたタスクアクティビティ(504〜507)の出力として定義し、ダイアグラムのタイトル(300)に含まれる目的語である「変更済状態」を最後のシーケンス(305)に対応する最後のタスクアクティビティ(508)の出力として定義する。
【００６９】
最後に、上記のように定義したタイトル(501)及びタスクアクティビティ(502〜508)の上下関係と目的語(601〜606)をツリー構造で表現する。ここでは、上記のツリー構造が、コンピュータ装置のディスプレイに表示されると共にプリンターによって印刷される。
【００７０】
上記のツリー構造では、シーケンスを表すダイアグラムのタイトル(300)に含まれている最上位（第１階層）のタスクアクティビティ「変更する」(501)に対して第２階層の２つのタスクアクティビティ「確認する」，「通知する」(502,503)が分岐して接続されている。さらに、一方のタスクアクティビティ「確認する」(502)に対して第３階層の３つのタスクアクティビティ「確認する」，「変更する」，「受理する」(504〜506)が分岐して接続され、他方のタスクアクティビティ「通知する」(503)に対して第３階層の２つのタスクアクティビティ「確認する」，「通知する」(507,508)が分岐して接続されている。
【００７１】
また、第１階層のタスクアクティビティ「変更する」(501)に対しては、入力の目的語「未変更状態」(601)が定義されると共に出力の目的語「変更済状態」(606)が定義されている。
【００７２】
第２階層の一方のタスクアクティビティ「確認する」(502)に対しては、入力の目的語「未変更状態」(601)が定義されると共に出力の目的語「変更済未通知状態」(604)が定義されている。
【００７３】
第２階層の他方のタスクアクティビティ「通知する」(503)に対しては、入力の目的語「変更済未通知状態」(604)が定義されると共に出力の目的語「変更済状態」(606)が定義されている。
【００７４】
第３階層のタスクアクティビティ「確認する」(504)に対しては、入力の目的語「未変更状態」(601)が定義されると共に出力の目的語「変更待ち状態」(602)が定義されている。
【００７５】
第３階層のタスクアクティビティ「変更する」(505)に対しては、入力の目的語「変更待ち状態」(602)が定義されると共に出力の目的語「変更済受理未通知状態」(603)が定義されている。
【００７６】
第３階層のタスクアクティビティ「受理する」(506)に対しては、入力の目的語「変更済受理未通知状態」(603)が定義されると共に出力の目的語「変更済未通知状態」(604)が定義されている。
【００７７】
第３階層のタスクアクティビティ「確認する」(507)に対しては、入力の目的語「変更済未通知状態」(604)が定義されると共に出力の目的語「通知可能状態」(605)が定義されている。
【００７８】
第３階層のタスクアクティビティ「通知する」(508)に対しては、入力の目的語「通知可能状態」(605)が定義されると共に出力の目的語「変更済状態」(606)が定義されている。
【００７９】
上記のように本実施例によれば、GE-PONシステムのGE-OLTのサーバ機能設計書の中の「ＯＬＴ（変更済状態）を変更する」というタイトルの機能に関するUMLのシーケンス図から、ソフトウェアの振る舞いを表現するシーケンスを理解しやすい解析用ツリー構造に変換する際に、解析用ツリーを構成するタスクアクティビティの構造を機械的に決定することができる。
【００８０】
このため、ソフトウェアの設計書に含まれている語彙の曖昧性を排除してソフトウェア開発における要求を体系的に表現することができるので、設計のやり直しなどが発生を防止することができる。
【００８１】
また、設計書に現れる語彙の揺らぎをなくすことができると共に、ソフトウェアの振る舞いを構成する処理の構成を一意的に表現することができ、処理手順の構造を解析するためのツリー構造として構築する際に機械的に決定することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態におけるシーケンスを表すダイアグラム
【図２】本発明の一実施形態における解析用ツリー構造を示す図
【図３】本発明の一実施形態におけるシーケンスを表すダイアグラムを解析用ツリー構造に変換する手順を示すフローチャート
【図４】本発明の一実施例におけるシーケンスを表すダイアグラム
【図５】本発明の一実施例における解析用ツリー構造を示す図
【図６】従来例におけるテキストのみからなるソフトウェアシステムの振る舞いに関するドキュメントの構成を説明する図
【図７】従来例における順序付の階層関係でタスクアクティビティの構成を明らかにした解析用ツリー構造を示す図
【符号の説明】
【００８３】
101〜112…シーケンス、201〜215…タスクアクティビティ、Ｏa〜Ｏm…目的語、301〜305…シーケンス、401〜405…タスクユニット、501〜508…タスクアクティビティ、601〜606…目的語。
【図１】
2006201924.tif 000003
【図２】
2006201924.tif 000004
【図３】
2006201924.tif 000005
【図４】
2006201924.tif 000006
【図５】
2006201924.tif 000007
【図６】
2006201924.tif 000008
【図７】
2006201924.tif 000009