JP4908073B2 - サービスベースソフトウェア設計支援方法及びそのための装置 - Google Patents

サービスベースソフトウェア設計支援方法及びそのための装置 Download PDF

Info

Publication number
JP4908073B2
JP4908073B2 JP2006165568A JP2006165568A JP4908073B2 JP 4908073 B2 JP4908073 B2 JP 4908073B2 JP 2006165568 A JP2006165568 A JP 2006165568A JP 2006165568 A JP2006165568 A JP 2006165568A JP 4908073 B2 JP4908073 B2 JP 4908073B2
Authority
JP
Japan
Prior art keywords
output
service
input
software design
name
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
JP2006165568A
Other languages
English (en)
Other versions
JP2007334627A (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 JP2006165568A priority Critical patent/JP4908073B2/ja
Priority to US11/785,061 priority patent/US8099715B2/en
Publication of JP2007334627A publication Critical patent/JP2007334627A/ja
Application granted granted Critical
Publication of JP4908073B2 publication Critical patent/JP4908073B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Stored Programmes (AREA)

Description

本発明は、再利用を考慮して部品化されたソフトウェア部品であるWebサービスやコンポーネント等(以下、まとめて「サービス」と呼ぶ)を組み合わせることによって行われるソフトウェアの設計方法(以下、サービスベースソフトウェア設計)に関し、特に、ソフトウェア部品内でのサービス間における入出力変数の接続組み合わせの構築を支援するサービスベースソフトウェア設計支援方法、及び、そのための装置に関する。
従来、サービスを組み合わせて構築するソフトウェアの設計においては、ソフトウェア内の各サービスの処理順序をBPMN(Business Process Modeling Notation)やBPEL4WS(Business Process Execution Language for Web Services)等のプロセスフロー言語で記述することによって、設計者が理解し易い形式でソフトウェアの動作仕様を記述することを可能にし、もって、ソフトウェア設計の効率を上げる試みが多く行なわれている。しかしながら、各サービスが生成するデータのやり取り、即ち、データフローについては、通常、設計者が各サービスの入出力変数を調べ、あるサービスの出力変数から得られるデータを別のサービスの入力変数に代入するといった対応付けを行う必要があることから、なお、工数が掛かるといった問題があった。
そこで、上述したサービスをベースとしたソフトウェア設計においては、例えば、以下の特許文献により知られるように、サービス間の入出力の対応付けを行う方法が幾つか提案されている。
特開平10−222357号公報 特開2005−317007号公報
即ち、特許文献1では、サービス内のデータ名と入出力インタフェースとを対応付けたメタデータを蓄積した上で設計者が必要とするデータ名を入力すると、それを提供するサービスをメタデータから検索してアイコンで図示し、もって、サービス間のデータのやり取りをグラフィカルにリンクによって結び付けることでソフトウェアを構築するデータ再利用によるソフトウェア構築方法及びシステムが提案されている。
また、特許文献2では、各サービスにおいて満たす必要がある入出力データや性能等の制約条件を予め知識ベースとして蓄積しておき、設計者の要求仕様に基づく制約条件を満たすサービスを検索し、それらを組み合わせることでワークフローを生成し、更にその後、生成したワークフローに対応するペトリネットを生成してデータの流れのシミュレーションを行うことによって、スループットが最適な候補を選択するワークフロー自動生成システム、及び、ワークフロー分析及び制御システムが提案されている。
上述した通り、従来技術においても、サービスベースソフトウェア設計において、サービス間の入出力の対応付けを行う際に設計者の負担を軽減する方法が既に提案されており、これらを用いることで、その設計工数を削減することが期待できる。
しかしながら、上記特許文献1により知られる方法を使用した場合、サービスをアイコンにより表示すると共に入出力データの接続をリンクで図示することにより、グラフィカルな操作環境を提供することによって入出力の対応付けを設計者が容易に行うことが出来るようにしているものの、しかしながら、その対応付け自体は、やはり、従来と同様に、設計者が手作業で行う必要があった。
一方、上記特許文献2により知られる方法を使用した場合には、設計者の要求仕様と共に、知識ベースに蓄積された各サービスの制約条件を満たすよう、サービス間の入出力データを接続したワークフローを自動的に生成し、もって、シミュレーションの結果が良いものを提示することで設計者の負担を軽減している。しかしながら、この特許文献において記載された知識ベースにおける入出力データの制約の内容は、所謂、サービスの型など、形式的な制約のみを想定している。そのため、形式上は接続が可能ではあるが、実際には接続することが出来ない、あるいは、実際のソフトウェア設計では接続しないような入出力データの接続まで排除することは不可能であり、なお、設計者に負担を強いるものであった。
そこで、本発明は、上述した従来技術における課題に鑑みて達成されたものであり、即ち、プロセスフロー言語で記述を行うサービスベースアプリケーション設計において、設計者の負担を軽減して、ソフトウェア部品内でのサービス間における入出力変数の接続組み合わせの構築を可能にするサービスベースソフトウェア設計支援方法及びそのための装置を提供することを目的とする。
本発明では、上記の目的を達成するため、まず、特定の機能を実行するソフトウェア部品であるサービスを複数組み合わせて行なわれるソフトウェアの設計を支援するためのサービスベースソフトウェア設計支援方法であって、前記サービスの1つ又は複数を組み合わせてその処理順序を定義したサービスプロセスフローを入力し、前記入力したサービスプロセスフローを対象に、指定した1のサービスが有する1又は複数の入力変数に対してそれぞれのデータを提供し、そして、前記指定したサービスより以前に存在する他のサービスの出力変数を1つずつ対応付けることによってソフトウェアの設計を支援するものにおいて、更に、前記指定したサービスが有する全ての入力変数に対して、前記対応付けの全ての可能な組み合わせを生成し、過去のソフトウェア設計の履歴情報に基づいて、前記生成した組み合わせについての生成確率を計算し、そして、前記計算した生成確率が予め定めた条件を満たす組み合わせを抽出して出力するサービスベースソフトウェア設計支援方法が提供される。
なお、本発明では、前記に記載したサービスベースソフトウェア設計支援方法において、前記過去のソフトウェア設計の履歴情報として、過去のソフトウェア設計における任意のサービスの入力変数に対して別の任意のサービスの出力変数を対応付けた回数を、入力変数の名称、出力変数の名称、前記入力変数を有するサービスの名称、前記出力変数を有するサービスの名称の組み合わせで記録した直接接続履歴を含んでいることが好ましく、更には、過去のソフトウェア設計における複数の入力変数を持つ任意のサービスの前記複数の入力変数のそれぞれに対して別の任意のサービスの複数の出力変数を対応付けた回数を、前記複数の出力変数の一の出力の名称、前記一の出力を有するサービスの名称、前記出力変数のうち前記一の出力と異なる他の出力の名称、前記他の出力を有するサービスの名称の組み合わせで記録した間接接続履歴を含んでいることが好ましい。
加えて、本発明によれば、やはり上記の目的を達成するため、特定の機能を実行するソフトウェア部品であるサービスを複数組み合わせて行なわれるソフトウェアの設計を支援するためのサービスベースソフトウェア設計支援装置であって、過去のソフトウェア設計におけるサービスの入出力データの接続履歴情報を蓄積する記憶装置と、前記サービスの1つ又は複数を組み合わせてその処理順序を定義したサービスプロセスフローを入力すると共に、入力した当該サービスプロセスフロー中の任意のサービスを選択する入力部と、前記入力部により選択された任意のサービスが有する全ての入力変数に対して、対応付けの全ての可能な組み合わせを生成し、かつ、前記記憶装置に蓄積した過去のソフトウェア設計におけるサービスの入出力データの接続履歴情報に基づいて、前記生成した組み合わせについての生成確率を計算する処理装置と、そして、前記処理装置により計算された前記生成確率を基にして、予め定めた条件を満たす組み合わせを出力する出力部とを備えているサービスベースソフトウェア設計支援装置が提供される。
なお、本発明では、前記に記載したサービスベースソフトウェア設計支援装置において、前記記憶装置は、過去のソフトウェア設計における任意のサービスの入力変数に対して別の任意のサービスの出力変数を対応付けた回数を、入力変数の名称、出力変数の名称、前記入力変数を有するサービスの名称、前記出力変数を有するサービスの名称の組み合わせで記録した直接接続履歴テーブルと、前記過去のソフトウェア設計の履歴情報としては、更に、過去のソフトウェア設計における複数の入力変数を持つ任意のサービスの前記複数の入力変数のそれぞれに対して別の任意のサービスの複数の出力変数を対応付けた回数を、前記複数の出力変数の一の出力の名称、前記一の出力を有するサービスの名称、前記出力変数のうち前記一の出力と異なる他の出力の名称、前記他の出力を有するサービスの名称の組み合わせで記録した間接接続履歴テーブルとを備えていることが好ましい。
上述した本発明になるサービスベースソフトウェア設計支援方法、又は、そのための装置をサービスベースのソフトウェア設計に適用することによれば、過去のソフトウェア設計履歴およびサービスの実行順序を記したサービスプロセスフローがあればサービスプロセスフロー内の各サービスの入力と他サービスの出力との接続組み合わせを半自動的に得ることが可能となり、ソフトウェア設計者の負担を軽減することが可能となるという、優れた効果を発揮する。
以下、本発明の実施の形態について、添付の図面を参照しながら詳細に説明する。
まず、添付の図1により、本発明になるサービスベースソフトウェア設計支援方法を実施するソフトウェアを含む全体構成図を示す。
この図1において、入力を構成するサービスプロセスフロー4000とは、上述したBPMNやBPEL4WS等のフロー言語で記述されており、図にも示すように、例えば、「1:顧客情報検索」、「2:商品情報検索」、「3:与信確認」など、実行するサービスをアクティビティ(ノード)で表し、かつ、サービス実行の時間的な前後関係を有向リンクで表したもの、即ち、ソフトウェアの動作手順を記述したフローである。なお、本実施の形態におけるサービスプロセスフロー4000のデータ形式の一例は、図4に示す通り、当該サービスプロセスフロー4000内でアクティビティを一意に識別するためのアクティビティID4001と、当該アクティビティにより実行するサービスの名称を記述したサービス名4002と、前記サービスの入力データ名の一覧をカンマ等の区切り記号を使って並べた入力変数リスト4003と、前記サービスの出力データ名の一覧をカンマ等の区切り記号を使って並べた出力変数リスト4004と、そして、前記サービスの実行後の遷移先アクティビティを指定する遷移先アクティビティID4005とによってアクティビティレコード4010を構成しており、そして、当該アクティビティレコード4010を、上記アクティビティの個数分だけ繰り返して記述してなるものである。なお、これらのアクティビティレコードにおいて、そのアクティビティIDが「START」となっているレコードは、開始アクティビティを、他方、「END」となっているレコードは、終了アクティビティを表している。
また、やはり図1において、入力を構成する処理対象アクティビティID4100とは、上記サービスプロセスフロー4000における複数のアクティビティのうち、入出力組み合わせ生成プログラム3000による入力変数の対応付けの対象となるアクティビティについてのアクティビティIDであり、図示の例では、「ID:3」であり、これは、上記サービスアクティビティのうち、「3:与信確認」が指定・選択された例を示している。なお、より正確には、入力変数の対応付けを行う対象は前記アクティビティに対応付けられたサービスであるが、しかしながら、説明の簡単のため、以下ではアクティビティ間での入出力組み合わせを考えることとする。
更に、図の下方に示した出力を構成する入出力組み合わせリスト5100とは、上記処理対象アクティビティID4100が指すアクティビティ(図の例では、「ID:3」の「3:与信確認」)について、その各入力変数とその入力変数に代入するデータを提供するアクティビティの出力変数との組み合わせを、当該処理対象アクティビティID4100が指すアクティビティの入力変数の数だけ繰り返して記述した入出力組み合わせ5000を、以下に説明する入出力組み合わせ生成プログラム3000が出力した数だけ、繰り返して記述したものであり、例えば、以下の表示装置2004上に表示されることとなる。なお、この例では、出力変数である「1:顧客情報検索.出力(カード番号)」と、それに対する入力変数「3:信用確認.入力(カード番号)」の組み合わせ、そして、出力変数「2:商品情報検索.出力(価格)」と、それに対する入力変数としての「3:信用確認.入力(支払額)」が一例として示されている。
なお、この入出力組み合わせ5000のデータ形式の一例は、図5に示す通りであり、即ち、各入出力接続レコード5010は、出力データを提供する出力サービス名5001及びその出力変数名5002と、上記処理対象アクティビティID4100に対応するサービスの名称である入力サービス名5003と、前記出力データが代入される入力変数名5004とによって構成されており、そして、当該入出力接続レコード5010を上記入力サービス名5001が指すサービスの入力変数の数だけ繰り返して記述すると共に、それに加えて、更には、上記入出力組み合わせ生成プログラム3000によって計算された入出力組み合わせ確率5020を付加したものである。
また、図の左方に示す参照情報を構成する入出力直接接続履歴テーブル6000は、過去の複数回にわたるソフトウェア構築において、例えば、あるサービスAの出力変数Xから得られるデータが別のサービスBの入力変数Yに代入された回数、即ち、Xが直接Yと接続した回数を、これらサービスとその変数の組、例えば、A、X、B、Yと共に、テーブル形式で保存したものである。なお、この入出力直接接続履歴テーブル6000のデータ形式の一例は、図6に示す通りであり、即ち、各直接接続レコード6010は、出力データを提供するサービス(上記サービスAに相当)の名称である出力サービス名6001及びその出力変数(上記出力変数Xに相当)の名称である出力変数名6002と、前記出力データが代入されるサービス(上記サービスBに相当)の名称である入力サービス名6003及びその入力変数(上記変数変数Yに相当)の名称である入力変数名6004と、前記サービス及び変数の組み合わせがソフトウェア構築に使用された回数である接続回数6005とによって構成されており、そして、当該直接接続レコード6010を、過去のソフトウェア構築に存在した組み合わせ分だけ繰り返して記述したものに加えて、更には、全ての直接接続レコード6010の接続回数6005の総和である、所謂、合計回数6020を付加したものである。
更に、入出力間接接続履歴テーブル7000は、過去の複数回のソフトウェア構築において、例えば、あるサービスAの出力変数X及び別のサービスBの出力変数Yが、これらA及びBとは別のサービスCの異なる入力P、Qにそれぞれ代入されて使用された回数、すなわち、変数X及びYが他のサービスを介して間接的に接続した回数を、これらサービスとその変数の組、例えば、A、X、B、Yと共に、テーブル形式で保存したものである。なお、この入出力間接接続履歴テーブル7000のデータ形式の一例は、図7に示す通りであり、即ち、各間接接続レコード7010は、出力データを提供する一方のサービス(上記サービスAに相当)の名称であるサービス名A7001及びその出力変数(上記出力Xに相当))の名称である出力変数名A7002と、出力データを提供する他方のサービス(上記サービスBに相当)の名称であるサービス名B7003及びその出力変数(上記出力Yに相当)の名称である出力変数名B7004と、前記サービス及びその変数の組み合わせがソフトウェア構築に使用された回数である、接続回数7005によって構成されており、そして、当該間接接続レコード7010を、過去のソフトウェア構築において存在した組み合わせ分だけ繰り返して記述したものに加えて、更には、全ての間接接続レコード7010の接続回数7005の総和である、所謂、合計回数7020を付加したものである。
次に、入出力組み合わせ生成プログラム3000は、上述した入出力直接接続履歴テーブル6000及び入出力間接接続履歴テーブル7000を参照し、入力である上記サービスプロセスフロー4000及び処理対象アクティビティID4100から、出力である入出力組み合わせリスト5100を生成するプログラムである。この入出力組み合わせ生成プログラム3000は、一時使用データの初期化等を行う初期設定部3100と、矛盾のない入出力変数の組み合わせを、網羅的に、逐次生成するための入出力組み合わせ候補生成部3200と、上記入出力組み合わせ候補生成部3200が生成した入出力変数の組み合わせに対し、入出力直接接続履歴テーブル6000を参照することにより、各入出力変数接続が独立であると仮定してその入出力組み合わせ確率を計算するための接続確率概算部3301と、接続確率概算部3300にて計算した接続確率に対し、上記入出力間接接続履歴テーブル7000及び入出力直接接続履歴テーブル6000を参照することにより補正を行うための入出力組み合わせ確率補正処理3401と、そして、入出力組み合わせ確率が高い入出力変数の組み合わせを出力するための入出力組み合わせリスト出力処理3501とによって構成されている。
次に、以上にそのソフトウェア構成を説明した本発明のサービスベースソフトウェア設計支援方法を実施するためのハードウェア構成であるソフトウェア設計支援装置の一例について、添付の図2を参照しながら、以下に説明する。
この図2において、ソフトウェア設計支援装置2000は、処理装置2001、記憶装置2002、入力装置2003、表示装置2004、及び、前記各装置を接続するバス2005から構成される。
上記の構成において、処理装置2001は、例えばCPU、MPU等からなっており、命令群を上記記憶装置2002から逐次読み込み、そして、読み込んだ各命令に対応する演算や操作を行うための装置である。なお、本実施の形態において、上記処理装置2001は、記憶装置2002から上述した入出力組み合わせ生成プログラム3000を読み込んで実行する。
一方、記憶装置2002は、例えばハードディスク装置やフラッシュメモリ、RAM(Random Access Memory)等、その内部にデータを保持する装置から構成される。そして、この記憶装置2002は、本実施の形態においては、上述した入出力組み合わせ生成プログラム3000、サービスプロセスフロー4000、処理対象アクティビティID4100、入出力直接接続履歴テーブル6000、そして、入出力間接接続履歴テーブル7000を格納している。更に、この記憶装置2002は、上記入出力組み合わせプログラム3000の処理中においては、上述した入出力組み合わせ候補リスト2101、入力変数テーブル2102、そして、出力変数テーブル2103を格納し、また、上記入出力組み合わせプログラム3000の処理結果として、上述した入出力組み合わせリスト5100をもその内部に格納する。
また、入力装置2004は、例えば、キーボードやマウス、タッチパネル、タブレット等から構成され、ユーザからの入力を上記処理装置2001に伝達するための装置である。なお、本実施の形態においては、上記入出力組み合わせ生成プログラム3000の入力となるサービスプロセスフロー4000及び処理対象アクティビティID4100が、その入力の対象となり得る。
更に、表示装置2005は、例えば、液晶やプラズマパネル、又は、ブラウン管等のディスプレイ、又は、プロジェクタ等から構成され、上記処理装置2001からの命令に基づいて描画を行う装置である。なお、本実施の形態においては、上述した入出力組み合わせ生成プログラム3000の出力となる、上記入出力組み合わせリスト5100がその描画対象となり得る。
なお、上記のハードウェア構成では、上述した入出力組み合わせプログラム3000と共に、入力を構成するサービスプロセスフロー4000や処理対象アクティビティID4100、参照情報を構成する入出力直接接続履歴テーブル6000や入出力間接接続履歴テーブル7000、一時データを構成する入出力組み合わせ候補リスト2101、入力変数テーブル2102、そして出力変数テーブル2103、更には、出力を構成する入出力組み合わせリスト5100が、上記同一の記憶装置2002内に格納されているものとして説明した。しかしながら、本発明ではこれに限定されることはなく、例えば上記のデータが、それぞれ個別の記憶装置に格納されており、又は、通信回路によって接続された他の装置の記憶装置内に格納されていてもよい。
以上にそのソフトウェア構成とハードウェア構成について説明した本発明のサービスベースソフトウェア設計支援方法において、その特徴となる処理、すなわち、上記入出力組み合わせ生成プログラム3000の処理手順の詳細について、以下、図3を参照しながら説明を加える。
この入出力組み合わせ生成プログラム3000における処理の概要は、まず、上記図1にける初期設定部3100に対応するステップ3101〜3103において初期設定を行った後、入出力の組み合わせ候補生成部3200に対応するステップ3201〜3202において、上記入出力組み合わせ候補リスト2101には存在しない入出力変数接続の組み合わせを生成する。そして、この生成した入出力組み合わせに対し、入出力組み合わせ確率概算処理3301及び入出力組み合わせ確率補正処理3401において、入出力組み合わせ確率を計算するための処理を、全ての矛盾のない入出力変数の組み合わせに対して繰り返し、その後、予め定められた基準に基づいて、接続確率の高い入出力組み合わせを、入出力組み合わせリスト5000の形で、出力することにより実行される。
以下、その詳細な処理手順について述べる。
まず、ステップ3101において、上記一時データ(図2を参照)における入出力組み合わせ候補リスト2101を空に設定する。なお、この入出力組み合わせ候補リスト2101のデータ形式は、上記入出力組み合わせリスト5100(図1を参照)と等しく、即ち、上記図5にそのデータ形式の一例を示した入出力組み合わせ5000を任意の個数分だけ繰り返し記述したものである。そして、このステップ3010の時点では、その要素数(個数)は零(0)である。
次に、ステップ3102では、処理対象アクティビティID4100(図1の入力を参照)が指すアクティビティのアクティビティレコード4010(図4を参照)内の入力変数リスト4003を、サービスプロセスフロー4000から取得し、そして、その区切り記号によって分けられた各要素を、上記図2に示した記憶装置2002の入力変数テーブル2102に格納する。なお、この入力変数テーブル2102のデータ形式の一例は、添付の図8に示す通りであり、即ち、各入力変数レコード8010は、1又は任意の値から始まる整数により連続した番号が付されたレコード番号8001と、上記図4における入力変数リスト4003の一要素である入力変数名8002と、やはり図4における出力変数リスト4004の要素との間の対応付けを一時的に記録するための出力変数レコード番号8003とによって構成されており、そして、当該入力変数レコード8010を、上記処理対象アクティビティID4100が指すアクティビティのアクティビティレコード4010(図4を参照)における入力変数リスト4003の要素の数だけ、繰り返して記述したものである。また、出力変数レコード番号8003は、このステップ3102の時点では、全て1に(又は、以下に示す出力変数テーブル9000のレコード番号9001(図9を参照)の最小値)設定しておく。
次に、ステップ3103においては、上記処理対象アクティビティID4100が指すアクティビティに対して出力データを提供することが可能なアクティビティ、即ち、上記サービスプロセスフロー4000上において、開始アクティビティと処理対象アクティビティID4100が指すアクティビティとの間に存在するアクティビティの出力変数リスト4004を、当該サービスプロセスフロー4000から取得し、これを、上記図2の一時データを構成する出力変数テーブル2103として、記憶装置2002内に格納する。なお、これは、サービスプロセスフロー4000の各アクティビティレコード4010(図4を参照)に対し、その遷移先アクティビティID4005が指すアクティビティレコード4010(この例では、アクティビティIDが「2」のレコード)を順次取得して(なお、その際、分岐や並列等により遷移先アクティビティID4005が複数存在する場合には、それらの全ての遷移先を取得する)、それによって得られるリンクを順次たどる処理を繰り返し、そして、処理対象アクティビティID4100が指すアクティビティレコード4010が得られる場合には、当該リンクの始点となるアクティビティレコード4010における出力変数リスト4004(図4を参照)の区切り記号によって分けた各要素を、そのサービス名4002を付加して、出力変数テーブル2103に(上記図2における一時データを参照)追記することによって実行される。なお、この出力変数テーブル2103のデータ形式の一例は、添付の図9に示す通りであり、即ち、各出力変数レコード9010は、1又は任意の値で始まり整数により連続した番号を付番したレコード番号9001と、サービス名9002と、そして、出力変数名9003とによって構成されており、そして、当該出力変数レコード9010を、上記ステップ3103において得られた出力変数の数だけ繰り返して記述したものである。
次に、上記接続組み合わせ候補生成部3200を構成するステップ3201においては、上記入出力組み合わせ候補リスト2101(図2の一時データを参照)に含まれていない入出力組み合わせが存在するか否かを調べる。なお、これは、上記一時データにおける入力変数テーブル2102の各レコード8010(図8を参照)に対し、その出力レコード番号8003が指す出力変数レコード9010(図9を参照)におけるサービス名9002を出力サービス名5001とし、その変数名9003を出力変数名5002とし、また、処理対象アクティビティID4100が指すアクティビティレコード4010(図4を参照)のサービス名4002を入力サービス名5003とし、そして、各レコード8010の変数名8002を入力変数名5004とすることによって上記入出力接続レコード5010(図5を参照)に変換した入出力組み合わせ5000を生成し、もって、同一の入出力組み合わせが入出力組み合わせ候補リスト2102に含まれているか否かを調べることで行う。なお、その結果、同一の入出力組み合わせが存在しない場合(図のN)には、処理はステップ3501に移行し、他方、存在する場合(図のY)には、そのレコード番号8001が最小の入力変数レコード8010(図8を参照)における出力変数レコード番号8003の値を、1ずつ増加させ、前記処理を繰り返す。
また、出力変数レコード番号8003(図8を参照)が出力変数テーブル2103のレコード番号9001(図9を参照)の最大値を超えた場合には、当該出力変数レコード番号8003をそのレコード番号9001における最小値に設定し、同時に、現在その出力変数レコード番号8003を増加させている入力変数レコード8010に続いて次にレコード番号8001が小さい入力変数レコード8010の出力変数レコード番号8003の値を、1だけ増加させる処理を行い、その後、レコード番号9001の最大値を超える出力変数レコード番号8003が存在しなくなるまで、上記の処理を繰り返す。そして、レコード番号8001が最大の入力変数レコード8010の出力変数レコード番号8003がレコード番号9001の最大値を超える場合には、新たな組み合わせがないと判断し、ステップ3501へ移行する。
更に、ステップ3202では、上記のステップ3201で生成し、かつ、同一の入出力組み合わせが入出力組み合わせ候補リスト2101(図2参照)に含まれないことを確認した入出力組み合わせ5000を、入出力組み合わせ候補リスト2101に追加する。
次に、ステップ3301では、上記のステップ3202において追加した入出力組み合わせ5000に対し、参照情報である入出力直接接続履歴テーブル6000(図1参照)を用いて組み合わせ確率を計算し、その結果を入出力組み合わせ5000の入出力組み合わせ確率5020(図5参照)に格納する。これは、入出力組み合わせレコード5010の要素によって表される各入出力接続が統計的に独立であること、即ち、ある入出力接続の生成確率が他の入出力接続の存在に左右されないという仮定の下での確率となることを意味する。前記組み合わせ確率は、以下の式により計算される。
Figure 0004908073
ここで、上記の式において、Pは求める組み合わせ確率であり、SO、O、SI、Iは、それぞれ、入出力組み合わせ5000のk番目の入出力接続レコード5010における出力サービス名5001、出力変数名5002、入力サービス名5003、入力変数名5004(図5参照)を表す。また、N(SO・O→SI・I)は、入出力直接接続履歴テーブル6000に対して、出力サービス名5001が出力サービス名6001(図6参照)と、出力変数名5002が出力変数名6002と、入力サービス名5003が入力サービス名6003と、入力変数名5004が入力変数名6004と、即ち、全ての項目が一致する直接接続レコード6010の接続回数6005を表す。なお、かかる条件を満たす直接接続レコード6010が存在しない場合には、N(SO・O→SI・I)=0となる。また、Tは合計回数6020を表し、nは入出力組み合わせ5000のレコード数を表す。
次に、ステップ3401においては、上記ステップ3301で計算した入出力組み合わせ確率5020(図5参照)を、参照情報である入出力間接接続履歴テーブル7000及び入出力直接接続履歴テーブル6000を用いて補正し、それを再び入出力組み合わせ確率5020に格納する。これは、各入出力接続が統計的に独立であると仮定して計算した値を、あるサービスに出力を提供する出力サービス及び出力変数との間の依存関係に基づいて補正することにより行なう。例えば、あるサービスに出力を提供する出力サービスと出力変数との間に正の依存関係がある(即ち、一方が現れる場合は、他方も現れ易い)場合は、前記組み合わせ確率を増加させ、他方、負の依存関係がある(即ち、一方が現れる場合は、他方は現れ難い)場合は、前記組み合わせ確率を減少させる。なお、これらの間に依存関係がない場合は、前記組み合わせ確率の増減を行わないことで実行される。なお、前記組み合わせ確率の補正は、以下の式のように計算する。
Figure 0004908073
ここで、上記の式において、Pmodifiedは、求める組み合わせ確率であり、SO・Oは、入出力組み合わせ5000のi番目の入出力接続レコード5010(図5参照)における出力サービス名5001及び出力変数名5002を、そして、SO・Oは、j番目の入出力接続レコード5010における出力サービス名5001及び出力変数名5002を表す。また、N(SO・O,SO・O)は、入出力間接接続履歴テーブル7000に対し、SOが出力サービス名A7001(図7参照)と、Oが出力変数名A7002と、SOが出力サービス名B7003と、Oが出力変数名B7004と、全ての項目で一致する間接接続レコード7010の接続回数7005を表す。なお、かかる条件を満たす間接接続レコードが存在しない場合には、N(SO・O,SO・O)=0となる。また、Tは合計回数7020を表し、αは予め定めた重み付け定数である。
なお、N(SO・O)は、過去のソフトウェア構築においてサービスSOの出力Oが他のサービスの入力として使用された回数であり、参照情報である入出力直接接続履歴テーブル6000(図2参照)を用いて、以下の式のように計算できる。
Figure 0004908073
ここで、上記の式において、SOx、Ox、SIx、Ixは、それぞれ、k番目の直接接続レコード6000の出力サービス名6001(図6参照)、出力変数名6002、入力サービス名6003、入力変数名6004を表す。ここでは、N(SO・O)の計算式を示したが、しかしながら、N(SO・O)についても、同様の数式によって計算することが出来る。
更に、ステップ3501では、上記のステップ3201、3202、3301、3401で得られた入出力組み合わせ候補リスト2101(図2参照)の要素である入出力組み合わせ5000のうち、その入出力組み合わせ確率5020が予め定めた条件を満たすものを、上記記憶装置2002の入出力組み合わせリスト5100(図2参照)の要素とし、そして、当該入出力組み合わせリスト5100を出力する。なお、前記予め定めた条件としては、入出力組み合わせ確率5020が高い順に一定の数の要素だけを抽出したり、又は、入出力組み合わせ確率5020が予め定めた一定値より高い値を示す要素だけを抽出したりする等が考えられる。
なお、以上に詳述した本実施の形態になるソフトウェア設計支援方法では、各サービスの入出力変数には、例えば文字列値や整数値等の、所謂、型を定義しおらず、また、この実施の形態では、入出力組み合わせの生成時についても考慮していない。しかしながら、これに代えて、例えば、変数型を導入し、もって、入出力組み合わせの作成時には、同一の型を持つ入力変数と出力変数との組み合わせのみ許すようにしてもよい。また、本実施の形態では、サービスプロセスフロー4000及び処理対象アクティビティID4101の入力元、そして入出力組み合わせリスト5100の出力先については、特に言及していない。しかしながら、上記のサービスプロセスフロー4000及び処理対象アクティビティID4101については、上述した入力装置2003(図2参照)によって入力されてもよく、又は、予め記憶装置2002内に格納されていてもよく、また、入出力組み合わせリスト5100も、表示装置2004上に表示せずに、上記の記憶装置2002内に格納するだけでもよい。
以上のように、本発明のソフトウェア設計支援方法では、過去に作成したサービスプロセスフローにおける2サービス間の接続関係を履歴として保存する。なお、その際、一方の出力データが他方の入力データとなる直接接続関係と、2サービスの出力データが同一サービスに入力される形態の間接接続関係との2種類を対象とし、接続関係の種類毎に保存する。そして、設計者が、処理順序のみを記述したサービスプロセスフローをソフトウェア設計支援システムに入力すると、この入力されたサービスプロセスフローのうち設計者が指定(選択)したサービスの入力データについて、他のサービスの出力データとの接続関係について1の履歴に基づいて評価を行なう。なお、この評価は、上記直接接続関係から求めた入出力データの各接続が独立に行なわれた場合の接続確率をベースにして行ない、更には、上記間接接続関係から得られる、入力データを提供するサービスの出力データ間の連携関係をも加味する(即ち、依存性があれば+、背反ならば−)ことで行なう。その後、上記の処理で得られる入出力で0多接続を設計者に提示する。なお、これは、接続確率が高い順に一定数の接続を提示し、又は、その接続確率が閾値以上となる接続のみを提示することで行なわれる。更には、入出力データが直接接続された関係だけではなく、あるサービスを介して間接的に接続された関係等をも加味することにより、更に、評価の精度を上げることができる。
このような本発明のソフトウェア設計支援方法を用いることによれば、ソフトウェア設計者は、サービスの実行順序のみを記述したサービスプロセスフローを用意すればよく、これにより、設計者は、システムを構成する入出力組み合わせ生成プログラムによって、サービスプロセスフロー内の任意のサービスに対する入出力の接続組み合わせが、半自動的に得ることが出来ることとなる。即ち、ソフトウェア設計者の負担を軽減し、ソフトウェア設計の工数を削減することができる。
すなわち、本発明によれば、まず、過去のソフトウェア設計におけるサービスの入出力データの接続履歴を蓄積しておき、処理順序のみが記述されたサービスプロセスフローに対しその中の任意のサービスを選択すると、選択したサービスの全ての入力に対し矛盾なく接続可能な他サービスの出力を任意に選択し前記入力と出力の接続組み合わせの生成確率を前記接続履歴から導出する処理を全ての接続組み合わせに対して行い、その中から前記生成確率が高い接続組み合わせを確からしいものとして設計者に提示することにより、入出力データの接続に関して設計者の負担を減らすものである。そして、本発明では、前記接続履歴で頻出する入出力データ接続に対し高い生成確率を与えることにより、得られる入出力データ接続は過去のソフトウェア設計で実際に使用されたものが大半となり、もって、意味的に妥当な接続組み合わせが得られることが期待される。
なお、この時、選択するサービスの入力が複数個存在する場合、それぞれの入力に対する入出力データ接続は必ずしも独立でなく、複数の接続の間に正または負の依存関係が存在することが考えられるため、前記生成確率を正確に算出するには各サービスの全ての入力と、接続される他サービスの出力との対応付けを接続履歴として保存することになる。しかしながら、ソフトウェア設計を行う回数はあまり多くなく、妥当な入出力接続の組み合わせに比べ少ないと思われるため、妥当だが過去の接続履歴と少し異なる入出力接続の組み合わせを正しく評価できなくなるおそれがある。
そこで、接続履歴は基本的にはデータを提供するサービスおよび出力と、データを利用するサービスと入力との間の関係、即ち入出力データが直接接続した関係を扱うこととし、前記問題に対応する。ただし前記直接接続関係だけでは同一サービスに対する複数の接続の間の依存関係を表現することができないため、接続履歴として前記直接接続関係だけでなく、同一サービスの入力として出力を共に提供する関係になった2サービスの出力の間の関係、即ち2つの出力の間の入力サービスを介した間接接続関係も扱い、前記間接接続関係から得られる依存関係に基づき前記生成確率を補正する。
すなわち、上述した本発明をサービスベースのソフトウェア設計に適用することによれば、過去のソフトウェア設計履歴およびサービスの実行順序を記したサービスプロセスフローがあればサービスプロセスフロー内の各サービスの入力と他サービスの出力との接続組み合わせを半自動的に得ることが可能となり、ソフトウェア設計者の負担を軽減することができる。
本発明の実施の形態になるサービスベースソフトウェア設計支援方法を実行するシステムにおけるソフトウェアの構成を示すソフトウェア構成図である。 上記本発明のソフトウェア設計支援方法における入出力組み合わせ生成プログラムを実行するためのハードウェア構成の一例を示すハードウェア構成図である。 上記本発明になる入出力組み合わせ生成プログラムの処理手順を示したフロー図である。 上記ソフトウェア設計支援方法のサービスプロセスフローにおけるデータ形式の一例を示す図である。 上記ソフトウェア設計支援方法のサービスプロセスフローにおける入出力組み合わせのデータ形式の一例を示す図である。 上記ソフトウェア設計支援方法における入出力直接接続履歴テーブルのデータ形式の一例を示す図である。 上記ソフトウェア設計支援方法における入出力間接接続履歴テーブルのデータ形式の一例を示す図である。 上記ソフトウェア設計支援方法における入力変数テーブルのデータ形式の一例を示す図である。 上記ソフトウェア設計支援方法における出力変数テーブルのデータ形式の一例を示す図である。

Claims (5)

  1. 特定の機能を実行するソフトウェア部品であるサービスを複数組み合わせて行なわれるソフトウェアの設計を支援するためのサービスベースソフトウェア設計支援方法であって、
    前記サービスの1つ又は複数を組み合わせてその処理順序を定義したサービスプロセスフローを入力すると共に、入力した当該サービスプロセスフロー中の任意のサービスを選択し、
    前記選択したサービスが有する全ての入力変数に対して、前記選択したサービスより以前に存在する他のサービスの出力変数を1つずつ対応付けた当該対応付けの全ての可能な組み合わせを生成し、
    過去のソフトウェア設計の履歴情報に基づいて、前記生成した組み合わせについての生成確率を計算し、そして、
    前記計算した生成確率が予め定めた条件を満たす組み合わせを抽出して出力することを特徴とするサービスベースソフトウェア設計支援方法。
  2. 前記請求項1に記載したサービスベースソフトウェア設計支援方法において、前記過去のソフトウェア設計の履歴情報として、
    過去のソフトウェア設計における任意のサービスの入力変数に対して別の任意のサービスの出力変数を対応付けた回数を、入力変数の名称、出力変数の名称、前記入力変数を有するサービスの名称、前記出力変数を有するサービスの名称の組み合わせで記録した直接接続履歴を含んでいることを特徴とするサービスベースソフトウェア設計支援方法。
  3. 前記請求項2に記載したサービスベースソフトウェア設計支援方法において、前記過去のソフトウェア設計の履歴情報としては、更に、過去のソフトウェア設計における複数の入力変数を持つ任意のサービスの前記複数の入力変数のそれぞれに対して別の任意のサービスの複数の出力変数を対応付けた回数を、前記複数の出力変数の一の出力の名称、前記一の出力を有するサービスの名称、前記出力変数のうち前記一の出力と異なる他の出力の名称、前記他の出力を有するサービスの名称の組み合わせで記録した間接接続履歴を含んでいることを特徴とするサービスベースソフトウェア設計支援方法。
  4. 特定の機能を実行するソフトウェア部品であるサービスを複数組み合わせて行なわれるソフトウェアの設計を支援するためのサービスベースソフトウェア設計支援装置であって、
    過去のソフトウェア設計におけるサービスの入出力データの接続履歴情報を蓄積する記憶装置と、
    前記サービスの1つ又は複数を組み合わせてその処理順序を定義したサービスプロセスフローを入力すると共に、入力した当該サービスプロセスフロー中の任意のサービスを選択する入力部と、
    前記入力部により選択た任意のサービスが有する全ての入力変数に対して、前記選択したサービスより以前に存在する他のサービスの出力変数を1つずつ対応付けた当該対応付けの全ての可能な組み合わせを生成し、かつ、前記記憶装置に蓄積した過去のソフトウェア設計におけるサービスの入出力データの接続履歴情報に基づいて、前記生成した組み合わせについての生成確率を計算する処理装置と、そして、
    前記処理装置により計算された前記生成確率を基にして、予め定めた条件を満たす組み合わせを出力する出力部とを備えていることを特徴とするサービスベースソフトウェア設計支援装置。
  5. 前記請求項4に記載したサービスベースソフトウェア設計支援装置において、前記記憶装置は、
    過去のソフトウェア設計における任意のサービスの入力変数に対して別の任意のサービスの出力変数を対応付けた回数を、入力変数の名称、出力変数の名称、前記入力変数を有するサービスの名称、前記出力変数を有するサービスの名称の組み合わせで記録した直接接続履歴テーブルと、
    前記過去のソフトウェア設計の履歴情報としては、更に、過去のソフトウェア設計における複数の入力変数を持つ任意のサービスの前記複数の入力変数のそれぞれに対して別の任意のサービスの複数の出力変数を対応付けた回数を、前記複数の出力変数の一の出力の名称、前記一の出力を有するサービスの名称、前記出力変数のうち前記一の出力と異なる他の出力の名称、前記他の出力を有するサービスの名称の組み合わせで記録した間接接続履歴テーブルとを備えていることを特徴とするサービスベースソフトウェア設計支援装置。
JP2006165568A 2006-06-15 2006-06-15 サービスベースソフトウェア設計支援方法及びそのための装置 Expired - Fee Related JP4908073B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006165568A JP4908073B2 (ja) 2006-06-15 2006-06-15 サービスベースソフトウェア設計支援方法及びそのための装置
US11/785,061 US8099715B2 (en) 2006-06-15 2007-04-13 Service-based software designing assistance method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006165568A JP4908073B2 (ja) 2006-06-15 2006-06-15 サービスベースソフトウェア設計支援方法及びそのための装置

Publications (2)

Publication Number Publication Date
JP2007334627A JP2007334627A (ja) 2007-12-27
JP4908073B2 true JP4908073B2 (ja) 2012-04-04

Family

ID=38862974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006165568A Expired - Fee Related JP4908073B2 (ja) 2006-06-15 2006-06-15 サービスベースソフトウェア設計支援方法及びそのための装置

Country Status (2)

Country Link
US (1) US8099715B2 (ja)
JP (1) JP4908073B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949779B2 (en) 2008-05-14 2015-02-03 Nec Corporation Service combination support apparatus, service combination support method, and storage medium
US8332810B2 (en) * 2008-11-24 2012-12-11 Sap Aktiengeselleschaft Optimal code generation for derivation tables
JP5236564B2 (ja) * 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置
US8909550B2 (en) * 2011-08-15 2014-12-09 Bank Of America Corporation Relationship-based pricing
US9400639B2 (en) * 2012-06-22 2016-07-26 Microsoft Technology Licensing, Llc Generating programs using context-free compositions and probability of determined transformation rules
JP6257254B2 (ja) * 2013-10-08 2018-01-10 キヤノン株式会社 設計支援装置、設計支援方法、及びプログラム
JP6287396B2 (ja) * 2014-03-17 2018-03-07 カシオ計算機株式会社 情報処理装置及びプログラム
JP6174825B2 (ja) 2015-01-16 2017-08-02 株式会社日立製作所 サービスを作成する管理システム
US10698954B2 (en) * 2016-06-30 2020-06-30 Facebook, Inc. Computation platform agnostic data classification workflows
US10459979B2 (en) * 2016-06-30 2019-10-29 Facebook, Inc. Graphically managing data classification workflows in a social networking system with directed graphs

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3059467B2 (ja) * 1990-07-17 2000-07-04 シャープ株式会社 ファイル管理装置
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
JPH08249171A (ja) * 1995-03-14 1996-09-27 Mitsubishi Electric Corp 通信サービス仕様作成方式
US5675802A (en) * 1995-03-31 1997-10-07 Pure Atria Corporation Version control system for geographically distributed software development
JPH10222357A (ja) 1997-02-10 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> データ再利用によるソフトウェア構築方法及びシステム
US6636886B1 (en) * 1998-05-15 2003-10-21 E.Piphany, Inc. Publish-subscribe architecture using information objects in a computer network
JP2000089944A (ja) * 1998-07-15 2000-03-31 Hitachi Software Eng Co Ltd 接続ガイドマ―カ表示方法およびシステム、記録媒体
JP2000056958A (ja) * 1998-08-10 2000-02-25 Toshiba Corp 画像処理ソフトウエアの自動生成方法及びその装置
US6438743B1 (en) * 1999-08-13 2002-08-20 Intrinsity, Inc. Method and apparatus for object cache registration and maintenance in a networked software development environment
US6457170B1 (en) * 1999-08-13 2002-09-24 Intrinsity, Inc. Software system build method and apparatus that supports multiple users in a software development environment
US7428726B1 (en) * 2000-04-12 2008-09-23 Compuware Corporation Techniques for software configuration tracking
JP2004126681A (ja) * 2002-09-30 2004-04-22 Fuji Electric Systems Co Ltd データテーブル作成方法、データテーブル作成装置、及びプログラム
US7506337B2 (en) * 2003-04-11 2009-03-17 Microsoft Corporation System and method for providing service of automated creation of computer software production images
US7448034B2 (en) * 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
US9535687B2 (en) * 2004-05-27 2017-01-03 International Business Machines Corporation Audited builds based upon separate class dependency records
US20060212857A1 (en) * 2005-03-21 2006-09-21 Microsoft Corporation Automated process for generating a build of a software application without human intervention
JP2006350729A (ja) 2005-06-16 2006-12-28 Hitachi Ltd アプリケーションソフトウェア構築方法、アプリケーションソフトウェア構築処理プログラム及びアプリケーションソフトウェア構築装置
US20070006176A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Source code replacement via dynamic build analysis and command interception

Also Published As

Publication number Publication date
US20070294670A1 (en) 2007-12-20
US8099715B2 (en) 2012-01-17
JP2007334627A (ja) 2007-12-27

Similar Documents

Publication Publication Date Title
JP4908073B2 (ja) サービスベースソフトウェア設計支援方法及びそのための装置
US11106626B2 (en) Managing changes to one or more files via linked mapping records
US8370808B2 (en) Apparatus and a method for generating a test case
JP6045706B2 (ja) データ処理システム、データ処理方法およびデータ処理装置
US7509629B2 (en) Method for system and architecture design using unified modeling language (UML)
US9129002B2 (en) Dividing device, dividing method, and recording medium
US10073827B2 (en) Method and system to generate a process flow diagram
Khemakhem et al. Efficient robustness measures for the resource-constrained project scheduling problem
US11487972B2 (en) Reward function generation method and computer system
JP2013003664A (ja) 情報処理装置および方法
JP2011215927A (ja) 生産性評価装置、生産性評価方法およびプログラム
KR101975272B1 (ko) 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법
CN105446952A (zh) 用于处理语义片段的方法和***
US20140136155A1 (en) Analyzing hardware designs based on component re-use
US11625617B2 (en) Reduction of edges in a knowledge graph for entity linking
JP2019121404A (ja) グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成
US20140310248A1 (en) Verification support program, verification support apparatus, and verification support method
JP6336922B2 (ja) 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置
JP3914010B2 (ja) 設計解析方法および設計解析プログラム
Barber et al. Enabling iterative software architecture derivation using early non-functional property evaluation
JP2020052451A (ja) 計算機システム及び業務フローのパターン生成方法
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
JP4481783B2 (ja) シミュレーションモデル作成装置及びシミュレーション装置とシステム並びに方法とプログラム
JP6347751B2 (ja) シミュレーションモデル生成支援方法およびシミュレーションモデルシステム
JP2019160008A (ja) プログラム分析装置及びプログラム分析方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111215

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

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

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees