JP3759630B2 - スパイラル型オブジェクト指向ソフトウェアの開発支援システム - Google Patents
スパイラル型オブジェクト指向ソフトウェアの開発支援システム Download PDFInfo
- Publication number
- JP3759630B2 JP3759630B2 JP27422993A JP27422993A JP3759630B2 JP 3759630 B2 JP3759630 B2 JP 3759630B2 JP 27422993 A JP27422993 A JP 27422993A JP 27422993 A JP27422993 A JP 27422993A JP 3759630 B2 JP3759630 B2 JP 3759630B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- design
- source code
- design information
- information database
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【産業上の利用分野】
本発明は、スパイラル型オブジェクト指向のソフトウェア開発を支援するシステムに係り、特にスパイラル状にソフトウェアを開発をする途中で、作成済みの書式情報等を再利用可能にしたスパイラル型オブジェクト指向のソフトウェア開発支援システムに関する。
【0002】
【従来の技術】
現在、再利用性や拡張性が求められることから、オブジェクト指向のソフトウェアが広く使用されるようになっている。このオブジェクト指向のソフトウェア開発の一手法として、スパイラル型のソフトウェア開発の方法が知られている。
【0003】
図16は、上記スパイラル型のオブジェクト指向ソフトウェアの開発方法の概念を示している。図に示すように、スパイラル型ソフトウェア開発では、最初はソフトウェアの要求仕様に基づいてソフトウェアの中心部分の設計図等を作成し、この設計図に基づいてコーディングして実験し、次に実験結果を評価して元の要求仕様を見直し、さらに上記工程を繰り返しながら漸次機能を付加してスパイラル的にソフトウェアを完成していく。
【0004】
図17は、従来のスパイラル型オブジェクト指向ソフトウェアの開発方法の各工程と、各工程の成果物を示している。
【0005】
従来のスパイラル型ソフトウェア開発方法では、最初はスタートポイント50から要求仕様に基づいて最初の設計図や仕様書等の設計ドキュメント51を作成する(ステップ200)。
【0006】
次に、上記設計ドキュメント51を修正用のソースコード52に変換する(ステップ210)。このソースコード化には、一般にソースコードジェネレータが使用されている。このソースコードジェネレータによって生成されたソースコード52は、機械的なジェネレーションのために細部が不備であったり、また、ソースコード上でソフトウェアを変更したい場合もあるので、技術者によってソースコードに追加、変更、削除等の修正を行って変更後のソースコード53を作成する(ステップ220)。
【0007】
次に変更後のソースコード53は、パーサー等の構文解析ソフトによって、変更後の設計ドキュメント54に変換する(ステップ230)。
【0008】
次に、この変更後の設計ドキュメント54に基づいて、要求仕様を見直し、スクリーンエディタによって設計ドキュメントを修正し、二回目の開発サイクルの基礎となる設計ドキュメント51を作成する(ステップ240)。
【0009】
以降、上記ステップ210ないしステップ240を繰り返し、ソフトウェアと要求仕様を見直しながら、漸次ソフトウェアの機能を充実させてソフトウェアを完成していく。
【0010】
上記設計ドキュメント51,54の設計情報は、フレーム要素とガイダンス要素と設計固有要素によって構成されている。ここで、フレーム要素は、クラス、オブジェクト、属性、メソッド等のオブジェクト指向ソフトウェアの実体をなす要素である。ガイダンス要素は、各フレーム要素を説明する要素である。設計固有要素は、たとえば、図形の位置や大きさ、あるいは線図の意味等、設計に固有の情報を示す要素である。
【0011】
また、上記ソースコード52,53に含まれる実装情報は、フレーム要素とリーフ要素とガイダンス要素とグルー要素とによって構成されている。ここで、上記フレーム要素とガイダンス要素は、設計情報のものと同一である。リーフ要素は、メソッド、宣言等の表現をコード化するものである。グルー要素は、各コンピュータ言語に特有の文法や約束を含む要素である。
【0012】
上記設計情報と実装情報は、図18に示すように、フレーム要素とガイダンス要素を共有する。設計固有要素は設計情報に特有のものであり、リーフ要素とグルー要素は実装情報に特有のものである。
【0013】
設計情報と実装情報が上記構成を有しているので、従来のスパイラル型ソフトウェア開発では、設計ドキュメント51から修正用のソースコード52を生成するとき(ステップ210)、図19に示すように、設計固有要素が脱落し、その代わりにグルー要素やリーフ要素が付加される。すなわちこの変換では、共通のフレーム要素とガイダンス要素のみが利用される。
【0014】
この場合、各サイクルごとにステップ210の工程で、技術者が再度ソースコードを見直して、上記リーフ要素やガイダンス要素を付加する。
【0015】
また、変更後のソースコード53から変更後の設計ドキュメント54を生成するときは(ステップ230)、図20に示すように、ソースコードのリーフ要素とグルー要素が脱落する。この場合、技術者はスクリーンエディタで、設計ドキュメントに設計固有要素を付加する。
【0016】
【発明が解決しようとする課題】
しかしながら、上記従来のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法では、上述したように、ソースコードを修正してこれを設計図等に変換するとき、あるいは設計図等を修正した後に、これをソースコードに変換するときに、それまでに開発されたソースコードや設計図の設計固有要素、ガイダンス要素、あるいはリーフ要素が失われていた。
【0017】
これら要素は、多くの時間をかけて作成されたものであり、変換の度に失われるのはきわめて不経済であった。
【0018】
特に、ソースコードを人手によって修正するときに、付加されるリーフ要素やガイダンス要素は、熟練した技術者が多くの時間をかけて付加するものであり、かつ、ソースコードの修正はソースコードの一部のみについて行われることが多いにもかかわらず、スパイラル型ソフトウェア開発のサイクルごとに初めからこれら要素を作成するのは極めて非効率的であった。
【0019】
また、近来コンピュータ・ソフトウェアは、複雑かつ大型化していることにより、複数の技術者が、それぞれ最適な複数種類のコンピュータ言語によって共通のソフトウェアを開発するのがより合理的となっている。
【0020】
しかし、従来のスパイラル型ソフトウェア開発では、設計図等からソースコードを生成するのに、一般市場に流通しているソースコードジェネレータを使用していたので、そのソースコードジェネレータが変換できるコンピュータ言語によってソフトウェアを開発しなければならない問題があった。
【0021】
そこで、本発明の目的は、上記従来のスパイラル型ソフトウェア開発の課題を解決し、一度作成したリーフ要素やガイダンス要素や設計固有要素を、変更や削除されない限り再利用することができるスパイラル型ソフトウェア開発支援システムおよびソフトウェア開発方法を提供することにある。
【0022】
また、本発明の他の目的は、オブジェクトごとに異なる複数種類のコンピュータ言語によって、共通のオブジェクト指向のソフトウェアをスパイラル的に開発できるスパイラル型ソフトウェア開発方法を提供することにある。
【0023】
【課題を解決するための手段】
上記目的を達成するために、
本発明によるスパイラル型ソフトウェア開発支援システムは、
ソフトウェアの設計図や仕様書を編集する設計情報エディタと、
前記設計図や仕様書に含まれる設計情報を格納する設計情報データベースと、
前記設計情報をソースコードに実装するための実装情報を格納する実装情報データベースと、
使用するコンピュータ言語に固有の書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
最新の前記設計情報と前記実装情報の必要部分と前記書式情報とを入力してソースコードを生成するソースコードジェネレータと、
変更されたソースコードの設計情報を前記設計情報データベースに反映する設計情報抽出装置と、
変更されたソースコードの実装情報を前記実装情報データベースに反映する実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を維持する設計情報/実装情報リンク装置と、
システム全体を管理する管理装置と
を有することを特徴とするものである。
【0024】
上記目的を達成するために、本願発明に係るスパイラル型オブジェクト指向ソフトウェアの開発支援システムは、
オブジェクト指向ソフトウェアの設計図や仕様書を編集・作成するための設計情報エディタと、
オブジェクト、属性、メソッドを含むフレーム要素と、前記フレーム要素を説明する文字列からなるガイダンス要素と、図形の位置や大きさ、線図の意味を含む設計固有要素とからなる設計情報を格納する設計情報データベースと、
フレーム要素と、ガイダンス要素と、メソッド、宣言を含むリーフ要素とを含む実装情報を格納する実装情報データベースと、
前記設計情報エディタを用いてソフトウェア開発者により作成された前記オブジェクト指向ソフトウェアの設計図や仕様書から、前記設計情報を抽出して前記設計情報データベースに記憶させ、あるいは、前記設計情報データベースの設計情報を前記オブジェクト指向ソフトウェアの設計図や仕様書に付加して反映させる設計情報抽出装置と、
使用するコンピュータ言語に固有のグルー要素を含む書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
前記設計情報と前記実装情報と前記書式情報とを入力し、前記書式情報に従って前記フレーム要素に対してリーフ要素とグルー要素と必要なガイダンス要素とを付加してソースコードを生成するソースコードジェネレータと、
ソースコードを設計図や仕様書に変換すると共に、ソースコードから実装情報を抽出して実装情報データベースに記憶させる実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を前記フレーム要素の比較を通じて対応付け、前記設計情報データベースに整合するように前記実装情報データベースの内容を更新し、あるいは、前記実装情報データベースに整合するように前記設計情報データベースの内容を更新する設計情報/実装情報リンク装置と、を有し、
最初にオブジェクト指向ソフトウェアの設計図と仕様書を作成し、前記設計図や仕様書からソースコードを生成してそれを修正し、前記修正されたソースコードから設計図や仕様書を生成して必要に応じてそれを編集し、それ以降は前記ソースコードの生成と修正と前記設計図や仕様書の生成と編集とを繰り返しながらオブジェクト指向ソフトウェアを開発するスパイラル型オブジェクト指向ソフトウェアの開発において、 最初のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、最初にソフトウェア開発者が前記設計情報エディタを用いてオブジェクト指向ソフトウェアの設計図や仕様書を作成した後に、前記設計図や仕様書から設計情報を抽出して前記設計情報データに記憶させ、
前記設計情報/実装情報リンク装置は、前記設計情報データベースのフレーム要素とガイダンス要素を前記実装情報データベースに生成し、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とグルー要素を取得して修正用ソースコードを生成し、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後ソースコードを作成した後に、前記変更後ソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後ソースコードから実装情報を抽出して前記実装情報データベースに記憶させ、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新し、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させ、
第二回目以降のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、ソフトウェア開発者が前記設計情報エディタを用いて前記設計情報を反映させた変更後の設計図や仕様書を編集した基礎となる設計図や仕様書を作成した後に、前記基礎となる設計図や仕様書から前記設計情報を抽出して前記設計情報データベースに記憶させる、第1の処理を行い、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記設計情報データベースと整合するように前記実装情報データベースの内容を更新する、第2の処理を行い、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とリーフ要素とグルー要素を取得して修正用ソースコードを生成する、第3の処理を行い、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後のソースコードを作成した後に、前記変更後のソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後のソースコードから実装情報を抽出して前記実装情報データベースに記憶させる、第4の処理を行い、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新する、第5の処理を行い、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させる、第6の処理を行う、ことを特徴とする。
前記書式ファイルは複数のコンピュータ言語に対応する書式情報を有し、使用者の要求に応じて所定種類の書式情報を出力するように構成されているようにすることができる。
【0025】
【作用】
本発明のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法は、ソフトウェアの設計情報を、上記設計情報データベースによってフレーム要素とガイダンス要素と設計固有要素とに分類して記憶し、ソースコードの実装情報を、実装情報データベースによってフレーム要素とガイダンス要素とリーフ要素とに分類して記憶している。
【0026】
また、上記設計情報データベースと実装情報データベースの情報を、フレーム要素の同一性を利用して設計情報/実装情報リンク装置によって互いにリンクし、対応関係を維持するようにしている。
【0027】
上記構造により、各スパイラル型開発のサイクルで、設計情報あるいは実装情報が変更されると、設計情報抽出装置や実装情報抽出装置によって、設計情報データベースと実装情報データベースの内容が変更され、さらに、設計情報/実装情報リンク装置によって、フレーム要素を手がかりに変更された部分を選別し、変更されていない部分についてはフレーム要素、リーフ要素、ガイダンス要素、設計固有要素等をそのまま次のサイクルで再利用することができる。
【0028】
これにより、スパイラル型ソフトウェア開発の各サイクルで、それまでに作成され、かつ、再利用可能なリーフ要素、ガイダンス要素、設計固有要素等を再利用でき、より効率的にスパイラル型のソフトウェア開発を行うことができる。
【0029】
また、本発明のスパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法は、書式情報記憶装置によって使用するコンピュータ言語の書式情報を格納する少なくとも一つの書式ファイルを記憶している。
【0030】
この書式情報記憶装置の書式ファイルをフレーム要素ごとに選択可能にすることにより、本発明のシステムおよびソフトウェア開発方法では、フレーム要素ごとに異なる複数種類のコンピュータ言語によって共通のソフトウェアを開発することが可能になる。
【0031】
【実施例】
次に、本発明の一実施例について図面を参照して以下に説明する。
図1は、本発明によるスパイラル型オブジェクト指向のソフトウェア開発支援システムの構成例を示している。
【0032】
本実施例のスパイラル型オブジェクト指向ソフトウェア開発支援システム1は、設計情報エディタ2a,2b,2cと、設計情報データベース3と、実装情報データベース4と、書式情報記憶装置5と、ソースコードジェネレータ6と、設計情報抽出装置7a,7b,7cと、実装情報抽出装置8a,8bと、設計情報/実装情報リンク装置9と、管理装置10とを備えている。
【0033】
上記設計情報エディタ2a,2b,2cは、メッセージフロー図、状態遷移図、シーケンスチャート等の設計図を作成および編集するスクリーンエディタである。この設計情報エディタ2a,2b,2cによって、ソフトウェア開発者は要求仕様に応じてソフトウェアの設計図・仕様書を作成する。
【0034】
上記設計情報抽出装置7a,7b,7cは、上記設計情報エディタ2a,2b,2cで作成された設計図等の設計情報を設計情報データベース3のデータとして抽出する装置である。この設計情報抽出装置7a,7b,7cは、パーサー/ジェネレーション機能を有し、設計図の図形や説明を解釈して設計情報を構成する諸要素を抽出する。
【0035】
設計情報データベース3は、設計情報抽出装置7a,7b,7cによって抽出された設計情報の諸要素を分類して記憶するデータベースである。
【0036】
実装情報データベース4は、設計情報をソースコードに実装するための実装情報の諸要素を分類して記憶するデータベースである。
【0037】
設計情報データベース3と実装情報データベース4の内容は、スパイラル型ソフトウェア開発の各サイクルで書き換えられる。
【0038】
設計情報/実装情報リンク装置9は、二つのデータベースに記憶された情報を比較してデータ間に論理リンクを生成する装置である。この設計情報/実装情報リンク装置9によって、設計情報データベース3と実装情報データベース4の共通の要素(フレーム要素)はリンクされ、これによって両データベースの内容の対応関係が維持されている。
【0039】
書式情報記憶装置5は、各コンピュータ言語に固有の書式に関する情報を格納する記憶装置である。この書式情報記憶装置5は、複数のコンピュータ言語の書式情報を格納する複数の書式ファイルを有し、要求に応じて適当な書式情報を出力することができる。
【0040】
ソースコードジェネレータ6は、設計情報をソースコード化する装置であり、上記書式情報記憶装置5の書式情報と、設計情報データベース3の設計情報と、実装情報データベース4の実装情報とを読み出して、書式情報に従って設計情報をソースコード化する。
【0041】
図1中、符号11および12は、それぞれコンピュータ言語C++とSmaltalkによるソースコードの例を示している。
【0042】
実装情報抽出装置8a,8bは、ソースコードを構文解析して実装情報の諸要素を抽出する装置である。この実装情報抽出装置8a,8bによって、上記C++ソースコード11やSmaltalkのソースコード12から実装情報の構成要素が抽出され、実装情報データベース4に記憶される。
【0043】
管理装置10は、上記各装置の動作をスパイラル型ソフトウェア開発の各段階に応じて制御・管理している。
【0044】
次に、本実施例のスパイラル型オブジェクト指向ソフトウェア開発支援システム1を用いたソフトウェア開発方法について説明する。
【0045】
図2は、スパイラル型のオブジェクト指向ソフトウェアの開発方法を示している。図2において、スパイラル型ソフトウェア開発は、スタートポイント20から開始され、図1の設計情報エディタ2a,2b,2cによって最初の設計図21が作成される(ステップ100)。上記ステップ100の設計図が作成されると、図1の設計情報抽出装置7a,7b,7cによって設計情報が抽出され、設計情報データベース3にフレーム要素とガイダンス要素と設計固有要素に分類されて記憶される(ステップ101)。
【0046】
設計情報データベース3に記憶された情報は、図1の設計情報/実装情報リンク装置9によって、実装情報データベース4の各要素と対応関係がつけられる(ステップ102)。最初のサイクルでは、設計情報データベース3のフレーム要素とガイダンス要素に対応するフレーム要素とガイダンス要素のみが実装情報データベース4に生成される。
【0047】
次に、図1のソースコードジェネレータ6によって、設計図21から修正用のソースコード22が生成される(ステップ110)。この修正用ソースコード22を生成するときに、ソースコードジェネレータ6は、設計情報データベース3と実装情報データベース4から必要なフレーム要素とガイダンス要素を取得し(ステップ111,112)、さらに書式情報記憶装置5の所定の書式ファイル23から使用するコンピュータ言語に固有のグルー要素を取得する(ステップ113)。
【0048】
次に、修正用ソースコード22から変更後のソースコード24が作成される(ステップ120)。この作成作業は、技術者によってソースコードの追加、変更、削除等が行われることによって達成される。変更後のソースコード24は、フレーム要素、リーフ要素、グルー要素等を含み、ソースコードの体裁を整えている。
【0049】
次に、上記変更後のソースコード24は、図1の実装情報抽出装置8a,8bによって、変更後の設計図25に変換される(ステップ130)。このとき、変更後のソースコード24の実装情報は実装情報データベース4に反映される(ステップ131)。
【0050】
実装情報データベース4に反映された変更後の実装情報は、設計情報/実装情報リンク装置9によって設計情報データベース3とリンクされる(ステップ102)。このリンクは、変更後の実装情報と変更前の設計情報を比較し、等価のフレーム要素同士を論理的に関連づけることによって行われる。
【0051】
等価になった設計情報のフレーム要素は、変更されなかった要素を意味するので、そのフレーム要素とそれに付属する設計固有要素やガイダンス要素はそのまま保存される。
【0052】
一方、非等価となった設計情報のフレーム要素については、ソースコード修正の段階で追加あるいは削除された要素を意味するので、設計情報と実装情報とが一致するように、設計情報データベース3を修正する。
【0053】
上記修正を行った設計情報データベース3の設計情報は、変更後の設計図25に反映される(ステップ132)。設計情報データベース3から変更後の設計図25への変換は、図1の設計情報抽出装置7a,7b,7cによって行われる。
【0054】
次に、設計情報エディタ2a,2b,2cによって変更後の設計図25を編集し、次のスパイラル型ソフトウェア開発サイクルの基礎となる設計図21を生成する(ステップ140)。
【0055】
この過程で変更された設計情報は、設計情報抽出装置7a,7b,7cを介して、設計情報データベース3に反映される(ステップ141)。この変更後の設計情報データベース3の情報は、再び設計情報/実装情報リンク装置9によって、実装情報データベース4の実装情報とリンクされ、内容的にも整合性を有するように整備される。
【0056】
二回目以降のスパイラル型ソフトウェア開発のサイクルでは、上記ステップ110ないしステップ141の処理を繰り返してソフトウェアを完成させていく。ここで注目すべきことは、二回目以降のスパイラル・サイクルでは、上述したように、変更や追加や削除されない限り、前回までに作成されたリーフ要素、ガイダンス要素、設計固有要素等がそのまま再利用されることである。
【0057】
なお、図2において、仮想線で囲まれた領域Rは、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システム1によってソフトウェア開発を行う範囲を示している。
【0058】
次に図3以降の図面を用いて、上記変更されていないフレーム要素とその付随要素を再利用する具体的方法について説明する。
【0059】
図3は、設計情報データベース3と実装情報データベース4にそれぞれ格納される設計情報と実装情報の要素構成例を示している。この図3において、符号31と32は、設計情報の要素構成と実装情報の要素構成の例をそれぞれ示している。
【0060】
設計情報要素構成31は、ツリー構造のフレーム要素33a,33b,33c,33d,33e,33fを有している。このフレーム要素33a,…,33fは、図4に例示するオブジェクト指向のソフトウェアのオブジェクトの構成に対応している。図4のクラス、メソッド、ポート、継承、タイプ、属性、タイプは、それぞれフレーム要素になる。
【0061】
各フレーム要素33a,…,33fには、フレーム要素を説明するガイダンス要素と、位置や大きさ等の設計図固有の情報を示す設計固有要素が付属している。このガイダンス要素と設計固有要素は、相互にも関係づけられている。
【0062】
一方、実装情報要素構成例32は、同様にオブジェクト指向のソフトウェアの各オブジェクトに対応するフレーム要素34a,34b,34c,34d,34e,34fのツリー構造を有している。
【0063】
各フレーム要素34a,…,34fには、フレーム要素を説明するガイダンス要素と、メッソド等を定義するリーフ要素が付属している。
【0064】
上記設計情報要素構成31と実装情報要素構成32の等価なフレーム要素は、設計情報/実装情報リンク装置9によって、互いに対応するように関係付けられている。
【0065】
図5は、実装情報要素構成32の各フレーム要素34a,…,34fの構成を示している。図5に示すように、各フレーム要素34a,…,34fは、フレーム要素を特定するフレーム名35を有し、複数の表現36a,36b,36c(たとえば複数の異なるコンピュータ言語による記述)が各フレーム要素34a,…,34fに従属している。
【0066】
図6は、各表現36a,…,36cの構成を示している。図6に示すように、各表現36a,…,36cは、その表現を特定する表現名37を有し、ガイダンス要素38とグルー要素39と前方リーフ要素40と後方リーフ要素41とが各表現36a,…,36cに従属している。
【0067】
図7は、上記構造の実装情報をソースコードに展開する方法を示している。ソースコードを生成するときは、展開するフレーム要素34a,…,34fに対して表現名37を指定してコード生成を要求する。
【0068】
フレーム要素34a,…,34fは、指定された表現36a,…,36cに対応するグルー要素39を選択し、その表現36a,…,36cに対して展開を要求する。
【0069】
表現36a,…,36cは、前方リーフ要素40と後方リーフ要素41とガイダンス要素38とグルー要素39をフレーム要素34a,…,34fの属性に付加してソースコードを展開していく。必要に応じてフレーム要素の名前42も展開される。
【0070】
さらに、ソースコード化するフレーム要素に従属するフレーム要素をコード化する必要があるときは、その子のフレーム要素に展開要求を送る。子フレーム要素では、上記方法でさらにソースコードが展開される。
【0071】
図8は上記のようにして生成されたソースコードの一例を示している。図8において、細い破線で囲まれた部分はグルー要素、太い破線で囲まれた部分はガイダンス要素、下線を引いた部分はフレーム要素、文字がそのままの部分はリーフ要素をそれぞれ示している。このソースコードから明らかなように、ソースコードジェネレータ6によって、フレーム要素にリーフ要素とガイダンス要素とグルー要素が付加されて、全体として所定の書式のソースコードに形成されている。
【0072】
図9は、上述した各要素の格納場所と、それらが表現されるドキュメント(設計ドキュメント、ソースコード等)と、それらの対応関係を示している。
【0073】
図9に示すように、設計固有要素とガイダンス要素とフレーム要素は設計情報データベース3に格納され、これらは、設計ドキュメント21,25の情報に対応している。また、ガイダンス要素とフレーム要素とリーフ要素は実装情報データベース4に格納されており、これらは、ソースコード22,24に対応している。グルー要素は、書式情報記憶装置5に格納され、このグルー要素はソースコード22,24の表現中で使用されている。
【0074】
ここで、注目すべきことは、設計情報データベース3のフレーム要素と実装情報データベース4のフレーム要素が論理的に結合(リンク)されていることである。このリンクの作用によって、リーフ要素等が再利用可能になるのである。
【0075】
次に、上記論理的リンクの具体的方法について説明する。たとえば、図2のステップ120でソースコードに追加、変更、削除が行われた後に、この変更された実装情報は設計情報抽出装置7a,7b,7cによって構文解析され、実装情報データベース4に記憶される。
【0076】
この状態では、図3の実装情報の要素構成32が変更されているが、この時点では実装情報の要素構成32は、設計情報要素構成31と無関係の存在となっている。
【0077】
図10および図11は、上記設計情報要素構成31の構成要素と実装情報要素構成32の構成要素をリンクする方法を概念的に表している。
【0078】
図10に示すように、論理リンクを行うには、変更後の実装情報の要素構成32と変更前の設計情報の要素構成31の各フレーム要素を論理IDを介して比較し、等価なものと非等価のものを識別する。
【0079】
ここで、等価なものとは、変更前にも存在し、変更後にも存在する構成要素をいう。等価な要素には、内容が完全に一致する同値のものと、実装情報側の内容の一部(名前など)が変更されている非同値のものとがある。
【0080】
非等価なものとは、変更後の実装情報の要素構成32と変更前の設計情報の要素構成31で対応しない構成要素をいう。非等価な要素には、実装情報側の孤立要素と、設計情報側の孤立要素とがある。実装情報側の孤立要素は、ソースコードの修正で実装情報に新たな要素を追加することによって生じる。設計情報側の孤立要素は、ソースコードの修正で実装情報の要素を削除することによって生じる。
【0081】
論理リンクは、図11に示すように、実装情報要素集合の親集合の各要素について行い、続いて各要素に付属する子集合の各要素について行う。ツリー構造の要素構成では、ツリーの頂点の要素から論理リンクを行い、下方に向かって扇状に各要素の論理リンクを展開する。
【0082】
上記論理IDは、図12に示すように、プロダクト名と、バージョン名と、整数値からなる。プロダクト名は、情報の保存や取り出しを管理する単位の名前である。バージョン名はプロダクト名のバージョンを表す文字列ないし値である。整数値は、所定のバージョンの管理単位内(たとえば所定バージョンのファイル内)で、特定のフレーム要素を一意的に決定する整数値である。
【0083】
すべての構成要素について、比較・論理リンク付けをした後は、同値のフレーム要素については、それに付属する設計固有要素およびガイダンス要素を次のスパイラル型ソフトウェア開発のサイクルで再利用する。非同値のフレーム要素については、ソフトウェア開発者によって、整合性があるように設計情報側の要素を修正する。また、非等価のフレーム要素については、設計情報側の要素を追加・削除する。この作業を通じて、設計情報要素構成31と実装情報要素構成32は完全に整合し、各要素間は論理リンクによって結合される。
【0084】
図13は、変更前の設計情報の構成要素が再利用されることを説明した図である。図において、実装情報側で記号Aで示す要素は変更されず、記号Bで示す要素は削除され、記号Cで示す要素は追加されたものとすると、論理リンクによって変更されなかった設計情報側の要素aが識別され、この要素aは再利用される。
【0085】
実装情報側で削除された要素Bに対応する設計情報側の要素bは、論理リンクを形成する段階で削除される。また、実装情報側で追加された要素Cについては、設計情報側に新たなフレーム要素cが形成される。
【0086】
上述したことから明らかなように、この方法によれば、設計情報側の構成要素のうち、ソースコードの修正で変更がされなかった要素aについては、前回のサイクルで作成したものをそのまま次のスパイラル型ソフトウェア開発のサイクルで再利用でき、効率よいスパイラル型ソフトウェア開発をすることができる。
【0087】
上記設計情報の再利用と同様に、本発明によれば、実装情報を再利用することもできる。図14は、設計情報の変更を実装情報に反映するときの実装情報の再利用の方法を示している。
【0088】
図14に示す方法では、設計情報側の設計情報エディタ2a,…,2cによる変更を命令として各フレーム要素に蓄積しておく。設計情報をソースコード化するときに、等価かつ最新の実装情報(前バージョン)を実装情報データベース4から取り出し、その実装情報に対して設計情報の各命令を逐次実行していく。これによって、実装情報を更新するとともに、ソースコードを生成する。
【0089】
この方法によれば、なんら命令が蓄積されていない設計情報要素、すなわち、変更されていない要素については、前バージョンの実装情報がそのまま流用され、スパイラル型ソフトウェア開発の次のサイクルで再利用される。
【0090】
図15は、変更された設計情報を実装情報に反映する他の方法を示している。この方法では、変更された設計情報に基づいて現バージョンの実装情報を生成する。この現バージョンの実装情報と設計情報の間に、図示するように論理リンクを生成する。この時点では、現バージョンの実装情報の各フレーム要素は、表現要素を有していない。
【0091】
次に、実装情報データベース4から、「空間等価」な実装情報、すなわち前バージョンの実装情報を取得する。ここで、「空間等価」とは、前記論理IDのプロダクト名と整数値が等しく、バージョン名のみ異なるものをいう。
【0092】
次に、前バージョンの実装情報の表現等の付属要素を、論理IDを介して、現バージョンの実装情報に付加する。
【0093】
これによって、前バージョンまでに作成された表現等の付属要素が再利用される。
【0094】
また、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムおよびソフトウェア開発方法によれば、共通のオブジェクト指向ソフトウェアを複数の技術者が異なる種類のコンピュータ言語で開発することができる。これはフレーム要素が、図5に示すように、複数の表現要素を付属させていることと、書式情報記憶装置5がソースコードジェネレータ6の要求に応じて所定の書式情報を出力することとによって達成される。
【0095】
すなわち、本発明によれば、オブジェクトの属性やメソッドなどソフトウェアの実体をなす情報が各フレーム要素に含まれており、その情報が表現によって各種のソースコードに変換され、かつ、各フレーム要素ごとに独立して上記方法によってスパイラル的に開発できるので、共通のソフトウェアを複数の異なる種類のコンピュータ言語によって同時に開発することができるのである。
【0096】
【発明の効果】
上記説明から明らかなように、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムおよびソフトウェア開発方法によれば、各スパイラル型ソフトウェア開発のサイクルごとに開発された設計情報と実装情報を各構成要素に分類して設計情報データベースと実装情報データベースに記憶し、それらの共通要素を論理リンクしている。
【0097】
このような構成により、設計情報や実装情報のいずれか一方を変更したときは、論理リンクによって変更された構成要素と変更されていない構成要素を選別し、変更されていない構成要素をそのまま再利用することができる。
【0098】
これによって、スパイラル型ソフトウェア開発の各サイクルにおいて、前回のサイクルまでに開発されたソフトウェア部分が再現され、必要最小限の修正のみを行うことができ、効率よいスパイラル型ソフトウェア開発を行うことができる。
【0099】
また、本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムの書式情報記憶装置は、異なる種類のコンピュータ言語の書式情報を格納した書式ファイルを有し、ソースコードジェネレータの要求に応じて適当な書式情報を提供し、また、各フレーム要素は異なる種類の表現要素を有しているので、フレーム要素ごとに異なる種類のコンピュータ言語によって共通のソフトウェアを開発できるスパイラル型ソフトウェア開発方法を提供することができる。
【図面の簡単な説明】
【図1】本発明のスパイラル型オブジェクト指向ソフトウェア開発支援システムの構成を示した図。
【図2】本発明のスパイラル型オブジェクト指向ソフトウェア開発方法の各工程を示した図。
【図3】設計情報と実装情報の要素構成を例示した図。
【図4】図3の要素構成の元となるオブジェクト指向ソフトウェアのツリー構造を例示した図。
【図5】各フレーム要素の構成を示した図。
【図6】各フレーム要素の各表現の内容と構造を示した図。
【図7】実装情報の各フレーム要素を所定のコンピュータ言語のソースコードに変換する方法を説明した図。
【図8】設計情報と実装情報から生成されるソースコードの例を示した図。
【図9】設計情報の要素と実装情報の構成要素が格納される装置と、これらが表されているドキュメントと、その相互の関係を示した図。
【図10】変更後の実装情報要素構成と変更前の設計情報要素構成の論理リンクの方法を示した図。
【図11】図10の論理リンクの展開を示した図。
【図12】論理リンクで使用される論理IDの構成を示した図。
【図13】ソースコードから設計図を生成するときに、設計情報の構成要素が再利用される様子を説明した図。
【図14】変更した設計情報を変更前の実装情報に反映させる第一の方法を説明した図。
【図15】変更した設計情報を変更前の実装情報に反映させる第二の方法を説明した図。
【図16】スパイラル型ソフトウェア開発方法の概念を示した図。
【図17】従来のスパイラル型ソフトウェア開発方法による各工程と、それによって生成される各種ドキュメントを示した図。
【図18】設計情報と実装情報の構成要素の関係を示した図。
【図19】従来のスパイラル型ソフトウェア開発方法で、設計ドキュメントから修正用ソースコードを生成するときの情報要素の入れ替えの様子を示した図。
【図20】従来のスパイラル型ソフトウェア開発方法で、変更後のソースコードから設計図等を生成するときの情報要素の入れ替えの様子を示した図。
【符号の説明】
1 スパイラル型オブジェクト指向ソフトウェア開発支援システム
2 設計情報エディタ
3 設計情報データベース
4 実装情報データベース
5 書式情報記憶装置
6 ソースコードジェネレータ
7 設計情報抽出装置
8 実装情報抽出装置
9 設計情報/実装情報リンク装置
10 管理装置
Claims (2)
- オブジェクト指向ソフトウェアの設計図や仕様書を編集・作成するための設計情報エディタと、
オブジェクト、属性、メソッドを含むフレーム要素と、前記フレーム要素を説明する文字列からなるガイダンス要素と、図形の位置や大きさ、線図の意味を含む設計固有要素とからなる設計情報を格納する設計情報データベースと、
フレーム要素と、ガイダンス要素と、メソッド、宣言を含むリーフ要素とを含む実装情報を格納する実装情報データベースと、
前記設計情報エディタを用いてソフトウェア開発者により作成された前記オブジェクト指向ソフトウェアの設計図や仕様書から、前記設計情報を抽出して前記設計情報データベースに記憶させ、あるいは、前記設計情報データベースの設計情報を前記オブジェクト指向ソフトウェアの設計図や仕様書に付加して反映させる設計情報抽出装置と、
使用するコンピュータ言語に固有のグルー要素を含む書式情報を格納した少なくとも一つの書式ファイルを記憶している書式情報記憶装置と、
前記設計情報と前記実装情報と前記書式情報とを入力し、前記書式情報に従って前記フレーム要素に対してリーフ要素とグルー要素と必要なガイダンス要素とを付加してソースコードを生成するソースコードジェネレータと、
ソースコードを設計図や仕様書に変換すると共に、ソースコードから実装情報を抽出して実装情報データベースに記憶させる実装情報抽出装置と、
前記設計情報データベースと前記実装情報データベースとの間の対応関係を前記フレーム要素の比較を通じて対応付け、前記設計情報データベースに整合するように前記実装情報データベースの内容を更新し、あるいは、前記実装情報データベースに整合するように前記設計情報データベースの内容を更新する設計情報/実装情報リンク装置と、を有し、
最初にオブジェクト指向ソフトウェアの設計図と仕様書を作成し、前記設計図や仕様書からソースコードを生成してそれを修正し、前記修正されたソースコードから設計図や仕様書を生成して必要に応じてそれを編集し、それ以降は前記ソースコードの生成と修正と前記設計図や仕様書の生成と編集とを繰り返しながらオブジェクト指向ソフトウェアを開発するスパイラル型オブジェクト指向ソフトウェアの開発において、 最初のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、最初にソフトウェア開発者が前記設計情報エディタを用いてオブジェクト指向ソフトウェアの設計図や仕様書を作成した後に、前記設計図や仕様書から設計情報を抽出して前記設計情報データベースに記憶させ、
前記設計情報/実装情報リンク装置は、前記設計情報データベースのフレーム要素とガイダンス要素を前記実装情報データベースに生成し、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とグルー要素を取得して修正用ソースコードを生成し、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後ソースコードを作成した後に、前記変更後ソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後ソースコードから実装情報を抽出して前記実装情報データベースに記憶させ、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新し、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させ、
第二回目以降のオブジェクト指向ソフトウェアの開発サイクルでは、
前記設計情報抽出装置は、ソフトウェア開発者が前記設計情報エディタを用いて前記設計情報を反映させた変更後の設計図や仕様書を編集した基礎となる設計図や仕様書を作成した後に、前記基礎となる設計図や仕様書から前記設計情報を抽出して前記設計情報データベースに記憶させる、第1の処理を行い、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記設計情報データベースと整合するように前記実装情報データベースの内容を更新する、第2の処理を行い、
前記ソースコードジェネレータは、前記設計情報データベースと実装情報データベースと書式情報記憶装置から必要なフレーム要素とガイダンス要素とリーフ要素とグルー要素を取得して修正用ソースコードを生成する、第3の処理を行い、
前記実装情報抽出装置は、ソフトウェア開発者が前記修正用ソースコードを修正した変更後のソースコードを作成した後に、前記変更後のソースコードを入力して変更後の設計図や仕様書を生成するとともに、前記変更後のソースコードから実装情報を抽出して前記実装情報データベースに記憶させる、第4の処理を行い、
前記設計情報/実装情報リンク装置は、フレーム要素の対応を通じて前記実装情報データベースと整合するように前記設計情報データベースの内容を更新する、第5の処理を行い、
前記設計情報抽出装置は、前記設計情報データベースの設計情報を前記変更後の設計図や仕様書に反映させる、第6の処理を行う、ことを特徴とするスパイラル型オブジェクト指向ソフトウェアの開発支援システム。 - 前記書式ファイルは複数のコンピュータ言語に対応する書式情報を有し、使用者の要求に応じて所定種類の書式情報を出力するように構成されていることを特徴とする請求項1記載のスパイラル型オブジェクト指向ソフトウェアの開発支援システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27422993A JP3759630B2 (ja) | 1993-11-02 | 1993-11-02 | スパイラル型オブジェクト指向ソフトウェアの開発支援システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27422993A JP3759630B2 (ja) | 1993-11-02 | 1993-11-02 | スパイラル型オブジェクト指向ソフトウェアの開発支援システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07129382A JPH07129382A (ja) | 1995-05-19 |
JP3759630B2 true JP3759630B2 (ja) | 2006-03-29 |
Family
ID=17538819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27422993A Expired - Lifetime JP3759630B2 (ja) | 1993-11-02 | 1993-11-02 | スパイラル型オブジェクト指向ソフトウェアの開発支援システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3759630B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1031586A (ja) * | 1996-07-15 | 1998-02-03 | Nec Corp | プログラム生成装置 |
JP3997495B2 (ja) * | 1998-02-05 | 2007-10-24 | 新日鉄ソリューションズ株式会社 | ソフトウェア解析装置及びソフトウェア解析方法 |
JP4924976B2 (ja) | 2005-03-23 | 2012-04-25 | 新日鉄ソリューションズ株式会社 | ソフトウェア開発支援システム |
JP2007079906A (ja) * | 2005-09-14 | 2007-03-29 | Hitachi Software Eng Co Ltd | ソースコード生成装置 |
JP5137024B2 (ja) * | 2008-06-20 | 2013-02-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 開発支援装置、方法、およびプログラム |
-
1993
- 1993-11-02 JP JP27422993A patent/JP3759630B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH07129382A (ja) | 1995-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6769095B1 (en) | Hierarchically structured control information editor | |
JP3272014B2 (ja) | 階層構造データ処理情報を含むデータ処理辞書を作成する方法及び装置 | |
US7237226B2 (en) | Method and system for storing pending changes to data | |
JP5147240B2 (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
JP3759630B2 (ja) | スパイラル型オブジェクト指向ソフトウェアの開発支援システム | |
JP2008225898A (ja) | 変換装置、変換プログラム及び変換方法 | |
JP3562435B2 (ja) | コンポーネントの自動生成装置 | |
JP4724387B2 (ja) | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 | |
Garlan et al. | Transformgen: automating the maintenance of structure-oriented environments | |
JP5275087B2 (ja) | プログラム生成装置およびブロック線図生成装置 | |
Sabraoui et al. | Metamodel extension approach applied to the model-driven development of mobile applications | |
JP3847932B2 (ja) | プログラム作成支援装置およびそのプログラム記憶媒体 | |
Goldschmidt et al. | Incremental Updates for Textual Modelling of Large Scale Models | |
JP2946715B2 (ja) | プログラム生成方法およびそのための仕様入力方法 | |
JP4354719B2 (ja) | プログラム開発支援プログラム | |
JP4154164B2 (ja) | 知識再利用システム | |
JPH0969041A (ja) | ソフトウェア部品の作成支援方法 | |
WO2001008002A2 (en) | Hierarchically structured control information editor | |
Vysoký et al. | INGRID: Creating Languages in MPS from ANTLR Grammars | |
JP2000066889A (ja) | ソースコードと設計情報の差分供給方法及びその装置 | |
JP4120879B2 (ja) | プログラム生成システム及び方法とそのプログラム | |
Angyal et al. | Synchronization of textual and visual representations of evolving information in the context of model-based development | |
JP2982725B2 (ja) | プログラム自動生成装置 | |
CN116243893A (zh) | 一种低代码出码方法 | |
Hidayat et al. | SPECIFICATION OF A LANGUAGE-BASED EDITOR FOR HASKELL− USING A GENERATOR SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040310 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040420 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040514 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060104 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120113 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120113 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140113 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |