JP2002116911A - オブジェクト指向プログラムの自動生成装置 - Google Patents

オブジェクト指向プログラムの自動生成装置

Info

Publication number
JP2002116911A
JP2002116911A JP2000307213A JP2000307213A JP2002116911A JP 2002116911 A JP2002116911 A JP 2002116911A JP 2000307213 A JP2000307213 A JP 2000307213A JP 2000307213 A JP2000307213 A JP 2000307213A JP 2002116911 A JP2002116911 A JP 2002116911A
Authority
JP
Japan
Prior art keywords
program
diagram
state
generating
dynamic
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
Application number
JP2000307213A
Other languages
English (en)
Inventor
Kenichi Masuko
健一 益子
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.)
REVENET KK
Original Assignee
REVENET KK
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 REVENET KK filed Critical REVENET KK
Priority to JP2000307213A priority Critical patent/JP2002116911A/ja
Publication of JP2002116911A publication Critical patent/JP2002116911A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト指向プログラムをコンピュータ
を利用して自動生成するソフトウエア開発の作業効率を
大幅に向上させる。 【解決手段】本発明に係るオブジェクト指向プログラム
の自動生成装置は、図2の流れに従って動作し、モデル
2から最終製品であるプログラム1を自動生成する。静
的部分のプログラムの生成は、開発対象システムの構造
を表現する図、即ちクラス図等から静的部分の定義を抽
出するステップ(31)を含む。動的部分のプログラム
の生成は、開発対象システムの振る舞いを表現する図、
即ちステートチャート図等から動的部分の定義を抽出す
るステップ(32)と、ステートチャート図等からステ
ートマシンツリーを構築するステップ(33)を含む。
プログラム生成ステップ34では、静的部分のプログラ
ムコードの自動生成と共に動的部分のプログラムコード
の自動生成が行われ、更にこれらのプログラムコードを
結合して最終製品のプログラムコードの完全な自動生成
が行われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、開発対象システム
の設計ドキュメントからオブジェクト指向プログラムを
コンピュータを利用して自動生成するオブジェクト指向
プログラムの自動生成装置に関する。
【0002】
【従来の技術】統一モデリング言語であるUMLは、Ra
tional Software Corp.の商標でもあり、ソフトウエア
システムを仕様化、可視化、文書化する言語である。ま
た、見方を変えれば、UMLはシステムのモデリング
(設計、仕様記述)に用いる手法であって、その実施に
おいては言葉と共に図が用いられている。UMLに用い
られている図(以下UML図と表記する)は、構造を表
現する図と、振る舞いを表現する図に大別される。前記
の構造を表現する図は、クラス図、オブジェクト図、及
び、コンポーネント図を含む。また、前記の振る舞いを
表現する図は、ユース・ケース図、シーケンス図、コラ
ボレーション図、ステートチャート図、及び、アクティ
ビティ図を含む。統一モデリング言語UMLは、ビジネ
スモデリング、要求管理、分析/設計、プログラミン
グ、テストなどの分野で利用されている。
【0003】ところで、コンピュータを用いた従来のオ
ブジェクト指向プログラムの開発においては、Rational
Software Corp.のRational Roseと呼ばれるUMLモデ
リングツールを用いてプログラムコードの自動生成が行
われ、ソフトウエアの生産性向上が図られてきた。しか
しながら、Rational Roseによって実現されるプログラ
ムコードの自動生成は、UML図の中の構造を表現する
図の1つであるクラス図で記述された仕様である。クラ
ス図で記述された仕様は、開発対象のプログラムで動か
されるシステムをモデル化したものの構造を表す部分、
即ち「静的部分」の仕様である。要するに、プログラムの
静的部分のプログラムコードの自動生成は既に実現して
いるのである。
【0004】プログラムの静的部分のプログラムコード
の自動生成が完了すると、開発者は手入力で追加記述を
行い、開発対象の最終製品であるプログラムを完成す
る。前記の追加記述は、開発対象のプログラムで動かさ
れる対象システムをモデル化したものの振る舞いを表す
部分、即ち「動的部分」である。要するに、プログラムの
動的部分のプログラムコードの自動生成は、未だ実現し
ていないのである。上述の開発者が手入力で行う追加記
述という作業は、プログラムの静的部分のプログラムコ
ードの自動生成に比べると、非常に多くの時間と手間を
要する作業である。
【0005】このため、コンピュータを用いた従来のオ
ブジェクト指向プログラムの開発においては、Rational
Software Corp.のRational Roseと呼ばれるUMLモデ
リングツールを用いてプログラムコードの自動生成が行
われていながら、これが適用できるのがプログラムの静
的部分だけであるため、全体としてのソフトウエアの生
産性向上の効果が半減しているという問題がある。
【0006】
【発明が解決しようとする課題】本発明が解決しようと
する課題は、対象システムの設計ドキュメントからオブ
ジェクト指向プログラムをコンピュータを利用して自動
生成するソフトウエア開発の作業効率を大幅に向上させ
ることである。
【0007】
【課題を解決するための手段】上記課題を解決するため
に、UML図の中の振る舞いを表現する図、即ちステー
トチャート図とアクティビティ図を利用した。
【0008】即ち、設計ドキュメントからオブジェクト
指向プログラムをコンピュータを利用して自動生成する
プログラムの自動生成装置を、クラス図等生成手段、静
的部分のプログラムを生成する第1プログラム生成手
段、ステートチャート図等作成手段、ステートマシンツ
リー生成手段、動的部分のプログラムを生成する第2プ
ログラム生成手段、及び、最終製品であるプログラムを
自動生成する第3プログラム生成手段で構成した。
【0009】上記のクラス図等生成手段は、エディタな
どの入力装置によって、対象システムの構造を表現する
図を作成する手段である。
【0010】上記の第1プログラム生成手段は、構造を
表現する図から静的部分のプログラムを生成する手段で
ある。
【0011】上記のステートチャート図等作成手段は、
エディタなどの入力装置によって、対象システムの動的
な振る舞いを表現する図を作成する手段である。
【0012】上記のステートマシン生成手段は、動的な
振る舞いを表現する図からステートマシンツリーを生成
する手段である。
【0013】上記の第2プログラム生成手段は、ステー
トマシンツリーから動的部分のプログラムを生成する手
段である。
【0014】更に、上記の第3プログラム生成手段は、
第1プログラム生成手段で生成された静的部分のプログ
ラムと第2プログラム生成手段で生成された動的部分の
プログラムから最終製品であるプログラムを生成する手
段である。
【0015】そして、動的な振る舞いを表現する図とし
て、UML図の中のステートチャート図とアクティビテ
ィ図のいずれか一方又は両方を用いた。
【0016】
【発明の実施の形態】本発明に係るオブジェクト指向プ
ログラムの自動生成装置は、図1に示す如く、エディタ
などの入力装置によって、開発対象システムの構造を表
現する図を作成するクラス図等生成手段11、前記の構
造を表現する図から静的部分のプログラムを生成する第
1プログラム生成手段12、エディタなどの入力装置に
よって、前記開発対象システムの動的な振る舞いを表現
する図を作成するステートチャート図等作成手段13、
前記の動的な振る舞いを表現する図から、ステートマシ
ンツリーを生成するステートマシンツリー生成手段1
4、前記ステートマシンツリーから動的部分のプログラ
ムを生成する第2プログラム生成手段15、第1プログ
ラム生成手段で生成された静的部分のプログラムと第2
プログラム生成手段で生成された動的部分のプログラム
を結合して製品であるプログラムを自動生成する第3プ
ログラム生成手段16とで構成されている。
【0017】そして、図1の如く構成された本発明に係
るオブジェクト指向プログラムの自動生成装置は、図2
の流れに従って動作し、開発対象システムのモデル2か
ら最終製品であるプログラム1を自動生成する。
【0018】図2において、開発対象システムのモデル
2は、プログラムの定義であり、開発者がUML図の表
記法を使用したエディタを用いて作成するもので、UM
L図のクラス図、コンポーネント図、ステートチャート
図、アクティビティ図、コラボレーション図等が含まれ
る。
【0019】また、図2において、静的部分のプログラ
ムの生成は、クラス図等生成手段11によって作成され
た開発対象システムの構造を表現する図、即ちクラス図
等から静的部分の定義を抽出するステップ(31)を含
む。
【0020】更に図2において、動的部分のプログラム
の生成は、ステートチャート図等作成手段13によって
作成された開発対象システムの振る舞いを表現する図、
即ちステートチャート図等から動的部分の定義を抽出す
るステップ(32)と、ステートチャート図等からステ
ートマシンツリーを構築するステップ(33)を含む。
【0021】前記ステップ32における動的部分の定義
の抽出も前記ステップ33におけるステートマシンツリ
ーの構築も、前記の静的部分の定義を抽出するステップ
(31)で抽出された静的部分の定義に関する情報を得
て行われる。
【0022】プログラム生成のステップ34では、ステ
ップ31で抽出された静的部分の定義のプログラムを生
成すること、ステップ32で抽出された動的部分の定義
のプログラムを生成すること、及び前記静的部分のプロ
グラムと前記動的部分のプログラムを結合して最終製品
のプログラムを生成することが行われる。
【0023】モデルからの静的部分の定義抽出のステッ
プ31においては、従来技術と同様の動作が行われる。
即ち、プログラム内に存在するオブジェクトとそれらの
オブジェクトに属するアトリビュートとオペレーション
を抽出する。
【0024】プログラムを完全に記述するモデルにおい
ては、静的部分の定義の抽出ステップ31で抽出された
オペレーションは動的な定義を持っている。モデルから
の動的部分の定義抽出は、各オペレーションについて動
的定義を抽出する。
【0025】動的部分の定義を抽出するステップ32で
抽出された動的な定義は、ステートマシンと等価な内容
を含んでいる。ステートマシンは、イベントに応じて順
次状態が変化し、その時の状態に応じて処理内容が変化
する状態遷移回路である。UML図の場合、ステートチ
ャート図はステートマシンの直接的な表記法である。ア
クティビティ図はステートチャート図の一種であり、こ
れもステートマシンと等価である。
【0026】ステートマシンツリーの構築ステップ33
では、上記のような表現からステートマシンツリーを構
築する。この処理において、プログラム内の全てのオペ
レーションは実行動作を定義するステートマシンを持つ
ようになる。
【0027】上述の各ステップを経て、プログラム生成
のステップ34では、静的部分に対応する静的プログラ
ム部分が生成されると共に、ステップ33で構築された
ステートマシーンツリーに対応する動的プログラム部分
が生成され、更に、これら静的プログラム部分と動的プ
ログラム部分が結合されて、最終製品としてのプログラ
ム1が生成される。図1の第1プログラム生成手段1
2、第2プログラム生成手段15、及び第3プログラム
生成手段16は、協同してステップ34の動作を行う。
【0028】以下、100以上ものキャラクタと200
近いシナリオが複雑に絡み合いながら進行するマルチ・
シナリオ・アドベンチャーゲームのプログラムを、本発
明に係るオブジェクト指向プログラムの自動生成装置で
生成した一実施例を図2を参照して説明する。
【0029】上記実施例において、ゲームの流れは数千
のステートチャート図のみで定義された。これらの数千
のステートチャート図は、プログラマのサポートの元
に、プログラムの知識の無いシナリオライタ達が、エデ
ィタ等の入力装置を用いて作成した。
【0030】プログラム内に存在するオブジェクトとそ
れらのオブジェクトに属するオペレーションが静的部分
の定義抽出のステップ31で抽出されているので、動的
部分の定義抽出のステップ32では、各オペレーション
に結び付けられているステートチャート図又はアクティ
ビティ図が抽出される。
【0031】図3は、ゲーム内の或るシナリオの一部
を、UML図の動的な振る舞いを表現する図を用いて作
成したステートチャート図であり、エディタにより入力
されて作成され、CRT等の表示装置に表示される。矩
形のブロックはステートを示している。各ステート内の
アクションの記述は、手続き型言語ならなんでもよい。
【0032】ステートマシン構築ステップ33では、図
3の如き動的な振る舞いを表現する図から、図4に示す
如きステートマシンツリーが構築される。
【0033】上述した如く、ステートマシンはイベント
に応じて順次状態が変化し、その時の状態に応じて処理
内容が変化する状態遷移回路である。UML図の場合、
ステートチャート図はステートマシンの直接的な表記法
である。本実施例において、図4のステートチャート図
は、ステートマシンと等価であり、従って本発明に係る
オブジェクト指向プログラムの自動生成装置に利用され
ているコンピュータの内部では、これに対応する回路が
形成されている。
【0034】ステートマシン構築ステップ33では、初
期ステートから処理を始め、遷移を辿りながら各ステー
トに対して以下の処理を行う。終了ステートに辿り着い
た時点で処理は終了する。
【0035】即ち、遷移にアクションがある場合、その
アクションを遷移先ステートの先頭に挿入する。ステー
ト内にアクティビティやアクションが複数ある場合、ア
クティビティ又はアクションを1つだけ含むステートに
分割する。図3のステートチャート図では、「@」と「@
@」で始まる行がアクションである。分割されたステー
トはトリガ、ガード条件、アクションを持たない遷移で
繋がる。1つのステートから2つ以上の遷移がある場
合、それぞれの遷移先について処理を行う。ループがあ
る場合、一度処理したステートは二度と処理しない。各
ステートには、それぞれのステートを一意に識別する識
別子が与えられる。各トリガイベントには、それぞれの
トリガイベントを一意に識別する識別子が与えられる。
【0036】そしてプログラム生成ステップ34では、
ステートマシンツリーを入力としてプログラムを出力す
る。プログラム言語は手続き型言語、即ちC言語やJava
等を使用する。プログラム生成ステップ34では、各遷
移の情報を含むコードが生成される。図3に対応するC
++のコードを図6に示す。
【0037】また、プログラム生成部ステップ34で
は、各ステートの情報を含むコードが生成される。図3
に対応するアセンブラのコードを図7に示す。図7のア
センブラのコードに使われているマクロは、この実施例
に特有なもので、全て固定長の命令に変換される。
【0038】このようにして、本発明に係るオブジェク
ト指向プログラムの自動生成装置は、ゲームを構成する
素材とオペレーションを管理し、それらをゲーム実行中
に操作するスクリプトのエディタを提供し、そのスクリ
プトを実装するプログラムを自動生成する。
【0039】上記のゲームを構成する素材は画像や音声
等であり、また、上記のオペレーションは、或るまとま
った単位のコンピュータで実行される命令の列、プログ
ラムの一部、及びルーチンである。
【0040】上述の一実施例、即ち100以上ものキャ
ラクタと200近いシナリオが複雑に絡み合いながら進
行するマルチ・シナリオ・アドベンチャーゲームのプロ
グラムの開発には、従来はディレクタ、シナリオライ
タ、システムエンジニア、プログラマ、テスタ、及びユ
ーザ検証の担当者が必要であった。これに対して、本発
明に係るオブジェクト指向プログラムの自動生成装置を
用いるプログラムの開発では、システムエンジニアとプ
ログラマの役割が大幅に軽減された。しかも、生成され
るコードは精度が高いため、テストの作業も大幅に削減
された。従って、トータルの開発工数は従来の場合の約
三分の二となり、工数の大幅削減が実現された。
【0041】
【発明の効果】本発明により、コンピュータを用いたオ
ブジェクト指向プログラムの開発において、静的部分の
プログラムコードの自動生成と共に動的部分のプログラ
ムコードの自動生成が行われ、従って最終製品のプログ
ラムの完全な自動生成が可能となった。しかも、UML
図の中の振る舞いを表現する図、即ちステートチャート
図とアクティビティ図を利用しているので、システムエ
ンジニアとプログラマの役割が大幅に軽減され、オブジ
ェクト指向プログラムの開発のトータルの工数を大幅に
削減することができた。
【図面の簡単な説明】
【図1】本発明に係るオブジェクト指向プログラムの自
動生成装置の基本構成を示すブロック図である。
【図2】本発明に係るオブジェクト指向プログラムの自
動生成装置の基本動作を示すブロック図である。
【図3】ステートチャート図の一例である。
【図4】ステートマシンの一例を示す図である。
【図5】ステートマシンツリーの一例を示す図である。
【図6】C++のコードの一例を示す図である
【図7】アセンブラのコードの一例を示す図である。
【符号の説明】
1 プログラム(最終製品) 2 開発対象システムのモデル 3 プログラム自動生成装置 11 ステートチャート図等生成手段 12 ステートマシンツリー生成手段 13 第1プログラム生成手段 14 クラス図等生成手段 15 第2プログラム生成手段 16 第3プログラム生成手段 21 ステートチャート図等 22 クラス図等 31 静的部分の定義の抽出 32 動的部分の定義の抽出 33 ステートマシンツリーの構築 34 プログラム生成

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】設計ドキュメントからオブジェクト指向プ
    ログラムをコンピュータを利用して自動生成するプログ
    ラムの自動生成装置において、下記の手段から構成され
    たことを特徴とするオブジェクト指向プログラムの自動
    生成装置。 (1)エディタなどの入力装置によって、対象システム
    の構造を表現する図を作成するクラス図等生成手段。 (2)前記の構造を表現する図から静的部分のプログラ
    ムを生成する第1プログラム生成手段。 (3)エディタなどの入力装置によって、前記対象シス
    テムの動的な振る舞いを表現する図を作成するステート
    チャート図等作成手段。 (4)前記の動的な振る舞いを表現する図から、ステー
    トマシンツリーを生成するステートマシンツリー生成手
    段。 (5)前記ステートマシンツリーから動的部分のプログ
    ラムを生成する第2プログラム生成手段。 (6)第1プログラム生成手段で生成された静的部分の
    プログラムと第2プログラム生成手段で生成された動的
    部分のプログラムを結合して製品であるプログラムを自
    動生成する第3プログラム生成手段。
  2. 【請求項2】前記の動的な振る舞いを表現する図が、ス
    テートチャート図であることを特徴とする請求項1のオ
    ブジェクト指向プログラムの自動生成装置。
  3. 【請求項3】前記の動的な振る舞いを表現する図が、ア
    クティビティ図であることを特徴とする請求項1のオブ
    ジェクト指向プログラムの自動生成装置。
  4. 【請求項4】前記の動的な振る舞いを表現する図が、ス
    テートチャート図及びアクティビティ図であることを特
    徴とする請求項1のオブジェクト指向プログラムの自動
    生成装置。
JP2000307213A 2000-10-06 2000-10-06 オブジェクト指向プログラムの自動生成装置 Pending JP2002116911A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000307213A JP2002116911A (ja) 2000-10-06 2000-10-06 オブジェクト指向プログラムの自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000307213A JP2002116911A (ja) 2000-10-06 2000-10-06 オブジェクト指向プログラムの自動生成装置

Publications (1)

Publication Number Publication Date
JP2002116911A true JP2002116911A (ja) 2002-04-19

Family

ID=18787762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000307213A Pending JP2002116911A (ja) 2000-10-06 2000-10-06 オブジェクト指向プログラムの自動生成装置

Country Status (1)

Country Link
JP (1) JP2002116911A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005285047A (ja) * 2004-03-31 2005-10-13 Nec Corp メッセージ配信システム、サーバ及びメッセージ配信プログラム
JP2008293186A (ja) * 2007-05-23 2008-12-04 Toshiba Mitsubishi-Electric Industrial System Corp 鉄鋼プラント制御プログラムの自動生成方法およびその装置
CN102117202A (zh) * 2009-12-30 2011-07-06 北大方正集团有限公司 基于j2ee架构的代码生成装置
JP2014153783A (ja) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム
JP2016019717A (ja) * 2014-06-20 2016-02-04 株式会社スクウェア・エニックス ゲームプログラム、ゲーム実行方法、及びゲームシステム
JP2019191786A (ja) * 2018-04-21 2019-10-31 Heroz株式会社 ゲームプログラム生成装置及びゲームプログラム生成プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005285047A (ja) * 2004-03-31 2005-10-13 Nec Corp メッセージ配信システム、サーバ及びメッセージ配信プログラム
JP2008293186A (ja) * 2007-05-23 2008-12-04 Toshiba Mitsubishi-Electric Industrial System Corp 鉄鋼プラント制御プログラムの自動生成方法およびその装置
CN102117202A (zh) * 2009-12-30 2011-07-06 北大方正集团有限公司 基于j2ee架构的代码生成装置
JP2014153783A (ja) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム
JP2016019717A (ja) * 2014-06-20 2016-02-04 株式会社スクウェア・エニックス ゲームプログラム、ゲーム実行方法、及びゲームシステム
JP2019191786A (ja) * 2018-04-21 2019-10-31 Heroz株式会社 ゲームプログラム生成装置及びゲームプログラム生成プログラム

Similar Documents

Publication Publication Date Title
CN110058846B (zh) 一种业务应用软件开发系统和方法
CN107357567B (zh) 一种可视化脚本编辑器的设计系统和方法
US8656352B2 (en) System and method for synchronized workflow management
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
US6305007B1 (en) Object property meta model emulator for legacy data structures
CN110244942B (zh) 一种页面生成方法、装置及系统
US20080209405A1 (en) Distributed debugging for a visual programming language
Engels et al. Testing the consistency of dynamic UML diagrams
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JP2010250378A (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
US20030131339A1 (en) Methods and apparatus for batch program implementation
CN109086038B (zh) 基于Spark的大数据开发方法及装置、终端
CN113010168B (zh) 一种基于场景树的用户界面生成方法
CN108304164B (zh) 一种业务逻辑的开发方法及开发系统
JP2002116911A (ja) オブジェクト指向プログラムの自動生成装置
JP5393941B2 (ja) ゲーム開発装置及びゲーム開発方法
JP2006309290A (ja) テストプログラム作成支援方法及び装置
CN114721647B (zh) 一种基于无代码应用开发的面向对象编程方法
CN115756433A (zh) 代码平台的迁移方法、装置、电子设备及可读存储介质
Lu et al. Toward the Automatic Construction of Task Models from Object-Oriented Diagrams
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
JP2010049439A (ja) ソフトウェアモデルを用いたシステム構築方法およびモデリング装置
CN107918958B (zh) 一种可视化和可定制的三维渲染系统及方法
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
JP2010204840A (ja) ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体