JP2007095027A - ソフトウエア開発方法 - Google Patents
ソフトウエア開発方法 Download PDFInfo
- Publication number
- JP2007095027A JP2007095027A JP2006128845A JP2006128845A JP2007095027A JP 2007095027 A JP2007095027 A JP 2007095027A JP 2006128845 A JP2006128845 A JP 2006128845A JP 2006128845 A JP2006128845 A JP 2006128845A JP 2007095027 A JP2007095027 A JP 2007095027A
- Authority
- JP
- Japan
- Prior art keywords
- business
- component
- correlation check
- matrix
- xml
- 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
【課題】
従来の開発では、過去の他プロジェクトのソースプログラムを解析し、ソースレベルでの流用を行うことで、開発工数を削減することを行ってきた。しかし、ソースレベルの流用は、プラットフォームに対する依存度が高く、その都度ソースプログラムを修正しなければならないことと、適用の際、ソースからの観点での流用となり、適応し難いことが挙げられる。
【解決手段】
ソースレベルの流用を行わず、ソース生成に必要となるビジネスルールの流用を行うことにより、プラットフォームに依存し難い方式とする。具体的には、ビジネスルールを予め抽出し、テンプレートおよび部品コンテナ、部品として蓄積を行う。他システム開発の際には、この蓄積されたテンプレート、部品コンテナ、部品を流用することで、ソース出力をビジネスルールからの視点で流用することが可能となる。
【選択図】 図2
従来の開発では、過去の他プロジェクトのソースプログラムを解析し、ソースレベルでの流用を行うことで、開発工数を削減することを行ってきた。しかし、ソースレベルの流用は、プラットフォームに対する依存度が高く、その都度ソースプログラムを修正しなければならないことと、適用の際、ソースからの観点での流用となり、適応し難いことが挙げられる。
【解決手段】
ソースレベルの流用を行わず、ソース生成に必要となるビジネスルールの流用を行うことにより、プラットフォームに依存し難い方式とする。具体的には、ビジネスルールを予め抽出し、テンプレートおよび部品コンテナ、部品として蓄積を行う。他システム開発の際には、この蓄積されたテンプレート、部品コンテナ、部品を流用することで、ソース出力をビジネスルールからの視点で流用することが可能となる。
【選択図】 図2
Description
本発明は、ソフトウエアを効率よく開発するための技術に関する。その中でも特に、他のプロジェクトのソースを流用して、新たなプロジェクトのソフトウエアを開発する技術に関する。
従来、ソフトウエアの開発において、他プロジェクトのソースを流用することで開発工数の削減を行ってきた。
特に、特許文献1においては、ソフトウエアの生産性を向上させるために、既存のソフトウエアを再利用して新規のソフトウエアを開発することが開示されている(ソフトウエアの流用)。ここでは、プログラマが既存ソフトウエアの仕様を記述したドキュメントやソースプログラムを解析し、修正を行うことが記載されている。
しかしながら、上述したようなソースプログラムを解析したソースレベルでの流用はプラットフォームに対する依存度が高く、その都度ソースプログラムを修正しなくてはいけない、との課題を抱えていた。
そこで、本発明では、仕様書からビジネスルールを抽出し、これを用いてソフトウエアの作成を行う。より詳細には以下の態様が本発明に含まれる。
利用者により作成された、業務パターンをキーにテンプレート辞書のテンプレートファイルが対応付けられた機能マトリックスおよび各項目の内容を示す辞書に対してXML化処理を施し、前記機能マトリックスから、作成すべきソフトウエアのビジネスルールに対応するテンプレートを抽出し、抽出されたテンプレートに対応した業務部品を選択し、選択された業務部品を用いて生成すべきソフトウエアの仕様書を作成する。なお、生成する業務が、相関チェックロジックを含む場合は、このロジックに対して、相関チェックマトリックスを使用してこれらの処理を行っても良い。
本発明によれば、新たなソフトウエア(ソース)の生成を容易に実行することが可能になる。
本発明の実施の形態について、図面を用いて説明する。本実施の形態は、ソフトウエア製品の仲介を例に説明するが、本発明はそれに限定されるものではない。
まず、本実施の形態におけるシステム構成図を図1に示す。コンピュータは、メモリ(101)、ハードディスクを含む外部記憶装置(105)、CPU(102)などの処理装置を有し、記憶装置に格納されたプログラムに従って、処理装置が情報処理を実行するものである。外部記憶装置(105)には、図2で示す機能マトリックス(214)含むドキュメント群および、辞書類、ツール群が保存されている。
本機能の概要図を図2に示し、以下に概要を説明する。
本機能で出力するソース(222)及びプログラム仕様書(221)は、業務のテンプレート(225)と機能単位に分割された部品コンテナ(223)と部品コンテナの一部である部品(224)で構成される。これらテンプレート(225)、部品コンテナ(223)、部品(224)には変数化された個所がそれぞれあり、辞書項目(205)を埋め込むことで、ソース(222)及びプログラム仕様書(221)が作成する。なお、部品コンテナ(223)で使用可能な部品(224)は複数あり、部品(224)を選択することで部品コンテナ(223)の機能をカスタマイズすることが可能となる。
本機能で出力するソース(222)及びプログラム仕様書(221)は、業務のテンプレート(225)と機能単位に分割された部品コンテナ(223)と部品コンテナの一部である部品(224)で構成される。これらテンプレート(225)、部品コンテナ(223)、部品(224)には変数化された個所がそれぞれあり、辞書項目(205)を埋め込むことで、ソース(222)及びプログラム仕様書(221)が作成する。なお、部品コンテナ(223)で使用可能な部品(224)は複数あり、部品(224)を選択することで部品コンテナ(223)の機能をカスタマイズすることが可能となる。
本発明で使用する機能は、大きく(1)マトリックスXML化ツール、(2)辞書XML化ツール、(3)ソース、ドキュメント変換エンジンの3つで構成される。
以下に各機能の詳細を示す。
(1)マトリックスXML化ツール(216)
図3に概要図を示す。
機能マトリックス(214)とマトリックス部品紐付けパラメータファイル(215)(以下、パラメータファイルと呼称)を元にプログラムの構造・意味付けを保持した形としてXML化する機能(216)である。
以下に各機能の詳細を示す。
(1)マトリックスXML化ツール(216)
図3に概要図を示す。
機能マトリックス(214)とマトリックス部品紐付けパラメータファイル(215)(以下、パラメータファイルと呼称)を元にプログラムの構造・意味付けを保持した形としてXML化する機能(216)である。
以下に(a)機能マトリックス(214)、(b)パラメータファイルの詳細を示す。
(a)機能マトリックス(214)
機能マトリックス(214)は、業務パターンをキーにテンプレート辞書(207)のテンプレートファイル(225)とマッピングしている。(業務パターン名をキーに辞書中のテンプレートファイルを特定できる)
また、コンテナ名、部品名をキーとして、業務部品辞書(206)の部品コンテナ(223)・部品(224)を論理的にマッピングしている。(パラメータファイル(215)を経由することで、業務部品辞書(206)中の部品コンテナ、部品を特定することができる)なお、機能マトリックス(214)は、それぞれの部品コンテナ(223)・部品(224)の引数となる値(名前)と、キーワード属性をパラメータファイル(215)から取得するためのキーワードを保持している。キーワード属性の内容が、辞書を参照する場合には、ここで入力された値が、辞書の値を取得する際のキーとなる。(キーワード属性の説明は(b)を参照)
(b)パラメータファイル(215)
パラメータファイル(215)は、部品コンテナ名、部品名をそれぞれキーとして業務部品辞書(206)中の部品コンテナファイル(223)・部品ファイル(224)とマッピングしている。(機能マトリックス(214)の部品コンテナ(223)、部品(224)と部品コンテナ(223)、部品辞書(206)のそれぞれのファイル名をリンクさせている)これより、このパラメータファイル(215)の記述次第で、ソース(221)に変換するか、プログラム仕様書(222)に変換するかの選択が可能となる。つまり、パラメータファイル(215)の部品コンテナ名にドキュメント部品コンテナ(208)を指定されている場合には、プログラム仕様書(222)が出力し、ソース部品コンテナ(209)を指定していればソース(221)が出力する仕組みとなる。
(a)機能マトリックス(214)
機能マトリックス(214)は、業務パターンをキーにテンプレート辞書(207)のテンプレートファイル(225)とマッピングしている。(業務パターン名をキーに辞書中のテンプレートファイルを特定できる)
また、コンテナ名、部品名をキーとして、業務部品辞書(206)の部品コンテナ(223)・部品(224)を論理的にマッピングしている。(パラメータファイル(215)を経由することで、業務部品辞書(206)中の部品コンテナ、部品を特定することができる)なお、機能マトリックス(214)は、それぞれの部品コンテナ(223)・部品(224)の引数となる値(名前)と、キーワード属性をパラメータファイル(215)から取得するためのキーワードを保持している。キーワード属性の内容が、辞書を参照する場合には、ここで入力された値が、辞書の値を取得する際のキーとなる。(キーワード属性の説明は(b)を参照)
(b)パラメータファイル(215)
パラメータファイル(215)は、部品コンテナ名、部品名をそれぞれキーとして業務部品辞書(206)中の部品コンテナファイル(223)・部品ファイル(224)とマッピングしている。(機能マトリックス(214)の部品コンテナ(223)、部品(224)と部品コンテナ(223)、部品辞書(206)のそれぞれのファイル名をリンクさせている)これより、このパラメータファイル(215)の記述次第で、ソース(221)に変換するか、プログラム仕様書(222)に変換するかの選択が可能となる。つまり、パラメータファイル(215)の部品コンテナ名にドキュメント部品コンテナ(208)を指定されている場合には、プログラム仕様書(222)が出力し、ソース部品コンテナ(209)を指定していればソース(221)が出力する仕組みとなる。
また、パラメータファイル(215)は、キーワードに対する値をキーに辞書(205)のデータ項目名を取得するか、機能マトリックス(214)の値そのものを部品等に反映させるかを決定するキーワード属性を保持している。
(2)辞書XML化ツール(218)
図4に概要図を示す。
辞書(205)の項目(項目名、属性、ドメイン等)を、ソース出力に必要な項目のみ抽出し構造・意味付けを保持した形としてテンプレートが解読可能な辞書XMLファイル(219)に変換する機能(218)である。このXMLファイル化された辞書は、上述の値(論理名)をキーとして取得するソース上の「データ項目名」(物理名)が保持している。また、属性チェックで、部品を選択するためのキー情報である属性情報を保持している。辞書(205)を参照する際の処理の流れに関しては、後述の図5のステップ507、ステップ510、ステップ513を参照。
図4に概要図を示す。
辞書(205)の項目(項目名、属性、ドメイン等)を、ソース出力に必要な項目のみ抽出し構造・意味付けを保持した形としてテンプレートが解読可能な辞書XMLファイル(219)に変換する機能(218)である。このXMLファイル化された辞書は、上述の値(論理名)をキーとして取得するソース上の「データ項目名」(物理名)が保持している。また、属性チェックで、部品を選択するためのキー情報である属性情報を保持している。辞書(205)を参照する際の処理の流れに関しては、後述の図5のステップ507、ステップ510、ステップ513を参照。
(3)ソース、ドキュメント変換エンジン(220)
機能マトリックスXML(217)から対象のテンプレート(225)と部品コンテナ(224)、部品(223)を選択し、パラメータ化されている箇所に辞書項目を埋め込む機能(ソース、プログラム仕様書出力機能)。本機能の処理の流れについては、後述の図5のステップ519に示す。
機能マトリックスXML(217)から対象のテンプレート(225)と部品コンテナ(224)、部品(223)を選択し、パラメータ化されている箇所に辞書項目を埋め込む機能(ソース、プログラム仕様書出力機能)。本機能の処理の流れについては、後述の図5のステップ519に示す。
次に、本実施の形態の処理内容について、図5を参照しながら詳細を説明する。
ステップ501では機能マトリックス(214)をパラメータファイル(215)を参照してマトリックスXML化ツール(216)でXML化(217)する。(機能マトリックス(214)作成およびXML化の詳細は後述参照。)
ステップ502では、予め登録された辞書(205)を辞書XML化ツール(218)でXML化する。
ステップ503では、ステップ501で作成された機能マトリックスXML(217)を読み込む。
ステップ504では、読込んだ機能マトリックスXML(217)から対象のテンプレート(225)を選択する。
ステップ501では機能マトリックス(214)をパラメータファイル(215)を参照してマトリックスXML化ツール(216)でXML化(217)する。(機能マトリックス(214)作成およびXML化の詳細は後述参照。)
ステップ502では、予め登録された辞書(205)を辞書XML化ツール(218)でXML化する。
ステップ503では、ステップ501で作成された機能マトリックスXML(217)を読み込む。
ステップ504では、読込んだ機能マトリックスXML(217)から対象のテンプレート(225)を選択する。
ステップ505では、読込んだ機能マトリックスXML(217)から対象のテンプレート(225)に紐付く部品コンテナ(223)を選択する。本処理については、マトリックスXMLで定義されている部品コンテナ数分繰り返し実行する。
ステップ506では、選択された部品コンテナ(223)をテンプレート(225)に挿入する。
ステップ507では、部品コンテナ(223)の中で、パラメータ化されている箇所を、辞書XML(219)より取得し設定する。
ステップ508では、読込んだ機能マトリックスXML(217)から対象の部品コンテナに紐付く部品(224)を選択する。本処理については、マトリックスXMLで定義されている部品数分繰り返し実行する。
ステップ507では、部品コンテナ(223)の中で、パラメータ化されている箇所を、辞書XML(219)より取得し設定する。
ステップ508では、読込んだ機能マトリックスXML(217)から対象の部品コンテナに紐付く部品(224)を選択する。本処理については、マトリックスXMLで定義されている部品数分繰り返し実行する。
ステップ509では、ステップ508で選択した部品が、属性チェックか判断する。
ステップ510では、ステップ509で、属性チェックの判定ならば、辞書XML(219)から対象項目の属性(半角英数、漢字等)を特定する。
ステップ510では、ステップ509で、属性チェックの判定ならば、辞書XML(219)から対象項目の属性(半角英数、漢字等)を特定する。
ステップ511では、属性に対応する部品(224)を部品辞書(206)より選択する。ステップ512では、選択された部品(224)を部品コンテナ(223)に挿入する。ステップ513では、部品(224)の中で、項目名がパラメータ化されているものを、辞書XML(219)より取得し設定する。ステップ514では、対象の部品コンテナ(223)の中に部品(224)があるかないかの判断を行う。ステップ515では、対象のテンプレート(225)の中に部品コンテナ(223)があるかないかの判断を行う。
ステップ516では、ソース(222)または、プログラム仕様書(221)を部品(224)、部品コンテナ(223)の結合されたテンプレート(225)として出力する。ソース(222)、プログラム仕様書(221)のどちらを出力するかは、上述のプロパティファイル(215)の設定による。
以下に上述で記載されている機能マトリックス(214)作成およびXML化の詳細を図6、図7から図20を参照しながら説明する。
(1)機能マトリックス作成手順(607)
ステップ601では開発者が、テンプレート仕様書(202)を基に、使用するテンプレート名を、機能マトリックス(301)上の業務パターンにセットする。作成時の概要を図7に示す。
(1)機能マトリックス作成手順(607)
ステップ601では開発者が、テンプレート仕様書(202)を基に、使用するテンプレート名を、機能マトリックス(301)上の業務パターンにセットする。作成時の概要を図7に示す。
ステップ602では、その他、プログラム情報(301)に、ソース(222)やプログラム仕様書(221)で共通的に使用する項目・制御情報(言語、モジュール名等の内容)をセットする。作成時の概要を図8に示す。
ステップ603では、テンプレート(225)の中で使用する部品コンテナ(223)を、テンプレート仕様書(202)より選択することと項番を振る作業を行う。なお、この項番は、当該部品コンテナ(223)のアウトプットを他の部品コンテナ(223)および部品(224)で参照する際に使用するためのものであり、部品コンテナ(223)上、一意となるように採番する。特に採番のルールは規定しない。作成時の概要を図9に示す。
ステップ604では、部品コンテナ(223)の中で使用する部品(224)を、部品コンテナ仕様書(203)より選択することと項番を振る作業を行う。なお、この項番は、当該部品(224)のアウトプットを参照する際に使用するためのものであり、部品(224)上、一意となるように採番する。特に採番のルールは規定しない。作成時の概要を図10に示す。
ステップ605では、部品(224)に対して、部品仕様書(204)を参照し、部品(224)に対して設定できるキーワードを記入する。キーワードは、ステップ606でユーザが入力する「値」を促す言葉で表現されている。作成時の概要を図11に示す。
例)キーワード:チェック対象項目 値:生年月日
ステップ606では、キーワードに対して、値を設定することと、値が、他の部品コンテナ(223)、部品(224)のアウトプットを参照する場合は、参照項番をセットする。参照項番は、対象の部品(224)および部品コンテナ(223)以外からの値を参照する場合には、参照先の部品(224)の項番をセットし、値に参照先のキーワードをセットする。作成時の概要を図12に示す。
例)キーワード:チェック対象項目 値:生年月日
ステップ606では、キーワードに対して、値を設定することと、値が、他の部品コンテナ(223)、部品(224)のアウトプットを参照する場合は、参照項番をセットする。参照項番は、対象の部品(224)および部品コンテナ(223)以外からの値を参照する場合には、参照先の部品(224)の項番をセットし、値に参照先のキーワードをセットする。作成時の概要を図12に示す。
ステップ601からステップ602を実施することで作成する機能マトリックス(214)を図13に示す。
(2)機能マトリックスXML化手順(517)
ステップ1401では、機能マトリックス(217)のプログラム情報(301)を、項目名に対応する機能マトリックスXML(1501)のタグにセットする。XML作成時の概要を図15に示す。
ステップ1401では、機能マトリックス(217)のプログラム情報(301)を、項目名に対応する機能マトリックスXML(1501)のタグにセットする。XML作成時の概要を図15に示す。
ステップ1402では機能マトリックスのマトリックス情報(302)のコンテナ名を、コンテナ(name)にセットする。その際に、部品コンテナ(223)の項番をコンテナ(ID)にセットする。コンテナ(file)については、マトリックス情報(302)のコンテナ名をキーとして、パラメータファイル(215)より、参照する辞書(206)の部品コンテナファイル名を取得し、セットする。XML作成時の概要を図16に示す。
ステップ1403では、他の部品(224)が、部品コンテナ(223)のアウトプットを、入力に使用する場合、マトリックス情報(302)のキーワードをコンテナキーワードに値をセットする。セット内容としては、対象の部品(224)のキーワードをコンテナキーワード名(name)にセットし、対象部品(224)の項番をコンテナキーワード名(refid)にセットする。その際に、対象部品(224)のキーワードをキーにパラメータファイル(215)のキーワード属性を取得し、コンテナキーワード名(attr)にセットする。また、逆に部品コンテナ(223)のアウトプットが他の部品(224)に使用されている場合、コンテナキーワード名(setrefid)に、当該の部品(224)の項番をセットする。XML作成時の概要を図17に示す。
ステップ1404では、機能マトリックスのマトリックス情報(302)の部品名を、部品(name)にセットする。その際に、部品(224)の項番をコンテナ名(ID)にセットする。コンテナ名(file)については、マトリックス情報(302)の部品名をキーとして、パラメータファイル(215)より、参照する辞書(206)の部品ファイル名を取得し、セットする。XML作成時の概要を図18に示す。
ステップ1405では、部品(224)が、他の部品(224)のアウトプットを、入力に使用する場合、マトリックス情報(302)のキーワードをキーワードに値をセットする。セット内容としては、対象の部品(224)のキーワードをキーワード名(name)にセットし、対象部品(224)の項番をキーワード名(refid)にセットする。その際に、対象部品(224)のキーワードをキーにパラメータファイル(215)のキーワード属性を取得し、キーワード名(attr)にセットする。また、逆に部品(224)のアウトプットが他の部品(224)に使用されている場合、キーワード名(setrefid)に、当該部品(224)の項番をセットする。XML作成時の概要を図19に示す。
ステップ1401からステップ1405を実施することで作成する機能マトリックスXML(217)を図20に示す。
以下に、本実施の形態における効果を下記(1)〜(4)示す。
(1)機能マトリックス(214)を記入することで、ソース(222)を生成するため、言語の特性に依存せずにプログラム生成を可能する。
(1)機能マトリックス(214)を記入することで、ソース(222)を生成するため、言語の特性に依存せずにプログラム生成を可能する。
(2)テンプレート(225)・部品コンテナ(223)・部品(224)を基にプログラムを作成するため、開発者におけるプログラミング能力のバラツキがなくなり、出力するソース(222)の品質が一定となる。
(3)業務機能の流用を行う際に、各システム固有の項目情報(辞書)の変更のみで、システム構築が可能となる。具体的な理由を下記に示す。
機能仕様書(201)からソース(222)へ変換する際、本システムでは、開発者が既存の機能仕様書を大、中、小の区分に分類し対応するテンプレート(225)、部品コンテナ(223)、部品(224)を選択する。分類の指針、方法については、業務機能の大きさ毎に分類されたテンプレート仕様書(202)、部品コンテナ仕様書(203)、部品仕様書(204)に定義されている各情報を基に決定を行う。また、これらの仕様書は、それぞれの辞書(205)の各分類に物理的な紐付け情報を保持している。そのため、各業務機能とテンプレート等のソース(222)、プログラム仕様書(221)を出力する際の部品(224)は、1対1の関係でマッピングがとれていることになる。図21に概要図を示す。
機能仕様書(201)からソース(222)へ変換する際、本システムでは、開発者が既存の機能仕様書を大、中、小の区分に分類し対応するテンプレート(225)、部品コンテナ(223)、部品(224)を選択する。分類の指針、方法については、業務機能の大きさ毎に分類されたテンプレート仕様書(202)、部品コンテナ仕様書(203)、部品仕様書(204)に定義されている各情報を基に決定を行う。また、これらの仕様書は、それぞれの辞書(205)の各分類に物理的な紐付け情報を保持している。そのため、各業務機能とテンプレート等のソース(222)、プログラム仕様書(221)を出力する際の部品(224)は、1対1の関係でマッピングがとれていることになる。図21に概要図を示す。
これより、他システム開発の際には、この業務機能からの視点で流用を行うことで、テンプレート等のソース(222)出力する際の部品(224)を流用することが可能となる。また、言語やプラットフォームにおける環境が変化する際にも、業務機能自体の流用は可能であり、業務機能に紐付くテンプレート等を、修正することで、テンプレート等の部品(224)の流用も可能となる。
これら業務機能を予め抽出、蓄積することで、各システム固有の項目情報(辞書)の変更のみで、システム構築が可能となる。
これら業務機能を予め抽出、蓄積することで、各システム固有の項目情報(辞書)の変更のみで、システム構築が可能となる。
(4)機能マトリックス(214)と辞書(205)を用意することで、ソース(222)とプログラム仕様書(221)の両者を出力することが可能であり、大幅な工数削減となる(設計工程とプログラム工程が同タイミングで完了)。
仕組みとしては、上述にあるように、パラメータファイル(215)の設定次第で部品辞書(206)の、どのファイルとマッピングするか変更可能なため、ソース(222)とプログラム仕様書(221)を切り分けて出力することが可能である。
仕組みとしては、上述にあるように、パラメータファイル(215)の設定次第で部品辞書(206)の、どのファイルとマッピングするか変更可能なため、ソース(222)とプログラム仕様書(221)を切り分けて出力することが可能である。
次に、相関チェックマトリックスを使用する際の、本機能における概要図を図22に示し、以下に概要を説明する。
本機能は、上述の機能マトリックスを用いた機能に対して、相関チェックロジック部分を独立して作成する機能である。よって、本機能で出力するソース(222)及びプログラム仕様書(221)は、上述の機能で出力されるアウトプットに対して部分的なものである。なお、ソース(222)およびプログラム仕様書(221)に、他の情報と対応付けるための情報を出力してもよい。
本機能は、上述の機能マトリックスを用いた機能に対して、相関チェックロジック部分を独立して作成する機能である。よって、本機能で出力するソース(222)及びプログラム仕様書(221)は、上述の機能で出力されるアウトプットに対して部分的なものである。なお、ソース(222)およびプログラム仕様書(221)に、他の情報と対応付けるための情報を出力してもよい。
また、ソース(222)及びプログラム仕様書(221)を生成するためのインプット情報は、機能マトリックスXML(217)と相関チェックマトリックスXML(2103)で異なるが、生成の過程(マトリックスからXMLを出力するまでの過程)は同様である。ここで、使用する追加機能は、相関チェックマトリックスXML化ツールである。この内容を図53に示す。
図23に、その内容を示す。
相関チェックマトリックスXML化ツールは、相関チェックマトリックス(214)とパラメータファイル(215)を元に相関チェックロジックに特化したプログラムの構造・意味付けを保持した形としてXML化する機能(216)である。
相関チェックマトリックスXML化ツールは、相関チェックマトリックス(214)とパラメータファイル(215)を元に相関チェックロジックに特化したプログラムの構造・意味付けを保持した形としてXML化する機能(216)である。
この相関チェックマトリックス(214)は、(イ)条件部(2301)、(ロ)処理部、(ハ)条件ツリー定義部で構成される。(なお、機能マトリックスは、処理部のみで構成してもよい。)各詳細を以下に示す。
(イ)条件部(2301)
条件部(2301)は、項目に対する分岐の条件を定義する部位である。相関チェック部品は、条件の対象項目単位となる。さらに、その項目を分岐条件単位に分割し、ノードIDを付与する。これにより、分岐条件を識別している。
条件部(2301)は、項目に対する分岐の条件を定義する部位である。相関チェック部品は、条件の対象項目単位となる。さらに、その項目を分岐条件単位に分割し、ノードIDを付与する。これにより、分岐条件を識別している。
この条件定義には、入力値に対して相関チェック部品によって加工した戻り値に対する条件を指定する方法と、入力項目そのものを条件に指定する方法の2通りがある。(例えば、前者の場合、入力された日付に対して、その日付が、実在日であるか、確認する部品を使用し、部品の戻り値である「真偽」に対して判定を行う方法。後者の場合は、入力された日付が、任意の日付との大小比較方法)
以下、前者を「戻り値の相関チェック」、後者を「入力項目相関チェック」とする。
以下、前者を「戻り値の相関チェック」、後者を「入力項目相関チェック」とする。
相関チェック部品の戻り値に対する条件を指定する場合、設定する相関チェック部品の「名前」に関しては、業務部品辞書(206)の部品(224)とマッピングしている。マッピング方法は、上述の機能マトリックスと同様である。なお、マッピングについては、パラメータファイルを経由せずに対応付けても良い。
(ロ)処理部(2303)
条件部(2301)で定義された条件に対して達成した際の、処理内容を定義する部位である。(イ)の条件部(2301)と同様に、相関チェック部品の「名前」については、業務部品辞書(206)の部品(224)とマッピングしている。マッピング方法は、上述の機能マトリックスと同様である。なお、マッピングについては、パラメータファイルを経由せずに対応付けても良い。
条件部(2301)で定義された条件に対して達成した際の、処理内容を定義する部位である。(イ)の条件部(2301)と同様に、相関チェック部品の「名前」については、業務部品辞書(206)の部品(224)とマッピングしている。マッピング方法は、上述の機能マトリックスと同様である。なお、マッピングについては、パラメータファイルを経由せずに対応付けても良い。
(ハ)条件ツリー部(2302)
条件の順序(条件ツリー定義)と条件に対応する処理順序(処理ツリー定義)を定義する部位である。図5に示すように、条件ツリー部(2302)には、条件部(2301)で定義したノードIDを使用し、条件の組み合わせとチェック順序、条件に対応する処理順序を定義する。条件ツリー定義内の「親ノードID」欄にノードIDを定義することで、条件間に階層構造(親子関係)を持たせている。以下、定義した条件の中で優先条件を「親」と呼ぶ。親の条件に付随する条件を「子」と呼ぶ。
条件の順序(条件ツリー定義)と条件に対応する処理順序(処理ツリー定義)を定義する部位である。図5に示すように、条件ツリー部(2302)には、条件部(2301)で定義したノードIDを使用し、条件の組み合わせとチェック順序、条件に対応する処理順序を定義する。条件ツリー定義内の「親ノードID」欄にノードIDを定義することで、条件間に階層構造(親子関係)を持たせている。以下、定義した条件の中で優先条件を「親」と呼ぶ。親の条件に付随する条件を「子」と呼ぶ。
親子関係は、「ノードID」欄と「親ノードID」欄で表現する。子となる条件の「親ノード」欄に、親となる条件のノードIDを記述する。ただし、一番目に判断すべき条件の「親ノード」欄は「-」とする。なお、条件ツリー定義は条件ツリー定義1から順に処理を行い、評価順序に従い、処理を行う。
次に、本実施の形態の処理内容について、図24を参照しながら詳細を説明する。
相関チェックマトリックスを使用の際には、図5に対して、相関チェックマトリックスXML(2103)を作成するステップ2404と、図5のステップ519の内、ステップ507とステップ508の間にステップ2402とステップ2403を追加して行う。以下にステップ2404の詳細とステップ2402およびステップ2403の詳細を説明する。
相関チェックマトリックスを使用の際には、図5に対して、相関チェックマトリックスXML(2103)を作成するステップ2404と、図5のステップ519の内、ステップ507とステップ508の間にステップ2402とステップ2403を追加して行う。以下にステップ2404の詳細とステップ2402およびステップ2403の詳細を説明する。
ステップ2401では、相関チェックマトリックス(2101)をパラメータファイル(215)を参照して相関チェックマトリックスXML化ツール(2102)でXML化(2103)する。(相関チェックマトリックス(2101)作成およびXML化の詳細は後述参照。)
ステップ2403では、ステップ508で、参照する部品が、相関チェック部品か否かを判断する。判断材料としては、機能マトリックス(214)の部品名に、相関チェックIDが記述されていることである。ただし、相関チェックID以外に相関チェック部品を判断できれば良い。
例)SOUKAN001
ステップ2402は、ステップ2401で作成された相関チェックマトリックス(2103)を読み込む。
ステップ2402以降の処理については、機能マトリックス(214)からの生成時と変わらない。
ステップ2403では、ステップ508で、参照する部品が、相関チェック部品か否かを判断する。判断材料としては、機能マトリックス(214)の部品名に、相関チェックIDが記述されていることである。ただし、相関チェックID以外に相関チェック部品を判断できれば良い。
例)SOUKAN001
ステップ2402は、ステップ2401で作成された相関チェックマトリックス(2103)を読み込む。
ステップ2402以降の処理については、機能マトリックス(214)からの生成時と変わらない。
以下に上述で記載されている相関チェックマトリックス(2101)作成およびXML化の詳細を図25と図42を参照しながら説明する。
(1)相関チェックマトリックス作成手順
ステップ2501では開発者が、相関チェックマトリックスに相関チェックIDをセットする。作成時の概要を図25に示す。相関チェックIDについては、上述にも示す様に、機能マトリックスと紐付く相関チェックIDは、一意に設定されていれば、特にIDの採番方法は指定しない。相関チェックIDのセット概要については、図26参照。図26においては、「SOUKAN002」が相関チェックID(2601)となる。
ステップ2501では開発者が、相関チェックマトリックスに相関チェックIDをセットする。作成時の概要を図25に示す。相関チェックIDについては、上述にも示す様に、機能マトリックスと紐付く相関チェックIDは、一意に設定されていれば、特にIDの採番方法は指定しない。相関チェックIDのセット概要については、図26参照。図26においては、「SOUKAN002」が相関チェックID(2601)となる。
ステップ2502では、相関チェックが、「戻り値相関チェック」または、「入力項目の相関チェック」を使用するか選択を行う。具体例については、上記参照。
ステップ2503では、部品コンテナ仕様書(203)を元に、使用する部品を設定する。その内容は、図27に示すとおり、部品コンテナ仕様書(204)の「名称」に規定された「空文字チェック」の内容を条件定義部(2701)の「相関チェック部品」に「名称」の欄に規定する。なお、「相関チェック部品」のIDについては、「条件部(2301)」、「処理部」の中で一意になればよい。
ステップ2504では、部品仕様書(201)を元に、選択した部品のキーワードを設定する。その内容は、図28に示すとおり、部品仕様書(204)の「使用するキーワード属性」に規定された「キーワード」の内容を条件定義部(2701)の「キーワード」の欄に規定する。
ステップ2505では、キーワードに対する値を設定する。値については、辞書中の対象のワードを設定する。その内容は、図29に示すように、「キーワード」の項目値を辞書(205)中の「通帳記号」から「項目値」の欄に規定する。
ステップ2506では、相関チェックを行う項目名を設定する。その内容は、図30に示すように、辞書(205)中の「個人法人区分」を「項目名」の欄に規定する。
ステップ2507では、相関チェックを行う項目名に対して比較する条件値を設定する。その内容は、図31に示すように、ステップ2506の比較対象である「”HOUJIN”」を「条件値」の欄に規定する。
ステップ2508では、比較方法を設定する。(比較識別子)。その内容は、図32に示すように、ステップ2506とステップ2507で記入した内容を比較する方法を条件定義部(2701)の「式」の欄に規定する。図32の場合は、等号を示す「eq」を設定している。
ステップ2509では、当該、相関チェックロジックに対して、一意になるように、ノードIDを設定する。その内容は、図33に示すとおり、条件ツリー部(2302)の「ノードID」欄に「001」を規定する。なお、IDについては、マトリックス上で一意となればよい。
ステップ25010では、ノードIDに紐付く親ノードIDを設定する。なお、ノードIDに紐付く親ノードIDは、複数件指定しても良い。その内容は、図34に示すとおり、条件ツリー部(2302)の「親ノードID」欄に「ノードID」が「004」に対して「001」を規定する。なお、「親ノード」が「-」の項目については、ルートとなり、その配下が、「ノードID:004」、「ノードID:006」となる。
ステップ25011では、同一の親ノードIDの中で、評価順序を設定する。その内容は、図35に示すとおり、条件ツリー部(2302)の「評価順序」欄に「ノードID」が「004」に対して「1」を規定する。なお、「親ノード」が「-」の項目については、ルートのため固定の「1」となり、「親ノード」が同一のものについては、「1」から順番に採番する。
ステップ25012では、条件に対して、「真」の時の処理する部品を設定する。その内容は、図36に示すとおり、部品仕様書(204)の「名称」に規定された「エラーメッセージの追加」の内容を条件定義部(2701)の「相関チェック部品」に「名前」の欄に規定する。
ステップ25013では、ステップ25012で設定した部品に対してキーワードを設定する。その内容は、図37に示すとおり、部品コンテナ仕様書(204)の「使用するキーワード属性」に規定された「キーワード」の内容(「メッセージID」)を処理部の「キーワード」の欄に規定する。
ステップ25014では、キーワードに対する値を設定する。その内容は、図38に示すように、ステップ25013で設定したキーワードに対してメッセージIDを「値」の欄に規定する。
ステップ25015では、ステップ25010の条件と、ステップ25011の処理を紐付けるため、ステップ25010で設定した「ノードID」を処理対象IDに設定する。その内容は、図39に示すように、処理部(2303)における「条件ツリー定義(2302)」の「処理対象ID」の欄にステップ25010で設定した「ノードID:001」を規定する。
ステップ25016では、処理対象IDの中で、処理順序を設定する。その内容は、図40に示すように、「処理対象ID」が同一のものに対して、「条件ツリー定義」の「処理順序」の欄に「1」から順に採番を行う。
以上の工程により作成する相関チェックマトリックスを図42に示す。
以上の工程により作成する相関チェックマトリックスを図42に示す。
(2)相関チェックマトリックスXML化手順
ステップ4301では、XMLのヘッダー部(固定値)をセットする。その内容については、図43を参照。
ステップ4301では、XMLのヘッダー部(固定値)をセットする。その内容については、図43を参照。
ステップ4302では、相関チェックマトリックス(2101)の相関チェックIDをセットする。その内容は、図44に示すように、相関チェックマトリックス(2101)の「相関チェックID」欄の相関チェックIDをXML上にセットする。
ステップ4303では、相関チェックマトリックス(2101)の条件部(2301)における条件定義ツリー定義のパターンIDをセットする。その内容は、図45に示すように、相関チェックマトリックス(2101)の「条件部(2301)」の「条件ツリー定義」欄のパターン番号をXML上にセットする。
ステップ4304では、相関チェックマトリックス(2101)の条件定義ツリー定義のノードID、親ID、評価順序をセットする。その内容は、図46に示すように、相関チェックマトリックス(2101)のノードID、親ノードID、評価順序(「001」、「−」、「1」)をXML上にセットする。
ステップ4305では、相関チェックマトリックス(2101)の条件部(2301)の部品を、パラメータ定義を元に変換し、セットする。変換過程については、上述の機能マトリックスXMLの作成手順で示すステップ1404から1405と同じである。その内容については、図47に示す用に、「エラーメッセージ追加」の部品をXMLにセットする。
ステップ4306では、相関チェックマトリックス(2101)の条件部(2301)における項目名をセットする。その内容は、図48に示すように、相関チェックマトリックス(2101)の「条件部(2301)」の「項目名」欄の値(戻り値.個人法人区分)をXML上にセットする。
ステップ4307では、相関チェックマトリックス(2101)の条件部(2301)における式をセットする。その内容は、図49に示すように、相関チェックマトリックス(2101)の「式」で規定した「eq」をXML上にセットする。
ステップ4308では、相関チェックマトリックス(2101)の条件部(2301)における条件値をセットする。その内容は、図50に示すように、相関チェックマトリックス(2101)の「条件部(2301)」の「条件値」で規定した値(”HOUJIN”)をXML上にセットする。
ステップ4309では、ステップ4304と同様に、相関チェックマトリックス(2101)の「処理部」における条件定義ツリー定義の処理対象ID、処理順序IDをセットする。その内容は、図51に示すように、相関チェックマトリックス(2101)の処理対象ID、処理順序(「006」、「1」)をXML上にセットする。
ステップ4310では、相関チェックマトリックス(2101)の条件部(2301)の部品を、パラメータ定義を元に変換しセットする。変換過程については、上述のステップ1404から1405と同じである。その内容については、図52に示す用に、「エラーメッセージ追加」の部品をXMLにセットする。
以上の工程により作成する相関チェックマトリックス(2103)を図52に示す。この相関チェックマトリックス(2103)は、入力である相関チェックマトリックスが、「条件部(2301)」と「条件ツリー」が機能マトリックスと比較すると追加されているため、出力されるXMLについても、その分の情報が付加されている。
本発明は、取引の仲介を、コンピュータを用いて実現することが可能になる。
201…機能仕様書、202…テンプレート仕様書、203…部品コンテナ仕様書、204…部品仕様書、205…辞書、206…業務部品辞書207…テンプレート辞書、214…機能マトリックス、216…マトリックスXMLツール、217…機能マトリックスXML、218…辞書XMLツール、219…辞書XML、220…ソース・プログラム仕様書変換エンジン、221…プログラム仕様書、222…ソースコード、2101…相関チェックマトリックス、2103…相関チェックマトリックスXML、2301…条件部、2303…処理部、2302…条件ツリー部、2102…相関チェックマトリックスXL化ツール
Claims (6)
- 利用者により作成された、業務パターンをキーにテンプレート辞書のテンプレートファイルが対応付けられた機能マトリックスおよび各項目の内容を示す辞書に対してXML化処理を施し、
前記機能マトリックスから、作成すべきソフトウエアのビジネスルールに対応するテンプレートを抽出し、
抽出されたテンプレートに対応した業務部品を選択し、
選択された業務部品を用いて生成すべきソフトウエアおよび仕様書を作成することを特徴とするソフトウエア開発方法。 - 請求項1に記載のソフトウエア開発方法において、
前記業務部品は、機能単位にテンプレートが分割されている部品コンテナ毎に格納されており、
前記業務部品の選択は、前記部品コンテナから業務部品を選択することで実行することを特徴とするソフトウエア開発方法。 - 請求項1または2に記載のソフトウエア開発方法において、
生成すべき前記ソフトウエアおよび仕様書において、前記業務部品同士の相関チェックが必要な場合には、前記業務部品同士の相関関係を示す相関チェックマトリックスを用いて前記相関チェックを行い、肯定的な判断がされた業務部品を選択することを特徴とするソフトウエア開発方法。 - 利用者により作成された、業務パターンをキーにテンプレート辞書のテンプレートファイルが対応付けられた機能マトリックスおよび各項目の内容を示す辞書に対してXML化処理を施す手段と、
前記機能マトリックスから、作成すべきソフトウエアのビジネスルールに対応するテンプレートを抽出する手段と、
抽出されたテンプレートに対応した業務部品を選択する手段と、
選択された業務部品を用いて生成すべきソフトウエアおよび仕様書を作成する手段と、
前記ソフトウエアおよび前記仕様書を出力する手段とを有することを特徴とするソフトウエア開発装置。 - 請求項4に記載のソフトウエア開発装置において、
前記業務部品は、機能単位にテンプレートが分割されている部品コンテナ毎に格納されており、
前記業務部品の選択は、前記部品コンテナから業務部品を選択することで実行することを特徴とするソフトウエア開発装置。 - 請求項3または4に記載のソフトウエア開発装置において、
さらに、前記業務部品同士の相関関係を示す相関チェックマトリックスを記憶する手段を有し、
前記業務部品を選択する手段は、生成すべき前記ソフトウエアおよび仕様書において、前記業務部品同士の相関チェックが必要な場合には、前記相関チェックマトリックスを用いて前記相関チェックを行い、肯定的な判断がされた業務部品を選択することを特徴とするソフトウエア開発装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006128845A JP2007095027A (ja) | 2005-08-29 | 2006-05-08 | ソフトウエア開発方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005246989 | 2005-08-29 | ||
JP2006128845A JP2007095027A (ja) | 2005-08-29 | 2006-05-08 | ソフトウエア開発方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007095027A true JP2007095027A (ja) | 2007-04-12 |
Family
ID=37980634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006128845A Pending JP2007095027A (ja) | 2005-08-29 | 2006-05-08 | ソフトウエア開発方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007095027A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2011099053A1 (ja) * | 2010-02-10 | 2013-06-13 | 株式会社日立製作所 | プロダクトライン型開発支援装置 |
-
2006
- 2006-05-08 JP JP2006128845A patent/JP2007095027A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2011099053A1 (ja) * | 2010-02-10 | 2013-06-13 | 株式会社日立製作所 | プロダクトライン型開発支援装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10614266B2 (en) | Recognition and population of form fields in an electronic document | |
US6915306B1 (en) | Automatic generation of data models and accompanying user interfaces | |
AU2007348312B2 (en) | System and method for knowledge extraction and abstraction | |
CN101533349B (zh) | 一种大粒度构件的平台相关模型的代码自动生成方法 | |
US20070006128A1 (en) | Method for evaluating dynamic expressions | |
CN108027721B (zh) | 用于使用控件来配置通用程序的技术 | |
JP2000137601A (ja) | オブジェクト分析設計支援方法 | |
US20020002566A1 (en) | Transfromation of marked up documents using a base architecture | |
CN107203468A (zh) | 一种基于ast的软件版本演化对比分析方法 | |
CN115358200A (zh) | 一种基于SysML元模型的模板化文档自动生成方法 | |
CN100485687C (zh) | 建立无连接的数据编程模型的方法、装置及其应用 | |
Paramonov et al. | Tacle: Learning constraints in tabular data | |
US20100275183A1 (en) | Source code auditor with a customized rules builder | |
Wojszczyk et al. | The process of verifying the implementation of design patterns—used data models | |
JP4946360B2 (ja) | ソフトウエア開発方法 | |
JP2007095027A (ja) | ソフトウエア開発方法 | |
CN113687827B (zh) | 基于微件的数据列表生成方法、装置、设备及存储介质 | |
US8719693B2 (en) | Method for storing localized XML document values | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
WO2023026409A1 (ja) | 情報処理装置、プログラム及び情報処理方法 | |
JP5167202B2 (ja) | カナ氏名によるデータの名寄せ処理方法および名寄せ処理システム、ならびにそのためのプログラム | |
JP6062735B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム | |
Riahi et al. | XML in formal specification, verification and generation of mobile HCI | |
JP6476638B2 (ja) | 固有用語候補抽出装置、固有用語候補抽出方法、及び固有用語候補抽出プログラム | |
Conforti et al. | BPMN miner 2.0: discovering hierarchical and block-structured BPMN process models |