JP2006343867A - Object oriented programming device and information processing method - Google Patents

Object oriented programming device and information processing method Download PDF

Info

Publication number
JP2006343867A
JP2006343867A JP2005167341A JP2005167341A JP2006343867A JP 2006343867 A JP2006343867 A JP 2006343867A JP 2005167341 A JP2005167341 A JP 2005167341A JP 2005167341 A JP2005167341 A JP 2005167341A JP 2006343867 A JP2006343867 A JP 2006343867A
Authority
JP
Japan
Prior art keywords
class
program
model information
classes
integration
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
JP2005167341A
Other languages
Japanese (ja)
Other versions
JP5025098B2 (en
Inventor
Asuka Wada
明日可 和田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005167341A priority Critical patent/JP5025098B2/en
Publication of JP2006343867A publication Critical patent/JP2006343867A/en
Application granted granted Critical
Publication of JP5025098B2 publication Critical patent/JP5025098B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce memory capacity needed by a generated program and improve the execution speed while keeping readability and maintenance property, in an object-oriented programming device. <P>SOLUTION: The object-oriented programming device for executing object-oriented programming based on model information expressing a configuration of software comprises a model information storage part 202 storing the model information; a class integration part 208 integrating integrable classes from the model view information; a class-integrated program automatic generation part 211 generating a program based on the model information in which the classes are integrated in the class integration part 208; and a program display part 208 displaying the program generated in the class-integrated program automatic generation part 211. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、オブジェクト指向分析・設計手法を用いて設計されたソフトウェア図面よりプログラムの自動生成を行うオブジェクト指向プログラミング生成装置に関するものである。   The present invention relates to an object-oriented programming generation apparatus that automatically generates a program from a software drawing designed using an object-oriented analysis / design technique.

近年、ソフトウェア分析設計手法の一つとしてオブジェクト指向分析設計が普及している。ここで、オブジェクト指向分析設計とは、現実世界の実体をオブジェクトとして抽出し、このオブジェクトを単位としてシステムを構成していく開発手法である。   In recent years, object-oriented analysis design has become widespread as one of software analysis design methods. Here, the object-oriented analysis and design is a development technique in which a real-world entity is extracted as an object, and a system is configured with this object as a unit.

オブジェクト指向分析設計の開発手法においては、同種類のオブジェクトを抽象化したものを「クラス」と呼び、抽出されたクラス間の構造を表現するために「クラス図」を記述する。また、クラスはそれぞれ役割を持ち、クラスが保持する内部データを記述するための「属性」や、クラスへの操作を表す「関数」が定義される。   In the development method of object-oriented analysis and design, an abstraction of the same kind of object is called a “class”, and a “class diagram” is described to express the structure between the extracted classes. Each class has a role, and “attributes” for describing internal data held by the class and “functions” representing operations on the class are defined.

さらに、システム全体ではクラス間で処理の依頼を行ない互いに協調し合って1つの大きな処理を実現する。この際の、あるクラスから他のクラスへの処理の依頼を「メッセージ」と呼び、さらにその処理方法の違いにより「同期メッセージ」と「非同期メッセージ」とに大別される。同期メッセージは、通常の関数呼び出しに代表され、呼び出し側が処理の完了を待って次の処理に遷移するメッセージであり、一方、非同期メッセージは、通常「イベント」と称され、呼び出し側が処理の完了を待たずに次の処理を実行するため呼び出し元のオブジェクトと呼び出し先のオブジェクトとで並行処理が実現される。このようにイベントを受け取り、このイベントをトリガとして自らの状態の変化、および特定のアクションを実行するクラスを「能動クラス」と称し、この能動クラスは前記状態の変化や実行するアクションを図示するために「状態図」を保持する。一方、イベントを受け取ることがなく、状態図を持たないクラスを「受動クラス」と称す。   Further, the entire system requests processing between classes and cooperates with each other to realize one large process. In this case, a request for processing from a certain class to another class is called a “message” and is further roughly classified into a “synchronous message” and an “asynchronous message” depending on the processing method. A synchronous message is a message that is typified by a normal function call, and the caller waits for the completion of processing and transitions to the next processing. On the other hand, an asynchronous message is usually called an “event”, and the caller waits for the completion of processing. Since the next process is executed without waiting, parallel processing is realized between the call source object and the call destination object. A class that receives an event in this way and triggers the event to change its own state and executes a specific action is referred to as an “active class”. This active class is used to illustrate the state change and the action to be performed. Holds a “state diagram”. On the other hand, a class that does not receive an event and does not have a state diagram is referred to as a “passive class”.

上記オブジェクト指向分析設計を用いたシステム開発を支援するために、オブジェクト指向設計支援装置が提案されている。オブジェクト指向設計支援装置とは、コンピュータなどの情報処理装置を用いて、オブジェクト指向の開発に用いられるソフトウェア設計図の作成を支援する装置である。また、上記オブジェクト指向設計支援装置においてはUnified Modeling Language(以下UML)と呼ばれる記法によりソフトウェア設計図面を作成する方法が主流となっている。例えば前述のクラス図、状態図もUMLに基づいて記述される。   In order to support system development using the object-oriented analysis design, an object-oriented design support apparatus has been proposed. An object-oriented design support apparatus is an apparatus that supports creation of a software design drawing used for object-oriented development using an information processing apparatus such as a computer. Further, in the object-oriented design support apparatus, a method of creating a software design drawing by a notation called Unified Modeling Language (hereinafter referred to as UML) has become mainstream. For example, the above class diagram and state diagram are also described based on UML.

さらに、上記UMLに基づいて記述されたソフトウェア設計図よりプログラムを自動生成するために、オブジェクト指向プログラミング生成装置が提案されている。オブジェクト指向プログラミング生成装置では、ユーザによって記述されたモデル図面情報と、このモデル図面情報を例えばC、C++、Java(登録商標)などのプログラムに変換する変換ルールとを入力として、動作可能なプログラムを自動生成することを可能としている。   Furthermore, an object-oriented programming generation apparatus has been proposed in order to automatically generate a program from a software design drawing described based on the UML. In the object-oriented programming generation apparatus, an operable program is input by inputting model drawing information described by a user and a conversion rule for converting the model drawing information into a program such as C, C ++, Java (registered trademark), for example. It is possible to generate automatically.

そして、ユーザによって記述されたモデル図面情報から、分析/設計されたソフトウェアの仕様を損なわず、かつ、よりパフォーマンスの高いプログラムを自動生成する手段として、十分実用的な手法が求められている。   A sufficiently practical method is required as a means for automatically generating a program with higher performance without impairing the specifications of the analyzed / designed software from the model drawing information described by the user.

例えば、オブジェクト指向分析設計の主旨に沿って、設計者の理解を高めるためにより詳細なクラス分割を行ったモデル図面情報を元にプログラムを自動生成した場合、生成されるプログラムの実行に必要なメモリサイズが大きくなるという問題が生じる。特に自動生成されるプログラムが機器に組込まれるものである場合には、プログラムが利用できるメモリサイズに制限がある場合が多く、この問題は深刻である。   For example, if a program is automatically generated based on model drawing information that has been divided into more detailed classes in order to enhance the understanding of the designer in accordance with the object of object-oriented analysis and design, the memory required to execute the generated program The problem of increased size arises. In particular, when a program that is automatically generated is incorporated in a device, the memory size that can be used by the program is often limited, and this problem is serious.

また、より詳細なクラス分割を行ったモデル図面情報を元にプログラムを自動生成した場合、その実行速度が遅くなるという別の問題も生じる。この問題についても、特に生成されるプログラムが機器に組込まれるものである場合には、最適な速度の実現とタイミングの制御が製品の仕様に大きく影響することが多く、大きな問題となる。   In addition, when a program is automatically generated based on model drawing information that has been subjected to more detailed class division, another problem arises that the execution speed becomes slow. This problem also becomes a big problem, especially when the generated program is incorporated in the device, and the optimum speed and timing control often greatly affect the product specifications.

このような問題に対しては、本願出願人はクラス図中に分析された複数クラスを統合し、クラス数を少なくすることにより解決することを検討している。   The applicant of the present application is considering solving such a problem by integrating a plurality of classes analyzed in the class diagram and reducing the number of classes.

以下、プログラムの実行に必要なメモリサイズが大きくなる理由は以下のとおりである。通常、モデル図よりプログラムを自動生成する場合、1つのクラスに対し1組のソースコードファイルが生成される。この際、それぞれのソースコードには、プログラム上でクラス定義を実現するためのオーバーヘッドが存在する。   Hereinafter, the reason why the memory size necessary for executing the program is large is as follows. Normally, when a program is automatically generated from a model diagram, a set of source code files is generated for one class. At this time, each source code has an overhead for realizing the class definition on the program.

このメモリサイズに対するオーバーヘッドは、例えば、クラス名の宣言、コンストラクタ・デストラクタ用関数の定義、能動クラスにおける状態遷移テーブルの定義などによって発生する。これらは、生成するプログラム言語の種類やマッピング方法の違いによりその影響の大小は異なるものの、新たなクラスが定義されるたびに必要となり、その結果プログラム実行時に必要となるメモリサイズの増大を引き起こす。   The overhead for the memory size is caused by, for example, the declaration of a class name, the definition of a constructor / destructor function, the definition of a state transition table in an active class, and the like. These effects vary depending on the type of programming language to be generated and the mapping method, but are required each time a new class is defined. As a result, the memory size required for executing the program increases.

ここで、例えば2つのクラスとしてモデル図が記述されている特定の分析部分を1つのクラスとして統合して分析/記述した場合、上記クラス定義を実現するためのオーバーヘッドが1クラス分省略され、その結果自動生成されるプログラム実行時に要するメモリサイズを小さくすることが可能となるわけである。   Here, for example, when a specific analysis part in which model diagrams are described as two classes is integrated / analyzed as one class, the overhead for realizing the above class definition is omitted for one class, As a result, it is possible to reduce the memory size required for executing the automatically generated program.

続いて、実行速度が遅くなる理由として、一般にクラスから他のクラスへ処理を依頼する場合には、クラス内で閉じた処理に比べより多くのオーバーヘッド処理時間を要することがあげられる。   Subsequently, the reason why the execution speed is slow is that, generally, when processing is requested from a class to another class, more overhead processing time is required compared to processing closed within the class.

この処理時間に対するオーバーヘッドは、クラス間の処理の依頼がイベントの送受信によって実現されている系において顕著に発生する。通常、クラス間の並行処理を実現するためにはイベントのキューイング、およびキューイングされたイベントの取り出しなどの処理が発生し、これらの処理の実現には多くの実行時間を必要とする。   This overhead for processing time occurs remarkably in a system in which processing requests between classes are realized by event transmission / reception. Usually, in order to realize parallel processing between classes, processing such as queuing of events and extraction of queued events occurs, and a lot of execution time is required to realize these processings.

ここで、これらのクラス間の処理の依頼をクラス内部の処理として実現できた場合には、上記のオーバーヘッド処理時間が除かれ、より高速に処理を実行することが可能となる。さらにクラス間の処理の依頼がイベントの送受信によって実現されている系については、統合によって相互に送受信していたイベントを同期メッセージ(関数呼び出し)に置き換えることが可能となり、処理時間の大幅な短縮が実現される。   Here, when the processing request between these classes can be realized as processing within the class, the overhead processing time is removed, and the processing can be executed at higher speed. Furthermore, for systems in which requests for processing between classes are realized by sending and receiving events, events that were sent and received by integration can be replaced with synchronous messages (function calls), greatly reducing processing time. Realized.

このように、クラス図中に分析するクラス数を少なくすることにより、自動生成されるプログラムのサイズを小さくする、または実行速度の向上を実現することが可能である。   Thus, by reducing the number of classes to be analyzed in the class diagram, it is possible to reduce the size of the automatically generated program or improve the execution speed.

一方、本願出願人が検討している上記解決策に類似する先行技術として、例えば、特開平09−146766号公報が挙げられる。   On the other hand, as a prior art similar to the above solution studied by the applicant of the present application, for example, Japanese Patent Laid-Open No. 09-146766 is cited.

具体的には、「クラス構造変更方法(特開平09−146766)」では、クラスコード解析情報を利用して既存クラスの構造を変更する方法が提案されている。さらに、当該「プログラム生成装置(特開平09−146766)」では、サイズの小さなプログラムの生成装置を提供する手法が提案されている。
特開平09−146766号公報
Specifically, “Class structure changing method (Japanese Patent Laid-Open No. 09-146766)” proposes a method of changing the structure of an existing class using class code analysis information. Further, in the “program generation device (Japanese Patent Laid-Open No. 09-146766)”, a method for providing a program generation device with a small size has been proposed.
JP 09-146766 A

しかしながら、上記先行技術の場合、複数のクラスの統合に関する手法が提案されてはいるものの、クラス図の等価変換の目的はモデル図面の保守性の向上のみであり、その結果得られるモデル図面より自動生成されるプログラムはパフォーマンスの向上を目的としたものではない。   However, in the case of the above prior art, although a method related to the integration of a plurality of classes has been proposed, the purpose of equivalent conversion of class diagrams is only to improve the maintainability of model drawings. The generated program is not intended to improve performance.

また、上記先行技術の場合、例えば複数のクラスに共通の属性や関数を抽出して上位の抽象クラスを生成するなど、モデル図面の洗練化作業を支援することが目的であり、前記装置同様にその結果得られるモデル図面より自動生成されるプログラムのパフォーマンスについては言及されていない。さらに、同文献の場合、ある特定のクラスの状態遷移情報のみを読み込み、それを縮約化手段により類似する複数の状態を1つの状態に縮約化し、自動生成されるプログラムのサイズを小さくする手法について提案してはいるものの、責務の異なる複数のクラスおよび複数の状態図を統合し、その結果を元にプログラムを自動生成することによりパフォーマンスを向上する手段については言及されていない。   In addition, in the case of the above prior art, for example, the purpose is to support model drawing refinement work, such as by extracting attributes and functions common to a plurality of classes and generating higher-level abstract classes. No mention is made of the performance of the program automatically generated from the resulting model drawing. Furthermore, in the case of the same document, only state transition information of a specific class is read, and the plurality of similar states are reduced to one state by reduction means, thereby reducing the size of the automatically generated program. Although a method is proposed, there is no mention of means for improving performance by integrating a plurality of classes and state diagrams having different responsibilities and automatically generating a program based on the result.

このように、従来のオブジェクト指向プログラミング生成装置では、複数のクラスを統合し、その統合結果を用いてプログラムを自動生成することができず、上記第1及び第2の問題を解決することはできない。   As described above, the conventional object-oriented programming generation apparatus cannot integrate a plurality of classes and automatically generate a program using the integration result, and cannot solve the first and second problems. .

一方、本願出願人が検討する上記解決策の場合、より少ないクラス数でクラス図を記述しようとすると、モデル図面が理解しにくいものとなってしまい、設計図面の可読性および保守性に優れるといったオブジェクト指向分析設計の最大の利点が失われるという問題を内包している。   On the other hand, in the case of the above solution studied by the applicant of the present application, if the class diagram is described with a smaller number of classes, the model drawing becomes difficult to understand, and the design drawing is easy to read and maintain. It contains the problem of losing the greatest advantage of directed analysis design.

本発明はこのような課題に鑑みてなされたものであり、その目的は、ユーザによって入力されたモデル図情報より統合可能な複数のクラスを抜き出し、それらを統合した結果よりプログラムを自動生成することにより、生成されるプログラムが必要とするメモリ容量の減少、および実行速度の向上を実現できるオブジェクト指向プログラミング生成装置を提供することにある。   The present invention has been made in view of such problems, and an object thereof is to extract a plurality of classes that can be integrated from model diagram information input by a user and automatically generate a program from the result of integrating the classes. Thus, an object-oriented programming generation apparatus capable of realizing a reduction in memory capacity required for a generated program and an improvement in execution speed is provided.

また、本発明の他の目的は、ユーザに表示するモデル図に対しては、上記クラス統合結果を反映させない構成とすることにより、モデル図の可読性、保守性を維持し、オブジェクト指向分析設計のメリットを損なわない構成を実現するオブジェクト指向プログラミング生成装置を提供することにある。   Another object of the present invention is to maintain the readability and maintainability of the model diagram by adopting a configuration that does not reflect the above-mentioned class integration result for the model diagram displayed to the user. An object of the present invention is to provide an object-oriented programming generator that realizes a configuration that does not impair the merit.

上記の目的を達成するために本発明に係るオブジェクト指向プログラミング生成装置は以下のような構成を備える。即ち、
ソフトウェアの構造を表現するモデル情報に基づいて、オブジェクト指向プログラミングを実行するオブジェクト指向プログラミング生成装置であって、
前記モデル情報を記憶するモデル情報記憶手段と、
前記モデル情報から統合可能なクラスを統合するクラス統合手段と、
前記クラス統合手段においてクラスが統合された前記モデル情報に基づいてオブジェクト指向によるプログラムを生成するクラス統合後プログラム生成手段と、
前記クラス統合後プログラム生成手段において生成されたプログラムを表示するプログラム表示手段とを備える。
In order to achieve the above object, an object-oriented programming generating apparatus according to the present invention comprises the following arrangement. That is,
An object-oriented programming generator that executes object-oriented programming based on model information that represents the structure of software,
Model information storage means for storing the model information;
Class integrating means for integrating classes that can be integrated from the model information;
Class-integrated program generation means for generating an object-oriented program based on the model information in which classes are integrated in the class integration means;
Program display means for displaying a program generated by the post-class integration program generation means.

本発明によれば、ユーザによって入力されたモデル図情報より統合可能な複数のクラスを抜き出し、それらを統合した結果よりプログラムを自動生成することにより、生成されるプログラムが必要とするメモリ容量の減少、および実行速度の向上を実現できるオブジェクト指向プログラミング生成装置を提供することが可能となる。   According to the present invention, a plurality of classes that can be integrated are extracted from model diagram information input by a user, and a program is automatically generated from the result of integrating them, thereby reducing the memory capacity required for the generated program. In addition, it is possible to provide an object-oriented programming generation apparatus that can improve the execution speed.

また、本発明によれば、ユーザに表示するモデル図に対して、上記クラス統合結果を反映させない構成とすることにより、モデル図の可読性、保守性を維持し、オブジェクト指向分析設計のメリットを損なわない構成を実現するオブジェクト指向プログラミング生成装置を提供することが可能となる。   In addition, according to the present invention, the model diagram displayed to the user does not reflect the above-mentioned class integration result, so that the readability and maintainability of the model diagram are maintained, and the merit of the object-oriented analysis design is impaired. It is possible to provide an object-oriented programming generation device that realizes a configuration that does not exist.

以下、必要に応じて添付図面を参照しながら本発明の実施形態を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings as necessary.

<オブジェクト指向プログラミング生成装置の全体構成>
図1は本実施形態にかかるオブジェクト指向プログラミング生成装置の全体構成を示す図である。図1において、101はCPUであり、以下に説明する103〜110の装置を102で示すバスを介してアクセスし制御を行う。103はバス102を介してCPU101からアクセス可能な読み出し専用メモリ(ROM)であり、本実施形態ではその動作を詳細に説明する処理プログラム103a及び処理プログラム103aにより使用されるパラメータ103bが格納されている。
<Overall configuration of object-oriented programming generator>
FIG. 1 is a diagram showing an overall configuration of an object-oriented programming generating apparatus according to the present embodiment. In FIG. 1, reference numeral 101 denotes a CPU which accesses and controls devices 103 to 110 described below via a bus denoted by 102. Reference numeral 103 denotes a read-only memory (ROM) that can be accessed from the CPU 101 via the bus 102. In this embodiment, a processing program 103a for explaining the operation in detail and a parameter 103b used by the processing program 103a are stored. .

104は読み書き可能なメモリ(RAM)であり、RAM104上には、上記処理プログラム103aにより作成/変更がなされるモデル情報、クラス統合結果情報、生成プログラムをそれぞれ格納するための領域(順に104a、104b、104c)が確保されている。   Reference numeral 104 denotes a readable / writable memory (RAM). On the RAM 104, areas for storing model information created / changed by the processing program 103a, class integration result information, and a generation program (in order 104a and 104b). 104c) is secured.

105は入力インターフェイスであり、106で示したキーボード、ボタン、マウス、ダイアル等の入力装置を介してなされる入力を受け取る。107は出力インターフェイスであり、108で示したCRT、LCD等の表示媒体108a、更にはプリンタ、プロッタ等の出力装置108bに対し、データの表示/出力を行う。また、109は外部記憶装置インターフェイスであり、110で示したHD、FD、CD−ROM、MD、CF等の外部記憶装置に対するデータの入出力を行うものである。   An input interface 105 receives an input made via an input device such as a keyboard, a button, a mouse, and a dial indicated by 106. Reference numeral 107 denotes an output interface, which displays / outputs data to the display medium 108a such as a CRT or LCD shown at 108, and to an output device 108b such as a printer or plotter. Reference numeral 109 denotes an external storage device interface for inputting / outputting data to / from an external storage device such as HD, FD, CD-ROM, MD, and CF shown at 110.

<オブジェクト指向プログラミング生成装置の機能構成>
図2は本実施形態にかかるオブジェクト指向プログラミング生成装置の機能構成を示すブロック図である。同図において、201はユーザがクラス図、状態図などのモデル情報を入力するモデル図入力部であり、入力インタフェース105および入力装置106により実現される。
<Functional configuration of object-oriented programming generator>
FIG. 2 is a block diagram showing a functional configuration of the object-oriented programming generating apparatus according to the present embodiment. In the figure, reference numeral 201 denotes a model diagram input unit through which a user inputs model information such as a class diagram and a state diagram, and is realized by the input interface 105 and the input device 106.

202はモデル図入力部201によって入力されたモデル図情報をオブジェクト指向プログラミング生成装置上に記憶するモデル情報格納部であり、格納されるモデル情報はバス102を介しRAM104に記憶される。   A model information storage unit 202 stores the model diagram information input by the model diagram input unit 201 on the object-oriented programming generation apparatus. The stored model information is stored in the RAM 104 via the bus 102.

203はモデル情報格納部202によって記憶されたモデル情報に基づいて、ユーザに対しモデル図を表示するモデル図表示部であり、出力インタフェース107および表示媒体・出力装置108により実現される。   A model diagram display unit 203 displays a model diagram for the user based on the model information stored in the model information storage unit 202, and is realized by the output interface 107 and the display medium / output device.

204はモデル情報格納部202に記憶されているモデル情報と、モデル情報をC、C++、Java(登録商標)などといったプログラム言語に変換するための変換ルールとを入力として、動作可能なプログラムを自動生成するプログラム自動生成部であり、この処理プログラム(103a)はROM103に格納され、バス102を介して利用される。   Reference numeral 204 denotes an input of model information stored in the model information storage unit 202 and a conversion rule for converting the model information into a program language such as C, C ++, Java (registered trademark), etc. This is a program automatic generation unit to be generated. This processing program (103 a) is stored in the ROM 103 and used via the bus 102.

205はプログラム自動生成部204もしくは後述のクラス統合後プログラム自動生成部211によって生成された生成プログラムをオブジェクト指向プログラミング生成装置上に記憶するプログラム格納部であり、格納される生成プログラムはバス102を介しRAM104に記憶される。   Reference numeral 205 denotes a program storage unit that stores a generation program generated by the automatic program generation unit 204 or the automatic program generation unit 211 after class integration described later on the object-oriented programming generation apparatus. The generated generation program is stored via the bus 102. Stored in the RAM 104.

206はプログラム格納部205を介して記憶された生成プログラム104cを表示するプログラム表示部であり、出力インタフェース107および表示媒体・出力装置108により実現される。   A program display unit 206 displays the generated program 104 c stored via the program storage unit 205, and is realized by the output interface 107 and the display medium / output device 108.

207はモデル情報格納部202により記憶されたモデル情報より、統合可能なクラスを自動的に選択する統合クラス選択部であり、この処理プログラム(103a)はROM103に格納され、バス102を介して利用される。   Reference numeral 207 denotes an integrated class selection unit that automatically selects a class that can be integrated from model information stored in the model information storage unit 202. This processing program (103a) is stored in the ROM 103 and used via the bus 102. Is done.

208は統合クラス選択部207によって選択されたクラスの情報と、モデル情報格納部202により記憶されているユーザが入力したモデル情報とに基づいて、選択された複数のクラスを1つのクラスに統合するクラス統合部であり、この処理プログラム(103a)はROM103に格納され、バス102を介して利用される。   208 integrates a plurality of selected classes into one class based on the class information selected by the integrated class selection unit 207 and the model information input by the user stored in the model information storage unit 202. This is a class integration unit, and this processing program (103 a) is stored in the ROM 103 and used via the bus 102.

209は特にクラス統合部208によって統合される2つのクラスが共に能動クラスだった場合に、それぞれが持つ状態図の情報をマージして1つの状態図を新たに生成する状態図統合部であり、この処理プログラム(103a)はROM103に格納され、バス102を介して利用される。   209 is a state diagram integration unit that newly generates one state diagram by merging the state diagram information of each when two classes integrated by the class integration unit 208 are both active classes. This processing program (103 a) is stored in the ROM 103 and used via the bus 102.

210はクラス統合部208によって統合された結果を記憶するクラス統合結果格納部であり、格納されるクラス統合結果情報はバス102を介しRAM104に記憶される。   A class integration result storage unit 210 stores the result integrated by the class integration unit 208, and the stored class integration result information is stored in the RAM 104 via the bus 102.

211はクラス統合結果格納部210に記憶されているクラス統合結果情報と、モデル情報をC、C++、Java(登録商標)などといったプログラム言語に変換するための変換ルールとを入力として、動作可能なプログラムを自動生成するクラス統合後プログラム自動生成部であり、この処理プログラム(103a)はROM103に格納され、バス102を介して利用される。   211 is operable by inputting class integration result information stored in the class integration result storage unit 210 and conversion rules for converting model information into a program language such as C, C ++, Java (registered trademark), and the like. This is a post-class integration program automatic generation unit that automatically generates a program. This processing program (103a) is stored in the ROM 103 and used via the bus.

212はユーザによって入力されたモデル情報を元にプログラムを自動生成するプログラム自動生成部204と、クラス統合結果情報を元にプログラムを自動生成するクラス統合後プログラム自動生成部211とを、ユーザが任意に選択することを可能とするプログラム自動生成方法選択部であり、入力インタフェース105および入力装置106により実現される。   Reference numeral 212 denotes a program automatic generation unit 204 that automatically generates a program based on model information input by the user, and a post-class integration program automatic generation unit 211 that automatically generates a program based on class integration result information. This is an automatic program generation method selection unit that can be selected by the input interface 105 and the input device 106.

このように構成されたオブジェクト指向プログラミング生成装置において、ユーザがモデル図入力部201を介して入力したモデル情報は、モデル情報格納部202に記憶される。そして、当該モデル情報は、まず統合クラス選択部207によって複数のクラスが選択され、選択された複数のクラスは、クラス統合部208および状態図統合部209により統合される。   In the object-oriented programming generating apparatus configured as described above, model information input by the user via the model diagram input unit 201 is stored in the model information storage unit 202. In the model information, first, a plurality of classes are selected by the integrated class selection unit 207, and the selected plurality of classes are integrated by the class integration unit 208 and the state diagram integration unit 209.

統合された結果(クラス統合結果情報)はクラス統合結果格納部210に格納され、さらにその情報を元にクラス統合後プログラム自動生成部211がパフォーマンスに優れるプログラムを自動生成する。自動生成されたプログラムはプログラム格納部205に記憶され、またプログラム表示部206に表示される。   The integrated result (class integration result information) is stored in the class integration result storage unit 210, and based on the information, the post-class integration post-program automatic generation unit 211 automatically generates a program with excellent performance. The automatically generated program is stored in the program storage unit 205 and displayed on the program display unit 206.

さらに、モデル図表示部203に表示されるモデル図は、常にモデル情報格納部202に格納されているユーザによって入力されたモデル情報を元にしている。このため、換言すればクラス統合結果格納部210に格納されたクラス統合後のモデル情報は、本オブジェクト指向プログラミング生成装置内でのみ記憶され、上記モデル図表示部203に表示されるモデル図には反映されない構成となっている。この結果、モデル図の可読性、保守性を維持しつつ、オブジェクト指向分析設計のメリットを享受することが可能となっている。   Further, the model diagram displayed on the model diagram display unit 203 is always based on the model information input by the user stored in the model information storage unit 202. For this reason, in other words, the model information after class integration stored in the class integration result storage unit 210 is stored only in the object-oriented programming generation apparatus, and the model diagram displayed on the model diagram display unit 203 includes The configuration is not reflected. As a result, it is possible to enjoy the merits of object-oriented analysis and design while maintaining the readability and maintainability of the model diagram.

<クラス図の統合例>
図14は、クラス図の統合例を示す図である。図中、1401および1402はそれぞれモデル図入力部201によりユーザが入力したモデル情報のうち、統合クラス選択部207により統合可能と判定された1対のクラス、1403および1404はクラス統合部208および状態図統合部209により統合されたクラスである。
<Example of class diagram integration>
FIG. 14 is a diagram illustrating an example of integration of class diagrams. In the figure, 1401 and 1402 are a pair of classes determined to be integrated by the integrated class selection unit 207 among the model information input by the user through the model diagram input unit 201, 1403 and 1404 are the class integration unit 208 and the state The classes are integrated by the figure integration unit 209.

例えば1401に示すClassBおよびClassCが統合された場合、統合後に新たに生成されるクラス1403は、統合前のクラスの名前を連結したクラス名(ClassBClassC)を持ち、定義される属性、および関数は、統合前の2つのクラスの定義をマージしたものとなる。   For example, when Class B and Class C shown in 1401 are integrated, a class 1403 newly generated after integration has a class name (Class B Class C) obtained by concatenating the names of the classes before integration, and the attributes and functions defined are It is the merged definition of two classes before integration.

1402に示すClassDおよびClassFが統合された場合に関しても同様に統合されたクラス1404が生成される。   In the case where Class D and Class F shown in 1402 are integrated, an integrated class 1404 is similarly generated.

<オブジェクト指向プログラミング生成のための手順>
図3は、本実施形態にかかるオブジェクト指向プログラミング装置におけるプログラム生成のための手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
<Procedure for generating object-oriented programming>
FIG. 3 is a flowchart showing a procedure for generating a program in the object-oriented programming apparatus according to the present embodiment. Hereinafter, it demonstrates along this flowchart.

ステップS301においてユーザがモデル図入力部201を介してモデル情報を入力すると、ステップS302において、モデル情報格納部202は、当該入力されたモデル情報をオブジェクト指向プログラミング生成装置上に記憶する。   When the user inputs model information via the model diagram input unit 201 in step S301, the model information storage unit 202 stores the input model information on the object-oriented programming generation device in step S302.

ステップS303では、モデル情報の入力が終了したかをユーザからの入力により判断する。具体的には、ユーザの直前の入力がプログラムの自動生成開始命令であるなど、モデル情報の入力終了を表す入力に相当した場合、モデル情報の入力が終了したと判断する。ステップS303においてモデル情報の入力が終了したと判断した場合には、ステップS304に進む。一方、入力が終了していないと判断した場合にはステップS301に戻る。   In step S303, it is determined by the input from the user whether the input of the model information has been completed. Specifically, if the input immediately before the user corresponds to an input indicating the end of the input of model information, such as an automatic program generation start command, it is determined that the input of the model information has ended. If it is determined in step S303 that the input of model information has been completed, the process proceeds to step S304. On the other hand, if it is determined that the input has not ended, the process returns to step S301.

ステップS304では、ステップS302において格納されたモデル情報に基づいて、統合クラス選択部207が統合可能なクラスの選択を行い、さらに選択されたクラスに対しクラス統合部208および状態図統合部209がクラスの統合を実行する。   In step S304, based on the model information stored in step S302, the integrated class selection unit 207 selects a class that can be integrated, and the class integration unit 208 and the state diagram integration unit 209 perform class selection on the selected class. Perform the integration.

ステップS305では、ステップS304において生成されたクラス統合結果情報に基づいて、プログラム自動生成部204がプログラムの自動生成を行う。   In step S305, the program automatic generation unit 204 automatically generates a program based on the class integration result information generated in step S304.

ステップS306では、ステップS305において自動生成されたプログラムを、プログラム表示部206が出力装置に表示する。   In step S306, the program display unit 206 displays the program automatically generated in step S305 on the output device.

以上の処理によって、ユーザにより入力されたモデル情報を元にクラスを統合し、その統合結果を用いてパフォーマンスに優れたプログラムの自動生成が実現される。   Through the above processing, classes are integrated based on the model information input by the user, and automatic generation of a program with excellent performance is realized using the integration result.

<統合可能なクラスの選択と統合処理(ステップS304)>
図4はステップS304における、統合可能なクラスの選択と統合処理の詳細アルゴリズムを示すフローチャートである。
<Selectable Class and Integration Processing (Step S304)>
FIG. 4 is a flowchart showing a detailed algorithm for selecting and integrating classes that can be integrated in step S304.

ステップS401では、以降のステップS402〜ステップS404までの処理をモデル情報格納部202に記憶されているモデル情報に格納されている関連情報の数だけ繰り返す。   In step S401, the subsequent processing from step S402 to step S404 is repeated by the number of related information stored in the model information stored in the model information storage unit 202.

ステップS402では、モデル情報格納部202に記憶されているモデル情報を用いて、統合クラス選択部207が、現在選択されているクラスが統合可能であるかを判定する。ここで、もし選択されているクラスが統合可能であると判定された場合には、ステップS403に進み、統合可能でないと判定された場合にはステップS405に進み、再度ステップS401からの処理が繰り返される。   In step S402, using the model information stored in the model information storage unit 202, the integrated class selecting unit 207 determines whether the currently selected class can be integrated. Here, if it is determined that the selected class can be integrated, the process proceeds to step S403. If it is determined that the selected class cannot be integrated, the process proceeds to step S405, and the processing from step S401 is repeated again. It is.

ステップS403では、ステップS402において統合可能であると判定されたクラスに対し、クラス統合部208および状態図統合部209がクラスの統合を行う。ステップS404では、クラス統合結果格納部210が、ステップS403において統合されたモデル情報の結果(クラス統合結果情報)を格納する。   In step S403, the class integration unit 208 and the state diagram integration unit 209 perform class integration for the classes determined to be integrated in step S402. In step S404, the class integration result storage unit 210 stores the result of the model information integrated in step S403 (class integration result information).

以上の処理によって、ユーザにより入力されたモデル情報より、統合可能なクラスが選択され、さらに選択されたクラスに対し実際の統合処理が行われる。これらの処理によって生成・記憶されたクラス統合結果情報については、パフォーマンスに優れたプログラムの自動生成に用いられる。   Through the above processing, a class that can be integrated is selected from the model information input by the user, and an actual integration process is performed on the selected class. The class integration result information generated and stored by these processes is used for automatic generation of a program with excellent performance.

以上の説明から明らかなように、本実施形態にかかるオブジェクト指向プログラミング生成装置によれば、モデル情報から統合可能な複数のクラスを選択する統合クラス選択部と、統合クラス選択部によって選択された複数のクラスを1つのクラスに統合するクラス統合部と、クラス統合部によって生成されたクラス統合結果情報に基づいてプログラムを自動生成するクラス統合後プログラム自動生成部とを有することにより、従来のオブジェクト指向プログラミング生成装置に比べ、必要とするメモリ容量を抑え、かつ実行速度に優れたプログラムを自動生成することが可能となる。   As is clear from the above description, according to the object-oriented programming generating apparatus according to the present embodiment, the integrated class selecting unit that selects a plurality of classes that can be integrated from the model information, and the plurality selected by the integrated class selecting unit A class integration unit that integrates the classes into one class, and an automatic program generation unit after class integration that automatically generates a program based on the class integration result information generated by the class integration unit. Compared to a programming generation device, it is possible to automatically generate a program with a reduced memory capacity and excellent execution speed.

さらに、ユーザに表示するモデル図については、上記クラス統合結果情報を反映させない構成とすることにより、モデル図の可読性、保守性を維持し、オブジェクト指向分析設計のメリットを享受することが可能となる。   Furthermore, the model diagram displayed to the user is configured not to reflect the above class integration result information, so that the readability and maintainability of the model diagram can be maintained and the merit of object-oriented analysis design can be enjoyed. .

本実施形態では、統合クラス選択部207におけるクラス統合可否の判定方法として、各クラスの多重度に応じて、クラス統合可否の判定を行う。多重度は、二つのクラス(から作られたオブジェクト)が、何対何の関係かを表すものである。   In the present embodiment, as a method for determining whether or not class integration is possible in the integrated class selection unit 207, whether or not class integration is possible is performed according to the multiplicity of each class. Multiplicity represents how many two classes (objects created from them) are related.

<モデル情報の一例>
図5は、本実施形態にかかるオブジェクト指向プログラミング生成装置のモデル情報格納部202により記憶されるモデル情報のうち、特にクラス間の関連情報の保持例を示したものである。また、この関連情報例は、図14に示したユーザが入力したモデル情報に対応している。
<Example of model information>
FIG. 5 shows a holding example of particularly related information between classes among the model information stored by the model information storage unit 202 of the object-oriented programming generating apparatus according to the present embodiment. This related information example corresponds to the model information input by the user shown in FIG.

図5において、501および503はお互いに関連するクラスの対を示しており、また502および504は該当する関連の501側のクラスの多重度、および503側のクラスの多重度を示している。   In FIG. 5, 501 and 503 indicate pairs of classes related to each other, and 502 and 504 indicate the multiplicity of the corresponding class on the 501 side and the multiplicity of the class on the 503 side.

<クラス統合可否の判定処理>
図6は、本実施形態にかかるオブジェクト指向プログラミング生成装置におけるクラス統合可否判定処理の詳細な処理の流れを示すフローチャートであり、これは図4のステップS402に対応している。以下では、このフローチャートに沿って図5のモデル情報を例に説明する。
<Class integration decision process>
FIG. 6 is a flowchart showing a detailed process flow of the class integration availability determination process in the object-oriented programming generating apparatus according to the present embodiment, which corresponds to step S402 in FIG. Hereinafter, the model information of FIG. 5 will be described as an example along the flowchart.

ステップS601では、既に繰り返し処理(ステップS401)により選択されている対象行を参照し、“クラス1”及び“クラス2”列に記載のクラスを判定対象のクラスとして登録する。図5の例では、例えば505に示される行が選択されている対象行の場合には、ClassAおよびClassBが判定の対象クラスとして登録される。   In step S601, the target row already selected by the iterative process (step S401) is referred to, and the classes described in the “class 1” and “class 2” columns are registered as classes to be determined. In the example of FIG. 5, for example, in the case where the row indicated by 505 is a target row, Class A and Class B are registered as target classes for determination.

ステップS602では、上記と同じ対象行を参照し、“多重度1”が1であるかどうかを判定する。ここで、もし“多重度1”が1であると判定された場合には、ステップS603に進む。一方、“多重度1”が1でないと判定された場合にはステップS606に進み、統合不可能と判定される。図5の例では、505に示される行の“多重度1”は*であるため、この時点でClassAとClassBの統合は不可能と判定される。   In step S602, it is determined whether “multiplicity 1” is 1 by referring to the same target row as described above. If it is determined that “Multiplicity 1” is 1, the process proceeds to step S603. On the other hand, if it is determined that “Multiplicity 1” is not 1, the process proceeds to step S606, where it is determined that integration is not possible. In the example of FIG. 5, “Multiplicity 1” of the row indicated by 505 is *, and it is determined that Class A and Class B cannot be integrated at this time.

ステップS603では、上記と同じ対象行を参照し、“多重度2”が1であるかどうかを判定する。ここで、もし“多重度2”が1であると判定された場合にはステップS604に進み統合可能と判定され、“多重度2”が1でないと判定された場合には、ステップS606に進み、統合不可能と判定される。   In step S603, it is determined whether “multiplicity 2” is 1 by referring to the same target row as described above. If it is determined that “Multiplicity 2” is 1, the process proceeds to step S604, where it is determined that integration is possible. If it is determined that “Multiplicity 2” is not 1, the process proceeds to step S606. It is determined that integration is impossible.

ステップS604では、統合可能と判定されたクラスの情報を保持したまま、ステップS605に示すEXIT処理により本判定処理を抜け、以降クラスの統合処理(ステップS403)に戻り処理が続行される。   In step S604, this class determination process is exited by the EXIT process shown in step S605 while retaining the information of the class determined to be integrable, and the process returns to the class integration process (step S403).

ステップS606では、統合不可能であるという判定結果を元に、ステップS607に示すEXIT処理により本判定処理を抜け、以降ステップS405に戻り繰り返し処理が続行される。   In step S606, based on the determination result that the integration is impossible, the EXIT process shown in step S607 is used to exit this determination process, and then the process returns to step S405 to continue the repetition process.

以上の処理によって、ユーザにより入力されたモデル情報の中から、特にクラス間の関連情報とその多重度の情報に基づいて判定された統合可能な2つのクラスが自動的に選択される。   Through the above processing, two classes that can be integrated are automatically selected from the model information input by the user, particularly determined based on the related information between classes and the information on the multiplicity thereof.

このように、本実施形態にかかるオブジェクト指向プログラミング生成装置によれば、クラス間の関連情報とその多重度の情報とを記憶するモデル情報格納部および統合クラス選択部を有することにより、統合可能な複数のクラスを自動的に抽出することが可能となる。   As described above, according to the object-oriented programming generating apparatus according to the present embodiment, integration is possible by including the model information storage unit and the integrated class selection unit that store the related information between classes and the information on the multiplicity thereof. Multiple classes can be automatically extracted.

本実施形態では、クラス統合部208におけるクラスの統合方法として、各クラスが能動クラスであるか否かにより、処理を切り替えている。   In the present embodiment, as a class integration method in the class integration unit 208, processing is switched depending on whether or not each class is an active class.

<モデル情報の一例>
図7は、本実施形態にかかるオブジェクト指向プログラミング生成装置のモデル情報格納部202により記憶されるモデル情報のうち、特にクラスのクラス種別情報の保持例を示したものである。また、このクラス種別情報例は、図14に示したユーザが入力したモデル情報に対応している。
<Example of model information>
FIG. 7 shows an example of holding class type information of classes among model information stored by the model information storage unit 202 of the object-oriented programming generating apparatus according to the present embodiment. This class type information example corresponds to the model information input by the user shown in FIG.

図7において、701はモデル図に記述されたクラス名、702は、それぞれのクラスのクラス種別を示す。ここで、クラス種別702については、該当クラスが状態図を持つか否かの違いにより、イベントを受け取り、このイベントをトリガとして自らの状態の変化、および特定のアクションを実行する、状態図を持つ能動クラスと、イベントを受け取ることがなく、状態図を持たない受動クラスとに分けられる。   In FIG. 7, reference numeral 701 denotes a class name described in the model diagram, and reference numeral 702 denotes a class type of each class. Here, the class type 702 has a state diagram in which an event is received depending on whether or not the corresponding class has a state diagram, and a change of its own state and a specific action are executed using this event as a trigger. It is divided into an active class and a passive class that does not receive an event and does not have a state diagram.

<クラスの統合処理>
図8は、本実施形態にかかるオブジェクト指向プログラミング生成装置におけるクラスの統合処理の詳細な処理の流れを示すフローチャートであり、これは図4のステップS403に対応している。以下では、このフローチャートに沿って図7のモデル情報を例に説明する。
<Class integration processing>
FIG. 8 is a flowchart showing a detailed processing flow of the class integration processing in the object-oriented programming generating apparatus according to the present embodiment, which corresponds to step S403 in FIG. Hereinafter, the model information of FIG. 7 will be described as an example along the flowchart.

ステップS801では、既にステップS402により統合可能と判定されている2つのクラスのうち、どちらか一方を選択し、対象クラスとする。   In step S801, either one of the two classes already determined to be integrable in step S402 is selected as a target class.

ステップS802では、モデル情報格納部202に記憶されているクラス種別情報を元に、対象としているクラスが能動クラスであるかどうかを判定する。ここで、もし対象クラスが能動クラスであると判定された場合には、ステップS803に進む。一方、能動クラスではないと判定された場合にはステップS806に進む。   In step S802, based on the class type information stored in the model information storage unit 202, it is determined whether or not the target class is an active class. If it is determined that the target class is an active class, the process proceeds to step S803. On the other hand, if it is determined that the class is not an active class, the process proceeds to step S806.

ステップS803では、既にステップS402により統合可能と判定されている2つのクラスのうち、ステップS801により選択されなかったクラスを選択し、対象クラスとする。   In step S803, a class that has not been selected in step S801 is selected from the two classes that have already been determined to be integrated in step S402, and set as a target class.

ステップS804では、ステップS802の処理と同様の手段を用いて、対象としているクラスが能動クラスであるかどうかを判定する。ここで、もし対象クラスが能動クラスと判定された場合にはステップS805に進み、能動クラスではないと判定された場合にはステップS806に進む。図7の例では、例えばステップS402により統合可能と判定されている2つのクラスがClassBおよびClassCであった場合、ステップS802およびステップS804の判定でそれぞれ能動クラスと判定されるため、ステップS805に進む。   In step S804, it is determined whether the target class is an active class using the same means as in the process of step S802. If it is determined that the target class is an active class, the process proceeds to step S805. If it is determined that the target class is not an active class, the process proceeds to step S806. In the example of FIG. 7, for example, when the two classes determined to be integratable in Step S402 are Class B and Class C, the determination in Step S802 and Step S804 is determined as the active class, and thus the process proceeds to Step S805. .

ステップS805では、統合の対象となっている2つのクラスが持つ状態図を、状態図統合部209を用いて統合する。ステップS806では、統合の対象となっている2つのクラスのクラス定義を、クラス統合部208を用いて統合する。   In step S805, the state diagrams possessed by the two classes to be integrated are integrated using the state diagram integration unit 209. In step S <b> 806, the class definitions of the two classes to be integrated are integrated using the class integration unit 208.

以上の処理を実行することにより、能動クラス同士の統合を含めたクラスの統合処理が実現される。   By executing the above processing, class integration processing including integration of active classes is realized.

<状態図の統合処理の説明>
図9は、本実施形態における状態図の統合処理の実施形態を示している。図9において、901はユーザによって入力された状態図例であり、図14に示したユーザが入力したクラス図の中のClassBが持つ状態図に相当する。同様に902は、図14に示したユーザが入力したクラス図の中のClassCが持つ状態図に相当する。
<Description of state diagram integration processing>
FIG. 9 shows an embodiment of state diagram integration processing in this embodiment. In FIG. 9, reference numeral 901 denotes an example of a state diagram input by the user, which corresponds to the state diagram of Class B in the class diagram input by the user shown in FIG. Similarly, 902 corresponds to the state diagram possessed by Class C in the class diagram input by the user shown in FIG.

903および904は、モデル情報格納部202により記憶されるモデル情報のうち、特に状態図情報の保持例を示したものである。ここで、903はClassBが持つ状態図情報、904はClassCが持つ状態図情報を表している。   Reference numerals 903 and 904 denote an example of holding state diagram information among model information stored by the model information storage unit 202. Here, 903 represents state diagram information possessed by Class B, and 904 represents state diagram information possessed by Class C.

この例では、表中の列項目に状態図中で受け取ることのできるイベントが、行項目に取り得る全ての状態がそれぞれ記述され、各セルには、それぞれの状態でそれぞれのイベントを受け取った際の処理(アクション)と遷移先の状態とが記述されている。この状態図情報の保持方法は、状態遷移表とも呼ばれ、これは一般的に良く知られている状態図情報の保持方法である。   In this example, the column items in the table describe the events that can be received in the state diagram and all the states that can be taken in the row items. Each cell receives each event in each state. The process (action) and the transition destination state are described. This state diagram information holding method is also called a state transition table, which is a generally well-known state diagram information holding method.

905は、ClassBの状態図情報903およびClassCの状態図情報904が状態図統合部209により統合され、クラス統合結果格納部210に記憶される統合後の状態図情報の例を示したものである。   905 shows an example of state diagram information after integration in which the state diagram information 903 of Class B and the state diagram information 904 of Class C are integrated by the state diagram integration unit 209 and stored in the class integration result storage unit 210. .

906は、統合後の状態図情報905より実際に統合後の状態図を記述した例である。ただし、実際にはこの統合後の状態図906がモデル図表示部203に表示されることはなく、統合後の状態図情報905は、クラス統合後プログラム自動生成部211によりプログラムを自動生成するための情報としてのみ利用される。   Reference numeral 906 denotes an example in which the state diagram after integration is actually described from the state diagram information 905 after integration. However, the state diagram 906 after the integration is not actually displayed on the model diagram display unit 203, and the state diagram information 905 after the integration is automatically generated by the program automatic generation unit 211 after class integration. It is used only as information.

<状態図の統合処理の流れ>
図10は、状態図の統合処理(ステップS805)の詳細な実現手順を示すフローチャートである。以下では、このフローチャートに沿って図9を例に状態図の統合処理を説明する。
<Flow of state diagram integration processing>
FIG. 10 is a flowchart showing a detailed procedure for realizing the state diagram integration processing (step S805). Hereinafter, the state diagram integration processing will be described with reference to FIG.

ステップS1001では、モデル情報格納部202に記憶されている統合する2つの状態図情報を表A、表Bとし、これに登録されている全てのイベントを抜き出し、これを統合後の状態図情報(新たに表Cとする)のイベント列αとし、この表Cをクラス統合結果格納部210に格納する。図9の例では、ここで(eventB1、eventB2、eventC1)を要素としたイベント列αが生成され、新たに表Cとして格納される。   In step S1001, two state diagram information to be integrated stored in the model information storage unit 202 is set as Table A and Table B, all events registered in this are extracted, and this is integrated into the state diagram information ( The event sequence α is newly set as Table C), and this Table C is stored in the class integration result storage unit 210. In the example of FIG. 9, an event sequence α having (eventB1, eventB2, eventC1) as elements is generated and stored as a new table C.

ステップS1002では、以降のステップS1003〜ステップS1015の処理を表Aの行項目に記述されている状態数だけ繰り返す。図9の例では、ClassBの状態図情報903に記述されている状態数は3であるため、繰り返し数は3となる。   In step S1002, the processes in subsequent steps S1003 to S1015 are repeated for the number of states described in the row item of Table A. In the example of FIG. 9, since the number of states described in the state diagram information 903 of Class B is 3, the number of repetitions is 3.

ステップS1003では、表Aより新たな状態名Aを取り出す。ここで図9の例では、“StateB1”が取り出されることとなる。ステップS1004では、以降のステップS1005〜ステップS1014の処理を表Bの行項目に記述されている状態数だけ繰り返す。図9の例では、ClassCの状態図情報904に記述されている状態数は2であるため、繰り返し数は2となる。   In step S1003, a new state name A is extracted from Table A. Here, in the example of FIG. 9, “StateB1” is extracted. In step S1004, the processes in subsequent steps S1005 to S1014 are repeated for the number of states described in the row item of Table B. In the example of FIG. 9, since the number of states described in the class C state diagram information 904 is 2, the number of repetitions is 2.

ステップS1005では、表Bより新たな状態名Bを取り出す。ここで図9の例では、“StateC1”が取り出されることとなる。ステップS1006では、状態名Aおよび状態名Bの名前の連結(“状態名A状態名B”)により新たな状態名Cを作成し、クラス統合結果格納部210によって表Cに記述する。図9の例では、“StateB1StateC1”という新たな状態名が作成され、表Cに記述される。   In step S1005, a new state name B is extracted from Table B. Here, in the example of FIG. 9, “State C1” is extracted. In step S1006, a new state name C is created by concatenating state name A and state name B ("state name A state name B") and described in table C by class integration result storage unit 210. In the example of FIG. 9, a new state name “StateB1StateC1” is created and described in Table C.

ステップS1007では、以降のステップS1008〜ステップS1013の処理を表Cに記述されたイベント列αの数だけ繰り返す。図9の例では、ステップS1001によって作成されたイベント列αの要素数は3であるため、繰り返し数は3となる。   In step S1007, the processes in subsequent steps S1008 to S1013 are repeated by the number of event sequences α described in Table C. In the example of FIG. 9, the number of elements in the event sequence α created in step S1001 is 3, so the number of repetitions is 3.

ステップS1008では、イベント列αより、新たなイベントCを取り出す。ここで図9の例では、“eventB1”が取り出されることとなる。   In step S1008, a new event C is extracted from the event sequence α. Here, in the example of FIG. 9, “eventB1” is extracted.

ステップS1009では、イベントCが表Aに定義されているかを判定し、定義されている場合にはステップS1010に進み、定義されていない場合にはステップS1012に進み、それぞれ処理を続ける。上記のごとく図9の例では、“eventB1”が表Aに定義されているため、ステップS1010に進む。   In step S1009, it is determined whether or not the event C is defined in the table A. If it is defined, the process proceeds to step S1010. If it is not defined, the process proceeds to step S1012 to continue the processing. As described above, since “eventB1” is defined in Table A in the example of FIG. 9, the process proceeds to step S1010.

ステップS1010では、表Aより状態名AにおけるイベントC受信時のアクションを抜き出し、これを表Cの状態名CにおけるイベントA受信時のアクションに転記する。この際、アクションがない場合にも、その情報を転記しておく。図9の例では、ClassBの状態図情報903(表A)より“StateB1”における“eventB1”受信時のアクションは“actionα”であることが分かるため、これを転記する。   In step S1010, the action at the time of receiving event C in state name A is extracted from table A, and this action is transferred to the action at the time of receiving event A in state name C of table C. At this time, even if there is no action, the information is posted. In the example of FIG. 9, since it is found from the state diagram information 903 (Table A) of Class B that the action when “eventB1” is received in “StateB1” is “actionα”, this is posted.

ステップS1011では、表Aより状態名AにおけるイベントC受信時の遷移先状態(状態名D)を抜き出し、これと状態名Bとを連結した名前(“状態名D状態名B”)を表Cの状態名CにおけるイベントA受信時の遷移先状態に転記する。この際、遷移先状態がない場合、すなわち状態名AでイベントAが受け取ることが想定されていない場合(例えば図9中の907のセルに相当する)、その情報を転記しておく。図9の例では、ClassBの状態図情報903(表A)より“StateB1”における“eventB1”受信時の遷移先状態は“StateB2”であることが分かるため、これと“StateC1”の名前を連結し、“StateB2StateC1”を転記する。   In step S1011, the transition destination state (state name D) at the time of receiving the event C in the state name A is extracted from the table A, and the name ("state name D state name B") concatenated with the state name B is displayed in the table C. Is transferred to the transition destination state when the event A is received in the state name C. At this time, when there is no transition destination state, that is, when it is not assumed that the event A is received with the state name A (for example, corresponds to the cell 907 in FIG. 9), the information is posted. In the example of FIG. 9, since it is found from the state diagram information 903 (Table A) of Class B that the transition destination state at the time of “eventB1” reception in “StateB1” is “StateB2”, this is linked to the name of “StateC1”. Then, “StateB2StateC1” is transcribed.

ステップS1012では、表Bより状態名BにおけるイベントC受信時のアクションを抜き出し、これを表Cの状態名CにおけるイベントA受信時のアクションに転記する。この際、アクションがない場合にも、その情報を転記しておく。   In step S1012, the action at the time of receiving the event C in the state name B is extracted from the table B, and this action is transferred to the action at the time of receiving the event A in the state name C of the table C. At this time, even if there is no action, the information is posted.

ステップS1013では、表Bより状態名BにおけるイベントC受信時の遷移先状態(状態名D)を抜き出し、これと状態名Aとを連結した名前(“状態名A状態名D”)を表Cの状態名CにおけるイベントA受信時の遷移先状態に転記する。この際、遷移先状態がない場合には、その情報を転記しておく。   In step S1013, the transition destination state (state name D) at the time of receiving the event C in the state name B is extracted from the table B, and the name ("state name A state name D") concatenated with the state name A is displayed in the table C. Is transferred to the transition destination state when the event A is received in the state name C. At this time, if there is no transition destination state, the information is posted.

以上の処理によって、統合すべき2つのクラスが持つ状態図同士が統合され、新たな1つの状態図の情報がクラス統合結果格納部210によって記憶される。   Through the above processing, the state diagrams of the two classes to be integrated are integrated, and information of one new state diagram is stored in the class integration result storage unit 210.

<状態図の統合処理の具体例>
図11はモデル情報格納部202により記憶されるモデル情報の一部と、前記クラス定義の統合処理(ステップS806)によってクラス統合結果として格納される情報の一部の具体例を示したものである。
<Specific example of state diagram integration processing>
FIG. 11 shows a specific example of part of model information stored by the model information storage unit 202 and part of information stored as a class integration result by the class definition integration processing (step S806). .

図中、1101はクラス間の関連情報の保持例でありこれは図5と等価である。1102は、上記クラス間の関連情報1101を元に、クラス統合部208によってクラスが統合された際の統合結果の保持例を示したものである。   In the figure, reference numeral 1101 denotes an example of holding related information between classes, which is equivalent to FIG. Reference numeral 1102 denotes an example of holding the integration result when the classes are integrated by the class integration unit 208 based on the relation information 1101 between the classes.

1103はクラスの種別情報の保持例であり、これは図7と等価である。1104は、上記クラスの種別情報1103を元に、クラス統合部208によってクラスが統合された際の統合結果の保持例を示したものである。   Reference numeral 1103 denotes an example of holding class type information, which is equivalent to FIG. Reference numeral 1104 denotes an example of holding an integration result when a class is integrated by the class integration unit 208 based on the class type information 1103.

1105は、クラスの属性情報の保持例、同様に1107はクラスの関数情報の保持例である。この保持例では、各クラスに定義されている属性、関数1つ1つを1行とし、これを一覧として保持することを特徴としている。   Reference numeral 1105 denotes a holding example of class attribute information, and similarly 1107 denotes a holding example of class function information. This holding example is characterized in that each attribute and function defined in each class is set as one line and held as a list.

また、1106は、上記クラスの属性情報1105を元に、同様に1108は上記クラスの関数情報1107を元に、それぞれクラス統合部208によってクラスが統合された際の統合結果の保持例を示したものである。この際、クラスの統合が行われても各クラスに定義されている属性、関数は不変であり、その行数の増減が起こることはない。   Further, 1106 shows an example of holding the integration result when the class is integrated by the class integration unit 208 based on the class attribute information 1105 and similarly, 1108 is based on the function information 1107 of the class. Is. At this time, even if the classes are integrated, the attributes and functions defined in each class are unchanged, and the number of lines does not increase or decrease.

<クラス定義の統合処理の流れ>
図12は、前記クラス定義の統合処理(ステップS806)の詳細な手順を示すフローチャートである。以下では、このフローチャートに沿って図11のb)クラス種別情報1103、およびc)クラスの属性情報1105を例にクラス定義の統合処理を説明する。
<Flow of class definition integration processing>
FIG. 12 is a flowchart showing a detailed procedure of the class definition integration processing (step S806). In the following, the class definition integration processing will be described with reference to this flowchart, taking b) class type information 1103 and c) class attribute information 1105 in FIG. 11 as an example.

ステップS1201では、統合クラス選択部207によって選択された2つのクラス(“クラスA”、“クラスB”)のクラス名の連結により、統合後のクラス名(“クラスAクラスB”)を作成する。ここで図11の例では、ClassBとClassCが選択され、統合後のクラス名が“ClassBClassC”となったとする。   In step S1201, a class name after integration (“class A class B”) is created by concatenating the class names of two classes (“class A” and “class B”) selected by the integrated class selection unit 207. . Here, in the example of FIG. 11, it is assumed that Class B and Class C are selected, and the class name after integration is “Class B Class C”.

ステップS1202では、以降のステップS1203〜S1210の処理をモデル情報格納部202に記録されている表の数だけ繰り返す。   In step S1202, the processes in subsequent steps S1203 to S1210 are repeated for the number of tables recorded in the model information storage unit 202.

ステップS1203では、モデル情報格納部202より新たな表を1つ取り出し、表Aとする。ここで図11の例では、クラス種別情報1103が取り出されたものとする。   In step S1203, one new table is extracted from the model information storage unit 202 and is defined as a table A. Here, in the example of FIG. 11, it is assumed that the class type information 1103 has been extracted.

ステップS1204では、以降のステップS1205〜S1208の処理を表Aに情報が記載されているセルの数だけ繰り返す。図11の例では、クラス種別情報1103には計12のセルに設計情報が記載されているため、繰り返し数は12となる。   In step S1204, the processes in subsequent steps S1205 to S1208 are repeated for the number of cells whose information is described in Table A. In the example of FIG. 11, the design information is described in a total of 12 cells in the class type information 1103, so the number of repetitions is 12.

ステップS1205では、表Aより新たなセルを取り出しセルAとする。ここで図11の例では、“ClassB”と記載されているセルが取り出されたとする。   In step S1205, a new cell is extracted from Table A and is designated as cell A. Here, in the example of FIG. 11, it is assumed that a cell described as “Class B” is taken out.

ステップS1206では、セルAに記載されている情報が“クラスA”と等しいかを判定する。ここで、もし等しいと判定された場合にはステップS1208の処理に流れ、異なると判定された場合にはステップS1207の処理に流れる。図11の例では、ここで等しいと判定され、ステップS1208の処理に流れる。   In step S1206, it is determined whether the information described in the cell A is equal to “class A”. If it is determined that they are equal, the process proceeds to step S1208. If it is determined that they are different, the process proceeds to step S1207. In the example of FIG. 11, it is determined that they are equal to each other, and the process proceeds to step S1208.

ステップS1207では、セルAに記載されている情報が“クラスB”と等しいかを判定する。ここで、もし等しいと判定された場合にはステップS1208の処理に流れ、異なると判定された場合にはステップS1209の処理に流れる。   In step S1207, it is determined whether the information described in the cell A is equal to “class B”. If it is determined that they are equal, the process proceeds to step S1208. If it is determined that they are different, the process proceeds to step S1209.

ステップS1208では、セルAの情報を“クラスAクラスB”に置き換える。図11の例では、“ClassB”という情報が“ClassBClassC”に置き換わる。   In step S1208, the information of cell A is replaced with “class A class B”. In the example of FIG. 11, the information “Class B” is replaced with “Class B Class C”.

ステップS1210では、表A内で情報が重複している、もしくは不要な行を削除する。図11の例では、“ClassBClassC”に関する情報と、“ClassDClassF”に関する情報がそれぞれ重複しているため、それらの情報を削除する。これにより、クラスの種別情報の統合結果1104を獲得し、この情報がクラス統合結果格納部210によってオブジェクト指向プログラミング生成装置内に記憶される。   In step S1210, duplicate or unnecessary rows in table A are deleted. In the example of FIG. 11, since the information related to “ClassBCClassC” and the information related to “ClassDCclassF” are respectively duplicated, the information is deleted. Thereby, the integration result 1104 of the class type information is obtained, and this information is stored in the object-oriented programming generating apparatus by the class integration result storage unit 210.

以上の処理によって、統合すべき2つのクラスの定義が統合され、さらに前記状態図の統合処理とを併用することにより、能動クラス同士の統合を含めたあらゆるクラス同士の統合処理が実現される。   Through the above processing, the definitions of the two classes to be integrated are integrated, and by combining with the integration processing of the state diagram, integration processing of all classes including integration of active classes is realized.

以上の説明から明らかなように、本実施形態にかかるオブジェクト指向プログラミング生成装置は、クラス統合部において新たに統合されるクラスが、統合前のクラス定義をマージしたものによって表現されることを特徴とし、特に状態図を保持する能動クラス同士を統合する場合には、2つのクラスが持つ状態図より1つの統合された状態図を新たに生成する状態図統合部を有することにより、能動クラス同士の統合が可能となり、メモリ容量が少なく、なおかつ実行速度に優れたプログラムを自動生成することが可能となる。   As is clear from the above description, the object-oriented programming generating apparatus according to the present embodiment is characterized in that a class newly integrated in the class integration unit is expressed by merging class definitions before integration. In particular, when integrating active classes that hold state diagrams, by having a state diagram integration unit that newly generates one integrated state diagram from the state diagrams of the two classes, Integration is possible, and it is possible to automatically generate a program with a small memory capacity and excellent execution speed.

[その他の実施形態]
上記実施形態では、統合クラス選択部において統合処理が可能と判定されたクラスについてはすべて統合処理を実行することとしたが、本発明は特にこれに限定されるものではなく、クラスの統合処理の実行/省略をユーザが選択できるようにしてもよい。
[Other Embodiments]
In the above embodiment, the integration process is performed for all classes determined to be integrated by the integrated class selection unit. However, the present invention is not particularly limited to this, and the class integration process is not limited to this. The user may be allowed to select execution / omission.

<オブジェクト指向プログラミング生成のための手順>
図13は、本実施形態にかかるオブジェクト指向プログラミング生成装置におけるプログラム生成のための手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
<Procedure for generating object-oriented programming>
FIG. 13 is a flowchart showing a procedure for generating a program in the object-oriented programming generating apparatus according to the present embodiment. Hereinafter, it demonstrates along this flowchart.

ステップS1301では、モデル図入力部201によりユーザがモデル情報を入力する。   In step S <b> 1301, the user inputs model information through the model diagram input unit 201.

ステップS1302では、前記ステップS1301により入力されたモデル情報をオブジェクト指向プログラミング生成装置上に記憶する。   In step S1302, the model information input in step S1301 is stored on the object-oriented programming generator.

ステップS1303では、モデル情報の入力が終了したかをユーザからの入力により判定する。具体的には、ユーザの直前の入力がプログラムの自動生成開始命令であるなど、モデル情報の入力終了を表す入力に相当した場合、モデル情報の入力が終了したと判定する。ここでモデル情報の入力が終了したと判定された場合にはステップS1304に進み、そうでない場合にはステップS1301の処理に戻る。   In step S1303, it is determined by input from the user whether input of model information has been completed. Specifically, if the input immediately before the user corresponds to an input indicating the end of the input of model information, such as an automatic program generation start command, it is determined that the input of the model information has ended. If it is determined that the input of the model information has been completed, the process proceeds to step S1304. If not, the process returns to step S1301.

ステップS1304では、プログラム自動生成方法選択部212により、クラスの統合処理を実行し、その結果を用いてプログラムを自動生成するのか、もしくは、統合処理を行わず、モデル情報格納部202に記憶されているモデル情報を用いてプログラムを自動生成するのかをユーザが選択する。   In step S1304, the automatic program generation method selection unit 212 executes class integration processing and automatically generates a program using the result, or is stored in the model information storage unit 202 without performing integration processing. The user selects whether to automatically generate a program using existing model information.

ステップS1305では、前記ステップS1304の処理によってクラスの統合処理の実行が選択されたかを判定する。ここで、選択されたと判定された場合にはステップS1306に進み、選択されなかったと判定された場合にはステップS1308に進む。   In step S1305, it is determined whether execution of class integration processing has been selected by the processing in step S1304. If it is determined that it has been selected, the process proceeds to step S1306. If it is determined that it has not been selected, the process proceeds to step S1308.

ステップS1306では、前記ステップS1302の処理によって格納されたモデル情報を元に、統合可能なクラスの選択を行い、さらに選択されたクラスに対しクラスの統合処理を実行する。   In step S1306, a class that can be integrated is selected based on the model information stored in step S1302, and class integration processing is executed for the selected class.

ステップS1307では、前記ステップS1306の処理により生成されたクラス統合結果情報を元に、プログラムの自動生成を行う。   In step S1307, the program is automatically generated based on the class integration result information generated by the process of step S1306.

ステップS1308では、前記ステップS1302の処理によりオブジェクト指向プログラミング生成装置内に記憶されたモデル情報を元に、プログラムの自動生成を行う。   In step S1308, a program is automatically generated based on the model information stored in the object-oriented programming generation apparatus by the processing in step S1302.

ステップS1309では、ステップS1307の処理もしくはステップS1308の処理により自動生成されたプログラムを、出力装置108bに表示する。   In step S1309, the program automatically generated by the process of step S1307 or the process of step S1308 is displayed on the output device 108b.

以上の処理によって、上記モデル情報格納部202によって記憶されたユーザによって入力されたモデル情報を元にプログラムを自動生成するプログラム自動生成部と、同じく上記クラス統合結果格納部210に記憶されたクラス統合結果情報を元にプログラムを自動生成するクラス統合後プログラム自動生成部とを、ユーザが任意に選択して利用することが可能となる。   Through the above processing, a program automatic generation unit that automatically generates a program based on the model information input by the user stored in the model information storage unit 202, and a class integration stored in the class integration result storage unit 210 are also used. The user can arbitrarily select and use a post-class integration program automatic generation unit that automatically generates a program based on the result information.

なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。   Note that the present invention can be applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, and a printer), and a device (for example, a copying machine and a facsimile device) including a single device. You may apply to.

また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。   Another object of the present invention is to supply a storage medium storing software program codes for implementing the functions of the above-described embodiments to a system or apparatus, and the computer (or CPU or MPU) of the system or apparatus stores the storage medium. Needless to say, this can also be achieved by reading and executing the program code stored in the.

この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。   In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.

プログラムコードを供給するための記憶媒体としては、例えば、フロッピ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。   As a storage medium for supplying the program code, for example, a floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, or the like is used. be able to.

また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) operating on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.

さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.

本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置の全体構成を示す図である。1 is a diagram illustrating an overall configuration of an object-oriented programming generating apparatus according to an embodiment of the present invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the object-oriented programming generator concerning one Embodiment of this invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング装置におけるプログラム生成のための手順を示すフローチャートである。It is a flowchart which shows the procedure for the program production | generation in the object-oriented programming apparatus concerning one Embodiment of this invention. 統合可能なクラスの選択と統合処理の詳細アルゴリズムを示すフローチャートである。It is a flowchart which shows the detailed algorithm of selection of the class which can be integrated, and an integration process. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置のモデル情報格納部により記憶されるモデル情報のうち、特にクラス間の関連情報の保持例を示した図である。It is the figure which showed the example of holding | maintaining the relevant information especially between classes among the model information memorize | stored by the model information storage part of the object-oriented programming generation apparatus concerning one Embodiment of this invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置におけるクラス統合可否判定処理の詳細な処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the detailed process of the class integration possibility determination process in the object-oriented programming generation apparatus concerning one Embodiment of this invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置のモデル情報格納部により記憶されるモデル情報のうち、特にクラスのクラス種別情報の保持例を示した図である。It is the figure which showed the example of hold | maintaining especially the class classification information of a class among the model information memorize | stored by the model information storage part of the object-oriented programming generator concerning one Embodiment of this invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置におけるクラスの統合処理の詳細な処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a detailed process of the integration process of the class in the object-oriented programming generator concerning one Embodiment of this invention. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置において、状態図の統合処理の処理結果として格納される情報の具体例を示した図である。In the object-oriented programming generation apparatus concerning one Embodiment of this invention, it is the figure which showed the specific example of the information stored as a process result of the integration process of a state diagram. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置における状態図の統合処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the integration process of a state diagram in the object-oriented programming production | generation apparatus concerning one Embodiment of this invention. モデル情報格納部により記憶されるモデル情報の一部と、前記クラス定義の統合処理によってクラス統合結果として格納される情報の一部の具体例を示した図である。It is the figure which showed the specific example of a part of model information memorize | stored by a model information storage part, and a part of information stored as a class integration result by the integration process of the said class definition. 本発明の一実施形態にかかるオブジェクト指向プログラミング生成装置におけるクラス定義の統合処理の詳細な手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of the integration process of the class definition in the object-oriented programming generation apparatus concerning one Embodiment of this invention. 本発明の他の実施形態にかかるオブジェクト指向プログラミング装置におけるプログラム生成のための手順を示すフローチャートである。It is a flowchart which shows the procedure for the program production | generation in the object-oriented programming apparatus concerning other embodiment of this invention. クラス図の統合例を示す図である。It is a figure which shows the example of integration of a class diagram.

符号の説明Explanation of symbols

201:モデル図入力部
202:モデル情報格納部
203:モデル図表示部
204:プログラム自動生成部
205:プログラム格納部
206:プログラム表示部
207:統合クラス選択部
208:クラス統合部
209:状態図統合部
210:クラス統合結果格納部
211:クラス統合後プログラム自動生成部
212:プログラム自動生成方法選択部
201: Model diagram input unit 202: Model information storage unit 203: Model diagram display unit 204: Program automatic generation unit 205: Program storage unit 206: Program display unit 207: Integrated class selection unit 208: Class integration unit 209: State diagram integration Unit 210: Class integration result storage unit 211: Automatic program generation unit after class integration 212: Automatic program generation method selection unit

Claims (12)

ソフトウェアの構造を表現するモデル情報に基づいて、オブジェクト指向プログラミングを実行するオブジェクト指向プログラミング生成装置であって、
前記モデル情報を記憶するモデル情報記憶手段と、
前記モデル情報から統合可能なクラスを統合するクラス統合手段と、
前記クラス統合手段においてクラスが統合された前記モデル情報に基づいてオブジェクト指向によるプログラムを生成するクラス統合後プログラム生成手段と、
前記クラス統合後プログラム生成手段において生成されたプログラムを表示するプログラム表示手段と
を備えることを特徴とするオブジェクト指向プログラミング生成装置。
An object-oriented programming generator that executes object-oriented programming based on model information that represents the structure of software,
Model information storage means for storing the model information;
Class integrating means for integrating classes that can be integrated from the model information;
Class-integrated program generation means for generating an object-oriented program based on the model information in which classes are integrated in the class integration means;
An object-oriented programming generation apparatus comprising: program display means for displaying a program generated by the class integration post-program generation means.
前記モデル情報記憶手段により記憶された前記モデル情報を表示するモデル情報表示手段を更に備えることを特徴とする請求項1に記載のオブジェクト指向プログラミング生成装置。 2. The object-oriented programming generating apparatus according to claim 1, further comprising model information display means for displaying the model information stored by the model information storage means. 前記モデル情報記憶手段により記憶された前記モデル情報に基づいてオブジェクト指向によるプログラムを生成するプログラム生成手段と、
ユーザからの指示に基づいて、前記統合するクラス統合手段と前記プログラム生成手段とを切り替えて実行させ、前記プログラムを生成することを特徴とする請求項1に記載のオブジェクト指向プログラミング生成装置。
Program generation means for generating an object-oriented program based on the model information stored by the model information storage means;
2. The object-oriented programming generation apparatus according to claim 1, wherein, based on an instruction from a user, the class integration unit to be integrated and the program generation unit are switched and executed to generate the program.
前記クラス統合手段は、
クラス間の関連情報と多重度情報とに基づいてクラスの統合可否を判定することを特徴とする請求項1に記載のオブジェクト指向プログラミング生成装置。
The class integration means includes
2. The object-oriented programming generation apparatus according to claim 1, wherein whether or not the classes can be integrated is determined based on information related to classes and multiplicity information.
前記クラス統合手段において統合されるクラスが、状態図を有する能動クラス同士であった場合に、該クラスが各々有する状態図を統合する状態図統合手段を更に備えることを特徴とする請求項1に記載のオブジェクト指向プログラミング生成装置。 2. The state diagram integration unit that integrates the state diagrams of the classes when the classes integrated by the class integration unit are active classes having state diagrams. The object-oriented programming generator described. ソフトウェアの構造を表現するモデル情報に基づいて、オブジェクト指向プログラミングを実行するオブジェクト指向プログラミング生成装置における情報処理方法であって、
前記モデル情報を記憶手段に記憶するモデル情報記憶工程と、
前記モデル情報から統合可能なクラスを統合するクラス統合工程と、
前記クラス統合工程においてクラスが統合された前記モデル情報に基づいてオブジェクト指向によるプログラムを生成するクラス統合後プログラム生成工程と、
前記クラス統合後プログラム生成工程において生成されたプログラムを表示するプログラム表示工程と
を備えることを特徴とする情報処理方法。
An information processing method in an object-oriented programming generation device that executes object-oriented programming based on model information that represents the structure of software,
A model information storage step of storing the model information in a storage means;
A class integration process for integrating classes that can be integrated from the model information;
A class-integrated program generation step for generating an object-oriented program based on the model information in which the classes are integrated in the class integration step;
A program display step of displaying the program generated in the post-class integration program generation step.
前記モデル情報記憶工程により前記記憶手段に記憶された前記モデル情報を表示するモデル情報表示工程を更に備えることを特徴とする請求項6に記載の情報処理方法。 The information processing method according to claim 6, further comprising a model information display step of displaying the model information stored in the storage unit by the model information storage step. 前記モデル情報記憶工程により前記記憶手段に記憶された前記モデル情報に基づいてオブジェクト指向によるプログラムを生成するプログラム生成工程と、
ユーザからの指示に基づいて、前記統合するクラス統合工程と前記プログラム生成工程とを切り替えて実行させ、前記プログラムを生成することを特徴とする請求項6に記載の情報処理方法。
A program generation step of generating an object-oriented program based on the model information stored in the storage means by the model information storage step;
The information processing method according to claim 6, wherein the program is generated by switching and executing the class integration step to be integrated and the program generation step based on an instruction from a user.
前記クラス統合工程は、
クラス間の関連情報と多重度情報とに基づいてクラスの統合可否を判定することを特徴とする請求項6に記載の情報処理方法。
The class integration process includes
7. The information processing method according to claim 6, wherein whether or not the classes can be integrated is determined based on the relation information between classes and the multiplicity information.
前記クラス統合工程において統合されるクラスが、状態図を有する能動クラス同士であった場合に、該クラスが各々有する状態図を統合する状態図統合工程を更に備えることを特徴とする請求項6に記載の情報処理方法。 The class diagram integration step further comprising a state diagram integration step of integrating the state diagrams included in each class when the classes integrated in the class integration step are active classes having state diagrams. The information processing method described. 請求項6乃至10のいずれか1項に記載の情報処理方法をコンピュータによって実現させるための制御プログラムを格納した記憶媒体。 The storage medium which stored the control program for implement | achieving the information processing method of any one of Claim 6 thru | or 10 with a computer. 請求項6乃至10のいずれか1項に記載の情報処理方法をコンピュータによって実現させるための制御プログラム。 A control program for realizing the information processing method according to any one of claims 6 to 10 by a computer.
JP2005167341A 2005-06-07 2005-06-07 Object-oriented program generation apparatus and information processing method Expired - Fee Related JP5025098B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005167341A JP5025098B2 (en) 2005-06-07 2005-06-07 Object-oriented program generation apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005167341A JP5025098B2 (en) 2005-06-07 2005-06-07 Object-oriented program generation apparatus and information processing method

Publications (2)

Publication Number Publication Date
JP2006343867A true JP2006343867A (en) 2006-12-21
JP5025098B2 JP5025098B2 (en) 2012-09-12

Family

ID=37640812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005167341A Expired - Fee Related JP5025098B2 (en) 2005-06-07 2005-06-07 Object-oriented program generation apparatus and information processing method

Country Status (1)

Country Link
JP (1) JP5025098B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013171458A (en) * 2012-02-21 2013-09-02 Fuji Electric Co Ltd Device, method and program for creating model diagram, and data structure of state event table for creating model diagram

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348499A (en) * 1993-04-14 1994-12-22 Toshiba Corp Object directional programming support device and its method
JP2001325100A (en) * 2000-05-15 2001-11-22 Mitsubishi Electric Corp Program-analyzing device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348499A (en) * 1993-04-14 1994-12-22 Toshiba Corp Object directional programming support device and its method
JP2001325100A (en) * 2000-05-15 2001-11-22 Mitsubishi Electric Corp Program-analyzing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013171458A (en) * 2012-02-21 2013-09-02 Fuji Electric Co Ltd Device, method and program for creating model diagram, and data structure of state event table for creating model diagram

Also Published As

Publication number Publication date
JP5025098B2 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
JP4937256B2 (en) Smooth transition between animations
JP4166376B2 (en) Digital video signal processing apparatus and method
JP2009502050A (en) GPU timeline with rendered queue
JP6049548B2 (en) Rendering apparatus and method
JP2004287932A (en) Database update processing system, update data input method for database update, update data processing method and program
CN101326513B (en) Method for utilizing alternative graphics pipe
US20110107256A1 (en) Zooming Task Management
JP2000089959A (en) Data processor and data processing method
CN111949614A (en) Bank system file conversion method and device
JP5025098B2 (en) Object-oriented program generation apparatus and information processing method
US20110167047A1 (en) Editing apparatus, method, and storage medium
JP2006048695A (en) Device for and method of processing text data according to script attribute
JP5206678B2 (en) Thin client system
KR101917325B1 (en) Chatbot dialog management device, method and computer readable storage medium using receiver state
JP2007025965A (en) Object-oriented analysis design support apparatus
JP2008197883A (en) Lsi analytic program, recording medium with program recorded, lsi analytic device, and lsi analytic method
JP5702265B2 (en) Program automatic generation apparatus and program automatic generation method
JP5478936B2 (en) Information processing apparatus and information processing method
JPH11219386A (en) Drafting device and recording medium
Cox Bell labs and CSP threads
JP2022113227A (en) Common infrastructure system for dx implementation
CN115543935A (en) Method and system for displaying file directory tree
JP2000284988A (en) Object-oriented system analyzing device and method, and recording medium storing software for object-oriented system analysis
JPH1124911A (en) Method for automatically generating source program
TWI271621B (en) Optimization method of reading data in the human machine interface (HMI)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120517

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120619

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5025098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees