JPH07129382A - スパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法 - Google Patents

スパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法

Info

Publication number
JPH07129382A
JPH07129382A JP5274229A JP27422993A JPH07129382A JP H07129382 A JPH07129382 A JP H07129382A JP 5274229 A JP5274229 A JP 5274229A JP 27422993 A JP27422993 A JP 27422993A JP H07129382 A JPH07129382 A JP H07129382A
Authority
JP
Japan
Prior art keywords
information
design
source code
mounting
design information
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.)
Granted
Application number
JP5274229A
Other languages
English (en)
Other versions
JP3759630B2 (ja
Inventor
Eiji Fukazawa
沢 栄 二 深
Eiji Namikawa
河 英 二 並
Nobuo Mori
伸 雄 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP27422993A priority Critical patent/JP3759630B2/ja
Publication of JPH07129382A publication Critical patent/JPH07129382A/ja
Application granted granted Critical
Publication of JP3759630B2 publication Critical patent/JP3759630B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 設計情報と実装情報の構成要素を、再利用す
ることができるスパイラル型ソフトウェア開発支援シス
テムおよびソフトウェア開発方法を提供する。 【構成】 設計情報エディタ2と、設計情報を格納する
設計情報データベース3と、設計情報をソースコードに
実装するための実装情報を格納する実装情報データベー
ス4と、使用するコンピュータ言語に固有の書式情報を
格納した少なくとも一つの書式ファイルを記憶している
書式情報記憶装置5と、最新の設計情報と実装情報の必
要部分と書式情報とを入力してソースコードを生成する
ソースコードジェネレータ6と、変更されたソースコー
ドの設計情報を設計情報データベース3に反映する設計
情報抽出装置7と、変更されたソースコードの実装情報
を実装情報データベース4に反映する実装情報抽出装置
8と、設計情報データベース3と実装情報データベース
4との間の対応関係を維持する設計情報/実装情報リン
ク装置9と、システム全体を管理する管理装置10とを
備えた。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、スパイラル型オブジェ
クト指向のソフトウェア開発を支援するシステムに係
り、特にスパイラル状にソフトウェアを開発をする途中
で、作成済みの書式情報等を再利用可能にしたスパイラ
ル型オブジェクト指向のソフトウェア開発支援システム
に関する。
【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】この場合、各サイクルごとにステップ21
0の工程で、技術者が再度ソースコードを見直して、上
記リーフ要素やガイダンス要素を付加する。
【0015】また、変更後のソースコード53から変更
後の設計ドキュメント54を生成するときは(ステップ
230)、図20に示すように、ソースコードのリーフ
要素とグルー要素が脱落する。この場合、技術者はスク
リーンエディタで、設計ドキュメントに設計固有要素を
付加する。
【0016】
【発明が解決しようとする課題】しかしながら、上記従
来のスパイラル型オブジェクト指向のソフトウェア開発
支援システムおよびソフトウェア開発方法では、上述し
たように、ソースコードを修正してこれを設計図等に変
換するとき、あるいは設計図等を修正した後に、これを
ソースコードに変換するときに、それまでに開発された
ソースコードや設計図の設計固有要素、ガイダンス要
素、あるいはリーフ要素が失われていた。
【0017】これら要素は、多くの時間をかけて作成さ
れたものであり、変換の度に失われるのはきわめて不経
済であった。
【0018】特に、ソースコードを人手によって修正す
るときに、付加されるリーフ要素やガイダンス要素は、
熟練した技術者が多くの時間をかけて付加するものであ
り、かつ、ソースコードの修正はソースコードの一部の
みについて行われることが多いにもかかわらず、スパイ
ラル型ソフトウェア開発のサイクルごとに初めからこれ
ら要素を作成するのは極めて非効率的であった。
【0019】また、近来コンピュータ・ソフトウェア
は、複雑かつ大型化していることにより、複数の技術者
が、それぞれ最適な複数種類のコンピュータ言語によっ
て共通のソフトウェアを開発するのがより合理的となっ
ている。
【0020】しかし、従来のスパイラル型ソフトウェア
開発では、設計図等からソースコードを生成するのに、
一般市場に流通しているソースコードジェネレータを使
用していたので、そのソースコードジェネレータが変換
できるコンピュータ言語によってソフトウェアを開発し
なければならない問題があった。
【0021】そこで、本発明の目的は、上記従来のスパ
イラル型ソフトウェア開発の課題を解決し、一度作成し
たリーフ要素やガイダンス要素や設計固有要素を、変更
や削除されない限り再利用することができるスパイラル
型ソフトウェア開発支援システムおよびソフトウェア開
発方法を提供することにある。
【0022】また、本発明の他の目的は、オブジェクト
ごとに異なる複数種類のコンピュータ言語によって、共
通のオブジェクト指向のソフトウェアをスパイラル的に
開発できるスパイラル型ソフトウェア開発方法を提供す
ることにある。
【0023】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるスパイラル型ソフトウェア開発支援シ
ステムは、ソフトウェアの設計図や仕様書を編集する設
計情報エディタと、前記設計図や仕様書に含まれる設計
情報を格納する設計情報データベースと、前記設計情報
をソースコードに実装するための実装情報を格納する実
装情報データベースと、使用するコンピュータ言語に固
有の書式情報を格納した少なくとも一つの書式ファイル
を記憶している書式情報記憶装置と、最新の前記設計情
報と前記実装情報の必要部分と前記書式情報とを入力し
てソースコードを生成するソースコードジェネレータ
と、変更されたソースコードの設計情報を前記設計情報
データベースに反映する設計情報抽出装置と、変更され
たソースコードの実装情報を前記実装情報データベース
に反映する実装情報抽出装置と、前記設計情報データベ
ースと前記実装情報データベースとの間の対応関係を維
持する設計情報/実装情報リンク装置と、システム全体
を管理する管理装置とを有することを特徴とするもので
ある。
【0024】また、本発明によるスパイラル型ソフトウ
ェア開発方法は、設計図や仕様書の設計情報を、設計図
や仕様書にのみ固有な情報である設計固有要素と、オブ
ジェクト指向的観点から本質的であるフレーム要素と、
前記フレーム要素を説明するガイダンス要素とに分類し
て記憶する設計情報データベースと、前記設計情報をソ
ースコードに実装する実装情報を、フレーム要素と、ガ
イダンス要素と、フレーム要素の属性を示すリーフ要素
とに分類して記憶する実装情報データベースと、各コン
ピュータ言語に固有の書式情報たるグルー要素を格納す
る書式ファイルとを用いて、最初に要求仕様に基づいて
ソフトウェアの設計図や仕様書を作成し、この設計図や
仕様書の設計情報を前記設計情報データベースに記憶
し、それに対応する実装情報を前記実装情報データベー
スに記憶する第1工程と、前記設計情報データベースと
前記実装情報データベースから最新のフレーム要素とガ
イダンス要素とリーフ要素を取得するとともに、前記書
式ファイルからソースコードの言語に対応するグルー要
素を選択してソースコードを生成する第2工程と、前記
ソースコードを修正する第3工程と、修正後のソースコ
ードを設計図や仕様書に変換するとともに、ソースコー
ド修正段階で変更されたフレーム要素、ガイダンス要素
およびリーフ要素を前記設計情報データベースと実装情
報データベースに書き込む第4工程と、前記設計図や仕
様書を見直して必要に応じて修正するとともに、設計図
/仕様書修正段階で変更されたフレーム要素、ガイダン
ス要素、設計固有要素およびリーフ要素を前記設計情報
データベースと実装情報データベースに書き込む第5工
程と、上記第1工程を完了した後に、上記第2工程ない
し第4工程を順次繰り返しながらソフトウェアを完成し
てゆくことを特徴とするものである。
【0025】
【作用】本発明のスパイラル型オブジェクト指向のソフ
トウェア開発支援システムおよびソフトウェア開発方法
は、ソフトウェアの設計情報を、上記設計情報データベ
ースによってフレーム要素とガイダンス要素と設計固有
要素とに分類して記憶し、ソースコードの実装情報を、
実装情報データベースによってフレーム要素とガイダン
ス要素とリーフ要素とに分類して記憶している。
【0026】また、上記設計情報データベースと実装情
報データベースの情報を、フレーム要素の同一性を利用
して設計情報/実装情報リンク装置によって互いにリン
クし、対応関係を維持するようにしている。
【0027】上記構造により、各スパイラル型開発のサ
イクルで、設計情報あるいは実装情報が変更されると、
設計情報抽出装置や実装情報抽出装置によって、設計情
報データベースと実装情報データベースの内容が変更さ
れ、さらに、設計情報/実装情報リンク装置によって、
フレーム要素を手がかりに変更された部分を選別し、変
更されていない部分についてはフレーム要素、リーフ要
素、ガイダンス要素、設計固有要素等をそのまま次のサ
イクルで再利用することができる。
【0028】これにより、スパイラル型ソフトウェア開
発の各サイクルで、それまでに作成され、かつ、再利用
可能なリーフ要素、ガイダンス要素、設計固有要素等を
再利用でき、より効率的にスパイラル型のソフトウェア
開発を行うことができる。
【0029】また、本発明のスパイラル型オブジェクト
指向のソフトウェア開発支援システムおよびソフトウェ
ア開発方法は、書式情報記憶装置によって使用するコン
ピュータ言語の書式情報を格納する少なくとも一つの書
式ファイルを記憶している。
【0030】この書式情報記憶装置の書式ファイルをフ
レーム要素ごとに選択可能にすることにより、本発明の
システムおよびソフトウェア開発方法では、フレーム要
素ごとに異なる複数種類のコンピュータ言語によって共
通のソフトウェアを開発することが可能になる。
【0031】
【実施例】次に、本発明の一実施例について図面を参照
して以下に説明する。図1は、本発明によるスパイラル
型オブジェクト指向のソフトウェア開発支援システムの
構成例を示している。
【0032】本実施例のスパイラル型オブジェクト指向
ソフトウェア開発支援システム1は、設計情報エディタ
2a,2b,2cと、設計情報データベース3と、実装
情報データベース4と、書式情報記憶装置5と、ソース
コードジェネレータ6と、設計情報抽出装置7a,7
b,7cと、実装情報抽出装置8a,8bと、設計情報
/実装情報リンク装置9と、管理装置10とを備えてい
る。
【0033】上記設計情報エディタ2a,2b,2c
は、メッセージフロー図、状態遷移図、シーケンスチャ
ート等の設計図を作成および編集するスクリーンエディ
タである。この設計情報エディタ2a,2b,2cによ
って、ソフトウェア開発者は要求仕様に応じてソフトウ
ェアの設計図・仕様書を作成する。
【0034】上記設計情報抽出装置7a,7b,7c
は、上記設計情報エディタ2a,2b,2cで作成され
た設計図等の設計情報を設計情報データベース3のデー
タとして抽出する装置である。この設計情報抽出装置7
a,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において、
スパイラル型ソフトウェア開発は、スタートポイント2
0から開始され、図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)。
この作成作業は、技術者によってソースコードの追加、
変更、削除等が行われることによって達成される。変更
後のソースコード23は、フレーム要素、リーフ要素、
グルー要素等を含み、ソースコードの体裁を整えてい
る。
【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,7
b,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,…,3
3fは、図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に対応するグルー要素3
9を選択し、その表現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 (5)

    【特許請求の範囲】
  1. 【請求項1】ソフトウェアの設計図や仕様書を編集する
    設計情報エディタと、 前記設計図や仕様書に含まれる設計情報を格納する設計
    情報データベースと、 前記設計情報をソースコードに実装するための実装情報
    を格納する実装情報データベースと、 使用するコンピュータ言語に固有の書式情報を格納した
    少なくとも一つの書式ファイルを記憶している書式情報
    記憶装置と、 最新の前記設計情報と前記実装情報の必要部分と前記書
    式情報とを入力してソースコードを生成するソースコー
    ドジェネレータと、 変更されたソースコードの設計情報を前記設計情報デー
    タベースに反映する設計情報抽出装置と、 変更されたソースコードの実装情報を前記実装情報デー
    タベースに反映する実装情報抽出装置と、 前記設計情報データベースと前記実装情報データベース
    との間の対応関係を維持する設計情報/実装情報リンク
    装置と、 システム全体を管理する管理装置とを有することを特徴
    とするスパイラル型オブジェクト指向のソフトウェア開
    発支援システム。
  2. 【請求項2】前記書式ファイルは複数のコンピュータ言
    語に対応する書式情報を有し、使用者の要求に応じて所
    定種類の書式情報を出力するように構成されていること
    を特徴とする請求項1記載のスパイラル型オブジェクト
    指向のソフトウェア開発支援システム。
  3. 【請求項3】前記設計情報/実装情報リンク装置は、設
    計情報と実装情報の共有要素どうしを比較して論理リン
    クを生成することにより、ソースコードと設計図や仕様
    書の要素間の対応関係を維持することを特徴とする請求
    項1記載のスパイラル型オブジェクト指向のソフトウェ
    ア開発支援システム。
  4. 【請求項4】要求仕様に応じてソフトウェアを構成部分
    たるオブジェクトに分割し、それぞれ設計とコーディン
    グと評価と要求仕様の見直しの段階を繰り返しながらソ
    フトウェアを完成していくスパイラル型オブジェクト指
    向のソフトウェア開発方法において、 設計図や仕様書の設計情報を、設計図や仕様書にのみ固
    有な情報である設計固有要素と、オブジェクト指向的観
    点から本質的であるフレーム要素と、前記フレーム要素
    を説明するガイダンス要素とに分類して記憶する設計情
    報データベースと、 前記設計情報をソースコードに実装する実装情報を、フ
    レーム要素と、ガイダンス要素と、フレーム要素の属性
    を示すリーフ要素とに分類して記憶する実装情報データ
    ベースと、 各コンピュータ言語に固有の書式情報たるグルー要素を
    格納する書式ファイルとを用いて、 最初に要求仕様に基づいてソフトウェアの設計図や仕様
    書を作成し、この設計図や仕様書の設計情報を前記設計
    情報データベースに記憶し、それに対応する実装情報を
    前記実装情報データベースに記憶する第1工程と、 前記設計情報データベースと前記実装情報データベース
    から最新のフレーム要素とガイダンス要素とリーフ要素
    を取得するとともに、前記書式ファイルからソースコー
    ドの言語に対応するグルー要素を選択してソースコード
    を生成する第2工程と、 前記ソースコードを修正する第3工程と、 修正後のソースコードを設計図や仕様書に変換するとと
    もに、ソースコード修正段階で変更されたフレーム要
    素、ガイダンス要素およびリーフ要素を前記設計情報デ
    ータベースと実装情報データベースに書き込む第4工程
    と、 前記設計図や仕様書を見直して必要に応じて修正すると
    ともに、設計図/仕様書修正段階で変更されたフレーム
    要素、ガイダンス要素、設計固有要素およびリーフ要素
    を前記設計情報データベースと実装情報データベースに
    書き込む第5工程と、 上記第1工程を完了した後に、上記第2工程ないし第4
    工程を順次繰り返しながらソフトウェアを完成してゆく
    ことを特徴とするスパイラル型オブジェクト指向のソフ
    トウェア開発方法。
  5. 【請求項5】単一のオブジェクト指向のソフトウェア
    で、フレーム要素ごとに前記書式ファイルから対応する
    グルー要素を選択可能にすることにより、フレーム要素
    ごとに異なるコンピュータ言語による表現を許容するこ
    とを特徴とする請求項4に記載のスパイラル型オブジェ
    クト指向ソフトウェア開発方法。
JP27422993A 1993-11-02 1993-11-02 スパイラル型オブジェクト指向ソフトウェアの開発支援システム Expired - Lifetime JP3759630B2 (ja)

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 true JPH07129382A (ja) 1995-05-19
JP3759630B2 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031586A (ja) * 1996-07-15 1998-02-03 Nec Corp プログラム生成装置
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
JP2007079906A (ja) * 2005-09-14 2007-03-29 Hitachi Software Eng Co Ltd ソースコード生成装置
JP2010003104A (ja) * 2008-06-20 2010-01-07 Internatl Business Mach Corp <Ibm> 開発支援装置、方法、およびプログラム
US7721253B2 (en) 2005-03-23 2010-05-18 Ns Solutions Corporation Software development support system
CN113435681A (zh) * 2020-03-23 2021-09-24 佳能株式会社 信息处理设备、信息处理方法、记录介质和产品制造方法
JP2021152862A (ja) * 2020-03-23 2021-09-30 キヤノン株式会社 情報処理装置、情報処理方法、制御プログラム、記録媒体、物品の製造方法
JP2025016142A (ja) * 2023-07-21 2025-01-31 ダイキン工業株式会社 アプリケーション開発システム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031586A (ja) * 1996-07-15 1998-02-03 Nec Corp プログラム生成装置
JPH11224186A (ja) * 1998-02-05 1999-08-17 Nippon Steel Corp ソフトウェア解析装置及びソフトウェア解析方法
US7721253B2 (en) 2005-03-23 2010-05-18 Ns Solutions Corporation Software development support system
JP2007079906A (ja) * 2005-09-14 2007-03-29 Hitachi Software Eng Co Ltd ソースコード生成装置
JP2010003104A (ja) * 2008-06-20 2010-01-07 Internatl Business Mach Corp <Ibm> 開発支援装置、方法、およびプログラム
CN113435681A (zh) * 2020-03-23 2021-09-24 佳能株式会社 信息处理设备、信息处理方法、记录介质和产品制造方法
JP2021152862A (ja) * 2020-03-23 2021-09-30 キヤノン株式会社 情報処理装置、情報処理方法、制御プログラム、記録媒体、物品の製造方法
US12158740B2 (en) 2020-03-23 2024-12-03 Canon Kabushiki Kaisha Information processing device, information processing method, recording medium, and method of manufacturing product
JP2025016142A (ja) * 2023-07-21 2025-01-31 ダイキン工業株式会社 アプリケーション開発システム

Also Published As

Publication number Publication date
JP3759630B2 (ja) 2006-03-29

Similar Documents

Publication Publication Date Title
JP3272014B2 (ja) 階層構造データ処理情報を含むデータ処理辞書を作成する方法及び装置
US6769095B1 (en) Hierarchically structured control information editor
US6560769B1 (en) Computer-implemented method for generating a UML representation from JAVA source code
JPH10320207A (ja) オブジェクト指向アプリケーション開発システムおよび方法
CN113655996B (zh) 一种基于需求模型的企业级系统生成方法
JP3759630B2 (ja) スパイラル型オブジェクト指向ソフトウェアの開発支援システム
JP4724387B2 (ja) プログラム変換プログラム、プログラム変換装置およびプログラム変換方法
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
Atkinson et al. Harmonizing textual and graphical visualizations of domain specific models
US8065606B1 (en) System and method for automating document generation
CN105335161A (zh) 一种从tasm时间抽象状态机到扩展nta自动机的转换方法
Schröpfer et al. A Generic Projectional Editor for EMF Models.
JP2011076561A (ja) パーツカタログ作成支援装置、プログラム、およびパーツカタログ作成支援方法
JP2006202308A (ja) グラフィカルユーザインターフェース方法、グラフィカルユーザインターフェース装置、及び記録媒体
KR100576941B1 (ko) 메타모델에 기반한 모델 변환 지원 시스템
CN116243893A (zh) 一种低代码出码方法
JP3847932B2 (ja) プログラム作成支援装置およびそのプログラム記憶媒体
JP4354719B2 (ja) プログラム開発支援プログラム
Sabraoui et al. Metamodel extension approach applied to the model-driven development of mobile applications
Hammoudi et al. From mapping specification to model transformation in MDA: conceptualization and prototyping
JPH0969041A (ja) ソフトウェア部品の作成支援方法
EP1208426A2 (en) Hierarchically structured control information editor
Hausmann Metamodeling relations-relating metamodels
US7882487B2 (en) Method of generating C code on the basis of UML specifications
Predoaia et al. Graphite: Automated Development of Hybrid Graphical-Textual DSL Editors

Legal Events

Date Code Title Description
A521 Request for written amendment filed

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040310

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040420

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040514

A521 Request for written amendment filed

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