JP2010049439A - System construction method using software model and modeling device - Google Patents
System construction method using software model and modeling device Download PDFInfo
- Publication number
- JP2010049439A JP2010049439A JP2008212369A JP2008212369A JP2010049439A JP 2010049439 A JP2010049439 A JP 2010049439A JP 2008212369 A JP2008212369 A JP 2008212369A JP 2008212369 A JP2008212369 A JP 2008212369A JP 2010049439 A JP2010049439 A JP 2010049439A
- Authority
- JP
- Japan
- Prior art keywords
- model
- information
- interface information
- binary code
- description language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明はソフトウェア構築方法に関する技術を提供するものである。 The present invention provides a technique related to a software construction method.
従来から、Unified Modeling Language(UML)(登録商標)などのモデル記述言語を用いたモデルベース開発手法によるソフトウェアの仕様・方式設計手法がソフトウェアの開発に利用されている。また、このような開発手法を用いたソフトウェア開発をおこなうためのUMLツールなどの関連開発ツール(モデリング装置)が広く提供されている。 Conventionally, a software specification / system design method based on a model-based development method using a model description language such as Unified Modeling Language (UML) (registered trademark) has been used for software development. In addition, related development tools (modeling devices) such as UML tools for performing software development using such a development technique are widely provided.
システム開発では、モデル記述言語を用いて開発される機能モジュール(タイプ1)と、モデル記述言語を用いずにソースコードあるいはバイナリコードの形式で提供される機能モジュール(タイプ2)を、タイプ1の機能モジュールをモデルコンパイラなどでソースコードに変換した後、タイプ2の機能モジュールとソースコードあるいはバイナリコードのレベルで統合することで、両形式の機能モジュールが混在するシステムの構築を実現可能である。
In system development, a function module (type 1) developed using a model description language and a function module (type 2) provided in the form of source code or binary code without using a model description language are
また他のシステム構築方法としては、ソースコードで提供されるタイプ2の機能モジュールを、モデル記述言語で記述した機能モジュールに変換して、モデル記述言のレベルで両タイプの機能モジュールと統合することが可能である。 As another system construction method, the type 2 function module provided in the source code is converted into the function module described in the model description language and integrated with both types of function modules at the level of the model description language. Is possible.
さらにモデル記述言語を用いて開発する機能モジュールの精度を向上するために、複数のUML表記で記述される同一機能モジュールの機能に関して、異なるUML表記間の整合性を向上させるための方法などが提案されている。 Furthermore, in order to improve the accuracy of function modules developed using a model description language, a method for improving the consistency between different UML notations is proposed for the functions of the same function module described in a plurality of UML notations. Has been.
モデルベース開発では、設計対象のモジュールの機能・構造をUMLなどのモデル記述言語で記述する(これをモデル情報と呼ぶこととする)。モデル記述言語では複数モジュールのモデル情報間の関係を記述することが可能である。たとえばUMLのクラス図を用いることで、単一のクラスに関するクラス名・提供するメソッド名などのモデル情報を記述することが可能であるのに加えて、参照・継承など複数クラスのモデル情報相互の関係を記述することが可能である。 In model-based development, the function / structure of a module to be designed is described in a model description language such as UML (this is referred to as model information). In the model description language, it is possible to describe the relationship between model information of a plurality of modules. For example, by using UML class diagrams, it is possible to describe model information such as class names and method names to be provided for a single class. It is possible to describe the relationship.
上記従来方法は、モデル情報相互の関係を記述する為の有効な方法であるが、ソースコードやバイナリコードなどモデル記述言語を用いずに開発したタイプ2の機能モジュールでは、モジュールの機能を規定する構造・動作に関するすべての情報を、モデル記述言語を用いたモデル情報に変換することができない。 The above conventional method is an effective method for describing the relationship between model information. However, in the type 2 function module developed without using a model description language such as source code or binary code, the function of the module is specified. All information related to structure and behavior cannot be converted into model information using a model description language.
具体的に述べると、バイナリコードに関してはこれを開発者が理解・利用できるモデル情報に変換することは難しい。またソースコードに関しては、例えばソースコードのクラス名・提供するメソッド名などのクラス定義情報から対応するモデルの構造に関するモデル情報を生成するなど一部の情報に関してはモデル情報への変換が可能であるが、ソースコードとして記載される個々の関数の処理内容など動作を含めたモジュール機能が提供するすべて情報をモデル記述言語に変換することは一般的にはできない。例えば個々の処理が逐次実行されるようなケースでは、これをソースコードではなく、より高級なモデル記述言語で記載することは難しい。 Specifically, it is difficult to convert binary code into model information that developers can understand and use. Regarding source code, some information can be converted into model information, for example, model information related to the structure of the corresponding model is generated from class definition information such as the class name of the source code and the method name provided. However, it is generally not possible to convert all information provided by module functions including operations such as processing contents of individual functions described as source code into a model description language. For example, in a case where individual processes are executed sequentially, it is difficult to describe this in a higher-level model description language instead of the source code.
さらに、モデル記述言語で記述されるタイプ1の機能モジュールの粒度と、ソースコードやバイナリコードで定義されるタイプ2の機能モジュールの粒度は異なることが多く、例えばタイプ1とタイプ2の機能モジュールが混在するシステムにおいて、モデル記述言語で定義されるモジュールA1をモデル記述言語で定義される他のモジュールA2に置き換える場合において配慮が必要となる。
Furthermore, the granularity of the
例えば、モジュールA1がバイナリコードで定義される機能モジュールB1・B2を参照し、モジュールA2がバイナリコードで定義される機能モジュールB3を参照しているという条件において、モジュールA1をモジュールA2に交換する場合には、バイナリコードB1・B2が他のモジュールから利用されているか否かを判定し、
(1)利用されていない場合:バイナリコードB1・B2をバイナリコードB3と置き換え可能であるので、モジュールA2とバイナリコードB3を相互に利用可能とするインターフェース情報をモデル記述言語を用いて記述する(以下モデルインターフェース情報)。
(2)利用されている場合:バイナリコードB1・B2にバイナリコードB3を加えた3つの機能モジュールの機能が必要となるので、該3つの機能モジュールの機能を他の機能モジュールから利用可能とするモデルインターフェース情報を記述する。
といった対応が必要となる。
For example, the module A1 is replaced with the module A2 on the condition that the module A1 refers to the functional modules B1 and B2 defined by the binary code and the module A2 refers to the functional module B3 defined by the binary code. Determines whether the binary code B1 or B2 is used by another module,
(1) When not used: Since the binary codes B1 and B2 can be replaced with the binary code B3, interface information that enables the module A2 and the binary code B3 to be used mutually is described using a model description language ( The following model interface information).
(2) When used: Since the functions of the three function modules obtained by adding the binary code B3 to the binary codes B1 and B2 are necessary, the functions of the three function modules can be used from other function modules. Describes model interface information.
Such a response is required.
以上のように一般的にモデル記述言語で定義されるタイプ1の機能モジュールの粒度と、ソースコードやバイナリコードなどの実装言語で定義されるタイプ2の機能モジュールの粒度が異なるのに加えて、それぞれの参照関係も異なるため、タイプ1の機能モジュールの追加・削除・交換において、タイプ2の機能モジュールの参照関係を正しく保つために機能モジュールの交換・追加とこれに伴うモデルインターフェース情報の煩雑な記述修正が必要となる。
As described above, the granularity of
機能モジュールを記述するモデル記述言語を用いたモデル情報の作成・編集が可能なモデルエディタ、モデルエディタが生成するモデル情報をソースコードに変換するモデルコンパイラを有するモデリング装置において、ソースコードやバイナリコードなどの実装言語で規定されたタイプ2の機能モジュールのインターフェース情報からモデル記述言語で記述したタイプ1のモデルインターフェース情報と、該モデルインターフェース情報を用いた関数実行または変数アクセスに必要となる該バイナリコードを特定する実装リンク情報を生成するモデルインターフェース情報付加手段を設けた。
Source code, binary code, etc. in a model editor that can create and edit model information using a model description language that describes functional modules, and a modeling device that has a model compiler that converts model information generated by the model editor into source code The
なお「関数実行」・「変数アクセス」などに関しては、「関数」・「変数」を広義の用語として規定している。意味としてはC言語などの関数型言語における関数・変数だけではなく、例えばC++言語などのオブジェクト指向言語におけるメソッド・アトリビュートなどを含むものとする。 As for “function execution” and “variable access”, “function” and “variable” are defined as broad terms. The meaning includes not only a function / variable in a functional language such as C language but also a method / attribute in an object-oriented language such as C ++ language.
また、モデリング装置に、ソースコードやバイナリコードなどの実装言語で規定した機能モジュールの複数モジュールへの分割や、複数機能モジュールの単一モジュールへの統合をおこなう分割統合手段を設けた。 In addition, the modeling apparatus is provided with a division integration unit that divides a functional module defined by an implementation language such as source code or binary code into a plurality of modules, or integrates a plurality of function modules into a single module.
本発明のモデリング装置のモデルインターフェース情報付加手段により、実装言語で規定されたタイプ2のモジュールAにモデリング記述言語で記述したモデルインターフェース情報と、該モデルインターフェース情報と実装言語で規定された機能モジュールとの対応を規定する実装リンク情報を生成・付加することが可能となる。これによりモデリング装置はモジュールAをタイプ1のモデル情報と混在して利用するために必要な情報を実装情報から取り込むことが可能となる。 更に、取り込んだタイプ2のモジュールAに関するモデル情報を用いて、モデル情報で規定されるタイプ1のモジュールBと実装情報で規定された前記モジュールA間との間での関数実行や変数アクセスをモデリング装置で実現可能となる。
The model interface information added by the model interface information addition means of the modeling apparatus of the present invention, the model interface information described in the modeling description language in the type 2 module A specified in the implementation language, the model interface information and the function module specified in the implementation language, It is possible to generate and add mounting link information that prescribes the correspondence. As a result, the modeling apparatus can take in information necessary for using the module A in combination with
以上により、例えばタイプ1のモデル情報のモデル記述言語レベルでの動作検証をおこなう際に、タイプ1のモデル情報が利用するタイプ2のモデル情報の動作を含めた検証が可能となる。
As described above, for example, when performing operation verification of model information of
さらに、本発明のモデリング装置により、分割手段とモデルインターフェース情報付加手段を用いて実装情報で規定されたソースコードまたはバイナリコード形式のモジュールAをモジュールA1とモジュールA2に分割し、モジュールA1・A2のそれぞれにモデリング記述言語で記述したモデルインターフェース情報と実装リンク情報を生成・付加することが可能となる。これによりモデリング装置はモジュールを適切な粒度に分割の上、分割したモジュールA1・A2をモデルとして利用するのに必要な構造および振る舞いに関する情報を実装情報から取り込むことが可能となる。 Further, the modeling device of the present invention divides the module A in the source code or binary code format defined by the mounting information into the module A1 and the module A2 using the dividing means and the model interface information adding means, and the modules A1 and A2 It is possible to generate and add model interface information and mounting link information described in a modeling description language. As a result, the modeling apparatus can divide the module into an appropriate granularity, and can import information on the structure and behavior necessary for using the divided modules A1 and A2 as models from the mounting information.
以上、本発明によれば、モデルベース開発においてソースコードやバイナリコードなどの実装情報で規定された機能モジュールとモデル記述言語で規定された機能モジュールの混在利用が可能となり、ソフトウェアの開発効率向上が可能となる。 As described above, according to the present invention, in the model-based development, it is possible to mix and use the function module defined by the implementation information such as the source code and the binary code and the function module defined by the model description language, thereby improving the software development efficiency. It becomes possible.
以下本発明の実施例を図1から図4を用いて説明する。 Embodiments of the present invention will be described below with reference to FIGS.
図1は従来のモデリング装置(以下モデリングツール)の構成とモデリングにより生成されるモデルデータなどのデータの関係を示すシステム概略図、図2は本発明のモデリング装置のシステム概略図、図3はモデリング装置のモデルインターフェース情報付加手段(図中ではモデルI/F情報付加手段と記載)の動作を説明する図、図4はモデルインターフェース情報付加手段の入出力情報の関係を示す図である。 1 is a system schematic diagram showing the relationship between the structure of a conventional modeling device (hereinafter referred to as a modeling tool) and data such as model data generated by modeling, FIG. 2 is a system schematic diagram of the modeling device of the present invention, and FIG. 3 is modeling. FIG. 4 is a diagram illustrating the operation of model interface information adding means (denoted as model I / F information adding means in the drawing) of the apparatus, and FIG. 4 is a diagram showing the relationship of input / output information of the model interface information adding means.
図1において、101はユーザがモデリング言語を用いた設計をおこないモデル情報であるモデルデータを生成するモデルエディタ、106はモデルエディタ101が生成するモデルデータを実装情報であるソースコードに変換するモデルコンパイラ、100はモデルエディタ101とモデルコンパイラ106から構成されるモデリング装置であるモデリングツール、110はユーザが実装言語を用いた設計をおこない実装情報であるソースコードを生成するソースエディタ、114はモデリングツール100とソースエディタ110が生成するソースコードを実行ターゲットとするCPUが実行可能な中間形式のデータであるバイナリコードに変換するソースコンパイラ、117はソースコンパイラ114が生成するバイナリコードをターゲットCPU上で実行可能な最終形式に変換するリンカである。
In FIG. 1,
モデルデータ102は、モデル情報の構造や提供する関数・利用する関数を規定するモデルインターフェース情報103(図中ではモデルI/F情報と記載)と、提供する関数の処理内容や利用する関数の呼び出し条件などを規定するモデル処理情報104と、モデルのバージョン番号などその他属性情報と規定するモデル属性情報105で構成される。 The model data 102 includes model interface information 103 (denoted as model I / F information in the figure) that defines the structure of model information, functions to be provided and functions to be used, and details of processing of the functions to be provided and calls to the functions to be used. Model processing information 104 that defines conditions and the like, and model attribute information 105 that defines other attribute information such as model version numbers.
例えばUMLを用いたモデルデータではクラス図のクラス継承・参照関係やクラスで定義するメソッド(関数)などがモデルインターフェース情報103となる。また例えば各関数と関連付けてアクション言語で記述される該関数の処理内容や、ステート図の状態遷移条件などがモデル処理情報104となる。 For example, in model data using UML, model interface information 103 includes class inheritance / reference relationships of class diagrams, methods (functions) defined by classes, and the like. Further, for example, the processing contents of the function described in the action language in association with each function, the state transition condition of the state diagram, and the like become the model processing information 104.
ソースコード107は、提供する関数・利用する関数などを規定するソースインターフェース情報108(図中ではソースI/F情報と記載)と、例えば各関数と関連付けて実装言語で記述される該関数の処理や、同様に実装言語で記述される関数の呼び出し処理などを規定するソース処理情報109で構成される。 The source code 107 includes source interface information 108 (denoted as source I / F information in the figure) that defines a function to be provided and a function to be used, and processing of the function described in an implementation language in association with each function, for example. Similarly, it is composed of source processing information 109 that defines function calling processing described in the implementation language.
以下、図1を用いて従来のモデリングツールを用いたソフトウェア開発の手順を説明する。ユーザはモデル化する機能を、モデルエディタ101を用いてモデリング言語で記述したモデルデータ102として作成する。作成したモデルデータ102はモデルコンパイラ106でソースコード107に変換される。
Hereinafter, a software development procedure using a conventional modeling tool will be described with reference to FIG. The user creates a modeling function as model data 102 described in a modeling language using the
またユーザはソースエディタ110を用いてC言語などの実装言語で記述したソースコード111を作成する。ソースコード107およびソースコード111はソースコンパイラ114で実行ターゲットとするCPUが実行可能な中間形式のデータであるバイナリコード115に変換される。バイナリコード115はその他のバイナリコード116を合わせてリンカ117でターゲットCPU上で実行可能な実行可能コード118に変換される。ソースコード111とバイナリコード116は実装情報で規定され、モデル情報を持たない。
In addition, the user uses the source editor 110 to create the source code 111 described in an implementation language such as C language. The source code 107 and the source code 111 are converted into binary code 115 that is data in an intermediate format that can be executed by the CPU to be executed by the
一方、モデルデータ102はモデル情報で規定され、実装情報を持たない。実装情報であるソースコード111やバイナリコード116はモデリングツール100が生成する実装情報であるソースコード107と結合され最終的には実行可能コード118となる。 On the other hand, the model data 102 is defined by model information and does not have mounting information. The source code 111 and the binary code 116 which are the implementation information are combined with the source code 107 which is the implementation information generated by the modeling tool 100 and finally become an executable code 118.
以上、従来例のモデリング装置では実装情報をモデル情報としてモデリングツールに取り込むことは行なわず、実装情報として結合する。 As described above, in the conventional modeling apparatus, the mounting information is not taken into the modeling tool as model information but is combined as mounting information.
従来のモデリング装置において、例えば、ソースコードのクラス名・提供するメソッド名などのクラス定義情報から対応するモデルの構造に関するモデル情報を生成することも可能であるが、ソースコードの処理内容などモデルの動作を含めたすべてのモデル情報として有効なすべての情報を実装情報から取り込むことはできない。 In conventional modeling devices, for example, it is possible to generate model information related to the structure of the corresponding model from class definition information such as the class name of the source code and the method name to be provided. All information that is valid as all model information including operations cannot be imported from the implementation information.
次に、本発明の実施例の動作を、図2を用いて説明する。図2においてモデルインターフェース情報付加手段201は、実装情報で規定されたモジュールのインターフェース情報に基づいてモデル記述言語で記述したインターフェース情報と、該インターフェース情報と実装情報内の呼応する処理や変数との対応を規定する実装リンク情報を生成する。 Next, the operation of the embodiment of the present invention will be described with reference to FIG. In FIG. 2, the model interface information adding means 201 corresponds to the interface information described in the model description language based on the interface information of the module specified by the mounting information, and the corresponding processing and variables in the mounting information. Implementation link information that specifies
図2のモデリングツール200では、従来はリンカ117が処理していたモデル情報を持たないバイナリコード116のバイナリインターフェース情報202を、モデルインターフェース情報付加手段201を用いてモデルインターフェース情報としてモデリング手段に取り込む。
In the modeling tool 200 shown in FIG. 2, the binary interface information 202 of the binary code 116 having no model information that has been processed by the linker 117 is fetched into the modeling means as model interface information using the model interface
さらに該モデルインターフェース情報とバイナリ処理情報203の呼応する処理や変数との対応を規定する実装リンク情報を生成する。たとえばバイナリコード116が関数f( )のインターフェース定義・実際の処理をそれぞれバイナリインターフェース情報202とバイナリ処理情報203にもつとする。 Further, mounting link information that defines the correspondence between the model interface information and the corresponding process or variable of the binary processing information 203 is generated. For example, it is assumed that the binary code 116 has the interface definition / actual processing of the function f () in the binary interface information 202 and the binary processing information 203, respectively.
モデルインターフェース情報付加手段201はバイナリインターフェース情報202の関数f( )に関する関数名・引数の数と型・戻り値の型などの情報に基づいて、対応するモデルインターフェース情報を生成する。このモデルインターフェース情報を用いることで、例えばモデルエディタ101上でバイナリコード116を、関数f( )を提供するコンポーネント/クラスとしてクラス図上でモデル情報として利用可能となる。
The model interface
更に、モデルインターフェース情報付加手段201が生成する、モデルインターフェース情報とバイナリ処理情報203の呼応する関数実装の対応を規定する実装リンク情報を用いることで、モデリングツール200を用いて規定されたバイナリコード116の関数f( )の呼び出し処理を実行可能となる。
Further, the binary code 116 defined using the modeling tool 200 is generated by using the mounting link information that defines the correspondence between the model interface information and the binary processing information 203 corresponding to the function implementation generated by the model interface
以上、モデルインターフェース情報付加手段201により、従来はリンカ117が処理していたモデル情報を持たないバイナリコード116を、モデルインターフェース情報付加手段201を用いてモデリング手段に取り込み、モデリング対象として利用することが可能となる。
As described above, the model interface
図3は以上述べたモデルインターフェース情報付加手段201の動作を示す図である。モデル情報をもたないバイナリコード302は、ソースコード301をソースコンパイラ114で処理することで生成される。ただし、何らかの理由によりバイナリコード302のみが利用可能でソースコード301は利用できないとする。
FIG. 3 shows the operation of the model interface
ソースコード301で定義されている関数funcA( )の定義・実装はバイナリコード302に実行ターゲットとするCPUが実行可能な中間形式のデータとして保持される。バイナリインターフェース情報308には関数funcA( )が引数や戻り値の情報とともに登録される。また関数funcB( )が参照される関数として引数や戻り値の情報とともに登録される。さらに関数funcA( )の処理内容がバイナリ処理情報309に登録される。
The definition and implementation of the function funcA () defined in the
モデルインターフェース情報付加手段201はバイナリコード302からモデルインターフェース情報305を生成する。またバイナリ処理情報309に登録されている関数funcA( )を実行するために必要な情報を呼ぶための情報を生成しモデル処理情報306に格納する。
The model interface
図4は本実施例の動作を、モデルインターフェース情報付加手段201の入出力情報の関係として示した図である。バイナリコード302をモデルインターフェース情報付加手段201で変換することにより、モデリングツール200で利用可能なモデル情報402が生成される。モデル情報402が提供または参照する関数の情報はモデルインターフェース情報305から生成する。関数funcA( )が実際に呼ばれた場合の処理はモデル処理情報306を用いて決定される。この例ではバイナリコード302の関数funcA( )の実装が呼ばれることになる。
FIG. 4 is a diagram showing the operation of the present embodiment as the relationship of the input / output information of the model interface
図4ではモデル情報をUMLなどのグラフィカルなモデル情報として扱う場合の例を示している。例えば、モデルエディタ101を用いて、モデル情報402の関数funcA( )を呼び出すモデル情報との参照関係や関数funcB( )の処理を提供するモデル情報との参照関係をモデルとして規定することが可能となり、実装情報からなるバイナリコード302のモデリングツール200を用いたモデル情報としての利用が可能となる。
FIG. 4 shows an example in which model information is handled as graphical model information such as UML. For example, by using the
以下、本発明の他の実施例を図5から図10を用いて説明する。図5は本発明のモデリング装置のシステム概略図、図6は分割統合手段の動作を説明する図、図7は分割統合手段をもたない本発明の他の実施例の動作を説明する図、図8は分割統合手段をもつ本発明の他の実施例の動作を説明する図、図9は分割統合手段をもたない本発明の他の実施例での実装情報の利用例、図10は分割統合手段をもつ本発明の他の実施例での実装情報利用例である。 Hereinafter, another embodiment of the present invention will be described with reference to FIGS. FIG. 5 is a system schematic diagram of the modeling apparatus of the present invention, FIG. 6 is a diagram for explaining the operation of the division integration means, FIG. 7 is a diagram for explaining the operation of another embodiment of the present invention having no division integration means, FIG. 8 is a diagram for explaining the operation of another embodiment of the present invention having division integration means, FIG. 9 is an example of using the mounting information in another embodiment of the present invention having no division integration means, and FIG. It is an example of mounting information use in another embodiment of the present invention having a division integration means.
以下、本発明の他の実施例の動作を、図5を用いて説明する。図5において分割統合手段502は実装情報で規定されるソースコード111を入力とし、分割統合結果をモデルインターフェース情報付加手段501に提供する。
The operation of another embodiment of the present invention will be described below with reference to FIG. In FIG. 5, the
以下、図6を用いて、分割統合手段502の動作の詳細を説明する。分割統合指定情報601は実装情報の分割・統合方法を指定する情報である。この例では関数funcA( )・funcB( )・funcC( )をfuncA( )のグループとfuncB( )とfuncC( )から成るグループに分割・統合することがユーザにより指定されている。
Hereinafter, the details of the operation of the
分割統合手段502はfuncA( )・funcB( )・funcC( )の実装を規定するソースコード602・603を取得し、分割統合指定情報601の指示に従って関数funcA( )の処理を含むソースコード604と、関数funcB( )・funcC( ) の処理を含むソースコード605を生成する。
The
以上、分割統合手段502をもつモデリングツール500の効果を図7と図8を用いて説明する。図7は分割統合手段502をもたない場合の例である。
The effects of the modeling tool 500 having the
図7において、実装情報で規定されるソースコードP701には関数funcA( )・funcB( )の処理が記述されている。またソースコードQ702には関数funcC( )の処理が記述されている。ソースコード701・702はソースコンパイラ114で、それぞれバイナリコードP703とバイナリコードQ704に変換される。
In FIG. 7, processing of functions funcA () · funcB () is described in the source code P701 defined by the mounting information. The source code Q702 describes the processing of the function funcC (). The
バイナリコード703・704はモデルインターフェース情報付加手段501で、それぞれモデルインターフェース情報などを付加し、モデルデータ705・706となる。
The
以上の分割統合手段502をもたない処理では、ソースコード701・702で各々規定される関数がそのままモデルデータ705・706で利用可能な関数となる。
In the above processing without the
生成されたモデルデータの利用例を図9に示す。モデルデータ901・903はモデル情報から生成されたモデルデータであり、モデルデータ705・706は図7の処理で実装情報からモデルインターフェース情報付加手段502を用いて生成されたモデルデータである。
An example of using the generated model data is shown in FIG. The model data 901 and 903 are model data generated from the model information, and the model data 705 and 706 are model data generated from the mounting information by using the model interface
図9において、モデルデータ705がモデルデータ901とモデルデータ903の両方から利用されるため、例えば、モデルデータ903の修正をおこない、この修正に伴って利用する関数funcB( )・funcC( )を例えば新しいバージョンの同一名称の関数に交換しなければならない場合、モデルデータ705とモデルデータ706の両方を交換する必要があり、処理が煩雑である。 In FIG. 9, since the model data 705 is used from both the model data 901 and the model data 903, for example, the model data 903 is corrected, and functions funcB () · funcC () used in association with the correction are, for example, When it is necessary to exchange a new version of the function having the same name, it is necessary to exchange both the model data 705 and the model data 706, and the processing is complicated.
さらに、モデルデータ901が従来の関数funcA( )の処理を必要とし、交換した新しいバージョンの関数funcA( )の処理では動作が不適切となる場合には、さらにモデルデータ705の関数名を重複がないように変更した上で、古いバージョンと新しいバージョンの2つを持つ構成とするといった対策が必要となる。 Further, if the model data 901 requires processing of the conventional function funcA () and the operation becomes inappropriate in the processing of the replaced new function funcA (), the function name of the model data 705 is further duplicated. It is necessary to take measures such as having an old version and a new version after making changes so that there is no change.
次に、図8を用いて分割統合手段502をもつ場合の動作を説明する。図7と同様にソースコード701・702を入力とするが、分割統合手段502で図6に示した分割指定情報601と同じ分割統合条件を設定することで、さらにソースコンパイラ手段114を介して生成されるバイナリコードは、バイナリコード803に関数funcA( )の処理記述があり、バイナリコード804に関数funcB( )・funcC( )の処理記述がある構成になる。
Next, the operation when the
これによって、モデルインターフェース情報付加手段502を介して生成されるモデルデータ805・806は、モデルデータ805に関数funcA( )の処理記述があり、モデルデータ806に関数funcB( )・funcC( )の処理記述がある構成となる。
As a result, the model data 805 and 806 generated through the model interface
生成されたモデルデータの利用例を図10に示す。モデルデータ901・903はモデル情報から生成されたモデルデータであり、モデルデータ805・806は図8の処理で実装情報からモデルインターフェース情報付加手段502を用いて生成されたモデルデータである。
An example of use of the generated model data is shown in FIG. The model data 901 and 903 are model data generated from the model information, and the model data 805 and 806 are model data generated using the model interface
図10において、例えばモデルデータ903の修正をおこない、この修正に伴って利用する関数funcB( )・funcC( )を例えば新しいバージョンの同一名称の関数に交換しなければならない場合、モデルデータ806を交換すればよく、モデルデータ805の交換は不要となる。 In FIG. 10, for example, when the model data 903 is corrected, and the functions funcB () and funcC () used in connection with the correction must be replaced with, for example, a new version of the function having the same name, the model data 806 is replaced. The model data 805 need not be exchanged.
この例のように、モデリングツール500はモジュールを適切な粒度に分割・統合した上で、モデル情報として取り込むことが可能となる。 As in this example, the modeling tool 500 can capture modules as model information after dividing and integrating modules into an appropriate granularity.
なお、以上にて説明した本実施例では分割統合手段において、実装情報としてソースコードを分割・統合する例を示したが、実装情報としてバイナリコードを分割・統合することも同様の構成で可能であり、分割・統合する実装情報の種類は特にこれを限定しない。 In the above-described embodiment, the example of dividing and integrating source code as mounting information in the dividing and integrating means has been described. However, binary code can be divided and integrated as mounting information with the same configuration. Yes, the type of mounting information to be divided / integrated is not particularly limited.
本発明のモデルインターフェース情報付加手段がもつ実装情報で規定されたタイプ2の機能モジュールと、モデル情報で規定されたタイプ1の機能モジュールとの相互関係の記述機能により、モデル情報で規定された機能モジュールと実装情報で規定された機能モジュールのモデル記述言語を使用したモデル設計のレベルでの相互呼び出しなどの動作連携が可能となる。
The function defined by the model information by the function of describing the mutual relationship between the type 2 function module defined by the mounting information and the
さらに、モデル情報で規定されたタイプ1の機能モジュールの動作検証において、実装情報で規定されたタイプ2の機能モジュール情報と組み合わせた動作確認が可能となる。これにより、モデルベース開発の適用範囲の拡大とモデル動作検証の精度向上が期待される。
Further, in the operation verification of the
さらに、本発明の分割統合手段がもつ実装情報で規定されたモジュールの分割・統合によるモジュール構成の再構築機能により、モデル情報で規定されたタイプ1の機能モジュールと、同等の粒度をもつ実装情報で規定されたタイプ2の機能モジュールとの混在利用が可能となる。これにより、モデル情報で規定されたタイプ1の機能モジュールの交換・追加などのシステム構成変更に伴う、関連する実装言語で規定されたタイプ2の機能モジュールの交換時の管理が簡素化され、システム構築の信頼性向上が期待される。
Further, the module structure restructuring function by dividing / integrating the modules specified by the mounting information of the dividing / integrating means of the present invention enables the mounting information having the same granularity as the
100:モデリングツール
101:モデルエディタ
106:モデルコンパイラ
201:モデルインターフェース情報付加手段
502:分割統合手段
100: Modeling tool 101: Model editor 106: Model compiler 201: Model interface information adding means 502: Division integration means
Claims (16)
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ターゲット機器で動作するバイナリコードの関数を実行する方法を規定する情報、または変数にアクセスする方法を規定する情報であって、モデル記述言語で記述したインターフェース情報であるモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a software system construction method using a model compiler that converts the model information generated by the model editor into source code,
Information that specifies how to execute a function of a binary code that operates on a target device, or information that specifies a method of accessing a variable, and generates model interface information that is interface information described in a model description language. Characteristic system construction method
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法 The system construction method according to claim 1,
Information describing a function using the model interface information, or information describing a variable access method, and generating a mounting link information for specifying the binary code.
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ソースコードの分割・結合を含む再構築をおこない、
再構築したソースコードに基づいたバイナリコードを生成し、該バイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a software system construction method using a model compiler that converts the model information generated by the model editor into source code,
Reconstruction including source code division / combination,
A system construction method characterized by generating a binary code based on the reconstructed source code and generating model interface information described in a model description language as interface information of the binary code
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法 In the system construction method of Claim 3,
Information describing a function using the model interface information or information describing a method of accessing a variable, and generating mounting link information for specifying the binary code for specifying the binary code Construction method
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
バイナリコードの分割・結合を含む再構築をおこない、再構築したバイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a software system construction method using a model compiler that converts the model information generated by the model editor into source code,
A system construction method characterized by performing reconstruction including division and combination of binary codes, and generating model interface information described in a model description language which is interface information of the reconstructed binary code
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法 The system construction method according to claim 5,
Information describing a function using the model interface information, or information describing a variable access method, and generating a mounting link information for specifying the binary code.
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ソースコードの分割・結合による再構築をおこない、
再構築したソースコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a software system construction method using a model compiler that converts the model information generated by the model editor into source code,
Reconstruction by dividing and combining source code,
A system construction method characterized by generating model interface information described in a model description language, which is interface information of reconstructed source code
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法 In the system construction method of Claim 7,
Information describing a function using the model interface information, or information describing a variable access method, and generating a mounting link information for specifying the binary code.
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ターゲット機器で動作するバイナリコードの関数を実行する方法を規定する情報、または変数にアクセスする方法を規定する情報であって、モデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a modeling apparatus having a model compiler that converts the model information generated by the model editor into source code,
Model interface information adding means for generating a model interface information described in a model description language, the information specifying a method for executing a function of a binary code operating on a target device or a method for accessing a variable Modeling device characterized by providing
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置 The modeling device according to claim 9, wherein
The model interface information adding means is information describing a function using the model interface information or information describing a variable access method, and generates mounting link information for specifying the binary code. Modeling equipment
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ソースコードの分割・結合を含む再構築をおこなう分割結合手段と、
該分割結合手段によって再構築したソースコードに基づいたバイナリコードを生成し、該バイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a modeling apparatus having a model compiler that converts the model information generated by the model editor into source code,
Split / join means for restructuring including source code split / join,
Model interface information adding means for generating a binary code based on the source code reconstructed by the dividing and coupling means and generating model interface information described in a model description language as interface information of the binary code is provided. Characteristic modeling device
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置 The modeling device according to claim 11, wherein
The model interface information adding means is information describing a function using the model interface information or information describing a variable access method, and generates mounting link information for specifying the binary code. Modeling equipment
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
バイナリコードの分割・結合を含む再構築をおこなう分割結合手段と、
該分割結合手段によって再構築したバイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a modeling apparatus having a model compiler that converts the model information generated by the model editor into source code,
Split / join means for performing reconstruction including split / join of binary code,
A modeling apparatus comprising: model interface information adding means for generating model interface information described in a model description language, which is binary code interface information reconstructed by the division and coupling means
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置 The modeling device according to claim 13, wherein
The model interface information adding means is information describing a function using the model interface information or information describing a variable access method, and generates mounting link information for specifying the binary code. Modeling equipment
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ソースコードの分割・結合を含む再構築をおこなう分割結合手段と、
前記分割結合手段によって再構築したソースコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置 A model editor that creates and edits model information using a model description language that describes the structure or behavior of software modules;
In a modeling apparatus having a model compiler that converts the model information generated by the model editor into source code,
Split / join means for restructuring including source code split / join,
A modeling apparatus comprising: model interface information adding means for generating model interface information described in a model description language which is interface information of the source code reconstructed by the division coupling means
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置 The modeling device according to claim 15, wherein
The model interface information adding means is information describing a function using the model interface information or information describing a variable access method, and generates mounting link information for specifying the binary code. Modeling equipment
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008212369A JP2010049439A (en) | 2008-08-21 | 2008-08-21 | System construction method using software model and modeling device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008212369A JP2010049439A (en) | 2008-08-21 | 2008-08-21 | System construction method using software model and modeling device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010049439A true JP2010049439A (en) | 2010-03-04 |
Family
ID=42066479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008212369A Pending JP2010049439A (en) | 2008-08-21 | 2008-08-21 | System construction method using software model and modeling device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010049439A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270137A (en) * | 2011-08-10 | 2011-12-07 | 清华大学 | Method for acquiring ADL (architecture description language) and modeling tool |
KR20130132674A (en) * | 2012-05-23 | 2013-12-05 | 김현수 | Automatic mapping method between instruction set architectures using abstraction of instructions |
CN103761357A (en) * | 2013-12-24 | 2014-04-30 | 西安工业大学 | Method for making feature modeling system on the basis of extensive markup language (XML) in unigraphics (UG) environment |
JP2014222482A (en) * | 2013-05-14 | 2014-11-27 | 富士電機株式会社 | Object-oriented program generation device, object-oriented program generation method, and program for generating object-oriented program |
-
2008
- 2008-08-21 JP JP2008212369A patent/JP2010049439A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270137A (en) * | 2011-08-10 | 2011-12-07 | 清华大学 | Method for acquiring ADL (architecture description language) and modeling tool |
KR20130132674A (en) * | 2012-05-23 | 2013-12-05 | 김현수 | Automatic mapping method between instruction set architectures using abstraction of instructions |
KR101940265B1 (en) | 2012-05-23 | 2019-01-18 | 충남대학교산학협력단 | Automatic Mapping Method between Instruction Set Architectures |
JP2014222482A (en) * | 2013-05-14 | 2014-11-27 | 富士電機株式会社 | Object-oriented program generation device, object-oriented program generation method, and program for generating object-oriented program |
CN103761357A (en) * | 2013-12-24 | 2014-04-30 | 西安工业大学 | Method for making feature modeling system on the basis of extensive markup language (XML) in unigraphics (UG) environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006526209A (en) | Software development method and development system using metadata extended under component-based environment | |
US8191042B2 (en) | Continuation based declarative definition and composition | |
Alonso et al. | V3cmm: A 3-view component meta-model for model-driven robotic software development | |
US8042091B2 (en) | Automatic composition of model transformations | |
Voelter et al. | mbeddr: Instantiating a language workbench in the embedded software domain | |
CN106648662B (en) | Report generation device and method based on project cost calculation description language BCL | |
JP2009238229A (en) | Software development method using metadata expanded under component base environment and its development system | |
AU2010212391A1 (en) | Integration environment generator | |
Benduhn et al. | Migration from annotation-based to composition-based product lines: towards a tool-driven process | |
Karsai et al. | Model-driven architecture for embedded software: A synopsis and an example | |
Sarjoughian et al. | Behavioral DEVS metamodeling | |
JP2009181446A (en) | Program generating device and block diagram generating apparatus | |
JP2010049439A (en) | System construction method using software model and modeling device | |
Edwards et al. | Automated analysis and code generation for domain-specific models | |
WO2009127476A2 (en) | A method and a system for transforming an object model | |
JP2011515755A (en) | Development method and apparatus for reserved component container base software | |
CN101882066B (en) | Realization method for creating concrete class | |
Folli et al. | Refactoring of UML models using AGG | |
Kapova et al. | Domain-specific templates for refinement transformations | |
Štěpán | Design pattern solutions as explicit entities in component-based software development | |
JP2012194845A (en) | Wrapper program and integrated circuit device | |
Strittmatter et al. | Supplementary material for the evaluation of the layered reference architecture for metamodels to tailor quality modeling and analysis | |
Feldmann et al. | Improving task-driven software development approaches for creating service-based interactive applications by using annotated web services | |
JP2011034419A (en) | Modeling apparatus using model, and system construction method for software system | |
Chen et al. | Navigation Flow Modeling as a Basis for the Automatic Generation of Android APPs. |