(57)【特許請求の範囲】
【請求項１】
オブジェクト指向ソフトウェアの設計図や仕様書を編集・作成するための設計情報エディタと、
オブジェクト、属性、メソッドを含むフレーム要素と、前記フレーム要素を説明する文字列からなるガイダンス要素と、図形の位置や大きさ、線図の意味を含む設計固有要素とからなる設計情報を格納する設計情報データベースと、
フレーム要素と、ガイダンス要素と、メソッド、宣言を含むリーフ要素とを含む実装情報を格納する実装情報データベースと、
前記設計情報エディタを用いてソフトウェア開発者により作成された前記オブジェクト指向ソフトウェアの設計図や仕様書から、前記設計情報を抽出して前記設計情報データベースに記憶させ、あるいは、前記設計情報データベースの設計情報を前記オブジェクト指向ソフトウェアの設計図や仕様書に付加して反映させる設計情報抽出装置と、
使用するコンピュータ言語に固有のグルー要素を含む書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
前記設計情報と前記実装情報と前記書式情報とを入力し、前記書式情報に従って前記フレーム要素に対してリーフ要素とグルー要素と必要なガイダンス要素とを付加してソースコードを生成するソースコードジェネレータと、
ソースコードを設計図や仕様書に変換すると共に、ソースコードから実装情報を抽出して実装情報データベースに記憶させる実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を前記フレーム要素の比較を通じて対応付け、前記設計情報データベースに整合するように前記実装情報データベースの内容を更新し、あるいは、前記実装情報データベースに整合するように前記設計情報データベースの内容を更新する設計情報／実装情報リンク装置と、を有し、
最初にオブジェクト指向ソフトウェアの設計図と仕様書を作成し、前記設計図や仕様書からソースコードを生成してそれを修正し、前記修正されたソースコードから設計図や仕様書を生成して必要に応じてそれを編集し、それ以降は前記ソースコードの生成と修正と前記設計図や仕様書の生成と編集とを繰り返しながらオブジェクト指向ソフトウェアを開発するスパイラル型オブジェクト指向ソフトウェアの開発において、  最初のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、最初にソフトウェア開発者が前記設計情報エディタを用いてオブジェクト指向ソフトウェアの設計図や仕様書を作成した後に、前記設計図や仕様書から設計情報を抽出して前記設計情報データベースに記憶させ、
前記設計情報／実装情報リンク装置は、前記設計情報データベースのフレーム要素とガイダンス要素を前記実装情報データベースに生成し、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とグルー要素を取得して修正用ソースコードを生成し、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後ソースコードを作成した後に、前記変更後ソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後ソースコードから実装情報を抽出して前記実装情報データベースに記憶させ、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新し、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させ、
第二回目以降のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、ソフトウェア開発者が前記設計情報エディタを用いて前記設計情報を反映させた変更後の設計図や仕様書を編集した基礎となる設計図や仕様書を作成した後に、前記基礎となる設計図や仕様書から前記設計情報を抽出して前記設計情報データベースに記憶させる、第１の処理を行い、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記設計情報データベースと整合するように前記実装情報データベースの内容を更新する、第２の処理を行い、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とリーフ要素とグルー要素を取得して修正用ソースコードを生成する、第３の処理を行い、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後のソースコードを作成した後に、前記変更後のソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後のソースコードから実装情報を抽出して前記実装情報データベースに記憶させる、第４の処理を行い、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新する、第５の処理を行い、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させる、第６の処理を行う、ことを特徴とするスパイラル型オブジェクト指向ソフトウェアの開発支援システム。
【請求項２】
前記書式ファイルは複数のコンピュータ言語に対応する書式情報を有し、使用者の要求に応じて所定種類の書式情報を出力するように構成されていることを特徴とする請求項１記載のスパイラル型オブジェクト指向ソフトウェアの開発支援システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、スパイラル型オブジェクト指向のソフトウェア開発を支援するシステムに係り、特にスパイラル状にソフトウェアを開発をする途中で、作成済みの書式情報等を再利用可能にしたスパイラル型オブジェクト指向のソフトウェア開発支援システムに関する。
【０００２】
【従来の技術】
現在、再利用性や拡張性が求められることから、オブジェクト指向のソフトウェアが広く使用されるようになっている。このオブジェクト指向のソフトウェア開発の一手法として、スパイラル型のソフトウェア開発の方法が知られている。
【０００３】
図１６は、上記スパイラル型のオブジェクト指向ソフトウェアの開発方法の概念を示している。図に示すように、スパイラル型ソフトウェア開発では、最初はソフトウェアの要求仕様に基づいてソフトウェアの中心部分の設計図等を作成し、この設計図に基づいてコーディングして実験し、次に実験結果を評価して元の要求仕様を見直し、さらに上記工程を繰り返しながら漸次機能を付加してスパイラル的にソフトウェアを完成していく。
【０００４】
図１７は、従来のスパイラル型オブジェクト指向ソフトウェアの開発方法の各工程と、各工程の成果物を示している。
【０００５】
従来のスパイラル型ソフトウェア開発方法では、最初はスタートポイント５０から要求仕様に基づいて最初の設計図や仕様書等の設計ドキュメント５１を作成する（ステップ２００）。
【０００６】
次に、上記設計ドキュメント５１を修正用のソースコード５２に変換する（ステップ２１０）。このソースコード化には、一般にソースコードジェネレータが使用されている。このソースコードジェネレータによって生成されたソースコード５２は、機械的なジェネレーションのために細部が不備であったり、また、ソースコード上でソフトウェアを変更したい場合もあるので、技術者によってソースコードに追加、変更、削除等の修正を行って変更後のソースコード５３を作成する（ステップ２２０）。
【０００７】
次に変更後のソースコード５３は、パーサー等の構文解析ソフトによって、変更後の設計ドキュメント５４に変換する（ステップ２３０）。
【０００８】
次に、この変更後の設計ドキュメント５４に基づいて、要求仕様を見直し、スクリーンエディタによって設計ドキュメントを修正し、二回目の開発サイクルの基礎となる設計ドキュメント５１を作成する（ステップ２４０）。
【０００９】
以降、上記ステップ２１０ないしステップ２４０を繰り返し、ソフトウェアと要求仕様を見直しながら、漸次ソフトウェアの機能を充実させてソフトウェアを完成していく。
【００１０】
上記設計ドキュメント５１，５４の設計情報は、フレーム要素とガイダンス要素と設計固有要素によって構成されている。ここで、フレーム要素は、クラス、オブジェクト、属性、メソッド等のオブジェクト指向ソフトウェアの実体をなす要素である。ガイダンス要素は、各フレーム要素を説明する要素である。設計固有要素は、たとえば、図形の位置や大きさ、あるいは線図の意味等、設計に固有の情報を示す要素である。
【００１１】
また、上記ソースコード５２，５３に含まれる実装情報は、フレーム要素とリーフ要素とガイダンス要素とグルー要素とによって構成されている。ここで、上記フレーム要素とガイダンス要素は、設計情報のものと同一である。リーフ要素は、メソッド、宣言等の表現をコード化するものである。グルー要素は、各コンピュータ言語に特有の文法や約束を含む要素である。
【００１２】
上記設計情報と実装情報は、図１８に示すように、フレーム要素とガイダンス要素を共有する。設計固有要素は設計情報に特有のものであり、リーフ要素とグルー要素は実装情報に特有のものである。
【００１３】
設計情報と実装情報が上記構成を有しているので、従来のスパイラル型ソフトウェア開発では、設計ドキュメント５１から修正用のソースコード５２を生成するとき（ステップ２１０）、図１９に示すように、設計固有要素が脱落し、その代わりにグルー要素やリーフ要素が付加される。すなわちこの変換では、共通のフレーム要素とガイダンス要素のみが利用される。
【００１４】
この場合、各サイクルごとにステップ２１０の工程で、技術者が再度ソースコードを見直して、上記リーフ要素やガイダンス要素を付加する。
【００１５】
また、変更後のソースコード５３から変更後の設計ドキュメント５４を生成するときは（ステップ２３０）、図２０に示すように、ソースコードのリーフ要素とグルー要素が脱落する。この場合、技術者はスクリーンエディタで、設計ドキュメントに設計固有要素を付加する。
【００１６】
【発明が解決しようとする課題】
しかしながら、上記従来のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法では、上述したように、ソースコードを修正してこれを設計図等に変換するとき、あるいは設計図等を修正した後に、これをソースコードに変換するときに、それまでに開発されたソースコードや設計図の設計固有要素、ガイダンス要素、あるいはリーフ要素が失われていた。
【００１７】
これら要素は、多くの時間をかけて作成されたものであり、変換の度に失われるのはきわめて不経済であった。
【００１８】
特に、ソースコードを人手によって修正するときに、付加されるリーフ要素やガイダンス要素は、熟練した技術者が多くの時間をかけて付加するものであり、かつ、ソースコードの修正はソースコードの一部のみについて行われることが多いにもかかわらず、スパイラル型ソフトウェア開発のサイクルごとに初めからこれら要素を作成するのは極めて非効率的であった。
【００１９】
また、近来コンピュータ・ソフトウェアは、複雑かつ大型化していることにより、複数の技術者が、それぞれ最適な複数種類のコンピュータ言語によって共通のソフトウェアを開発するのがより合理的となっている。
【００２０】
しかし、従来のスパイラル型ソフトウェア開発では、設計図等からソースコードを生成するのに、一般市場に流通しているソースコードジェネレータを使用していたので、そのソースコードジェネレータが変換できるコンピュータ言語によってソフトウェアを開発しなければならない問題があった。
【００２１】
そこで、本発明の目的は、上記従来のスパイラル型ソフトウェア開発の課題を解決し、一度作成したリーフ要素やガイダンス要素や設計固有要素を、変更や削除されない限り再利用することができるスパイラル型ソフトウェア開発支援システムおよびソフトウェア開発方法を提供することにある。
【００２２】
また、本発明の他の目的は、オブジェクトごとに異なる複数種類のコンピュータ言語によって、共通のオブジェクト指向のソフトウェアをスパイラル的に開発できるスパイラル型ソフトウェア開発方法を提供することにある。
【００２３】
【課題を解決するための手段】
上記目的を達成するために、
本発明によるスパイラル型ソフトウェア開発支援システムは、
ソフトウェアの設計図や仕様書を編集する設計情報エディタと、
前記設計図や仕様書に含まれる設計情報を格納する設計情報データベースと、
前記設計情報をソースコードに実装するための実装情報を格納する実装情報データベースと、
使用するコンピュータ言語に固有の書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
最新の前記設計情報と前記実装情報の必要部分と前記書式情報とを入力してソースコードを生成するソースコードジェネレータと、
変更されたソースコードの設計情報を前記設計情報データベースに反映する設計情報抽出装置と、
変更されたソースコードの実装情報を前記実装情報データベースに反映する実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を維持する設計情報／実装情報リンク装置と、
システム全体を管理する管理装置と
を有することを特徴とするものである。
【００２４】
上記目的を達成するために、本願発明に係るスパイラル型オブジェクト指向ソフトウェアの開発支援システムは、
オブジェクト指向ソフトウェアの設計図や仕様書を編集・作成するための設計情報エディタと、
オブジェクト、属性、メソッドを含むフレーム要素と、前記フレーム要素を説明する文字列からなるガイダンス要素と、図形の位置や大きさ、線図の意味を含む設計固有要素とからなる設計情報を格納する設計情報データベースと、
フレーム要素と、ガイダンス要素と、メソッド、宣言を含むリーフ要素とを含む実装情報を格納する実装情報データベースと、
前記設計情報エディタを用いてソフトウェア開発者により作成された前記オブジェクト指向ソフトウェアの設計図や仕様書から、前記設計情報を抽出して前記設計情報データベースに記憶させ、あるいは、前記設計情報データベースの設計情報を前記オブジェクト指向ソフトウェアの設計図や仕様書に付加して反映させる設計情報抽出装置と、
使用するコンピュータ言語に固有のグルー要素を含む書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
前記設計情報と前記実装情報と前記書式情報とを入力し、前記書式情報に従って前記フレーム要素に対してリーフ要素とグルー要素と必要なガイダンス要素とを付加してソースコードを生成するソースコードジェネレータと、
ソースコードを設計図や仕様書に変換すると共に、ソースコードから実装情報を抽出して実装情報データベースに記憶させる実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を前記フレーム要素の比較を通じて対応付け、前記設計情報データベースに整合するように前記実装情報データベースの内容を更新し、あるいは、前記実装情報データベースに整合するように前記設計情報データベースの内容を更新する設計情報／実装情報リンク装置と、を有し、
最初にオブジェクト指向ソフトウェアの設計図と仕様書を作成し、前記設計図や仕様書からソースコードを生成してそれを修正し、前記修正されたソースコードから設計図や仕様書を生成して必要に応じてそれを編集し、それ以降は前記ソースコードの生成と修正と前記設計図や仕様書の生成と編集とを繰り返しながらオブジェクト指向ソフトウェアを開発するスパイラル型オブジェクト指向ソフトウェアの開発において、  最初のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、最初にソフトウェア開発者が前記設計情報エディタを用いてオブジェクト指向ソフトウェアの設計図や仕様書を作成した後に、前記設計図や仕様書から設計情報を抽出して前記設計情報データに記憶させ、
前記設計情報／実装情報リンク装置は、前記設計情報データベースのフレーム要素とガイダンス要素を前記実装情報データベースに生成し、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とグルー要素を取得して修正用ソースコードを生成し、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後ソースコードを作成した後に、前記変更後ソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後ソースコードから実装情報を抽出して前記実装情報データベースに記憶させ、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新し、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させ、
第二回目以降のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、ソフトウェア開発者が前記設計情報エディタを用いて前記設計情報を反映させた変更後の設計図や仕様書を編集した基礎となる設計図や仕様書を作成した後に、前記基礎となる設計図や仕様書から前記設計情報を抽出して前記設計情報データベースに記憶させる、第１の処理を行い、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記設計情報データベースと整合するように前記実装情報データベースの内容を更新する、第２の処理を行い、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とリーフ要素とグルー要素を取得して修正用ソースコードを生成する、第３の処理を行い、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後のソースコードを作成した後に、前記変更後のソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後のソースコードから実装情報を抽出して前記実装情報データベースに記憶させる、第４の処理を行い、
前記設計情報／実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新する、第５の処理を行い、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させる、第６の処理を行う、ことを特徴とする。
前記書式ファイルは複数のコンピュータ言語に対応する書式情報を有し、使用者の要求に応じて所定種類の書式情報を出力するように構成されているようにすることができる。
【００２５】
【作用】
本発明のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法は、ソフトウェアの設計情報を、上記設計情報データベースによってフレーム要素とガイダンス要素と設計固有要素とに分類して記憶し、ソースコードの実装情報を、実装情報データベースによってフレーム要素とガイダンス要素とリーフ要素とに分類して記憶している。
【００２６】
また、上記設計情報データベースと実装情報データベースの情報を、フレーム要素の同一性を利用して設計情報／実装情報リンク装置によって互いにリンクし、対応関係を維持するようにしている。
【００２７】
上記構造により、各スパイラル型開発のサイクルで、設計情報あるいは実装情報が変更されると、設計情報抽出装置や実装情報抽出装置によって、設計情報データベースと実装情報データベースの内容が変更され、さらに、設計情報／実装情報リンク装置によって、フレーム要素を手がかりに変更された部分を選別し、変更されていない部分についてはフレーム要素、リーフ要素、ガイダンス要素、設計固有要素等をそのまま次のサイクルで再利用することができる。
【００２８】
これにより、スパイラル型ソフトウェア開発の各サイクルで、それまでに作成され、かつ、再利用可能なリーフ要素、ガイダンス要素、設計固有要素等を再利用でき、より効率的にスパイラル型のソフトウェア開発を行うことができる。
【００２９】
また、本発明のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法は、書式情報記憶装置によって使用するコンピュータ言語の書式情報を格納する少なくとも一つの書式ファイルを記憶している。
【００３０】
この書式情報記憶装置の書式ファイルをフレーム要素ごとに選択可能にすることにより、本発明のシステムおよびソフトウェア開発方法では、フレーム要素ごとに異なる複数種類のコンピュータ言語によって共通のソフトウェアを開発することが可能になる。
【００３１】
【実施例】
次に、本発明の一実施例について図面を参照して以下に説明する。
図１は、本発明によるスパイラル型オブジェクト指向のソフトウェア開発支援システムの構成例を示している。
【００３２】
本実施例のスパイラル型オブジェクト指向ソフトウェア開発支援システム１は、設計情報エディタ２ａ，２ｂ，２ｃと、設計情報データベース３と、実装情報データベース４と、書式情報記憶装置５と、ソースコードジェネレータ６と、設計情報抽出装置７ａ，７ｂ，７ｃと、実装情報抽出装置８ａ，８ｂと、設計情報／実装情報リンク装置９と、管理装置１０とを備えている。
【００３３】
上記設計情報エディタ２ａ，２ｂ，２ｃは、メッセージフロー図、状態遷移図、シーケンスチャート等の設計図を作成および編集するスクリーンエディタである。この設計情報エディタ２ａ，２ｂ，２ｃによって、ソフトウェア開発者は要求仕様に応じてソフトウェアの設計図・仕様書を作成する。
【００３４】
上記設計情報抽出装置７ａ，７ｂ，７ｃは、上記設計情報エディタ２ａ，２ｂ，２ｃで作成された設計図等の設計情報を設計情報データベース３のデータとして抽出する装置である。この設計情報抽出装置７ａ，７ｂ，７ｃは、パーサー／ジェネレーション機能を有し、設計図の図形や説明を解釈して設計情報を構成する諸要素を抽出する。
【００３５】
設計情報データベース３は、設計情報抽出装置７ａ，７ｂ，７ｃによって抽出された設計情報の諸要素を分類して記憶するデータベースである。
【００３６】
実装情報データベース４は、設計情報をソースコードに実装するための実装情報の諸要素を分類して記憶するデータベースである。
【００３７】
設計情報データベース３と実装情報データベース４の内容は、スパイラル型ソフトウェア開発の各サイクルで書き換えられる。
【００３８】
設計情報／実装情報リンク装置９は、二つのデータベースに記憶された情報を比較してデータ間に論理リンクを生成する装置である。この設計情報／実装情報リンク装置９によって、設計情報データベース３と実装情報データベース４の共通の要素（フレーム要素）はリンクされ、これによって両データベースの内容の対応関係が維持されている。
【００３９】
書式情報記憶装置５は、各コンピュータ言語に固有の書式に関する情報を格納する記憶装置である。この書式情報記憶装置５は、複数のコンピュータ言語の書式情報を格納する複数の書式ファイルを有し、要求に応じて適当な書式情報を出力することができる。
【００４０】
ソースコードジェネレータ６は、設計情報をソースコード化する装置であり、上記書式情報記憶装置５の書式情報と、設計情報データベース３の設計情報と、実装情報データベース４の実装情報とを読み出して、書式情報に従って設計情報をソースコード化する。
【００４１】
図１中、符号１１および１２は、それぞれコンピュータ言語Ｃ++とＳｍａｌｔａｌｋによるソースコードの例を示している。
【００４２】
実装情報抽出装置８ａ，８ｂは、ソースコードを構文解析して実装情報の諸要素を抽出する装置である。この実装情報抽出装置８ａ，８ｂによって、上記Ｃ++ソースコード１１やＳｍａｌｔａｌｋのソースコード１２から実装情報の構成要素が抽出され、実装情報データベース４に記憶される。
【００４３】
管理装置１０は、上記各装置の動作をスパイラル型ソフトウェア開発の各段階に応じて制御・管理している。
【００４４】
次に、本実施例のスパイラル型オブジェクト指向ソフトウェア開発支援システム１を用いたソフトウェア開発方法について説明する。
【００４５】
図２は、スパイラル型のオブジェクト指向ソフトウェアの開発方法を示している。図２において、スパイラル型ソフトウェア開発は、スタートポイント２０から開始され、図１の設計情報エディタ２ａ，２ｂ，２ｃによって最初の設計図２１が作成される（ステップ１００）。上記ステップ１００の設計図が作成されると、図１の設計情報抽出装置７ａ，７ｂ，７ｃによって設計情報が抽出され、設計情報データベース３にフレーム要素とガイダンス要素と設計固有要素に分類されて記憶される（ステップ１０１）。
【００４６】
設計情報データベース３に記憶された情報は、図１の設計情報／実装情報リンク装置９によって、実装情報データベース４の各要素と対応関係がつけられる（ステップ１０２）。最初のサイクルでは、設計情報データベース３のフレーム要素とガイダンス要素に対応するフレーム要素とガイダンス要素のみが実装情報データベース４に生成される。
【００４７】
次に、図１のソースコードジェネレータ６によって、設計図２１から修正用のソースコード２２が生成される（ステップ１１０）。この修正用ソースコード２２を生成するときに、ソースコードジェネレータ６は、設計情報データベース３と実装情報データベース４から必要なフレーム要素とガイダンス要素を取得し（ステップ１１１，１１２）、さらに書式情報記憶装置５の所定の書式ファイル２３から使用するコンピュータ言語に固有のグルー要素を取得する（ステップ１１３）。
【００４８】
次に、修正用ソースコード２２から変更後のソースコード２４が作成される（ステップ１２０）。この作成作業は、技術者によってソースコードの追加、変更、削除等が行われることによって達成される。変更後のソースコード２４は、フレーム要素、リーフ要素、グルー要素等を含み、ソースコードの体裁を整えている。
【００４９】
次に、上記変更後のソースコード２４は、図１の実装情報抽出装置８ａ，８ｂによって、変更後の設計図２５に変換される（ステップ１３０）。このとき、変更後のソースコード２４の実装情報は実装情報データベース４に反映される（ステップ１３１）。
【００５０】
実装情報データベース４に反映された変更後の実装情報は、設計情報／実装情報リンク装置９によって設計情報データベース３とリンクされる（ステップ１０２）。このリンクは、変更後の実装情報と変更前の設計情報を比較し、等価のフレーム要素同士を論理的に関連づけることによって行われる。
【００５１】
等価になった設計情報のフレーム要素は、変更されなかった要素を意味するので、そのフレーム要素とそれに付属する設計固有要素やガイダンス要素はそのまま保存される。
【００５２】
一方、非等価となった設計情報のフレーム要素については、ソースコード修正の段階で追加あるいは削除された要素を意味するので、設計情報と実装情報とが一致するように、設計情報データベース３を修正する。
【００５３】
上記修正を行った設計情報データベース３の設計情報は、変更後の設計図２５に反映される（ステップ１３２）。設計情報データベース３から変更後の設計図２５への変換は、図１の設計情報抽出装置７ａ，７ｂ，７ｃによって行われる。
【００５４】
次に、設計情報エディタ２ａ，２ｂ，２ｃによって変更後の設計図２５を編集し、次のスパイラル型ソフトウェア開発サイクルの基礎となる設計図２１を生成する（ステップ１４０）。
【００５５】
この過程で変更された設計情報は、設計情報抽出装置７ａ，７ｂ，７ｃを介して、設計情報データベース３に反映される（ステップ１４１）。この変更後の設計情報データベース３の情報は、再び設計情報／実装情報リンク装置９によって、実装情報データベース４の実装情報とリンクされ、内容的にも整合性を有するように整備される。
【００５６】
二回目以降のスパイラル型ソフトウェア開発のサイクルでは、上記ステップ１１０ないしステップ１４１の処理を繰り返してソフトウェアを完成させていく。ここで注目すべきことは、二回目以降のスパイラル・サイクルでは、上述したように、変更や追加や削除されない限り、前回までに作成されたリーフ要素、ガイダンス要素、設計固有要素等がそのまま再利用されることである。
【００５７】
なお、図２において、仮想線で囲まれた領域Ｒは、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システム１によってソフトウェア開発を行う範囲を示している。
【００５８】
次に図３以降の図面を用いて、上記変更されていないフレーム要素とその付随要素を再利用する具体的方法について説明する。
【００５９】
図３は、設計情報データベース３と実装情報データベース４にそれぞれ格納される設計情報と実装情報の要素構成例を示している。この図３において、符号３１と３２は、設計情報の要素構成と実装情報の要素構成の例をそれぞれ示している。
【００６０】
設計情報要素構成３１は、ツリー構造のフレーム要素３３ａ，３３ｂ，３３ｃ，３３ｄ，３３ｅ，３３ｆを有している。このフレーム要素３３ａ，…，３３ｆは、図４に例示するオブジェクト指向のソフトウェアのオブジェクトの構成に対応している。図４のクラス、メソッド、ポート、継承、タイプ、属性、タイプは、それぞれフレーム要素になる。
【００６１】
各フレーム要素３３ａ，…，３３ｆには、フレーム要素を説明するガイダンス要素と、位置や大きさ等の設計図固有の情報を示す設計固有要素が付属している。このガイダンス要素と設計固有要素は、相互にも関係づけられている。
【００６２】
一方、実装情報要素構成例３２は、同様にオブジェクト指向のソフトウェアの各オブジェクトに対応するフレーム要素３４ａ，３４ｂ，３４ｃ，３４ｄ，３４ｅ，３４ｆのツリー構造を有している。
【００６３】
各フレーム要素３４ａ，…，３４ｆには、フレーム要素を説明するガイダンス要素と、メッソド等を定義するリーフ要素が付属している。
【００６４】
上記設計情報要素構成３１と実装情報要素構成３２の等価なフレーム要素は、設計情報／実装情報リンク装置９によって、互いに対応するように関係付けられている。
【００６５】
図５は、実装情報要素構成３２の各フレーム要素３４ａ，…，３４ｆの構成を示している。図５に示すように、各フレーム要素３４ａ，…，３４ｆは、フレーム要素を特定するフレーム名３５を有し、複数の表現３６ａ，３６ｂ，３６ｃ（たとえば複数の異なるコンピュータ言語による記述）が各フレーム要素３４ａ，…，３４ｆに従属している。
【００６６】
図６は、各表現３６ａ，…，３６ｃの構成を示している。図６に示すように、各表現３６ａ，…，３６ｃは、その表現を特定する表現名３７を有し、ガイダンス要素３８とグルー要素３９と前方リーフ要素４０と後方リーフ要素４１とが各表現３６ａ，…，３６ｃに従属している。
【００６７】
図７は、上記構造の実装情報をソースコードに展開する方法を示している。ソースコードを生成するときは、展開するフレーム要素３４ａ，…，３４ｆに対して表現名３７を指定してコード生成を要求する。
【００６８】
フレーム要素３４ａ，…，３４ｆは、指定された表現３６ａ，…，３６ｃに対応するグルー要素３９を選択し、その表現３６ａ，…，３６ｃに対して展開を要求する。
【００６９】
表現３６ａ，…，３６ｃは、前方リーフ要素４０と後方リーフ要素４１とガイダンス要素３８とグルー要素３９をフレーム要素３４ａ，…，３４ｆの属性に付加してソースコードを展開していく。必要に応じてフレーム要素の名前４２も展開される。
【００７０】
さらに、ソースコード化するフレーム要素に従属するフレーム要素をコード化する必要があるときは、その子のフレーム要素に展開要求を送る。子フレーム要素では、上記方法でさらにソースコードが展開される。
【００７１】
図８は上記のようにして生成されたソースコードの一例を示している。図８において、細い破線で囲まれた部分はグルー要素、太い破線で囲まれた部分はガイダンス要素、下線を引いた部分はフレーム要素、文字がそのままの部分はリーフ要素をそれぞれ示している。このソースコードから明らかなように、ソースコードジェネレータ６によって、フレーム要素にリーフ要素とガイダンス要素とグルー要素が付加されて、全体として所定の書式のソースコードに形成されている。
【００７２】
図９は、上述した各要素の格納場所と、それらが表現されるドキュメント（設計ドキュメント、ソースコード等）と、それらの対応関係を示している。
【００７３】
図９に示すように、設計固有要素とガイダンス要素とフレーム要素は設計情報データベース３に格納され、これらは、設計ドキュメント２１，２５の情報に対応している。また、ガイダンス要素とフレーム要素とリーフ要素は実装情報データベース４に格納されており、これらは、ソースコード２２，２４に対応している。グルー要素は、書式情報記憶装置５に格納され、このグルー要素はソースコード２２，２４の表現中で使用されている。
【００７４】
ここで、注目すべきことは、設計情報データベース３のフレーム要素と実装情報データベース４のフレーム要素が論理的に結合（リンク）されていることである。このリンクの作用によって、リーフ要素等が再利用可能になるのである。
【００７５】
次に、上記論理的リンクの具体的方法について説明する。たとえば、図２のステップ１２０でソースコードに追加、変更、削除が行われた後に、この変更された実装情報は設計情報抽出装置７ａ，７ｂ，７ｃによって構文解析され、実装情報データベース４に記憶される。
【００７６】
この状態では、図３の実装情報の要素構成３２が変更されているが、この時点では実装情報の要素構成３２は、設計情報要素構成３１と無関係の存在となっている。
【００７７】
図１０および図１１は、上記設計情報要素構成３１の構成要素と実装情報要素構成３２の構成要素をリンクする方法を概念的に表している。
【００７８】
図１０に示すように、論理リンクを行うには、変更後の実装情報の要素構成３２と変更前の設計情報の要素構成３１の各フレーム要素を論理ＩＤを介して比較し、等価なものと非等価のものを識別する。
【００７９】
ここで、等価なものとは、変更前にも存在し、変更後にも存在する構成要素をいう。等価な要素には、内容が完全に一致する同値のものと、実装情報側の内容の一部（名前など）が変更されている非同値のものとがある。
【００８０】
非等価なものとは、変更後の実装情報の要素構成３２と変更前の設計情報の要素構成３１で対応しない構成要素をいう。非等価な要素には、実装情報側の孤立要素と、設計情報側の孤立要素とがある。実装情報側の孤立要素は、ソースコードの修正で実装情報に新たな要素を追加することによって生じる。設計情報側の孤立要素は、ソースコードの修正で実装情報の要素を削除することによって生じる。
【００８１】
論理リンクは、図１１に示すように、実装情報要素集合の親集合の各要素について行い、続いて各要素に付属する子集合の各要素について行う。ツリー構造の要素構成では、ツリーの頂点の要素から論理リンクを行い、下方に向かって扇状に各要素の論理リンクを展開する。
【００８２】
上記論理ＩＤは、図１２に示すように、プロダクト名と、バージョン名と、整数値からなる。プロダクト名は、情報の保存や取り出しを管理する単位の名前である。バージョン名はプロダクト名のバージョンを表す文字列ないし値である。整数値は、所定のバージョンの管理単位内（たとえば所定バージョンのファイル内）で、特定のフレーム要素を一意的に決定する整数値である。
【００８３】
すべての構成要素について、比較・論理リンク付けをした後は、同値のフレーム要素については、それに付属する設計固有要素およびガイダンス要素を次のスパイラル型ソフトウェア開発のサイクルで再利用する。非同値のフレーム要素については、ソフトウェア開発者によって、整合性があるように設計情報側の要素を修正する。また、非等価のフレーム要素については、設計情報側の要素を追加・削除する。この作業を通じて、設計情報要素構成３１と実装情報要素構成３２は完全に整合し、各要素間は論理リンクによって結合される。
【００８４】
図１３は、変更前の設計情報の構成要素が再利用されることを説明した図である。図において、実装情報側で記号Ａで示す要素は変更されず、記号Ｂで示す要素は削除され、記号Ｃで示す要素は追加されたものとすると、論理リンクによって変更されなかった設計情報側の要素ａが識別され、この要素ａは再利用される。
【００８５】
実装情報側で削除された要素Ｂに対応する設計情報側の要素ｂは、論理リンクを形成する段階で削除される。また、実装情報側で追加された要素Ｃについては、設計情報側に新たなフレーム要素ｃが形成される。
【００８６】
上述したことから明らかなように、この方法によれば、設計情報側の構成要素のうち、ソースコードの修正で変更がされなかった要素ａについては、前回のサイクルで作成したものをそのまま次のスパイラル型ソフトウェア開発のサイクルで再利用でき、効率よいスパイラル型ソフトウェア開発をすることができる。
【００８７】
上記設計情報の再利用と同様に、本発明によれば、実装情報を再利用することもできる。図１４は、設計情報の変更を実装情報に反映するときの実装情報の再利用の方法を示している。
【００８８】
図１４に示す方法では、設計情報側の設計情報エディタ２ａ，…，２ｃによる変更を命令として各フレーム要素に蓄積しておく。設計情報をソースコード化するときに、等価かつ最新の実装情報（前バージョン）を実装情報データベース４から取り出し、その実装情報に対して設計情報の各命令を逐次実行していく。これによって、実装情報を更新するとともに、ソースコードを生成する。
【００８９】
この方法によれば、なんら命令が蓄積されていない設計情報要素、すなわち、変更されていない要素については、前バージョンの実装情報がそのまま流用され、スパイラル型ソフトウェア開発の次のサイクルで再利用される。
【００９０】
図１５は、変更された設計情報を実装情報に反映する他の方法を示している。この方法では、変更された設計情報に基づいて現バージョンの実装情報を生成する。この現バージョンの実装情報と設計情報の間に、図示するように論理リンクを生成する。この時点では、現バージョンの実装情報の各フレーム要素は、表現要素を有していない。
【００９１】
次に、実装情報データベース４から、「空間等価」な実装情報、すなわち前バージョンの実装情報を取得する。ここで、「空間等価」とは、前記論理ＩＤのプロダクト名と整数値が等しく、バージョン名のみ異なるものをいう。
【００９２】
次に、前バージョンの実装情報の表現等の付属要素を、論理ＩＤを介して、現バージョンの実装情報に付加する。
【００９３】
これによって、前バージョンまでに作成された表現等の付属要素が再利用される。
【００９４】
また、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムおよびソフトウェア開発方法によれば、共通のオブジェクト指向ソフトウェアを複数の技術者が異なる種類のコンピュータ言語で開発することができる。これはフレーム要素が、図５に示すように、複数の表現要素を付属させていることと、書式情報記憶装置５がソースコードジェネレータ６の要求に応じて所定の書式情報を出力することとによって達成される。
【００９５】
すなわち、本発明によれば、オブジェクトの属性やメソッドなどソフトウェアの実体をなす情報が各フレーム要素に含まれており、その情報が表現によって各種のソースコードに変換され、かつ、各フレーム要素ごとに独立して上記方法によってスパイラル的に開発できるので、共通のソフトウェアを複数の異なる種類のコンピュータ言語によって同時に開発することができるのである。
【００９６】
【発明の効果】
上記説明から明らかなように、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムおよびソフトウェア開発方法によれば、各スパイラル型ソフトウェア開発のサイクルごとに開発された設計情報と実装情報を各構成要素に分類して設計情報データベースと実装情報データベースに記憶し、それらの共通要素を論理リンクしている。
【００９７】
このような構成により、設計情報や実装情報のいずれか一方を変更したときは、論理リンクによって変更された構成要素と変更されていない構成要素を選別し、変更されていない構成要素をそのまま再利用することができる。
【００９８】
これによって、スパイラル型ソフトウェア開発の各サイクルにおいて、前回のサイクルまでに開発されたソフトウェア部分が再現され、必要最小限の修正のみを行うことができ、効率よいスパイラル型ソフトウェア開発を行うことができる。
【００９９】
また、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムの書式情報記憶装置は、異なる種類のコンピュータ言語の書式情報を格納した書式ファイルを有し、ソースコードジェネレータの要求に応じて適当な書式情報を提供し、また、各フレーム要素は異なる種類の表現要素を有しているので、フレーム要素ごとに異なる種類のコンピュータ言語によって共通のソフトウェアを開発できるスパイラル型ソフトウェア開発方法を提供することができる。
【図面の簡単な説明】
【図１】本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムの構成を示した図。
【図２】本発明のスパイラル型オブジェクト指向ソフトウェア開発方法の各工程を示した図。
【図３】設計情報と実装情報の要素構成を例示した図。
【図４】図３の要素構成の元となるオブジェクト指向ソフトウェアのツリー構造を例示した図。
【図５】各フレーム要素の構成を示した図。
【図６】各フレーム要素の各表現の内容と構造を示した図。
【図７】実装情報の各フレーム要素を所定のコンピュータ言語のソースコードに変換する方法を説明した図。
【図８】設計情報と実装情報から生成されるソースコードの例を示した図。
【図９】設計情報の要素と実装情報の構成要素が格納される装置と、これらが表されているドキュメントと、その相互の関係を示した図。
【図１０】変更後の実装情報要素構成と変更前の設計情報要素構成の論理リンクの方法を示した図。
【図１１】図１０の論理リンクの展開を示した図。
【図１２】論理リンクで使用される論理ＩＤの構成を示した図。
【図１３】ソースコードから設計図を生成するときに、設計情報の構成要素が再利用される様子を説明した図。
【図１４】変更した設計情報を変更前の実装情報に反映させる第一の方法を説明した図。
【図１５】変更した設計情報を変更前の実装情報に反映させる第二の方法を説明した図。
【図１６】スパイラル型ソフトウェア開発方法の概念を示した図。
【図１７】従来のスパイラル型ソフトウェア開発方法による各工程と、それによって生成される各種ドキュメントを示した図。
【図１８】設計情報と実装情報の構成要素の関係を示した図。
【図１９】従来のスパイラル型ソフトウェア開発方法で、設計ドキュメントから修正用ソースコードを生成するときの情報要素の入れ替えの様子を示した図。
【図２０】従来のスパイラル型ソフトウェア開発方法で、変更後のソースコードから設計図等を生成するときの情報要素の入れ替えの様子を示した図。
【符号の説明】
１  スパイラル型オブジェクト指向ソフトウェア開発支援システム
２  設計情報エディタ
３  設計情報データベース
４  実装情報データベース
５  書式情報記憶装置
６  ソースコードジェネレータ
７  設計情報抽出装置
８  実装情報抽出装置
９  設計情報／実装情報リンク装置
１０  管理装置
【図１】
0003759630.tif 000002
【図２】
0003759630.tif 000003
【図３】
0003759630.tif 000004
【図４】
0003759630.tif 000005
【図５】
0003759630.tif 000006
【図６】
0003759630.tif 000007
【図７】
0003759630.tif 000008
【図８】
0003759630.tif 000009
【図９】
0003759630.tif 000010
【図１０】
0003759630.tif 000011
【図１１】
0003759630.tif 000012
【図１２】
0003759630.tif 000013
【図１３】
0003759630.tif 000014
【図１４】
0003759630.tif 000015
【図１５】
0003759630.tif 000016
【図１６】
0003759630.tif 000017
【図１７】
0003759630.tif 000018
【図１８】
0003759630.tif 000019
【図１９】
0003759630.tif 000020
【図２０】
0003759630.tif 000021