JP4946360B2 - ソフトウエア開発方法 - Google Patents

ソフトウエア開発方法 Download PDF

Info

Publication number
JP4946360B2
JP4946360B2 JP2006298409A JP2006298409A JP4946360B2 JP 4946360 B2 JP4946360 B2 JP 4946360B2 JP 2006298409 A JP2006298409 A JP 2006298409A JP 2006298409 A JP2006298409 A JP 2006298409A JP 4946360 B2 JP4946360 B2 JP 4946360B2
Authority
JP
Japan
Prior art keywords
matrix
xml
dictionary
correlation check
container
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
JP2006298409A
Other languages
English (en)
Other versions
JP2008117095A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006298409A priority Critical patent/JP4946360B2/ja
Publication of JP2008117095A publication Critical patent/JP2008117095A/ja
Application granted granted Critical
Publication of JP4946360B2 publication Critical patent/JP4946360B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウエアを効率よく開発するための技術に関する。その中でも特に、他のプロジェクトのソースを流用して、新たなプロジェクトのソフトウエアを開発する技術に関する。
従来、ソフトウエアの開発において、他プロジェクトのソースを流用することで開発工数の削減を行ってきた。
特に、特許文献1においては、ソフトウエアの生産性を向上させるために、既存のソフトウエアを再利用して新規のソフトウエアを開発することが開示されている(ソフトウエアの流用)。ここでは、プログラマが既存ソフトウエアの仕様を記述したドキュメントやソースプログラムを解析し、修正を行うことが記載されている。
特許第3186117号公報
しかしながら、上述したようなソースプログラムを解析したソースレベルでの流用はプラットフォームに対する依存度が高く、その都度ソースプログラムを修正しなくてはいけない、との課題を抱えていた。
そこで、本発明では、仕様書からビジネスルールを抽出し、これを用いてソフトウエアの作成を行う。より詳細には以下の態様が本発明に含まれる。
利用者により作成された、業務パターンをキーにテンプレート辞書のテンプレートファイルが対応付けられた機能マトリックスおよび各項目の内容を示す辞書に対してXML化処理を施し、前記機能マトリックスから、作成すべきソフトウエアのビジネスルールに対応するテンプレートを抽出し、抽出されたテンプレートに対応した業務部品を選択し、選択された業務部品を用いて生成すべきソフトウエアの仕様書を作成する。なお、生成する業務が、相関チェックロジックを含む場合は、このロジックに対して、相関チェックマトリックスを使用して行っても良い。また排他制御が必要なプログラムの場合、機能マトリクスに排他情報(アクセス制御)を組み込むことにより、排他情報を保有したプログラムの生成を行うことが出来る。すなわち、本発明には、ER図などの機能設計書から各テーブルの親子関係を抽出し、これに基づき排他制御を実現することも含まれる。より詳細には、以下の態様も含まれる。
利用者により作成された、業務パターンをキーにテンプレート辞書のテンプレートファイルが対応付けられた機能マトリックスおよび各項目の内容を示す辞書に対してXML化処理を施し、前記機能マトリックスから、作成すべきソフトウエアのビジネスルールに対応するテンプレートを抽出し、抽出されたテンプレートに対応した業務部品を選択し、選択された業務部品を用いて生成すべきソフトウエアの仕様書を作成することを特徴とするソフトウエア開発方法において、前記ソフトウエアの機能を示す機能設計書データを記憶しておき、前記機能設計書データに基づいて、当該ソフトウエアのテーブルに対するアクセス制限を規定し、規定された前記アクセス制限に基づいて、当該開発における前記ソフトウエアに対するアクセスを制御するソフトウエア開発方法。
また、こソフトウエア開発方法において、前記テーブルはアクセス制限すべきレコードを含むテーブルであり、前記アクセス制限は、前記レコードが含まれるテーブルについて、当該テーブルに対してアクセス制限を施すことに対応して、アクセス制限すべきテーブルを特定することで規定するソフトウエア開発方法も本発明の一態様である。
さらに、このソフトウエア開発方法において、前記テーブルの特定は、前記各テーブル間のアクセス制限を施す順序を規定することで実現することを特徴とするソフトウエア開発方法も本発明に含まれる。
また、このソフトウエア開発方法において、前記アクセス制限は、前記機能設計書データから各テーブルの階層的な関係を示す親子関係を抽出し、抽出された前記親子関係に基づいて当該アクセス制限を規定することを特徴とするソフトウエア開発方法も本発明に含まれる。
またさらに、これらのソフトウエア開発方法において、前記アクセス制限には、当該テーブルに対するアクセス自体の抑止、当該テーブルの変更の抑止および当該テーブルの変更に対するアラーム出力のうち、少なくとも1つを含むことを特徴とするソフトウエア開発方法も本発明に含まれる。
なお、このソフトウエア開発方法を実現するための装置、コンピュータプログラムおよびこの開発方法で開発されるソフトウエアも本発明に含まれる。
本発明によれば、新たなソフトウエア(ソース)の生成を容易に実行することが可能になる。
本発明の実施の形態について、図面を用いて説明する。本実施の形態は、ソフトウエア製品の仲介を例に説明するが、本発明はそれに限定されるものではない。
まず、本実施の形態におけるシステム構成図を図1に示す。コンピュータは、メモリ(101)、ハードディスクを含む外部記憶装置(105)、CPU(102)などの処理装置を有し、記憶装置に格納されたプログラムに従って、処理装置が情報処理を実行するものである。外部記憶装置(105)には、図2で示す機能マトリックス(214)含むドキュメント群および、辞書類、ツール群が保存されている。
本機能の概要図を図2に示し、以下に概要を説明する。
本機能で出力するソース(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)である。
以下に(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)が出力する仕組みとなる。
また、パラメータファイル(215)は、キーワードに対する値をキーに辞書(205)のデータ項目名を取得するか、機能マトリックス(214)の値そのものを部品等に反映させるかを決定するキーワード属性を保持している。
(2)辞書XML化ツール(218)
図4に概要図を示す。
辞書(205)の項目(項目名、属性、ドメイン等)を、ソース出力に必要な項目のみ抽出し構造・意味付けを保持した形としてテンプレートが解読可能な辞書XMLファイル(219)に変換する機能(218)である。このXMLファイル化された辞書は、上述の値(論理名)をキーとして取得するソース上の「データ項目名」(物理名)が保持している。また、属性チェックで、部品を選択するためのキー情報である属性情報を保持している。辞書(205)を参照する際の処理の流れに関しては、後述の図5のステップ507、ステップ510、ステップ513を参照。
(3)ソース、ドキュメント変換エンジン(220)
機能マトリックス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)を選択する。
ステップ505では、読込んだ機能マトリックスXML(217)から対象のテンプレート(225)に紐付く部品コンテナ(223)を選択する。本処理については、マトリックスXMLで定義されている部品コンテナ数分繰り返し実行する。
ステップ506では、選択された部品コンテナ(223)をテンプレート(225)に挿入する。
ステップ507では、部品コンテナ(223)の中で、パラメータ化されている箇所を、辞書XML(219)より取得し設定する。
ステップ508では、読込んだ機能マトリックスXML(217)から対象の部品コンテナに紐付く部品(224)を選択する。本処理については、マトリックスXMLで定義されている部品数分繰り返し実行する。
ステップ509では、ステップ508で選択した部品が、属性チェックか判断する。
ステップ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に示す。
ステップ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に示す。
ステップ601からステップ602を実施することで作成する機能マトリックス(214)を図13に示す。
(2)機能マトリックスXML化手順(517)
ステップ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)を生成するため、言語の特性に依存せずにプログラム生成を可能する。
(2)テンプレート(225)・部品コンテナ(223)・部品(224)を基にプログラムを作成するため、開発者におけるプログラミング能力のバラツキがなくなり、出力するソース(222)の品質が一定となる。
(3)業務機能の流用を行う際に、各システム固有の項目情報(辞書)の変更のみで、システム構築が可能となる。具体的な理由を下記に示す。
機能仕様書(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)を切り分けて出力することが可能である。
次に、相関チェックマトリックスを使用する際の、本機能における概要図を図22に示し、以下に概要を説明する。
本機能は、上述の機能マトリックスを用いた機能に対して、相関チェックロジック部分を独立して作成する機能である。よって、本機能で出力するソース(222)及びプログラム仕様書(221)は、上述の機能で出力されるアウトプットに対して部分的なものである。なお、ソース(222)およびプログラム仕様書(221)に、他の情報と対応付けるための情報を出力してもよい。
また、ソース(222)及びプログラム仕様書(221)を生成するためのインプット情報は、機能マトリックスXML(217)と相関チェックマトリックスXML(2103)で異なるが、生成の過程(マトリックスからXMLを出力するまでの過程)は同様である。
ここで、使用する追加機能は、相関チェックマトリックスXML化ツールである。
図23に、その内容を示す。
相関チェックマトリックスXML化ツールは、相関チェックマトリックス(214)とパラメータファイル(215)を元に相関チェックロジックに特化したプログラムの構造・意味付けを保持した形としてXML化する機能(216)である。
この相関チェックマトリックス(214)は、(イ)条件部(2301)、(ロ)処理部、(ハ)条件ツリー定義部で構成される。(なお、機能マトリックスは、処理部のみで構成する。)各詳細を以下に示す。
(イ)条件部(2301)
条件部(2301)は、項目に対する分岐の条件を定義する部位である。相関チェック部品は、条件の対象項目単位となる。さらに、その項目を分岐条件単位に分割し、ノードIDを付与する。これにより、分岐条件を識別している。
この条件定義には、入力値に対して相関チェック部品によって加工した戻り値に対する条件を指定する方法と、入力項目そのものを条件に指定する方法の2通りがある。(例えば、前者の場合、入力された日付に対して、その日付が、実在日であるか、確認する部品を使用し、部品の戻り値である「真偽」に対して判定を行う方法。後者の場合は、入力された日付が、任意の日付との大小比較方法)
以下、前者を「戻り値の相関チェック」、後者を「入力項目相関チェック」とする。
相関チェック部品の戻り値に対する条件を指定する場合、設定する相関チェック部品の「名前」に関しては、業務部品辞書(206)の部品(224)とマッピングしている。マッピング方法は、上述の機能マトリックスと同様である。なお、マッピングについては、パラメータファイルを経由せずに対応付けても良い。
(ロ)処理部(2303)
条件部(2301)で定義された条件に対して達成した際の、処理内容を定義する部位である。(イ)の条件部(2301)と同様に、相関チェック部品の「名前」については、業務部品辞書(206)の部品(224)とマッピングしている。マッピング方法は、上述の機能マトリックスと同様である。なお、マッピングについては、パラメータファイルを経由せずに対応付けても良い。
(ハ)条件ツリー部(2302)
条件の順序(条件ツリー定義)と条件に対応する処理順序(処理ツリー定義)を定義する部位である。図5に示すように、条件ツリー部(2302)には、条件部(2301)で定義したノードIDを使用し、条件の組み合わせとチェック順序、条件に対応する処理順序を定義する。条件ツリー定義内の「親ノードID」欄にノードIDを定義することで、条件間に階層構造(親子関係)を持たせている。以下、定義した条件の中で優先条件を「親」と呼ぶ。親の条件に付随する条件を「子」と呼ぶ。
親子関係は、「ノードID」欄と「親ノードID」欄で表現する。子となる条件の「親ノード」欄に、親となる条件のノードIDを記述する。ただし、一番目に判断すべき条件の「親ノード」欄は「-」とする。なお、条件ツリー定義は条件ツリー定義1から順に処理を行い、評価順序に従い、処理を行う。
次に、本実施の形態の処理内容について、図24を参照しながら詳細を説明する。
相関チェックマトリックスを使用の際には、図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)からの生成時と変わらない。
以下に上述で記載されている相関チェックマトリックス(2101)作成およびXML化の詳細を図25と図42を参照しながら説明する。
(1)相関チェックマトリックス作成手順
ステップ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に示す。
(2)相関チェックマトリックスXML化手順
ステップ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)を図53に示す。この相関チェックマトリックス(2103)は、入力である相関チェックマトリックスが、「条件部(2301)」と「条件ツリー」が機能マトリックスと比較すると追加されているため、出力されるXMLについても、その分の情報が付加されている。
次にプログラム内に排他制御処理を保有する排他制御フレームの実現方法について述べる。排他制御フレームは、アクセス対象のレコードを含むテーブルを指定することで、ロックすべきテーブル(親)の特定と特定されたテーブル間のロック順序の特定を行う。例えば、図54に示すテーブルA(5404)とテーブルB(5409)とテーブルC(5412)を更新対象にした場合、ロックをすべきテーブルX(5401)とテーブルY(5406)、テーブルZ(5410)(それぞれ各テーブルの親テーブル)を特定する。そして、機能設計書に従い仕様に応じた順序で特定された親テーブル間のロック順序を特定する。
この処理に関しては、上述の機能マトリックスを用いたソース生成方式に対して機能マトリクスにテーブルロックデータを保有したマトリクス部位を追加することにより実現する。よって、機能マトリクス作成以降のソース生成の流れは同じになる。図55に機能マトリクスに排他制御情報を追加するまでの流れを示す。
図55に示す様に、本機能では外部設計(5502)とER図(5501)からの情報を元にしたテーブル間の親子関係定義、親テーブル情報定義なるドキュメントが作成されていることを前提としている。親子関係定義とはプログラムが使用するDB環境においてのテーブル同士の親子関係を、設計に基づき図56の様に表形式(5503)でまとめたものであり、親テーブル情報定義は同DB環境においての親テーブル間のロック優先順位を同様に設計に基づき図57の様に定義(5504)したものである。図55に示す排他制御フレームマトリクス開発支援ツール(5505)がこれらのドキュメントを読み込むことで順序立ったテーブルロック情報を保有した排他制御マトリクスを作成することが出来る。
これらについて例をあげて説明する。
例として図54に示すようなDB環境でソースが生成される場合を想定する。今回、テーブルA(5404)とテーブルB(5409)、テーブルC(5412)に更新をかけるものとする。この時、まず図56に示す親子関係定義(5503)を元に各アクセス対象テーブルの親テーブルを特定する。この場合、テーブルX(5401)(テーブルAの親テーブル)、テーブルY(5406)(テーブルBの親テーブル)、テーブルZ(5410)(テーブルCの親テーブル)となる。次に図57に示すような親テーブル情報定義(5504)により特定されたテーブルX(5401)、テーブルY(5406)、テーブルZ(5410)のアクセス順序(ロック順序)を決定する。この情報を機能マトリクス(214)に組み込むことで、テーブルロック情報を保有したソースを生成することが出来、デッドロックを防ぐことが出来る。
このロジックを実現するのが排他制御フレームマトリクス開発支援ツールである。具体的な動きをフロー図58に示す。
ステップ5801では、作業者が業務フレーム支援ツール(5505)にアクセス対象テーブル名を入力し、生成ボタンを押下する。(図59)
ステップ5802では、業務フレーム支援ツール(5505)が、ステップ5801で入力されたテーブル名を基に親テーブル情報定義(5503)を参照する。
ステップ5803では、業務フレーム支援ツール(5505)が、ステップ5802での参照結果により、各入力テーブルの親テーブル名を特定する(図60)
ステップ5804では、業務フレー支援ツール(5505)が、特定された親テーブル名をキーにしてレコードロック順序定義(5504)を参照する。
ステップ5805では、業務フレーム支援ツール(5505)が、ステップ5804の参照結果により、各テーブルロック対象親テーブルのロック順序項番を獲得する。(図61)
ステップ5806では、業務フレーム支援ツール(5505)が、各ロック対象親テーブルをロック順序項番により昇順に並べ替えた上、排他制御フレームマトリクス(5506)上に格納する。(図62)
ステップ5807では、作業者が生成された排他制御フレームマトリクス部分を機能マトリクス(214)の該当部分にコピーアンドペーストする。(図63)
これらの作業により排他制御機能を保有した機能マトリクスを作成することが出来る。
つまり、仕様に基づいた親子関係定義、親テーブル間定義があらかじめ定義されているため、開発者はロック順序を意識することなくマトリクス支援ツールにアクセス対象テーブルを入力するだけで、仕様に沿ったロック順序でテーブルをロックするプログラムを自動的に生成することが可能になる。
システム構成図 機能構成図 機能マトリックスと機能マトリックスXMLマッピング概要図 辞書フォーマット(例)と辞書XMLフォーマット ソース/プログラム仕様書出力までのフロー図 機能マトリックス作成フロー 機能マトリックス作成時のテンプレート情報のセットサンプル 機能マトリックス作成時のプログラム情報セットサンプル 機能マトリックス作成時の部品コンテナセットサンプル 機能マトリックス作成時の部品セットサンプル 機能マトリックス作成時のキーワードセットサンプル 機能マトリックス作成時の値セットサンプル 機能マトリックス完成サンプル 機能マトリックスXML作成フロー 機能マトリックスXML作成時のプログラム情報セットサンプル 機能マトリックスXML作成時の部品コンテナ属性セットサンプル 機能マトリックスXML作成時のコンテナキーワード属性セットサンプル 機能マトリックスXML作成時の部品属性セットサンプル 機能マトリックスXML作成時のキーワード・値属性セットサンプル 機能マトリックス完成サンプル 機能マトリックスからソース生成・ドキュメント出力までの全体像 相関チェックマトリックスを使用する際の機能構成図 相関チェックマトリックス・XMLマッピング概要図 ソース/プログラム仕様書出力までのフロー図(相関チェック部位) 相関チェックマトリックス作成フロー 相関チェックマトリックス作成時の相関チェックIDのセットサンプル 相関チェックマトリックス作成時の条件部の部品名セットサンプル 相関チェックマトリックス作成時の条件部のキーワードセットサンプル 相関チェックマトリックス作成時の条件部の項目値セットサンプル 相関チェックマトリックス作成時の条件部の項目名セットサンプル 相関チェックマトリックス作成時の条件部の条件値セットサンプル 相関チェックマトリックス作成時の条件部の項目値セットサンプル 相関チェックマトリックス作成時の条件ツリーのノードIDセットサンプル 相関チェックマトリックス作成時の条件ツリーの親ノードIDセットサンプル 相関チェックマトリックス作成時の条件ツリーの評価順序セットサンプル 相関チェックマトリックス作成時の処理部の部品名セットサンプル 相関チェックマトリックス作成時の処理部のキーワードセットサンプル 相関チェックマトリックス作成時の処理部の値セットサンプル 相関チェックマトリックス作成時の処理部の処理対象IDセットサンプル 相関チェックマトリックス作成時の処理部の処理順序セットサンプル 相関チェックマトリックス完成サンプル 相関チェックマトリックスXML作成フロー 相関チェックマトリックスXML作成時のヘッダーセットサンプル 相関チェックマトリックスXML作成時の相関チェックIDセットサンプル 相関チェックマトリックスXML作成時のパターンセットサンプル 相関チェックマトリックスXML作成時の評価順序セットサンプル 相関チェックマトリックスXML作成時の条件部の部品名セットサンプル 相関チェックマトリックスXML作成時の条件部の項目名セットサンプル 相関チェックマトリックスXML作成時の条件部の式セットサンプル 相関チェックマトリックスXML作成時の条件部の条件値セットサンプル 相関チェックマトリックスXML作成時の処理部条件ツリーセットサンプル 相関チェックマトリックスXML作成時の処理部の部品セットサンプル 相関チェックマトリックスの一例 親子関係をもつDB環境のサンプル 排他制御マトリックス作成フロー 親子関係定義のサンプル 親テーブル情報定義のサンプル 業務マトリクス出力までの処理フロー 業務フレーム支援ツールの概略図 業務フレーム支援ツールによる親テーブル特定のメカニズム 業務フレーム支援ツールによるロック順序特定のメカニズム 排他制御マトリクス生成 機能マトリクスへの転記
符号の説明
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化ツール、5401…テーブルX、5402…テーブルR、5403…テーブルQ、5404…テーブルA、5405…テーブルP、5406…テーブルY、5407…テーブルU、5408…テーブルS、5409…テーブルB、5410…テーブルZ、5411…テーブルT、5412…テーブルC、5501…ER図、5502…外部設計、5503…親子関係定義、5504…親テーブル情報定義、5505…排他制御フレームマトリクス開発支援ツール、5506…排他制御フレームマトリクス

Claims (1)

  1. 開発対象のソフトウエアに関する機能設計書、テンプレート仕様書、部品コンテナ仕様書、部品仕様書及び辞書を基に開発者により作成された、前記ソフトウエアの業務パターンをキーにテンプレート辞書のテンプレートとマッピングされ、コンテナ名、部品名をキーとして、
    業務部品辞書の部品コンテナおよび部品とマッピングされた機能マトリックスを、パラメータファイルを参照してXML化し、
    前記辞書をXML化し、XML化された機能マトリックスXML、辞書XML、前記業務部品辞書の部品コンテナ部品及び前記テンプレート辞書のテンプレートを基に、プログラム仕様書を作成し、
    予め作成された、外部設計とER図からの情報を元にしたテーブル間の親子関係定義、親テーブル情報定義を示すドキュメントを用いて、排他制御フレームマトリクスを前記機能マトリクスに組み込むことで、排他制御を行うことを特徴とするソフトウエア開発方法。
JP2006298409A 2006-11-02 2006-11-02 ソフトウエア開発方法 Expired - Fee Related JP4946360B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006298409A JP4946360B2 (ja) 2006-11-02 2006-11-02 ソフトウエア開発方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006298409A JP4946360B2 (ja) 2006-11-02 2006-11-02 ソフトウエア開発方法

Publications (2)

Publication Number Publication Date
JP2008117095A JP2008117095A (ja) 2008-05-22
JP4946360B2 true JP4946360B2 (ja) 2012-06-06

Family

ID=39502963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006298409A Expired - Fee Related JP4946360B2 (ja) 2006-11-02 2006-11-02 ソフトウエア開発方法

Country Status (1)

Country Link
JP (1) JP4946360B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789727B2 (en) * 2019-10-30 2023-10-17 Nippon Telegraph And Telephone Corporation Conversion apparatus, conversion method and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204301A (ja) * 1996-01-29 1997-08-05 Hitachi Ltd プログラム生成システム
JPH09330214A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd プログラム自動生成方式
JPH1031586A (ja) * 1996-07-15 1998-02-03 Nec Corp プログラム生成装置

Also Published As

Publication number Publication date
JP2008117095A (ja) 2008-05-22

Similar Documents

Publication Publication Date Title
US6915306B1 (en) Automatic generation of data models and accompanying user interfaces
US7668873B2 (en) Data store for software application documents
JP3856969B2 (ja) オブジェクト分析設計支援方法
US5930806A (en) Method and system for data migration from network database to relational database
US7814101B2 (en) Term database extension for label system
US7783637B2 (en) Label system-translation of text and multi-language support at runtime and design
CN108762743B (zh) 一种数据表操作代码生成方法及装置
CN108027721B (zh) 用于使用控件来配置通用程序的技术
US20170154019A1 (en) Template-driven transformation systems and methods
US20020002566A1 (en) Transfromation of marked up documents using a base architecture
CN115358200A (zh) 一种基于SysML元模型的模板化文档自动生成方法
US20080086683A1 (en) Reporting engine for object relational networks
CN114443006A (zh) 一种基于模板自适应的软件设计方法
CN100485687C (zh) 建立无连接的数据编程模型的方法、装置及其应用
Paramonov et al. Tacle: Learning constraints in tabular data
US20100275183A1 (en) Source code auditor with a customized rules builder
JP4946360B2 (ja) ソフトウエア開発方法
Wojszczyk et al. The process of verifying the implementation of design patterns—used data models
JP2007095027A (ja) ソフトウエア開発方法
AU2020200471A1 (en) Web Application Builder
Gaafar et al. Towards a framework for mapping between UML/OCL and XML/XQuery
JP2015167005A (ja) 書類、バリデーションチェック及び開発ドキュメント作成用コンパイラ及びそれを用いた稟議システム
WO2023026409A1 (ja) 情報処理装置、プログラム及び情報処理方法
JP3345522B2 (ja) データ項目部品を利用するプログラム開発支援装置
JP2012164177A (ja) プログラム自動生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120123

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120220

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4946360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees