JP5457761B2 - Semantic model generation program and semantic model generation apparatus - Google Patents

Semantic model generation program and semantic model generation apparatus Download PDF

Info

Publication number
JP5457761B2
JP5457761B2 JP2009198983A JP2009198983A JP5457761B2 JP 5457761 B2 JP5457761 B2 JP 5457761B2 JP 2009198983 A JP2009198983 A JP 2009198983A JP 2009198983 A JP2009198983 A JP 2009198983A JP 5457761 B2 JP5457761 B2 JP 5457761B2
Authority
JP
Japan
Prior art keywords
class
meta
interface
diagram
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009198983A
Other languages
Japanese (ja)
Other versions
JP2011048796A (en
Inventor
亨 江口
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.)
Fujitsu Computer Technologies Ltd
Original Assignee
Fujitsu Computer Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Computer Technologies Ltd filed Critical Fujitsu Computer Technologies Ltd
Priority to JP2009198983A priority Critical patent/JP5457761B2/en
Publication of JP2011048796A publication Critical patent/JP2011048796A/en
Application granted granted Critical
Publication of JP5457761B2 publication Critical patent/JP5457761B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア開発でのモデル化プロセスに関する。   The present invention relates to a modeling process in software development.

ソフトウェア開発を支援するための様々な技術が開発されている。
例えば、オブジェクト指向言語で記述されたプログラムから、プログラムの構造を容易に理解できるオブジェクト図を出力する装置を実現することを目的とした、次のような技術が知られている。すなわち、ソースプログラムを入力とし、クラス定義情報抽出処理によりクラスの構造が抽出される。そして、クラスメソッド解析処理によりメンバデータの定義位置が決定され、クラス情報が生成され、オブジェクト図出力処理により出力装置を介してオブジェクト図が得られる。
Various technologies have been developed to support software development.
For example, the following techniques are known for realizing an apparatus that outputs an object diagram that can easily understand the structure of a program from a program written in an object-oriented language. That is, the class structure is extracted by the class definition information extraction process using the source program as an input. Then, the definition position of member data is determined by class method analysis processing, class information is generated, and an object diagram is obtained via an output device by object diagram output processing.

また、図形情報の入力手段を表記法毎に開発する必要がなく、図形情報の入力手段を全表記法で共通化できるようにすることを目的とした、次のような技術も知られている。すなわち、メタモデル格納部がメタモデルを格納し、解析規則格納部が図形情報の解析のための複数の解析規則を格納する。そして、モデル操作部がモデルに含まれる要素等を規定した特定の表記法に従った図形情報を取得し、モデル生成部がメタモデルと図形情報の表記法に対応する解析規則とに基づいて図形情報を解析してモデルを生成する。   In addition, it is not necessary to develop graphic information input means for each notation, and the following techniques are also known for the purpose of making graphic information input means common to all notations. . That is, the metamodel storage unit stores a metamodel, and the analysis rule storage unit stores a plurality of analysis rules for analyzing graphic information. Then, the model operation unit obtains graphic information in accordance with a specific notation that defines the elements included in the model, and the model generation unit generates a graphic based on the meta model and the analysis rule corresponding to the notation of the graphic information. Analyze information to generate a model.

さらに、統一されたポリシーに基づくクラス図の作成を支援することを目的とした、次のような技術も知られている。すなわち、仕様書/設計書受付部により、開発対象のソフトウェアに関する作成済みの仕様書/設計書を受け付け、その中からシーケンス図を取り出す。また、クラス生成部により、シーケンス図を機能の種類毎に分類し、分類されたシーケンス図における機能で操作される対象を表す管理情報をクラスとするクラス図を生成する。そして、属性生成部により、シーケンス図の中からメッセージのパラメータを取得し、パラメータを対応するクラスの属性としてクラス図中に追加する。さらに、関連生成部により、属性を追加したクラス図から同じ属性を有するクラスの組を抽出し、それらのクラス間に関連を生成する。以上により、作成ポリシーを統一することができる。   Furthermore, the following techniques are also known for the purpose of supporting the creation of a class diagram based on a unified policy. That is, a specification / design document receiving unit receives a created specification / design document related to software to be developed, and extracts a sequence diagram therefrom. In addition, the class generation unit classifies the sequence diagram for each type of function, and generates a class diagram having management information representing a target operated by the function in the classified sequence diagram as a class. Then, the attribute generation unit acquires a message parameter from the sequence diagram, and adds the parameter to the class diagram as an attribute of the corresponding class. Further, the relationship generation unit extracts a set of classes having the same attribute from the class diagram to which the attribute is added, and generates a relationship between these classes. As described above, the creation policy can be unified.

特開平9−185497号公報JP-A-9-185497 特開2007−172228号公報JP 2007-172228 A 特開2008−287305号公報JP 2008-287305 A

しかしながら、ソフトウェア開発においては人的能力に頼っている部分もいまだに多く残っており、ソフトウェアの生産性には改善の余地がある。そこで本発明は、ソフトウェア開発でのモデル化プロセスにおいて、ソフトウェアのモデルを表すデータを、ソースコードの自動生成に適合するように生成することで、ソフトウェアの生産性を向上させることを目的とする。   However, there are still many parts of software development that rely on human abilities, and there is room for improvement in software productivity. Accordingly, an object of the present invention is to improve software productivity by generating data representing a software model so as to be adapted to automatic generation of a source code in a modeling process in software development.

一態様において提供される意味モデル生成プログラムは、コンピュータにメタモデル取得ステップとクラス図生成ステップと意味モデル生成ステップを実行させる。
前記メタモデル取得ステップは、メタモデルを取得するステップである。なお、前記メタモデルは、ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すものである。
The semantic model generation program provided in one aspect causes a computer to execute a metamodel acquisition step, a class diagram generation step, and a semantic model generation step.
The metamodel acquisition step is a step of acquiring a metamodel. The meta model includes a definition of a meta part class obtained by meta-modeling parts included in software, and represents the software by meta-modeling using a first class diagram expressed in UML.

前記クラス図生成ステップは、前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成するステップである。   The class diagram generating step includes defining a part class representing a part included in the software as a subclass of the meta part class, thereby including a model obtained by modeling the software according to the meta model. It is a step of generating as a second class diagram expressed in the UML.

前記意味モデル生成ステップは、前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成するステップである。   In the semantic model generation step, the part class in the second class diagram is a class obtained by modeling the part based on the generalization from the part class to the meta part class and the meta model. This is a step of generating a semantic model representing the meaning of the class diagram of 2 in a predetermined formal language.

上記意味モデル生成プログラムによれば、「部品クラスは部品をモデル化したクラスである」という意味を、意味モデルが明示している。したがって、上記意味モデル生成プログラムによれば、「どのクラスが何をモデル化しているのかを自動的に判別することができないために、適切なソースコードの自動生成が阻害される」といった問題が解決される。すなわち、上記のようにして生成される意味モデルは、ソースコードの自動生成に適しており、上記意味モデル生成プログラムは、ソフトウェアの生産性を向上させることができる。   According to the semantic model generation program, the semantic model clearly indicates that “a component class is a class that models a component”. Therefore, according to the above semantic model generation program, the problem that “automatic generation of appropriate source code is hindered because it cannot automatically determine which class models what” is solved. Is done. That is, the semantic model generated as described above is suitable for automatic generation of source code, and the semantic model generation program can improve software productivity.

第1実施形態によるソフトウェア開発支援の概要を説明する図である。It is a figure explaining the outline | summary of the software development support by 1st Embodiment. 第1のメタモデルを表すUMLのクラス図である。It is a class diagram of UML showing a 1st metamodel. 第1のメタモデルにしたがう第1のモデルを表すUMLのクラス図である。FIG. 3 is a UML class diagram representing a first model according to a first metamodel. 第1実施形態によるDSM支援装置およびその他の装置を示すブロック図である。It is a block diagram which shows the DSM support apparatus and other apparatus by 1st Embodiment. コンピュータの構成図である。It is a block diagram of a computer. 第1のメタモデルにしたがう第2のモデルを表すUMLのクラス図である。FIG. 3 is a UML class diagram representing a second model according to the first metamodel. 第1と第2のモデルを統合したモデルにより設計されたソフトウェアの全体構造を示すUMLのオブジェクト図である。It is a UML object figure which shows the whole structure of the software designed by the model which integrated the 1st and 2nd model. 図7のオブジェクト図に対応してソフトウェアの動作を定義するUMLのシーケンス図である。FIG. 8 is a UML sequence diagram that defines software operations corresponding to the object diagram of FIG. 7. 第1と第2のモデルを統合したモデルを表すXMLデータを示す図(その1)である。FIG. 6 is a diagram (part 1) illustrating XML data representing a model obtained by integrating the first and second models. 第1と第2のモデルを統合したモデルを表すXMLデータを示す図(その2)である。FIG. 10 is a diagram (part 2) illustrating XML data representing a model obtained by integrating the first and second models. 第1と第2のモデルを統合したモデルを表すXMLデータを示す図(その3)である。FIG. 10 is a diagram (No. 3) illustrating XML data representing a model obtained by integrating the first and second models. 第1と第2のモデルを統合したモデルを表すXMLデータを示す図(その4)である。FIG. 14 is a diagram (No. 4) illustrating XML data representing a model obtained by integrating the first and second models. 第1実施形態によるモデル編集処理を説明する図である。It is a figure explaining the model edit process by 1st Embodiment. 第1実施形態による駆動順序定義処理を説明する図である。It is a figure explaining the drive order definition process by 1st Embodiment. 第1実施形態によるコード生成処理を説明する図である。It is a figure explaining the code generation processing by a 1st embodiment. 第2のメタモデルを表すUMLのクラス図である。It is a UML class diagram showing a 2nd metamodel. 第2のメタモデルにしたがうモデルを表すUMLのクラス図である。It is a class diagram of UML showing the model according to a 2nd metamodel. 図14のモデルの利用例を示すUMLのオブジェクト図である。FIG. 15 is a UML object diagram illustrating a usage example of the model of FIG. 14. 第3のメタモデルを表すUMLのクラス図である。It is a class diagram of UML showing a 3rd metamodel. 第3のメタモデルにしたがうモデルを表すUMLのオブジェクト図である。It is a UML object figure showing the model according to a 3rd metamodel.

以下、実施形態について、図面を参照しながら詳細に説明する。具体的には、まず図1〜5を参照して、メタモデルおよびモデルの例とともに第1実施形態の概要を説明し、次に図6〜12を参照して、第1実施形態に関わる各種情報や各種処理の詳細を説明する。その後、図13〜17を参照して、他のメタモデルを用いる第2・第3実施形態についても説明する。最後に、その他の実施形態についても説明する。   Hereinafter, embodiments will be described in detail with reference to the drawings. Specifically, first, an overview of the first embodiment will be described with reference to FIGS. 1 to 5 together with a meta model and an example of the model. Next, with reference to FIGS. Details of information and various processes will be described. Thereafter, second and third embodiments using other metamodels will be described with reference to FIGS. Finally, other embodiments will be described.

図1は、第1実施形態によるソフトウェア開発支援の概要を説明する図である。なお、図1はUML(Unified Modeling Language)のユースケース図の形式で表現されている。   FIG. 1 is a diagram for explaining the outline of software development support according to the first embodiment. Note that FIG. 1 is expressed in the form of a UML (Unified Modeling Language) use case diagram.

プロセスP101において、ソフトウェアのメタモデル101と、メタモデル101とモデルの間の関連付けのための表記ルール102を用いて、UMLツール103とDSM(Domain-Specific Modeling)支援装置104が協働してモデル編集処理を行う。   In the process P101, the UML tool 103 and the DSM (Domain-Specific Modeling) support apparatus 104 cooperate with each other using the software metamodel 101 and the notation rule 102 for association between the metamodel 101 and the model. Edit processing.

なお、メタモデル101はUMLで表記されており、予め用意されている。メタモデル101の具体例は、図2とともに後述する。メタモデル101は、他の実施形態では、図13や16に示すようなものでもよい。   The meta model 101 is written in UML and prepared in advance. A specific example of the metamodel 101 will be described later with reference to FIG. In another embodiment, the meta model 101 may be as shown in FIGS.

また、表記ルール102は、「ソフトウェアのモデルを表すUMLの図(クラス図やオブジェクト図など)が、メタモデル101と適合するためには、どのように表記されていなくてはならないのか」ということを表すルールである。つまり、表記ルール102は制約条件の一種である。   The notation rule 102 is “How UML diagrams (class diagrams, object diagrams, etc.) representing software models must be described in order to be compatible with the metamodel 101”. Is a rule representing That is, the notation rule 102 is a kind of constraint condition.

表記ルール102は、制御ロジックとしてDSM支援装置104内に予め組み込まれていていてもよい。あるいは、表記ルール102は、所定の形式のデータとして表現されて記憶装置に格納され、DSM支援装置104により読み取られてもよい。そして、DSM支援装置104が、読み取った表記ルール102にしたがって動作してもよい。   The notation rule 102 may be incorporated in advance in the DSM support apparatus 104 as control logic. Alternatively, the notation rule 102 may be expressed as data in a predetermined format, stored in a storage device, and read by the DSM support device 104. Then, the DSM support device 104 may operate according to the read notation rule 102.

プロセスP101の結果、UMLで表記されたモデル図105と、XML(eXtensible Markup Language)で表記されたモデル106が出力される。すると、出力されたモデル106と、予め用意されたコード生成テンプレート107を用いて、プロセスP102において、コード生成装置108がコード生成処理を行う。   As a result of the process P101, a model diagram 105 expressed in UML and a model 106 expressed in XML (eXtensible Markup Language) are output. Then, using the output model 106 and the code generation template 107 prepared in advance, the code generation device 108 performs code generation processing in process P102.

その結果、C、C++、Java(登録商標)などの所定のプログラミング言語によるソースコード109が出力される。なお、コード生成テンプレート107は、XSL(eXtensible Stylesheet Language)で表記されており、プログラミング言語に応じて個々に予め用意されている。   As a result, source code 109 in a predetermined programming language such as C, C ++, Java (registered trademark) is output. The code generation template 107 is written in XSL (eXtensible Stylesheet Language) and is prepared in advance according to the programming language.

第1実施形態によれば、メタモデル101と表記ルール102が制約条件として利用され、制約条件を満たすモデル図105が生成される。また、モデル図105が表しているモデルの意味は、メタモデル101および表記ルール102にしたがって解釈され、XML形式のモデル106として表現される。   According to the first embodiment, the meta model 101 and the notation rule 102 are used as constraint conditions, and a model diagram 105 that satisfies the constraint conditions is generated. Further, the meaning of the model represented by the model diagram 105 is interpreted according to the meta model 101 and the notation rule 102, and is represented as an XML model 106.

つまり、モデル106は、意味的にはモデル図105と等価であり、上記制約条件を満たす。換言すれば、意味モデルとしてのモデル106が表す内容は、図形として視覚的にモデル図105に表現されている。   That is, the model 106 is semantically equivalent to the model diagram 105 and satisfies the above constraint conditions. In other words, the content represented by the model 106 as the semantic model is visually represented in the model diagram 105 as a figure.

そして、コード生成装置108は、所望のプログラミング言語に応じた適切なコード生成テンプレート107を入力として受け取ることで、制約条件を満たすモデル106から、所望のプログラミング言語のソースコード109を出力することができる。つまり、第1実施形態のUMLツール103とDSM支援装置104は、ソースコード109の自動生成に適合するように制約条件のもとでモデル106を生成することで、ソフトウェアの生産性を向上させることができる。   The code generation device 108 can output the source code 109 of the desired programming language from the model 106 that satisfies the constraint conditions by receiving an appropriate code generation template 107 corresponding to the desired programming language as an input. . In other words, the UML tool 103 and the DSM support device 104 of the first embodiment improve the software productivity by generating the model 106 under the constraint condition so as to be adapted to the automatic generation of the source code 109. Can do.

続いて、図1に概要を示した第1実施形態が好適に適用される環境および分野について説明する。
第1実施形態によれば、汎用言語であるUMLを使用することの利点を活かしつつDSMによるソフトウェアの開発を行うという、従来は困難であったことが可能となる。以下、第1実施形態の特長の理解を助けるため、UMLの使用とDSMによるソフトウェア開発ついて説明する。
Next, the environment and field to which the first embodiment outlined in FIG. 1 is preferably applied will be described.
According to the first embodiment, it is possible to develop a software that is based on DSM while taking advantage of the advantage of using UML that is a general-purpose language. Hereinafter, in order to help understanding of the features of the first embodiment, the use of UML and software development by DSM will be described.

UMLを使用したソフトウェア設計には、下記(a1)〜(a3)のような利点がある。
(a1)UMLは、ソフトウェアの設計者やプログラマ(以下まとめて「ユーザ」ともいう)の多くに受け入れられている。そのため、多くのユーザは既にUMLを使用したソフトウェア開発に関するノウハウや知識を蓄積している。
The software design using UML has the following advantages (a1) to (a3).
(A1) UML is accepted by many software designers and programmers (hereinafter collectively referred to as “users”). For this reason, many users have already accumulated know-how and knowledge regarding software development using UML.

(a2)UMLによる各種の図を作成するためのエディタも実際に使用されている。上記(a1)に述べたノウハウや知識の中には、これらのエディタの操作方法に関するものも含まれる。   (A2) An editor for creating various diagrams by UML is actually used. The know-how and knowledge described in (a1) above include those related to the operation method of these editors.

(a3)UMLは汎用の言語なので、分野によらず利用可能である。例えば、車両用の組み込みシステム、医療用システム、金融システムなどの分野の違いによらず、UMLは利用可能である。   (A3) Since UML is a general-purpose language, it can be used regardless of the field. For example, UML can be used regardless of differences in fields such as embedded systems for vehicles, medical systems, and financial systems.

しかしながら、UMLを使用することは、必ずしもソフトウェアの生産性向上に直結する訳ではない。その理由は次のとおりである。
一般に、ソフトウェアはC、C++、Java(登録商標)等のプログラミング言語で記述され、これらのプログラミング言語はキャラクタベースのテキスト言語である。それに対し、UMLは非テキスト言語である。
However, the use of UML does not necessarily directly improve the productivity of software. The reason is as follows.
Generally, software is written in programming languages such as C, C ++, Java (registered trademark), and these programming languages are character-based text languages. In contrast, UML is a non-text language.

非テキスト言語には、例えば状態遷移を表す表(テーブル)の形でソフトウェアの構造や動作を表現する言語も含まれるが、UMLは図形の組み合わせでソフトウェアの構造や動作を表現する図形言語である。UML等の非テキスト言語をソフトウェアの設計において利用する場合においても、結局はテキスト言語のソースコードが作成される。   Non-text languages include, for example, a language that expresses the structure and operation of software in the form of a table representing a state transition. UML is a graphic language that expresses the structure and operation of software by a combination of figures. . Even when a non-text language such as UML is used in software design, a source code of a text language is eventually created.

しかし、従来の設計手法にしたがって非テキスト言語(すなわち図形や表)で表現された内容は、ソフトウェアを実装するための参照情報として存在するにすぎず、ソースコードを自動生成するには情報不足であった。そのため、従来は、たとえソフトウェア開発においてUMLが利用されているとしても、実際のソースコードを得るにはプログラマが手作業を行う必要があり、人的能力に依存する部分が残っていた。すなわち、UMLの使用が、それだけで必ずしもソフトウェアの生産性や品質の著しい向上をもたらすとは限らない。   However, the contents expressed in a non-text language (that is, figures and tables) according to the conventional design method exist only as reference information for implementing software, and there is not enough information to automatically generate source code. there were. Therefore, conventionally, even if UML is used in software development, it is necessary for the programmer to perform manual work to obtain the actual source code, and a portion depending on human ability remains. That is, the use of UML alone does not necessarily lead to significant improvements in software productivity and quality.

このように、UMLには様々な利点があるものの、UMLの使用が必ずしも生産性や品質の著しい向上に結びつくとは限らない。そこで、ソフトウェア開発の別の手法として、DSMが提唱されている。   As described above, although UML has various advantages, the use of UML does not always lead to a significant improvement in productivity and quality. Therefore, DSM has been proposed as another method of software development.

DSMは、ソフトウェア開発の対象を、特定のドメイン(例えば車両用、医療用、金融用などの特定の分野)に絞り込む手法である。DSMでは、テキスト言語によるソースコードを自動的に生成するための情報を十分に含むように、当該特定のドメインに特化して、図形や表などの非テキスト言語が定義される。   DSM is a technique for narrowing down software development targets to specific domains (for example, specific fields such as for vehicles, medical use, and financial use). In DSM, a non-text language such as a figure or a table is defined specifically for the specific domain so as to sufficiently include information for automatically generating a source code in a text language.

そして、DSMでは、ドメイン固有の非テキスト言語(つまりDomain-Specific Language;DSL)により、特定のドメイン用のソフトウェアの設計に関わる情報が表現される。ドメインを絞り込むことで、ドメイン固有の非テキスト言語の記述能力を、テキスト言語によるソースコードの自動生成が可能なレベルにまで引き上げられるので、DSMによればソースコードの自動生成が可能である。   In DSM, information related to the design of software for a specific domain is expressed in a domain-specific non-text language (ie, Domain-Specific Language; DSL). By narrowing down the domain, the description ability of the non-text language unique to the domain can be raised to a level where the source code can be automatically generated by the text language, so that the source code can be automatically generated by the DSM.

ところが、DSMには下記(b1)〜(b5)のような欠点がある。
(b1)ドメイン固有の非テキスト言語を編集するには、市販の汎用エディタ(例えば汎用言語であるUML用のエディタ)を利用することができないため、ドメイン固有のエディタが必要である。
However, DSM has the following drawbacks (b1) to (b5).
(B1) Since a commercially available general-purpose editor (for example, an editor for UML, which is a general-purpose language) cannot be used to edit a domain-specific non-text language, a domain-specific editor is required.

(b2)ドメイン固有のエディタは、汎用品ではなく専用品であるがゆえに、エディタ自体の開発に多額の費用がかかる。   (B2) Since the editor specific to the domain is not a general-purpose product but a dedicated product, it takes a large amount of money to develop the editor itself.

(b3)ドメイン固有の非テキスト言語の文法(シンタックス)およびドメイン固有のエディタの操作方法を、ユーザがドメインごとに習得する必要があるため、時間的・金銭的なコストがかかる。   (B3) Since the user needs to learn the domain-specific non-text language grammar (syntax) and the domain-specific editor operation method for each domain, it takes time and money.

(b4)ユーザは、UML等の汎用的な非テキスト言語を利用した開発のノウハウを蓄積しているかもしれないが、汎用的な非テキスト言語に関して蓄積された知識やノウハウは、ドメイン固有の非テキスト言語に直接適用可能なものではない。   (B4) Although the user may have accumulated know-how of development using a general-purpose non-text language such as UML, the knowledge and know-how accumulated with respect to the general-purpose non-text language is not unique to the domain. It is not directly applicable to text languages.

(b5)例えば、UMLを用いて設計された既存のソフトウェアと類似する部分を含む新規ソフトウェアをDSMにより開発しようとする場合であっても、既存のソフトウェアのために作成された資産(UMLで記述された設計情報など)は流用不能である。そのため、既存の資産を活かすことができず、既存の資産を移行するための費用もかかってしまう。   (B5) For example, even when new software including a part similar to existing software designed using UML is to be developed by DSM, an asset created for existing software (described in UML) Design information etc.) is not divertable. For this reason, existing assets cannot be utilized, and costs for transferring existing assets are also required.

ここで、DSMの上記(b1)〜(b5)の欠点はすべて汎用性のなさに起因することに注目すると、UMLなどの汎用的な言語を利用してDSMによるソフトウェア開発を行うことが可能になれば、UMLとDSMの双方の利点を活かせると期待される。つまり、既存の資源(ユーザの知識やノウハウ、エディタ、設計情報など)を活かしつつ、DSMによるソースコードの自動生成によって、ソフトウェア開発の生産性を向上させ、ソフトウェアの品質を安定して高く保つことができるようになる、と期待される。第1実施形態の目的の1つは、このような期待を実現することである。   Here, paying attention to the fact that all of the above defects (b1) to (b5) of DSM are due to the lack of versatility, it is possible to develop software using DSM using a general-purpose language such as UML. If so, it is expected that the advantages of both UML and DSM can be utilized. In other words, using existing resources (user knowledge and know-how, editors, design information, etc.) and automatically generating source code using DSM to improve software development productivity and keep software quality stable and high. Is expected to be able to. One of the purposes of the first embodiment is to realize such expectations.

UMLとDSMの両立のための具体的手法としては、第1実施形態に対する比較例として、例えば、UMLプロファイル技術によりUMLを拡張し、ドメイン固有の意味をクラスに付与するために、クラスに対してステレオタイプを指定することも考えられる。   As a specific method for coexistence of UML and DSM, as a comparative example for the first embodiment, for example, in order to extend UML by UML profile technology and to give domain-specific meanings to classes, It is also possible to specify a stereotype.

この比較例によれば、上記(b1)で述べたような専用のエディタの代用品として既存のUMLエディタを利用することができる。また、ソフトウェア設計者は、UMLの利点を活かしつつ、ステレオタイプに基づいてDSMによるソフトウェア設計を行うことができる。つまり、この比較例によれば、上記(b1)〜(b5)の欠点を克服することが可能である。   According to this comparative example, an existing UML editor can be used as a substitute for the dedicated editor as described in (b1) above. In addition, the software designer can perform software design by DSM based on the stereotype while taking advantage of UML. That is, according to this comparative example, it is possible to overcome the disadvantages (b1) to (b5).

しかしながら、上記比較例には、「代償として、設計の自由度が奪われてしまう」という、新たな欠点が生じる。つまり、上記比較例では、DSMによる設計のためにステレオタイプが利用されているので、設計者が他の目的でステレオタイプをクラスに付加して利用することができなくなってしまい、その分、設計の自由度がなくなってしまう。   However, the comparative example has a new drawback that “the degree of freedom of design is lost as a price”. In other words, in the above comparative example, since the stereotype is used for the design by DSM, the designer cannot use the stereotype by adding it to the class for other purposes. Will lose the degree of freedom.

それに対し第1実施形態では、ステレオタイプとは別の仕組み(具体的にはメタモデル101と表記ルール102)によって、クラスの意味を判別可能とし、UMLを使ったDSMによる設計を可能としている。したがって、第1実施形態によれば、ユーザは任意の目的のためにステレオタイプをクラスに付加することができ、設計の自由度が保たれる。また、第1実施形態もUMLを利用するものなので、上記(b1)〜(b5)の欠点は克服される。   On the other hand, in the first embodiment, the meaning of the class can be determined by a mechanism different from the stereotype (specifically, the meta model 101 and the notation rule 102), and the design by DSM using UML is possible. Therefore, according to the first embodiment, the user can add a stereotype to a class for any purpose, and the degree of freedom of design is maintained. Further, since the first embodiment also uses UML, the above disadvantages (b1) to (b5) are overcome.

第1実施形態は、DSMによる設計にだけ適用可能なものではないが、上記のとおりUMLとDSMの両立のための具体的手法の一例である。したがって、第1実施形態によれば、上記(a1)〜(a3)のようなUMLの利点や既存資産を活かしつつ、DSMによるソフトウェア設計を可能とすることで、ソフトウェアの自動生成を可能とすることができる。   Although the first embodiment is not applicable only to the design by DSM, as described above, it is an example of a specific method for achieving both UML and DSM. Therefore, according to the first embodiment, software can be automatically generated by enabling software design by DSM while taking advantage of UML and existing assets such as the above (a1) to (a3). be able to.

その結果、第1実施形態においては、ソフトウェアの生産性向上・品質向上・品質安定化といった効果が得られる。また、上記比較例と比べると、第1実施形態にはさらに、「上記効果を奏するために設計の自由度を犠牲にせずに済む」という、有利な特徴もある。   As a result, in the first embodiment, effects such as software productivity improvement, quality improvement, and quality stabilization can be obtained. Further, compared with the comparative example, the first embodiment further has an advantageous feature that “the degree of freedom in design is not sacrificed in order to achieve the above-described effect”.

さて、以上のような利点を有する第1実施形態について、以下ではより詳しく説明していく。
まず、図2と図3を参照して、図1のメタモデル101と表記ルール102の具体例を説明する。図2は、第1のメタモデルを表すUMLのクラス図であり、図3は、第1のメタモデルにしたがう第1のモデルを表すUMLのクラス図である。
Now, the first embodiment having the above advantages will be described in more detail below.
First, specific examples of the meta model 101 and the notation rule 102 in FIG. 1 will be described with reference to FIGS. FIG. 2 is a UML class diagram representing the first metamodel, and FIG. 3 is a UML class diagram representing the first model according to the first metamodel.

なお、以下では表記の簡略化のため、「XXX」という名前のクラスを「『XXX』クラス」と呼び、「YYY」という名前のオブジェクトを「『YYY』オブジェクト」と呼ぶことがある。   In the following, for simplicity of description, a class named “XXX” may be called ““ XXX ”class”, and an object named “YYY” may be called ““ YYY ”object”.

図2に示す第1のメタモデル101aは、予め用意される図1のメタモデル101の一例であり、UMLのクラス図の形で図2に図示されている。
第1のメタモデル101aは、ソフトウェアが含む部品(ソフトウェア・コンポーネント)をメタモデル化したクラス(以下、一般名称として「メタ部品クラス」という)の定義を含む。また、第1のメタモデル101aは、2つの部品間の通信のインタフェースをメタモデル化したクラス(以下、一般名称として「メタインタフェースクラス」という)の定義も含む。また、以下では部品とインタフェースをモデル化したクラスをそれぞれ、一般名称として「部品クラス」および「インタフェースクラス」ということもある。
The first meta model 101a shown in FIG. 2 is an example of the meta model 101 of FIG. 1 prepared in advance, and is shown in FIG. 2 in the form of a UML class diagram.
The first metamodel 101a includes a definition of a class (hereinafter referred to as “metapart class” as a general name) obtained by metamodeling a part (software component) included in software. The first metamodel 101a also includes a definition of a class (hereinafter referred to as a “metainterface class” as a general name) obtained by metamodeling a communication interface between two components. Further, in the following, classes in which parts and interfaces are modeled may be referred to as “part classes” and “interface classes” as general names.

なお、図2では、各クラスの属性やメソッドは適宜省略されている。また、図2では、各属性と各関係(relationship)の可視性(visibility)として、それぞれプライベートであることを示す「-」とパブリックであることを示す「+」が指定されているが、可視性は、実施形態に応じて適宜指定することができる。   In FIG. 2, the attributes and methods of each class are omitted as appropriate. In addition, in FIG. 2, “-” indicating private and “+” indicating public are specified as the visibility of each attribute and relationship, respectively. The property can be appropriately specified according to the embodiment.

具体的には、第1のメタモデル101aは、以下の各クラスの定義を含む。
ソフトウェアの部品のメタモデル化のために、「ComponentType」クラス201と「CompositionType」クラス202と「ComponentPrototype」クラス203が定義されている。「ComponentType」クラス201と「CompositionType」クラス202には、メタモデルで定義されたクラスであることを示す<<KeyElement>>というステレオタイプが付けられている。
Specifically, the first metamodel 101a includes definitions of the following classes.
A “ComponentType” class 201, a “CompositionType” class 202, and a “ComponentPrototype” class 203 are defined for metamodeling of software components. The “ComponentType” class 201 and the “CompositionType” class 202 have a stereo type << KeyElement >> indicating that they are classes defined in the meta model.

なお、第1実施形態では、第1のメタモデル101a内のいくつかの基本的なクラスに<<KeyElement>>というステレオタイプを付加することで、コード生成装置108がコード生成時に第1のメタモデル101aを解釈しやすいようにしている。つまり、図1のプロセスP1で、メタモデル101と表記ルール102にしたがうモデル106からソースコード109を生成するとき、コード生成装置108は、モデル106と結び付けられたメタモデル101の解釈も行う。その際に、<<KeyElement>>というステレオタイプは、コード生成装置108に対して解釈の手がかりを与える。   In the first embodiment, a stereotype << KeyElement >> is added to some basic classes in the first metamodel 101a, so that the code generator 108 generates the first meta at the time of code generation. The model 101a is easy to interpret. That is, when the source code 109 is generated from the model 106 according to the meta model 101 and the notation rule 102 in the process P1 of FIG. 1, the code generation device 108 also interprets the meta model 101 associated with the model 106. At this time, the stereotype << KeyElement >> gives the code generation device 108 a clue for interpretation.

なお、メタモデルは個々のユーザが定義するものではない。つまり、図2の各クラスは、個々のユーザが定義するものではない。したがって、第1のメタモデル101aに含まれるクラスにステレオタイプが付与されていても、ユーザの設計の自由度を束縛することにはならない。   Metamodels are not defined by individual users. That is, each class in FIG. 2 is not defined by individual users. Therefore, even if a stereotype is assigned to a class included in the first metamodel 101a, the degree of freedom of user design is not constrained.

「CompositionType」クラス202は上記メタ部品クラスの一例である。「CompositionType」クラス202のスーパクラスである「ComponentType」クラス201は、メタ部品クラスをさらに抽象化したアブストラクトクラスであるから、メタ部品クラスの一種であるとも言える。「ComponentType」クラス201には、複数のインスタンスを持ってもよいか否かを示す「supportMultipleInstantiation」という名前のブール(boolean)型の変数が、属性として定義されている。「ComponentPrototype」クラス203は、部品間の入れ子関係のメタモデル化のために定義されている。   The “CompositionType” class 202 is an example of the meta component class. Since the “ComponentType” class 201 that is a super class of the “CompositionType” class 202 is an abstract class further abstracted from the meta component class, it can also be said to be a kind of meta component class. In the “ComponentType” class 201, a Boolean variable named “supportMultipleInstantiation” indicating whether or not a plurality of instances may be defined is defined as an attribute. The “ComponentPrototype” class 203 is defined for metamodeling of nested relationships between components.

また、部品がパラメタを有してもよいことをメタモデル化するために、「ConfigParam」クラス204が定義されている。パラメタには名前があり、値が設定されることをメタモデル化して、「ConfigParam」クラス204には、「name」という名前の文字列(string)型の変数と、「value」という名前の変数が、属性として定義されている。パラメタの型は、ユーザにより定義される個々のクラスにおいて任意に設定されうるので、第1のメタモデル101a内の「ConfigParam」クラス204内では「value」属性の型は指定されていない。   Also, a “ConfigParam” class 204 is defined to metamodel that a part may have parameters. The parameter has a name and is metamodeled that the value is set. In the “ConfigParam” class 204, a string type variable named “name” and a variable named “value” Are defined as attributes. Since the parameter type can be arbitrarily set in each class defined by the user, the type of the “value” attribute is not specified in the “ConfigParam” class 204 in the first metamodel 101a.

そして、ソフトウェアの部品は実行可能な部品であるということをメタモデル化するために、実行可能な実体(エンティティ)をメタモデル化した「RunnableEntity」クラス205が定義されている。そして、実行可能な実体には当該実体を呼び出すためのシンボルが割り当てられることのメタモデルとして、「RunnableEntity」クラス205では、「symbol」という名前の文字列型の変数が属性として定義されている。   In order to metamodel that the software component is an executable component, a “RunnableEntity” class 205 is defined in which an executable entity (entity) is metamodeled. As a metamodel of assigning a symbol for calling the entity to an executable entity, a “RunnableEntity” class 205 defines a character string type variable named “symbol” as an attribute.

また、タスクが部品を駆動することをメタモデル化するために、「Task」クラス206と「RunnableConnector」クラス207が定義されている。「Task」クラス206にも、第1のメタモデル101a中で定義されたクラスであることを示すための<<KeyElement>>というステレオタイプが付加されている。   In addition, a “Task” class 206 and a “RunnableConnector” class 207 are defined in order to metamodel that a task drives a component. The “Task” class 206 also has a stereotype << KeyElement >> to indicate that it is a class defined in the first metamodel 101a.

タスクが所定の周期で部品を駆動する能力があることのメタモデルとして、「Task」クラス206には、上記所定の周期を示す「elapse」という名前の整数型の変数が属性として定義されている。また、タスクが部品を駆動する最初のタイミングが任意に指定されうることのメタモデルとして、上記最初のタイミングを示す「initTimer」という名前の整数型の変数も、「Task」クラス206の属性として定義されている。   As a metamodel of the ability of a task to drive a component at a predetermined cycle, an integer variable named “elapse” indicating the predetermined cycle is defined as an attribute in the “Task” class 206 . In addition, as a metamodel that the initial timing at which a task drives a part can be arbitrarily specified, an integer variable named “initTimer” indicating the initial timing is also defined as an attribute of the “Task” class 206 Has been.

また、第1のメタモデル101aにおいて部品間の通信は、通信のインタフェースと、部品が備える通信用の入出力ポートと、入出力ポート間の接続をそれぞれメタモデル化することで、メタモデル化されている。なお、第1実施形態において、部品間の「通信」とは、ソフトウェアの部品間でのメッセージパッシング、すなわちデータ入出力を意味する。また、「ポート」も、物理的存在のことではなく、ソフトウェア上の仮想的なポートを意味する。同様に、「インタフェース」も、物理的存在ではなく、「通信」におけるデータ形式を意味し、ソフトウェア上のインタフェースのことを指している。   Further, communication between components in the first meta model 101a is meta-modeled by meta-modeling the communication interface, the communication input / output port provided in the component, and the connection between the input / output ports. ing. In the first embodiment, “communication” between components means message passing between software components, that is, data input / output. Further, “port” does not mean a physical existence but means a virtual port on software. Similarly, “interface” means not a physical entity but a data format in “communication” and refers to an interface on software.

具体的には、第1のメタモデル101aにおいて、インタフェースのメタモデル化のために、「Interface」クラス208と「SenderReceiverInterface」クラス209が定義されている。「SenderReceiverInterface」クラス209は、<<KeyElement>>というステレオタイプが付けられており、上記メタインタフェースクラスの一例である。「Interface」クラス208は、「Interface」クラス208を汎化したアブストラクトクラスであるから、メタインタフェースクラスの一種であるとも言える。   Specifically, in the first metamodel 101a, an “Interface” class 208 and a “SenderReceiverInterface” class 209 are defined for metamodeling of an interface. The “SenderReceiverInterface” class 209 has a stereo type << KeyElement >> and is an example of the meta interface class. Since the “Interface” class 208 is an abstract class that is a generalization of the “Interface” class 208, it can also be said to be a kind of meta-interface class.

また、上記のとおりインタフェースはデータ形式のことであり、より具体的には、個々のデータ要素の集合体である。そこで、インタフェースに含まれる個々のデータ要素をメタモデル化した「DataElementPrototype」クラス210も定義されている。   Further, as described above, an interface is a data format, and more specifically, an aggregate of individual data elements. Therefore, a “DataElementPrototype” class 210 is also defined in which individual data elements included in the interface are metamodeled.

また、部品が他の部品と通信するときのソフトウェア上の仮想的な入出力ポートは、「Port」クラス211としてメタモデル化されている。そして、「Port」クラス211には2つのサブクラスがある。1つは、他の部品からのメッセージを受ける入力ポートをメタモデル化した「RequesterPort」クラス212であり、もう1つは、他の部品へのメッセージを送り出す出力ポートをメタモデル化した「ProviderPort」クラス213である。   Further, a virtual input / output port on software when a component communicates with another component is metamodeled as a “Port” class 211. The “Port” class 211 has two subclasses. One is a “RequesterPort” class 212 that metamodels an input port that receives a message from another component, and the other is “ProviderPort” that metamodels an output port that sends a message to another component. Class 213.

さらに、ポート間の接続は「Connecter」クラス214としてメタモデル化されている。なお、「Connecter」クラス214には2つのサブクラスがある。
1つは、入れ子関係にない部品同士のポート間の接続をメタモデル化した「AssemblyConnector」クラス215である。もう1つは、入れ子関係にある外部部品と内部部品(換言すれば親部品と子部品)のポート間の接続をメタモデル化した「DelegateConnector」クラス216である。
Furthermore, connections between ports are metamodeled as “Connecter” classes 214. The “Connecter” class 214 has two subclasses.
One is an “AssemblyConnector” class 215 that meta-models connections between ports of parts that are not nested. The other is a “DelegateConnector” class 216 that meta-models connections between ports of external parts and internal parts (in other words, parent parts and child parts) that are nested.

また、上記の各クラス間には、以下のような関係が定義されている。図1には、各関係に適宜ロール名も付けて図示している。なお、関連(association)を示す線における矢印は、誘導可能性(navigability)を示し、換言すれば、参照の方向を示す。   In addition, the following relationships are defined between the above classes. In FIG. 1, each relationship is illustrated with an appropriate role name. In addition, the arrow in the line which shows association (association) shows navigability, in other words, shows the direction of reference.

汎化(generalization)251は、「ComponentType」クラス201が「CompositionType」クラス202のスーパクラスであることを示す。関連252は、「ComponentPrototype」クラス203が「ComponentType」クラス201を「typeRef」というロール名で参照することを示し、多重度は「1」である。また、多重度が「0..*」の集約(aggregation)253は、「CompositionType」クラス202が、「component」というロール名で「ComponentPrototype」クラス203を任意の個数含みうることを示す。   A generalization 251 indicates that the “ComponentType” class 201 is a super class of the “CompositionType” class 202. The relation 252 indicates that the “ComponentPrototype” class 203 refers to the “ComponentType” class 201 with the role name “typeRef”, and the multiplicity is “1”. An aggregation 253 with a multiplicity of “0 .. *” indicates that the “CompositionType” class 202 can include an arbitrary number of “ComponentPrototype” classes 203 with the role name “component”.

また、多重度が「0..*」の集約254は、「ComponentType」クラス201が「ConfigParam」クラス204を任意の個数含みうることを示す。そして、多重度が「1..*」の集約255は、「ComponentType」クラス201が「RunnableEntity」クラス205を1つ以上の任意の個数含むことを示す。つまり、集約254と集約255は、部品がパラメタを含みうることと、部品が実行可能であることをメタモデル化したものである。   An aggregation 254 with a multiplicity of “0 .. *” indicates that the “ComponentType” class 201 can include an arbitrary number of “ConfigParam” classes 204. An aggregation 255 with a multiplicity of “1 .. *” indicates that the “ComponentType” class 201 includes one or more arbitrary numbers of “RunnableEntity” classes 205. In other words, the aggregation 254 and the aggregation 255 are metamodels that a part can include a parameter and that the part can be executed.

そして、実行可能な実体は、他の実行可能な実体を呼び出したり自分自身を再帰的に呼び出したりすることができる。このことをメタモデル化したものが、「RunnableEntity」クラス205から「RunnableEntity」クラス205自身への、「call」というロール名での参照を表す関連256である。   An executable entity can then call other executable entities or call itself recursively. A meta model of this is a relationship 256 representing a reference with a role name “call” from the “RunnableEntity” class 205 to the “RunnableEntity” class 205 itself.

そして、タスクが部品を呼び出して駆動することは、タスクと部品との間の接続を表す集約257と関連258によりメタモデル化される。具体的には、集約257は、「Task」クラス206が1つ以上の任意の個数の「RunnableConnector」クラス207を含むことを示す、多重度が「1..*」の集約である。また、関連258は、「RunnableConnector」クラス207が「RunnableEntity」クラス205を「runnable」というロール名で参照することを示す、多重度が「1」の関連である。集約257と関連258により、1つのタスクが1つ以上の部品のそれぞれを呼び出して駆動することがメタモデル化されている。   Then, the task calling and driving the part is metamodeled by an aggregation 257 and a connection 258 representing the connection between the task and the part. Specifically, the aggregation 257 is an aggregation of “1 .. *” indicating that the “Task” class 206 includes one or more arbitrary numbers of “RunnableConnector” classes 207. The relation 258 is a relation with a multiplicity of “1” indicating that the “RunnableConnector” class 207 refers to the “RunnableEntity” class 205 with the role name “runnable”. Aggregation 257 and association 258 meta-models that one task calls and drives each of one or more parts.

また、部品がポートを持ちうることのメタモデルとして、多重度が「0..*」の集約259は、「ComponentType」クラス201が「Port」クラス211を含みうることを示す。「ComponentType」クラス201にとっての「Port」クラス211のロール名は「ports」であり、「Port」クラス211にとっての「ComponentType」クラス201のロール名は「component」である。   Further, as a meta model that a component can have a port, an aggregation 259 with a multiplicity of “0 .. *” indicates that the “ComponentType” class 201 can include a “Port” class 211. The role name of the “Port” class 211 for the “ComponentType” class 201 is “ports”, and the role name of the “ComponentType” class 201 for the “Port” class 211 is “component”.

汎化260と汎化261はそれぞれ、「RequesterPort」クラス212と「ProviderPort」クラス213が「Port」クラス211のサブクラスであることを示す。
多重度が「1」の関連262は、「Port」クラス211が「interfaceRef」というロール名で「Interface」クラス208を参照することを示す。関連262は、2つのポート間の通信が、当該2つのポートに適合する所定のインタフェースによって行われることをメタモデル化したものである。
The generalization 260 and the generalization 261 indicate that the “RequesterPort” class 212 and the “ProviderPort” class 213 are subclasses of the “Port” class 211, respectively.
An association 262 with a multiplicity of “1” indicates that the “Port” class 211 refers to the “Interface” class 208 with the role name “interfaceRef”. The association 262 is a meta-modeling that communication between two ports is performed by a predetermined interface adapted to the two ports.

そして、汎化263は、「Interface」クラス208が「SenderReceiverInterface」クラス209のスーパクラスであることを示す。
また、多重度が「0..*」の合成集約(composition)264は、「SenderReceiverInterface」クラス209が「DataElementPrototype」クラス210を任意の個数含みうることを示す。すなわち、合成集約264は、インタフェースが個々のデータ要素の集合体であることをメタモデル化したものである。
The generalization 263 indicates that the “Interface” class 208 is a super class of the “SenderReceiverInterface” class 209.
Also, a composition aggregation 264 with a multiplicity of “0 .. *” indicates that the “SenderReceiverInterface” class 209 can include an arbitrary number of “DataElementPrototype” classes 210. In other words, the composite aggregation 264 is a meta-modeling that the interface is a collection of individual data elements.

なお、「DataElementPrototype」クラス210にとっての「SenderReceiverInterface」クラス209は「interface」というロール名を持つ。また、「SenderReceiverInterface」クラス209にとっての「DataElementPrototype」クラス210は「dataElement」というロール名を持つ。   The “SenderReceiverInterface” class 209 for the “DataElementPrototype” class 210 has a role name “interface”. Further, the “DataElementPrototype” class 210 for the “SenderReceiverInterface” class 209 has a role name “dataElement”.

そして、ポート間の接続に関しては、以下のような関係が定義されている。すなわち、汎化265と汎化266はそれぞれ、「AssemblyConnector」クラス215と「DelegateConnector」クラス216が「Connecter」クラス214のサブクラスであることを示す。   The following relationship is defined for connection between ports. That is, generalization 265 and generalization 266 indicate that “AssemblyConnector” class 215 and “DelegateConnector” class 216 are subclasses of “Connecter” class 214, respectively.

また、いずれも多重度が「0..*」の集約267と集約268は、「CompositionType」クラス202が「AssemblyConnector」クラス215と「DelegateConnector」クラス216をそれぞれ任意の個数含みうることを示す。集約267と集約268は、部品同士が接続されうること(すなわち部品同士が通信可能であること)をメタモデル化したものである。   In addition, the aggregation 267 and the aggregation 268 having a multiplicity of “0 .. *” indicate that the “CompositionType” class 202 can include any number of “AssemblyConnector” classes 215 and “DelegateConnector” classes 216, respectively. The aggregation 267 and the aggregation 268 are metamodels that the components can be connected (that is, the components can communicate with each other).

また、それぞれ多重度が「1」の関連269と関連270は、「AssemblyConnector」クラス215が示す接続を、当該接続の両端のポートに対応付ける。つまり、関連269は、部品間の通信のための接続を示す「AssemblyConnector」クラス215が、通信におけるデータの出力元のポートとして、「Port」クラス211を「pPortRef」というロール名で参照することを示している。同様に、関連270は、「AssemblyConnector」クラス215が、通信におけるデータの入力先のポートとして「Port」クラス211を「rPortRef」というロール名で参照することを示している。   Further, the association 269 and the association 270 each having a multiplicity of “1” associate the connection indicated by the “AssemblyConnector” class 215 with the ports at both ends of the connection. In other words, the association 269 indicates that the “AssemblyConnector” class 215 indicating a connection for communication between components refers to the “Port” class 211 with a role name “pPortRef” as a data output source port in communication. Show. Similarly, the association 270 indicates that the “AssemblyConnector” class 215 refers to the “Port” class 211 with the role name “rPortRef” as a data input destination port in communication.

同様に、それぞれ多重度が「1」の関連271と関連272は、「DelegateConnector」クラス216が示す接続を、当該接続の両端のポートに対応付ける。つまり、関連271は、入れ子関係にある外部部品と内部部品の間の接続を示す「DelegateConnector」クラス216が、内部部品側のポートとして、「Port」クラス211を「innerPortRef」というロール名で参照することを示している。同様に、関連272は、「DelegateConnector」クラス216が、外部部品側のポートとして、「Port」クラス211を「outerPortRef」というロール名で参照することを示している。   Similarly, the association 271 and the association 272 each having a multiplicity of “1” associate the connection indicated by the “DelegateConnector” class 216 with the ports at both ends of the connection. In other words, in the relationship 271, the “DelegateConnector” class 216 indicating the connection between the external component and the internal component in the nested relationship refers to the “Port” class 211 with the role name “innerPortRef” as the internal component side port It is shown that. Similarly, the relationship 272 indicates that the “DelegateConnector” class 216 refers to the “Port” class 211 with the role name “outerPortRef” as a port on the external component side.

以上のとおり、第1のメタモデル101aによれば、部品をメタモデル化した「CompositionType」クラス202は「ComponentType」クラス201のサブクラスである。よって、「CompositionType」クラス202は、「RunnableEntity」クラス205を含み、「ConfigParam」クラス204と「Port」クラス211を含みうる。   As described above, according to the first metamodel 101a, the “CompositionType” class 202 obtained by metamodeling a component is a subclass of the “ComponentType” class 201. Therefore, the “CompositionType” class 202 includes a “RunnableEntity” class 205 and can include a “ConfigParam” class 204 and a “Port” class 211.

つまり、第1のメタモデル101aは、部品は駆動可能であること、部品はパラメタを含みうること、および部品は他の部品と通信するためのポートを含みうることを表している。そして、部品が含みうるポートとは、具体的には、「RequesterPort」クラス212に対応する入力ポートか、「ProviderPort」クラス213に対応する出力ポートである。   That is, the first metamodel 101a represents that a part can be driven, a part can include a parameter, and a part can include a port for communicating with another part. The port that can be included in the component is specifically an input port corresponding to the “RequesterPort” class 212 or an output port corresponding to the “ProviderPort” class 213.

また、第1のメタモデル101aは、いくつかのデータ要素の集合体として定義されるインタフェースを、「SenderReceiverInterface」クラス209と「DataElementPrototype」クラス210によりメタモデル化している。そして、「SenderReceiverInterface」クラス209を汎化した「Interface」クラス208を「Port」クラス211が参照していることは、2つのポート間の通信が、何らかの所定のインタフェースを介して行われることをメタモデル化したものである。   Also, the first metamodel 101 a metamodels an interface defined as a collection of several data elements by a “SenderReceiverInterface” class 209 and a “DataElementPrototype” class 210. The fact that the “Port” class 211 refers to the “Interface” class 208 that is a generalization of the “SenderReceiverInterface” class 209 indicates that communication between two ports is performed via some predetermined interface. Modeled.

また、各部品は、入れ子関係にない他の部品との間がポートを介して接続されるかもしれない。このことは、「CompositionType」クラス202が「AssemblyConnector」クラス215を含みうると示す集約267により、メタモデル化されている。   In addition, each part may be connected to other parts that are not nested through a port. This is metamodeled by an aggregation 267 that indicates that the “CompositionType” class 202 can include an “AssemblyConnector” class 215.

さらに、部品同士の入れ子関係が可能であるということが次のようにメタモデル化されている。すなわち、部品をメタモデル化した「CompositionType」クラス202を汎化した「ComponentType」クラス201を「ComponentPrototype」クラス203が参照しており、その「ComponentPrototype」クラス203が「CompositionType」クラス202に含まれることを集約253が示す。これにより、外部部品に内部部品が含まれる入れ子関係が可能であるということがメタモデル化される。   Further, the metamodeling that parts can be nested is possible as follows. That is, the “ComponentPrototype” class 203 refers to the “ComponentType” class 201 that generalizes the “CompositionType” class 202 that meta-models the component, and the “ComponentPrototype” class 203 is included in the “CompositionType” class 202. Is indicated by the aggregation 253. Thus, it is metamodeled that a nested relationship in which the internal part is included in the external part is possible.

そして、外部部品と内部部品それぞれのポート間が接続されることで、外部部品と内部部品との間の通信が可能であることは、任意の部品同士がポート間の接続により通信可能であることと同様である。   And, by connecting between the ports of the external component and the internal component, it is possible to communicate between the external component and the internal component. It is the same.

つまり、外部部品と内部部品それぞれのポート間の接続は、「DelegateConnector」クラス216によりメタモデル化されている。外部部品と内部部品がポートを介して接続されうることは、「CompositionType」クラス202が「DelegateConnector」クラス216を含みうることを示す集約268により、メタモデル化されている。   That is, the connection between the ports of the external component and the internal component is metamodeled by the “DelegateConnector” class 216. The fact that an external component and an internal component can be connected via a port is metamodeled by an aggregation 268 indicating that the “CompositionType” class 202 can include a “DelegateConnector” class 216.

続いて、図1のメタモデル101として図2の第1のメタモデル101aが使われる場合の、図1のモデル図105の具体例を、図3を参照して説明する。図3に示すのは、第1のメタモデル101aにしたがうモデル図105aであり、具体的には、第1実施形態の表記ルール102にしたがって拡張されたUMLのクラス図である。なお、以下では、拡張されたクラス図およびオブジェクト図のことも、単に「クラス図」および「オブジェクト図」という。   Next, a specific example of the model diagram 105 in FIG. 1 when the first meta model 101a in FIG. 2 is used as the meta model 101 in FIG. 1 will be described with reference to FIG. FIG. 3 shows a model diagram 105a according to the first metamodel 101a. Specifically, it is a UML class diagram extended according to the notation rule 102 of the first embodiment. In the following, the extended class diagram and object diagram are also simply referred to as “class diagram” and “object diagram”.

なお、後述するように、モデル図105はクラス図だけに限られず、オブジェクト図やシーケンス図などでもよい。また、複数のモデル図105により1つのモデルが表されてもよい。   As will be described later, the model diagram 105 is not limited to a class diagram but may be an object diagram or a sequence diagram. One model may be represented by a plurality of model diagrams 105.

モデル図105aは、図1のプロセスP101の結果として作られる。詳細は図10とともに後述するが、プロセスP101は、UMLツール103とDSM支援装置104が協働して、制約条件のもとでユーザからの指示に応じてソフトウェアのモデルを編集する処理である。プロセスP101でUMLツール103とDSM支援装置104は、編集したモデルを、UMLデータであるモデル図105、およびXMLデータであるモデル106の形で出力する。つまり、図3のモデル図105aは、制約条件を満たすクラス図である。   Model diagram 105a is created as a result of process P101 of FIG. Although details will be described later with reference to FIG. 10, the process P101 is a process in which the UML tool 103 and the DSM support apparatus 104 cooperate to edit a software model in accordance with an instruction from the user under a constraint condition. In the process P101, the UML tool 103 and the DSM support apparatus 104 output the edited model in the form of a model diagram 105 that is UML data and a model 106 that is XML data. That is, the model diagram 105a in FIG. 3 is a class diagram that satisfies the constraint conditions.

具体的には、図3のモデル図105aは、第1のメタモデル101aに含まれる「CompositionType」クラス202と「SenderReceiverInterface」クラス209を含む。なお、図3では、第1のメタモデル101aが「メタモデル」という名のパッケージに含まれるものとして、「メタモデル::CompositionType」のようにパスを使ってクラス名を表現している。   Specifically, the model diagram 105a of FIG. 3 includes a “CompositionType” class 202 and a “SenderReceiverInterface” class 209 included in the first metamodel 101a. In FIG. 3, the first metamodel 101a is included in a package named “metamodel”, and a class name is expressed using a path such as “metamodel :: CompositionType”.

モデル図105aは、ユーザ定義の2つのクラス、すなわち、「部品A」クラス301と「インタフェースA」クラス302を含む。「部品A」クラス301は、「受信ポート」および「送信ポート」という名前の2つのポート303と304を含む。   The model diagram 105a includes two user-defined classes: a “part A” class 301 and an “interface A” class 302. The “component A” class 301 includes two ports 303 and 304 named “reception port” and “transmission port”.

なお、以下ではポート303と304をそれぞれ「『受信ポート』ポート」と「『送信ポート』ポート」という。同様に、「ZZZ」という名前でインスタンス化された、「Port」クラス211のサブクラスのオブジェクトを「『ZZZ』ポート」という。   In the following description, the ports 303 and 304 are referred to as ““ reception port ”port” and ““ transmission port ”port”, respectively. Similarly, an object of a subclass of the “Port” class 211 instantiated with the name “ZZZ” is referred to as ““ ZZZ ”port”.

第1実施形態において、第1のメタモデル101aにおける「RequesterPort」クラス212のオブジェクトは、図3の「受信ポート」ポート303のように、矩形の中に逆V字を書いた記号で表記される。そして、第1のメタモデル101aにおける「ProviderPort」クラス213のオブジェクトは、図3の「送信ポート」ポート304のように、矩形の中に黒い三角形を描いた記号で表記される。   In the first embodiment, an object of the “RequesterPort” class 212 in the first metamodel 101a is represented by a symbol in which an inverted V character is written in a rectangle, like a “reception port” port 303 in FIG. . Then, an object of the “ProviderPort” class 213 in the first metamodel 101a is represented by a symbol in which a black triangle is drawn in a rectangle like a “transmission port” port 304 in FIG.

また、モデル図105aでは、「部品A」クラス301が「CompositionType」クラス202のサブクラスであることを示す汎化305が定義されている。同様に、モデル図105aでは、「インタフェースA」クラス302が「SenderReceiverInterface」クラス209のサブクラスであることを示す汎化306も定義されている。   Further, in the model diagram 105 a, a generalization 305 indicating that the “component A” class 301 is a subclass of the “CompositionType” class 202 is defined. Similarly, in the model diagram 105a, a generalization 306 indicating that the “interface A” class 302 is a subclass of the “SenderReceiverInterface” class 209 is also defined.

さらに、モデル図105aでは、「受信ポート」ポート303から「インタフェースA」クラス302への依存307と、「送信ポート」ポート304から「インタフェースA」クラス302への依存308が定義されている。   Further, in the model diagram 105 a, a dependency 307 from the “reception port” port 303 to the “interface A” class 302 and a dependency 308 from the “transmission port” port 304 to the “interface A” class 302 are defined.

以上のような内容を持つモデル図105aは、図2の第1のメタモデル101aおよび図1の表記ルール102に適合する。換言すれば、モデル図105aは、第1のメタモデル101aにしたがって作成されたモデルを表すUMLのクラス図であり、表記ルール102が表す制約条件を満たしている。具体的には以下の(c1)〜(c7)のとおりである。   The model diagram 105a having the above contents conforms to the first meta model 101a in FIG. 2 and the notation rule 102 in FIG. In other words, the model diagram 105 a is a UML class diagram representing a model created according to the first metamodel 101 a and satisfies the constraint condition represented by the notation rule 102. Specifically, it is as the following (c1) to (c7).

(c1)表記ルール102は、「部品をモデル化したクラスは、『CompositionType』クラス202のサブクラスとして表記せよ」というルールを含む。モデル図105aは表記ルール102にしたがって表記されている。   (C1) The notation rule 102 includes a rule that “a class in which a part is modeled should be indicated as a subclass of the“ CompositionType ”class 202”. The model diagram 105 a is written according to the writing rule 102.

すなわち、「部品A」クラス301が「CompositionType」クラス202のサブクラスであることが、汎化305の線によって図3のクラス図上で表記されている。その結果、モデル図105aでは、「『部品A』クラス301は、(インタフェースなどではなく)部品をモデル化したクラスである」という意味が示されている。   That is, the fact that the “component A” class 301 is a subclass of the “CompositionType” class 202 is indicated on the class diagram of FIG. As a result, the model diagram 105a indicates the meaning that “the“ component A ”class 301 is a class that models a component (not an interface or the like)”.

(c2)第1のメタモデル101aによれば、図2に示したとおり、「ComponentType」クラス201とそこから派生するクラスは、「Port」クラス211を含みうる。よって、モデル図105aにおいて、「部品A」クラス301が「受信ポート」ポート303と「送信ポート」ポート304を含むことは、図2の第1のメタモデル101aと適合している。   (C2) According to the first metamodel 101a, as shown in FIG. 2, the “ComponentType” class 201 and classes derived therefrom can include the “Port” class 211. Therefore, in the model diagram 105a, the fact that the “component A” class 301 includes the “reception port” port 303 and the “transmission port” port 304 is compatible with the first metamodel 101a of FIG.

(c3)表記ルール102は、「インタフェースをモデル化したクラスは、『SenderReceiverInterface』クラス209のサブクラスとして表記せよ」というルールを含む。モデル図105aは表記ルール102にしたがって表記されている。   (C3) The notation rule 102 includes a rule that “a class that models an interface should be expressed as a subclass of the“ SenderReceiverInterface ”class 209”. The model diagram 105 a is written according to the writing rule 102.

すなわち、「インタフェースA」クラス302が「SenderReceiverInterface」クラス209のサブクラスであることが、汎化306の線によって図3のクラス図上で表記されている。その結果、モデル図105aでは、「『インタフェースA』クラス302は、(部品などではなく)インタフェースをモデル化したクラスである」という意味が示されている。   That is, the fact that the “interface A” class 302 is a subclass of the “SenderReceiverInterface” class 209 is indicated on the class diagram of FIG. As a result, the model diagram 105a indicates the meaning that “the“ interface A ”class 302 is a class that models an interface (not a component or the like)”.

(c4)表記ルール102は、「あるインタフェースを介したポート間の通信は、通信の両端のポートに相当する2つのオブジェクトから、同じ1つのインタフェースのクラスへの依存により表記せよ」というルールを含む。モデル図105aは表記ルール102にしたがって表記されている。   (C4) The notation rule 102 includes a rule that “communication between ports via a certain interface should be expressed by dependence on two classes corresponding to the ports at both ends of the communication depending on the class of the same interface”. . The model diagram 105 a is written according to the writing rule 102.

つまり、「部品A」クラス301の「受信ポート」ポート303への入力が、「インタフェースA」クラス302によりモデル化されるインタフェースを介して行われるということが、モデル図105aでは依存307により表記されている。同様に、「部品A」クラス301の「送信ポート」ポート304からの出力が、「インタフェースA」クラス302によりモデル化されるインタフェースを介して行われるということが、モデル図105aでは依存308により表記されている。   That is, the input to the “reception port” port 303 of the “component A” class 301 is performed via the interface modeled by the “interface A” class 302, which is represented by the dependency 307 in the model diagram 105a. ing. Similarly, the output from the “transmission port” port 304 of the “component A” class 301 is performed via an interface modeled by the “interface A” class 302, which is represented by the dependency 308 in the model diagram 105a. Has been.

したがって、「部品A」クラス301のインスタンス間の通信が、「インタフェースA」クラス302によりモデル化されているインタフェースを介して行われるということが、モデル図105aにおいては依存307と308により表されている。   Accordingly, the inter-instance communication of the “component A” class 301 is performed via the interface modeled by the “interface A” class 302, as represented by the dependencies 307 and 308 in the model diagram 105a. Yes.

(c5)表記ルール102は、「部品をモデル化したクラス内でユーザが定義した属性に対し、第1のメタモデル101aの『ConfigParam』クラス204と同名の<<ConfigParam>>というステレオタイプを付加してもよい」というルールを含む。そして、表記ルール102は、「<<ConfigParam>>というステレオタイプが付加された属性は、当該部品を利用する際に当該部品に特徴を与えるパラメタであることを意味する」という、意味の解釈に関するルールも含む。   (C5) The notation rule 102 indicates that “the stereotype << ConfigParam >> having the same name as the“ ConfigParam ”class 204 of the first metamodel 101a is added to the attribute defined by the user in the class that models the part. It may include a rule of “may be”. The notation rule 102 relates to the interpretation of the meaning that “the attribute to which the stereotype << ConfigParam >> is added is a parameter that gives a characteristic to the component when the component is used”. Includes rules.

モデル図105aは表記ルール102にしたがって表記されており、「部品A」クラス301において、ユーザが定義した「パラメタ」という名前の整数型の属性には、<<ConfigParam>>というステレオタイプが付加されている。なお、「部品A」クラス301自体に対してステレオタイプが付加される訳ではないので、ユーザは、「部品A」クラス301に任意のステレオタイプを付加する自由を依然として持っている。   The model diagram 105a is written according to the notation rule 102. In the “component A” class 301, a stereotype << ConfigParam >> is added to the integer attribute named “parameter” defined by the user. ing. Since the stereotype is not added to the “component A” class 301 itself, the user still has the freedom to add any stereotype to the “component A” class 301.

(c6)表記ルール102は、「部品をモデル化したクラス内でユーザが定義したパブリックな操作に対し、第1のメタモデル101aの『RunnableEntity』クラス205と同名の<<RunnableEntity>>というステレオタイプを付加してもよい」というルールを含む。   (C6) The notation rule 102 is “a stereotype << RunnableEntity >> having the same name as the“ RunnableEntity ”class 205 of the first metamodel 101a for a public operation defined by a user in a class that models a part. May be added ".

そして、表記ルール102は、「<<RunnableEntity>>というステレオタイプが付加された操作は、当該部品を駆動するために外部のタスクから呼び出し可能なパブリックな操作である」という、意味の解釈に関するルールも含む。具体的には、表記ルール102によれば、<<RunnableEntity>>というステレオタイプが付加された操作は「RunnableEntity」クラス205のインスタンスとして解釈される。   The notation rule 102 is a rule regarding interpretation of meaning that “the operation with the stereotype << RunnableEntity >> added is a public operation that can be called from an external task to drive the component”. Including. Specifically, according to the notation rule 102, an operation to which the stereotype << RunnableEntity >> is added is interpreted as an instance of the “RunnableEntity” class 205.

モデル図105aは表記ルール102にしたがって表記されており、「部品A」クラス301において、ユーザが定義した「実行ポイント」という名前の、返り値を持たない関数には、<<RunnableEntity>>というステレオタイプが付加されている。なお、「部品A」クラス301自体に対してステレオタイプが付加される訳ではないので、ユーザは、「部品A」クラス301に任意のステレオタイプを付加する自由を依然として持っている。   The model diagram 105a is written in accordance with the notation rule 102. In the “component A” class 301, a function named “execution point” defined by the user and having no return value is stereo with << RunnableEntity >>. A type is added. Since the stereotype is not added to the “component A” class 301 itself, the user still has the freedom to add any stereotype to the “component A” class 301.

(c7)第1のメタモデル101aによれば、図2に示したとおり、「SenderReceiverInterface」クラス209が「DataElementPrototype」クラス210を含みうる。
よって、モデル図105aにおいて、「SenderReceiverInterface」クラス209のサブクラスである「インタフェースA」クラス302が2つのデータ要素を属性として含むことは、第1のメタモデル101aと適合している。つまり、「インタフェースA」クラス302の属性として定義された「要素1」および「要素2」という名前の整数型の2つの属性は、メタモデルにおける「DataElementPrototype」クラス210が、モデルにおいてインスタンス化されたものである。
(C7) According to the first metamodel 101a, the “SenderReceiverInterface” class 209 can include the “DataElementPrototype” class 210 as shown in FIG.
Therefore, in the model diagram 105a, the fact that the “interface A” class 302, which is a subclass of the “SenderReceiverInterface” class 209, includes two data elements as attributes is compatible with the first meta model 101a. That is, two integer type attributes named “element 1” and “element 2” defined as attributes of the “interface A” class 302 are obtained by instantiating the “DataElementPrototype” class 210 in the meta model in the model. Is.

以上の(c1)〜(c7)のように、表記ルール102は、メタモデル101にしたがったモデル図105における表記の文法(シンタックス)を規定する。また、メタモデル101と表記ルール102は、当該文法にしたがって表記されたUMLの図の意味(セマンティクス)も規定している。   As described above (c1) to (c7), the notation rule 102 defines the notation grammar (syntax) in the model diagram 105 according to the metamodel 101. Further, the metamodel 101 and the notation rule 102 also define the meaning (semantics) of the UML diagram expressed according to the grammar.

そして、図1のプロセスP101において、UMLツール103とDSM支援装置104は協働して、上記の(c1)〜(c7)で説明したように制約条件に適合するようにモデル図105を作成する。以下、図4を参照して、UMLツール103、DSM支援装置104、およびコード生成装置108についてさらに詳しく説明する。   In the process P101 of FIG. 1, the UML tool 103 and the DSM support apparatus 104 cooperate to create the model diagram 105 so as to meet the constraints as described in the above (c1) to (c7). . Hereinafter, the UML tool 103, the DSM support device 104, and the code generation device 108 will be described in more detail with reference to FIG.

図4は、第1実施形態によるDSM支援装置およびその他の装置を示すブロック図である。図4には、図1のUMLツール103、DSM支援装置104、コード生成装置108と、その他の装置が図示されている。   FIG. 4 is a block diagram showing the DSM support device and other devices according to the first embodiment. FIG. 4 shows the UML tool 103, the DSM support device 104, the code generation device 108, and other devices shown in FIG.

図4において、入力装置401は、キーボード、マウス等のポインティングデバイス、タッチパネル、マイクなど、ユーザからの入力を受け付けるための装置である。また、出力装置402は、UMLの各種の図(クラス図、オブジェクト図、シーケンス図など)の図形を表示するディスプレイや、これらの図を印刷するプリンタなどの装置である。   In FIG. 4, an input device 401 is a device for receiving input from a user, such as a keyboard, a pointing device such as a mouse, a touch panel, a microphone, and the like. The output device 402 is a device such as a display for displaying various UML diagrams (class diagram, object diagram, sequence diagram, etc.) and a printer for printing these diagrams.

UMLツール103は、入力装置401および出力装置402と接続された(あるいは入力装置401と出力装置402を備える)コンピュータがプログラムを実行することで実現される。   The UML tool 103 is realized by executing a program by a computer connected to the input device 401 and the output device 402 (or including the input device 401 and the output device 402).

具体的には、UMLツール103は、入力装置401および出力装置402との間のユーザインタフェースを提供する。そして、UMLツール103は、入力装置401とユーザインタフェースを介してユーザから与えられる指示に応じて、UMLの各種の図(クラス図、オブジェクト図、シーケンス図など)を出力装置402に出力する。UMLツール103は、例えば上記(a2)で述べたのと同様のエディタであってもよい。   Specifically, the UML tool 103 provides a user interface between the input device 401 and the output device 402. The UML tool 103 then outputs various UML diagrams (class diagram, object diagram, sequence diagram, etc.) to the output device 402 in accordance with instructions given from the user via the input device 401 and the user interface. The UML tool 103 may be an editor similar to that described in (a2) above, for example.

また、第1実施形態におけるDSM支援装置104は、具体的には、コンピュータがプログラムを実行することにより実現される。第1実施形態においてDSM支援装置104を実現するプログラムは、UMLツール103を実現するプログラムに対するアドオンプログラムである。もちろん、実施形態によっては、UMLツール103とDSM支援装置104の機能を併せて実現するプログラムをコンピュータが実行することで、UMLツール103とDSM支援装置104が1つに統合されてもよい。   Further, the DSM support apparatus 104 in the first embodiment is specifically realized by a computer executing a program. In the first embodiment, the program that implements the DSM support apparatus 104 is an add-on program to the program that implements the UML tool 103. Of course, depending on the embodiment, the UML tool 103 and the DSM support apparatus 104 may be integrated into one by executing a program that realizes the functions of the UML tool 103 and the DSM support apparatus 104 together.

DSM支援装置104は、具体的には、図4に示すようにモデル作成ナビゲーション部403を備える。モデル作成ナビゲーション部403は、メタモデル101と表記ルール102に基づいて、UMLツール103の動作に制約をかける。   Specifically, the DSM support apparatus 104 includes a model creation navigation unit 403 as shown in FIG. The model creation navigation unit 403 restricts the operation of the UML tool 103 based on the meta model 101 and the notation rule 102.

具体的には、モデル作成ナビゲーション部403は、メニュー選択部404、部品用メニュー提供部405、ポート用メニュー提供部406、インタフェース用メニュー提供部407、内部部品用メニュー提供部408およびタスク用メニュー提供部409を備える。また、DSM支援装置104はさらに、XMLなどの所定の言語によって図1のモデル106を作成するモデル作成部410を備える。   Specifically, the model creation navigation unit 403 includes a menu selection unit 404, a component menu providing unit 405, a port menu providing unit 406, an interface menu providing unit 407, an internal component menu providing unit 408, and a task menu providing. Part 409. The DSM support apparatus 104 further includes a model creation unit 410 that creates the model 106 in FIG. 1 in a predetermined language such as XML.

なお、第1実施形態において、図1の表記ルール102は、DSM支援装置104内の各コンポーネントに、制御ロジックとして組み込まれている。DSM支援装置104の動作の詳細は、図10および11とともに後述する。   In the first embodiment, the notation rule 102 in FIG. 1 is incorporated as a control logic in each component in the DSM support apparatus 104. Details of the operation of the DSM support device 104 will be described later with reference to FIGS.

また、例えばハードディスク装置やRAM(Random Access Memory)などの記憶装置411が設けられている。記憶装置411は、モデル図格納部412、意味モデル格納部413、テンプレート格納部414、ソースコード格納部415およびメタモデル格納部416を備える。   Further, for example, a storage device 411 such as a hard disk device or a RAM (Random Access Memory) is provided. The storage device 411 includes a model diagram storage unit 412, a semantic model storage unit 413, a template storage unit 414, a source code storage unit 415, and a metamodel storage unit 416.

モデル図格納部412は、図1のプロセスP101で作成・編集される、UMLで表記された、図1のモデル図105(具体例は、例えば図3のモデル図105a)を格納する。意味モデル格納部413は、同じくプロセスP101で作成・編集され、モデル図105の意味をXMLにより表す、図1のモデル106(具体例は、例えば図9A〜9Dのモデル106a)を格納する。   The model diagram storage unit 412 stores the model diagram 105 of FIG. 1 (specific example is, for example, the model diagram 105a of FIG. 3) written in UML and created / edited in the process P101 of FIG. The semantic model storage unit 413 stores the model 106 in FIG. 1 (specific examples are, for example, the models 106a in FIGS. 9A to 9D) that are created and edited in the process P101 and express the meaning of the model diagram 105 in XML.

テンプレート格納部414は、XSLで表されて予め用意された、図1のコード生成テンプレート107を格納する。ソースコード格納部415は、図1のプロセスP102で生成される、C++やJava(登録商標)等のプログラミング言語のソースコード109を格納する。   The template storage unit 414 stores the code generation template 107 of FIG. 1 that is expressed in XSL and prepared in advance. The source code storage unit 415 stores the source code 109 of a programming language such as C ++ or Java (registered trademark) generated in the process P102 of FIG.

メタモデル格納部416は、UMLで表記されて予め用意された、図1のメタモデル101(具体例は、例えば図2の第1のメタモデル101a)を格納する。
以上の各部の動作は、詳しくは図10〜12とともに説明するが、概要は以下のとおりである。
The metamodel storage unit 416 stores the metamodel 101 of FIG. 1 (specific example is, for example, the first metamodel 101a of FIG. 2) prepared in advance in UML.
The operation of each unit described above will be described in detail with reference to FIGS. 10 to 12, but the outline is as follows.

モデル作成ナビゲーション部403は、メタモデル101と表記ルール102にしたがって制約条件を満たしつつソフトウェアをモデル化するための、各種メニューを提供する。具体的には、モデル作成ナビゲーション部403は、UMLツール103の動作に制約をかけるため、UMLツール103を監視する。   The model creation navigation unit 403 provides various menus for modeling software while satisfying the constraint conditions according to the meta model 101 and the notation rule 102. Specifically, the model creation navigation unit 403 monitors the UML tool 103 in order to restrict the operation of the UML tool 103.

そして、入力装置401がユーザからの入力をUMLツール103へ渡すと、その入力を契機としてモデル作成ナビゲーション部403は、入力の内容に応じて内部の適宜のコンポーネントを呼び出して処理を行わせる。また、モデル作成ナビゲーション部403は、処理の結果に基づいてモデル106を作成あるいは編集するよう、モデル作成部410に命令し、モデル作成部410はモデル106を作成あるいは編集する。   Then, when the input device 401 passes the input from the user to the UML tool 103, the model creation navigation unit 403 calls an appropriate internal component according to the content of the input to perform processing. Further, the model creation navigation unit 403 instructs the model creation unit 410 to create or edit the model 106 based on the processing result, and the model creation unit 410 creates or edits the model 106.

具体的には、モデル作成ナビゲーション部403は、部品全般、ポート、インタフェース、内部部品、タスクそれぞれのモデル化のための各メニューと、メニュー選択のユーザインタフェースを提供する。UMLツール103が受け取った入力がメニュー選択のための入力であれば、モデル作成ナビゲーション部403においてメニュー選択部404が、選択されたメニューに対応するコンポーネントを呼び出す。   Specifically, the model creation navigation unit 403 provides menus for modeling all parts, ports, interfaces, internal parts, and tasks, and a menu selection user interface. If the input received by the UML tool 103 is an input for menu selection, in the model creation navigation unit 403, the menu selection unit 404 calls a component corresponding to the selected menu.

なお、モデル作成ナビゲーション部403は、例えば、後述の図11の駆動順序定義処理のためのメニューなど、上記以外の他のメニューをさらに提供してもよいが、図4では紙幅の都合上、他のメニューに関わるコンポーネントは図示を省略している。   Note that the model creation navigation unit 403 may further provide other menus other than the above, such as a menu for driving order definition processing in FIG. 11 to be described later. However, in FIG. The components related to the menu are not shown.

さて、部品のモデル化のためのメニューを選択する入力をUMLツール103が受け取った場合、メニュー選択部404は、部品用メニュー提供部405を呼び出す。また、ポートのモデル化のためのメニューを選択する入力をUMLツール103が受け取った場合、メニュー選択部404は、ポート用メニュー提供部406を呼び出す。   When the UML tool 103 receives an input for selecting a menu for modeling a part, the menu selection unit 404 calls the part menu providing unit 405. When the UML tool 103 receives an input for selecting a menu for port modeling, the menu selection unit 404 calls the port menu provision unit 406.

同様に、インタフェースのモデル化のためのメニューを選択する入力をUMLツール103が受け取った場合、メニュー選択部404は、インタフェース用メニュー提供部407を呼び出す。そして、内部部品のモデル化のためのメニューを選択する入力をUMLツール103が受け取った場合、メニュー選択部404は、内部部品用メニュー提供部408を呼び出す。また、タスクのモデル化のためのメニューを選択する入力をUMLツール103が受け取った場合、メニュー選択部404は、タスク用メニュー提供部409を呼び出す。   Similarly, when the UML tool 103 receives an input for selecting a menu for modeling an interface, the menu selection unit 404 calls the interface menu provision unit 407. When the UML tool 103 receives an input for selecting a menu for modeling the internal part, the menu selection unit 404 calls the internal part menu providing unit 408. When the UML tool 103 receives an input for selecting a menu for task modeling, the menu selection unit 404 calls the task menu provision unit 409.

そして、各メニューが選択された後で、各メニューにおける詳細設定のための入力をUMLツール103が受け取った場合、モデル作成ナビゲーション部403は、当該メニューに対応するコンポーネントに入力内容を渡す。   When the UML tool 103 receives an input for detailed setting in each menu after each menu is selected, the model creation navigation unit 403 passes the input content to the component corresponding to the menu.

例えば、部品用のメニューが選択された後、部品をモデル化したクラスを新規作成するための入力をUMLツール103が受け取ったら、その入力をモデル作成ナビゲーション部403がフックして、部品用メニュー提供部405に渡す。そして、部品用メニュー提供部405は、入力にしたがってクラスを新規作成する。   For example, after the menu for a part is selected, when the UML tool 103 receives an input for creating a new class that models the part, the model creation navigation unit 403 hooks the input and provides the menu for the part. Part 405. Then, the parts menu providing unit 405 creates a new class according to the input.

その際、部品用メニュー提供部405は、UMLで表記されメタモデル格納部416に格納された図1のメタモデル101を読み出す。そして、部品用メニュー提供部405は、制御ロジックとして部品用メニュー提供部405自身に組み込まれている図1の表記ルール102と、読み出したメタモデル101にしたがって、制約をかけながら、部品をモデル化したクラスを新規作成する。   At that time, the component menu providing unit 405 reads the meta model 101 of FIG. 1 which is expressed in UML and stored in the meta model storage unit 416. Then, the component menu providing unit 405 models the component while applying restrictions according to the notation rule 102 of FIG. 1 incorporated in the component menu providing unit 405 itself as control logic and the read metamodel 101. Create a new class.

新規作成されたクラスの情報は、部品用メニュー提供部405を含むモデル作成ナビゲーション部403からUMLツール103へと通知される。すると、UMLツール103は、通知された情報に基づいて、新規作成されたクラスを表す図形を出力装置402に出力させる。例えば、UMLツール103は、新規作成されたクラスを示す矩形をディスプレイに描画するとともに、図3の汎化305の線をディスプレイに描画するよう、出力装置402に命令する。   Information on the newly created class is notified from the model creation navigation unit 403 including the part menu providing unit 405 to the UML tool 103. Then, the UML tool 103 causes the output device 402 to output a graphic representing the newly created class based on the notified information. For example, the UML tool 103 draws a rectangle indicating the newly created class on the display and instructs the output device 402 to draw the line of the generalization 305 in FIG. 3 on the display.

また、新規作成されたクラスの情報は、モデル作成部410にも通知される。すると、モデル作成部410は、通知された情報に基づいて、新規作成されたクラスに対応するXMLコードを生成することで、モデル106を随時編集してゆく。   Information on the newly created class is also notified to the model creation unit 410. Then, the model creation unit 410 edits the model 106 as needed by generating an XML code corresponding to the newly created class based on the notified information.

以上、部品のモデル化のためのメニューを例として部品用メニュー提供部405に関わる動作を説明したが、他のメニューについても同様である。
つまり、入力装置401からの入力がUMLツール103を介してモデル作成ナビゲーション部403に入力される。そして、各メニューに対するコンポーネントの制御下で、UMLの図形に関する情報がUMLツール103に戻され、UMLツール103が図形を出力装置402に出力させ、UMLの図形に対応する意味を表すモデル106がモデル作成部410により編集される。
The operation related to the part menu providing unit 405 has been described above by taking the part modeling menu as an example, but the same applies to other menus.
That is, an input from the input device 401 is input to the model creation navigation unit 403 via the UML tool 103. Then, under the control of the component for each menu, information about the UML graphic is returned to the UML tool 103, and the UML tool 103 outputs the graphic to the output device 402, and the model 106 representing the meaning corresponding to the UML graphic is the model. Edited by the creation unit 410.

以上のようにして、入力装置401とUMLツール103を介した入力に基づいて、モデルが作成され、編集される。つまり、部品、ポート、インタフェース、内部部品、タスクなどが、適宜、作成ないし編集されることで、モデル全体の編集が行われる。   As described above, the model is created and edited based on the input via the input device 401 and the UML tool 103. That is, the entire model is edited by appropriately creating or editing components, ports, interfaces, internal components, tasks, and the like.

その結果として最終的に得られたモデル図105は、UMLツール103を介してモデル図格納部412に格納される。同様に、最終的に得られたモデル106は、モデル作成部410から意味モデル格納部413に出力され、格納される。   The model diagram 105 finally obtained as a result is stored in the model diagram storage unit 412 via the UML tool 103. Similarly, the model 106 finally obtained is output from the model creation unit 410 to the semantic model storage unit 413 and stored.

すると、図1のプロセスP102に示すように、コード生成装置108が意味モデル格納部413からモデル106を読み出し、テンプレート格納部414からコード生成テンプレート107を読み出して、ソースコード109を生成する。そして、コード生成装置108は生成したソースコード109をソースコード格納部415に格納する。   Then, as shown in process P102 of FIG. 1, the code generation device 108 reads the model 106 from the semantic model storage unit 413, reads the code generation template 107 from the template storage unit 414, and generates the source code 109. The code generation device 108 stores the generated source code 109 in the source code storage unit 415.

したがって、ドメインに特有の事項を組み込んだメタモデル101が予め作成されていれば、DSM支援装置104による制約条件の適用下において、UMLツール103を介して、UMLを用いたDSMによるモデル作成が可能となる。そして、メタモデル101と表記ルール102にしたがった解釈のもとでモデル図105と意味的に等価なモデル106からは、自動的にソースコード109が生成される。   Therefore, if a meta model 101 incorporating domain-specific items is created in advance, it is possible to create a model by DSM using UML via the UML tool 103 under the application of the constraints by the DSM support device 104. It becomes. The source code 109 is automatically generated from the model 106 that is semantically equivalent to the model diagram 105 under the interpretation according to the meta model 101 and the notation rule 102.

よって、第1実施形態によれば、UMLを使用する際の上記(a1)〜(a3)の利点を活かしつつ、DSMによる設計における(b1)〜(b5)のような欠点を克服することができる。   Therefore, according to the first embodiment, it is possible to overcome the disadvantages (b1) to (b5) in the design by DSM while taking advantage of the above (a1) to (a3) when using UML. it can.

また、図3に関して説明したように、第1実施形態では、ユーザ定義のクラスに対してステレオタイプを付加しなくても、例えば汎化関係などからモデル図105における矩形や線の意味が自動的に解釈可能である。したがって、第1実施形態には、上記比較例と比べて設計の自由度が大きいという利点もある。   In addition, as described with reference to FIG. 3, in the first embodiment, the meaning of rectangles and lines in the model diagram 105 is automatically determined from a generalization relationship, for example, without adding a stereotype to a user-defined class. Can be interpreted. Therefore, the first embodiment also has an advantage that the degree of freedom of design is large compared to the comparative example.

ところで、図4に示す各ブロックを実現するハードウェアは、例えば図5に示すものでもよい。例えば、図4のUMLツール103、DSM支援装置104およびコード生成装置108は、1台のコンピュータにより実現されてもよく、入力装置401、出力装置402および記憶装置411が当該コンピュータに備えられていてもよい。図5はそのような場合の例を示す。   Incidentally, the hardware for realizing each block shown in FIG. 4 may be, for example, that shown in FIG. For example, the UML tool 103, the DSM support device 104, and the code generation device 108 in FIG. 4 may be realized by one computer, and the input device 401, the output device 402, and the storage device 411 are provided in the computer. Also good. FIG. 5 shows an example of such a case.

図5は、コンピュータの構成図である。図5のコンピュータ500は、CPU(Central Processing Unit)501と、ROM(Read Only Memory)502と、RAM503と、通信インタフェース504を備える。また、コンピュータ500は、図4に示した入力装置401と出力装置402を備える。コンピュータ500はさらに、ハードディスク装置505と、コンピュータ読み取り可能な可搬型記憶媒体506の駆動装置507を備える。   FIG. 5 is a configuration diagram of the computer. A computer 500 in FIG. 5 includes a CPU (Central Processing Unit) 501, a ROM (Read Only Memory) 502, a RAM 503, and a communication interface 504. The computer 500 includes the input device 401 and the output device 402 shown in FIG. The computer 500 further includes a hard disk device 505 and a drive device 507 for a computer-readable portable storage medium 506.

実施形態によっては、ハードディスク装置505のような磁気記憶装置に代えて、あるいはハードディスク装置505とともに、フラッシュメモリ等の不揮発性の半導体メモリ装置をコンピュータ500が備えていてもよい。また、可搬型記憶媒体506としては、例えば、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスク、光磁気ディスク、磁気ディスク、フラッシュメモリ等の半導体メモリカードなどが利用可能である。   Depending on the embodiment, the computer 500 may include a nonvolatile semiconductor memory device such as a flash memory in place of the magnetic storage device such as the hard disk device 505 or together with the hard disk device 505. As the portable storage medium 506, for example, an optical disk such as a CD (Compact Disc) or a DVD (Digital Versatile Disk), a semiconductor memory card such as a magneto-optical disk, a magnetic disk, or a flash memory can be used.

そして、CPU501、ROM502、RAM503、通信インタフェース504、入力装置401、出力装置402、ハードディスク装置505および駆動装置507は、バス508により接続されている。また、コンピュータ500は、通信インタフェース504を介してネットワーク509に接続されている。   The CPU 501, ROM 502, RAM 503, communication interface 504, input device 401, output device 402, hard disk device 505, and drive device 507 are connected by a bus 508. The computer 500 is connected to the network 509 via the communication interface 504.

ネットワーク509は、LAN(Local Area Network)やインターネットなど、任意のネットワークである。ネットワーク509には、プログラム提供者510のコンピュータが接続されていてもよい。   The network 509 is an arbitrary network such as a LAN (Local Area Network) or the Internet. A computer of the program provider 510 may be connected to the network 509.

図4のUMLツール103とDSM支援装置104とコード生成装置108は、いずれも、CPU501がプログラムをRAM503にロードし、RAM503をワークエリアとして利用しながらプログラムを実行することにより、実現される。   All of the UML tool 103, the DSM support device 104, and the code generation device 108 in FIG. 4 are realized by the CPU 501 loading the program into the RAM 503 and executing the program while using the RAM 503 as a work area.

UMLツール103とDSM支援装置104とコード生成装置108をそれぞれ実現するための各プログラムは、ROM502またはハードディスク装置505に予め記憶されていてもよい。あるいは、各プログラムは、可搬型記憶媒体506に記憶され、駆動装置507にセットされた可搬型記憶媒体506から一旦ハードディスク装置505へ読み出されてもよい。または、各プログラムは、プログラム提供者510から提供され、ネットワーク509と通信インタフェース504を介してコンピュータ500にダウンロードされてもよい。   Each program for realizing the UML tool 103, the DSM support device 104, and the code generation device 108 may be stored in the ROM 502 or the hard disk device 505 in advance. Alternatively, each program may be stored in the portable storage medium 506 and once read from the portable storage medium 506 set in the drive device 507 to the hard disk device 505. Alternatively, each program may be provided from the program provider 510 and downloaded to the computer 500 via the network 509 and the communication interface 504.

また、図4の記憶装置411は、ROM502、RAM503、ハードディスク装置505、上記の不図示の不揮発性の半導体メモリ装置および可搬型記憶媒体506のうち1つ以上のものを任意に組み合わせて実現することができる。   Also, the storage device 411 of FIG. 4 is realized by arbitrarily combining one or more of the ROM 502, RAM 503, hard disk device 505, non-illustrated nonvolatile semiconductor memory device and portable storage medium 506 described above. Can do.

なお、図5はハードウェア構成の一例にすぎず、実施形態によっては、UMLツール103、DSM支援装置104およびコード生成装置108が複数のコンピュータに分散されていてもよい。   Note that FIG. 5 is merely an example of a hardware configuration, and the UML tool 103, the DSM support device 104, and the code generation device 108 may be distributed over a plurality of computers depending on the embodiment.

続いて、図6〜12を参照して、以上説明した第1実施形態について、さらに詳しく説明する。
図6は、第1のメタモデルにしたがう第2のモデルを表すUMLのクラス図である。図2の第1のメタモデル101aからは、図3のモデル図105aのほかに、例えば図6のモデル図105bのように、入れ子になった部品を定義するモデルを表すクラス図を作成することもできる。つまり、図1のプロセスP101では、第1のメタモデル101aと表記ルール102により定義される制約条件を満たすモデル図105として、図6の第2のメタモデル101bが作られてもよい。
Next, the first embodiment described above will be described in more detail with reference to FIGS.
FIG. 6 is a UML class diagram representing a second model according to the first metamodel. From the first metamodel 101a in FIG. 2, in addition to the model diagram 105a in FIG. 3, for example, a class diagram representing a model that defines nested parts is created as in the model diagram 105b in FIG. You can also. That is, in the process P101 of FIG. 1, the second metamodel 101b of FIG. 6 may be created as a model diagram 105 that satisfies the constraint conditions defined by the first metamodel 101a and the notation rule 102.

モデル図105bは、図3のモデル図105aと同様に、第1のメタモデル101aに含まれる「CompositionType」クラス202と「SenderReceiverInterface」クラス209を含む。また、第2のメタモデル101bは、モデル図105aと同様に、「インタフェースA」クラス302を含む。そして、図3と同様に図6でも、「インタフェースA」クラス302が「SenderReceiverInterface」クラス209のサブクラスであることが汎化306の線により示されている。   Similar to the model diagram 105a of FIG. 3, the model diagram 105b includes a “CompositionType” class 202 and a “SenderReceiverInterface” class 209 included in the first metamodel 101a. The second metamodel 101b includes an “interface A” class 302 as in the model diagram 105a. As in FIG. 3, the generalization 306 line also indicates that the “interface A” class 302 is a subclass of the “SenderReceiverInterface” class 209 in FIG. 6.

さらに、モデル図105bは、ユーザ定義の「部品B」クラス601を含む。「部品B」クラス601は、図3のモデル図105aで定義されている「部品A」クラス301の2つのオブジェクト、すなわち「P1」オブジェクト602と「P2」オブジェクト603を含む。また、「部品B」クラス601は、「入力1」ポート604および「出力1」ポート605を含む。   Further, the model diagram 105 b includes a user-defined “part B” class 601. The “part B” class 601 includes two objects of the “part A” class 301 defined in the model diagram 105 a of FIG. 3, that is, a “P1” object 602 and a “P2” object 603. The “component B” class 601 includes an “input 1” port 604 and an “output 1” port 605.

なお、「入力1」ポート604は、第1のメタモデル101aにおける「RequesterPort」クラス212のオブジェクトなので、矩形の中に逆V字を書いた記号で表記されている。また、「出力1」ポート605は、第1のメタモデル101aにおける「ProviderPort」クラス213のオブジェクトなので、矩形の中に黒い三角形を描いた記号で表記されている。   Since the “input 1” port 604 is an object of the “RequesterPort” class 212 in the first metamodel 101a, it is represented by a symbol in which an inverted V character is written in a rectangle. Since the “output 1” port 605 is an object of the “ProviderPort” class 213 in the first metamodel 101a, it is represented by a symbol depicting a black triangle in the rectangle.

図3に示すように「部品A」クラス301は2つのポートを含むので、「部品A」クラス301のインスタンスである図6の「P1」オブジェクト602と「P2」オブジェクト603も、それぞれ2つのポートを含む。すなわち、「P1」オブジェクト602は「受信ポート」ポート606と「送信ポート」ポート607を含み、「P2」オブジェクト603は「受信ポート」ポート608と「送信ポート」ポート609を含む。   As shown in FIG. 3, since the “component A” class 301 includes two ports, the “P1” object 602 and the “P2” object 603 in FIG. 6 which are instances of the “component A” class 301 also have two ports, respectively. including. That is, the “P1” object 602 includes a “reception port” port 606 and a “transmission port” port 607, and the “P2” object 603 includes a “reception port” port 608 and a “transmission port” port 609.

また、モデル図105bでは、「部品B」クラス601が「CompositionType」クラス202のサブクラスであることを示す汎化610が定義されている。汎化610により、「部品B」クラス601はインタフェースなどではなく部品をモデル化したクラスであるという意味が、モデル図105b上で表される。   In the model diagram 105 b, a generalization 610 is defined that indicates that the “component B” class 601 is a subclass of the “CompositionType” class 202. By the generalization 610, the meaning that the “component B” class 601 is a class in which a component is modeled instead of an interface or the like is represented on the model diagram 105b.

そして、モデル図105bでは、「入力1」ポート604と「受信ポート」ポート606の間のリンク611が定義されている。さらに、「送信ポート」ポート607と「受信ポート」ポート608の間のリンク612と、「送信ポート」ポート609と「出力1」ポート605の間のリンク613も定義されている。   In the model diagram 105b, a link 611 between the “input 1” port 604 and the “reception port” port 606 is defined. Further, a link 612 between the “transmission port” port 607 and the “reception port” port 608 and a link 613 between the “transmission port” port 609 and the “output 1” port 605 are also defined.

また、モデル図105bでは、「入力1」ポート604から「インタフェースA」クラス302への依存614と、「出力1」ポート605から「インタフェースA」クラス302への依存615も定義されている。   In the model diagram 105b, a dependency 614 from the “input 1” port 604 to the “interface A” class 302 and a dependency 615 from the “output 1” port 605 to the “interface A” class 302 are also defined.

以上のような内容を持つモデル図105bは、図2の第1のメタモデル101aおよび図1の表記ルール102に適合する。換言すれば、モデル図105bは、第1のメタモデル101aにしたがって作成されたモデルを表すUMLのクラス図であり、表記ルール102が表す制約条件を満たしている。具体的には以下の(d1)〜(d8)のとおりである。   The model diagram 105b having the above contents conforms to the first metamodel 101a in FIG. 2 and the notation rule 102 in FIG. In other words, the model diagram 105b is a UML class diagram representing a model created according to the first metamodel 101a, and satisfies the constraint condition represented by the notation rule 102. Specifically, it is as the following (d1) to (d8).

(d1)図3に関する(c1)と同様に、モデル図105bでは、「『部品B』クラス601は部品をモデル化したクラスである」という意味が、汎化610により示されている。   (D1) Similar to (c1) with respect to FIG. 3, in the model diagram 105b, the generalization 610 indicates that “the“ part B ”class 601 is a class that models a part”.

(d2)図3に関する(c2)と同様に、モデル図105bにおいて、「部品B」クラス601が「入力1」ポート604と「出力1」ポート605を含むことは、図2の第1のメタモデル101aと適合している。   (D2) As in (c2) with respect to FIG. 3, in the model diagram 105b, the “component B” class 601 includes the “input 1” port 604 and the “output 1” port 605. Compatible with model 101a.

(d3)図3に関する(c3)と同様に、「『インタフェースA』クラス302はインタフェースをモデル化したクラスである」という意味が汎化306により示されている。   (D3) As in (c3) with respect to FIG. 3, the generalization 306 indicates that “the“ interface A ”class 302 is a class that models an interface”.

(d4)図3に関する(c4)と同様に、「部品B」クラス601の「入力1」ポート604への入力が、「インタフェースA」クラス302によりモデル化されるインタフェースを介して行われるということが、依存614により表記されている。また、「部品B」クラス601の「出力1」ポート605からの出力が、「インタフェースA」クラス302によりモデル化されるインタフェースを介して行われるということが、依存615により表記されている。   (D4) As in (c4) with respect to FIG. 3, input to the “input 1” port 604 of the “component B” class 601 is performed via an interface modeled by the “interface A” class 302. Is represented by dependency 614. The dependency 615 indicates that the output from the “output 1” port 605 of the “component B” class 601 is performed via an interface modeled by the “interface A” class 302.

(d5)図3に関する(c6)と同様に、「部品B」クラス601において、ユーザが定義した「実行ポイント」という名前の、返り値を持たない関数には、<<RunnableEntity>>というステレオタイプが付加されている。   (D5) As in (c6) with respect to FIG. 3, in the “component B” class 601, a function defined by the user named “execution point” and having no return value has a stereotype << RunnableEntity >>. Is added.

(d6)表記ルール102は、「入れ子関係にある外部部品と内部部品の間の通信は、外部部品と内部部品各々のポートを示す2つのオブジェクト間のリンクにより表記せよ」というルールを含む。より正確には、表記ルール102は、「外部部品と内部部品の間の通信を表記する上記リンクとしては、『RequesterPort』クラス212のインスタンス同士または『ProviderPort』クラス213のインスタンス同士の間のリンクのみが許される」というルールを含む。   (D6) The notation rule 102 includes a rule that “communication between an external part and an internal part in a nesting relationship should be indicated by a link between two objects indicating ports of the external part and the internal part”. More precisely, the notation rule 102 states that “the link for notifying communication between an external component and an internal component is only a link between instances of“ RequesterPort ”class 212 or between instances of“ ProviderPort ”class 213. Is included.

また、表記ルール102は、「外部部品と内部部品各々のポートを示す2つのオブジェクト間のリンクは、第1のメタモデル101aにおける『DelegateConnector』クラス216のインスタンスであり、外部部品と内部部品の間の通信を意味する」という、意味の解釈に関するルールも含む。   Further, the notation rule 102 is that “the link between the two objects indicating the ports of the external part and the internal part is an instance of the“ DelegateConnector ”class 216 in the first metamodel 101a, and the link between the external part and the internal part. It also includes a rule regarding interpretation of meaning “meaning communication”.

モデル図105b中のリンク611は、外部部品のポートを示す「入力1」ポート604と、内部部品のポートを示す「受信ポート」ポート606を接続するリンクである。また、「入力1」ポート604と「受信ポート」ポート606はともに「RequesterPort」クラス212のインスタンスである。よって、リンク611は表記ルール102に適合している。   A link 611 in the model diagram 105b is a link connecting an “input 1” port 604 indicating a port of an external component and a “reception port” port 606 indicating a port of an internal component. The “input 1” port 604 and the “reception port” port 606 are both instances of the “RequesterPort” class 212. Therefore, the link 611 conforms to the notation rule 102.

また、モデル図105b中のリンク613は、外部部品のポートを示す「出力1」ポート605と、内部部品のポートを示す「送信ポート」ポート609と接続するリンクである。そして、「出力1」ポート605と「送信ポート」ポート609はともに「ProviderPort」クラス213のインスタンスである。よって、リンク613は表記ルール102に適合する。   A link 613 in the model diagram 105b is a link connecting an “output 1” port 605 indicating a port of an external component and a “transmission port” port 609 indicating a port of an internal component. The “output 1” port 605 and the “transmission port” port 609 are both instances of the “ProviderPort” class 213. Therefore, the link 613 meets the notation rule 102.

そして、図4のモデル作成部410は、表記ルール102にしたがって、「リンク611とリンク613は、『DelegateConnector』クラス216のインスタンスであり、外部部品と内部部品の間の通信を意味する」と解釈する。   The model creation unit 410 in FIG. 4 interprets according to the notation rule 102 as “link 611 and link 613 are instances of“ DelegateConnector ”class 216 and mean communication between an external component and an internal component”. To do.

(d7)表記ルール102は、「入れ子関係にない2つの部品間の通信は、一方の部品が有する『ProviderPort』クラス213のオブジェクトと、他方の部品が有する『RequesterPort』クラス212のオブジェクトとの間のリンクにより表記せよ」というルールを含む。また、表記ルール102は、上記のようなリンクを、「第1のメタモデル101aにおける『AssemblyConnector』クラス215のインスタンスであり、入れ子関係にない2つの部品間の通信を意味する」という意味に解釈するルールも含む。   (D7) The notation rule 102 indicates that “communication between two parts that are not nested is between the“ ProviderPort ”class 213 object of one part and the“ RequesterPort ”class 212 object of the other part. Include a rule that says “Use a link for”. In addition, the notation rule 102 interprets the link as described above to mean “an instance of the“ AssemblyConnector ”class 215 in the first metamodel 101a and means communication between two components that are not nested”. Includes rules to do.

モデル図105b中のリンク612は、入れ子関係にない「P1」オブジェクト602と「P2」オブジェクト603の間のリンクである。正確には、リンク612は、「P1」オブジェクト602が有する「送信ポート」ポート607と、「P2」オブジェクト603が有する「受信ポート」ポート608との間のリンクである。つまり、リンク612は、「P1」オブジェクト602が有する「ProviderPort」クラス213のオブジェクトと、「P2」オブジェクト603が有する「RequesterPort」クラス212のオブジェクトとの間のリンクである。よってリンク612は表記ルール102に適合する。   A link 612 in the model diagram 105b is a link between the “P1” object 602 and the “P2” object 603 which are not nested. More precisely, the link 612 is a link between a “sending port” port 607 included in the “P1” object 602 and a “receiving port” port 608 included in the “P2” object 603. That is, the link 612 is a link between the “ProviderPort” class 213 object included in the “P1” object 602 and the “RequesterPort” class 212 object included in the “P2” object 603. Therefore, the link 612 conforms to the notation rule 102.

そして、図4のモデル作成部410は、表記ルール102にしたがって、「リンク612は、『AssemblyConnector』クラス215のインスタンスであり、入れ子関係にない2つの部品間の通信を意味する」と解釈する。   Then, the model creation unit 410 of FIG. 4 interprets according to the notation rule 102 as “link 612 is an instance of the“ AssemblyConnector ”class 215 and means communication between two components that are not nested”.

(d8)表記ルール102は、「部品間の通信を表記するためのポート間のリンクは、出力元のポートと出力先のポートが同じインタフェースクラスに対して依存関係を有していなくてはならない」というルールを含む。実施形態によっては、「出力元のポートが依存する第1のインタフェースクラスまたはそのサブクラスである第2のインタフェースクラスに対して、出力先のポートが依存関係を有していなくてはならない」というルールを表記ルール102が含んでもよい。   (D8) The notation rule 102 is: “The link between ports for indicating communication between components must have a dependency relationship between the output source port and the output destination port for the same interface class. Is included. Depending on the embodiment, a rule that “the output destination port must have a dependency relationship with respect to the first interface class on which the output source port depends or the second interface class that is a subclass thereof”. May be included in the notation rule 102.

モデル図105bにおいて、「P1」オブジェクト602と「P2」オブジェクト603はともに図3で定義された「部品A」クラス301のインスタンスである。よって、「受信ポート」ポート606への入力と「送信ポート」ポート607からの出力は、いずれも、図3の定義のとおり、「インタフェースA」クラス302で定義されるインタフェースによるものである。同様に、「受信ポート」ポート608への入力と「送信ポート」ポート609からの出力も、「インタフェースA」クラス302で定義されるインタフェースによるものである。   In the model diagram 105b, a “P1” object 602 and a “P2” object 603 are both instances of the “part A” class 301 defined in FIG. Therefore, both the input to the “reception port” port 606 and the output from the “transmission port” port 607 are based on the interface defined by the “interface A” class 302 as defined in FIG. Similarly, the input to the “reception port” port 608 and the output from the “transmission port” port 609 are also based on the interface defined by the “interface A” class 302.

また、図6で定義されているように、「部品B」クラス601の「入力1」ポート604への入力と、「部品B」クラス601の「出力1」ポート605からの出力も、「インタフェースA」クラス302で定義されるインタフェースによるものである。   Further, as defined in FIG. 6, the input to the “input 1” port 604 of the “component B” class 601 and the output from the “output 1” port 605 of the “component B” class 601 are also “interface”. A ”is based on the interface defined by the class 302.

以上から、リンク611、612、613のいずれにおいても、出力元のポートと出力先のポートが同じインタフェースクラスに対して依存関係を有している。したがって、リンク611、612、613はいずれも、表記ルール102に適合する。   As described above, in any of the links 611, 612, and 613, the output source port and the output destination port have a dependency relationship with respect to the same interface class. Accordingly, all of the links 611, 612, and 613 meet the notation rule 102.

以上の(d1)〜(d8)で説明した制約条件を満たすように、図1のプロセスP101において、UMLツール103とDSM支援装置104は協働して、モデル図105bを作成する。   In the process P101 of FIG. 1, the UML tool 103 and the DSM support apparatus 104 cooperate to create the model diagram 105b so as to satisfy the constraint conditions described in the above (d1) to (d8).

例えば、同じ「ProviderPort」クラス213のインスタンスである「送信ポート」ポート607と「送信ポート」ポート609の間にリンクを作成しようとする入力を、図4の入力装置401を介してUMLツール103が受け取っても、その入力は無効化される。つまり、上記(d7)の表記ルール102に適合しないリンクを作成しようとする入力は、DSM支援装置104により「不正な入力である」と判断され、UMLの図には反映されない。この場合、DSM支援装置104は、「不正な入力なので入力内容はUMLの図には反映されない」という旨の警告を、UMLツール103を介して出力装置402に出力してもよい。   For example, the UML tool 103 inputs an input to create a link between a “transmission port” port 607 and a “transmission port” port 609, which are instances of the same “ProviderPort” class 213, via the input device 401 in FIG. If received, the input is invalidated. That is, an input that attempts to create a link that does not conform to the notation rule 102 in (d7) is determined as “illegal input” by the DSM support apparatus 104 and is not reflected in the UML diagram. In this case, the DSM support device 104 may output a warning to the output device 402 via the UML tool 103 that “the input content is not reflected in the UML diagram because it is an illegal input”.

続いて、図7を参照して図1のモデル図105の他の例を説明する。
図7は、第1と第2のモデルを統合したモデルにより設計されたソフトウェアの全体構造を示すUMLのオブジェクト図である。つまり、図7は、図2のモデル図105aおよび図6のモデル図105bを統合したモデルに基づくオブジェクト図の形で、第1のメタモデル101aにしたがうモデル図105cが表現されている。
Next, another example of the model diagram 105 in FIG. 1 will be described with reference to FIG.
FIG. 7 is a UML object diagram showing the overall structure of software designed by a model in which the first and second models are integrated. That is, FIG. 7 represents a model diagram 105c according to the first metamodel 101a in the form of an object diagram based on a model obtained by integrating the model diagram 105a of FIG. 2 and the model diagram 105b of FIG.

モデル図105aは、図3のモデル図105aと同様に、第1のメタモデル101aに含まれる「CompositionType」クラス202を含む。
また、モデル図105aは、<<TopLevel>>というステレオタイプが付加された「ソフトウェア全体」クラス701を含む。「ソフトウェア全体」クラス701は、1つのソフトウェアにつき1つのインスタンスしか持たない、ソフトウェアの最上位のメインルーチンに相当する特殊なクラスである。
The model diagram 105a includes the “CompositionType” class 202 included in the first metamodel 101a, similar to the model diagram 105a of FIG.
The model diagram 105a includes an “entire software” class 701 to which a stereotype << TopLevel >> is added. The “whole software” class 701 is a special class corresponding to the highest-level main routine of software having only one instance per software.

よって、「ソフトウェア全体」クラス701に<<TopLevel>>というステレオタイプを付加したとしても、「ソフトウェア全体」クラス701内部に含まれる個々のクラスには、依然としてユーザが自由にステレオタイプを付加することが可能である。つまり、「ソフトウェア全体」クラス701に<<TopLevel>>というステレオタイプを付加することは、上記比較例のように設計の自由度を束縛することには当たらない。   Therefore, even if the stereotype << TopLevel >> is added to the “whole software” class 701, the user can still freely add a stereotype to each class included in the “whole software” class 701. Is possible. In other words, adding the stereotype << TopLevel >> to the “whole software” class 701 does not constrain the freedom of design as in the comparative example.

「ソフトウェア全体」クラス701は、図3のモデル図105aで定義された「部品A」クラス301のインスタンスである「PART1」オブジェクト702を含む。また、「ソフトウェア全体」クラス701は、図6のモデル図105bで定義された「部品B」クラス601のインスタンスである「PART2」オブジェクト703も含む。図6のとおり、「部品B」クラス601は「部品A」クラス301の2つのインスタンスを含むので、「ソフトウェア全体」クラス701は、「部品A」クラス301のインスタンスを合計で3つ含むこととなる。   The “whole software” class 701 includes a “PART1” object 702 that is an instance of the “part A” class 301 defined in the model diagram 105a of FIG. The “whole software” class 701 also includes a “PART2” object 703 that is an instance of the “part B” class 601 defined in the model diagram 105b of FIG. As shown in FIG. 6, the “part B” class 601 includes two instances of the “part A” class 301, so that the “whole software” class 701 includes a total of three instances of the “part A” class 301. Become.

また、「ソフトウェア全体」クラス701は、第1のメタモデル101aで定義されている「Task」クラス206のインスタンスである「T1」オブジェクト704を含む。「T1」オブジェクト704には、第1のメタモデル101aで定義されたクラスのオブジェクトである。   The “whole software” class 701 includes a “T1” object 704 that is an instance of the “Task” class 206 defined in the first metamodel 101a. The “T1” object 704 is an object of a class defined in the first metamodel 101a.

また、「部品A」クラス301のインスタンスである「PART1」オブジェクト702は、図3における「部品A」クラス301の定義のとおり、2つのポート(すなわち「受信ポート」ポート705と「送信ポート」ポート706)を有する。そして、「部品B」クラス601のインスタンスである「PART2」オブジェクト703は、図6における「部品B」クラス601の定義のとおり、2つのポート(すなわち「入力1」ポート707と「出力1」ポート708)を有する。   Further, the “PART1” object 702 which is an instance of the “component A” class 301 has two ports (ie, “receive port” port 705 and “transmit port” port) as defined in the “component A” class 301 in FIG. 706). Then, the “PART2” object 703 which is an instance of the “component B” class 601 has two ports (ie, “input 1” port 707 and “output 1” port as defined in the “component B” class 601 in FIG. 6). 708).

なお、「ソフトウェア全体」クラス701がソフトウェアの部品であることは、「ソフトウェア全体」クラス701から「CompositionType」クラス202への汎化709により表されている。   The fact that the “whole software” class 701 is a software component is represented by the generalization 709 from the “whole software” class 701 to the “CompositionType” class 202.

また、「ソフトウェア全体」クラス701内における「PART1」オブジェクト702と「PART2」オブジェクト703の間の通信は、「送信ポート」ポート706と「入力1」ポート707との間のリンク710により表されている。図3と図6の定義から明らかなように、リンク710は、図6に関して説明した(d7)と(d8)の表記ルール102に適合する。   The communication between the “PART1” object 702 and the “PART2” object 703 in the “whole software” class 701 is represented by a link 710 between the “transmission port” port 706 and the “input 1” port 707. Yes. As is clear from the definitions of FIGS. 3 and 6, the link 710 conforms to the notation rule 102 of (d7) and (d8) described with reference to FIG.

つまり、図4のDSM支援装置104は、リンクを作成しようとする指示のための入力に対して制約をかけることで、表記ルール102に適合するリンク710の作成を許し、表記ルール102に適合しないリンクの作成を拒絶する。それにより、表記ルール102に適合するモデル図105cが作成される。   That is, the DSM support apparatus 104 of FIG. 4 allows the creation of the link 710 that conforms to the notation rule 102 by restricting the input for the instruction to create the link, and does not conform to the notation rule 102. Reject link creation. As a result, a model diagram 105c conforming to the notation rule 102 is created.

続いて、図8を参照して図1のモデル図105のさらに別の例を説明する。
図8は、図7のオブジェクト図に対応してソフトウェアの動作を定義するUMLのシーケンス図である。UMLツール103とDSM支援装置104が協働して図1のプロセスP101で編集するUMLの図の中には、図8のモデル図105dのようなシーケンス図も含まれる。
Next, still another example of the model diagram 105 in FIG. 1 will be described with reference to FIG.
FIG. 8 is a UML sequence diagram that defines software operations corresponding to the object diagram of FIG. The UML diagram edited by the process P101 in FIG. 1 in cooperation with the UML tool 103 and the DSM support device 104 includes a sequence diagram such as a model diagram 105d in FIG.

図8には、図7の「T1」オブジェクト704と「PART1」オブジェクト702と「PART2」オブジェクト703それぞれのライフラインを示す破線と、それぞれの活性期間(activation)801、802および803が定義されている。   In FIG. 8, the broken lines indicating the lifelines of the “T1” object 704, the “PART1” object 702 and the “PART2” object 703 in FIG. 7 and the activation periods 801, 802 and 803 are defined. Yes.

また、図8には、「T1」オブジェクト704の活性期間801の初めの方で、「T1」オブジェクト704が「PART1」オブジェクト702を呼び出すことを示す呼び出し(call)804も定義されている。そして、その後「T1」オブジェクト704が「PART2」オブジェクト703を呼び出すことを示す呼び出し805も定義されている。つまり、モデル図105dは、「PART1」オブジェクト702が先に駆動され、「PART2」オブジェクト703が後に駆動されるという駆動の順序を定義している。   8 also defines a call 804 indicating that the “T1” object 704 calls the “PART1” object 702 at the beginning of the activation period 801 of the “T1” object 704. Then, a call 805 indicating that the “T1” object 704 calls the “PART2” object 703 is also defined. In other words, the model diagram 105 d defines a driving order in which the “PART1” object 702 is driven first and the “PART2” object 703 is driven later.

呼び出し804のラベルは、図3の「部品A」クラス301において<<RunnableEntity>>というステレオタイプ付きで定義されている「実行ポイント」という操作を示している。また、呼び出し805のラベルは、図6の「部品B」クラス601において<<RunnableEntity>>というステレオタイプ付きで定義されている「実行ポイント」という操作を示している。なお、呼び出し804と805のラベルが同じなのは、偶然「部品A」クラス301と「部品B」クラス601で同名の操作が定義されているからである。   The label of the call 804 indicates the operation “execution point” defined with the stereotype << RunnableEntity >> in the “component A” class 301 of FIG. The label of the call 805 indicates an operation “execution point” defined with a stereotype << RunnableEntity >> in the “component B” class 601 of FIG. The reason why the labels of the calls 804 and 805 are the same is because an operation with the same name is defined in the “component A” class 301 and the “component B” class 601 by chance.

図8のモデル図105dの作成にあたってDSM支援装置104が適用する制約条件としての表記ルール102は、例えば、下記(e1)〜(e2)のようなルールである。
(e1)表記ルール102は、「シーケンス図において、呼び出しを示す矢印の呼び出し元は、第1のメタモデル101aにおける『Task』クラス206のインスタンスまたは部品クラスで定義された操作でなくてはならない」というルールを含む。
The notation rule 102 as a constraint condition applied by the DSM support apparatus 104 in creating the model diagram 105d of FIG. 8 is, for example, the following rules (e1) to (e2).
(E1) The notation rule 102 is “in the sequence diagram, the call source of the arrow indicating the call must be an operation defined in the instance of the“ Task ”class 206 or the component class in the first metamodel 101a” Including the rule.

図8において、呼び出し804と805の呼び出し元は、いずれも「Task」クラス206のインスタンスである「T1」オブジェクト704である。よって、図8のモデル図105dは、表記ルール102に適合する。   In FIG. 8, the caller of the calls 804 and 805 is a “T1” object 704 that is an instance of the “Task” class 206. Therefore, the model diagram 105d in FIG.

(e2)表記ルール102は、「シーケンス図において、呼び出しのラベルは、外部から呼び出し可能であることを示す<<RunnableEntity>>というステレオタイプが付加された操作の名前でなくてはならない」というルールを含む。   (E2) The notation rule 102 is a rule that in the sequence diagram, the label of the call must be the name of an operation to which the stereotype << RunnableEntity >> indicating that the call can be made from outside is added. including.

上記のとおり、呼び出し804と805のラベルである2つの「実行ポイント」は、それぞれ、図3と図6の定義において<<RunnableEntity>>というステレオタイプが付加された操作の名前である。よって、図8のモデル図105dは、表記ルール102に適合する。   As described above, the two “execution points” that are labels of the calls 804 and 805 are the names of operations to which the stereotype << RunnableEntity >> is added in the definitions of FIGS. Therefore, the model diagram 105d in FIG.

以上の(e1)〜(e2)で説明した制約条件を満たすように、図1のプロセスP101において、UMLツール103とDSM支援装置104は協働して、モデル図105dを作成する。   In the process P101 of FIG. 1, the UML tool 103 and the DSM support apparatus 104 cooperate to create a model diagram 105d so as to satisfy the constraint conditions described in (e1) to (e2) above.

例えば、図3のモデル図105aにおいて、仮に、「部品A」クラス301にさらに別の操作が定義されているものとし、便宜上、その操作の名前が「処理a」であるとする。また、「処理a」という操作に対しては、<<RunnableEntity>>というステレオタイプが付加されていないとする。   For example, in the model diagram 105a of FIG. 3, it is assumed that another operation is defined in the “part A” class 301 and the name of the operation is “processing a” for convenience. Further, it is assumed that the stereotype << RunnableEntity >> is not added to the operation “processing a”.

以上の仮定のもとで、呼び出し804のラベルとして「処理a」を指定しようとする入力を、入力装置401およびUMLツール103を介してDSM支援装置104が受け取るとする。すると、モデル作成ナビゲーション部403は、入力が(e2)の制約に反することを検出する。制約違反の検出に応じて、モデル作成ナビゲーション部403は、例えば、UMLツール103を介して出力装置402に「不正な入力なので、別のラベルを指定せよ」という警告を表示させてもよい。   Based on the above assumptions, it is assumed that the DSM support apparatus 104 receives an input for specifying “processing a” as the label of the call 804 via the input apparatus 401 and the UML tool 103. Then, the model creation navigation unit 403 detects that the input violates the constraint (e2). In response to the detection of the constraint violation, for example, the model creation navigation unit 403 may display a warning “Please specify another label because it is an illegal input” on the output device 402 via the UML tool 103.

続いて、図9A〜9Dを参照して、図1のモデル106の例を説明する。
図9A〜9Dは、第1と第2のモデルを統合したモデルに対応するXMLデータを示す図である。図示の都合上4枚の図に分けて示してあるが、図9A〜9D全体で、図3、6〜8を統合したモデルを表す1つのXML文書となっており、図9A〜9Dに示すモデル106aは、図1のモデル106の一例である。
Next, an example of the model 106 in FIG. 1 will be described with reference to FIGS.
9A to 9D are diagrams showing XML data corresponding to a model obtained by integrating the first and second models. Although it is divided into four figures for convenience of illustration, the whole of FIGS. 9A to 9D is one XML document representing a model in which FIGS. 3 and 6 to 8 are integrated, as shown in FIGS. 9A to 9D. The model 106a is an example of the model 106 in FIG.

このように、複数枚にわたるUMLのモデル図105(例えば図3、6〜8)が全体として、1つのソフトウェアのモデルを表し、1つのモデル106(例えば図9A〜9D)に対応していてもよい。なお、参照の便宜のため、図9A〜9Dでは左側に行番号を示してある。   As described above, the UML model diagram 105 (for example, FIGS. 3 and 6 to 8) covering a plurality of sheets represents one software model as a whole, and corresponds to one model 106 (for example, FIGS. 9A to 9D). Good. For convenience of reference, row numbers are shown on the left side in FIGS.

なお、実施形態に応じてモデル106aでは任意の要素名を第1のメタモデル101aの各クラスに対応付けて使うことができる。以下では、「-REF」で終わる要素名は参照を表すものとする。   In the model 106a, an arbitrary element name can be used in association with each class of the first metamodel 101a according to the embodiment. In the following, element names ending with “-REF” represent references.

図9A〜9Dに示すモデル106aは、具体的には以下の(f1)〜(f35)に述べる内容を有する。
(f1)モデル106aのルート要素は、「PACKAGE」要素である(1〜86行目)。1行目に示すように、「PACKAGE」要素には、「テスト」という名前を示す「Name」属性と、最上位要素であることを示す「TopLevelPackage」属性が指定されている。
The model 106a shown in FIGS. 9A to 9D specifically has the contents described in the following (f1) to (f35).
(F1) The root element of the model 106a is a “PACKAGE” element (1st to 86th lines). As shown in the first line, the “PACKAGE” element has a “Name” attribute indicating the name “test” and a “TopLevelPackage” attribute indicating the top element.

また、「PACKAGE」要素は4つの子要素を有する。最初の3つの子要素は、図2の第1のメタモデル101aの「CompositionType」クラス202に対応する「COMPOSITION-TYPE」要素である。4つ目の子要素は、第1のメタモデル101aの「SenderReceiverInterface」クラス209に対応する「SENDER-RECEIVER-INTERFACE」要素である。   The “PACKAGE” element has four child elements. The first three child elements are “COMPOSITION-TYPE” elements corresponding to the “CompositionType” class 202 of the first metamodel 101a of FIG. The fourth child element is a “SENDER-RECEIVER-INTERFACE” element corresponding to the “SenderReceiverInterface” class 209 of the first metamodel 101a.

(f2)「PACKAGE」要素の子要素のうち、1つ目の「COMPOSITION-TYPE」要素は、2〜28行目に当たり、「CompositionType」クラス202のサブクラスとして定義された図7の「ソフトウェア全体」クラス701を表す。そのため、2行目では、「ソフトウェア全体」クラス701のクラス名が「COMPOSITION-TYPE」要素の「Name」属性の値として指定されている。また、「ソフトウェア全体」クラス701には<<TopLevel>>というステレオタイプが付加されているので、2行目では「COMPOSITION-TYPE」要素の「TopLevel」属性の値が「True」となっている。   (F2) Of the child elements of the “PACKAGE” element, the first “COMPOSITION-TYPE” element hits lines 2 to 28 and is defined as a subclass of the “CompositionType” class 202 in “Whole Software” in FIG. Class 701 is represented. Therefore, on the second line, the class name of the “whole software” class 701 is specified as the value of the “Name” attribute of the “COMPOSITION-TYPE” element. Further, since the stereotype << TopLevel >> is added to the “whole software” class 701, the value of the “TopLevel” attribute of the “COMPOSITION-TYPE” element is “True” in the second line. .

つまり、図4のモデル作成部410は図1のプロセスP101で、図7の汎化709に基づいて、モデル106aにおいて「ソフトウェア全体」クラス701を「COMPOSITION-TYPE」要素として表現する。また、モデル作成部410は図7の<<TopLevel>>というステレオタイプに基づいて、「COMPOSITION-TYPE」要素の「TopLevel」属性を設定する。それにより、モデル作成部410は、「『ソフトウェア全体』クラス701は最上位の部品を表す」という意味をモデル106a上で表す。   4 represents the “whole software” class 701 as a “COMPOSITION-TYPE” element in the model 106a based on the generalization 709 in FIG. 7 in the process P101 in FIG. Further, the model creation unit 410 sets the “TopLevel” attribute of the “COMPOSITION-TYPE” element based on the stereotype << TopLevel >> of FIG. As a result, the model creation unit 410 represents on the model 106a the meaning that “the“ whole software ”class 701 represents the highest component”.

(f3)「PACKAGE」要素の子要素のうち、2つ目の「COMPOSITION-TYPE」要素は、29〜44行目に当たり、「CompositionType」クラス202のサブクラスとして定義された図3の「部品A」クラス301を表す。そのため、29行目では、「部品A」クラス301のクラス名が「COMPOSITION-TYPE」要素の「Name」属性の値として指定されている。   (F3) Of the child elements of the “PACKAGE” element, the second “COMPOSITION-TYPE” element hits lines 29 to 44 and is defined as a “component A” in FIG. 3 defined as a subclass of the “CompositionType” class 202. Class 301 is represented. Therefore, on the 29th line, the class name of the “component A” class 301 is specified as the value of the “Name” attribute of the “COMPOSITION-TYPE” element.

上記(f2)と同様、モデル作成部410は、図3の汎化305に基づいて、モデル106aにおいて「部品A」クラス301を「COMPOSITION-TYPE」要素として表現することで、「『部品A』クラス301は部品を表す」という意味をモデル106a上で表す。   Similar to (f2) above, the model creation unit 410 expresses the “component A” class 301 as a “COMPOSITION-TYPE” element in the model 106a based on the generalization 305 in FIG. The meaning of “class 301 represents a part” is expressed on the model 106a.

(f4)「PACKAGE」要素の子要素のうち、3つ目の「COMPOSITION-TYPE」要素は、45〜74行目に当たり、「CompositionType」クラス202のサブクラスとして定義された図6の「部品B」クラス601を表す。そのため、45行目では「部品B」クラス601のクラス名が「COMPOSITION-TYPE」要素の「Name」属性の値として指定されている。   (F4) Among the child elements of the “PACKAGE” element, the third “COMPOSITION-TYPE” element hits the 45th to 74th lines and is defined as a “class B” in FIG. Class 601 is represented. Therefore, in the 45th line, the class name of the “component B” class 601 is specified as the value of the “Name” attribute of the “COMPOSITION-TYPE” element.

上記(f2)と同様、モデル作成部410は、図6の汎化610に基づいて、モデル106aにおいて「部品B」クラス601を「COMPOSITION-TYPE」要素として表現することで、「『部品B』クラス601が部品を表す」という意味をモデル106a上で表す。   Similar to (f2) above, the model creation unit 410 expresses the “component B” class 601 as a “COMPOSITION-TYPE” element in the model 106a based on the generalization 610 in FIG. The meaning of “class 601 represents a part” is expressed on the model 106a.

(f5)「PACKAGE」要素の4つ目の子要素である「SENDER-RECEIVER-INTERFACE」要素は、75〜85行目に当たり、「SenderReceiverInterface」クラス209のサブクラスとして定義された図3と図6の「インタフェースA」クラス302を表す。そのため、75行目では、「インタフェースA」クラス302のクラス名が「SENDER-RECEIVER-INTERFACE」要素の「Name」属性の値として指定されている。   (F5) The “SENDER-RECEIVER-INTERFACE” element, which is the fourth child element of the “PACKAGE” element, hits the 75th to 85th lines and is defined as a subclass of the “SenderReceiverInterface” class 209 in FIG. 3 and FIG. A "represents class 302. Therefore, in the 75th line, the class name of the “Interface A” class 302 is specified as the value of the “Name” attribute of the “SENDER-RECEIVER-INTERFACE” element.

上記(f2)と同様、モデル作成部410は、図3と図6の汎化306に基づいて、モデル106aにおいて「インタフェースA」クラス302を「SENDER-RECEIVER-INTERFACE」要素として表現する。それにより、モデル作成部410は、「『インタフェースA』クラス302がインタフェースを表す」という意味をモデル106a上で表す。   Similar to (f2) above, the model creation unit 410 represents the “interface A” class 302 as a “SENDER-RECEIVER-INTERFACE” element in the model 106a based on the generalization 306 in FIG. 3 and FIG. As a result, the model creation unit 410 represents on the model 106 a the meaning that “the“ interface A ”class 302 represents an interface”.

(f6)上記(f2)の「COMPOSITION-TYPE」要素(2〜28行目)は、5つの子要素を持つ。
1つ目の子要素は、3行目に示す空の「SUPER-ELEMENT」要素であり、空であることによって、図7の「ソフトウェア全体」クラス701が「CompositionType」クラス202から直接派生していることを表す。2つ目と3つ目の子要素は、第1のメタモデル101aの「ComponentPrototype」クラス203に対応する2つの「COMPONENT-PROTOTYPE」要素(4〜6行目と7〜9行目)である。
(F6) The “COMPOSITION-TYPE” element (line 2 to 28) of (f2) has five child elements.
The first child element is an empty “SUPER-ELEMENT” element shown in the third line. By being empty, the “whole software” class 701 in FIG. 7 is directly derived from the “CompositionType” class 202. Represents. The second and third child elements are two “COMPONENT-PROTOTYPE” elements (lines 4-6 and 7-9) corresponding to the “ComponentPrototype” class 203 of the first metamodel 101a.

4つ目の子要素は、第1のメタモデル101aの「AssemblyConnector」クラス215に対応する「ASSEMBLY-CONNECTOR」要素(10〜13行目)である。5つ目の子要素は、第1のメタモデル101aの「Task」クラス206に対応する「TASK」要素(14〜27行目)である。   The fourth child element is an “ASSEMBLY-CONNECTOR” element (10th to 13th lines) corresponding to the “AssemblyConnector” class 215 of the first metamodel 101a. The fifth child element is a “TASK” element (14th to 27th lines) corresponding to the “Task” class 206 of the first metamodel 101a.

(f7)第1のメタモデル101aでは、「CompositionType」クラス202が「ComponentPrototype」クラス203を含みうることを、集約253が示している。そして図7のモデル図105cは、この第1のメタモデル101aと表記ルール102にしたがって表記されており、「ソフトウェア全体」クラス701は「PART1」オブジェクト702と「PART2」オブジェクト703を含む。   (F7) In the first metamodel 101a, the aggregation 253 indicates that the “CompositionType” class 202 can include the “ComponentPrototype” class 203. The model diagram 105c in FIG. 7 is described according to the first metamodel 101a and the notation rule 102, and the “whole software” class 701 includes a “PART1” object 702 and a “PART2” object 703.

以上の構造に対応して、モデル106aでは、「ソフトウェア全体」クラス701に対応する上記(f2)の「COMPOSITION-TYPE」要素(2〜28行目)が、2つのオブジェクトに対応する2つの「COMPONENT-PROTOTYPE」要素(4〜6行目と7〜9行目)を子要素として持つ。   Corresponding to the above structure, in the model 106a, the “COMPOSITION-TYPE” element (line 2 to 28) of (f2) corresponding to the “whole software” class 701 corresponds to two “ It has “COMPONENT-PROTOTYPE” elements (lines 4-6 and 7-9) as child elements.

(f8)上記(f6)と(f7)で述べた1つ目の「COMPONENT-PROTOTYPE」要素(4〜6行目)は「PART1」オブジェクト702に対応するので、この「COMPONENT-PROTOTYPE」要素の「Name」属性には、オブジェクト名である「PART1」が指定されている(4行目)。   (F8) Since the first “COMPONENT-PROTOTYPE” element (lines 4 to 6) described in (f6) and (f7) above corresponds to the “PART1” object 702, the “COMPONENT-PROTOTYPE” element In the “Name” attribute, “PART1” that is an object name is designated (line 4).

また、第1のメタモデル101aの関連252は、「ComponentPrototype」クラス203が「ComponentType」クラス201を参照することを示す。よって、第1のメタモデル101aと表記ルール102にしたがって表記されたモデル図105cの意味を表すモデル106aでは、「ComponentType」クラス201への参照を示す「COMPONENT-TYPE-REF」要素を、「COMPONENT-PROTOTYPE」要素が含む。具体的には、4〜6行目の「COMPONENT-PROTOTYPE」要素は、5行目に示す「COMPONENT-TYPE-REF」要素を含む。   The association 252 of the first metamodel 101 a indicates that the “ComponentPrototype” class 203 refers to the “ComponentType” class 201. Therefore, in the model 106 a representing the meaning of the model diagram 105 c expressed according to the first meta model 101 a and the notation rule 102, the “COMPONENT-TYPE-REF” element indicating the reference to the “ComponentType” class 201 is changed to “COMPONENT”. -PROTOTYPE "element. Specifically, the “COMPONENT-PROTOTYPE” element in the 4th to 6th lines includes the “COMPONENT-TYPE-REF” element shown in the 5th line.

(f9)この5行目の「COMPONENT-TYPE-REF」要素は、親要素である「COMPONENT-PROTOTYPE」要素(4〜6行目)が表す「PART1」オブジェクト702のクラスを示す情報を内容として含む。   (F9) The “COMPONENT-TYPE-REF” element on the fifth line contains information indicating the class of the “PART1” object 702 represented by the parent “COMPONENT-PROTOTYPE” element (lines 4 to 6). Including.

なお、「PART1」オブジェクト702は「部品A」クラス301に属し、「部品A」クラス301は「CompositionType」クラス202のサブクラスであり、「CompositionType」クラス202は「ComponentType」クラス201のサブクラスである。よって、「ComponentType」クラス201への参照を示す「COMPONENT-TYPE-REF」要素によって、モデル106a上で、「COMPONENT-PROTOTYPE」要素(4〜6行目)に対応する「PART1」オブジェクト702のクラスを示すことができる。   The “PART1” object 702 belongs to the “component A” class 301, the “component A” class 301 is a subclass of the “CompositionType” class 202, and the “CompositionType” class 202 is a subclass of the “ComponentType” class 201. Therefore, the “PART1” object 702 class corresponding to the “COMPONENT-PROTOTYPE” element (lines 4 to 6) on the model 106a by the “COMPONENT-TYPE-REF” element indicating the reference to the “ComponentType” class 201 Can be shown.

具体的には、5行目の「COMPONENT-TYPE-REF」要素は、「/テスト/部品A」という、パッケージ名(1行目の「Name」属性の値)とクラス名(29行目の「Name」属性の値)をスラッシュで結合したパスにより、「PART1」オブジェクト702のクラスを示す。パスがスラッシュから始まっているのは絶対パスであるためである。   Specifically, the “COMPONENT-TYPE-REF” element on the 5th line contains the package name (value of the “Name” attribute on the 1st line) and the class name (“29th line”), “/ test / part A”. The class of the “PART1” object 702 is indicated by a path in which the “Name” attribute value) is combined with a slash. The path starts with a slash because it is an absolute path.

(f10)上記(f6)と(f7)で述べた2つ目の「COMPONENT-PROTOTYPE」要素(7〜9行目)は「PART2」オブジェクト703に対応するので、この「COMPONENT-PROTOTYPE」要素の「Name」属性には、オブジェクト名である「PART2」が指定されている(7行目)。そして、上記(f8)と同様に、7〜9行目の「COMPONENT-PROTOTYPE」要素は、8行目に示す「COMPONENT-TYPE-REF」要素を含む。   (F10) Since the second “COMPONENT-PROTOTYPE” element (lines 7 to 9) described in (f6) and (f7) above corresponds to the “PART2” object 703, the “COMPONENT-PROTOTYPE” element In the “Name” attribute, “PART2” that is an object name is designated (seventh line). Similarly to the above (f8), the “COMPONENT-PROTOTYPE” element in the 7th to 9th lines includes the “COMPONENT-TYPE-REF” element shown in the 8th line.

また、8行目の「COMPONENT-TYPE-REF」要素は、上記(f9)と同様に、「PART2」オブジェクト703のクラスを示す情報を内容として含む。すなわち、パッケージ名(1行目の「Name」属性の値)とクラス名(45行目の「Name」属性の値)を結合した「/テスト/部品B」というパスを、8行目の「COMPONENT-TYPE-REF」要素が内容として含む。   Also, the “COMPONENT-TYPE-REF” element on the eighth line includes information indicating the class of the “PART2” object 703 as the content, as in (f9) above. That is, the path “/ test / part B” obtained by combining the package name (value of the “Name” attribute on the first line) and the class name (value of the “Name” attribute on the 45th line) is changed to “ The "COMPONENT-TYPE-REF" element contains as content.

(f11)第1のメタモデル101aにおいて「AssemblyConnector」クラス215からは、「Port」クラス211への参照を示す関連269と関連270の2本の線が出ている。よって、上記(f6)で述べた、「AssemblyConnector」クラス215に対応する「ASSEMBLY-CONNECTOR」要素(10〜13行目)は、関連269と関連270に対応する2つの子要素(11行目と12行目)を持つ。   (F11) In the first metamodel 101a, from the “AssemblyConnector” class 215, there are two lines, a relation 269 and a relation 270, which indicate a reference to the “Port” class 211. Therefore, the “ASSEMBLY-CONNECTOR” element (line 10 to 13) corresponding to the “AssemblyConnector” class 215 described in (f6) above has two child elements (line 11 and line) corresponding to the relation 269 and relation 270. 12th line).

そして、図7のリンク710は、上記(d7)と(d8)の表記ルール102に適合している。上記(d7)によれば、「AssemblyConnector」クラス215のインスタンスたるリンクの両端は、「ProviderPort」クラス213と「RequesterPort」クラス212のオブジェクトである。よって、「ASSEMBLY-CONNECTOR」要素(10〜13行目)の2つの子要素とは、「ProviderPort」クラス213と「RequesterPort」クラス212各々への参照を示す「PROVIDER-PORT-REF」要素(11行目)と「REQUESTER-PORT-REF」要素(12行目)である。   The link 710 in FIG. 7 conforms to the notation rule 102 of (d7) and (d8) above. According to (d7) above, both ends of the link as an instance of the “AssemblyConnector” class 215 are objects of the “ProviderPort” class 213 and the “RequesterPort” class 212. Therefore, the two child elements of the “ASSEMBLY-CONNECTOR” element (10th to 13th lines) are “PROVIDER-PORT-REF” elements (11 that indicate references to the “ProviderPort” class 213 and the “RequesterPort” class 212, respectively. Line) and "REQUESTER-PORT-REF" element (line 12).

つまり、10〜13行目の「ASSEMBLY-CONNECTOR」要素は、「ProviderPort」クラス213のオブジェクトである「送信ポート」ポート706と、「RequesterPort」クラス212のオブジェクトである「入力1」ポート707の間の、リンク710を示す。そして、「PROVIDER-PORT-REF」要素(11行目)と「REQUESTER-PORT-REF」要素(12行目)という2つの子要素が、リンク710の両端のポートを示す。なお、10行目に示すように、「ASSEMBLY-CONNECTOR」要素の「Name」属性には、リンク710に割り当てられた図7には不図示の「asmConn_1」という名前が指定されている。   That is, the “ASSEMBLY-CONNECTOR” element on the 10th to 13th lines is between the “transmission port” port 706 that is an object of the “ProviderPort” class 213 and the “input 1” port 707 that is an object of the “RequesterPort” class 212. The link 710 is shown. Then, two child elements of “PROVIDER-PORT-REF” element (11th line) and “REQUESTER-PORT-REF” element (12th line) indicate the ports at both ends of the link 710. As shown in the 10th line, the name “asmConn_1” (not shown in FIG. 7) assigned to the link 710 is specified in the “Name” attribute of the “ASSEMBLY-CONNECTOR” element.

(f12)上記(f11)で述べた「PROVIDER-PORT-REF」要素(11行目)は、リンク710が表す通信の出力元の「送信ポート」ポート706の定義を示す情報を内容として含む。具体的には、11行目の「PROVIDER-PORT-REF」要素は上記(f9)と同様に、「/テスト/部品A/送信ポート」というパスにより、「送信ポート」ポート706の定義への参照を示す。このパスは、パッケージ名(1行目の「Name」属性の値)とクラス名(29行目の「Name」属性の値)とクラス内で定義されたポート名(41行目の「Name」属性の値)をスラッシュで結合したものである。   (F12) The “PROVIDER-PORT-REF” element (line 11) described in (f11) above includes information indicating the definition of the “transmission port” port 706 that is the output source of the communication represented by the link 710. Specifically, the “PROVIDER-PORT-REF” element in the eleventh line is added to the definition of the “transmission port” port 706 by the path “/ test / component A / transmission port”, as in (f9) above. Indicates a reference. This path includes the package name (value of the “Name” attribute on the first line), the class name (value of the “Name” attribute on the 29th line), and the port name defined in the class (“Name” on the 41st line). Attribute values) combined with a slash.

(f13)上記(f11)で述べた「REQUESTER-PORT-REF」要素(12行目)は、上記(f12)と同様に、リンク710が表す通信の出力先の「入力1」ポート707の定義を示す「/テスト/部品B/入力1」というパスを内容として含む。このパスは、パッケージ名(1行目の「Name」属性の値)とクラス名(45行目の「Name」属性の値)とクラス内で定義されたポート名(55行目の「Name」属性の値)をスラッシュで結合したものである。   (F13) The “REQUESTER-PORT-REF” element (line 12) described in (f11) above is the definition of the “input 1” port 707 that is the output destination of the communication represented by the link 710, as in (f12) above. The path includes “/ test / part B / input 1” indicating “”. This path consists of the package name (value of the “Name” attribute on the first line), the class name (value of the “Name” attribute on the 45th line), and the port name defined in the class (“Name” on the 55th line). Attribute values) combined with a slash.

(f14)上記(f6)で述べた「TASK」要素(14〜27行目)は、第1のメタモデル101aの「Task」クラス206のインスタンスである図7の「T1」オブジェクト704を表す。よって、14行目のとおり「TASK」要素の「Name」属性には、「T1」オブジェクト704の名前「T1」が指定されている。そして、図8に示す2つの呼び出し804と805に対応して、「TASK」要素(14〜27行目)は2つの子要素を有する。   (F14) The “TASK” element (lines 14 to 27) described in (f6) above represents the “T1” object 704 in FIG. 7 which is an instance of the “Task” class 206 of the first metamodel 101a. Therefore, as shown in the 14th line, the name “T1” of the “T1” object 704 is specified in the “Name” attribute of the “TASK” element. Then, corresponding to the two calls 804 and 805 shown in FIG. 8, the “TASK” element (14th to 27th lines) has two child elements.

(f15)「TASK」要素の1つ目の子要素は、「部品A」クラス301のオブジェクトである「PART1」オブジェクト702への呼び出し804に対応する。呼び出し804により呼び出されるのは、具体的には、図3のモデル図105aにおいて「部品A」クラス301の操作として定義され、<<RunnableEntity>>というステレオタイプが付加された、「実行ポイント」という名前の関数である。   (F15) The first child element of the “TASK” element corresponds to the call 804 to the “PART1” object 702 that is an object of the “part A” class 301. Specifically, what is called by the call 804 is defined as an operation of the “component A” class 301 in the model diagram 105a of FIG. 3 and is called “run point” with a stereotype << RunnableEntity >> added. Name function.

ここで、<<RunnableEntity>>というステレオタイプが付加された関数は、上記(c6)の表記ルール102に基づき「RunnableEntity」クラス205のインスタンスとしてモデル作成部410により解釈される。つまり、「Task」クラス206の「T1」オブジェクト704からの「実行ポイント」という名前の関数に対する呼び出し804は、図2の第1のメタモデル101aによれば、「RunnableConnector」クラス207に相当する。   Here, the function to which the stereotype << RunnableEntity >> is added is interpreted by the model creation unit 410 as an instance of the “RunnableEntity” class 205 based on the notation rule 102 in (c6) above. That is, the call 804 to the function named “execution point” from the “T1” object 704 of the “Task” class 206 corresponds to the “RunnableConnector” class 207 according to the first metamodel 101a of FIG.

よって、「TASK」要素(14〜27行目)は、呼び出し804に対応する1つ目の子要素として、具体的には「RunnableConnector」クラス207に対応する「RUNNABLE-ENTITY-CONNECTOR」要素(15〜20行目)を有する。なお、15〜20行目の「RUNNABLE-ENTITY-CONNECTOR」要素の「Name」属性には、呼び出し804に割り当てられた図8には不図示の「runEntConn_0」という名前が指定されている(15行目)。   Therefore, the “TASK” element (14th to 27th lines) is specifically the “RUNNABLE-ENTITY-CONNECTOR” element (15 to 20) corresponding to the “RunnableConnector” class 207 as the first child element corresponding to the call 804. Line). In the “Name” attribute of the “RUNNABLE-ENTITY-CONNECTOR” element on the 15th to 20th lines, the name “runEntConn — 0” (not shown in FIG. 8) assigned to the call 804 is specified (15th line). Eye).

(f16)また、15〜20行目の「RUNNABLE-ENTITY-CONNECTOR」要素は、4つの子要素を有する。
1つ目の子要素は、16行目の「NO」要素であり、図8のシーケンス図の形式のモデル図105dで定義された実行順序を表す。呼び出し804は1番目の呼び出しなので、16行目の「NO」要素の内容は「1」である。
(F16) The “RUNNABLE-ENTITY-CONNECTOR” element on the 15th to 20th lines has four child elements.
The first child element is the “NO” element on the 16th line, and represents the execution order defined in the model diagram 105d in the format of the sequence diagram of FIG. Since the call 804 is the first call, the content of the “NO” element on the 16th line is “1”.

2つ目の子要素は、17行目の「SYMBOL」要素であり、呼び出し先の操作の名前を表す。換言すれば、<<RunnableEntity>>というステレオタイプが付加され、「Task」クラス206のオブジェクトから呼び出し可能な関数の名前は、「RunnableEntity」クラス205の「symbol」属性の値に相当し、モデル106aでは「SYMBOL」要素により表される。呼び出し804の呼び出し先は「部品A」クラス301で定義された「実行ポイント」という名前の関数なので、17行目の「SYMBOL」要素の内容は「実行ポイント」である。   The second child element is a “SYMBOL” element on the 17th line and represents the name of the operation of the call destination. In other words, the stereotype << RunnableEntity >> is added, and the name of the function that can be called from the object of the “Task” class 206 corresponds to the value of the “symbol” attribute of the “RunnableEntity” class 205, and the model 106 a This is represented by the “SYMBOL” element. Since the call destination of the call 804 is a function named “execution point” defined in the “component A” class 301, the content of the “SYMBOL” element on the 17th line is “execution point”.

3つ目の子要素は、18行目の「PARAMETER」要素であり、呼び出し先の操作に与える引数を表す。「実行ポイント」という関数は引数を持たないので「PARAMETER」要素の内容は空である。   The third child element is a “PARAMETER” element on the 18th line and represents an argument given to the operation of the call destination. Since the function “execution point” has no argument, the content of the “PARAMETER” element is empty.

4つ目の子要素は、19行目の「COMPONENT-TYPE-REF」要素であり、呼び出し先のオブジェクトが属するクラスを表す。呼び出し804の呼び出し先の「PART1」オブジェクト702は、図7で定義されているとおり「部品A」クラス301のオブジェクトである。よって、19行目の「COMPONENT-TYPE-REF」要素は、上記(f9)で説明した5行目と同様にパス形式で表現された「/テスト/部品A」という値を内容として持つ。   The fourth child element is a “COMPONENT-TYPE-REF” element on the 19th line and represents the class to which the called object belongs. The “PART1” object 702 that is the destination of the call 804 is an object of the “part A” class 301 as defined in FIG. Therefore, the “COMPONENT-TYPE-REF” element on the 19th line has the value “/ test / component A” expressed in the path format as in the 5th line described in the above (f9).

なお、図2の第1のメタモデル101aの集約255によれば、「RunnableEntity」クラス205は、メタ部品クラスの一種である「ComponentType」クラス201に含まれる。よって、第1実施形態では、「ComponentType」クラス201への参照を意味する「COMPONENT-TYPE-REF」要素により、呼び出し先の関数が定義されたクラス(すなわち呼び出し先のオブジェクトが属するクラス)がモデル106a上で表現される。   According to the aggregation 255 of the first meta model 101a in FIG. 2, the “RunnableEntity” class 205 is included in the “ComponentType” class 201 which is a kind of meta component class. Therefore, in the first embodiment, a class in which a call destination function is defined by a “COMPONENT-TYPE-REF” element that means a reference to a “ComponentType” class 201 (that is, a class to which a call destination object belongs) is a model. 106a.

(f17)14〜27行目の「TASK」要素は、上記(f15)と(f16)で述べた1つ目の「RUNNABLE-ENTITY-CONNECTOR」要素(15〜20行目)と同様に、2つ目の「RUNNABLE-ENTITY-CONNECTOR」要素(21〜26行目)を含む。2つ目の「RUNNABLE-ENTITY-CONNECTOR」要素は、図8の呼び出し805に対応するので、呼び出し805に割り当てられた「runEntConn_1」という名前が「Name」属性に指定されている。   (F17) The “TASK” element on the 14th to 27th lines is the same as the first “RUNNABLE-ENTITY-CONNECTOR” element (15th to 20th lines) described in (f15) and (f16) above. The first "RUNNABLE-ENTITY-CONNECTOR" element (21st to 26th lines) is included. Since the second “RUNNABLE-ENTITY-CONNECTOR” element corresponds to the call 805 in FIG. 8, the name “runEntConn_1” assigned to the call 805 is designated in the “Name” attribute.

また、呼び出し805は2番目の呼び出しなので、子要素たる「NO」要素(22行目)は「2」という内容を持つ。
そして、呼び出し805の呼び出し先である「PART2」オブジェクト703は、図6のモデル図105bで定義された「部品B」クラス601のオブジェクトであり、呼び出し805の呼び出し先関数の名前は「実行ポイント」である。よって、2つ目の「RUNNABLE-ENTITY-CONNECTOR」要素は、「実行ポイント」という内容を有する「SYMBOL」要素を子要素として持つ(23行目)。なお、「部品B」クラス601の「実行ポイント」という関数も引数を持たないので、「RUNNABLE-ENTITY-CONNECTOR」要素は、空の「PARAMETER」要素を子要素として持つ(24行目)。
Since the call 805 is the second call, the “NO” element (22nd line) as a child element has the content “2”.
The “PART2” object 703 that is the call destination of the call 805 is an object of the “part B” class 601 defined in the model diagram 105b of FIG. 6, and the name of the call destination function of the call 805 is “execution point”. It is. Therefore, the second “RUNNABLE-ENTITY-CONNECTOR” element has a “SYMBOL” element having the content “execution point” as a child element (line 23). Since the function “execution point” of the “component B” class 601 also has no argument, the “RUNNABLE-ENTITY-CONNECTOR” element has an empty “PARAMETER” element as a child element (line 24).

また、「部品B」クラス601を表すために上記(f10)と同様のパス形式の「/テスト/部品B」という値を内容として持つ「COMPONENT-TYPE-REF」要素(25行目)も、「RUNNABLE-ENTITY-CONNECTOR」要素に子要素として含まれる。   In addition, a “COMPONENT-TYPE-REF” element (25th line) having a value of “/ test / component B” in the same path format as the above (f10) to represent the “component B” class 601 (line 25) It is included as a child element in the “RUNNABLE-ENTITY-CONNECTOR” element.

(f18)上記(f3)で簡単に述べたように、ルート要素(つまり「PACKAGE」要素)の子要素として、29〜44行目には図3の「部品A」クラス301を表す「COMPOSITION-TYPE」要素が含まれる。この「COMPOSITION-TYPE」要素は、5つの子要素を有する。   (F18) As described briefly in (f3) above, “COMPOSITION-” representing the “component A” class 301 in FIG. 3 is displayed as a child element of the root element (ie, “PACKAGE” element) on the 29th to 44th lines. Contains a "TYPE" element. This “COMPOSITION-TYPE” element has five child elements.

(f19)29〜44行目の「COMPOSITION-TYPE」要素の1つ目の子要素は、「部品A」クラス301が図3に示すように「CompositionType」クラス202から直接派生していることを表す空の「SUPER-ELEMENT」要素(30行目)であり、3行目と同様である。   (F19) The first child element of the “COMPOSITION-TYPE” element on the 29th to 44th lines is empty indicating that the “component A” class 301 is directly derived from the “CompositionType” class 202 as shown in FIG. "SUPER-ELEMENT" element (30th line), which is the same as the 3rd line.

(f20)29〜44行目の「COMPOSITION-TYPE」要素の2つ目の子要素は、「部品A」クラス301において<<ConfigParam>>というステレオタイプが付加された属性を表す「COMFIG-PARAM」要素である(31〜34行目)。つまり、第1のメタモデル101aにおいて「ComponentType」クラス201が「ConfigParam」クラス204を含みうることに対応する上記(c5)の表記ルール102にしたがって、モデル作成部410は「COMFIG-PARAM」要素を生成する。   (F20) The second child element of the “COMPOSITION-TYPE” element on lines 29 to 44 is a “COMFIG-PARAM” element that represents an attribute to which a stereotype of << ConfigParam >> is added in the “component A” class 301 (Lines 31-34). That is, in accordance with the notation rule 102 in (c5) above, which corresponds to the fact that the “ComponentType” class 201 can include the “ConfigParam” class 204 in the first metamodel 101a, the model creation unit 410 changes the “COMFIG-PARAM” element. Generate.

具体的には、図3において「部品A」クラス301では、<<ConfigParam>>というステレオタイプが付加された属性が1つだけ定義されており、その属性に関して、名前は「パラメタ」、型は整数型、デフォルト値は未設定である。よって、31〜34行目の「COMFIG-PARAM」要素には、「Name」属性に「パラメタ」という値が設定されている(31行目)。また、「COMFIG-PARAM」要素は、「int」という値を有し整数型を示す「TYPE」要素(32行目)と、デフォルト値が未設定であることを示す空の「DEFAULT-VALUE」要素(33行目)を、子要素として持つ。   Specifically, in FIG. 3, the “component A” class 301 defines only one attribute to which the stereotype << ConfigParam >> is added. The name is “parameter” and the type is Integer type, default value is not set. Therefore, in the “COMFIG-PARAM” elements on the 31st to 34th lines, the value “parameter” is set in the “Name” attribute (31st line). In addition, the “COMFIG-PARAM” element includes a “TYPE” element (line 32) having a value “int” and indicating an integer type, and an empty “DEFAULT-VALUE” indicating that a default value is not set. It has an element (33rd line) as a child element.

(f21)29〜44行目の「COMPOSITION-TYPE」要素の3つ目の子要素は、「部品A」クラス301において<<RunnableEntity>>というステレオタイプが付加された操作を表す「RUNNABLE-ENTITY」要素である(35〜36行目)。つまり、第1のメタモデル101aにおいて「ComponentType」クラス201が「RunnableEntity」クラス205を含むことに対応する上記(c6)の表記ルール102にしたがって、モデル作成部410は「RUNNABLE-ENTITY」要素を作成する。   (F21) The third child element of the “COMPOSITION-TYPE” element in the 29th to 44th lines is an “RUNNABLE-ENTITY” element representing an operation to which a stereotype of << RunnableEntity >> is added in the “component A” class 301 (Lines 35-36). That is, the model creation unit 410 creates the “RUNNABLE-ENTITY” element in accordance with the notation rule 102 in (c6) above corresponding to the “ComponentType” class 201 including the “RunnableEntity” class 205 in the first metamodel 101a. To do.

具体的には、図3において「部品A」クラス301では、<<RunnableEntity>>というステレオタイプが付加された操作が1つだけ定義されており、その操作の名前が「実行ポイント」である。よって、35〜36行目の「RUNNABLE-ENTITY」要素には、「Name」属性に「実行ポイント」という値が設定されている。   Specifically, in FIG. 3, in the “component A” class 301, only one operation to which the stereotype << RunnableEntity >> is added is defined, and the name of the operation is “execution point”. Therefore, in the “RUNNABLE-ENTITY” elements on the 35th to 36th lines, a value “execution point” is set in the “Name” attribute.

(f22)29〜44行目の「COMPOSITION-TYPE」要素の4つ目の子要素は、「部品A」クラス301が有する「RequesterPort」クラス212のオブジェクトを表す「REQUESTER-PORT」要素(37〜40行目)である。図3のモデル図105aによれば、「部品A」クラス301は「RequesterPort」クラス212のオブジェクトを1つ含み、そのオブジェクトの名前は「受信ポート」である。よって、「REQUESTER-PORT」要素には、「Name」属性に「受信ポート」という値が設定されている(37行目)。   (F22) The fourth child element of the “COMPOSITION-TYPE” element on lines 29 to 44 is a “REQUESTER-PORT” element (lines 37 to 40) representing an object of “RequesterPort” class 212 of “part A” class 301 Eyes). According to the model diagram 105a of FIG. 3, the “component A” class 301 includes one object of the “RequesterPort” class 212, and the name of the object is “reception port”. Therefore, in the “REQUESTER-PORT” element, a value “reception port” is set in the “Name” attribute (line 37).

また、モデル図105aには、「受信ポート」ポート303から「インタフェースA」クラス302への依存307が定義されている。よって、モデル作成部410は依存307に基づいて、「REQUESTER-PORT」要素の子要素として、「INTERFACE-REF」要素(38行目)を作成する。「INTERFACE-REF」要素は、第1のメタモデル101aにおける「Port」クラス211から「Interface」クラス208への参照を示す関連262に対応する。「INTERFACE-REF」要素の内容は、5行目などと同様のパス形式で表現された「/テスト/インタフェースA」という値である。   In the model diagram 105a, a dependency 307 from the “reception port” port 303 to the “interface A” class 302 is defined. Therefore, the model creation unit 410 creates an “INTERFACE-REF” element (38th line) as a child element of the “REQUESTER-PORT” element based on the dependency 307. The “INTERFACE-REF” element corresponds to an association 262 indicating a reference from the “Port” class 211 to the “Interface” class 208 in the first metamodel 101a. The content of the “INTERFACE-REF” element is a value “/ test / interface A” expressed in the same path format as the fifth line.

なお、図2では省略されているが、例えば「RequesterPort」クラス212には入力キューの長さを示す整数型の属性が定義されていてもよい。すると、「RequesterPort」クラス212のインスタンスである「受信ポート」ポート303でも入力キューの長さが設定されることになる。すると、設定された長さに基づいて、モデル作成部410は「REQUESTER-PORT」要素の子要素として「QUEUE-LENGTH」要素(39行目)を作成する。図9Bの例では「QUEUE-LENGTH」要素は「0」という値を内容として持つ。   Although omitted in FIG. 2, for example, an integer attribute indicating the length of the input queue may be defined in the “RequesterPort” class 212. Then, the length of the input queue is also set in the “reception port” port 303 which is an instance of the “RequesterPort” class 212. Then, based on the set length, the model creation unit 410 creates a “QUEUE-LENGTH” element (39th line) as a child element of the “REQUESTER-PORT” element. In the example of FIG. 9B, the “QUEUE-LENGTH” element has a value of “0” as the content.

(f23)29〜44行目の「COMPOSITION-TYPE」要素の4つ目の子要素は、「部品A」クラス301が有する「ProviderPort」クラス213のオブジェクトを表す「PROVIDER-PORT」要素(41〜43行目)である。図3のモデル図105aによれば、「部品A」クラス301は「ProviderPort」クラス213のオブジェクトを1つ含み、そのオブジェクトの名前は「送信ポート」である。よって、「PROVIDER-PORT」要素には、「Name」属性に「送信ポート」という値が設定されている(41行目)。   (F23) The fourth child element of the “COMPOSITION-TYPE” element on lines 29 to 44 is a “PROVIDER-PORT” element (lines 41 to 43) representing an object of the “ProviderPort” class 213 included in the “component A” class 301 Eyes). According to the model diagram 105a of FIG. 3, the “component A” class 301 includes one object of the “ProviderPort” class 213, and the name of the object is “transmission port”. Therefore, in the “PROVIDER-PORT” element, the value “transmission port” is set in the “Name” attribute (line 41).

また、モデル図105aには、「送信ポート」ポート304から「インタフェースA」クラス302への依存308が定義されている。よって、モデル作成部410は依存308に基づいて、「PROVIDER-PORT」要素の子要素として、38行目と同様の「INTERFACE-REF」要素を作成する。   In the model diagram 105a, a dependency 308 from the “transmission port” port 304 to the “interface A” class 302 is defined. Therefore, the model creation unit 410 creates an “INTERFACE-REF” element similar to the 38th line as a child element of the “PROVIDER-PORT” element based on the dependency 308.

(f24)上記(f4)で簡単に述べたように、ルート要素(つまり「PACKAGE」要素)の子要素として、45〜74行目には図6の「部品B」クラス601を表す「COMPOSITION-TYPE」要素が含まれる。この「COMPOSITION-TYPE」要素は9個の子要素を有する。   (F24) As briefly described in (f4) above, “COMPOSITION−” representing the “component B” class 601 in FIG. 6 is displayed on the 45th to 74th lines as a child element of the root element (ie, “PACKAGE” element). Contains a "TYPE" element. This “COMPOSITION-TYPE” element has nine child elements.

(f25)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の1つ目の子要素は、「部品B」クラス601が「CompositionType」クラス202から直接派生していることを表す空の「SUPER-ELEMENT」要素(46行目)であり、30行目と同様である。   (F25) The first child element of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is an empty “SUPER-” indicating that the “component B” class 601 is directly derived from the “CompositionType” class 202. ELEMENT "element (line 46), which is the same as line 30.

(f26)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の2つ目と3つ目の子要素は、「部品B」クラス601が「P1」オブジェクト602と「P2」オブジェクト603を含むことを表す2つの「COMPONENT-PROTOTYPE」要素である。1つ目(47〜49行目)は「P1」オブジェクト602に対応し、2つ目(50〜52行目)は「P2」オブジェクト603に対応する。これら2つの「COMPONENT-PROTOTYPE」要素は、上記(f7)〜(f10)で説明した2〜28行目の「COMPOSITION-TYPE」要素の子要素(4〜6行目と7〜9行目)と同じ形式なので、詳しい説明は省略する。   (F26) The second and third child elements of the “COMPOSITION-TYPE” element indicating the “component B” class 601 indicate that the “component B” class 601 includes a “P1” object 602 and a “P2” object 603. Two "COMPONENT-PROTOTYPE" elements to represent. The first (47th to 49th lines) corresponds to the “P1” object 602, and the second (50th to 52nd lines) corresponds to the “P2” object 603. These two “COMPONENT-PROTOTYPE” elements are child elements of the “COMPOSITION-TYPE” elements on lines 2 to 28 described in (f7) to (f10) above (lines 4 to 6 and lines 7 to 9). Detailed description is omitted.

(f27)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の4つ目の子要素(53〜54行目)は、上記(f21)で説明した、35〜36行目の「RUNNABLE-ENTITY」要素と同様の「RUNNABLE-ENTITY」要素であるので、詳しい説明は省略する。   (F27) The fourth child element (lines 53 to 54) of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is the “RUNNABLE-ENTITY” on lines 35 to 36 described in (f21) above. Since it is a “RUNNABLE-ENTITY” element similar to the element, a detailed description is omitted.

(f28)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の5つ目の子要素(55〜58行目)は、上記(f22)で説明した、37〜40行目の「REQUESTER-PORT」要素と同様の「REQUESTER-PORT」要素であるので、詳しい説明は省略する。   (F28) The fifth child element (55th to 58th lines) of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is the “REQUESTER-PORT” on the 37th to 40th lines described in (f22) above. Since it is the “REQUESTER-PORT” element similar to the element, a detailed description is omitted.

(f29)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の6つ目の子要素(59〜61行目)は、上記(f23)で説明した、41〜43行目の「PROVIDER-PORT」要素と同様の「PROVIDER-PORT」要素であるので、詳しい説明は省略する。   (F29) The sixth child element (59th to 61st lines) of the “COMPOSITION-TYPE” element indicating the “part B” class 601 is the “PROVIDER-PORT” on the 41st to 43rd lines described in (f23) above. Since it is a “PROVIDER-PORT” element similar to the element, a detailed description is omitted.

(f30)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の7つ目の子要素(62〜65行目)は、10〜13行目の「ASSEMBLY-CONNECTOR」要素と類似の「ASSEMBLY-CONNECTOR」要素である。10〜13行目の「ASSEMBLY-CONNECTOR」要素は、上記(f11)〜(f13)で詳しく説明したとおりである。よって、62〜65行目の「ASSEMBLY-CONNECTOR」についての詳しい説明は省略するが、図6のモデル図105bにおける「部品B」クラス601の内部のリンク612に基づき、モデル作成部410が62〜65行目の「ASSEMBLY-CONNECTOR」要素を生成する。   (F30) The seventh child element (lines 62 to 65) of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is an “ASSEMBLY-CONNECTOR” similar to the “ASSEMBLY-CONNECTOR” element on the 10th to 13th lines. Element. The “ASSEMBLY-CONNECTOR” element in the 10th to 13th lines is as described in detail in the above (f11) to (f13). Therefore, a detailed description of “ASSEMBLY-CONNECTOR” on lines 62 to 65 is omitted, but the model creation unit 410 is based on the link 612 inside the “part B” class 601 in the model diagram 105b of FIG. The “ASSEMBLY-CONNECTOR” element on the 65th line is generated.

なお、62〜65行目の「ASSEMBLY-CONNECTOR」要素の子要素(63行目と64行目)では、11行目と12行目とは異なり、相対パスが使われている。すなわち、63行目では、「部品B」クラス601のレベルを起点とした「P1/送信ポート」という相対パスの形でパスが表現されている。この相対パスは、「部品B」クラス601の内部部品に当たる「P1」オブジェクト602のオブジェクト名である「P1」と、「P1」オブジェクト602が含む「送信ポート」ポート607の名前である「送信ポート」をスラッシュで結合したものである。64行目でも同様に、相対パスの形式でパスが表現されている。   In the child elements (lines 63 and 64) of the “ASSEMBLY-CONNECTOR” elements on lines 62 to 65, a relative path is used, unlike the 11th and 12th lines. That is, in the 63rd line, the path is expressed in the form of a relative path “P1 / transmission port” starting from the level of the “component B” class 601. This relative path includes “P1” that is an object name of the “P1” object 602 corresponding to an internal part of the “part B” class 601 and “transmission port” that is the name of the “transmission port” port 607 included in the “P1” object 602. "Is connected with a slash. Similarly, in the 64th line, the path is expressed in a relative path format.

(f31)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の8つ目の子要素は、「DelegateConnector」クラス216のインスタンスとしてのリンク611を表す「DELEGATION-CONNECTOR」要素(66〜69行目)である。なお、66行目に示すように、この「DELEGATION-CONNECTOR」要素の「Name」属性には、リンク611に割り当てられた図6には不図示の「delConn_0」という名前が指定されている。   (F31) The eighth child element of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is a “DELEGATION-CONNECTOR” element (lines 66 to 69) representing the link 611 as an instance of the “DelegateConnector” class 216. It is. As shown in the 66th line, in the “Name” attribute of the “DELEGATION-CONNECTOR” element, the name “delConn — 0” (not shown in FIG. 6) assigned to the link 611 is specified.

第1のメタモデル101aにおいて「DelegateConnector」クラス216からは、「Port」クラス211への参照を示す関連271と関連272の2本の線が出ている。よって、「DelegateConnector」クラス216に対応する「DELEGATION-CONNECTOR」要素(66〜69行目)は、2つの子要素(67行目と68行目)を持つ。   In the first metamodel 101a, two lines of a relation 271 and a relation 272 indicating a reference to the “Port” class 211 are output from the “DelegateConnector” class 216. Therefore, the “DELEGATION-CONNECTOR” element (66th to 69th lines) corresponding to the “DelegateConnector” class 216 has two child elements (67th and 68th lines).

つまり、「DELEGATION-CONNECTOR」要素は、「innerPortRef」というロール名で「Port」クラス211を参照する関連271に対応して、内部部品側のポートへの参照を表す「INNER-PORT-REF」要素(67行目)を1つ目の子要素として持つ。「INNER-PORT-REF」要素の内容は、リンク611に関わる内部部品側のポート(すなわち「受信ポート」ポート606)を特定するための「/テスト/部品B/P1/受信ポート」というパスである。   That is, the “DELEGATION-CONNECTOR” element corresponds to the association 271 that refers to the “Port” class 211 with the role name “innerPortRef”, and the “INNER-PORT-REF” element represents a reference to the port on the internal component side. (Line 67) as the first child element. The content of the “INNER-PORT-REF” element is a path “/ test / component B / P1 / reception port” for specifying the internal component side port (ie, “reception port” port 606) related to the link 611. is there.

同様に、「DELEGATION-CONNECTOR」要素は、「outerPortRef」というロール名で「Port」クラス211を参照する関連272に対応して、外部部品側のポートへの参照を表す「OUTER-PORT-REF」要素(68行目)を2つ目の子要素として持つ。「OUTER-PORT-REF」要素の内容は、リンク611に関わる外部部品側のポート(すなわち「入力1」ポート604)を特定するための「/テスト/部品B/入力1」というパスである。   Similarly, the “DELEGATION-CONNECTOR” element corresponds to the relationship 272 that refers to the “Port” class 211 with the role name “outerPortRef”, and represents “OUTER-PORT-REF” that represents a reference to the port on the external component side. It has the element (68th line) as the second child element. The content of the “OUTER-PORT-REF” element is a path “/ test / component B / input 1” for specifying the port on the external component side related to the link 611 (that is, “input 1” port 604).

(f32)「部品B」クラス601を示す「COMPOSITION-TYPE」要素の9つ目の子要素は、「DelegateConnector」クラス216のインスタンスとしてのリンク613を表す「DELEGATION-CONNECTOR」要素(70〜73行目)である。70〜73行目の「DELEGATION-CONNECTOR」要素の内容は、上記(f31)で説明した66〜69行目の「DELEGATION-CONNECTOR」要素の内容と類似なので、詳しい説明は省略する。   (F32) The ninth child element of the “COMPOSITION-TYPE” element indicating the “component B” class 601 is a “DELEGATION-CONNECTOR” element (lines 70 to 73) representing the link 613 as an instance of the “DelegateConnector” class 216. It is. Since the contents of the “DELEGATION-CONNECTOR” element in the 70th to 73rd lines are similar to the contents of the “DELEGATION-CONNECTOR” element in the 66th to 69th lines described in the above (f31), detailed description thereof is omitted.

(f33)上記(f5)で簡単に述べたように、ルート要素(つまり「PACKAGE」要素)の子要素として、75〜85行目には図3および図6の「インタフェースA」クラス302を表す「SENDER-RECEIVER-INTERFACE」要素が含まれる。「SENDER-RECEIVER-INTERFACE」要素の「Name」属性には、「インタフェースA」クラス302のクラス名である「インタフェースA」が指定されている。そして、この「SENDER-RECEIVER-INTERFACE」要素は、3つの子要素を有する。   (F33) As described briefly in (f5) above, the “interface A” class 302 of FIGS. 3 and 6 is represented in the 75th to 85th lines as a child element of the root element (ie, “PACKAGE” element). Contains a "SENDER-RECEIVER-INTERFACE" element. In the “Name” attribute of the “SENDER-RECEIVER-INTERFACE” element, “Interface A” that is the class name of the “Interface A” class 302 is specified. This “SENDER-RECEIVER-INTERFACE” element has three child elements.

(f34)「SENDER-RECEIVER-INTERFACE」要素の1つ目の子要素は、「インタフェースA」クラス302が「SenderReceiverInterface」クラス209から直接派生していることを表す空の「SUPER-ELEMENT」要素であり、3行目と同様である。   (F34) The first child element of the “SENDER-RECEIVER-INTERFACE” element is an empty “SUPER-ELEMENT” element indicating that the “Interface A” class 302 is directly derived from the “SenderReceiverInterface” class 209, The same as the third line.

(f35)「SENDER-RECEIVER-INTERFACE」要素の2つ目と3つ目の子要素は、第1のメタモデル101aにおいて「SenderReceiverInterface」クラス209が「DataElementPrototype」クラス210を含むことに対応した「DATA-ELEMENT」要素である。具体的には、図3に示すように「インタフェースA」クラス302は、「DataElementPrototype」クラス210のインスタンスに相当する2つの属性を有する。すなわち、「要素1」という名前で整数型の属性と、「要素2」という名前で整数型の属性を、「インタフェースA」クラス302は持っている。   (F35) The second and third child elements of the “SENDER-RECEIVER-INTERFACE” element are “DATA-ELEMENT” corresponding to the fact that the “SenderReceiverInterface” class 209 includes the “DataElementPrototype” class 210 in the first metamodel 101a. Element. Specifically, as illustrated in FIG. 3, the “interface A” class 302 has two attributes corresponding to instances of the “DataElementPrototype” class 210. That is, the “interface A” class 302 has an integer type attribute named “element 1” and an integer type attribute named “element 2”.

そのためモデル作成部410は、「インタフェースA」クラス302を表す「SENDER-RECEIVER-INTERFACE」要素の子要素として、「要素1」という名前の属性に対応する「DATA-ELEMENT」要素(77〜80行目)を作成する。そしてモデル作成部410は、「DATA-ELEMENT」要素の「Name」属性の値として「要素1」という名前を設定する。また、モデル作成部410は、「DATA-ELEMENT」要素の子要素として、整数型を示す「int」という内容を持つ「TYPE」要素と、デフォルト値が未設定であることを示す空の「DEFAULT-VALUE」要素を作成する。   Therefore, the model creation unit 410 uses the “DATA-ELEMENT” element (lines 77 to 80) corresponding to the attribute named “element 1” as a child element of the “SENDER-RECEIVER-INTERFACE” element representing the “interface A” class 302. Eye). Then, the model creation unit 410 sets the name “element 1” as the value of the “Name” attribute of the “DATA-ELEMENT” element. The model creation unit 410 also includes a “TYPE” element having the content “int” indicating the integer type as a child element of the “DATA-ELEMENT” element and an empty “DEFAULT” indicating that the default value is not set. -VALUE "element.

同様に、モデル作成部410は、「インタフェースA」クラス302の「要素2」という名前の属性に対応して、「SENDER-RECEIVER-INTERFACE」要素の子要素として2つ目の「DATA-ELEMENT」要素(81〜84行目)も作成する。   Similarly, the model creation unit 410 corresponds to the attribute named “element 2” of the “interface A” class 302 and the second “DATA-ELEMENT” as a child element of the “SENDER-RECEIVER-INTERFACE” element. An element (81st to 84th lines) is also created.

以上(f1)〜(f35)として列挙して説明したように、モデル作成部410は、第1のメタモデル101aと表記ルール102にしたがって、モデル図105a〜105dから、モデル図105a〜105dの意味を表すXML形式のモデル106aを生成する。   As described above and described as (f1) to (f35), the model creation unit 410 changes the meanings of the model diagrams 105a to 105d from the model diagrams 105a to 105d according to the first metamodel 101a and the notation rule 102. An XML format model 106a is generated.

続いて、クラス図とシーケンス図を使ってモデルを定義する場合の図1のプロセスP101の詳細を、図10と図11をそれぞれ参照して説明する。なお、オブジェクト図の形でモデルを定義する場合については、DSM支援装置104が行う処理は図10の処理と類似なので詳しい説明を割愛する。いずれにしろDSM支援装置104は、メタモデル101と表記ルール102にしたがってUML図(つまりモデル図105)が作成されるように、ナビゲーションを行う。   Next, details of the process P101 in FIG. 1 when defining a model using a class diagram and a sequence diagram will be described with reference to FIGS. 10 and 11, respectively. In the case of defining a model in the form of an object diagram, the process performed by the DSM support apparatus 104 is similar to the process of FIG. In any case, the DSM support apparatus 104 performs navigation so that a UML diagram (that is, a model diagram 105) is created according to the meta model 101 and the notation rule 102.

図10は、第1実施形態によるモデル編集処理を説明する図である。なお、図10はUMLのアクティビティ図の形式で表現されている。
ステップS101でメニュー選択部404は、メタモデル101を選択するためのメニューを、UMLツール103を介して出力装置402に表示させる。そして、入力装置401とUMLツール103を介して、メタモデル101を選択する入力をモデル作成ナビゲーション部403が受け取る。すると、モデル作成ナビゲーション部403は、受け取った入力にしたがって、選択されたメタモデル101をメタモデル格納部416から読み出す。
FIG. 10 is a diagram illustrating model editing processing according to the first embodiment. Note that FIG. 10 is expressed in the form of a UML activity diagram.
In step S <b> 101, the menu selection unit 404 displays a menu for selecting the metamodel 101 on the output device 402 via the UML tool 103. The model creation navigation unit 403 receives an input for selecting the metamodel 101 via the input device 401 and the UML tool 103. Then, the model creation navigation unit 403 reads the selected metamodel 101 from the metamodel storage unit 416 in accordance with the received input.

なお、読み出されたメタモデル101は、部品用メニュー提供部405、ポート用メニュー提供部406、インタフェース用メニュー提供部407、内部部品用メニュー提供部408およびタスク用メニュー提供部409から参照可能である。   The read metamodel 101 can be referred to from the component menu providing unit 405, the port menu providing unit 406, the interface menu providing unit 407, the internal component menu providing unit 408, and the task menu providing unit 409. is there.

次のステップS102は、ステップS101からの処理の流れと後述のステップS116からの処理の流れの合流点を示すマージノードである。
続いて、ステップS103でメニュー選択部404は、処理を選択するためのメニューを、UMLツール103を介して出力装置402に表示させる。そして、処理の種類を指定する入力が、入力装置401とUMLツール103を介してモデル作成ナビゲーション部403のメニュー選択部404に与えられると、処理はステップS104に移行する。
The next step S102 is a merge node that represents a merging point between the flow of processing from step S101 and the flow of processing from step S116 described later.
Subsequently, in step S <b> 103, the menu selection unit 404 displays a menu for selecting a process on the output device 402 via the UML tool 103. Then, when an input designating the type of processing is given to the menu selection unit 404 of the model creation navigation unit 403 via the input device 401 and the UML tool 103, the processing proceeds to step S104.

ステップS104でメニュー選択部404は、ステップS103で選択された処理が部品作成処理であるか否かを判断する。部品作成処理が選択された場合、メニュー選択部404は部品用メニュー提供部405を呼び出し、処理はステップS105に移行する。他方、部品作成処理が選択されたのではない場合、処理はステップS117に移行する。   In step S104, the menu selection unit 404 determines whether the process selected in step S103 is a component creation process. When the component creation process is selected, the menu selection unit 404 calls the component menu providing unit 405, and the process proceeds to step S105. On the other hand, if the component creation process is not selected, the process proceeds to step S117.

ステップS105で部品用メニュー提供部405は、新たな部品クラスを作成する。例えば、図3において「部品A」クラス301を新たな部品クラスとして作成する場合を例に説明すると、ステップS105で部品用メニュー提供部405は、UMLツール103を介して次のように動作し、クラス図(つまりモデル図105a)を編集する。   In step S105, the component menu providing unit 405 creates a new component class. For example, in the case where the “part A” class 301 is created as a new part class in FIG. 3, the part menu providing unit 405 operates as follows via the UML tool 103 in step S105. The class diagram (that is, the model diagram 105a) is edited.

すなわち、部品用メニュー提供部405は、第1のメタモデル101a内の「CompositionType」クラス202を作成中のクラス図に既にコピーしたか否かを判断する。そして、まだコピーしていなければ、部品用メニュー提供部405は、第1のメタモデル101aから「CompositionType」クラス202を読み出し、UMLツール103を介して、作成中のクラス図に「CompositionType」クラス202をコピーする。   That is, the component menu providing unit 405 determines whether the “CompositionType” class 202 in the first metamodel 101a has already been copied to the class diagram being created. If not yet copied, the part menu providing unit 405 reads the “CompositionType” class 202 from the first metamodel 101a, and adds the “CompositionType” class 202 to the class diagram being created via the UML tool 103. Copy.

そして、新たな部品のクラス用にクラスを表す矩形を作図し、当該矩形から「CompositionType」クラス202への汎化305の線を引くように、部品用メニュー提供部405はUMLツール103に命令する。その結果、UMLツール103を介して出力装置402には、上記矩形と汎化305の線が出力される。   Then, the part menu providing unit 405 instructs the UML tool 103 to draw a rectangle representing the class for the new part class and draw a generalization 305 line from the rectangle to the “CompositionType” class 202. . As a result, the lines of the rectangle and the generalization 305 are output to the output device 402 via the UML tool 103.

また、部品用メニュー提供部405は、UMLツール103を介して、上記の矩形が表すクラスのクラス名、属性、および操作を指定する入力を受け付け、受け付けた結果を作成中のクラス図に反映して出力装置402に出力させる。   In addition, the component menu providing unit 405 receives input specifying the class name, attribute, and operation of the class represented by the rectangle via the UML tool 103, and reflects the received result on the class diagram being created. Output to the output device 402.

部品用メニュー提供部405はさらに、作成されたクラスの情報をモデル作成部410に通知する。すると、モデル作成部410は通知された情報に対応するXMLコードを生成することでモデル106を作成および編集する。例えば、ステップS105で図3の「部品A」クラス301が作成される場合、モデル作成部410は図9Bの29、30、44行目のコードを生成してモデル106aに追加する。   The component menu providing unit 405 further notifies the model creation unit 410 of information on the created class. Then, the model creation unit 410 creates and edits the model 106 by generating an XML code corresponding to the notified information. For example, when the “component A” class 301 in FIG. 3 is created in step S105, the model creation unit 410 generates the codes on the 29th, 30th, and 44th lines in FIG. 9B and adds them to the model 106a.

続くステップS106で部品用メニュー提供部405は、ステップS105で作成したクラスが表す部品が最上位部品か否かを、入力装置401からUMLツール103を介して与えられる入力に基づいて判断する。例えば、部品用メニュー提供部405は、UMLツール103を介して出力装置402にダイアログを表示させ、ステップS105で作成したクラスが表す部品が最上位部品か否かをユーザに入力させ、その入力に基づいて判断を行う。   In step S <b> 106, the part menu providing unit 405 determines whether the part represented by the class created in step S <b> 105 is the top part based on an input given from the input device 401 via the UML tool 103. For example, the part menu providing unit 405 causes the output device 402 to display a dialog via the UML tool 103, and allows the user to input whether or not the part represented by the class created in step S105 is the top-level part. Make a decision based on this.

ステップS105で作成したクラスが表す部品が最上位部品であれば、処理はステップS107に移行し、最上位部品でなければ、処理はマージノードのステップS108を経て次のステップS109へと進む。   If the part represented by the class created in step S105 is the top part, the process proceeds to step S107. If the part is not the top part, the process proceeds to step S109 through step S108 of the merge node.

ステップS107で部品用メニュー提供部405は、最上位部品設定処理を行う。例えば、ステップS105で図7の「ソフトウェア全体」クラス701が作成される場合、ステップS106では、「ソフトウェア全体」クラス701が最上位部品であるという指示が入力される。したがって、ステップS107で部品用メニュー提供部405は、UMLツール103を介して、「ソフトウェア全体」クラス701に<<TopLevel>>というステレオタイプを付加する。   In step S107, the component menu providing unit 405 performs the highest-level component setting process. For example, when the “whole software” class 701 in FIG. 7 is created in step S105, an instruction that the “whole software” class 701 is the highest-level component is input in step S106. Accordingly, in step S <b> 107, the component menu providing unit 405 adds the stereotype << TopLevel >> to the “whole software” class 701 via the UML tool 103.

また、部品用メニュー提供部405は、ステップS105で作成したクラスが表す部品が最上位部品であることを、モデル作成部410に通知する。モデル作成部410は通知に応じてモデル106を編集する。例えば、ステップS105で「ソフトウェア全体」クラス701が作成される場合、ステップS107でモデル作成部410は、図9Aの2行目に示す「COMPOSITION-TYPE」要素に「TopLevel」属性を追加し、「TopLevel」属性に「True」という値を設定する。   In addition, the part menu providing unit 405 notifies the model creation unit 410 that the part represented by the class created in step S105 is the highest order part. The model creation unit 410 edits the model 106 in response to the notification. For example, when the “whole software” class 701 is created in step S105, the model creation unit 410 adds the “TopLevel” attribute to the “COMPOSITION-TYPE” element shown in the second line of FIG. Set the value "True" to the "TopLevel" attribute.

ステップS107の実行後、処理はステップS108に移行する。ステップS108はステップS106からの処理の流れとステップS107からの処理の流れの合流地点を示すマージノードであり、続いて処理はステップS109に移行する。   After execution of step S107, the process proceeds to step S108. Step S108 is a merge node indicating the merge point of the process flow from step S106 and the process flow from step S107, and then the process proceeds to step S109.

ステップS109で部品用メニュー提供部405は、クラス内で定義された属性に<<ConfigParam>>というステレオタイプを指定するか否かを、入力装置401からUMLツール103を介して与えられる入力に基づいて判断する。   In step S109, the component menu providing unit 405 determines whether or not the stereotype << ConfigParam >> is designated as the attribute defined in the class based on the input given from the input device 401 via the UML tool 103. Judgment.

例えば、部品用メニュー提供部405は、UMLツール103を介して出力装置402にダイアログを表示させてもよい。つまり、部品用メニュー提供部405は、ステップS105で作成されたクラスにおいてステップS105で定義された属性の中から、<<ConfigParam>>というステレオタイプを付加する属性をユーザに選択させるためのダイアログを提供してもよい。   For example, the part menu providing unit 405 may display a dialog on the output device 402 via the UML tool 103. That is, the component menu providing unit 405 displays a dialog for allowing the user to select an attribute to which the stereotype << ConfigParam >> is added from the attributes defined in step S105 in the class created in step S105. May be provided.

そして、<<ConfigParam>>というステレオタイプを付加する対象の属性があれば、処理はステップS110へ移行し、<<ConfigParam>>というステレオタイプをどの属性にも付加しない場合は、処理はマージノードのステップS111を経て次のステップS112へと進む。   If there is an attribute to which the stereotype << ConfigParam >> is added, the process proceeds to step S110. If the stereotype << ConfigParam >> is not added to any attribute, the process is a merge node. After step S111, the process proceeds to next step S112.

ステップS110で部品用メニュー提供部405は、パラメタ設定処理を行う。例えばステップS105で図3の「部品A」クラス301が作成され、ステップS109で「部品A」クラス301の「パラメタ」という名前の属性に対して<<ConfigParam>>というステレオタイプを付加するよう指示する入力が与えられたとする。するとステップS110で部品用メニュー提供部405は、UMLツール103を介して、指定された「パラメタ」という名前の属性に対して、<<ConfigParam>>というステレオタイプを付加する。   In step S110, the component menu providing unit 405 performs parameter setting processing. For example, the “component A” class 301 of FIG. 3 is created in step S105, and an instruction to add the stereotype << ConfigParam >> to the attribute named “parameter” of the “component A” class 301 in step S109. Suppose an input is given. In step S <b> 110, the component menu providing unit 405 adds a stereotype << ConfigParam >> to the specified attribute named “parameter” via the UML tool 103.

また、部品用メニュー提供部405は、<<ConfigParam>>というステレオタイプを付加する対象の属性をモデル作成部410に通知する。上記の「部品A」クラス301の例の場合、モデル作成部410は通知に基づいて図9Bの31〜34行のXMLコードを生成し、モデル106aに追加する。   Also, the component menu providing unit 405 notifies the model creation unit 410 of the attribute to which the stereotype << ConfigParam >> is added. In the case of the “component A” class 301 described above, the model creation unit 410 generates the XML code of lines 31 to 34 in FIG. 9B based on the notification, and adds it to the model 106a.

そして、処理はマージノードのステップS111を経て次のステップS112へと進む。
ステップS111は、ステップS109からの処理の流れとステップS110からの処理の流れの合流地点を示すマージノードであり、続いて処理はステップS112に移行する。
Then, the process proceeds to step S112 through step S111 of the merge node.
Step S111 is a merge node indicating the merge point of the process flow from step S109 and the process flow from step S110, and then the process proceeds to step S112.

ステップS112で部品用メニュー提供部405は、クラス内で定義された操作に<<RunnableEntity>>というステレオタイプを指定するか否かを、入力装置401からUMLツール103を介して与えられる入力に基づいて判断する。すなわち、部品用メニュー提供部405は、クラス内で定義された操作を、外部からの呼び出しにより部品を駆動するための実行ポイントとして規定するか否かを、ステップS112で判断する。   In step S <b> 112, the component menu providing unit 405 determines whether or not to specify the stereotype << RunnableEntity >> for the operation defined in the class based on the input given from the input device 401 via the UML tool 103. Judgment. That is, the part menu providing unit 405 determines in step S112 whether or not to define an operation defined in the class as an execution point for driving the part by an external call.

例えば、部品用メニュー提供部405は、UMLツール103を介して出力装置402にダイアログを表示させてもよい。つまり、部品用メニュー提供部405は、ステップS105で作成されたクラスにおいてステップS105で定義された操作の中から、<<RunnableEntity>>というステレオタイプを付加する操作をユーザに選択させるためのダイアログを提供してもよい。   For example, the part menu providing unit 405 may display a dialog on the output device 402 via the UML tool 103. That is, the component menu providing unit 405 displays a dialog for allowing the user to select an operation for adding the stereotype << RunnableEntity >> from the operations defined in step S105 in the class created in step S105. May be provided.

そして、<<RunnableEntity>>というステレオタイプを付加する対象の操作があれば、処理はステップS113へ移行し、<<RunnableEntity>>というステレオタイプをどの操作にも付加しない場合は、処理はマージノードのステップS114を経て次のステップS115へと進む。   If there is a target operation to which the stereotype << RunnableEntity >> is added, the process proceeds to step S113. If the stereotype << RunnableEntity >> is not added to any operation, the process is a merge node. The process proceeds to step S115 through step S114.

ステップS113で部品用メニュー提供部405は、実行ポイント設定処理を行う。例えばステップS105で図3の「部品A」クラス301が作成されたとする。そして、ステップS112で、「部品A」クラス301の「実行ポイント」という名前の操作に対して、<<RunnableEntity>>というステレオタイプを付加するよう指示する入力が与えられたとする。するとステップS113で部品用メニュー提供部405は、指定された「実行ポイント」という名前の操作に対して、UMLツール103を介して<<RunnableEntity>>というステレオタイプを付加する。   In step S113, the component menu providing unit 405 performs an execution point setting process. For example, it is assumed that the “component A” class 301 of FIG. 3 is created in step S105. In step S112, it is assumed that an input instructing to add a stereotype of << RunnableEntity >> is given to the operation named "execution point" of the "component A" class 301. Then, in step S <b> 113, the component menu providing unit 405 adds a stereotype << RunnableEntity >> via the UML tool 103 to the designated operation named “execution point”.

また、部品用メニュー提供部405は、<<RunnableEntity>>というステレオタイプを付加する対象の操作をモデル作成部410に通知する。上記の「部品A」クラス301の例の場合、モデル作成部410は通知に基づいて図9Bの35〜36行のXMLコードを生成し、モデル106aに追加する。   In addition, the part menu providing unit 405 notifies the model creation unit 410 of an operation to which a stereotype << RunnableEntity >> is added. In the case of the “component A” class 301 described above, the model creation unit 410 generates the XML code of lines 35 to 36 in FIG. 9B based on the notification and adds it to the model 106a.

そして、処理はマージノードのステップS114を経て次のステップS115へと進む。
ステップS114は、ステップS112からの処理の流れとステップS113からの処理の流れの合流地点を示すマージノードであり、続いて処理はステップS115に移行する。
Then, the process proceeds to step S115 through step S114 of the merge node.
Step S114 is a merge node indicating the merge point of the process flow from step S112 and the process flow from step S113, and then the process proceeds to step S115.

ステップS115で部品用メニュー提供部405は、ステップS105で作成されたクラスにポートを作成するか否かを、入力装置401からUMLツール103を介して与えられる入力に基づいて判断する。例えば、部品用メニュー提供部405は、UMLツール103を介して出力装置402にダイアログを表示させ、ポートを作成するか否かをユーザに指定させてもよい。   In step S115, the component menu providing unit 405 determines whether to create a port in the class created in step S105, based on an input given from the input device 401 via the UML tool 103. For example, the part menu providing unit 405 may display a dialog on the output device 402 via the UML tool 103 and allow the user to specify whether to create a port.

ポートを作成しない場合、処理はステップS116に進み、ポートを作成する場合、処理はステップS119に進む。
ステップS116では、モデル図105の編集を終了するよう指示する入力が入力装置401とUMLツール103を介して与えられたか否かをメニュー選択部404が判断する。編集を終了するよう指示する入力が与えられた場合、図10の処理は終了する。編集を終了するよう指示する入力が与えられていない場合、処理はステップS102に戻る。
If a port is not created, the process proceeds to step S116. If a port is created, the process proceeds to step S119.
In step S <b> 116, the menu selection unit 404 determines whether an input for instructing to finish editing the model diagram 105 is given via the input device 401 and the UML tool 103. When an input for instructing to end editing is given, the processing in FIG. 10 ends. If no input is given to end editing, the process returns to step S102.

さて、メニュー選択部404は、「ステップS103で選択された処理は部品作成処理ではない」と上記のステップS104において判断した場合、ステップS117で、「ステップS103で選択された処理がポート作成処理か否か」を判断する。ポート作成処理が選択された場合、メニュー選択部404はポート用メニュー提供部406を呼び出し、処理はステップS118に移行する。他方、ポート作成処理が選択されたのではない場合、処理はステップS126に移行する。   When the menu selection unit 404 determines in step S104 that “the process selected in step S103 is not a part creation process”, in step S117, “whether the process selected in step S103 is a port creation process or not. Judgment is made. When the port creation process is selected, the menu selection unit 404 calls the port menu provision unit 406, and the process proceeds to step S118. On the other hand, if the port creation process is not selected, the process proceeds to step S126.

ステップS118でポート用メニュー提供部406は、ポートのオブジェクトを作成する対象となる部品のクラスを選択する。例えば、ポート用メニュー提供部406は、ポートのオブジェクトを作成する部品のクラスを選択するようユーザに求めるダイアログを、UMLツール103を介して出力装置402に出力させる。そして、ポート用メニュー提供部406は、ダイアログに対するユーザの入力を、入力装置401とUMLツール103を介して受け取り、入力にしたがって、ポートのオブジェクトを作成する対象のクラスを選択する。そして、処理はステップS119に移行する。   In step S118, the port menu providing unit 406 selects a class of parts for which a port object is to be created. For example, the port menu providing unit 406 causes the output device 402 to output a dialog requesting the user to select a part class for creating a port object via the UML tool 103. The port menu providing unit 406 receives user input to the dialog via the input device 401 and the UML tool 103, and selects a target class for creating a port object according to the input. Then, the process proceeds to step S119.

ステップS119はステップS115からの処理の流れとステップS118からの処理の流れの合流地点を示すマージノードである。
なお、ステップS115からの処理の流れでは、ポートを作成する対象はステップS105で作成されたクラスであり、ステップS118からの処理の流れでは、ポートを作成する対象はステップS118で選択されたクラスである。よって、ステップS119に続いてステップS120が実行される際には、ポートを作成する対象は一意に決まっている。
Step S119 is a merge node indicating a merge point of the process flow from step S115 and the process flow from step S118.
In the process flow from step S115, the target for creating the port is the class created in step S105, and in the process flow from step S118, the target for creating the port is the class selected in step S118. is there. Therefore, when step S120 is executed subsequent to step S119, the target for creating the port is uniquely determined.

ステップS120では、ステップS105で作成されたか、またはステップS118で選択された部品のクラスを対象として、ポート用メニュー提供部406がポート作成処理を行う。ポート作成処理は、例えば、次の(g1)〜(g4)のような処理を含む。   In step S120, the port menu providing unit 406 performs port creation processing for the part class created in step S105 or selected in step S118. The port creation process includes, for example, the following processes (g1) to (g4).

(g1)作成するポートの数と種類と名前を指定するようにユーザに促すダイアログを、UMLツール103を介して出力装置402に出力させる処理。
(g2)ダイアログへの入力を、入力装置401とUMLツール103を介して受け取り、入力にしたがってポートを定義する処理。
(G1) Processing to output a dialog prompting the user to specify the number, type, and name of ports to be created to the output device 402 via the UML tool 103.
(G2) Processing for receiving input to the dialog through the input device 401 and the UML tool 103 and defining a port according to the input.

(g3)定義したポートを表す図形を出力装置402に出力するよう、UMLツール103に命令する処理。
(g4)定義したポートの情報をモデル作成部410に通知する処理。
(G3) Processing to instruct the UML tool 103 to output a graphic representing the defined port to the output device 402.
(G4) Processing for notifying the model creation unit 410 of the information of the defined port.

なお、上記(g1)において、ポートの種類とは、図2の第1のメタモデル101aの例で説明すると、データを受ける側の「RequesterPort」クラス212なのか、データを出力する側の「ProviderPort」クラス213なのか、という種別のことである。また、図2において集約259の多重度が「0..*」なので、1つの部品クラスは任意の個数のポートを持つことができる。よって、ステップS120では、上記(g1)のように、作成するポートの数をダイアログにて指定可能としてもよい。   Note that in (g1) above, the type of port is the “RequesterPort” class 212 on the data receiving side or the “ProviderPort” on the data output side, as described in the example of the first metamodel 101a in FIG. "Class 213". In FIG. 2, since the multiplicity of the aggregation 259 is “0 .. *”, one component class can have an arbitrary number of ports. Therefore, in step S120, the number of ports to be created may be specified in the dialog as in (g1) above.

また、上記(g4)で通知された情報に基づいて、モデル作成部410はモデル106を編集する。例えば、ステップS120で図6の「入力1」ポート604と「出力1」ポート605が作成された場合、モデル作成部410は図9Cの55、57〜59、61行のXMLコードを生成し、モデル106aに追加する。   Further, the model creation unit 410 edits the model 106 based on the information notified in (g4). For example, when the “input 1” port 604 and the “output 1” port 605 in FIG. 6 are created in step S120, the model creation unit 410 generates XML codes of lines 55, 57 to 59, and 61 in FIG. Add to model 106a.

ステップS120に続くステップS121において、ポート用メニュー提供部406は、ステップS120で作成したポートが使うインタフェースのクラスが作成済みか否かを判断する。   In step S121 following step S120, the port menu providing unit 406 determines whether an interface class used by the port created in step S120 has been created.

例えば、ポート用メニュー提供部406は、「ステップS120で作成したポートが使うインタフェースのクラスは作成済みか否か」をユーザに尋ねるダイアログを、UMLツール103を介して出力装置402に出力させてもよい。作成したポート用のインタフェースのクラスが作成済みの場合、処理はステップS122に移行し、未作成の場合は処理がステップS123に移行する。   For example, the port menu providing unit 406 may cause the output device 402 to output a dialog asking the user whether or not the interface class used by the port created in step S120 has been created, via the UML tool 103. Good. If the created interface class for the port has been created, the process proceeds to step S122. If not created, the process proceeds to step S123.

ステップS122でポート用メニュー提供部406は、作成済みのクラスの中から、ステップS120で作成したポートが使うインタフェースのクラスを選択する。
例えば、ポート用メニュー提供部406は、インタフェースのクラスを選択するようユーザに求めるダイアログを、UMLツール103を介して出力装置402に出力させる。そして、ポート用メニュー提供部406は、ダイアログに対するユーザの入力を、入力装置401とUMLツール103を介して受け取り、入力にしたがって、ポートが使うインタフェースのクラスを選択する。
In step S122, the port menu providing unit 406 selects an interface class used by the port created in step S120 from the created classes.
For example, the port menu providing unit 406 causes the output device 402 to output a dialog requesting the user to select an interface class via the UML tool 103. The port menu providing unit 406 receives user input to the dialog via the input device 401 and the UML tool 103, and selects an interface class used by the port according to the input.

ステップS122の実行後、次のステップS125へと制御が移る。
また、ステップS123では、ポート用メニュー提供部406がインタフェース用メニュー提供部407を呼び出し、インタフェース用メニュー提供部407が新たなインタフェースクラスを作成する。例えば、図3において「インタフェースA」クラス302を新たに作成する場合を例に説明すると、ステップS123でインタフェース用メニュー提供部407は、UMLツール103を介して次のように動作し、クラス図(つまりモデル図105a)を編集する。
After execution of step S122, control is transferred to the next step S125.
In step S123, the port menu providing unit 406 calls the interface menu providing unit 407, and the interface menu providing unit 407 creates a new interface class. For example, the case where a new “Interface A” class 302 is created in FIG. 3 will be described as an example. In step S123, the interface menu providing unit 407 operates as follows via the UML tool 103, and the class diagram ( That is, the model diagram 105a) is edited.

すなわち、インタフェース用メニュー提供部407は、第1のメタモデル101a内の「SenderReceiverInterface」クラス209を作成中のクラス図に既にコピーしたか否かを判断する。そして、まだコピーしていなければ、インタフェース用メニュー提供部407は第1のメタモデル101aから「SenderReceiverInterface」クラス209を読み出し、UMLツール103を介して、作成中のクラス図に「SenderReceiverInterface」クラス209をコピーする。   That is, the interface menu providing unit 407 determines whether the “SenderReceiverInterface” class 209 in the first metamodel 101a has already been copied to the class diagram being created. If not yet copied, the interface menu providing unit 407 reads the “SenderReceiverInterface” class 209 from the first metamodel 101a, and adds the “SenderReceiverInterface” class 209 to the class diagram being created via the UML tool 103. make a copy.

そして新たなインタフェースクラス用にクラスを表す矩形を作図し、当該矩形から「SenderReceiverInterface」クラス209への汎化306の線を引くように、インタフェース用メニュー提供部407はUMLツール103に命令する。その結果、UMLツール103を介して出力装置402には、上記矩形と汎化306の線が出力される。   Then, the interface menu providing unit 407 instructs the UML tool 103 to draw a rectangle representing the class for the new interface class and draw a generalization 306 line from the rectangle to the “SenderReceiverInterface” class 209. As a result, the lines of the rectangle and the generalization 306 are output to the output device 402 via the UML tool 103.

また、インタフェース用メニュー提供部407は、UMLツール103を介して、上記の矩形が表すクラスのクラス名を指定する入力を受け付け、受け付けた結果を作成中のクラス図に反映して出力装置402に出力させる。   Also, the interface menu providing unit 407 receives input specifying the class name of the class represented by the rectangle via the UML tool 103, and reflects the received result in the class diagram being created to the output device 402. Output.

インタフェース用メニュー提供部407はさらに、作成されたクラスの情報をモデル作成部410に通知する。すると、モデル作成部410は通知された情報に対応するXMLコードを生成することでモデル106を作成および編集する。例えば、ステップS123で図3の「インタフェースA」クラス302が作成される場合、モデル作成部410は図9Dの75、76、85行のコードを生成してモデル106aに追加する。   Further, the interface menu providing unit 407 notifies the model creation unit 410 of information on the created class. Then, the model creation unit 410 creates and edits the model 106 by generating an XML code corresponding to the notified information. For example, when the “interface A” class 302 of FIG. 3 is created in step S123, the model creation unit 410 generates the code of lines 75, 76, and 85 of FIG. 9D and adds it to the model 106a.

次のステップS124でインタフェース用メニュー提供部407は、ステップS123で作成したインタフェースクラスに含まれるデータ要素を作成する。
図2の第1のメタモデル101aによれば、「SenderReceiverInterface」クラス209は「DataElementPrototype」クラス210を含みうる。よって、「SenderReceiverInterface」クラス209のサブクラスとして定義されるインタフェースクラスは、データ要素を含みうる。
In the next step S124, the interface menu providing unit 407 creates data elements included in the interface class created in step S123.
According to the first metamodel 101 a of FIG. 2, the “SenderReceiverInterface” class 209 can include a “DataElementPrototype” class 210. Accordingly, the interface class defined as a subclass of the “SenderReceiverInterface” class 209 can include data elements.

そこで、このような第1のメタモデル101aにしたがってステップS124でインタフェース用メニュー提供部407は、ステップS123で作成したインタフェースクラスの属性として、「DataElementPrototype」クラス210のインスタンスを作成する。すなわち、インタフェース用メニュー提供部407は、ステップS123で作成したクラスの属性として、インタフェースクラスの有するデータ要素を、UMLツール103を介して作成する。   Accordingly, in step S124, the interface menu providing unit 407 creates an instance of the “DataElementPrototype” class 210 as an attribute of the interface class created in step S123 according to the first meta model 101a. That is, the interface menu providing unit 407 creates the data element of the interface class via the UML tool 103 as the attribute of the class created in step S123.

例えば、インタフェース用メニュー提供部407は、データ要素の個数と、その個数分のデータ要素の名前および型をユーザに入力させるためのダイアログを、UMLツール103を介して出力装置402に出力させてもよい。そして、インタフェース用メニュー提供部407はダイアログに対する入力を、入力装置401とUMLツール103を介して受け取る。   For example, the interface menu providing unit 407 may cause the output device 402 to output a dialog for allowing the user to input the number of data elements and the name and type of the data elements corresponding to the number of data elements via the UML tool 103. Good. The interface menu providing unit 407 receives an input to the dialog via the input device 401 and the UML tool 103.

そして、インタフェース用メニュー提供部407は、ステップS123で作成したクラスに、受け取った入力にしたがって属性を設定するようUMLツール103に命令する。すると、出力装置402には、入力にしたがって属性の名前と型が出力される。   Then, the interface menu providing unit 407 instructs the UML tool 103 to set the attribute in the class created in step S123 according to the received input. Then, the attribute name and type are output to the output device 402 according to the input.

実施形態によっては、名前と型だけでなく、属性のデフォルト値や可視性に関する入力をさらにインタフェース用メニュー提供部407が受け付けてもよい。また、ステップS124でデータ要素の個数として「0」が入力されても、インタフェース用メニュー提供部407は、図2の合成集約264の「0..*」という多重度に基づいて、入力は適正であると判断する。その結果、1つもデータ要素が作成されないという場合もありうる。   Depending on the embodiment, the interface menu providing unit 407 may accept not only the name and type, but also an input related to a default value and visibility of the attribute. Further, even if “0” is input as the number of data elements in step S124, the interface menu providing unit 407 makes an appropriate input based on the multiplicity of “0 .. *” of the composite aggregation 264 of FIG. It is judged that. As a result, no data element may be created.

なお、ステップS124の動作の具体例を挙げれば下記のとおりである。すなわち、図3の例では、「インタフェースA」クラス302が有するデータ要素の個数として「2」が入力され、1つ目のデータ要素の名前と型として「要素1」と「int」が入力され、2つ目のデータ要素の名前と型として「要素2」と「int」が入力される。その結果、「インタフェースA」クラス302には「要素1」と「要素2」という名前の2つの属性が設定され、出力装置402には図3の「インタフェースA」クラス302のように表示される。   A specific example of the operation in step S124 is as follows. That is, in the example of FIG. 3, “2” is input as the number of data elements included in the “interface A” class 302, and “element 1” and “int” are input as the name and type of the first data element. “Element 2” and “int” are input as the name and type of the second data element. As a result, two attributes named “element 1” and “element 2” are set in the “interface A” class 302 and displayed on the output device 402 as the “interface A” class 302 in FIG. .

また、ステップS124ではさらに、インタフェース用メニュー提供部407が、受け取った入力の内容をモデル作成部410に通知する。モデル作成部410は通知に応じてモデル106を編集する。例えば、図3の例では、モデル作成部410は、図9Dの77〜84行のXMLコードを生成し、モデル106aに追加する。   In step S124, the interface menu providing unit 407 notifies the model creation unit 410 of the content of the received input. The model creation unit 410 edits the model 106 in response to the notification. For example, in the example of FIG. 3, the model creation unit 410 generates the XML code of lines 77 to 84 in FIG. 9D and adds it to the model 106a.

以上のような一連の処理がステップS124で実行された後、次のステップS125へと制御が移る。
ステップS125でポート用メニュー提供部406は、ステップS120で作成したポートの各々を、ステップS122で選択されたか、またはステップS123で作成されたインタフェースクラスに接続する処理を行う。具体的には、ポート用メニュー提供部406は、ポートのオブジェクトからインタフェースクラスへの依存の追加をUMLツール103に命令するとともに、依存の追加をモデル作成部410に通知する。
After a series of processes as described above are executed in step S124, control is transferred to the next step S125.
In step S125, the port menu providing unit 406 performs processing for connecting each of the ports created in step S120 to the interface class selected in step S122 or created in step S123. Specifically, the port menu providing unit 406 instructs the UML tool 103 to add dependency from the port object to the interface class, and notifies the model creation unit 410 of the addition of dependency.

例えば、図3の例で、「受信ポート」ポート303がステップS120で作成され、「インタフェースA」クラス302がステップS122で選択されるかステップS123で作成されたとする。   For example, in the example of FIG. 3, it is assumed that the “reception port” port 303 is created in step S120 and the “interface A” class 302 is selected in step S122 or created in step S123.

この場合、ステップS125でポート用メニュー提供部406は、依存307を追加するようUMLツール103に命令するので、結果として、出力装置402には依存307が表示される。また、ポート用メニュー提供部406が依存307の追加をモデル作成部410に通知するので、モデル作成部410は、図9Bの38行のXMLコードを生成し、モデル106aに追加する。
以上のステップS125の実行後、処理はステップS116に移行する。
In this case, the port menu providing unit 406 instructs the UML tool 103 to add the dependency 307 in step S125, and as a result, the dependency 307 is displayed on the output device 402. Further, since the port menu providing unit 406 notifies the model creation unit 410 of the addition of the dependency 307, the model creation unit 410 generates the XML code of 38 lines in FIG. 9B and adds it to the model 106a.
After execution of the above step S125, the process proceeds to step S116.

さて、メニュー選択部404は、「ステップS103で選択された処理はポート作成処理ではない」と上記のステップS117で判断した場合、ステップS126で、「ステップS103で選択された処理がインタフェース作成処理か否か」を判断する。インタフェース作成処理が選択された場合、メニュー選択部404はインタフェース用メニュー提供部407を呼び出し、処理はステップS127に移行する。他方、インタフェース作成処理が選択されたのではない場合、処理はステップS129に移行する。   When the menu selection unit 404 determines in step S117 that “the process selected in step S103 is not a port creation process”, in step S126, “whether the process selected in step S103 is an interface creation process or not. Judgment is made. When the interface creation process is selected, the menu selection unit 404 calls the interface menu providing unit 407, and the process proceeds to step S127. On the other hand, if the interface creation process is not selected, the process proceeds to step S129.

ステップS127では、インタフェース用メニュー提供部407がインタフェースクラスを作成する。ステップS127はステップS123と同様なので、詳しい説明は省略する。   In step S127, the interface menu providing unit 407 creates an interface class. Since step S127 is the same as step S123, detailed description is omitted.

ステップS127に続いて、ステップS128でインタフェース用メニュー提供部407は、データ要素作成処理を行う。ステップS128はステップS124と同様なので、詳しい説明は省略する。ステップS128の実行後、処理はステップS116に移行する。   Following step S127, in step S128, the interface menu providing unit 407 performs data element creation processing. Since step S128 is the same as step S124, detailed description is omitted. After execution of step S128, the process proceeds to step S116.

さて、メニュー選択部404は、「ステップS103で選択された処理はインタフェース作成処理ではない」と上記のステップS126で判断した場合、ステップS129で、「ステップS103で選択された処理が内部部品作成処理か否か」を判断する。内部部品作成処理が選択された場合、メニュー選択部404は内部部品用メニュー提供部408を呼び出し、処理はステップS130に移行する。他方、内部部品作成処理が選択されたのではない場合、処理はステップS134に移行する。   If the menu selection unit 404 determines in step S126 that "the process selected in step S103 is not an interface creation process", in step S129, "the process selected in step S103 is an internal component creation process". Whether or not. When the internal component creation process is selected, the menu selection unit 404 calls the internal component menu providing unit 408, and the process proceeds to step S130. On the other hand, if the internal part creation process is not selected, the process proceeds to step S134.

ステップS130で内部部品用メニュー提供部408は、内部部品のクラスを選択する。
例えば、内部部品用メニュー提供部408は、定義済みの部品クラスの中から、内部部品として使う部品のクラスを選択するようユーザに求めるダイアログを、UMLツール103を介して出力装置402に出力させてもよい。そして、内部部品用メニュー提供部408は、ダイアログに対する入力を、入力装置401からUMLツール103を介して受け取り、受け取った入力にしたがって内部部品のクラスを選択してもよい。
In step S130, the internal component menu providing unit 408 selects a class of internal components.
For example, the internal component menu providing unit 408 causes the output device 402 to output a dialog requesting the user to select a component class to be used as an internal component from the predefined component classes via the UML tool 103. Also good. Then, the internal component menu providing unit 408 may receive an input to the dialog from the input device 401 via the UML tool 103, and may select a class of the internal component according to the received input.

例えば、図6の例において、「部品B」クラス601の内部部品である「P1」オブジェクト602が作成される場合、ステップS130では、「P1」オブジェクト602が属する図3の「部品A」クラス301が選択される。   For example, in the example of FIG. 6, when the “P1” object 602 that is an internal part of the “part B” class 601 is created, in step S130, the “part A” class 301 of FIG. 3 to which the “P1” object 602 belongs. Is selected.

続いてステップS131で内部部品用メニュー提供部408は、内部部品のオブジェクトを作成する。具体的には、内部部品用メニュー提供部408は以下の(h1)〜(h5)のような処理を行う。なお、以下の(h1)〜(h5)の説明では、図6において「部品B」クラス601の内部部品として「P1」オブジェクト602が作成される場合を例として挙げる。   Subsequently, in step S131, the internal component menu providing unit 408 creates an internal component object. Specifically, the internal component menu providing unit 408 performs the following processes (h1) to (h5). In the following description of (h1) to (h5), a case where a “P1” object 602 is created as an internal component of the “component B” class 601 in FIG.

(h1)内部部品用メニュー提供部408は、UMLツール103に、ステップS130で内部部品のクラスとして選択されたクラスをインスタンス化してオブジェクトを作成するよう命令する。   (H1) The internal component menu providing unit 408 instructs the UML tool 103 to instantiate the class selected as the internal component class in step S130 and create an object.

その結果、例えば、図3の「部品A」クラス301から図6の「P1」オブジェクト602が作成される。なお、図3のとおり「部品A」クラス301が「受信ポート」ポート303と「送信ポート」ポート304を持つことが定義されているので、図6に示すように、「P1」オブジェクト602は「受信ポート」ポート606と「送信ポート」ポート607を有する。ただし、この段階ではまだ「P1」というオブジェクト名は付けられていない。   As a result, for example, the “P1” object 602 in FIG. 6 is created from the “component A” class 301 in FIG. As shown in FIG. 3, since it is defined that the “component A” class 301 has a “reception port” port 303 and a “transmission port” port 304, the “P1” object 602 includes “ It has a “receive port” port 606 and a “transmit port” port 607. However, the object name “P1” has not yet been assigned at this stage.

(h2)内部部品用メニュー提供部408は、作成したオブジェクトの名前を指定する入力を入力装置401からUMLツール103を介して受け取るとともに、作成したオブジェクトに当該名前を付けるよう、UMLツール103に命令する。例えば、「P1」という名前が図6の「P1」オブジェクト602に付けられる。   (H2) The internal component menu providing unit 408 receives an input designating the name of the created object from the input device 401 via the UML tool 103 and instructs the UML tool 103 to give the created object the name. To do. For example, the name “P1” is assigned to the “P1” object 602 in FIG.

(h3)内部部品用メニュー提供部408は、内部部品を含める外部部品を選択する。例えば、内部部品用メニュー提供部408は、上記(h1)で作成したオブジェクトを含ませる外部部品のクラスを指定するようユーザに促すダイアログを、UMLツール103を介して出力装置402に出力させる。そして、内部部品用メニュー提供部408は、UMLツール103を介してダイアログに対する入力装置401からの入力を受け取り、受け取った入力にしたがって外部部品のクラスを選択する。例えば、内部部品用メニュー提供部408は、外部部品のクラスとして図6の「部品B」クラス601を選択する。   (H3) The internal component menu providing unit 408 selects an external component including the internal component. For example, the internal component menu providing unit 408 causes the output device 402 to output a dialog prompting the user to specify the class of the external component that includes the object created in (h1) above, via the UML tool 103. Then, the internal component menu providing unit 408 receives an input from the input device 401 to the dialog via the UML tool 103, and selects an external component class according to the received input. For example, the internal component menu providing unit 408 selects the “component B” class 601 in FIG. 6 as the class of the external component.

(h4)内部部品用メニュー提供部408は、上記(h3)で選択した外部部品のクラスに、上記(h1)で作成した内部部品のオブジェクトを含ませるよう、UMLツール103に命令する。その結果、例えば、図6のとおり「P1」オブジェクト602が「部品B」クラス601に含まれることとなり、出力装置402は「部品B」クラス601の矩形の中に「P1」オブジェクト602の矩形を表示する。   (H4) The internal component menu providing unit 408 instructs the UML tool 103 to include the internal component object created in (h1) in the external component class selected in (h3). As a result, for example, as shown in FIG. 6, the “P1” object 602 is included in the “Part B” class 601, and the output device 402 adds the rectangle of the “P1” object 602 to the rectangle of the “Part B” class 601. indicate.

(h5)内部部品用メニュー提供部408は、上記(h1)〜(h4)の結果定義された部品間の入れ子関係をモデル作成部410に通知し、モデル作成部410は通知に基づいてモデル106を編集する。例えば、「部品B」クラス601と「P1」オブジェクト602について通知された入れ子関係と、「P1」オブジェクト602のオブジェクト名として通知された「P1」という名前に基づいて、モデル作成部410は、モデル106aを編集する。具体的には、モデル作成部410は、図9Cの47〜49行のXMLコードを生成してモデル106aに追加する。   (H5) The internal component menu providing unit 408 notifies the model creation unit 410 of the nesting relationship between the components defined as a result of the above (h1) to (h4), and the model creation unit 410 determines the model 106 based on the notification. Edit. For example, based on the nesting relationship notified about the “part B” class 601 and the “P1” object 602 and the name “P1” notified as the object name of the “P1” object 602, the model creation unit 410 106a is edited. Specifically, the model creation unit 410 generates the XML code of lines 47 to 49 in FIG. 9C and adds it to the model 106a.

例えば上記の(h1)〜(h5)のような処理がステップS131で行われると、続いて、処理はステップS132に移行する。
ステップS132で内部部品用メニュー提供部408は、デレゲートコネクタ作成処理を行う。すなわち、図2の第1のメタモデル101aの「DelegateConnector」クラス216のインスタンスとしての、外部部品のポートと内部部品のポートとの間のリンクを、内部部品用メニュー提供部408は作成する。例えば、内部部品用メニュー提供部408は、ステップS131で図6の「P1」オブジェクト602を作成した場合、ステップS132ではリンク611を作成する。
For example, when the processes (h1) to (h5) described above are performed in step S131, the process proceeds to step S132.
In step S132, the internal component menu providing unit 408 performs a delegate connector creation process. That is, the internal component menu providing unit 408 creates a link between the port of the external component and the port of the internal component as an instance of the “DelegateConnector” class 216 of the first metamodel 101a of FIG. For example, if the “P1” object 602 of FIG. 6 is created in step S131, the internal component menu providing unit 408 creates the link 611 in step S132.

なお、図2の第1のメタモデル101aにおける集約259の「0..*」という多重度が示すように、内部部品と外部部品は、いずれも、ポートを持たないかもしれないし、1個以上の任意の個数のポートを持つかもしれない。よって、ステップS132では、結果的にはリンクが作成されないこともあるし、1本または複数本のリンクが作成されることもある。   As indicated by the multiplicity of “0 .. *” in the aggregation 259 in the first metamodel 101a in FIG. 2, neither the internal part nor the external part may have a port, and one or more May have any number of ports. Therefore, in step S132, a link may not be created as a result, and one or a plurality of links may be created.

具体的には、内部部品用メニュー提供部408は、ステップS131で作成した内部部品のポートを、上記(h3)で選択した外部部品のポートと接続するためのユーザインタフェースを、UMLツール103を介して提供する。当該ユーザインタフェースは、例えば、内部部品と外部部品のポート同士を接続するか否かをユーザに尋ねるダイアログを含んでもよい。また、当該ユーザインタフェースは、接続対象の内部部品と外部部品のポートの組を、UMLツール103を介してユーザに指定させる機能を有する。   Specifically, the internal component menu providing unit 408 provides, via the UML tool 103, a user interface for connecting the internal component port created in step S131 to the external component port selected in (h3). To provide. The user interface may include, for example, a dialog asking the user whether to connect the ports of the internal part and the external part. In addition, the user interface has a function of allowing the user to specify a set of ports of internal components to be connected and ports of external components via the UML tool 103.

内部部品用メニュー提供部408は、入力装置401からUMLツール103と上記ユーザインタフェースを介して与えられた入力を受け取り、入力が上記(d6)と(d8)の制約を満たすか否を判断する。内部部品用メニュー提供部408は、入力が(d6)と(d8)の制約を満たせば入力にしたがってリンクを作成し、逆に、入力が(d6)と(d8)の制約を満たさなければ、UMLツール103を介して出力装置402に警告を表示させる。   The internal component menu providing unit 408 receives an input given from the input device 401 via the UML tool 103 and the user interface, and determines whether the input satisfies the constraints (d6) and (d8). The internal component menu providing unit 408 creates a link according to the input if the input satisfies the constraints of (d6) and (d8). Conversely, if the input does not satisfy the constraints of (d6) and (d8), A warning is displayed on the output device 402 via the UML tool 103.

以上のとおりステップS132では、場合によってはリンクが作成されず、場合によっては1本以上のリンクが作成される。リンクが作成される場合は、上記の制御により、当該リンクは(d6)と(d8)の制約を満たす。   As described above, in step S132, a link is not created in some cases, and one or more links are created in some cases. When a link is created, the link satisfies the restrictions (d6) and (d8) by the above control.

さらに、ステップS132で内部部品用メニュー提供部408は、作成したリンクの情報をモデル作成部410に通知する。モデル作成部410は通知にしたがってXMLコードを生成しモデル106を編集する。例えば、図6のリンク611が作成された場合、モデル作成部410は図9Cの66〜69行目のXMLコードを生成してモデル106aに追加する。   Further, in step S132, the internal component menu providing unit 408 notifies the model creation unit 410 of information on the created link. The model creation unit 410 generates an XML code according to the notification and edits the model 106. For example, when the link 611 in FIG. 6 is created, the model creation unit 410 generates the XML code on lines 66 to 69 in FIG. 9C and adds it to the model 106a.

次に、ステップS133で内部部品用メニュー提供部408は、アセンブリコネクタ作成処理を行う。すなわち、図2の第1のメタモデル101aの「AssemblyConnector」クラス215のインスタンスとしての、内部部品同士のポート間のリンクを、内部部品用メニュー提供部408は作成する。例えば、図6の「P1」オブジェクト602が作成済みの状況で「P2」オブジェクト603がステップS131で作成された場合、ステップS133で内部部品用メニュー提供部408は、リンク612を作成する。   Next, in step S133, the internal component menu providing unit 408 performs assembly connector creation processing. That is, the internal component menu providing unit 408 creates a link between ports of internal components as an instance of the “AssemblyConnector” class 215 of the first metamodel 101a of FIG. For example, when the “P1” object 602 in FIG. 6 has been created and the “P2” object 603 is created in step S131, the internal component menu providing unit 408 creates the link 612 in step S133.

なお、図2の第1のメタモデル101aにおける集約259の「0..*」という多重度が示すように、内部部品は、ポートを持たないかもしれないし、1個以上の任意の個数のポートを持つかもしれない。よって、ステップS133では、結果的にはリンクが作成されないこともあるし、1本または複数本のリンクが作成されることもある。   As indicated by the multiplicity of “0 .. *” in the aggregation 259 in the first metamodel 101a in FIG. 2, the internal component may not have a port, and one or more arbitrary numbers of ports May have. Therefore, in step S133, a link may not be created as a result, or one or a plurality of links may be created.

具体的には、内部部品用メニュー提供部408は、ステップS131で作成した内部部品のポートを、上記(h3)で選択した外部部品のポート内の既存の他の内部部品のポートと接続するためのユーザインタフェースを、UMLツール103を介して提供する。当該ユーザインタフェースは、例えば、内部部品同士のポート間を接続するか否かをユーザに尋ねるダイアログを含んでもよい。また、当該ユーザインタフェースは、接続対象の2つの内部部品それぞれのポートを、UMLツール103を介してユーザに指定させる機能を有する。   Specifically, the internal component menu providing unit 408 connects the port of the internal component created in step S131 to the port of another existing internal component in the external component port selected in (h3). The user interface is provided via the UML tool 103. The user interface may include, for example, a dialog asking the user whether or not to connect between ports of internal components. The user interface has a function of allowing the user to specify the ports of the two internal components to be connected via the UML tool 103.

内部部品用メニュー提供部408は、入力装置401からUMLツール103と上記ユーザインタフェースを介して与えられた入力を受け取り、入力が上記(d7)と(d8)の制約を満たすか否を判断する。内部部品用メニュー提供部408は、入力が(d7)と(d8)の制約を満たせば入力にしたがってリンクを作成し、逆に、入力が(d7)と(d8)の制約を満たさなければ、UMLツール103を介して出力装置402に警告を表示させる。   The internal component menu providing unit 408 receives an input given from the input device 401 via the UML tool 103 and the user interface, and determines whether or not the input satisfies the restrictions (d7) and (d8). The internal component menu providing unit 408 creates a link according to the input if the input satisfies the constraints of (d7) and (d8), and conversely, if the input does not satisfy the constraints of (d7) and (d8), A warning is displayed on the output device 402 via the UML tool 103.

以上のとおりステップS133では、場合によってはリンクが作成されず、場合によっては1本以上のリンクが作成される。リンクが作成される場合は、上記の制御により、当該リンクは(d7)と(d8)の制約を満たす。   As described above, in step S133, a link is not created in some cases, and one or more links are created in some cases. When a link is created, the link satisfies the restrictions (d7) and (d8) by the above control.

さらに、ステップS133で内部部品用メニュー提供部408は、作成したリンクの情報をモデル作成部410に通知する。モデル作成部410は通知にしたがってXMLコードを生成しモデル106を編集する。例えば、図6のリンク612が作成された場合、モデル作成部410は図9Cの62〜65行目のXMLコードを生成してモデル106aに追加する。   Further, in step S133, the internal component menu providing unit 408 notifies the model creation unit 410 of information on the created link. The model creation unit 410 generates an XML code according to the notification and edits the model 106. For example, when the link 612 in FIG. 6 is created, the model creation unit 410 generates the XML code on lines 62 to 65 in FIG. 9C and adds it to the model 106a.

以上の一連の処理が実行された後、処理はステップS116に移行する。
さて、メニュー選択部404は、「ステップS103で選択された処理は内部部品作成処理ではない」と上記ステップS129で判断した場合、タスク用メニュー提供部409を呼び出し、処理はステップS134に移行する。そして、ステップS134でタスク用メニュー提供部409はタスク作成処理を行う。
After the above series of processes is executed, the process proceeds to step S116.
When the menu selection unit 404 determines in step S129 that “the process selected in step S103 is not an internal component creation process”, the menu selection unit 409 is called, and the process proceeds to step S134. In step S134, the task menu providing unit 409 performs task creation processing.

すなわち、タスク用メニュー提供部409は、第1のメタモデル101aの「Task」クラス206をインスタンス化したオブジェクトを作成することで、新たなタスクを作成する。   That is, the task menu providing unit 409 creates a new task by creating an object that instantiates the “Task” class 206 of the first metamodel 101a.

すなわち、タスク用メニュー提供部409は、UMLツール103を介して、「Task」クラス206をインスタンス化して新たなオブジェクトを作成し、入力装置401からの入力にしたがってオブジェクトに名前を付ける。そして、タスク用メニュー提供部409は、作成したタスクのオブジェクトを表す図形を、UMLツール103を介して出力装置402に出力させる。   That is, the task menu providing unit 409 instantiates the “Task” class 206 via the UML tool 103 to create a new object, and names the object according to the input from the input device 401. Then, the task menu providing unit 409 causes the output device 402 to output a graphic representing the created task object via the UML tool 103.

例えば、タスク用メニュー提供部409は、図7の「T1」オブジェクト704を作成し、入力装置401からの入力にしたがって「T1」というオブジェクト名を付ける。そして、UMLツール103を介してタスク用メニュー提供部409は、出力装置402に、「T1」オブジェクト704を示す矩形を図7のようにモデル図105c上に表示させる。   For example, the task menu providing unit 409 creates the “T1” object 704 in FIG. 7 and assigns the object name “T1” according to the input from the input device 401. Then, the task menu providing unit 409 causes the output device 402 to display a rectangle indicating the “T1” object 704 on the model diagram 105c as illustrated in FIG. 7 via the UML tool 103.

また、ステップS134でタスク用メニュー提供部409はさらに、作成したタスクのオブジェクトに関する情報をモデル作成部410に通知する。モデル作成部410は通知された情報に基づいてXMLコードを生成し、モデル106を編集する。例えば、図7の「T1」オブジェクト704が作成された場合、モデル作成部410は図9Aの14行目と27行目のXMLコードを生成し、モデル106aに追加する。   In step S134, the task menu providing unit 409 further notifies the model creating unit 410 of information related to the created task object. The model creation unit 410 generates an XML code based on the notified information and edits the model 106. For example, when the “T1” object 704 in FIG. 7 is created, the model creation unit 410 generates the XML codes on the 14th and 27th lines in FIG. 9A and adds them to the model 106a.

以上の一連の処理の実行後、処理はステップS116に移行する。
なお、図10に関しては、説明の簡略化のため、メニューには部品作成処理、ポート作成処理、インタフェース作成処理、内部部品作成処理およびタスク作成処理のみが含まれると仮定している。そのため、ステップS129からステップS134へ上記のように処理が移行する。
After execution of the above series of processes, the process proceeds to step S116.
10, for the sake of simplification of description, it is assumed that the menu includes only component creation processing, port creation processing, interface creation processing, internal component creation processing, and task creation processing. Therefore, the process proceeds from step S129 to step S134 as described above.

しかし、実施形態によっては、さらに別種の処理があってもよく、それに応じてメニュー選択部404による処理分岐制御が図10に示すフローチャートと異なっていてもよい。例えば、モデル作成ナビゲーション部403は下記(i1)〜(i3)などのメニューをさらに提供してもよい。
(i1)作成済みのインタフェースクラスにおいて、データ要素の追加・編集・削除を行うためのメニュー。
(i2)作成済みの部品クラスにおいて、ポートの追加・削除を行うためのメニュー。
(i3)リンクの追加・削除・繋ぎなおしのためのメニュー。
(i4)ポートのオブジェクトとインタフェースのクラスの間の依存を設定しなおすためのメニュー。
(i5)作成済みの部品クラス内の属性・操作・ステレオタイプに関して、追加・編集・削除を行うためのメニュー。
However, depending on the embodiment, there may be another type of processing, and the processing branching control by the menu selection unit 404 may be different from the flowchart shown in FIG. 10 accordingly. For example, the model creation navigation unit 403 may further provide menus such as the following (i1) to (i3).
(I1) A menu for adding, editing, and deleting data elements in the created interface class.
(I2) A menu for adding / deleting a port in a created part class.
(I3) Menu for adding / deleting / reconnecting links.
(I4) A menu for resetting the dependency between the port object and the interface class.
(I5) A menu for adding / editing / deleting the attribute / operation / stereotype in the created part class.

例えば上記(i1)〜(i5)のようなメニューが存在する場合、モデル作成ナビゲーション部403は上記(i1)〜(i5)のメニューにおける処理結果をモデル作成部410に通知し、モデル作成部410は通知にしたがってモデル106aを編集する。   For example, when the menus (i1) to (i5) are present, the model creation navigation unit 403 notifies the model creation unit 410 of the processing results in the menus (i1) to (i5), and the model creation unit 410 Edits the model 106a according to the notification.

また、部品作成処理、ポート作成処理、インタフェース作成処理および内部部品作成処理はクラス図の編集に関連する処理である。しかし、モデル作成ナビゲーション部403は、オブジェクト図の編集に関する各種メニューも同様に提供することができる。   The part creation process, port creation process, interface creation process, and internal part creation process are processes related to class diagram editing. However, the model creation navigation unit 403 can also provide various menus related to editing object diagrams.

例えば、定義済みの部品クラスをインスタンス化したオブジェクトを作成するメニュー、作成された部品のオブジェクト同士をポート間のリンクにより接続するメニューなどをモデル作成ナビゲーション部403は提供してもよい。そして、モデル作成ナビゲーション部403は、リンクの接続においては、上記(d7)と(d8)の制約条件が満たされるか否かの確認を行う。   For example, the model creation navigation unit 403 may provide a menu for creating an object that instantiates a defined part class, a menu for connecting the created part objects to each other by a link between ports, and the like. Then, the model creation navigation unit 403 confirms whether or not the constraint conditions (d7) and (d8) are satisfied in the link connection.

また、モデル作成ナビゲーション部403は、図7の「ソフトウェア全体」クラス701のように<<TopLevel>>というステレオタイプが付加された特殊なクラスのインスタンスを、オブジェクト図内に1つ作成するメニューを提供してもよい。   Further, the model creation navigation unit 403 creates a menu for creating one instance of a special class to which a stereotype << TopLevel >> is added in the object diagram as in the “whole software” class 701 in FIG. May be provided.

ところで、ソフトウェアのモデルの静的な側面はクラス図やオブジェクト図により表されるが、動的な一側面は、図8のようにシーケンス図を使って表現することができる。第1実施形態のDSM支援装置104は、シーケンス図を使ったモデル化にも対応している。   By the way, the static side of the software model is represented by a class diagram or an object diagram, but one dynamic side can be expressed by using a sequence diagram as shown in FIG. The DSM support device 104 of the first embodiment also supports modeling using a sequence diagram.

図11は、第1実施形態による駆動順序定義処理を説明する図である。つまり、図11の駆動順序定義処理は、タスクから部品を駆動する順序を図8のようにシーケンス図を使って定義する処理である。なお、図11もUMLのアクティビティ図の形式で表現されている。   FIG. 11 is a diagram for explaining drive order definition processing according to the first embodiment. That is, the drive order definition process of FIG. 11 is a process of defining the order of driving components from a task using a sequence diagram as shown in FIG. FIG. 11 is also expressed in the form of a UML activity diagram.

図8のようにシーケンス図を使ってモデル化の作業を行うためのメニューを選択する入力を、図4の入力装置401とUMLツール103を介してDSM支援装置104のモデル作成ナビゲーション部403が受け取ると、図11の駆動順序定義処理が開始される。   As shown in FIG. 8, the model creation navigation unit 403 of the DSM support device 104 receives an input for selecting a menu for performing modeling work using the sequence diagram via the input device 401 and the UML tool 103 of FIG. Then, the drive order definition process of FIG. 11 is started.

ステップS201でモデル作成ナビゲーション部403は、作成済みのモデル図105の中からタスクを選択するようにユーザに促す表示(例えばダイアログの表示)を、UMLツール103を介して行う。そして、モデル作成ナビゲーション部403は、入力装置401とUMLツール103を介してタスクを選択する入力を受け取る。   In step S <b> 201, the model creation navigation unit 403 performs display (for example, display of a dialog) prompting the user to select a task from the created model diagram 105 via the UML tool 103. The model creation navigation unit 403 receives an input for selecting a task via the input device 401 and the UML tool 103.

例えば、図8の例では、図7のモデル図105cで定義済みの「Task」クラス206の「T1」オブジェクト704を指定する入力を、ステップS201でモデル作成ナビゲーション部403が受け取る。ステップS201でモデル作成ナビゲーション部403は、例えば、「Task」クラス206以外のクラスのオブジェクトが指定されたら、UMLツール103を介して出力装置402に警告を出力してもよい。   For example, in the example of FIG. 8, the model creation navigation unit 403 receives an input specifying the “T1” object 704 of the “Task” class 206 defined in the model diagram 105c of FIG. 7 in step S201. In step S <b> 201, for example, when an object of a class other than the “Task” class 206 is designated, the model creation navigation unit 403 may output a warning to the output device 402 via the UML tool 103.

次のステップS202は、ステップS201からの処理の流れと後述のステップS205からの処理の流れが合流するマージノードである。
ステップS202の次のステップS203で、モデル作成ナビゲーション部403は、ステップS201で選択されたタスクから駆動する部品を選択する。例えば、モデル作成ナビゲーション部403は、作成済みのモデル図105の中から駆動対象の部品のオブジェクトを選択するように、ユーザに促す表示(例えばダイアログの表示)を、UMLツール103を介して行う。そして、モデル作成ナビゲーション部403は、入力装置401とUMLツール103を介して部品のオブジェクトを選択する入力を受け取り、入力にしたがってオブジェクトを選択する。
The next step S202 is a merge node where the flow of processing from step S201 and the flow of processing from step S205 described later merge.
In step S203 subsequent to step S202, the model creation navigation unit 403 selects a component to be driven from the task selected in step S201. For example, the model creation navigation unit 403 performs display (for example, display of a dialog) prompting the user to select an object of a part to be driven from the created model diagram 105 via the UML tool 103. The model creation navigation unit 403 receives an input for selecting a part object via the input device 401 and the UML tool 103, and selects the object according to the input.

例えば、図8の例では、図7のモデル図105cで定義済みの「PART1」オブジェクト702を指定する入力を、ステップS203でモデル作成ナビゲーション部403が受け取る。   For example, in the example of FIG. 8, the model creation navigation unit 403 receives an input designating the “PART1” object 702 defined in the model diagram 105c of FIG. 7 in step S203.

ステップS203でモデル作成ナビゲーション部403は、例えば、「CompositionType」クラス202のサブクラスのオブジェクト以外を指定する入力を不正な入力として拒絶してもよい。また、モデル作成ナビゲーション部403は、指定されたオブジェクトのクラスにおいて、<<RunnableEntity>>というステレオタイプが付けられた操作が定義されていない場合、入力が不正であると見なす。そして、モデル作成ナビゲーション部403は、不正な入力に対して、UMLツール103を介して出力装置402に警告を出力してもよい。   In step S203, the model creation navigation unit 403 may reject, for example, an input that specifies an object other than an object of a subclass of the “CompositionType” class 202 as an illegal input. In addition, the model creation navigation unit 403 considers that the input is invalid when the operation with the stereotype << RunnableEntity >> is not defined in the class of the specified object. Then, the model creation navigation unit 403 may output a warning to the output device 402 via the UML tool 103 for unauthorized input.

部品のオブジェクトが選択されると、続いてステップS204において、モデル作成ナビゲーション部403は、ステップS201で選択されたタスクとステップS203で選択された部品の接続処理を行う。すなわち、モデル作成ナビゲーション部403は、下記(j1)〜(j4)のような処理を行う。   When the part object is selected, in step S204, the model creation navigation unit 403 performs connection processing between the task selected in step S201 and the part selected in step S203. That is, the model creation navigation unit 403 performs the following processes (j1) to (j4).

(j1)モデル作成ナビゲーション部403は、選択されたタスクから呼び出す操作を指定するようユーザに促す表示(例えばダイアログの表示)を、UMLツール103を介して行う。そして、モデル作成ナビゲーション部403は、入力装置401とUMLツール103を介して、指定された操作の名前を受け取る。例えば、図8の「PART1」オブジェクト702がステップS203で選択された場合、モデル作成ナビゲーション部403は「実行ポイント」という操作名を受け取る。   (J1) The model creation navigation unit 403 performs display (for example, display of a dialog) prompting the user to specify an operation to be called from the selected task via the UML tool 103. The model creation navigation unit 403 receives the name of the specified operation via the input device 401 and the UML tool 103. For example, when the “PART1” object 702 in FIG. 8 is selected in step S203, the model creation navigation unit 403 receives the operation name “execution point”.

(j2)モデル作成ナビゲーション部403は、UMLツール103を介して入力装置401から、矢印の起点と終点を示す入力を受け取る。なお、モデル作成ナビゲーション部403は、ステップS201で選択したタスクの活性期間の範囲内のみが矢印の起点として指定可能なように、かつステップS203で選択した部品の活性期間の範囲内のみが矢印の終点として指定可能なように、制約をかける。   (J2) The model creation navigation unit 403 receives input indicating the starting point and the ending point of the arrow from the input device 401 via the UML tool 103. It should be noted that the model creation navigation unit 403 indicates that only the range of the active period of the task selected in step S201 can be designated as the starting point of the arrow, and only the range of the active period of the component selected in step S203 has an arrow. Constraints can be specified as the end point.

例えば、呼び出し804の起点と終点を示す入力をモデル作成ナビゲーション部403は受け取る。呼び出し804の矢印の起点は、ステップS201で選択された「T1」オブジェクト704の活性期間801の範囲内であり、呼び出し804の矢印の終点は、ステップS203で選択された「PART1」オブジェクト702の活性期間802の範囲内である。   For example, the model creation navigation unit 403 receives an input indicating the start and end points of the call 804. The starting point of the call 804 arrow is within the activation period 801 of the “T1” object 704 selected in step S201, and the end point of the call 804 arrow is the activation of the “PART1” object 702 selected in step S203. It is within the range of the period 802.

(j3)上記(j1)で指定された名前をラベルとして有し、上記(j2)で指定された起点から終点へ向かう矢印を、作成中のシーケンス図に追加するように、モデル作成ナビゲーション部403はUMLツール103に命令する。UMLツール103は、呼び出しを示す矢印を、命令にしたがってシーケンス図に追加し、出力装置402は追加された矢印とラベルを表示する。例えば、図8の呼び出し804の矢印とラベルが出力装置402に表示される。   (J3) The model creation navigation unit 403 has the name specified in (j1) as a label and adds an arrow from the start point to the end point specified in (j2) to the sequence diagram being created. Commands the UML tool 103. The UML tool 103 adds an arrow indicating a call to the sequence diagram according to the instruction, and the output device 402 displays the added arrow and label. For example, the arrow and label of call 804 in FIG.

(j4)モデル作成ナビゲーション部403は上記(j3)で追加した呼び出しの内容および順序をモデル作成部410に通知する。するとモデル作成部410は、通知された内容にしたがってモデル106を編集する。例えば、図8の呼び出し804が追加された場合、モデル作成部410は図9Aの15〜20行目のXMLコードを生成し、モデル106aに追加する。仮に、先に呼び出し805が定義された後で呼び出し804が追加された場合には、モデル作成部410は、図9Aの既存の22行目の「NO」要素の値を「1」から「2」に書き直し、新たな16行目の「NO」要素の値を「1」に設定する。   (J4) The model creation navigation unit 403 notifies the model creation unit 410 of the contents and order of the call added in (j3) above. Then, the model creation unit 410 edits the model 106 according to the notified contents. For example, when the call 804 in FIG. 8 is added, the model creation unit 410 generates the XML code on the 15th to 20th lines in FIG. 9A and adds it to the model 106a. If the call 804 is added after the call 805 is defined first, the model creation unit 410 changes the value of the “NO” element in the existing 22nd line in FIG. 9A from “1” to “2”. And the value of the “NO” element in the new 16th line is set to “1”.

以上の(j1)〜(j4)のような処理がステップS204で行われると、処理はステップS205に移行する。
ステップS205でモデル作成ナビゲーション部403は、駆動順序定義処理を終了するよう指示する終了指示が入力装置401とUMLツール103を介して入力されたか否かを判断する。終了指示が入力された場合、シーケンス図の形で作成された最終的なモデル図105は、UMLツール103を介してモデル図格納部412に格納され、図11の駆動順序定義処理は終了する。終了指示が入力されなければ、制御はステップS202のマージノードに戻り、再度ステップS203から処理が繰り返される。
When the processes (j1) to (j4) above are performed in step S204, the process proceeds to step S205.
In step S <b> 205, the model creation navigation unit 403 determines whether an end instruction for instructing to end the drive order definition process is input via the input device 401 and the UML tool 103. When an end instruction is input, the final model diagram 105 created in the form of a sequence diagram is stored in the model diagram storage unit 412 via the UML tool 103, and the drive order definition process in FIG. If no end instruction is input, control returns to the merge node in step S202, and the process is repeated from step S203.

図12は、第1実施形態によるコード生成処理を説明する図である。なお、図12もUMLのアクティビティ図の形式で表現されている。
ステップS301でコード生成装置108は、メタモデル101と表記ルール102にしたがって作成されたモデル106の入力を受け付ける。具体的には、コード生成装置108は図4の意味モデル格納部413に格納されているモデル106を読み出す。
FIG. 12 is a diagram illustrating the code generation process according to the first embodiment. FIG. 12 is also expressed in the form of a UML activity diagram.
In step S <b> 301, the code generation device 108 receives an input of the model 106 created according to the meta model 101 and the notation rule 102. Specifically, the code generation device 108 reads the model 106 stored in the semantic model storage unit 413 in FIG.

そして、ステップS302においてコード生成装置108は、モデル106を中間データ110に変換する。中間データ110は、コード生成に必要な情報を、コード生成にとって扱いやすくまとめたデータ群を含み、XMLデータである。第1実施形態では、XSLT(XSL Transformations)によるコード生成のためにステップS302が行われる。   In step S <b> 302, the code generation device 108 converts the model 106 into the intermediate data 110. The intermediate data 110 is XML data including a data group in which information necessary for code generation is easily collected for code generation. In the first embodiment, step S302 is performed for code generation by XSLT (XSL Transformations).

なお、モデル106の形式(すなわちXMLデータであるモデル106のスキーマ)は実施形態に応じて様々であり、スキーマによってはステップS302が省略可能なこともある。   Note that the format of the model 106 (that is, the schema of the model 106 that is XML data) varies depending on the embodiment, and step S302 may be omitted depending on the schema.

最後に、ステップS303でコード生成装置108はコード生成処理を行う。すなわち、コード生成装置108は、図4のテンプレート格納部414からコード生成テンプレート107を読み出し、XML形式の中間データ110にXSL形式のコード生成テンプレート107を適用することで、ソースコード109を生成する。   Finally, in step S303, the code generation device 108 performs code generation processing. That is, the code generation device 108 reads the code generation template 107 from the template storage unit 414 in FIG. 4 and applies the XSL format code generation template 107 to the XML format intermediate data 110 to generate the source code 109.

なお、コード生成テンプレート107を差し替えることにより、生成するソースコード109の言語を変更することが可能である。例えば、Java(登録商標)用のコード生成テンプレート107を用いれば、Java(登録商標)で書かれたソースコード109が生成され、C++用のコード生成テンプレート107を用いれば、C++で書かれたソースコード109が生成される。実施形態によっては、コード生成テンプレート107を選択する入力を、ステップS303でコード生成装置108が入力装置401から受け付けてもよい。   Note that the language of the source code 109 to be generated can be changed by replacing the code generation template 107. For example, if the code generation template 107 for Java (registered trademark) is used, the source code 109 written in Java (registered trademark) is generated, and if the code generation template 107 for C ++ is used, the source code written in C ++ is generated. Code 109 is generated. Depending on the embodiment, the code generation device 108 may accept an input for selecting the code generation template 107 from the input device 401 in step S303.

以上のとおり詳細に説明した第1実施形態について概観すると、次のとおりである。
第1実施形態において、メタモデル101は、UMLで表記された第1のクラス図によりソフトウェアをメタモデル化して表す。そして、メタモデル101は、ソフトウェアが含む部品をメタモデル化したメタ部品クラス(例えば「CompositionType」クラス202)の定義を含む。DSM支援装置104のモデル作成ナビゲーション部403は、図10のステップS101に示すように、メタモデル101を取得するメタモデル取得ステップを実行する。
An overview of the first embodiment described in detail above is as follows.
In the first embodiment, the metamodel 101 represents software as a metamodel by using a first class diagram expressed in UML. The meta model 101 includes a definition of a meta part class (for example, “CompositionType” class 202) obtained by meta-modeling the parts included in the software. The model creation navigation unit 403 of the DSM support apparatus 104 executes a metamodel acquisition step of acquiring the metamodel 101 as shown in step S101 of FIG.

さらに、モデル作成ナビゲーション部403内の部品用メニュー提供部405は、図10のステップS105に示すように、クラス図生成ステップを実行する。つまり、部品用メニュー提供部405は、ソフトウェアに含まれる部品を表す部品クラス(例えば「部品A」クラス301)を、メタ部品クラス(例えば「CompositionType」クラス202)のサブクラスとして定義する。それにより、部品用メニュー提供部405は、ソフトウェアをメタモデルにしたがってモデル化したモデルを、部品クラスを含みUMLで表記される第2のクラス図(例えばモデル図105a)として生成する。   Furthermore, the part menu providing unit 405 in the model creation navigation unit 403 executes a class diagram generation step as shown in step S105 in FIG. That is, the component menu providing unit 405 defines a component class (for example, “component A” class 301) representing a component included in the software as a subclass of the meta component class (for example, “CompositionType” class 202). Thereby, the part menu providing unit 405 generates a model obtained by modeling the software according to the meta model as a second class diagram including the part class and expressed in UML (for example, the model diagram 105a).

また、部品用メニュー提供部405は作成した部品クラスに関する情報をモデル作成部410に通知する。そして、モデル作成部410は通知された情報にしたがって、第2のクラス図(例えばモデル図105a)の意味を所定の形式言語(例えばXML)により表す意味モデル(例えばモデル106a)を生成する。意味モデルの生成は、部品クラスからメタ部品クラスへの汎化(例えば図3の汎化306)とメタモデルに基づく。また、上記「意味」とは、具体的には、「第2のクラス図における部品クラスが(インタフェースなどではなく)部品をモデル化したクラスである」という意味である。   The component menu providing unit 405 notifies the model creating unit 410 of information related to the created component class. Then, the model creation unit 410 generates a semantic model (for example, model 106a) that represents the meaning of the second class diagram (for example, model diagram 105a) in a predetermined formal language (for example, XML) in accordance with the notified information. The generation of the semantic model is based on the generalization from the component class to the metacomponent class (for example, generalization 306 in FIG. 3) and the metamodel. The above “meaning” specifically means that “the component class in the second class diagram is a class that models a component (not an interface or the like)”.

また、第1実施形態では、メタモデル101を示す第1のクラス図は、部品間の通信のインタフェースをメタモデル化したメタインタフェースクラス(例えば「SenderReceiverInterface」クラス209)の定義をさらに含む。   In the first embodiment, the first class diagram showing the meta model 101 further includes a definition of a meta interface class (for example, a “SenderReceiverInterface” class 209) obtained by meta-modeling an interface for communication between components.

そして、第2のクラス図の生成において、インタフェース用メニュー提供部407は、部品間の通信のインタフェースをモデル化したインタフェースクラス(例えば「インタフェースA」クラス302)を、メタインタフェースクラスのサブクラスとして定義する。なお、インタフェースクラスは、第2のクラス図(例えばモデル図105a)において定義される。また、第2のクラス図の生成においてインタフェース用メニュー提供部407はさらに、インタフェースクラスとの間の関係(例えば依存307や308)を用いて、部品間の前記通信を前記第2のクラス図において表記する。   Then, in generating the second class diagram, the interface menu providing unit 407 defines an interface class (for example, “Interface A” class 302) that models the interface of communication between components as a subclass of the meta interface class. . The interface class is defined in the second class diagram (for example, the model diagram 105a). In generating the second class diagram, the interface menu providing unit 407 further uses the relationship with the interface class (for example, the dependency 307 or 308) to communicate the communication between components in the second class diagram. write.

そして、意味モデルとしてモデル106を生成するにあたり、モデル作成部410は、例えば依存307などの上記関係を、部品間のインタフェースを介した通信を意味する所定の形式言語のコード(例えば図9Bの37〜40行)で表現する。なお、このコードは、インタフェースクラスからメタインタフェースクラスへの汎化(例えば汎化306)に基づいて生成される。そして、モデル作成部410は、意味モデルとしてのモデル106に、当該コードを含める。   Then, when generating the model 106 as a semantic model, the model creation unit 410 uses a code in a predetermined formal language (for example, 37 in FIG. (-40 lines). This code is generated based on generalization (for example, generalization 306) from the interface class to the meta interface class. Then, the model creation unit 410 includes the code in the model 106 as a semantic model.

第1実施形態ではさらに、メタモデル101を示す第1のクラス図には、メタ部品クラス(例えば「CompositionType」クラス202)に含まれるクラスとして、メタ通信ポートクラス(例えば「Port」クラス211とそのサブクラス)が定義されている。   In the first embodiment, the first class diagram showing the meta model 101 further includes a meta communication port class (for example, “Port” class 211 and its class) as classes included in the meta part class (for example, “CompositionType” class 202). Subclass) is defined.

よって、上記第2のクラス図(例えばモデル図105a)の生成にあたり、ポート用メニュー提供部406は、部品クラス(例えば「部品A」クラス301)を、メタ通信ポートクラスのオブジェクトである通信ポートオブジェクトを含むように定義してもよい。通信ポートオブジェクトの具体例は、図3の「受信ポート」ポート303と「送信ポート」ポート304である。なお、実施形態によっては、通信ポートオブジェクトは、メタ通信ポートクラスのサブクラスとしてモデル図105などで定義される通信ポートクラスのオブジェクトでもよい。   Therefore, when generating the second class diagram (for example, the model diagram 105a), the port menu providing unit 406 converts the component class (for example, the “component A” class 301) into a communication port object that is an object of the meta communication port class. May be defined to include. Specific examples of the communication port object are a “reception port” port 303 and a “transmission port” port 304 in FIG. In some embodiments, the communication port object may be a communication port class object defined in the model diagram 105 or the like as a subclass of the meta communication port class.

こうして部品クラスが通信ポートオブジェクトを含むように定義される場合、ポート用メニュー提供部406は、次のように動作する。すなわち、ポート用メニュー提供部406は、通信ポートオブジェクトからインタフェースクラスへの依存(例えば依存307)を用いて、部品間のインタフェースを介した通信を第2のクラス図(例えばモデル図105a)において表記する。   When the component class is thus defined to include the communication port object, the port menu providing unit 406 operates as follows. In other words, the port menu providing unit 406 uses the dependency from the communication port object to the interface class (for example, the dependency 307) to indicate communication via the interface between components in the second class diagram (for example, the model diagram 105a). To do.

また、第1実施形態では、メタモデル101を表す第1のクラス図には、部品同士が入れ子になってもよいことを示すための第1の集約関係(例えば集約253)も定義されている。さらに、第1のクラス図には、入れ子になった内部部品を有する外部部品の内部での、外部部品と内部部品との間の通信を表すためのメタ内部通信クラスとして、例えば「DelegateConnector」クラス216も定義されている。そして、メタ部品クラスにメタ内部通信クラスが含まれることを示す第2の集約関係(例えば集約268)も定義されている。   In the first embodiment, the first class diagram representing the metamodel 101 also defines a first aggregation relationship (for example, aggregation 253) for indicating that components may be nested. . Further, the first class diagram includes, for example, a “DelegateConnector” class as a meta internal communication class for representing communication between an external component and an internal component within an external component having a nested internal component. 216 is also defined. A second aggregation relationship (for example, aggregation 268) indicating that the meta internal communication class is included in the meta component class is also defined.

したがって、第1実施形態では、内部部品用メニュー提供部408が次のように動作することができる。なお、ソフトウェアのモデルを表す第2のクラス図(例えばモデル図105b)において部品クラスが複数あり、そのうち外部部品クラスの中に、内部部品クラスが入れ子になって含まれるとする。外部部品クラスの例は、「部品B」クラス601であり、内部部品クラスの例は「部品A」クラス301である。   Therefore, in the first embodiment, the internal component menu providing unit 408 can operate as follows. It is assumed that there are a plurality of component classes in the second class diagram (for example, model diagram 105b) representing the software model, and the internal component classes are nested in the external component class. An example of the external part class is “part B” class 601, and an example of the internal part class is “part A” class 301.

このとき、内部部品用メニュー提供部408は、外部部品クラスと内部部品クラスの間に、メタ内部通信クラス(例えば「DelegateConnector」クラス216)に対応する関係である内部通信関係(例えばリンク611)を定義する。   At this time, the internal component menu providing unit 408 establishes an internal communication relationship (for example, link 611) that is a relationship corresponding to the meta internal communication class (for example, “DelegateConnector” class 216) between the external component class and the internal component class. Define.

すると、モデル作成部410は、モデル106の生成において、内部通信関係を、外部部品クラスと内部部品クラスの間の通信を意味する所定の形式言語のコード(例えば図9Cの66〜69行目)で表現し、意味モデルに当該コードを含める。当該コードは、外部部品クラスと内部部品クラスそれぞれからのメタ部品クラスへの汎化(例えば汎化305と汎化610)とメタ内部通信クラスの定義とに基づき生成される。   Then, the model creation unit 410 sets the internal communication relationship in the generation of the model 106 by using a code in a predetermined formal language that means communication between the external component class and the internal component class (for example, lines 66 to 69 in FIG. 9C). This code is included in the semantic model. The code is generated based on the generalization (for example, generalization 305 and generalization 610) to the metacomponent class from the external component class and the internal component class, respectively, and the definition of the meta internal communication class.

また、第1実施形態では、モデル図105aや105bのようなクラス図で定義された部品クラスのオブジェクトを定義する図7のモデル図105cようなオブジェクト図に含まれるオブジェクト間の呼び出しを定義するシーケンス図も生成される。例えば、モデル作成ナビゲーション部403が図8のようなモデル図105dを、制約をかけてナビゲーションしながら生成する。   In the first embodiment, a sequence for defining calls between objects included in an object diagram such as the model diagram 105c in FIG. 7 that defines an object of a part class defined in a class diagram such as the model diagrams 105a and 105b. A diagram is also generated. For example, the model creation navigation unit 403 generates a model diagram 105d as shown in FIG. 8 while performing navigation with restrictions.

すると、モデル作成部410は、シーケンス図の内容に基づいて、呼び出しの順序を所定の言語で表すコード(例えば図9Aの15〜26行目)を生成し、当該コードを意味モデルとしてのモデル106に含める。   Then, the model creation unit 410 generates a code (for example, the 15th to 26th lines in FIG. 9A) that represents the calling order in a predetermined language based on the contents of the sequence diagram, and uses the code 106 as a semantic model. Include in

続いて、図2の第1のメタモデル101a以外のメタモデルを用いる他の実施形態について説明する。具体的には、図13〜15を参照して第2実施形態について説明し、図16〜17を参照して第3実施形態について説明する。   Next, another embodiment using a meta model other than the first meta model 101a of FIG. 2 will be described. Specifically, the second embodiment will be described with reference to FIGS. 13 to 15 and the third embodiment will be described with reference to FIGS.

なお、以下に説明する第2・第3実施形態においても、第1実施形態に関して図1を参照して説明した全体的な処理の流れは変わらない。また、図4と類似のDSM支援装置104や記憶装置411により、図1のプロセスP101におけるモデル編集処理が行われる。   In the second and third embodiments described below, the overall processing flow described with reference to FIG. 1 for the first embodiment does not change. Further, the model editing process in the process P101 of FIG. 1 is performed by the DSM support device 104 and the storage device 411 similar to those in FIG.

ただし、メタモデル101の違いに応じて、表記ルール102やコード生成テンプレート107の具体的内容には差があり、また、図4のモデル作成ナビゲーション部403内の各コンポーネントの動作にも、メタモデルの特徴に応じて多少の差がある。以下では、第2・第3実施形態について、第1実施形態との差を中心に説明し、第1実施形態と同様の点については説明を適宜省略する。   However, there are differences in the specific contents of the notation rule 102 and the code generation template 107 depending on the difference in the metamodel 101, and the operation of each component in the model creation navigation unit 403 in FIG. There are some differences depending on the characteristics. In the following, the second and third embodiments will be described with a focus on differences from the first embodiment, and description of points similar to those of the first embodiment will be omitted as appropriate.

図13は、第2のメタモデルを表すUMLのクラス図である。第2のメタモデルは第1のメタモデルの一部を変更したものなので、変更点を中心に説明し、共通点の説明は適宜省略する。   FIG. 13 is a UML class diagram representing the second metamodel. Since the second metamodel is obtained by changing a part of the first metamodel, the description will focus on the changed points, and the description of the common points will be omitted as appropriate.

図13の第2のメタモデル101bには、図2の第1のメタモデル101aのうち、「RunnableEntity」クラス205およびそれにつながる集約255、関連256、関連258が存在しない。   The second metamodel 101b in FIG. 13 does not include the “RunnableEntity” class 205 and the aggregation 255, the relationship 256, and the relationship 258 connected to the “RunnableEntity” class 205 in the first metamodel 101a in FIG.

また、第1のメタモデル101aでは、「Task」クラス206と「RunnableConnector」クラス207の間の集約257の多重度が「1..*」だが、第2のメタモデル101bでは多重度が異なる。すなわち、第2のメタモデル101bでは、「Task」クラス206が1つの「RunnableConnector」クラス207を含むことを示す、多重度が「1」の集約901が、「Task」クラス206と「RunnableConnector」クラス207の間に定義されている。   In the first metamodel 101a, the multiplicity of the aggregation 257 between the “Task” class 206 and the “RunnableConnector” class 207 is “1 .. *”, but the multiplicity is different in the second metamodel 101b. In other words, in the second metamodel 101b, an aggregation 901 having a multiplicity of “1” indicating that the “Task” class 206 includes one “RunnableConnector” class 207 includes the “Task” class 206 and the “RunnableConnector” class. 207.

そして、第2のメタモデル101bでは、さらに「RunnableEntityPort」クラス902と「PrevPort」クラス903と「NextPort」クラス904が定義されている。そして、「RunnableEntityPort」クラス902が「PrevPort」クラス903のスーパクラスであることを示す汎化905と、「RunnableEntityPort」クラス902が「NextPort」クラス904のスーパクラスであることを示す汎化906も定義されている。   In the second metamodel 101b, a “RunnableEntityPort” class 902, a “PrevPort” class 903, and a “NextPort” class 904 are further defined. A generalization 905 indicating that the “RunnableEntityPort” class 902 is a super class of the “PrevPort” class 903 and a generalization 906 indicating that the “RunnableEntityPort” class 902 is a super class of the “NextPort” class 904 are also defined. Has been.

第2のメタモデル101bではさらに、「RunnableConnector」クラス207が「RunnableEntityPort」クラス902を「prevPort」というロール名で参照することを示す関連907が定義されている。また、「RunnableConnector」クラス207が「RunnableEntityPort」クラス902を「nextPort」というロール名で参照することを示す関連908も定義されている。   The second metamodel 101b further defines an association 907 indicating that the “RunnableConnector” class 207 refers to the “RunnableEntityPort” class 902 with the role name “prevPort”. In addition, a relation 908 indicating that the “RunnableConnector” class 207 refers to the “RunnableEntityPort” class 902 with the role name “nextPort” is also defined.

また、第2のメタモデル101bでは、メタ部品クラスとしての「CompositionType」クラス202を汎化した「ComponentType」クラス201が「PrevPort」クラス903を1つ含みうることを示す、多重度が「0..1」の集約909が定義されている。同様に、「ComponentType」クラス201が「NextPort」クラス904を1つ含みうることを示す、多重度が「0..1」の集約910も定義されている。   In the second meta model 101b, a “ComponentType” class 201 that is a generalization of the “CompositionType” class 202 as a meta component class can include one “PrevPort” class 903, and the multiplicity is “0. .1 "is defined. Similarly, an aggregation 910 with a multiplicity of “0..1” indicating that the “ComponentType” class 201 can include one “NextPort” class 904 is also defined.

以上のように定義された第2のメタモデル101bの、第1のメタモデル101aとの意味的な違いは以下のとおりである。
第1のメタモデル101aは、オブジェクトの駆動順序を図8のようなシーケンス図により定義するためのメタモデルである。それに対し、第2のメタモデル101bは、オブジェクトの駆動順序を後述の図15のようなオブジェクト図により定義するためのメタモデルである。そして、「RunnableEntityPort」クラス902は、オブジェクトの駆動順序を示すためのポートをメタモデル化したものである。
The semantic difference between the second metamodel 101b defined as described above and the first metamodel 101a is as follows.
The first metamodel 101a is a metamodel for defining the driving order of objects by a sequence diagram as shown in FIG. On the other hand, the second metamodel 101b is a metamodel for defining the driving order of objects by an object diagram as shown in FIG. The “RunnableEntityPort” class 902 is a meta model of a port for indicating the driving order of objects.

すなわち、第2のメタモデル101bでは、まずタスクが起動し、部品のオブジェクトのうち最初の1つをタスクが呼び出して駆動することが、以下の(k1)〜(k3)の点によりメタモデル化されている。
(k1)集約901の多重度が「1」であること。
(k2)「Task」クラス206と集約901で結ばれた「RunnableConnector」クラス207から「RunnableEntityPort」クラス902への参照を示す関連907が定義されていること。
(k3)「CompositionType」クラス202は、関連907により「RunnableConnector」クラス207から参照される「RunnableEntityPort」クラス902のサブクラスである「PrevPort」クラス903のオブジェクトを1つ含みうること。
なお、上記(k3)の点は、「CompositionType」クラス202が「ComponentType」クラス201のサブクラスであることから明らかである。
That is, in the second metamodel 101b, the task is first activated, and the task calls and drives the first one of the parts objects. The metamodel is formed by the following points (k1) to (k3). Has been.
(K1) The multiplicity of the aggregation 901 is “1”.
(K2) A relationship 907 indicating a reference from the “RunnableConnector” class 207 connected to the “Task” class 206 to the “RunnableEntityPort” class 902 is defined.
(K3) The “CompositionType” class 202 can include one object of the “PrevPort” class 903 that is a subclass of the “RunnableEntityPort” class 902 that is referenced from the “RunnableConnector” class 207 by the association 907.
The point (k3) is apparent from the fact that the “CompositionType” class 202 is a subclass of the “ComponentType” class 201.

そして、第2のメタモデル101bではさらに、オブジェクトが駆動順序にしたがって順次、次のオブジェクトを呼び出して駆動する能力があることが、以下の(l1)〜(l4)の点によりメタモデル化されている。
(l1)メタ部品クラスである「CompositionType」クラス202が、1つの「NextPort」クラス904を含みうること。
(l2)「NextPort」クラス904のスーパクラスである「RunnableEntityPort」クラス902は、関連908が示すように、「RunnableConnector」クラス207から「nextPort」のロール名で参照されること。
(l3)「RunnableConnector」クラス207は、関連907に示すように「prevPort」という別のロール名によっても「RunnableEntityPort」クラス902を参照すること。
(l4)メタ部品クラスである「CompositionType」クラス202は、関連907により参照される「RunnableEntityPort」クラス902のサブクラスである「PrevPort」クラス903のオブジェクトを1つ含みうること。
なお、上記(l1)と(l4)の点は、「CompositionType」クラス202が「ComponentType」クラス201のサブクラスであることから明らかである。
The second metamodel 101b is further metamodeled by the following points (l1) to (l4) that the object has the ability to call and drive the next object sequentially in the driving order. Yes.
(L1) The “CompositionType” class 202 which is a meta part class can include one “NextPort” class 904.
(L2) The “RunnableEntityPort” class 902, which is a super class of the “NextPort” class 904, is referred to by the role name “nextPort” from the “RunnableConnector” class 207 as indicated by the relation 908.
(L3) The “RunnableConnector” class 207 refers to the “RunnableEntityPort” class 902 by another role name “prevPort” as shown in the relation 907.
(14) The “CompositionType” class 202 that is a meta part class can include one object of “PrevPort” class 903 that is a subclass of the “RunnableEntityPort” class 902 referred to by the association 907.
Note that the points (l1) and (l4) are apparent from the fact that the “CompositionType” class 202 is a subclass of the “ComponentType” class 201.

以上を換言すれば、第2のメタモデル101bは、各オブジェクトが、当該オブジェクトを駆動する他のオブジェクト(またはタスク)と接続されるポートと、当該オブジェクトが駆動する次のオブジェクトと接続されるポートを含むことをメタモデル化している。よって、第2のメタモデル101bによれば、部品のオブジェクト間の駆動順序をポート間の接続により表すことができるので、オブジェクト図により駆動順序をモデル化することが可能となる。   In other words, in the second metamodel 101b, each object has a port connected to another object (or task) that drives the object and a port connected to the next object that the object drives. Metamodeling to include. Therefore, according to the second metamodel 101b, the driving order between the objects of the parts can be expressed by the connection between the ports, so that the driving order can be modeled by the object diagram.

図14は、第2のメタモデルにしたがう第3のモデルを表すUMLのクラス図である。図3と同様に図14のモデル図105eには、メタ部品クラスおよびメタインタフェースクラスとして、図13の第2のメタモデル101bで定義された「CompositionType」クラス202と「SenderReceiverInterface」クラス209が含まれる。   FIG. 14 is a UML class diagram representing a third model according to the second metamodel. Similar to FIG. 3, the model diagram 105 e in FIG. 14 includes a “CompositionType” class 202 and a “SenderReceiverInterface” class 209 defined in the second metamodel 101 b in FIG. 13 as meta part classes and meta interface classes. .

モデル図105aは、ユーザ定義の3つのクラス、すなわち、「部品1」クラス1001と「部品2」クラス1002と「インタフェース1」クラス1003を含む。
「部品1」クラス1001は、「RequesterPort」クラス212のオブジェクトである「in」ポート1004と、「ProviderPort」クラス213のオブジェクトである「out」ポート1005を含む。また、「部品1」クラス1001は、「PrevPort」クラス903のオブジェクトである「prev」ポート1006と、「NextPort」クラス904のオブジェクトである「next」ポート1007を含む。
The model diagram 105a includes three user-defined classes: a “part 1” class 1001, a “part 2” class 1002, and an “interface 1” class 1003.
The “component 1” class 1001 includes an “in” port 1004 that is an object of the “RequesterPort” class 212 and an “out” port 1005 that is an object of the “ProviderPort” class 213. The “component 1” class 1001 includes a “prev” port 1006 that is an object of the “PrevPort” class 903 and a “next” port 1007 that is an object of the “NextPort” class 904.

同様に、「部品2」クラス1002は、「RequesterPort」クラス212のオブジェクトである「in」ポート1008と、「ProviderPort」クラス213のオブジェクトである「out」ポート1009を含む。また、「部品2」クラス1002は、「PrevPort」クラス903のオブジェクトである「prev」ポート1010と、「NextPort」クラス904のオブジェクトである「next」ポート1011を含む。   Similarly, the “component 2” class 1002 includes an “in” port 1008 that is an object of the “RequesterPort” class 212 and an “out” port 1009 that is an object of the “ProviderPort” class 213. The “component 2” class 1002 includes a “prev” port 1010 that is an object of the “PrevPort” class 903 and a “next” port 1011 that is an object of the “NextPort” class 904.

また、モデル図105eでは、「部品1」クラス1001が「CompositionType」クラス202のサブクラスであることを示す汎化1012が定義されている。同様に、「部品2」クラス1002が「CompositionType」クラス202のサブクラスであることを示す汎化1013も定義されている。さらに、「インタフェース1」クラス1003が「SenderReceiverInterface」クラス209のサブクラスであることを示す汎化1014も定義されている。   In the model diagram 105e, a generalization 1012 is defined that indicates that the “component 1” class 1001 is a subclass of the “CompositionType” class 202. Similarly, generalization 1013 indicating that the “component 2” class 1002 is a subclass of the “CompositionType” class 202 is also defined. Furthermore, a generalization 1014 indicating that the “interface 1” class 1003 is a subclass of the “SenderReceiverInterface” class 209 is also defined.

そして、モデル図105eでは、「in」ポート1004から「インタフェース1」クラス1003への依存1015と、「out」ポート1005から「インタフェース1」クラス1003への依存1016が定義されている。同様に、「in」ポート1008から「インタフェース1」クラス1003への依存1017と、「out」ポート1009から「インタフェース1」クラス1003への依存1018も定義されている。   In the model diagram 105e, a dependency 1015 from the “in” port 1004 to the “interface 1” class 1003 and a dependency 1016 from the “out” port 1005 to the “interface 1” class 1003 are defined. Similarly, a dependency 1017 from the “in” port 1008 to the “interface 1” class 1003 and a dependency 1018 from the “out” port 1009 to the “interface 1” class 1003 are also defined.

モデル図105eは、第2のメタモデル101bおよび表記ルール102に適合するクラス図であり、具体的には図3に関して説明した(c1)〜(c4)と同様の制約条件を満たす。モデル図105eが制約条件を満たすのは、DSM支援装置104が第2のメタモデル101bと表記ルール102に基づいて制約をかけながらモデル図105eの作成および編集を行うからである。   The model diagram 105e is a class diagram that conforms to the second metamodel 101b and the notation rule 102, and specifically satisfies the same constraint conditions as (c1) to (c4) described with reference to FIG. The model diagram 105e satisfies the constraint condition because the DSM support apparatus 104 creates and edits the model diagram 105e while applying constraints based on the second metamodel 101b and the notation rule 102.

なお、説明の簡略化のため、図14では<<ConfigParam>>というステレオタイプと、各クラス内の属性および操作については省略して示している。しかし、図3の例と同様に、(c5)と(c7)の制約条件も満たすように、DSM支援装置104が制約をかけながらモデル図105eを作成するので、モデル図105eは(c5)と(c7)の制約条件も満たす。   For simplification of explanation, FIG. 14 omits the stereotype << ConfigParam >> and the attributes and operations in each class. However, as in the example of FIG. 3, the DSM support apparatus 104 creates the model diagram 105e while applying the constraints so that the constraint conditions (c5) and (c7) are also satisfied. The constraint condition (c7) is also satisfied.

図15は、上記の図14のモデルの利用例を示すUMLのオブジェクト図である。図15のモデル図105fは、第2のメタモデル101bにしたがうモデルをオブジェクト図の形で表現したものである。   FIG. 15 is a UML object diagram showing an example of use of the model shown in FIG. A model diagram 105f in FIG. 15 represents a model according to the second metamodel 101b in the form of an object diagram.

モデル図105fは、第2のメタモデル101bの「Task」クラス206をインスタンス化した「T1」オブジェクト1101を含む。
また、モデル図105fは、モデル図105eで定義された「部品1」クラス1001をインスタンス化した「B1」オブジェクト1102と、「部品2」クラス1002をインスタンス化した「B2」オブジェクト1103を含む。モデル図105fはさらに、「部品1」クラス1001をインスタンス化した「B11」オブジェクト1104と、「部品2」クラス1002をインスタンス化した「B22」オブジェクト1105も含む。
The model diagram 105f includes a “T1” object 1101 that instantiates the “Task” class 206 of the second metamodel 101b.
The model diagram 105 f includes a “B1” object 1102 that instantiates the “part 1” class 1001 defined in the model diagram 105 e and a “B2” object 1103 that instantiates the “part 2” class 1002. The model diagram 105 f further includes a “B11” object 1104 that instantiates the “part 1” class 1001 and a “B22” object 1105 that instantiates the “part 2” class 1002.

図14に示すように「部品1」クラス1001と「部品2」クラス1002はそれぞれ4つのポートを含む。したがって、「B1」オブジェクト1102は、「prev」ポート1106、「next」ポート1107、「in」ポート1108および「out」ポート1109を含む。   As shown in FIG. 14, each of the “component 1” class 1001 and the “component 2” class 1002 includes four ports. Accordingly, the “B1” object 1102 includes a “prev” port 1106, a “next” port 1107, an “in” port 1108, and an “out” port 1109.

同様に、「B2」オブジェクト1103は、「prev」ポート1110、「next」ポート1111、「in」ポート1112および「out」ポート1113を含む。同様に、「B11」オブジェクト1104は、「prev」ポート1114、「next」ポート1115、「in」ポート1116および「out」ポート1117を含む。同様に、「B22」オブジェクト1105は、「prev」ポート1118、「next」ポート1119、「in」ポート1120および「out」ポート1121を含む。   Similarly, the “B2” object 1103 includes a “prev” port 1110, a “next” port 1111, an “in” port 1112, and an “out” port 1113. Similarly, the “B11” object 1104 includes a “prev” port 1114, a “next” port 1115, an “in” port 1116 and an “out” port 1117. Similarly, the “B22” object 1105 includes a “prev” port 1118, a “next” port 1119, an “in” port 1120, and an “out” port 1121.

そして、モデル図105fには、部品の駆動順序を示すための複数のリンクが定義されている。すなわち、「T1」オブジェクト1101と「prev」ポート1106の間のリンク1122は、まず「T1」オブジェクト1101が「B1」オブジェクト1102を駆動することを示す。そして、「next」ポート1107と「prev」ポート1110の間のリンク1123は、次に「B1」オブジェクト1102が「B2」オブジェクト1103を駆動することを示す。   The model diagram 105f defines a plurality of links for indicating the drive order of components. That is, the link 1122 between the “T1” object 1101 and the “prev” port 1106 indicates that the “T1” object 1101 first drives the “B1” object 1102. Then, the link 1123 between the “next” port 1107 and the “prev” port 1110 indicates that the “B1” object 1102 then drives the “B2” object 1103.

また、「next」ポート1111と「prev」ポート1114の間のリンク1124は、続いて「B2」オブジェクト1103が「B11」オブジェクト1104を駆動することを示す。さらに、「next」ポート1115と「prev」ポート1118の間のリンク1125は、最後に「B11」オブジェクト1104が「B22」オブジェクト1105を駆動することを示す。「B22」オブジェクト1105は他のオブジェクトを駆動しないので、「next」ポート1119はどこにもリンクされていない。   A link 1124 between the “next” port 1111 and the “prev” port 1114 indicates that the “B2” object 1103 subsequently drives the “B11” object 1104. Further, the link 1125 between the “next” port 1115 and the “prev” port 1118 indicates that the “B11” object 1104 finally drives the “B22” object 1105. Since the “B22” object 1105 does not drive other objects, the “next” port 1119 is not linked anywhere.

さらに、モデル図105fでは、部品間の通信(換言すればデータの流れ)を示す複数のリンクも定義されている。すなわち、モデル図105fには、「out」ポート1109と「in」ポート1112の間のリンク1126が定義されている。同様に、「out」ポート1113と「in」ポート1116の間のリンク1127、および「out」ポート1117と「in」ポート1120の間のリンク1128も定義されている。   Furthermore, in the model diagram 105f, a plurality of links indicating communication between components (in other words, data flow) are also defined. That is, in the model diagram 105 f, a link 1126 between the “out” port 1109 and the “in” port 1112 is defined. Similarly, a link 1127 between the “out” port 1113 and the “in” port 1116 and a link 1128 between the “out” port 1117 and the “in” port 1120 are also defined.

これらのリンク1126〜1128は、上記(d7)と(d8)を満たす。すなわち、リンク1126〜リンク1128はいずれも、「RequesterPort」クラス212と「ProviderPort」クラス213のオブジェクト間のリンクであり、同じ「インタフェース1」クラス1003に依存するポート間のリンクである。   These links 1126 to 1128 satisfy the above (d7) and (d8). That is, each of the links 1126 to 1128 is a link between objects of the “RequesterPort” class 212 and the “ProviderPort” class 213, and is a link between ports that depend on the same “interface 1” class 1003.

なお、駆動順序を示す上記のリンク1122〜1125は、第2のメタモデル101bと表記ルール102にしたがって、下記(m1)〜(m3)に説明する制約条件を満たすように作成されている。   The links 1122 to 1125 indicating the driving order are created so as to satisfy the constraint conditions described in (m1) to (m3) below, according to the second metamodel 101b and the notation rule 102.

(m1)表記ルール102は、最初にタスクが部品のオブジェクトを駆動するという意味を表すための、「『Task』クラス206のオブジェクトからリンク可能なのは、『PrevPort』クラス903のオブジェクトのみである」というルールを含む。リンク1122はこのルールに適合する。   (M1) The notation rule 102 indicates that the task first drives the object of the part. “Only the object of the“ PrevPort ”class 903 can be linked from the object of the“ Task ”class 206”. Includes rules. Link 1122 conforms to this rule.

また、このルールは、第2のメタモデル101bでは、「Task」クラス206に含まれる「RunnableConnector」クラス207から「PrevPort」クラス903のスーパクラスである「RunnableEntityPort」クラス902への参照(つまり関連907)に対応する。つまり、モデル作成部410は、「Task」クラス206のオブジェクトから「PrevPort」クラス903のオブジェクトへのリンクを、「RunnableConnector」クラス207のインスタンスとして解釈し、その解釈にしたがってモデル106を編集する。   Further, in the second metamodel 101b, this rule is a reference from the “RunnableConnector” class 207 included in the “Task” class 206 to the “RunnableEntityPort” class 902 which is a super class of the “PrevPort” class 903 (that is, the relationship 907). ). That is, the model creation unit 410 interprets a link from an object of the “Task” class 206 to an object of the “PrevPort” class 903 as an instance of the “RunnableConnector” class 207, and edits the model 106 according to the interpretation.

また、モデル作成ナビゲーション部403は、「NextPort」クラス904や「RequesterPort」クラス212や「ProviderPort」クラス213のオブジェクトに「T1」オブジェクト1101を接続しようとする入力を、上記のルールに基づいて拒絶する。こうしてモデル作成ナビゲーション部403は、表記ルール102に適合するようにモデル図105fを編集する。   Further, the model creation navigation unit 403 rejects an input to connect the “T1” object 1101 to the objects of the “NextPort” class 904, the “RequesterPort” class 212, and the “ProviderPort” class 213 based on the above rules. . In this way, the model creation navigation unit 403 edits the model diagram 105 f so as to conform to the notation rule 102.

(m2)表記ルール102は、「『PrevPort』クラス903のインスタンスは、『NextPort』クラス904または『Task』クラス206のインスタンスとしかリンクすることができない」というルールを含む。表記ルール102はさらに、「『NextPort』クラス904のインスタンスは、『PrevPort』クラス903のインスタンスとしかリンクすることができない」というルールを含む。   (M2) The notation rule 102 includes a rule “an instance of the“ PrevPort ”class 903 can only be linked with an instance of the“ NextPort ”class 904 or the“ Task ”class 206”. The notation rule 102 further includes a rule “an instance of the“ NextPort ”class 904 can be linked only with an instance of the“ PrevPort ”class 903”.

モデル作成ナビゲーション部403がこの2つのルールも制約条件として用いながらモデル図105fの編集を行うので、リンク1122〜1125は、この2つのルールに適合している。   Since the model creation navigation unit 403 edits the model diagram 105f while using these two rules as constraint conditions, the links 1122 to 1125 conform to these two rules.

(m3)表記ルール102は、第1のオブジェクト内の「NextPort」クラス904のインスタンスと第2のオブジェクト内の「PrevPort」クラス903のインスタンスの間にリンクがある場合の、当該リンクの意味の解釈も与える。すなわち、表記ルール102は、「当該リンクは、『RunnableConnector』クラス207のインスタンスに相当し、第1のオブジェクトが第2のオブジェクトを駆動することを示す」という解釈を規定する。   (M3) The notation rule 102 interprets the meaning of a link when there is a link between an instance of the “NextPort” class 904 in the first object and an instance of the “PrevPort” class 903 in the second object. Also give. In other words, the notation rule 102 defines an interpretation that “the link corresponds to an instance of the“ RunnableConnector ”class 207 and indicates that the first object drives the second object”.

モデル作成部410は、この解釈にしたがって駆動順序を示すXMLコードを生成することにより、モデル106を編集する。
したがって、例えばリンク1123は、「RunnableConnector」クラス207のインスタンスとしてモデル作成部410に解釈される。また、リンク1123の一端である「next」ポート1107は、リンク1123にとっては、第2のメタモデル101bの関連908に示す「nextPort」というロール名で参照されるポートである。同様に、リンク1123の他端である「prev」ポート1110は、リンク1123にとっては、関連907に示す「prevPort」というロール名で参照されるポートである。
The model creation unit 410 edits the model 106 by generating an XML code indicating the driving order according to this interpretation.
Therefore, for example, the link 1123 is interpreted by the model creation unit 410 as an instance of the “RunnableConnector” class 207. Further, the “next” port 1107 which is one end of the link 1123 is a port referred to by the role name “nextPort” shown in the relation 908 of the second metamodel 101b for the link 1123. Similarly, the “prev” port 1110 which is the other end of the link 1123 is a port referred to by the role name “prevPort” shown in the association 907 for the link 1123.

モデル作成部410は上記の解釈にしたがうことにより、「『B1』オブジェクト1102、『B2』オブジェクト1103、『B11』オブジェクト1104、『B22』オブジェクト1105という順序で駆動される」という意味をモデル106上に表現する。   According to the above interpretation, the model creation unit 410 has the meaning of “driven in the order of“ B1 ”object 1102,“ B2 ”object 1103,“ B11 ”object 1104, and“ B22 ”object 1105” on the model 106. To express.

以上説明したように、第2のメタモデル101bに対応する表記ルール102の内容は、第1のメタモデル101aに対応する表記ルール102とは一部異同がある。
具体的には、第2実施形態では、第2のメタモデル101bを表すクラス図には、メタ部品クラスに含まれるクラスとして、メタ呼び出しポートクラスが集約関係を使って定義されている。例えば、図13では「RunnableEntityPort」クラス902のサブクラスである「PrevPort」クラス903と「NextPort」クラス904が、メタ呼び出しポートクラスとして、集約909と910を使って定義されている。
As described above, the content of the notation rule 102 corresponding to the second metamodel 101b is partially different from the notation rule 102 corresponding to the first metamodel 101a.
Specifically, in the second embodiment, in the class diagram representing the second meta model 101b, a meta call port class is defined as a class included in the meta part class using an aggregation relationship. For example, in FIG. 13, “PrevPort” class 903 and “NextPort” class 904 that are subclasses of “RunnableEntityPort” class 902 are defined using aggregations 909 and 910 as meta call port classes.

よって、モデル図105eのようなクラス図の生成にあたり、部品用メニュー提供部405は、メタ呼び出しポートクラスのオブジェクトである呼び出しポートオブジェクトを1つ以上備えるように部品クラスを定義する。実施形態によっては、メタ呼び出しポートクラス(例えば「PrevPort」クラス903と「NextPort」クラス904)のサブクラスのオブジェクトを、呼び出しポートオブジェクトとして部品クラスが備えるように、部品用メニュー提供部405が定義してもよい。   Therefore, when generating a class diagram such as the model diagram 105e, the component menu providing unit 405 defines a component class so as to include one or more call port objects which are meta call port class objects. Depending on the embodiment, the component menu providing unit 405 may define an object of a subclass of a meta call port class (for example, “PrevPort” class 903 and “NextPort” class 904) as a call port object. Also good.

その結果、図14のようなクラス図で定義された1つ以上の部品クラスの合計複数個のオブジェクトを定義するオブジェクト図(例えばモデル図105f)において、各オブジェクト間の呼び出しを表記することができるようになる。すなわち、オブジェクト図内の各オブジェクトがそれぞれ備える呼び出しポートオブジェクト間の関係(リンク1123〜1125など)を用いることで、各オブジェクト間の呼び出しを表記することができる。   As a result, the call between each object can be expressed in an object diagram (for example, model diagram 105f) that defines a plurality of objects in total of one or more part classes defined in the class diagram as shown in FIG. It becomes like this. In other words, by using the relationship between the call port objects provided in each object in the object diagram (links 1123 to 1125, etc.), the call between the objects can be expressed.

あわせて、モデル作成部410は、図15のようなオブジェクト図に表記された各オブジェクト間の呼び出しに基づいて、どのオブジェクトがどのオブジェクトを呼び出すかを所定の形式言語で表すコードを生成する。そして、モデル作成部410は、意味モデルとしてのモデル106に、生成した当該コードを含める。   At the same time, the model creation unit 410 generates a code that expresses which object calls which object in a predetermined formal language based on the call between the objects represented in the object diagram as shown in FIG. Then, the model creation unit 410 includes the generated code in the model 106 as a semantic model.

このように、順序定義の点で第1実施形態と第2実施形態には差があり、その差に応じて、表記ルール102の内容にも異動がある。しかし、メタモデル101ごとに予め決められた表記ルール102にしたがって制約をかけながら、DSM支援装置104がモデル図105とモデル106を編集するという点には、第1実施形態と第2実施形態の間で何ら変わりはない。   As described above, there is a difference between the first embodiment and the second embodiment in terms of order definition, and the contents of the notation rule 102 are also changed according to the difference. However, the point that the DSM support device 104 edits the model diagram 105 and the model 106 while applying restrictions according to the notation rule 102 determined in advance for each meta model 101 is that the first embodiment and the second embodiment. There is no change between them.

続いて、図16〜17を参照して第3実施形態について説明する。
図16は、第3のメタモデルを表すUMLのクラス図である。図16に示す第3のメタモデル101cは、例えばロボット制御のドメインに好適である。
Subsequently, a third embodiment will be described with reference to FIGS.
FIG. 16 is a UML class diagram representing the third metamodel. The third metamodel 101c shown in FIG. 16 is suitable for a robot control domain, for example.

第3のメタモデル101cは、ソフトウェアのモデルを表すUMLのオブジェクト図において矩形で表される対象をメタモデル化したクラスである「ブロック」クラス1201の定義を含む。矩形で表される対象には名前を付けることができることを表すため、「ブロック」クラス1201は、「名前」という名前の属性を持つ。   The third metamodel 101c includes a definition of a “block” class 1201 that is a class obtained by metamodeling a target represented by a rectangle in a UML object diagram representing a software model. The “block” class 1201 has an attribute named “name” in order to indicate that an object represented by a rectangle can be given a name.

また、第3のメタモデル101cは、タスクをメタモデル化した「タスク」クラス1202と、メタ部品クラスである「機能」クラス1203と、メタインタフェースクラスである「データ」クラス1204の定義も含む。換言すれば、「機能」クラス1203は、ソフトウェアの部品の様々な機能を抽象化してメタモデル化したクラスである。また、「データ」クラス1204は、部品間で入出力されるデータの形式によって部品間の通信インタフェースが規定されるという観点から、種々のデータをインタフェースとして捉えてメタモデル化したクラスである。   The third metamodel 101c also includes definitions of a “task” class 1202 obtained by metamodeling a task, a “function” class 1203 that is a meta part class, and a “data” class 1204 that is a meta interface class. In other words, the “function” class 1203 is a class obtained by abstracting various functions of software components into a meta model. Further, the “data” class 1204 is a class that meta-models various data as an interface from the viewpoint that a communication interface between components is defined by a format of data input / output between the components.

なお、「タスク」クラス1202は、タスクを実行する周期と、タスクが最初に起動するタイミングを示すための2つの属性を有し、それぞれの名前は「発火周期」と「初期カウンタ」である。また、「データ」クラス1204は、「データ」クラス1204が表すインタフェースの型を示すための、「データ型」という名前の属性を有する。   The “task” class 1202 has two attributes for indicating the cycle of executing the task and the timing at which the task is first activated, and the names are “ignition cycle” and “initial counter”. The “data” class 1204 has an attribute named “data type” for indicating the type of interface represented by the “data” class 1204.

第3のメタモデル101cはさらに、ソフトウェアのモデルを表すUMLのオブジェクト図において各種の線で表される対象をメタモデル化したクラスである「コネクタ」クラス1205の定義を含む。   The third meta model 101c further includes a definition of a “connector” class 1205 that is a class obtained by meta-modeling a target represented by various lines in a UML object diagram representing a software model.

より具体的には、第3のメタモデル101cは、オブジェクト図において誘導可能性を示す矢印付きのリンクにより実行順序とデータの入出力を表現することをメタモデル化している。そのため、第3のメタモデル101cは、「コネクタ」クラス1205のサブクラスとして定義される「実行順番」クラス1206と「データアクセス」クラス1207を含む。そして、「データアクセス」クラス1207は、「Read」(読み出し)か「Write」(書き込み)か、というデータアクセスのタイプを表すための「アクセスタイプ」という名前の属性を有する。   More specifically, the third metamodel 101c is a metamodel that expresses the execution order and data input / output by links with arrows indicating navigability in the object diagram. Therefore, the third metamodel 101 c includes an “execution order” class 1206 and a “data access” class 1207 defined as subclasses of the “connector” class 1205. The “data access” class 1207 has an attribute named “access type” for indicating the type of data access, “Read” (read) or “Write” (write).

また、第3のメタモデル101cは、UMLのオブジェクト図にコメントが付けられることを表す「コメント」クラス1208の定義も含む。「コメント」クラス1208は「説明文」という名前の属性を有する。すなわち、「説明文」属性の値である文字列が、コメントとしてUMLのオブジェクト図に付けられる。   The third metamodel 101c also includes a definition of a “comment” class 1208 indicating that a comment is attached to the UML object diagram. The “comment” class 1208 has an attribute named “description”. That is, a character string that is the value of the “description” attribute is attached as a comment to the UML object diagram.

さらに、第3のメタモデル101cは、「機能」クラス1203から直接派生したサブクラスとして、「アクチュエータ」クラス1209、「演算」クラス1210、「センサ」クラス1211各々の定義も含む。そして、第3のメタモデル101cは、「機能」クラス1203から間接的に派生したサブクラスの定義も含む。具体的には、第3のメタモデル101cは、「LCD」(Liquid Crystal Display)クラス1212、「モータ」クラス1213、「グラフ特性」クラス1214、「光センサ」クラス1215、「タッチセンサ」クラス1216各々の定義も含む。   Further, the third metamodel 101 c includes definitions of “actuator” class 1209, “calculation” class 1210, and “sensor” class 1211 as subclasses directly derived from “function” class 1203. The third metamodel 101 c also includes a definition of a subclass derived indirectly from the “function” class 1203. Specifically, the third metamodel 101c includes an “LCD” (Liquid Crystal Display) class 1212, a “motor” class 1213, a “graph characteristic” class 1214, an “light sensor” class 1215, and a “touch sensor” class 1216. Each definition is also included.

第3のメタモデル101cによれば、上記のクラス間に以下のような各種の関係が定義されている。
すなわち、汎化1251、1252および1253は、「タスク」クラス1202、「機能」クラス1203および「データ」クラス1204がそれぞれ「ブロック」クラス1201のサブクラスであることを示す。また、汎化1254と1255は、「実行順番」クラス1206と「データアクセス」クラス1207がそれぞれ「コネクタ」クラス1205のサブクラスであることを示す。
According to the third metamodel 101c, the following various relationships are defined between the above classes.
That is, the generalizations 1251, 1252, and 1253 indicate that the “task” class 1202, the “function” class 1203, and the “data” class 1204 are subclasses of the “block” class 1201, respectively. Generalizations 1254 and 1255 indicate that the “execution order” class 1206 and the “data access” class 1207 are subclasses of the “connector” class 1205, respectively.

さらに、汎化1256、1257および1258は、「アクチュエータ」クラス1209、「演算」クラス1210および「センサ」クラス1211がそれぞれ「機能」クラス1203のサブクラスであることを示す。   Further, generalizations 1256, 1257, and 1258 indicate that “actuator” class 1209, “calculation” class 1210, and “sensor” class 1211 are subclasses of “function” class 1203, respectively.

また、汎化1259と1260は、「LCD」クラス1212と「モータ」クラス1213がそれぞれ「アクチュエータ」クラス1209のサブクラスであることを示す。同様に、汎化1261は「グラフ特性」クラス1214が「演算」クラス1210のサブクラスであることを示す。また、汎化1262と1263は「光センサ」クラス1215と「タッチセンサ」クラス1216がそれぞれ「センサ」クラス1211のサブクラスであることを示す。   Generalizations 1259 and 1260 indicate that the “LCD” class 1212 and the “motor” class 1213 are subclasses of the “actuator” class 1209, respectively. Similarly, the generalization 1261 indicates that the “graph characteristic” class 1214 is a subclass of the “operation” class 1210. Also, generalizations 1262 and 1263 indicate that the “light sensor” class 1215 and the “touch sensor” class 1216 are subclasses of the “sensor” class 1211, respectively.

そして、いずれも多重度が「1」の関連1264と1265は、「実行順番」クラス1206が「ブロック」クラス1201をそれぞれ「prev」と「next」というロール名で参照可能なことを表す。関連1264と1265は、ソフトウェアのモデルを表す図において、「実行順番」クラス1206のインスタンスを表現する線の両端が「ブロック」クラス1201(またはそのサブクラス)のインスタンスであることを表す。   Each of the relations 1264 and 1265 having a multiplicity of “1” indicates that the “execution order” class 1206 can refer to the “block” class 1201 with role names “prev” and “next”, respectively. Associations 1264 and 1265 indicate that in the diagram representing the software model, both ends of a line representing an instance of the “execution order” class 1206 are instances of the “block” class 1201 (or a subclass thereof).

多重度が「0..*」の関連1266は、「ブロック」クラス1201が「comment」というロール名で「コメント」クラス1208を参照することを表す。関連1266は、ソフトウェアのモデルを表す図において、「ブロック」クラス1201(またはそのサブクラス)のインスタンスを表す矩形には、任意の個数のコメントを付加しうることを表す。   The relationship 1266 with the multiplicity “0 .. *” indicates that the “block” class 1201 refers to the “comment” class 1208 with the role name “comment”. The association 1266 indicates that in the diagram representing the software model, an arbitrary number of comments can be added to a rectangle representing an instance of the “block” class 1201 (or a subclass thereof).

同様に、多重度が「0..*」の関連1267は、「コネクタ」クラス1205が「comment」というロール名で「コメント」クラス1208を参照することを示す。関連1267は、ソフトウェアのモデルを表す図において、「コネクタ」クラス1205(またはそのサブクラス)のインスタンスを表す線には、任意の個数のコメントを付加しうることを表す。   Similarly, a relationship 1267 with a multiplicity of “0 .. *” indicates that the “connector” class 1205 refers to the “comment” class 1208 with the role name “comment”. The association 1267 indicates that an arbitrary number of comments can be added to a line representing an instance of the “connector” class 1205 (or a subclass thereof) in the diagram representing the software model.

いずれも多重度が「1」の関連1268と1269は、「データアクセス」クラス1207が、「data」と「function」というロール名でそれぞれ「データ」クラス1204と「機能」クラス1203を参照可能なことを表す。関連1268と1269は、ソフトウェアのモデルを表す図で、「データアクセス」クラス1207のインスタンスを表す線が、「機能」クラス1203(またはそのサブクラス)と「データ」クラス1204のインスタンス同士を結ぶことに対応する。つまり、関連1268と1269は、(ソフトウェアの部品のモデルとしての)ある機能から、(インタフェースのモデルとしての)あるデータへのアクセスが「データアクセス」クラス1207によりメタモデル化されていることを示す。   In each of the relations 1268 and 1269 with multiplicity “1”, the “data access” class 1207 can refer to the “data” class 1204 and the “function” class 1203 with role names “data” and “function”, respectively. Represents that. Associations 1268 and 1269 represent software models, and a line representing an instance of the “data access” class 1207 connects the instances of the “function” class 1203 (or its subclass) and the “data” class 1204. Correspond. That is, associations 1268 and 1269 indicate that access from a function (as a model of software parts) to some data (as a model of the interface) is metamodeled by the “data access” class 1207. .

ところで、第3のメタモデル101cでは、「機能」クラス1203から間接的に派生している5つのクラスが、コンクリートクラスとして定義されている。すなわち、第3のメタモデル101cは、ユーザがクラスを定義する必要なしにオブジェクト図の形でソフトウェアの部品をモデル化することができるように、「光センサ」クラス1215等の具体的なクラスの定義を含んでいる。この点は、第1・第2のメタモデル101a・101bと第3のメタモデル101cとの違いである。   By the way, in the third metamodel 101c, five classes indirectly derived from the “function” class 1203 are defined as concrete classes. That is, the third metamodel 101c is a specific class such as the “light sensor” class 1215 so that the user can model software components in the form of an object diagram without having to define the class. Contains definitions. This is the difference between the first and second metamodels 101a and 101b and the third metamodel 101c.

すなわち、第1・第2のメタモデル101a・101bでは、ユーザがクラス図の形でソフトウェアをモデル化すること(すなわち、メタ部品クラスから派生するユーザ定義のサブクラスにより部品がモデル化されること)が前提となっている。よって、第1・第2のメタモデル101a・101bによれば、ある程度ドメインが絞られた範囲の中でユーザにクラス設計の自由度を与えることができる。   That is, in the first and second metamodels 101a and 101b, a user models software in the form of a class diagram (that is, a part is modeled by a user-defined subclass derived from the metapart class). Is the premise. Therefore, according to the first and second metamodels 101a and 101b, the user can be given a degree of freedom in class design within a range in which the domain is narrowed to some extent.

それに対し、第3のメタモデル101cにおけるメタ部品クラスは、「光センサ」クラス1215等のドメイン固有のコンクリートクラスを含み、ユーザはクラスを定義しなくても迅速にソフトウェアをモデル化することができる。   On the other hand, the meta part class in the third meta model 101c includes a domain-specific concrete class such as the “light sensor” class 1215, and the user can quickly model the software without defining the class. .

換言すれば、第1・第2のメタモデル101a・101bを使ったモデル化は、ユーザがクラス定義をカスタマイズしながらDSM設計を行うこと可能とする。他方で、第3のメタモデル101cを使ったモデル化は、ドメインに合わせて予め定義されたオーダメイドのクラスを使ったDSM設計を可能とする。なお、第3実施形態においても、第3のメタモデル101cを使ってユーザが「機能」クラス1203のサブクラスとして部品クラスを定義してもよい。   In other words, modeling using the first and second metamodels 101a and 101b allows the user to perform DSM design while customizing the class definition. On the other hand, modeling using the third metamodel 101c enables DSM design using a custom-made class that is predefined according to the domain. Also in the third embodiment, the user may define a component class as a subclass of the “function” class 1203 using the third metamodel 101c.

どのようなタイプのメタモデルが好ましいかは、設計対象のソフトウェアの適用分野などに応じて様々であるが、メタモデルのタイプに応じて、第1〜第3実施形態あるいはその変形例の中から、適した実施形態を選んで適用することが可能である。   What type of metamodel is preferable varies depending on the application field of the software to be designed, etc., but depending on the type of the metamodel, from the first to third embodiments or variations thereof. It is possible to select and apply a suitable embodiment.

さて次に、上記の第3のメタモデル101cにしたがったソフトウェアのモデル化の例について説明する。
図17は、第3のメタモデルにしたがうモデルを表すUMLのオブジェクト図である。図17のモデル図105gは、明るさに基づいて路面上に引かれた白線を判別し、白線の右端を探してトレースしながら白線に沿って走る、後輪駆動・前輪ステアリングの自走式の車ロボットの制御用ソフトウェアのモデルを表すオブジェクト図の例である。
Now, an example of software modeling according to the third metamodel 101c will be described.
FIG. 17 is a UML object diagram representing a model according to the third metamodel. The model diagram 105g in FIG. 17 is a self-propelled rear-wheel drive / front-wheel steering type that determines the white line drawn on the road surface based on the brightness, runs along the white line while searching for the right end of the white line and tracing it. It is an example of the object figure showing the model of the software for vehicle robot control.

モデル図105gは、「タスク」クラス1202の「ステアリングタスク」オブジェクト1301を含む。「ステアリングタスク」オブジェクト1301は前輪の制御用タスクをモデル化したものである。   Model diagram 105 g includes a “steering task” object 1301 of “task” class 1202. A “steering task” object 1301 models a front wheel control task.

モデル図105gはさらに、「光センサ」クラス1215の「LightSensor1」オブジェクト1302と、「グラフ特性」クラス1214の「ハンドル切り量」オブジェクト1303と「モータ」クラス1213の「ハンドル駆動」オブジェクト1304を含む。また、モデル図105gは、「データ」クラス1204の「路面の明るさ」オブジェクト1305と「ハンドルモータ駆動量」オブジェクト1306を含む。   The model diagram 105 g further includes a “LightSensor1” object 1302 of the “light sensor” class 1215, a “handle cut amount” object 1303 of the “graph characteristic” class 1214, and a “handle drive” object 1304 of the “motor” class 1213. Further, the model diagram 105 g includes a “road surface brightness” object 1305 and a “handle motor drive amount” object 1306 of the “data” class 1204.

また、モデル図105gは、「タスク」クラス1202の「タイヤ駆動タスク」オブジェクト1307も含む。「タイヤ駆動タスク」オブジェクト1307は後輪の制御用タスクをモデル化したものである。   The model diagram 105 g also includes a “tire drive task” object 1307 of a “task” class 1202. A “tire driving task” object 1307 models a task for controlling the rear wheels.

そして、モデル図105gは、「グラフ特性」クラス1214の「スピード制御量」オブジェクト1308と、「モータ」クラス1213の「後輪タイヤ駆動」オブジェクト1309と、「データ」クラス1204の「タイヤ駆動量」オブジェクト1310を含む。   The model diagram 105g includes a “speed control amount” object 1308 of a “graph characteristic” class 1214, a “rear wheel drive” object 1309 of a “motor” class 1213, and a “tire drive amount” of a “data” class 1204. Contains object 1310.

モデル図105gには、「実行順番」クラス1206のインスタンスとして矢印で示されるリンクが含まれる。矢印の根元側と先端側はそれぞれ、第3のメタモデル101cにおける関連1264と1265に対応し、矢印の根元側のオブジェクトから先端側のオブジェクトが呼び出され、駆動される。   The model diagram 105g includes a link indicated by an arrow as an instance of the “execution order” class 1206. The root side and the tip side of the arrow correspond to the relations 1264 and 1265 in the third metamodel 101c, respectively, and the tip side object is called from the arrow side object and driven.

具体的には、「ステアリングタスク」オブジェクト1301が「LightSensor1」オブジェクト1302を駆動することをリンク1321が示す。また、「LightSensor1」オブジェクト1302が「ハンドル切り量」オブジェクト1303を駆動することをリンク1322が示す。そして、「ハンドル切り量」オブジェクト1303が「ハンドル駆動」オブジェクト1304を駆動することをリンク1323が示す。   Specifically, the link 1321 indicates that the “steering task” object 1301 drives the “LightSensor1” object 1302. The link 1322 indicates that the “LightSensor1” object 1302 drives the “handle cut amount” object 1303. The link 1323 indicates that the “handle cut amount” object 1303 drives the “handle drive” object 1304.

同様に、「タイヤ駆動タスク」オブジェクト1307が「スピード制御量」オブジェクト1308を駆動することをリンク1324が示す。そして、「スピード制御量」オブジェクト1308が「後輪タイヤ駆動」オブジェクト1309を駆動することをリンク1325が示す。   Similarly, link 1324 indicates that the “tire drive task” object 1307 drives the “speed control amount” object 1308. The link 1325 indicates that the “speed control amount” object 1308 drives the “rear wheel drive” object 1309.

また、モデル図105gには、「データアクセス」クラス1207のインスタンスとして矢印で示されるリンクも含まれる。「データ」クラス1204のインスタンスから「機能」クラス1203のサブクラスのインスタンスへの矢印で示されるリンクは、機能がデータを読み込む「Read」アクセスを示す。逆方向の矢印で示されるリンクは、機能がデータを書き出す「Write」アクセスを示す。   The model diagram 105 g also includes a link indicated by an arrow as an instance of the “data access” class 1207. A link indicated by an arrow from an instance of the “data” class 1204 to an instance of a subclass of the “function” class 1203 indicates “Read” access from which the function reads data. A link indicated by a reverse arrow indicates a “Write” access by which the function writes data.

具体的には、「LightSensor1」オブジェクト1302から「路面の明るさ」オブジェクト1305への書き出しをリンク1331が表し、「路面の明るさ」オブジェクト1305の「ハンドル切り量」オブジェクト1303への読み込みをリンク1332が表す。また、「ハンドル切り量」オブジェクト1303から「ハンドルモータ駆動量」オブジェクト1306への書き出しをリンク1333が表す。そして、「ハンドルモータ駆動量」オブジェクト1306の「ハンドル駆動」オブジェクト1304への読み込みをリンク1334が表す。   Specifically, the link 1331 represents writing from the “LightSensor1” object 1302 to the “road brightness” object 1305, and the reading of the “road brightness” object 1305 to the “handle cut amount” object 1303 is a link 1332. Represents. A link 1333 represents writing from the “handle cut amount” object 1303 to the “handle motor drive amount” object 1306. A link 1334 represents reading of the “handle motor drive amount” object 1306 into the “handle drive” object 1304.

「ハンドルモータ駆動量」オブジェクト1306はさらに「スピード制御量」オブジェクト1308にも読み込まれ、リンク1335はその読み込みを表す、また、「スピード制御量」オブジェクト1308から「タイヤ駆動量」オブジェクト1310への書き出しをリンク1336が表し、「タイヤ駆動量」オブジェクト1310の「後輪タイヤ駆動」オブジェクト1309への読み込みをリンク1337が表す。   The “handle motor drive amount” object 1306 is also read into the “speed control amount” object 1308, and the link 1335 indicates the reading, and the “speed control amount” object 1308 writes to the “tire drive amount” object 1310. Is represented by the link 1336, and the link 1337 represents the reading of the “tire drive amount” object 1310 into the “rear wheel tire drive” object 1309.

また、モデル図105gには、「コメント」クラス1208のインスタンスとしてのコメント1341〜1346も含まれる。例えば、コメント1341は「ハンドル切り量」オブジェクト1303に対して付加されているので、「ハンドル切り量」オブジェクト1303と点線1351で結ばれている。   The model diagram 105 g also includes comments 1341 to 1346 as instances of the “comment” class 1208. For example, since the comment 1341 is added to the “handle cut amount” object 1303, it is connected to the “handle cut amount” object 1303 by a dotted line 1351.

同様に、コメント1342〜1346はそれぞれ点線1352〜1356によって、「スピード制御量」オブジェクト1308、リンク1324、リンク1336、「タイヤ駆動量」オブジェクト1310、リンク1337と結ばれている。これらの点線1351〜1356は、第3のメタモデル101cにおける関連1266または関連1267に相当する。   Similarly, the comments 1342 to 1346 are connected to a “speed control amount” object 1308, a link 1324, a link 1336, a “tire drive amount” object 1310, and a link 1337 by dotted lines 1352 to 1356, respectively. These dotted lines 1351-1356 correspond to the relation 1266 or the relation 1267 in the third metamodel 101c.

以上のような図形を含むモデル図105gは、より具体的には以下のような制御のモデルである。
すなわち、前輪の制御のための「ステアリングタスク」オブジェクト1301が「LightSensor1」オブジェクト1302を呼び出し、「LightSensor1」オブジェクト1302は路面の明るさを感知し、感知した路面の明るさを「路面の明るさ」オブジェクト1305に書き出す。また、「LightSensor1」オブジェクト1302は「ハンドル切り量」オブジェクト1303を駆動する。
More specifically, the model diagram 105g including the graphic as described above is a model of the following control.
That is, the “steering task” object 1301 for controlling the front wheels calls the “LightSensor1” object 1302, the “LightSensor1” object 1302 senses the brightness of the road surface, and the sensed road surface brightness is changed to “the brightness of the road surface”. Write to object 1305. Further, the “LightSensor1” object 1302 drives the “handle cut amount” object 1303.

すると、「ハンドル切り量」オブジェクト1303は、「路面の明るさ」オブジェクト1305を読み込み、読み込んだデータからハンドルモータ駆動量を導き出す。具体的には、「ハンドル切り量」オブジェクト1303は、コメント1341に記してあるように、明るくなったら右へ、暗くなったら左へ、ハンドルを切るよう決定し、決定した結果を「ハンドルモータ駆動量」オブジェクト1306に書き出す。また、「ハンドル切り量」オブジェクト1303は、「ハンドル駆動」オブジェクト1304を駆動する。   Then, the “handle cut amount” object 1303 reads the “road brightness” object 1305 and derives the handle motor drive amount from the read data. Specifically, as described in the comment 1341, the “handle cut amount” object 1303 determines to turn the handle to the right when it becomes brighter and to the left when it becomes darker. Write to the Quantity object 1306. Further, the “handle cut amount” object 1303 drives the “handle drive” object 1304.

すると、「ハンドル駆動」オブジェクト1304は「ハンドルモータ駆動量」オブジェクト1306を読み込み、「ハンドル切り量」オブジェクト1303が決定した結果にしたがって、ハンドルのモータを駆動させる制御を行う。その結果、コメント1341に記すとおり、ロボットは路面上の白線の端に沿って進むことができる。   Then, the “handle drive” object 1304 reads the “handle motor drive amount” object 1306 and performs control to drive the handle motor according to the result determined by the “handle cut amount” object 1303. As a result, as described in the comment 1341, the robot can move along the edge of the white line on the road surface.

また、前輪の制御と並行して、後輪の制御も行われる。具体的にはまず「タイヤ駆動タスク」オブジェクト1307が「スピード制御量」オブジェクト1308を呼び出す。なお、この呼び出しを示すリンク1324には、リンク1324が実行順序を表すコネクタであることを示すコメント1343が付加されている。   In addition to the front wheel control, the rear wheel control is also performed. Specifically, first, the “tire drive task” object 1307 calls the “speed control amount” object 1308. Note that a comment 1343 indicating that the link 1324 is a connector indicating the execution order is added to the link 1324 indicating this call.

「タイヤ駆動タスク」オブジェクト1307から呼び出された「スピード制御量」オブジェクト1308は、「ハンドルモータ駆動量」オブジェクト1306を読み込む。コメント1342に記すように、「スピード制御量」オブジェクト1308は、「ハンドルモータ駆動量」オブジェクト1306が示す量に比例してスピードを制御する(具体的には、例えば、ハンドルを増し切りするにしたがってスピードを落とすなどの制御を行う)。   The “speed control amount” object 1308 called from the “tire driving task” object 1307 reads the “handle motor driving amount” object 1306. As described in the comment 1342, the “speed control amount” object 1308 controls the speed in proportion to the amount indicated by the “handle motor drive amount” object 1306 (specifically, for example, as the handle is fully increased) Control such as reducing the speed).

「スピード制御量」オブジェクト1308は、「ハンドルモータ駆動量」オブジェクト1306に基づいて、スピードの制御のために具体的にはタイヤの駆動量を決定し、決定した結果を「タイヤ駆動量」オブジェクト1310に書き込む。なお、この書き込みを表すリンク1336にはコメント1344が付けられている。そして、リンク1336は機能のデータに対する「Write」アクセスを表すコネクタである、ということがコメント1344として記されている。   Based on the “handle motor drive amount” object 1306, the “speed control amount” object 1308 specifically determines the tire drive amount for speed control, and the determined result is the “tire drive amount” object 1310. Write to. A comment 1344 is attached to the link 1336 representing this writing. A comment 1344 indicates that the link 1336 is a connector indicating “Write” access to function data.

また、「スピード制御量」オブジェクト1308は、「後輪タイヤ駆動」オブジェクト1309を呼び出し、駆動する。駆動された「後輪タイヤ駆動」オブジェクト1309は、「タイヤ駆動量」オブジェクト1310を読み込む。なお、この読み込みを表すリンク1337にはコメント1346が付けられている。そして、リンク1337は機能のデータに対する「Read」アクセスを表すコネクタである、ということがコメント1346として記されている。   The “speed control amount” object 1308 calls and drives the “rear wheel drive” object 1309. The driven “rear wheel tire drive” object 1309 reads the “tire drive amount” object 1310. A comment 1346 is attached to the link 1337 representing this reading. The comment 1346 indicates that the link 1337 is a connector representing “Read” access to the function data.

「タイヤ駆動量」オブジェクト1310を読み込んだ「後輪タイヤ駆動」オブジェクト1309は、後輪のタイヤを駆動する制御を行う。すなわち、コメント1345に記すように、部品間のインタフェースとしての「タイヤ駆動量」オブジェクト1310を介して、「スピード制御量」オブジェクト1308から、決定されたタイヤ駆動量が、「後輪タイヤ駆動」オブジェクト1309に伝えられる。   A “rear wheel tire drive” object 1309, which has read the “tire drive amount” object 1310, controls to drive the tires of the rear wheels. That is, as described in the comment 1345, the determined tire driving amount from the “speed control amount” object 1308 via the “tire driving amount” object 1310 as an interface between parts is the “rear wheel tire driving” object. 1309.

以上のようなロボットの制御ソフトウェアのモデルの編集に際して、第3実施形態のDSM支援装置104は、第1実施形態とは多少異なる振る舞いをする。以下、第1実施形態と異なる点について説明する。   When editing the robot control software model as described above, the DSM support apparatus 104 of the third embodiment behaves slightly differently from the first embodiment. Hereinafter, differences from the first embodiment will be described.

第3実施形態におけるDSM支援装置104は、図4に示す第1実施形態のDSM支援装置104と類似しているが、モデル作成ナビゲーション部403内の各コンポーネントの動作が第1実施形態とは異なる。   The DSM support apparatus 104 in the third embodiment is similar to the DSM support apparatus 104 in the first embodiment shown in FIG. 4, but the operation of each component in the model creation navigation unit 403 is different from that in the first embodiment. .

例えば、ソフトウェアのモデルを編集する処理において、部品用メニュー提供部405は、UMLのオブジェクト図上で、第3のメタモデル101c内で「機能」クラス1203のサブクラスとして定義されたコンクリートクラスをインスタンス化する。   For example, in the process of editing a software model, the part menu providing unit 405 instantiates a concrete class defined as a subclass of the “function” class 1203 in the third metamodel 101c on the UML object diagram. To do.

例えば、部品用メニュー提供部405は、「LCD」クラス1212、「モータ」クラス1213、「グラフ特性」クラス1214、「光センサ」クラス1215および「タッチセンサ」クラス1216のみを、作成可能な部品の選択肢として提示してもよい。選択肢の提示は、UMLツール103を介して行われ、部品用メニュー提供部405は選択肢の中から1つを選択する入力を、入力装置401からUMLツール103を介して受け取ってもよい。   For example, the part menu providing unit 405 can generate only “LCD” class 1212, “motor” class 1213, “graph characteristic” class 1214, “light sensor” class 1215, and “touch sensor” class 1216. It may be presented as an option. The option is presented via the UML tool 103, and the part menu providing unit 405 may receive an input for selecting one of the options from the input device 401 via the UML tool 103.

そして、部品用メニュー提供部405は、選択されたクラスをインスタンス化して新規オブジェクトを作成し、UMLのオブジェクト図に追加するようUMLツール103に命令する。また、部品用メニュー提供部405は、作成したオブジェクトのクラスを、入力装置401からUMLツール103を介して指定されるオブジェクト名とともに、モデル作成部410に通知する。   The component menu providing unit 405 then instantiates the selected class, creates a new object, and instructs the UML tool 103 to add it to the UML object diagram. Also, the part menu providing unit 405 notifies the model creation unit 410 of the created object class together with the object name designated via the UML tool 103 from the input device 401.

例えば、「LightSensor1」オブジェクト1302の作成に際しては、新規作成されたオブジェクトは「光センサ」クラス1215のインスタンスであり「LightSensor1」という名前であるということが、モデル作成部410に通知される。   For example, when creating the “LightSensor1” object 1302, the model creation unit 410 is notified that the newly created object is an instance of the “light sensor” class 1215 and is named “LightSensor1”.

モデル作成部410は、第3のメタモデル101cから、「光センサ」クラス1215が「機能」クラス1203から間接的に派生していることを認識する。つまり、モデル作成部410は、作成された「LightSensor1」オブジェクト1302がインタフェースとしてのデータなどではなく、ソフトウェアの部品の一種であることを認識する。モデル作成部410はその認識に基づいて、「LightSensor1」オブジェクト1302を表すXMLコードを生成することでモデル106を編集する。   The model creation unit 410 recognizes that the “light sensor” class 1215 is indirectly derived from the “function” class 1203 from the third metamodel 101c. That is, the model creation unit 410 recognizes that the created “LightSensor1” object 1302 is a kind of software component, not data as an interface. Based on the recognition, the model creation unit 410 edits the model 106 by generating an XML code representing the “LightSensor1” object 1302.

このように、第3実施形態では、第3のメタモデル101c中で定義されているメタ部品クラスでもあるコンクリートクラスが、そのままソフトウェアの部品を表す部品クラスとして使用可能である。よって、第1実施形態のように部品用メニュー提供部405が部品クラスからメタ部品クラスへの汎化を追加するといった処理は、第3実施形態では省略される。   As described above, in the third embodiment, a concrete class that is also a meta part class defined in the third meta model 101c can be used as a part class representing a software part as it is. Therefore, the process in which the part menu providing unit 405 adds generalization from the part class to the meta part class as in the first embodiment is omitted in the third embodiment.

インタフェースとしての「データ」クラス1204のオブジェクトの作成についても同様である。つまり、第3実施形態では、第3のメタモデル101c内の「データ」クラス1204がコンクリートクラスなので、インタフェース用メニュー提供部407は、メタインタフェースクラスへの汎化を追加する処理を行わなくてよい。   The same applies to the creation of an object of the “data” class 1204 as an interface. That is, in the third embodiment, since the “data” class 1204 in the third metamodel 101c is a concrete class, the interface menu providing unit 407 does not have to perform a process of adding generalization to the metainterface class. .

インタフェース用メニュー提供部407は、UMLツール103を介して単に「データ」クラス1204をインスタンス化することで、例えば「路面の明るさ」オブジェクト1305をモデル図105gに追加する。そして、インタフェース用メニュー提供部407は、追加した「路面の明るさ」オブジェクト1305のオブジェクト名と所属クラスをモデル作成部410に通知する。   The interface menu providing unit 407 instantiates the “data” class 1204 via the UML tool 103 to add, for example, a “road surface brightness” object 1305 to the model diagram 105g. Then, the interface menu providing unit 407 notifies the model creation unit 410 of the object name and affiliation class of the added “road brightness” object 1305.

モデル作成部410は、第3のメタモデル101cから「データ」クラス1204がメタインタフェースクラス兼インタフェースクラスであることを認識するので、「路面の明るさ」オブジェクト1305がインタフェースをモデル化したものであると認識する。モデル作成部410はその認識に基づいて、「路面の明るさ」オブジェクト1305を表すXMLコードを生成することでモデル106を編集する。   Since the model creation unit 410 recognizes from the third metamodel 101c that the “data” class 1204 is a meta interface class / interface class, the “road brightness” object 1305 models the interface. Recognize. Based on the recognition, the model creation unit 410 edits the model 106 by generating an XML code representing the “road brightness” object 1305.

また、第3のメタモデル101cはポートをメタモデル化したクラスを含まないので、第3実施形態ではポート用メニュー提供部406は省略されてよい。その代わり、モデル作成ナビゲーション部403は、インタフェースとしての「データ」クラス1204のオブジェクトを介した部品間のデータ入出力に関して、以下のように制約をかける。   Further, since the third metamodel 101c does not include a class obtained by metamodeling a port, the port menu providing unit 406 may be omitted in the third embodiment. Instead, the model creation navigation unit 403 places the following restrictions on data input / output between parts via an object of the “data” class 1204 as an interface.

すなわち、モデル作成ナビゲーション部403は、ソフトウェアのモデルを表すUMLのオブジェクト図(例えば図17のモデル図105g)上において、「データ」クラス1204のオブジェクトと接続されるリンクに制約をかける。具体的には、第3のメタモデル101cの関連1268と1269が示すように、第3実施形態の表記ルール102によれば、「データ」クラス1204のオブジェクトとリンク可能なのは「機能」クラス1203から派生したクラスのオブジェクトのみである。   That is, the model creation navigation unit 403 constrains links connected to objects of the “data” class 1204 on the UML object diagram (for example, the model diagram 105g in FIG. 17) representing the software model. Specifically, as indicated by the relations 1268 and 1269 of the third metamodel 101c, according to the notation rule 102 of the third embodiment, it is possible to link an object of the “data” class 1204 from the “function” class 1203. Only objects of derived classes.

よって、モデル作成ナビゲーション部403は、第3のメタモデル101cと表記ルール102にしたがって、制約を満たすリンクを作成しようとする入力のみを許す。制約を満たさないリンクを作成しようとする入力を入力装置401からUMLツール103を介して受け取った場合、モデル作成ナビゲーション部403は、例えばUMLツール103を介して出力装置402に警告を表示させてもよい。   Therefore, the model creation navigation unit 403 allows only an input to create a link that satisfies the constraints in accordance with the third metamodel 101c and the notation rule 102. When an input for creating a link that does not satisfy the constraints is received from the input device 401 via the UML tool 103, the model creation navigation unit 403 may display a warning on the output device 402 via the UML tool 103, for example. Good.

例えば、入力装置401からUMLツール103を介して、「路面の明るさ」オブジェクト1305と「ハンドルモータ駆動量」オブジェクト1306をリンクで接続しようとする入力を受け取った場合、モデル作成ナビゲーション部403は入力を拒絶する。   For example, when an input to connect a “road surface brightness” object 1305 and a “handle motor drive amount” object 1306 via a link is received from the input device 401 via the UML tool 103, the model creation navigation unit 403 inputs Reject.

また、第3実施形態におけるタスク用メニュー提供部409は、例えば、部品の駆動順序を指定するようユーザに促すダイアログを、UMLツール103を介して出力装置402に表示させてもよい。そして、タスク用メニュー提供部409は、ダイアログに対する入力にしたがってリンク1321等を追加し、追加したリンクの情報をモデル作成部410に通知し、モデル作成部410は通知された情報にしたがってモデル106を編集してもよい。   Further, the task menu providing unit 409 according to the third embodiment may display, for example, a dialog prompting the user to specify the component driving order on the output device 402 via the UML tool 103. Then, the task menu providing unit 409 adds the link 1321 and the like according to the input to the dialog, notifies the model creation unit 410 of the added link information, and the model creation unit 410 displays the model 106 according to the notified information. You may edit it.

例えば、図17に示す各オブジェクトが作成済みの状態で、タスク用メニュー提供部409は、「タイヤ駆動タスク」オブジェクト1307、「スピード制御量」オブジェクト1308、「後輪タイヤ駆動」オブジェクト1309を順に指定する入力を受け取る。すると、タスク用メニュー提供部409は、指定された順序の先頭が「タスク」クラス1202のオブジェクトであるか否か、また、2番目以降のオブジェクトは「機能」クラス1203から派生したクラスのオブジェクトであるか否かをチェックする。   For example, with each object shown in FIG. 17 created, the task menu providing unit 409 sequentially designates a “tire drive task” object 1307, a “speed control amount” object 1308, and a “rear wheel tire drive” object 1309. To receive input. Then, the task menu providing unit 409 determines whether or not the head of the designated order is an object of the “task” class 1202, and the second and subsequent objects are objects of a class derived from the “function” class 1203. Check if it exists.

この例ではチェックされる条件(すなわちモデル図105cと表記ルール102により示される制約条件)が満たされている。よって、タスク用メニュー提供部409は、入力にしたがって、モデル図105g上にリンク1324と1325を追加し、追加したリンク1324と1325の情報(例えばリンクの始点と終点の両オブジェクトを識別する情報)をモデル作成部410に通知する。   In this example, the condition to be checked (that is, the constraint condition indicated by the model diagram 105c and the notation rule 102) is satisfied. Therefore, the task menu providing unit 409 adds links 1324 and 1325 to the model diagram 105g according to the input, and information on the added links 1324 and 1325 (for example, information for identifying both the link start point and end point objects). Is notified to the model creation unit 410.

そして、モデル作成部410は、通知された情報にしたがって実行順序を示すXMLコードを生成することで、モデル106を編集する。
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
Then, the model creation unit 410 edits the model 106 by generating an XML code indicating the execution order according to the notified information.
The present invention is not limited to the above-described embodiment, and can be variously modified. Some examples are described below.

メタモデル101は、上記の例に限らない。例えば、ソフトウェアの部品間の通信のインタフェースをメタモデル化することは、必ずしも必要という訳ではない。メタインタフェースクラスの定義を含まないメタモデルであっても、ユーザ定義のクラスからメタ部品クラスへの汎化により、ユーザ定義のクラスを「部品を意味するクラス」として自動的に解釈してソースコードを自動生成することを可能とする。   The metamodel 101 is not limited to the above example. For example, it is not always necessary to meta-model communication interfaces between software components. Even in a meta model that does not include a meta interface class definition, generalization from user-defined classes to meta-part classes will automatically interpret user-defined classes as "classes that mean parts" and source code Can be automatically generated.

また、上記の例ではメタモデル101内の個々のクラスの詳細な属性と操作については省略したが、ドメインに応じて適宜メタモデル101内のクラスで属性と操作が定義されていてよい。   In the above example, detailed attributes and operations of individual classes in the metamodel 101 are omitted. However, attributes and operations may be appropriately defined in the classes in the metamodel 101 according to the domain.

また、例えば図3では、第1のメタモデル101aで定義された「CompositionType」クラス202と「SenderReceiverInterface」クラス209から「部品A」クラス301と「インタフェースA」クラス302がそれぞれ直接派生している。しかし、メタモデル101中で定義されたメタ部品クラスから間接的に派生したクラスが、部品クラスとしてモデル図105で定義されてもよい。同様に、メタモデル101中で定義されたメタインタフェースクラスから間接的に派生したクラスが、インタフェースクラスとしてモデル図105で定義されてもよい。   For example, in FIG. 3, the “component A” class 301 and the “interface A” class 302 are directly derived from the “CompositionType” class 202 and the “SenderReceiverInterface” class 209 defined in the first metamodel 101a. However, a class indirectly derived from the meta part class defined in the meta model 101 may be defined in the model diagram 105 as a part class. Similarly, a class indirectly derived from the meta interface class defined in the meta model 101 may be defined in the model diagram 105 as an interface class.

同様のことはポートについても言える。すなわち、図3の「受信ポート」ポート303と「送信ポート」ポート304は、第1のメタモデル101aで定義された「RequesterPort」クラス212と「ProviderPort」クラス213のオブジェクトである。しかし、「RequesterPort」クラス212や「ProviderPort」クラス213から派生したクラスのオブジェクトを、部品クラスが有するように、ソフトウェアがモデル化されてもよい。   The same is true for ports. That is, the “reception port” port 303 and the “transmission port” port 304 in FIG. 3 are objects of the “RequesterPort” class 212 and the “ProviderPort” class 213 defined in the first metamodel 101a. However, the software may be modeled so that the component class has objects of classes derived from the “RequesterPort” class 212 and the “ProviderPort” class 213.

つまり、モデル図105中のクラスないしオブジェクトが何をモデル化したものであるかということは、直接的な派生か間接的な派生かを問わず、メタモデル101で定義されたクラスへの汎化に基づいて自動的に解釈可能である。よって、例えば部品クラスがメタ部品クラスから間接的に派生したものであっても、上記実施形態と同様に「ソースコード109の自動生成を可能とする」という効果が得られる。   That is, what a class or object in the model diagram 105 is modeled is generalized to a class defined in the metamodel 101 regardless of direct derivation or indirect derivation. Can be automatically interpreted based on Therefore, for example, even if the component class is indirectly derived from the meta component class, the effect of “enabling automatic generation of the source code 109” is obtained as in the above embodiment.

また、メタモデル101は、ポートに関するクラスを含まなくてもよい。例えば第3実施形態のように、部品クラス(例えば「モータ」クラス1213)とインタフェースクラス(具体的には「データ」クラス1204)との間の関係を用いて、部品間のインタフェースを介した通信を表記することもできる。   Further, the metamodel 101 may not include a class related to a port. For example, as in the third embodiment, communication is performed via an interface between components using a relationship between a component class (for example, “motor” class 1213) and an interface class (specifically, “data” class 1204). Can also be written.

なお、上記の説明においては、理解を容易とするために、例えば図3において汎化305と306を図示している。しかし、汎化305と306は、データとしてDSM支援装置104が生成し認識してさえいればよく、実施形態によっては、出力装置402に図形として表示されなくてもよい。   In the above description, the generalizations 305 and 306 are illustrated in FIG. 3, for example, for easy understanding. However, the generalizations 305 and 306 need only be generated and recognized by the DSM support apparatus 104 as data, and may not be displayed as graphics on the output apparatus 402 in some embodiments.

また、モデル106を記述する形式言語は、XMLでなくてもよい。XML以外の言語でモデル106を記述する場合は、図1のプロセスP102におけるコード生成は、XSLT技術以外の技術により行われる。   The formal language for describing the model 106 may not be XML. When the model 106 is described in a language other than XML, code generation in the process P102 in FIG. 1 is performed by a technique other than the XSLT technique.

また、上記の実施形態は、メタモデル101と表記ルール102による制約を満たすようにDSM支援装置104がUML図の作成をナビゲートする、いわば事前チェック型の実施形態である。しかし、ユーザが自由に作成したUML図を、メタモデル101と表記ルール102に基づいてDSM支援装置104が事後的にチェックし、メタモデル101と表記ルール102による制約を満たさない箇所をエラーとして警告するような実施形態も可能である。   In addition, the above-described embodiment is a so-called pre-check type embodiment in which the DSM support apparatus 104 navigates the creation of the UML diagram so as to satisfy the restrictions of the meta model 101 and the notation rule 102. However, the DSM support device 104 checks the UML diagram freely created by the user based on the meta model 101 and the notation rule 102 afterwards, and warns as an error of a location that does not satisfy the constraints of the meta model 101 and the notation rule 102 Such an embodiment is also possible.

その場合、モデル作成部410は、例えばエラーが検出されなくなった段階のモデル図105を入力として受け取り、モデル図105からモデル106を作成してもよい。また、この事後チェック型の実施形態においては、モデル作成部410は、モデル図105からモデル106を作成するための中間データとして、例えば、モデル図105の図形的な特徴を表すXMLデータを生成してもよい。   In that case, the model creation unit 410 may receive, for example, the model diagram 105 at a stage where no error is detected as an input, and create the model 106 from the model diagram 105. In this post-check type embodiment, the model creation unit 410 generates, for example, XML data representing the graphical features of the model diagram 105 as intermediate data for creating the model 106 from the model diagram 105. May be.

そして、モデル作成部410は、中間データとメタモデル101と表記ルール102に基づいて、最終的なモデル106を作成してもよい。中間データは、例えば、「どの矩形とどの矩形がどの線により接続されているか」といった図形的な特徴を表すものでもよい。モデル作成部410はメタモデル101と表記ルール102に基づいて、線や矩形の意味を解釈し、最終的なモデル106を作成することができる。   Then, the model creation unit 410 may create the final model 106 based on the intermediate data, the meta model 101, and the notation rule 102. The intermediate data may represent, for example, a graphic feature such as “which rectangle and which rectangle are connected by which line”. The model creation unit 410 can interpret the meaning of lines and rectangles based on the metamodel 101 and the notation rule 102 to create the final model 106.

例えば、部品クラスに関しては、上記の事前チェック型の実施形態では、部品用メニュー提供部405が、部品クラスを新規作成するための指示を受け取り、当該指示を契機として、メタ部品クラスのサブクラスを部品クラスとしてクラス図内に作成する。それに対し、事後チェック型の実施形態では、部品用メニュー提供部405は、クラス図内に作成された任意のクラスからメタ部品クラスへの汎化を追加するための指示を受け取り、当該指示を契機として、上記任意のクラスを部品クラスとして定義しなおす。   For example, regarding the component class, in the above-described pre-check type embodiment, the component menu providing unit 405 receives an instruction for creating a new component class, and the subclass of the meta component class is used as a component in response to the instruction. Create as a class in the class diagram. On the other hand, in the post-check type embodiment, the part menu providing unit 405 receives an instruction for adding generalization from an arbitrary class created in the class diagram to the meta part class, and triggers the instruction. Then, the above arbitrary class is redefined as a part class.

インタフェースクラスに関しても同様のことが言える。つまり、事前チェック型の実施形態ではインタフェース用メニュー提供部407が、インタフェースクラスを新規作成するための指示を受け取り、当該指示を契機として、メタインタフェースクラスのサブクラスをインタフェースクラスとしてクラス図内に作成する。それに対し、事後チェック型の実施形態では、インタフェース用メニュー提供部407は、クラス図内に作成された任意のクラスからメタインタフェースクラスへの汎化を追加するための指示を受け取る。そして、インタフェース用メニュー提供部407は当該指示を契機として、上記任意のクラスクラスをインタフェースクラスとして定義しなおす。   The same is true for interface classes. That is, in the pre-check type embodiment, the interface menu providing unit 407 receives an instruction for creating a new interface class, and uses the instruction as a trigger to create a subclass of the meta interface class as an interface class in the class diagram. . On the other hand, in the post-check type embodiment, the interface menu providing unit 407 receives an instruction for adding generalization from an arbitrary class created in the class diagram to the meta interface class. Then, the interface menu providing unit 407 redefines the arbitrary class class as an interface class, triggered by the instruction.

最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。
(付記1)
コンピュータに、
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを取得するメタモデル取得ステップと、
前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成ステップと、
前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成ステップと、
を実行させることを特徴とする意味モデル生成プログラム。
(付記2)
前記第1のクラス図は、前記部品間の通信のインタフェースをメタモデル化したメタインタフェースクラスの定義をさらに含み、
前記クラス図生成ステップは、
前記部品間の前記通信の前記インタフェースをモデル化したインタフェースクラスを、前記メタインタフェースクラスのサブクラスとして、前記第2のクラス図において定義するインタフェース定義ステップと、
前記インタフェースクラスとの間の関係を用いて、前記部品間の前記通信を前記第2のクラス図において表記するインタフェース表記ステップと、
を含み、
前記意味モデル生成ステップは、前記第2のクラス図における前記インタフェースクラスとの間の前記関係を、前記インタフェースクラスから前記メタインタフェースクラスへの汎化に基づいて、前記部品間の前記インタフェースを介した前記通信を意味する前記所定の形式言語の第1のコードで表現し、前記意味モデルに前記第1のコードを含めるインタフェース解釈ステップを含む、
ことを特徴とする付記1に記載の意味モデル生成プログラム。
(付記3)
前記第1のクラス図には、前記メタ部品クラスに含まれるクラスとして、メタ通信ポートクラスが定義されており、
前記クラス図生成ステップは、前記第2のクラス図において、前記部品クラスを、前記メタ通信ポートクラスまたは前記メタ通信ポートクラスのサブクラスとして定義される通信ポートクラスのいずれかのオブジェクトである通信ポートオブジェクトを含むように定義する通信ポート定義ステップをさらに含み、
前記インタフェース表記ステップは、前記部品クラスに含まれる前記通信ポートオブジェクトから前記インタフェースクラスへの依存を用いて、前記部品間の前記インタフェースを介した前記通信を前記第2のクラス図において表記するステップである、
ことを特徴とする付記2に記載の意味モデル生成プログラム。
(付記4)
前記インタフェース表記ステップは、前記部品クラスと前記インタフェースクラスとの間の関係を用いて、前記部品間の前記インタフェースを介した前記通信を前記第2のクラス図において表記するステップである、
ことを特徴とする付記2に記載の意味モデル生成プログラム。
(付記5)
前記クラス図生成ステップは、
前記部品クラスを新規作成するための第1の指示を受け取り、前記第1の指示を契機として、前記メタ部品クラスのサブクラスを前記部品クラスとして前記第2のクラス図内に作成する部品定義ナビゲーションステップ、または
前記第2のクラス図内に作成された任意の第1のクラスから前記メタ部品クラスへの汎化を追加するための第2の指示を受け取り、前記第2の指示を契機として、前記第1のクラスを前記部品クラスとして定義しなおす部品事後定義ステップ
を含むことを特徴とする付記1〜4のいずれか1項に記載の意味モデル生成プログラム。
(付記6)
前記インタフェース定義ステップは、
前記インタフェースクラスを新規作成するための第3の指示を受け取り、前記第3の指示を契機として、前記メタインタフェースクラスのサブクラスを前記インタフェースクラスとして前記第2のクラス図内に作成するインタフェース定義ナビゲーションステップ、または
前記第2のクラス図内に作成された任意の第2のクラスから前記メタインタフェースクラスへの汎化を追加するための第4の指示を受け取り、前記第4の指示を契機として、前記第2のクラスを前記インタフェースクラスとして定義しなおすインタフェース事後定義ステップ
を含むことを特徴とする付記2〜4のいずれか1項に記載の意味モデル生成プログラム。
(付記7)
前記第1のクラス図には、
部品同士が入れ子になってもよいことを示すための第1の集約関係と、
入れ子になった内部部品を有する外部部品の内部での、前記外部部品と前記内部部品との間の通信を表すためのメタ内部通信クラスと、
前記メタ部品クラスに前記メタ内部通信クラスが含まれることを示す第2の集約関係と、
が定義されており、
前記第2のクラス図において、前記部品クラスが複数あり、複数の前記部品クラスのうち前記外部部品をモデル化した外部部品クラスの中に、複数の前記部品クラスのうち前記内部部品をモデル化した内部部品クラスが入れ子になって含まれるとき、
前記クラス図生成ステップは、前記外部部品クラスと前記内部部品クラスの間に、前記メタ内部通信クラスに対応する関係である内部通信関係を定義する内部通信定義ステップを含み、
前記意味モデル生成ステップは、前記外部部品クラスと前記内部部品クラスそれぞれからの前記メタ部品クラスへの汎化と前記メタ内部通信クラスの定義とに基づいて、前記内部通信関係を、前記外部部品クラスと前記内部部品クラスの間の前記通信を意味する前記所定の形式言語の第2のコードで表現し、前記意味モデルに前記第2のコードを含める内部通信解釈ステップを含む、
ことを特徴とする付記1〜6のいずれか1項に記載の意味モデル生成プログラム。
(付記8)
前記意味モデル生成プログラムは前記コンピュータにさらに、前記第2のクラス図で定義された前記部品クラスのオブジェクトを定義するオブジェクト図に含まれるオブジェクト間の呼び出しを定義するシーケンス図を生成するシーケンス図生成ステップを実行させ、
前記意味モデル生成ステップは、前記シーケンス図の内容に基づいて、前記呼び出しの順序を前記所定の形式言語で表す第3のコードを生成し、前記第3のコードを前記意味モデルに含める第1の順序定義ステップを含む、
ことを特徴とする付記1〜7のいずれか1項に記載の意味モデル生成プログラム。
(付記9)
前記第1のクラス図には、前記メタ部品クラスに含まれるクラスとして、メタ呼び出しポートクラスが集約関係を使って定義されており、
前記クラス図生成ステップは、前記メタ呼び出しポートクラスまたは前記メタ呼び出しポートクラスのサブクラスのいずれかのオブジェクトである呼び出しポートオブジェクトを1つ以上備えるように前記部品クラスを定義する呼び出しポート定義ステップを含み、
前記意味モデル生成プログラムは前記コンピュータにさらに、前記第2のクラス図で定義された1つ以上の前記部品クラスの合計複数個のオブジェクトを定義するオブジェクト図において、前記オブジェクト図内の各オブジェクトがそれぞれ備える前記呼び出しポートオブジェクト間の関係を用いて、前記各オブジェクト間の呼び出しを表記する呼び出し表記ステップを実行させ、
前記意味モデル生成ステップは、前記オブジェクト図に表記された前記各オブジェクト間の前記呼び出しに基づいて、どのオブジェクトがどのオブジェクトを呼び出すかを前記所定の形式言語で表す第4のコードを生成し、前記意味モデルに前記第4のコードを含める第2の順序定義ステップを含む、
ことを特徴とする付記1〜7のいずれか1項に記載の意味モデル生成プログラム。
(付記10)
コンピュータに、
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義と、前記部品間の通信のインタフェースをメタモデル化したメタインタフェースクラスの定義とを含み、UMLで表記されたクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを取得するメタモデル取得ステップと、
前記メタ部品クラスまたは前記メタ部品クラスのサブクラスをインスタンス化した少なくとも2つの部品オブジェクトと、前記メタインタフェースクラスまたは前記メタインタフェースクラスのサブクラスをインスタンス化したインタフェースオブジェクトと、前記少なくとも2つの部品オブジェクトの各々と前記インタフェースオブジェクトの間のリンクを含む、前記UMLで表記されるオブジェクト図を、前記ソフトウェアのモデルとして生成するオブジェクト図生成ステップと、
前記少なくとも2つの部品オブジェクトが前記メタ部品クラスから派生していることと、前記インタフェースオブジェクトが前記メタインタフェースクラスから派生していることと、前記リンクが存在することと、前記メタモデルとに基づいて、前記オブジェクト図は前記部品同士が前記インタフェースを介して通信することをモデル化しているという意味を所定の形式言語により表す意味モデルを生成する意味モデル生成ステップと、
を実行させることを特徴とする意味モデル生成プログラム。
(付記11)
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを格納する格納手段と、
前記格納手段から前記メタモデルを読み出して、前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成手段と、
前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成手段と、
を備えることを特徴とする意味モデル生成装置。
(付記12)
コンピュータが、
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを取得し、
前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成し、
前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する、
ことを特徴とする意味モデル生成方法。
Finally, the following additional notes are disclosed regarding the various embodiments described above.
(Appendix 1)
On the computer,
A metamodel acquisition step of acquiring a metamodel that includes a definition of a metapart class obtained by metamodeling a part included in the software and metaclassifies the software according to a first class diagram expressed in UML;
By defining a part class representing a part included in the software as a subclass of the meta part class, a model obtained by modeling the software according to the meta model is included in the UML including the part class. A class diagram generation step for generating a class diagram of 2;
Based on the generalization from the component class to the meta component class and the meta model, the meaning of the second class diagram is that the component class in the second class diagram is a class that models the component. A semantic model generation step for generating a semantic model expressed in a predetermined formal language;
A semantic model generation program characterized in that
(Appendix 2)
The first class diagram further includes a definition of a meta interface class that meta-models an interface of communication between the components,
The class diagram generating step includes:
Defining an interface class that models the interface of the communication between the components as a subclass of the meta-interface class in the second class diagram;
Using the relationship between the interface classes, an interface notation step for notifying the communication between the components in the second class diagram;
Including
In the semantic model generation step, the relationship between the interface class in the second class diagram is made via the interface between the components based on generalization from the interface class to the meta interface class. An interface interpretation step of expressing the first code in the predetermined formal language meaning the communication and including the first code in the semantic model;
The semantic model generation program according to Supplementary Note 1, wherein
(Appendix 3)
In the first class diagram, a meta communication port class is defined as a class included in the meta component class,
In the second class diagram, the class diagram generation step includes a communication port object that is an object of either the communication port class defined as the meta communication port class or a subclass of the meta communication port class in the second class diagram. Further including a communication port defining step for defining to include
The interface notation step is a step of expressing the communication via the interface between the components in the second class diagram by using the dependency from the communication port object included in the component class to the interface class. is there,
The semantic model generation program according to supplementary note 2, characterized by:
(Appendix 4)
The interface notation step is a step of notifying the communication between the components via the interface in the second class diagram using a relationship between the component class and the interface class.
The semantic model generation program according to supplementary note 2, characterized by:
(Appendix 5)
The class diagram generating step includes:
A component definition navigation step of receiving a first instruction for newly creating the part class and creating a subclass of the meta part class as the part class in the second class diagram with the first instruction as a trigger Or receiving a second instruction for adding generalization from an arbitrary first class created in the second class diagram to the meta-part class, and using the second instruction as a trigger, The semantic model generation program according to any one of appendices 1 to 4, further comprising: a component post-definition step for redefining a first class as the component class.
(Appendix 6)
The interface definition step includes
Interface definition navigation step of receiving a third instruction for newly creating the interface class and creating a subclass of the meta interface class as the interface class in the second class diagram with the third instruction as a trigger Or a fourth instruction for adding generalization from an arbitrary second class created in the second class diagram to the meta interface class, and triggered by the fourth instruction, The semantic model generation program according to any one of appendices 2 to 4, further comprising an interface post-definition step for redefining a second class as the interface class.
(Appendix 7)
In the first class diagram,
A first aggregation relationship to indicate that parts may be nested;
A meta-internal communication class for representing communication between the external part and the internal part within an external part having a nested internal part; and
A second aggregation relationship indicating that the meta internal communication class is included in the meta part class;
Is defined,
In the second class diagram, there are a plurality of the component classes, and the internal component of the plurality of component classes is modeled in the external component class that models the external component among the plurality of component classes. When internal part classes are nested,
The class diagram generation step includes an internal communication definition step for defining an internal communication relationship that is a relationship corresponding to the meta internal communication class between the external component class and the internal component class,
In the semantic model generation step, based on the generalization of the external component class and the internal component class to the meta component class and the definition of the meta internal communication class, the internal communication relationship is expressed as the external component class. An internal communication interpretation step including expressing the communication between the internal component class and a second code of the predetermined formal language, and including the second code in the semantic model.
The semantic model generation program according to any one of supplementary notes 1 to 6, characterized in that:
(Appendix 8)
The semantic model generation program further includes a sequence diagram generation step of generating a sequence diagram defining calls between objects included in an object diagram defining an object of the part class defined in the second class diagram on the computer. And execute
The semantic model generation step generates a third code representing the order of the calls in the predetermined formal language based on the contents of the sequence diagram, and includes the third code in the semantic model. Including a sequence definition step,
The semantic model generation program according to any one of appendices 1 to 7, characterized in that:
(Appendix 9)
In the first class diagram, as a class included in the meta part class, a meta call port class is defined using an aggregation relationship,
The class diagram generation step includes a call port definition step of defining the component class so as to include one or more call port objects that are objects of either the meta call port class or a subclass of the meta call port class,
The semantic model generation program further includes: an object diagram defining a plurality of objects of one or more of the part classes defined in the second class diagram; Using a relationship between the call port objects comprising, causing a call notation step to represent a call between the objects,
The semantic model generation step generates, based on the call between the objects described in the object diagram, a fourth code representing which object calls which object in the predetermined formal language, Including a second order defining step of including the fourth code in a semantic model;
The semantic model generation program according to any one of appendices 1 to 7, characterized in that:
(Appendix 10)
On the computer,
A metapart class definition that metamodels the parts included in the software and a metainterface class definition that metamodels the communication interface between the parts. A metamodel acquisition step for acquiring a metamodel to be modeled and represented;
At least two component objects that instantiate the meta-part class or a sub-class of the meta-part class, an interface object that instantiates the meta-interface class or a sub-class of the meta-interface class, and each of the at least two part objects An object diagram generation step for generating an object diagram represented in the UML including a link between the interface objects as a model of the software;
Based on the at least two part objects being derived from the meta part class, the interface object being derived from the meta interface class, the existence of the link, and the meta model. And a semantic model generation step of generating a semantic model that expresses in a predetermined formal language the meaning that the object diagram models the parts communicating with each other via the interface;
A semantic model generation program characterized in that
(Appendix 11)
Storage means for storing a metamodel that includes a definition of a metapart class obtained by metamodeling a part included in software and that represents the software by metamodeling according to a first class diagram expressed in UML;
A model obtained by modeling the software according to the metamodel by reading the metamodel from the storage unit and defining a part class representing a part included in the software as a subclass of the metapart class, A class diagram generating means for generating a second class diagram including a component class and expressed in the UML;
Based on the generalization from the component class to the meta component class and the meta model, the meaning of the second class diagram is that the component class in the second class diagram is a class that models the component. Semantic model generation means for generating a semantic model expressed in a predetermined formal language;
A semantic model generation device comprising:
(Appendix 12)
Computer
Including a meta part class definition obtained by meta-modeling parts included in software, and obtaining a meta model that represents the software by meta-modeling according to a first class diagram expressed in UML;
By defining a part class representing a part included in the software as a subclass of the meta part class, a model obtained by modeling the software according to the meta model is included in the UML including the part class. Generated as a class diagram of 2,
Based on the generalization from the component class to the meta component class and the meta model, the meaning of the second class diagram is that the component class in the second class diagram is a class that models the component. Generate a semantic model represented by a given formal language,
A semantic model generation method characterized by that.

101、101a〜101c メタモデル
102 表記ルール
103 UMLツール
104 DSM支援装置
105、105a〜105g モデル図
106、106a モデル
107 コード生成テンプレート
108 コード生成装置
109 ソースコード
110 中間データ
201〜216、301、302、601、701、902〜904、1001〜1003、1201〜1216 クラス
251〜272、305〜308、610、614、615、709、901、905〜910、1012〜1018、1251〜1269 関係(汎化、関連、依存、集約、合成集約)
303、304、604〜609、705〜708、1004〜1011、1106〜1121 ポート
401 入力装置
402 出力装置
403 モデル作成ナビゲーション部
404 メニュー選択部
405 部品用メニュー提供部
406 ポート用メニュー提供部
407 インタフェース用メニュー提供部
408 内部部品用メニュー提供部
409 タスク用メニュー提供部
410 モデル作成部
411 記憶装置
412 モデル図格納部
413 意味モデル格納部
414 テンプレート格納部
415 ソースコード格納部
416 メタモデル格納部
500 コンピュータ
501 CPU
502 ROM
503 RAM
504 通信インタフェース
505 ハードディスク装置
506 可搬型記憶媒体
507 駆動装置
508 バス
509 ネットワーク
510 プログラム提供者
602、603、702〜704、1101〜1105、1301〜1310 オブジェクト
611〜613、710、1122〜1128、1321〜1325、1331〜1337 リンク
801〜803 活性期間
804、805 呼び出し
1341〜1346 コメント
1351〜1356 点線
101, 101a-101c Meta model 102 Notation rule 103 UML tool 104 DSM support device 105, 105a-105g Model diagram 106, 106a Model 107 Code generation template 108 Code generation device 109 Source code 110 Intermediate data 201-216, 301, 302, 601, 701, 902-904, 1001-1003, 1201-1216 Class 251-272, 305-308, 610, 614, 615, 709, 901, 905-910, 1012-1018, 1251-1269 (generalization, Association, dependency, aggregation, synthetic aggregation)
303, 304, 604 to 609, 705 to 708, 1004 to 1011, 1106 to 1121 Port 401 Input device 402 Output device 403 Model creation navigation unit 404 Menu selection unit 405 Component menu provision unit 406 Port menu provision unit 407 For interface Menu providing unit 408 Internal component menu providing unit 409 Task menu providing unit 410 Model creation unit 411 Storage device 412 Model diagram storage unit 413 Semantic model storage unit 414 Template storage unit 415 Source code storage unit 416 Meta model storage unit 500 Computer 501 CPU
502 ROM
503 RAM
504 Communication interface 505 Hard disk device 506 Portable storage medium 507 Drive device 508 Bus 509 Network 510 Program provider 602, 603, 702-704, 1101-1105, 1301-1313 Object 611-613, 710, 1122-1128, 1321 1325, 1331 to 1337 Link 801 to 803 Active period 804 and 805 Call 1341 to 1346 Comment 1351 to 1356 Dotted line

Claims (9)

コンピュータに、
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを取得するメタモデル取得ステップと、
前記ソフトウェアに含まれる部品を表すどの部品クラスも前記メタ部品クラスのサブクラスとして表記せよ、という制約条件のもとで、ユーザからの入力に基づいて各部品クラスを定義することにより、前記ソフトウェアを前記メタモデルに適合するようにモデル化したモデルを、各部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成ステップと、
各部品クラスから前記メタ部品クラスへの、前記制約条件にしたがって表記された汎化と、前記メタモデルとに基づいて、前記第2のクラス図における各部品クラスが各部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成ステップと、
を実行させることを特徴とする意味モデル生成プログラム。
On the computer,
A metamodel acquisition step of acquiring a metamodel that includes a definition of a metapart class obtained by metamodeling a part included in the software and metaclassifies the software according to a first class diagram expressed in UML;
By defining each part class based on an input from a user under a constraint that any part class representing a part included in the software should be expressed as a subclass of the meta part class, the software is A class diagram generation step of generating a model modeled so as to conform to the meta model as a second class diagram including each component class and expressed in the UML;
Each part class in the second class diagram is a class in which each part is modeled based on the generalization described in accordance with the constraint condition from each part class to the meta part class and the meta model. A semantic model generation step for generating a semantic model representing the meaning of the second class diagram in a predetermined formal language;
A semantic model generation program characterized in that
前記第1のクラス図は、前記部品間の通信のインタフェースをメタモデル化したメタインタフェースクラスの定義をさらに含み、
前記クラス図生成ステップは、
前記部品間の前記通信の前記インタフェースをモデル化したインタフェースクラスを、前記メタインタフェースクラスのサブクラスとして、前記第2のクラス図において定義するインタフェース定義ステップと、
前記インタフェースクラスとの間の関係を用いて、前記部品間の前記通信を前記第2のクラス図において表記するインタフェース表記ステップと、
を含み、
前記意味モデル生成ステップは、前記第2のクラス図における前記インタフェースクラスとの間の前記関係を、前記インタフェースクラスから前記メタインタフェースクラスへの汎化に基づいて、前記部品間の前記インタフェースを介した前記通信を意味する前記所定の形式言語のコードで表現し、前記意味モデルに前記コードを含めるインタフェース解釈ステップを含む、
ことを特徴とする請求項1に記載の意味モデル生成プログラム。
The first class diagram further includes a definition of a meta interface class that meta-models an interface of communication between the components,
The class diagram generating step includes:
Defining an interface class that models the interface of the communication between the components as a subclass of the meta-interface class in the second class diagram;
Using the relationship between the interface classes, an interface notation step for notifying the communication between the components in the second class diagram;
Including
In the semantic model generation step, the relationship between the interface class in the second class diagram is made via the interface between the components based on generalization from the interface class to the meta interface class. An interface interpretation step of expressing the code in the predetermined formal language meaning the communication and including the code in the semantic model;
The semantic model generation program according to claim 1, wherein:
コンピュータに、
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義と、前記部品間の通信のインタフェースをメタモデル化したメタインタフェースクラスの定義を含み、さらに前記メタ部品クラスに含まれるクラスとしてメタ通信ポートクラスを定義しており、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを取得するメタモデル取得ステップと、
前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成ステップであって、
前記部品間の前記通信の前記インタフェースをモデル化したインタフェースクラスを、前記メタインタフェースクラスのサブクラスとして、前記第2のクラス図において定義するインタフェース定義ステップと、
前記第2のクラス図において、前記部品クラスを、前記メタ通信ポートクラスまたは前記メタ通信ポートクラスのサブクラスとして定義される通信ポートクラスのいずれかのオブジェクトである通信ポートオブジェクトを含むように定義する通信ポート定義ステップと、
前記部品クラスに含まれる前記通信ポートオブジェクトから前記インタフェースクラスへの依存を用いて、前記部品間の前記インタフェースを介した前記通信を前記第2のクラス図において表記するインタフェース表記ステップ
を含むクラス図生成ステップと、
前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成ステップであって、
前記第2のクラス図における前記インタフェースクラスへの前記依存を、前記インタフェースクラスから前記メタインタフェースクラスへの汎化に基づいて、前記部品間の前記インタフェースを介した前記通信を意味する前記所定の形式言語のコードで表現し、前記意味モデルに前記コードを含めるインタフェース解釈ステップ
を含む意味モデル生成ステップと、
を実行させることを特徴とする意味モデル生成プログラム。
On the computer,
Includes meta-part class definition that meta-models parts included in software, meta-interface class definition that meta-models communication interface between the parts, and meta-communication port class as a class included in the meta-part class A meta model acquisition step of acquiring a meta model that represents the software by meta-modeling according to a first class diagram expressed in UML;
By defining a part class representing a part included in the software as a subclass of the meta part class, a model obtained by modeling the software according to the meta model is included in the UML including the part class. A class diagram generation step for generating a class diagram of 2,
Defining an interface class that models the interface of the communication between the components as a subclass of the meta-interface class in the second class diagram;
In the second class diagram, communication that defines the component class to include a communication port object that is an object of either the meta communication port class or a communication port class defined as a subclass of the meta communication port class. A port definition step;
Class diagram generation including an interface notation step for expressing the communication between the components via the interface in the second class diagram by using the dependency from the communication port object included in the component class to the interface class. Steps,
Based on the generalization from the component class to the meta component class and the meta model, the meaning of the second class diagram is that the component class in the second class diagram is a class that models the component. A semantic model generation step for generating a semantic model represented by a predetermined formal language,
The predetermined format means the communication between the components via the interface based on the generalization from the interface class to the meta interface class, the dependence on the interface class in the second class diagram A semantic model generation step including an interface interpretation step of expressing in a language code and including the code in the semantic model;
A semantic model generation program characterized in that
前記クラス図生成ステップは、
前記部品クラスを新規作成するための第1の指示を受け取り、前記第1の指示を契機として、前記メタ部品クラスのサブクラスを前記部品クラスとして前記第2のクラス図内に作成する部品定義ナビゲーションステップ、または
前記第2のクラス図内に作成された任意の第1のクラスから前記メタ部品クラスへの汎化を追加するための第2の指示を受け取り、前記第2の指示を契機として、前記第1のクラスを前記部品クラスとして定義しなおす部品事後定義ステップ
を含むことを特徴とする請求項1〜3のいずれか1項に記載の意味モデル生成プログラム。
The class diagram generating step includes:
A component definition navigation step of receiving a first instruction for newly creating the part class and creating a subclass of the meta part class as the part class in the second class diagram with the first instruction as a trigger Or receiving a second instruction for adding generalization from an arbitrary first class created in the second class diagram to the meta-part class, and using the second instruction as a trigger, The semantic model generation program according to any one of claims 1 to 3, further comprising: a part post-definition step for redefining a first class as the part class.
前記インタフェース定義ステップは、
前記インタフェースクラスを新規作成するための第3の指示を受け取り、前記第3の指示を契機として、前記メタインタフェースクラスのサブクラスを前記インタフェースクラスとして前記第2のクラス図内に作成するインタフェース定義ナビゲーションステップ、または
前記第2のクラス図内に作成された任意の第2のクラスから前記メタインタフェースクラスへの汎化を追加するための第4の指示を受け取り、前記第4の指示を契機として、前記第2のクラスを前記インタフェースクラスとして定義しなおすインタフェース事後定義ステップ
を含むことを特徴とする請求項2または3に記載の意味モデル生成プログラム。
The interface definition step includes
Interface definition navigation step of receiving a third instruction for newly creating the interface class and creating a subclass of the meta interface class as the interface class in the second class diagram with the third instruction as a trigger Or a fourth instruction for adding generalization from an arbitrary second class created in the second class diagram to the meta interface class, and triggered by the fourth instruction, The semantic model generation program according to claim 2 or 3, further comprising an interface post-definition step for redefining a second class as the interface class.
前記第1のクラス図は、前記部品に特徴を与えるパラメタをメタモデル化したメタパラメタクラスの定義と、実行可能な実体をメタモデル化したメタ実行可能実体クラスの定義をさらに含み、
前記メタ部品クラスが前記メタパラメタクラスを含み得ることを示す集約と、前記メタ部品クラスが前記メタ実行可能実体クラスを含むことを示す集約が、前記第1のクラス図において定義されており、
前記クラス図生成ステップは、
前記部品クラスで定義される属性を前記メタパラメタクラスと対応づけるための第1の所定の表記を、前記第2のクラス図に付加するか否かを、前記ユーザからの入力に基づいて決める第1の決定ステップと、
前記部品クラスで定義される操作を前記メタ実行可能実体クラスと対応づけるための第2の所定の表記を、前記第2のクラス図に付加するか否かを、前記ユーザからの入力に基づいて決める第2の決定ステップ
を含み、
前記意味モデル生成ステップは、
各部品クラスで定義される各属性のうち、前記第1の所定の表記により前記メタパラメタクラスと対応づけられている属性について、当該属性が当該部品に特徴を与えることを示すコードを生成し、該生成したコードを前記意味モデルに含める属性解釈ステップと、
各部品クラスで定義される各操作のうち、前記第2の所定の表記により前記メタ実行可能実体クラスと対応づけられている操作について、当該操作が、外部から当該部品を駆動するために外部から呼び出し可能な、パブリックな操作であることを示すコードを生成し、該生成したコードを前記意味モデルに含める操作解釈ステップ
を含む
ことを特徴とする請求項1または2に記載の意味モデル生成プログラム。
The first class diagram further includes a definition of a meta-parameter class that meta-models a parameter that gives a characteristic to the component, and a definition of a meta-executable entity class that meta-models an executable entity,
Aggregation indicating that the meta-part class can include the meta-parameter class and aggregation indicating that the meta-part class includes the meta-executable entity class are defined in the first class diagram;
The class diagram generating step includes:
Whether to add a first predetermined notation for associating an attribute defined in the component class with the metaparameter class to the second class diagram is determined based on an input from the user. 1 decision step;
Based on the input from the user, whether or not a second predetermined notation for associating an operation defined in the component class with the meta-executable entity class is added to the second class diagram. A second decision step to decide,
The semantic model generation step includes:
For each attribute defined in each component class, for the attribute associated with the metaparameter class by the first predetermined notation, a code indicating that the attribute gives a feature to the component is generated, An attribute interpretation step of including the generated code in the semantic model;
Of the operations defined in each component class, for the operations associated with the meta-executable entity class by the second predetermined notation, the operation is performed from the outside in order to drive the component from the outside. callable generates a code indicating that it is a public operation, meaning model generation program according to claim 1 or 2, characterized in that it comprises an operation interpretation step of including the code thus generated to the semantic model.
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義を含み、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを格納する格納手段と、
前記格納手段から前記メタモデルを読み出して、前記ソフトウェアに含まれる部品を表すどの部品クラスも前記メタ部品クラスのサブクラスとして表記せよ、という制約条件のもとで、ユーザからの入力に基づいて各部品クラスを定義することにより、前記ソフトウェアを前記メタモデルに適合するようにモデル化したモデルを、各部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成手段と、
各部品クラスから前記メタ部品クラスへの、前記制約条件にしたがって表記された汎化と、前記メタモデルとに基づいて、前記第2のクラス図における各部品クラスが各部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成手段と、
を備えることを特徴とする意味モデル生成装置。
Storage means for storing a metamodel that includes a definition of a metapart class obtained by metamodeling a part included in software and that represents the software by metamodeling according to a first class diagram expressed in UML;
Each component based on the input from the user under the constraint that the metamodel is read from the storage means and any component class representing the component included in the software should be expressed as a subclass of the metacomponent class. Class diagram generating means for generating a model obtained by modeling the software so as to conform to the meta model by defining a class as a second class diagram including each component class and represented by the UML;
Each part class in the second class diagram is a class in which each part is modeled based on the generalization described in accordance with the constraint condition from each part class to the meta part class and the meta model. Semantic model generation means for generating a semantic model expressing the meaning of the second class diagram in a predetermined formal language;
A semantic model generation device comprising:
ソフトウェアが含む部品をメタモデル化したメタ部品クラスの定義と、前記部品間の通信のインタフェースをメタモデル化したメタインタフェースクラスの定義を含み、さらに、前記メタ部品クラスに含まれるクラスとしてメタ通信ポートクラスを定義しており、UMLで表記された第1のクラス図により、前記ソフトウェアをメタモデル化して表すメタモデルを格納する格納手段と、
前記格納手段から前記メタモデルを読み出して、前記ソフトウェアに含まれる部品を表す部品クラスを、前記メタ部品クラスのサブクラスとして定義することにより、前記ソフトウェアを前記メタモデルにしたがってモデル化したモデルを、前記部品クラスを含み前記UMLで表記される第2のクラス図として生成するクラス図生成手段であって、
前記部品間の前記通信の前記インタフェースをモデル化したインタフェースクラスを、前記メタインタフェースクラスのサブクラスとして、前記第2のクラス図において定義するインタフェース定義手段と、
前記第2のクラス図において、前記部品クラスを、前記メタ通信ポートクラスまたは前記メタ通信ポートクラスのサブクラスとして定義される通信ポートクラスのいずれかのオブジェクトである通信ポートオブジェクトを含むように定義する通信ポート定義手段と、
前記部品クラスに含まれる前記通信ポートオブジェクトから前記インタフェースクラスへの依存を用いて、前記部品間の前記インタフェースを介した前記通信を前記第2のクラス図において表記するインタフェース表記手段
を含むクラス図生成手段と、
前記部品クラスから前記メタ部品クラスへの汎化と前記メタモデルに基づいて、前記第2のクラス図における前記部品クラスが前記部品をモデル化したクラスであるという前記第2のクラス図の意味を所定の形式言語により表す意味モデルを生成する意味モデル生成手段であって、
前記第2のクラス図における前記インタフェースクラスへの前記依存を、前記インタフェースクラスから前記メタインタフェースクラスへの汎化に基づいて、前記部品間の前記インタフェースを介した前記通信を意味する前記所定の形式言語のコードで表現し、前記意味モデルに前記コードを含めるインタフェース解釈手段
を含む意味モデル生成手段と、
を備えることを特徴とする意味モデル生成装置。
Includes a meta part class definition that meta-models the parts included in the software, a meta interface class definition that meta-models the communication interface between the parts, and a meta communication port as a class included in the meta part class A storage means for defining a class and storing a metamodel that represents the software by metamodeling according to a first class diagram expressed in UML;
A model obtained by modeling the software according to the metamodel by reading the metamodel from the storage unit and defining a part class representing a part included in the software as a subclass of the metapart class, Class diagram generation means for generating a second class diagram including a component class and expressed in the UML,
An interface defining means for defining an interface class modeling the interface of the communication between the components as a subclass of the meta interface class in the second class diagram;
In the second class diagram, communication that defines the component class to include a communication port object that is an object of either the meta communication port class or a communication port class defined as a subclass of the meta communication port class. Port definition means;
Class diagram generation including interface notation means for notifying the communication between the components via the interface in the second class diagram using the dependency from the communication port object included in the component class to the interface class Means,
Based on the generalization from the component class to the meta component class and the meta model, the meaning of the second class diagram is that the component class in the second class diagram is a class that models the component. Semantic model generation means for generating a semantic model expressed in a predetermined formal language,
The predetermined format means the communication between the components via the interface based on the generalization from the interface class to the meta interface class, the dependence on the interface class in the second class diagram A semantic model generating means including an interface interpreting means for expressing in a language code and including the code in the semantic model;
A semantic model generation device comprising:
前記第1のクラス図は、前記部品に特徴を与えるパラメタをメタモデル化したメタパラメタクラスの定義と、実行可能な実体をメタモデル化したメタ実行可能実体クラスの定義をさらに含み、
前記メタ部品クラスが前記メタパラメタクラスを含み得ることを示す集約と、前記メタ部品クラスが前記メタ実行可能実体クラスを含むことを示す集約が、前記第1のクラス図において定義されており、
前記クラス図生成手段は、
前記部品クラスで定義される属性を前記メタパラメタクラスと対応づけるための第1の所定の表記を、前記第2のクラス図に付加するか否かを、前記ユーザからの入力に基づいて決める第1の決定手段と、
前記部品クラスで定義される操作を前記メタ実行可能実体クラスと対応づけるための第2の所定の表記を、前記第2のクラス図に付加するか否かを、前記ユーザからの入力に基づいて決める第2の決定手段
を含み、
前記意味モデル生成手段は、
各部品クラスで定義される各属性のうち、前記第1の所定の表記により前記メタパラメタクラスと対応づけられている属性について、当該属性が当該部品に特徴を与えることを示すコードを生成し、該生成したコードを前記意味モデルに含める属性解釈手段と、
各部品クラスで定義される各操作のうち、前記第2の所定の表記により前記メタ実行可能実体クラスと対応づけられている操作について、当該操作が、外部から当該部品を駆動するために外部から呼び出し可能な、パブリックな操作であることを示すコードを生成し、該生成したコードを前記意味モデルに含める操作解釈手段
を含む
ことを特徴とする請求項に記載の意味モデル生成装置。
The first class diagram further includes a definition of a meta-parameter class that meta-models a parameter that gives a characteristic to the component, and a definition of a meta-executable entity class that meta-models an executable entity,
Aggregation indicating that the meta-part class can include the meta-parameter class and aggregation indicating that the meta-part class includes the meta-executable entity class are defined in the first class diagram;
The class diagram generating means includes:
Whether to add a first predetermined notation for associating an attribute defined in the component class with the metaparameter class to the second class diagram is determined based on an input from the user. 1 determination means;
Based on the input from the user, whether or not a second predetermined notation for associating an operation defined in the component class with the meta-executable entity class is added to the second class diagram. A second determining means for determining,
The semantic model generation means includes
For each attribute defined in each component class, for the attribute associated with the metaparameter class by the first predetermined notation, a code indicating that the attribute gives a feature to the component is generated, Attribute interpretation means for including the generated code in the semantic model;
Of the operations defined in each component class, for the operations associated with the meta-executable entity class by the second predetermined notation, the operation is performed from the outside in order to drive the component from the outside. The semantic model generation apparatus according to claim 7 , further comprising: an operation interpretation unit that generates a code indicating a public operation that can be called, and includes the generated code in the semantic model.
JP2009198983A 2009-08-28 2009-08-28 Semantic model generation program and semantic model generation apparatus Expired - Fee Related JP5457761B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009198983A JP5457761B2 (en) 2009-08-28 2009-08-28 Semantic model generation program and semantic model generation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009198983A JP5457761B2 (en) 2009-08-28 2009-08-28 Semantic model generation program and semantic model generation apparatus

Publications (2)

Publication Number Publication Date
JP2011048796A JP2011048796A (en) 2011-03-10
JP5457761B2 true JP5457761B2 (en) 2014-04-02

Family

ID=43835004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009198983A Expired - Fee Related JP5457761B2 (en) 2009-08-28 2009-08-28 Semantic model generation program and semantic model generation apparatus

Country Status (1)

Country Link
JP (1) JP5457761B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3370147A4 (en) 2015-10-30 2019-06-26 Kabushiki Kaisha Toshiba System design device and method
KR102041422B1 (en) * 2018-09-06 2019-11-27 조용행 Application Design Method and Apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4865323B2 (en) * 2005-12-21 2012-02-01 三菱電機株式会社 Graphic information processing device
JP2008225898A (en) * 2007-03-13 2008-09-25 Toshiba Corp Conversion device, conversion program, and conversion method

Also Published As

Publication number Publication date
JP2011048796A (en) 2011-03-10

Similar Documents

Publication Publication Date Title
US6489970B1 (en) Means for specifying direct manipulation relationships on hierarchically structured visuals
US7089256B2 (en) Universal data editor
Limbourg et al. USIXML: A language supporting multi-path development of user interfaces
JP2006107478A (en) Extensible flamework for designing work flow
Limbourg Multi-path development of user interfaces
US20070288892A1 (en) System and method for providing and using meta-data in a dynamically typed array-based language
Meixner et al. Model-driven useware engineering
US20080250316A1 (en) Mechanism to improve a user&#39;s interaction with a computer system
JP2010534870A (en) Consistent method system and computer program for developing software asset based solutions
US20070178968A1 (en) Displaying game asset relationship in a game development environment
Blouin et al. Improving modularity and usability of interactive systems with Malai
JP2013518321A (en) Pattern-based user interface
JP5457761B2 (en) Semantic model generation program and semantic model generation apparatus
Jelinek et al. GUI generation from annotated source code
Griffiths et al. Exploiting model-based techniques for user interfaces to databases
Coyette et al. Sketchixml: A design tool for informal user interface rapid prototyping
Meixner et al. Udit–a graphical editor for task models
Crowle et al. ISML: an interface specification meta-language
Smyth Android Studio 4.0 Development Essentials-Kotlin Edition
Paternò et al. User task-based development of multi-device service-oriented applications.
CN106445487B (en) Processing unit, software and method for controlling an interactive component
Smyth Android Studio 3.5 Development Essentials-Kotlin Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Kotlin and Android Jetpack
Smyth Android Studio 3.4 Development Essentials-Kotlin Edition
Mitchell et al. DRIVE: an environment for the organised construction of user-interfaces to databases
Smyth Android Studio 3.6 Development Essentials-Kotlin Edition: Developing Android 10 (Q) Apps Using Android Studio 3.6, Kotlin and Android Jetpack

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131212

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: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140110

R150 Certificate of patent or registration of utility model

Ref document number: 5457761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees