(57)【特許請求の範囲】
【請求項１】
コンピュータによりＸＭＬデータを処理するためのプログラム生成を行うプログラム生成装置であって、
ユーザに複数のＸＭＬ処理方式を提示するとともに、ユーザにより選択されたＸＭＬ処理方式を入力する処理方式選択部と、
ＸＭＬ処理方式の一覧と、それらＸＭＬ処理方式でＸＭＬデータを処理するプログラムを生成するために利用可能なプログラムコンポーネント一覧と、それらプログラムコンポーネントそれぞれの接続順又はあるプログラムコンポーネントについての省略の可否に関する連携制約情報と、各プログラムコンポーネントのソースコードとを格納するコンポーネント格納部と、
前記処理方式選択部により入力されたＸＭＬ処理方式に基づいて、前記コンポーネント格納部から前記複数のプログラムコンポーネントと、連携制約情報を取得するコンポーネント提供部と、
前記コンポーネント提供部により得られた前記複数のプログラムコンポーネントをユーザに提示し、ユーザにより選択された前記プログラムを生成する複数のプログラムコンポーネントにおいてユーザにより提示された処理フローを制御情報として入力する制御情報入力部と、
前記制御情報入力部により入力された前記制御情報について、前記コンポーネント提供部により取得された連携制約情報を満たすか否かについて判断する判断部と、
前記判断部により連携制約情報を満たすと判断された場合に、前記制御情報入力部で入力された制御情報に基づいて、該制御情報を構成するプログラムコンポーネントのソースコードを組み合わせてプログラムを生成するプログラム生成部と
を備えるプログラム生成装置。
【請求項２】
請求項１に記載のプログラム生成装置において、
前記処理方式選択部は、前記ＸＭＬ処理方式として、ユーザにより選択されたＸＭＬデータを処理するプログラムの処理内容及びユーザにより選択されたＸＭＬデータの処理形式を入力し、
前記コンポーネント提供部は、前記複数のプログラムコンポーネントとして、前記プログラムの処理内容において利用可能なプログラムコンポーネントと、前記ＸＭＬデータの処理形式において利用可能なプログラムコンポーネントとにおける共通なプログラムコンポーネントを取得することを特徴とするプログラム生成装置。
【請求項３】
請求項１又は請求項２に記載のプログラム生成装置において、
さらに、前記コンポーネント提供部は、前記プログラムの処理内容において利用可能なプログラムコンポーネントの連携制約情報と、前記ＸＭＬデータの処理形式において利用可能なプログラムコンポーネントの連携制約情報とをマージして取得することを特徴とするプログラム生成装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載のプログラム生成装置において、
さらに、生成されたプログラムに対しソースコードを追加して該プログラムを変更するためのプログラム変更入力部を備えるプログラム生成装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載のプログラム生成装置において、
プログラムコンポーネントに関する利用ガイドラインをユーザに表示するガイドライン表示画面を備えることを特徴とするプログラム生成装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載のプログラム生成装置において、
前記処理方式選択部により表示される処理方式を追加或いは削除或いは編集するための処理方式登録部を備えていることを特徴とするプログラム生成装置。
【請求項７】
コンピュータによりＸＭＬデータを処理するためのプログラム生成を行うプログラム生成方法であって、
予め、ＸＭＬ処理方式の一覧と、それらＸＭＬ処理方式でＸＭＬデータを処理するプログラムを生成するために利用可能なプログラムコンポーネント一覧と、それらプログラムコンポーネントそれぞれの接続順又はあるプログラムコンポーネントについての省略の可否に関する連携制約情報と、各プログラムコンポーネントのソースコードとをコンポーネント格納部に格納しておき、
ユーザに複数のＸＭＬ処理方式を提示し、ユーザにより選択されたＸＭＬ処理方式を入力する処理方式選択ステップと、
前記処理方式選択ステップにより入力されたＸＭＬ処理方式に基づいて、前記コンポーネント格納部から前記複数のプログラムコンポーネントと、連携制約情報を取得するコンポーネント提供ステップと、
前記コンポーネント提供ステップにより得られた前記複数のプログラムコンポーネントをユーザに提示し、ユーザにより選択された前記プログラムを生成する複数のプログラムコンポーネントにおいてユーザにより提示された処理フローを制御情報として入力する制御情報入力ステップと、
前記制御情報入力ステップにより入力された前記制御情報について、前記コンポーネント提供ステップにより取得された連携制約情報を満たすか否かについて判断する判断ステップと、
前記判断ステップにより連携制約情報を満たすと判断された場合に、前記制御情報入力ステップで入力された制御情報に基づいて該制御情報を構成するプログラムコンポーネントのソースコードを組み合わせてプログラムを生成するプログラム生成ステップと
を備えるプログラム生成方法。
【請求項８】
ＸＭＬデータを処理するためのプログラムの生成を行うプログラム生成方法をコンピュータに実行させるプログラム生成プログラムであって、
予め、ＸＭＬ処理方式の一覧と、それらＸＭＬ処理方式でＸＭＬデータを処理するプログラムを生成するために利用可能なプログラムコンポーネント一覧と、それらプログラムコンポーネントそれぞれの接続順又はあるプログラムコンポーネントについての省略の可否に関する連携制約情報と、各プログラムコンポーネントのソースコードとをコンポーネント格納部に格納しておき、
ユーザに複数のＸＭＬ処理方式を提示し、ユーザにより選択されたＸＭＬ処理方式を入力する処理方式選択ステップと、
前記処理方式選択ステップにより入力されたＸＭＬ処理方式に基づいて、前記コンポーネント格納部から前記複数のプログラムコンポーネントと、連携制約情報を取得するコンポーネント提供ステップと、
前記コンポーネント提供ステップにより得られた前記複数のプログラムコンポーネントをユーザに提示し、ユーザにより選択された前記プログラムを生成する複数のプログラムコンポーネントにおいてユーザにより提示された処理フローを制御情報として入力する制御情報入力ステップと、
前記制御情報入力ステップにより入力された前記制御情報について、前記コンポーネント提供ステップにより取得された連携制約情報を満たすか否かについて判断する判断ステップと、
前記判断ステップにより連携制約情報を満たすと判断された場合に、前記制御情報入力ステップで入力された制御情報に基づいて該制御情報を構成するプログラムコンポーネントのソースコードを組み合わせてプログラムを生成するプログラム生成ステップと
をコンピュータに実行させるプログラム生成プログラム。
【請求項９】
請求項８に記載のプログラム生成プログラムにおいて、
前記処理方式選択ステップは、前記ＸＭＬ処理方式として、ユーザにより選択されたＸＭＬデータを処理するプログラムの処理内容及びユーザにより選択されたＸＭＬデータの処理形式を入力し、
前記コンポーネント提供ステップは、前記複数のプログラムコンポーネントとして、前記プログラムの処理内容において利用可能なプログラムコンポーネントと、前記ＸＭＬデータの処理形式において利用可能なプログラムコンポーネントとにおける共通なプログラムコンポーネントを取得することを特徴とするプログラム生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムを生成するための構成部品を所望の形態に組み合わせることによりプログラムを生成するプログラム生成装置、及びプログラム生成方法、並びにプログラム生成用プログラムに関するものである。
【０００２】
【従来の技術】
プログラム開発の分野において、プログラムを部品（コンポーネント）化し、それらを組み合わせることで、プログラム開発を効率化する技術は数多く存在する。そのような技術に基づいた開発環境として、コンポーネント自身の開発を支援する開発環境、或いはコンポーネントを組み合わせてプログラムを構築する開発環境がある。後者の開発環境としては、開発者が指定したコンポーネントを開発者の指示通りに接続してプログラムを生成する手法が一般的である。
【０００３】
また、プログラム構築時に利用すべきコンポーネントを自動的に選択することができる技術が、特開平５−２３３２３９号公報にて開示されている。この手法によれば、与えられたコンポーネント間の接続関係を取捨選択することで、プログラムが自動的に構築されるため、知識の少ない開発者でも容易且つ迅速にプログラムを生成することができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述のプログラム開発環境には、どのコンポーネントをどのように接続すれば、仕様を満たすプログラムを適切な構成で構築できるかという部分までサポートするものはない。また、特開平５−２３３２３９号公報が開示する開発環境であっても、予め各コンポーネントの接続関係が与えられてしまうため、構築できるプログラムのバリエーションが少なくなる。従って、プログラムの機能の整合性がとれない、性能が劣化する等の問題が発生することもある。
【０００５】
本発明は、上述した事情に鑑みて成されたものであり、プログラムを構築する際に、処理内容や性能要件に基づいてコンポーネントの選択や連携制約を判断することにより、機能の不整合や性能劣化を防ぎ、プログラムの開発効率を向上させることができるプログラム生成装置、及びプログラム生成方法、並びにプログラム生成用プログラムを提供することを目的としている。
【０００６】
【課題を解決するための手段】
上述した課題を解決するため、本発明は、所望の処理方式を入力する第１入力手段と、前記第１入力手段により入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第１取得手段と、前記第１取得手段により取得された情報の全て或いは一部を表示する表示手段と、前記表示手段により表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第２入力手段と、前記第２入力手段による入力結果に基づいて、前記所定のプログラムを生成する第１生成手段とを備えてなるプログラム生成装置を提供する。
【０００７】
このような構成によれば、プログラムの開発効率を向上させることができるとともに、部品の構成や組み合わせの形態を詳細に定義できるため、仕様を満たした質の高いプログラムを生成することが可能となる。なお、本発明の実施の形態において、第１入力手段はＸＭＬ処理方式選択部により構成され、第１取得手段はコンポーネント提供部により構成され、表示手段は制御情報定義部のコンポーネント表示部により構成され、第２入力手段は制御情報定義部の制御情報入力部により構成され、第１生成手段は制御プログラム生成部により構成される。また、所定の記憶部はＸＭＬ処理方式格納部とコンポーネント格納部により構成される。
【０００８】
また、本発明に係るプログラム生成装置において、前記第１入力手段による入力処理は、予め設けられた処理方式の一覧から所望の処理方式を選択することにより行われる。
【０００９】
このような構成によれば、プログラム開発者は処理方式の入力を迅速且つ容易に行うことができる。
【００１０】
また、本発明に係るプログラム生成装置において、更に、前記処理方式の一覧は複数設けられ、前記第１入力手段による入力処理は、該複数の一覧毎に処理方式を選択することにより行われ、前記第１取得手段は、前記第１入力処理により選択された複数の処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を絞り込んで取得することができる。
【００１１】
このような構成によれば、異なる分類でタイプ分けした処理方式をマージすることにより、利用可能な構成部品に関する情報を絞り込むことが可能となるため、第２入力手段での入力処理が容易となり、また、処理中に取り扱うデータ量を軽減することができる。
【００１２】
また、本発明に係るプログラム生成装置において、前記第１取得手段により取得される前記所定のプログラムを生成するために利用可能な構成部品に関する情報には、少なくとも、構成部品の一覧と、構成部品の連携制約と、構成部品のプログラムのいずれかが含まれている。
【００１３】
このような構成によれば、プログラム生成に必要な情報を得ることができる。
【００１４】
また、前記表示手段は、前記第１取得手段により取得された情報のうち、少なくとも構成部品の一覧を表示することができる。また、前記第２入力手段による入力処理は、前記表示手段により表示された構成部品の一覧の中から、所望の構成部品を選択入力し、更に、それら選択した構成部品の連携関係を指示入力することにより行われることができる。
【００１５】
このような構成によれば、構成部品の一覧を表示することにより、開発者は容易に必要な構成部品を選択して、それらの組み合わせの形態を指示することができるため、プログラム仕様に対応したプログラムを容易に生成することができる。
【００１６】
更に、前記第２入力手段は、前記構成部品に関する情報の入力に当たり、前記第１取得手段により取得された構成部品の連携制約に基づいて、入力された構成部品に関する情報の内容の可否を判断する第１判断手段を備え、該第１判断手段の判断結果に基づいて、所定の入力処理を行うことができる。
【００１７】
このような構成によれば、第２入力手段で入力される情報を、予め定められた部品間の連携制約を満たすようにさせることができるため、整合性のある、品質の高いプログラムを生成することができる。なお、後述する実施の形態において、第１判断手段は制御情報定義部の入力情報判断部により構成される。
【００１８】
また、前記第１生成手段は、前記第２入力手段により選択入力された構成部品のプログラムを前記所定の記憶部から取得する第２取得手段を備え、前記第２入力手段により指示入力された構成部品の連携関係に基づいて、前記第２取得手段により取得された構成部品のプログラムを連携させて前記所定のプログラムを生成することもできる。
【００１９】
このような構成によれば、プログラムを、処理方式選択時ではなく、プログラム生成時に取得することができ、装置内で取り扱うデータ量を削減し、装置の負荷を軽減することができる。なお、後述する実施の形態において、第２取得手段は制御プログラム生成部のデータ取得部により構成される。
【００２０】
また、本発明に係るプログラム生成装置は、更に、生成されたプログラムを変更するための情報を入力する第３入力手段と、前記第３入力手段により入力された情報に基づいて、前記所定のプログラムを再度生成する第２生成手段とを備えてなる。
【００２１】
このような構成によれば、プログラムを自動生成した後に、必要なソースコードの追加等の補正が可能となるため、質の高いプログラムの生成が可能となる。なお、本発明の実施の形態において、第３入力手段は、制御情報定義部の制御情報入力部と制御プログラム生成部のプログラム変更入力部により構成される。また、第２生成手段は制御プログラム生成部のプログラム生成部により構成される。
【００２２】
また、前記表示手段は、少なくとも前記所定のプログラムを生成するために利用可能な構成部品の一覧を表示することができ、前記第３入力手段による入力処理は、前記第２入力手段により入力された情報に対し、更に、前記表示手段により表示された構成部品の一覧から構成部品を追加、或いは既に選択されている構成部品の削除を行うことにより、前記生成されたプログラムの構成部品の変更を入力し、更に、変更された構成部品の連携関係を指示入力することにより行われることもできる。
【００２３】
このような構成によれば、生成されたプログラムを変更する際、利用可能な構成部品の構成を変更するだけで生成すべきプログラムを変更することができるため、開発者は容易にプログラムを変更することができる。
【００２４】
また、前記第３入力手段は、前記生成されたプログラムを変更するための情報の入力に当たり、前記第１取得手段により取得された構成部品の連携制約に基づいて、入力された変更情報の内容の可否を判断する第２判断手段を備え、該第２判断手段の判断結果に基づいて、所定の入力処理を行うこともできる。
【００２５】
このような構成によれば、生成済みプログラムを変更する際も、予め定められた部品間の連携制約を満たすようにさせることができるため、整合性のある、品質の高いプログラムを生成することができる。なお、後述する実施の形態において、第２判断手段は制御情報定義部の入力情報判断部により構成される。
【００２６】
また、前記第３入力手段による入力処理は、前記生成されたプログラムに対し、ソースコードを直接編集することにより行われることもできる。
【００２７】
このような構成によれば、より細やかな変更が可能となるため、仕様変更等に対し柔軟に対応してプログラム生成することができる。
【００２８】
また、前記第３入力手段による入力処理が、前記表示手段により表示された構成部品の一覧から構成部品を追加、或いは既に選択されている構成部品の削除を行うことにより、前記生成されたプログラムの構成部品の変更を入力し、更に、変更された構成部品の連携関係を指示入力することにより行われる入力処理と、前記生成されたプログラムに対し、ソースコードを直接編集することにより行われる入力処理の双方を行う場合、前記第２生成手段は、それら入力処理の入力内容をマージして前記所定のプログラムを再度生成することもできる。
【００２９】
このような構成によれば、生成されたプログラムに対し、異なる複数の手法で変更した場合であっても、該変更内容をマージしてプログラム生成に反映させることができるため、開発効率が向上する。
【００３０】
また、本発明に係るプログラム生成装置は、前記第１入力手段或いは第２入力手段或いは第３入力手段における入力処理のためのガイドラインを表示するガイドライン表示手段を備えてなる。
【００３１】
このような構成によれば、開発者はガイドラインを参照して、容易に入力処理を行うことが可能となるため、知識の少ない開発者でも容易且つ迅速にプログラムを生成することができる。なお、本発明の実施の形態において、ガイドライン表示部は、ＸＭＬ処理方式選択部の処理方式選択ガイドライン表示部と制御情報定義部の利用ガイドライン表示部により構成される。
【００３２】
また、本発明に係るプログラム生成装置は、更に、前記処理方式の一覧に対し、処理方式を追加或いは削除或いは編集するための処理方式登録手段を備えてなる。
【００３３】
このような構成によれば、処理方式の一覧を容易に変更することができる。なお、本発明の実施の形態において、処理方式登録手段は、ＸＭＬ処理方式登録部により構成される。
【００３４】
また、前記プログラム生成装置は、更に、前記所定の記憶部に対し、前記所定のプログラムを生成するために利用可能な構成部品に関する情報を追加或いは削除或いは編集するための構成部品登録手段を備えてなることもできる。
【００３５】
このような構成によれば、プログラムを構成する部品を容易に変更することができる。なお、後述する実施の形態において、構成部品登録手段は、ＸＭＬ処理方式登録部及びコンポーネント登録部により構成される。
【００３６】
また、本発明に係るプログラム生成装置において、前記所定のプログラムは、ＸＭＬ（eXtensible Markup Language）データを処理するプログラムである。
【００３７】
このような構成によれば、ＸＭＬデータの場合、データ構造を後から容易に変換できることから、データ構造を予めアプリケーションに対応させて固定しておく必要がなくなるため、本発明をより有効に利用することができる。
【００３８】
また、本発明は、所望の処理方式を入力する第１ステップと、前記第１ステップにより入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第２ステップと、前記第２ステップにより取得された情報の全て或いは一部を表示する第３ステップと、前記第３ステップにより表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第４ステップと、前記第４ステップによる入力結果に基づいて、前記所定のプログラムを生成する第５ステップとを備えてなるプログラム生成方法を提供する。
【００３９】
また、本発明は、コンピュータにより読取り可能な媒体に記憶され、所定のプログラムを生成する処理をコンピュータに実行させるプログラム生成用プログラムであって、所望の処理方式を入力する第１ステップと、前記第１ステップにより入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第２ステップと、前記第２ステップにより取得された情報の全て或いは一部を表示する第３ステップと、前記第３ステップにより表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第４ステップと、前記第４ステップによる入力結果に基づいて、前記所定のプログラムを生成する第５ステップとをコンピュータに実行させるプログラム生成用プログラムを提供する。
【００４０】
なお、本発明において、上記コンピュータにより読取り可能な媒体は、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００４１】
【発明の実施の形態】
以下、図を用いて本発明の実施の形態を詳述する。なお、以下の全ての実施の形態において生成されるプログラムは、ＸＭＬデータを処理するためのプログラムであるとする。
【００４２】
実施の形態１．
図１は、本実施の形態におけるプログラム生成装置の機能構成を示したブロック図である。図示されるように、プログラム生成装置１０は、ＸＭＬ処理方式選択部１１と、コンポーネント提供部１２と、制御情報定義部１３と、制御プログラム生成部１４と、ＸＭＬ処理方式格納部１５と、コンポーネント格納部１６と、生成プログラム格納部１７とから構成されている。
【００４３】
ＸＭＬ処理方式格納部１５は、ＸＭＬ処理方式の一覧と、それら処理方式で利用可能なコンポーネントの一覧と、それらコンポーネントの連携制約情報とが格納されている。また、コンポーネント格納部１６には、各コンポーネントのソースコードが格納されている。また、生成プログラム格納部１７には、生成されたプログラムが格納される。なお、連携制約とは、プログラムを構成する部品の組み合わせや接続順等の制約を意味する。
【００４４】
ＸＭＬ処理方式選択部１１は、プログラム開発者が生成すべきプログラムの処理内容（処理方式）を選択指示するための入力画面を表示し、該入力画面から開発者により選択指示された処理方式の情報をコンポーネント提供部１２に出力する。コンポーネント提供部１２は、ＸＭＬ処理方式選択部１１からの処理方式の情報に基づいて、ＸＭＬ処理方式格納部１５及びコンポーネント格納部１６から必要なデータを取得して、制御情報定義部１３に出力する。
【００４５】
更に、制御情報定義部１３は、利用可能なコンポーネントを開発者に提示するとともに、開発者がプログラムを構築するためのコンポーネントを選択し、コンポーネント間の連携関係を入力するためのエディタを提供する。また、選択されたコンポーネントとその連携関係の情報を、制御プログラム生成部１４に出力する。また、制御プログラム生成部１４は、制御情報定義部１３から得た情報に基づいてプログラムを生成し、生成プログラム格納部１７に格納する。
【００４６】
以上の構成をふまえ、プログラム生成のための処理の詳細を説明する。
まず、開発者は、所定の入力画面から生成すべきプログラムの処理内容を選択指示する。所定の入力画面は、ＸＭＬ処理方式選択部１１により与えられる。図２は、ＸＭＬ処理方式選択部１１の機能構成を示したブロック図である。ＸＭＬ処理方式選択部１１は、選択項目表示部１１１と処理方式入力部１１２とから構成され、選択項目表示部１１１は上記所定の入力画面を表示し、処理方式入力部１１２は開発者による入力を受け付け、コンポーネント提供部１２に入力情報を出力する。
【００４７】
図３は、選択項目表示部１１１により表示される入力画面の一例である。図示されるように、ＸＭＬ処理方式の一覧が表示され、開発者は所望の処理方式を容易に選択できる。なお、表示すべき処理方式の一覧は、ＸＭＬ処理方式格納部１５よりコンポーネント提供部１２を介して取得して表示する。また、ＸＭＬ処理方式の分類の軸は様々なものが考えられるが、本実施の形態ではＸＭＬを処理するプログラムの処理内容をタイプ分けした分類としている。ここで、開発者が「ＸＭＬ伝票申請型」を選択すると、処理方式入力部１１２は、該選択された情報をコンポーネント提供部１２に出力する。
【００４８】
コンポーネント提供部１２は、ＸＭＬ処理方式格納部１５から、選択された処理方式（この場合はＸＭＬ伝票申請型処理方式）を生成するための利用可能なコンポーネントと、各コンポーネントの接続順や省略の可否等の連携制約情報を取得する。図４は取得された情報の一例である。同時にコンポーネント格納部１６から、利用可能な各コンポーネントのソースコードを取得する。そして取得したデータを、制御情報定義部１３に出力する。
【００４９】
制御情報定義部１３では、コンポーネント提供部１２から得た情報を基に、開発者が利用するコンポーネント及びそれらコンポーネントの連携情報（以下、制御情報と呼称する）を入力することができる。図５は、制御情報定義部１３の機能構成を示したブロック図である。図示されるように、コンポーネント提供部１２からデータを取得するデータ取得部１３１と、利用可能なコンポーネントを表示するコンポーネント表示部１３２と、制御情報を入力するための制御情報入力部１３３とから構成される。また制御情報入力部１３３は、入力された制御情報が制約条件を満たしているかをチェックする入力情報判断部１３４を備える。
【００５０】
まず、データ取得部１３１がコンポーネント提供部１２からデータを取得する。本実施の形態の場合、データ取得部１３１が取得するデータは、コンポーネント提供部１２が取得した情報全て（図４の情報及びコンポーネントのソースコード）とする。コンポーネント表示部１３２は、開発者が制御情報を入力するための入力画面に利用可能コンポーネントを表示させる。図６は、該入力画面の表示例である。本実施の形態の場合、利用可能コンポーネントとして、コンポーネントパレット３０のエリアに図４の利用コンポーネント、Ａ１、Ａ２、Ａ３、Ａ４が表示される。制御情報入力部１３３はエディタ４０に対する開発者の入力を受け付ける。開発者は、コンポーネントパレット３０から、生成に必要なコンポーネントをマウスにてドラッグ＆ドロップし、エディタ４０上に配置する。
【００５１】
図７は、エディタ４０に配置された制御情報の一例である。図示されるように、処理フローとしてＡ２「ＸＭＬデータチェック」とＡ３「番号採番」とＡ４「ＲＤＢ格納」が順に接続され、該処理フローに対しＸＭＬデータの入出力フローが付加されている。開発者の入力が終了すると、入力情報判断部１３４は、エディタ４０に配置された制御情報について、コンポーネント提供部１２から取得した連携制約情報を参照し、該制約を満たしているか否かをチェックする。本実施の形態の場合、図７の制御情報は、図４の「（Ａ１）−（Ａ２）−Ａ３−Ａ４、もしくはＡ３−（Ａ１）−（Ａ２）−Ａ４の順序で処理」という連携制約を満たしているため、入力内容は問題ないと判断される。
【００５２】
図８に、エディタ４０に配置された制御情報の別の例を示す。この場合は、連携制約において省略不可とされるコンポーネントＡ３が省略されているため、入力情報判断部１３４は連携制約を満たさないと判断し、入力内容を受け付けず、エラーメッセージ等を出力する等して（図示せず）開発者に対し再入力を促す。
【００５３】
入力された制御情報に問題が無い場合、制御情報入力部１３３は、該定義された制御情報と、コンポーネント提供部１２から取得した該制御情報内に含まれるコンポーネントのソースコードを制御プログラム生成部１４に出力する。図９は、制御プログラム生成部１４の機能構成を示したブロック図である。図示されるように、制御情報定義部１３からデータを取得するデータ取得部１４１と、取得したデータからプログラムを生成するプログラム生成部１４２とから構成される。プログラム生成部１４２は、制御情報定義部１３にて定義された制御情報に従って各コンポーネントのソースコードを組み合わせ、プログラムを生成する。図１０は生成されたプログラムの一例である。図示されるように、生成されたプログラムは、図７の制御情報の通りコンポーネントＡ２、Ａ３、Ａ４で構成されている。プログラム生成部１４２は、生成したプログラムを生成プログラム格納部１７に格納する。
【００５４】
なお、ＸＭＬ処理方式選択部１１にて選択すべきＸＭＬ処理方式は、本実施の形態ではＸＭＬデータを処理するプログラムの処理内容をタイプ分けしたものとしたが、プログラム中で取り扱うＸＭＬデータの形式によるタイプ分けであってもよく、その形式は限定されない。
【００５５】
また、制御情報の入力形態として、エディタ４０上にコンポーネントをドラッグ＆ドロップすることにより配置して定義したが、そうした手法に限定されず、様々な形態で定義可能であることは言うまでもない。
【００５６】
実施の形態２．
本実施の形態では、ＸＭＬ処理方式を選択する場合に、選択のためのガイドラインを表示することにより、開発者の選択処理をサポートする機能を備えたプログラム生成装置について説明する。なお、プログラム生成装置の全体構成図は図１と同様とする。
【００５７】
図１１は、本実施の形態におけるＸＭＬ処理方式選択部１１ａの機能構成を示したブロック図である。図示されるように、ＸＭＬ処理方式選択部１１ａは、選択項目表示部１１１ａと処理方式入力部１１２ａと処理方式選択ガイドライン表示部１１３とから構成される。選択項目表示部１１１ａと処理方式入力部１１２ａの機能は、実施の形態１と同様であるため説明を省略する。処理方式選択ガイドライン表示部１１３は、入力画面上に、ガイドライン表示用の画面を別に設け、該画面に各選択項目（処理方式）の概要や長所、短所などを表示させる。表示のためのデータは、コンポーネント提供部１２を介してＸＭＬ処理方式格納部１５から取得することとする。図１２は、ガイドライン表示画面の一例である。本画面を参照することにより開発者は処理方式の内容を具体的に把握することができ、選択処理を容易に行うことができる。
【００５８】
実施の形態３．
本実施の形態では、制御情報を入力する場合に、コンポーネントの利用ガイドラインを表示することにより、開発者の制御情報入力処理をサポートする機能を備えたプログラム生成装置について説明する。なお、プログラム生成装置の全体構成図は図１と同様とする。
【００５９】
図１３は、本実施の形態における制御情報定義部１３ａの機能構成を示したブロック図である。図示されるように、制御情報定義部１３ａは、データ取得部１３１ａと、コンポーネント表示部１３２ａと、制御情報入力部１３３ａと、入力情報判断部１３４ａと、利用ガイドライン表示部１３５とから構成される。データ取得部１３１ａとコンポーネント表示部１３２ａと制御情報入力部１３３ａと入力情報判断部１３４ａの機能は、実施の形態１と同様であるため説明を省略する。利用ガイドライン表示部１３５は、制御情報入力用の画面上に、ガイドライン表示用の画面を別に設け、該画面に利用可能な各コンポーネントの概要や長所、短所などを表示させる。表示のためのデータは、コンポーネント提供部１２からデータ取得部１３１ａにより取得されるデータから抽出することとする。図１４は、ガイドライン表示画面の一例である。本画面を参照することにより開発者はコンポーネントの内容を具体的に把握することができ、定義処理を容易に行うことができる。
【００６０】
実施の形態４．
本実施の形態では、ＸＭＬ処理方式を選択する場合に、表示される選択項目（処理方式）の一覧を複数設け、選択された複数の選択項目の組み合わせにより利用可能なコンポーネントを絞り込み、連携制約をマージすることができるプログラム生成装置について説明する。なお、プログラム生成装置の全体構成図及びＸＭＬ処理方式選択部の構成図は図１及び図２と同様とする。
【００６１】
図１５（ａ）（ｂ）は、ＸＭＬ処理方式選択部１１の選択項目表示部１１１により提供される入力画面の一例である。まず、ＸＭＬデータを処理するプログラムの処理内容でタイプ分けされた処理方式選択画面が表示される（図１５（ａ））。ここで、開発者が「ＸＭＬ伝票申請型」を選択したとする。続いて、取り扱うＸＭＬデータの処理形式によりタイプ分けされた処理方式選択画面が表示される（図１５（ｂ））。ここでは「ＤＯＭ型」を選択したとする。ＸＭＬ処理方式選択部１１の処理方式入力部１１２は、選択結果をそのままコンポーネント提供部１２に出力する。
【００６２】
図１６（ａ）（ｂ）は、ＸＭＬ処理方式格納部１５に格納された各処理形式に対応するコンポーネントの一覧と連携制約情報の一例である。コンポーネント提供部１２は、まず、図１６（ａ）に示される処理方式「ＸＭＬ伝票申請型処理方式」に対応するコンポーネント一覧と連携制約情報を取得する。続いて、図１６（ｂ）に示される処理方式「ＤＯＭ型処理方式」に対応するコンポーネント一覧と連携制約情報を取得する。コンポーネント提供部１２は、取得されたデータに基づいて利用可能なコンポーネントを絞り込み、連携制約をマージする。具体的には、双方のコンポーネント一覧に共通する利用可能なコンポーネント（すなわちコンポーネントの共通部分）を抽出し、抽出されたコンポーネントに関して双方の連携制約情報から採用し得る連携制約情報をマージして取り出す。こうして得られたコンポーネントの一覧と、連携制約情報が制御情報定義部１３に出力される。図１７は、図１６（ａ）と図１６（ｂ）をマージして得られたデータの一例である。
【００６３】
実施の形態５．
本実施の形態では、上述した実施の形態において生成されたプログラムに対し仕様を満たすよう編集したり、仕様が変更になった場合等に、生成されたプログラムを構成するコンポーネントを変更したりすることができるプログラム生成装置について説明する。なお、プログラム生成装置の全体構成図は図１と同様とする。
【００６４】
図１８は、本実施の形態における制御プログラム生成部の機能構成を示したブロック図である。図示されるように、制御プログラム生成部１４ａは、データ取得部１４１ａと、プログラム生成部１４２ａと、プログラム変更入力部１４３とから構成される。データ取得部１４１ａとプログラム生成部１４２ａは、実施の形態１と同様の機能を有するので説明を省略する。
【００６５】
プログラム変更入力部１４３は、プログラム生成部１４２ａで生成されたプログラム、或いは生成プログラム格納部１７に格納されたプログラムに対してソースコードを追加して変更するための機能を有する。具体的には、プログラム変更入力部１４３が編集用エディタ画面（図示せず）に生成済みプログラムのソースコードを表示し、開発者が表示されたソースコードを追加することにより、プログラムの変更を行う。図１９は、図１０に示された生成プログラムに対し、開発者が新規にソースコードを追加（図ではＢで示された部分）した状態を示している。編集された後は、プログラム生成部１４２ａにより生成プログラム格納部１７に格納される。
【００６６】
その後、仕様変更があり、生成された図１９のプログラムに対し、ＸＭＬ署名検証の機能を追加する必要が発生したとする。この場合、開発者は所定の操作にて、制御情報定義部１３を起動させ、生成プログラム格納部１７から該当の生成済みプログラムを読み込み（図示せず）、図７の入力画面を表示させる。エディタ４０には既にコンポーネントが連携された状態で表示されている。なお、この時点で、制御情報定義部１３はコンポーネントパレット３０に表示されたコンポーネントのソースコードを、コンポーネント提供部１２を介してコンポーネント格納部１６から取得する。ここで、開発者はコンポーネントパレット３０からＡ１の「ＸＭＬ署名検証」コンポーネントをドラッグして、エディタ４０にドロップする。図２０は、コンポーネントが追加された状態を示している。
【００６７】
なお、ここでも、新たに追加された制御情報が連携制約を満たしているか否かが制御情報入力部１３３の入力情報判断部１３４により判断される。入力された制御情報に問題が無い場合、制御情報入力部１３３は、該情報と、コンポーネント提供部１１から取得したコンポーネントのソースコードを制御プログラム生成部１４に出力する。
【００６８】
制御情報入力部１３は図２０で定義した制御情報を制御プログラム生成部１４に出力する。制御プログラム生成部１４のプログラム生成部１４２ａは取得したデータからプログラムを再生成し、生成プログラム格納部１７に格納する。図２１は、図２０の制御情報に基づいて生成されたプログラムのソースコードの一例である。図示されるように、図２０で定義したソースコード（図ではＡ１とそれに関連する関数Ａ１−ａ）が追加されている。
【００６９】
また、再生成されても、図１９にて開発者が直接追加したソースコードＢは消去されず、保護されている。本実施の形態では、ソースコード内で「//begin   code preservation」と「//end code preservation」ではさまれた部分を保護領域としており、この領域に追加されたソースコードであれば、再生成処理が行われても保護されることとしている。従って開発者が独自に追加したソースコードと、制御情報入力部１３で再定義した情報とをマージさせてプログラムを生成することができる。
【００７０】
実施の形態６．
本実施の形態では、ＸＭＬ処理方式格納部やコンポーネント格納部に対し、新規にデータを登録する機能を有するプログラム生成装置について説明する。図２２は、本実施の形態におけるプログラム生成装置の機能構成を示したブロック図である。図示されるように、プログラム生成装置２０は、ＸＭＬ処理方式選択部２１と、コンポーネント提供部２２と、制御情報定義部２３と、制御プログラム生成部２４と、ＸＭＬ処理方式格納部２５と、コンポーネント格納部２６と、生成プログラム格納部２７と、ＸＭＬ処理方式登録部２８と、コンポーネント登録部２９とから構成されている。ＸＭＬ処理方式登録部２８と、コンポーネント登録部２９以外の機能については、実施の形態１と同様の機能を有するため説明を省略する。
【００７１】
ＸＭＬ処理方式登録部２８は、登録のための所定の入力画面を提供し（図示せず）、オペレータは該画面からＸＭＬ処理方式格納部２５に新規に登録すべき処理方式に関する情報、すなわち、処理方式の名称、特徴、長所、短所、利用可能なコンポーネント一覧、コンポーネントの連携制約情報等を入力する。なお、利用可能なコンポーネントについては、コンポーネント格納部２６に格納されたコンポーネントとリンクがとれるようなＩＤ或いは名称を入力するものとする。
【００７２】
コンポーネント登録部２９は、登録のための所定の入力画面を提供し（図示せず）、オペレータは該画面に新規に登録すべきコンポーネントのＩＤ或いは名称を入力し、そのソースコードを所定の記憶媒体からコンポーネント格納部２６に記憶させる。
【００７３】
なお、ＸＭＬ処理方式登録部２８及びコンポーネント登録部２９は、新規追加処理の他、削除や変更等の処理も可能とする。
【００７４】
なお、上述した実施の形態では、構成部品のプログラムは処理方式選択時にコンポーネント提供部により取得され、制御情報定義部を介して制御プログラム生成部に出力されるようにしているが、コンポーネント提供部ではプログラムを取得せず、制御プログラム生成部のデータ取得部がプログラム生成時に直接取得するようにしてもよい。本手法は、図１及び図２２において、コンポーネント格納部から制御プログラム生成部へ伸びる矢印（点線）により示される。この場合、制御情報定義部で定義されたコンポーネント及びその連携関係に基づいて該当のプログラムのみを取得すれば良いため、取り扱うデータ量が軽減される。
【００７５】
以上、本発明の様々な実施の形態を説明したが、本発明は上述した実施の形態に限定されることはなく、本発明の要旨を逸脱しない範囲において適宜応用可能であることはもちろんである。
【００７６】
（付記１）  所望の処理方式を入力する第１入力手段と、
前記第１入力手段により入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第１取得手段と、
前記第１取得手段により取得された情報の全て或いは一部を表示する表示手段と、
前記表示手段により表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第２入力手段と、
前記第２入力手段による入力結果に基づいて、前記所定のプログラムを生成する第１生成手段とを備えてなるプログラム生成装置。
（付記２）  付記１に記載のプログラム生成装置において、
前記第１入力手段による入力処理は、予め設けられた処理方式の一覧から所望の処理方式を選択することにより行われるプログラム生成装置。
（付記３）  付記１又は付記２に記載のプログラム生成装置において、更に、
前記処理方式の一覧は複数設けられ、
前記第１入力手段による入力処理は、該複数の一覧毎に処理方式を選択することにより行われ、
前記第１取得手段は、前記第１入力処理により選択された複数の処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を絞り込んで取得することができるプログラム生成装置。
（付記４）  付記１乃至付記３のいずれかに記載のプログラム生成装置において、
前記第１取得手段により取得される前記所定のプログラムを生成するために利用可能な構成部品に関する情報には、少なくとも、構成部品の一覧と、構成部品の連携制約と、構成部品のプログラムのいずれかが含まれているプログラム生成装置。
（付記５）  付記４に記載のプログラム生成装置において、
前記表示手段は、前記第１取得手段により取得された情報のうち、少なくとも構成部品の一覧を表示することができるプログラム生成装置。
（付記６）  付記５に記載のプログラム生成装置において、
前記第２入力手段による入力処理は、前記表示手段により表示された構成部品の一覧の中から、所望の構成部品を選択入力し、更に、それら選択した構成部品の連携関係を指示入力することにより行われるプログラム生成装置。
（付記７）  付記４乃至付記６のいずれかに記載のプログラム生成装置において、更に、
前記第２入力手段は、前記構成部品に関する情報の入力に当たり、前記第１取得手段により取得された構成部品の連携制約に基づいて、入力された構成部品に関する情報の内容の可否を判断する第１判断手段を備え、
該第１判断手段の判断結果に基づいて、所定の入力処理を行うプログラム生成装置。
（付記８）  付記６又は付記７に記載のプログラム生成装置において、
前記第１生成手段は、前記第２入力手段により選択入力された構成部品のプログラムを前記所定の記憶部から取得する第２取得手段を備え、前記第２入力手段により指示入力された構成部品の連携関係に基づいて、前記第２取得手段により取得された構成部品のプログラムを連携させて前記所定のプログラムを生成するプログラム生成装置。
（付記９）  付記１乃至付記８のいずれかに記載のプログラム生成装置において、更に、
生成されたプログラムを変更するための情報を入力する第３入力手段と、
前記第３入力手段により入力された情報に基づいて、前記所定のプログラムを再度生成する第２生成手段と
を備えてなるプログラム生成装置。
（付記１０）  付記９に記載のプログラム生成装置において、
前記表示手段は、少なくとも前記所定のプログラムを生成するために利用可能な構成部品の一覧を表示することができ、
前記第３入力手段による入力処理は、前記第２入力手段により入力された情報に対し、更に、前記表示手段により表示された構成部品の一覧から構成部品を追加、或いは既に選択されている構成部品の削除を行うことにより、前記生成されたプログラムの構成部品の変更を入力し、更に、変更された構成部品の連携関係を指示入力することにより行われるプログラム生成装置。
（付記１１）  付記９又は付記１０に記載のプログラム生成装置において、
前記第３入力手段は、前記生成されたプログラムを変更するための情報の入力に当たり、前記第１取得手段により取得された構成部品の連携制約に基づいて、入力された変更情報の内容の可否を判断する第２判断手段を備え、
該第２判断手段の判断結果に基づいて、所定の入力処理を行うプログラム生成装置。
（付記１２）  付記９に記載のプログラム生成装置において、
前記第３入力手段による入力処理は、前記生成されたプログラムに対し、ソースコードを直接編集することにより行われるプログラム生成装置。
（付記１３）  付記９乃至付記１２のいずれかに記載のプログラム生成装置において、
前記第３入力手段による入力処理が、前記表示手段により表示された構成部品の一覧から構成部品を追加、或いは既に選択されている構成部品の削除を行うことにより、前記生成されたプログラムの構成部品の変更を入力し、更に、変更された構成部品の連携関係を指示入力することにより行われる入力処理と、前記生成されたプログラムに対し、ソースコードを直接編集することにより行われる入力処理の双方を行う場合、
前記第２生成手段は、それら入力処理の入力内容をマージして前記所定のプログラムを再度生成するプログラム生成装置。
（付記１４）  付記１乃至付記１３のいずれかに記載のプログラム生成装置において、
前記第１入力手段或いは第２入力手段或いは第３入力手段における入力処理のためのガイドラインを表示するガイドライン表示手段を備えてなるプログラム生成装置。
（付記１５）  付記２乃至付記１４のいずれかに記載のプログラム生成装置において、更に、
前記処理方式の一覧に対し、処理方式を追加或いは削除或いは編集するための処理方式登録手段を備えてなるプログラム生成装置。
（付記１６）  付記１乃至付記１５のいずれかに記載のプログラム生成装置において、更に、
前記所定の記憶部に対し、前記所定のプログラムを生成するために利用可能な構成部品に関する情報を追加或いは削除或いは編集するための構成部品登録手段を備えてなるプログラム生成装置。
（付記１７）  付記１乃至付記１６のいずれかに記載のプログラム生成装置において、
前記所定のプログラムは、ＸＭＬ（eXtensible Markup Language）データを処理するプログラムであるプログラム生成装置。
（付記１８）  所望の処理方式を入力する第１ステップと、
前記第１ステップにより入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第２ステップと、
前記第２ステップにより取得された情報の全て或いは一部を表示する第３ステップと、
前記第３ステップにより表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第４ステップと、
前記第４ステップによる入力結果に基づいて、前記所定のプログラムを生成する第５ステップとを備えてなるプログラム生成方法。
（付記１９）  コンピュータにより読取り可能な媒体に記憶され、所定のプログラムを生成する処理をコンピュータに実行させるプログラム生成用プログラムであって、
所望の処理方式を入力する第１ステップと、
前記第１ステップにより入力された処理方式に基づいて、所定のプログラムを生成するために利用可能な構成部品に関する情報を所定の記憶部から取得する第２ステップと、
前記第２ステップにより取得された情報の全て或いは一部を表示する第３ステップと、
前記第３ステップにより表示された情報に基づいて、前記所定のプログラムを生成するための構成部品に関する情報を入力する第４ステップと、
前記第４ステップによる入力結果に基づいて、前記所定のプログラムを生成する第５ステップとをコンピュータに実行させるプログラム生成用プログラム。
【００７７】
【発明の効果】
以上に詳述したように、本発明によれば、コンポーネントを組み合わせてソフトウェアを構築する際に、ソフトウェアの処理内容や性能要件をもとに、任意にコンポーネントを選択して連携させることができ、更にその際、コンポーネントの選択やその組み合わせの形態が連携制約に基づいて自動的に判断されるため、整合性の取れたプログラムを生成することができる。従って、プログラムの開発効率が飛躍的に向上し、知識の少ない開発者であっても、仕様を満たす品質の高いプログラムを容易且つ迅速に生成することができるという効果を奏する。
【図面の簡単な説明】
【図１】プログラム生成装置の機能構成を示したブロック図である。
【図２】ＸＭＬ処理方式選択部の機能構成を示したブロック図である。
【図３】選択項目表示部により表示される入力画面の一例である。
【図４】コンポーネント提供部が取得する情報の一例である。
【図５】制御情報定義部の機能構成を示したブロック図である。
【図６】制御情報入力画面の表示例である。
【図７】エディタに配置された制御情報の一例である。
【図８】エディタに配置された制御情報の一例である。
【図９】制御プログラム生成部の機能構成を示したブロック図である。
【図１０】生成されたプログラムの一例である。
【図１１】実施の形態２のＸＭＬ処理方式選択部の機能構成を示したブロック図である。
【図１２】処理方式選択のためのガイドライン表示画面の一例である。
【図１３】実施の形態３における制御情報定義部の機能構成を示したブロック図である。
【図１４】制御情報入力のためのガイドライン表示画面の一例である。
【図１５】実施の形態４におけるＸＭＬ処理方式選択部の選択項目表示部により提供される処理方式選択のための入力画面の一例である。
【図１６】実施の形態４におけるＸＭＬ処理方式格納部に格納された各処理形式に対応するコンポーネントの一覧と連携制約情報の一例である。
【図１７】図１６（ａ）と（ｂ）の情報をマージして得られたデータの一例である。
【図１８】実施の形態５における制御プログラム生成部の機能構成を示したブロック図である。
【図１９】図１０に示された生成プログラムに対し、開発者が新規にソースコードを追加した状態を示している。
【図２０】制御情報定義部でコンポーネントが追加された状態を示している。
【図２１】図２０の制御情報に基づいて生成されたプログラムのソースコードの一例である。
【図２２】実施の形態６におけるプログラム生成装置の機能構成を示したブロック図である。
【符号の説明】
１０、２０  プログラム生成装置、１１、１１ａ、２１  ＸＭＬ処理方式選択部、１２、２２  コンポーネント提供部、１３、１３ａ、２３  制御情報定義部、１４、１４ａ、２４  制御プログラム生成部、１５、２５  ＸＭＬ処理方式格納部、１６、２６  コンポーネント格納部、１７、２７  生成プログラム格納部、２８  ＸＭＬ処理方式登録部、２９  コンポーネント格納部、１１１、１１１ａ  選択項目表示部、１１２、１１２ａ  処理方式入力部、１１３  処理方式選択ガイドライン表示部、１３１、１３１ａ、データ取得部、１３２、１３２ａ  コンポーネント表示部、１３３、１３３ａ  制御情報入力部、１３４、１３４ａ入力情報判断部、１３５  利用ガイドライン表示部、１４１、１４１ａ  データ取得部、１４２、１４２ａ  プログラム生成部、１４３  プログラム変更入力部。
【図１】
0003964259.tif 000002
【図２】
0003964259.tif 000003
【図３】
0003964259.tif 000004
【図４】
0003964259.tif 000005
【図５】
0003964259.tif 000006
【図６】
0003964259.tif 000007
【図７】
0003964259.tif 000008
【図８】
0003964259.tif 000009
【図９】
0003964259.tif 000010
【図１０】
0003964259.tif 000011
【図１１】
0003964259.tif 000012
【図１２】
0003964259.tif 000013
【図１３】
0003964259.tif 000014
【図１４】
0003964259.tif 000015
【図１５】
0003964259.tif 000016
【図１６】
0003964259.tif 000017
【図１７】
0003964259.tif 000018
【図１８】
0003964259.tif 000019
【図１９】
0003964259.tif 000020
【図２０】
0003964259.tif 000021
【図２１】
0003964259.tif 000022
【図２２】
0003964259.tif 000023