JP5319694B2 - 仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法 - Google Patents

仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法 Download PDF

Info

Publication number
JP5319694B2
JP5319694B2 JP2010536401A JP2010536401A JP5319694B2 JP 5319694 B2 JP5319694 B2 JP 5319694B2 JP 2010536401 A JP2010536401 A JP 2010536401A JP 2010536401 A JP2010536401 A JP 2010536401A JP 5319694 B2 JP5319694 B2 JP 5319694B2
Authority
JP
Japan
Prior art keywords
uplet
semantic
software component
component
basic
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
JP2010536401A
Other languages
English (en)
Other versions
JP2011507061A (ja
Inventor
ラルベ,フィリップ
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2011507061A publication Critical patent/JP2011507061A/ja
Application granted granted Critical
Publication of JP5319694B2 publication Critical patent/JP5319694B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Description

本発明はアプリケーションの設計に関し、より正確には、既製のソフトウェアコンポーネントからアプリケーションを構築するための方法及び装置に関する。
オブジェクト指向及びコンポーネントベースのアプリケーション開発の範囲で参照として使用される容認された定義に従って、「設計」という用語は、ここでは、コードより上の論理レベルにおいて、このアプリケーションをどのように実施するかを説明するアプリケーションの段階を意味する。設計において、アプリケーションの必要な機能的及び品質的要件を満たすために、戦略的及び戦術的な決定が行われる。例えばGrady Boochの本「Object−Oriented Analysis and Design with Applications」、3rd Edition−Cased、Addison−Wesley(2007)、ISBN 9780201895513においてなされている説明によれば、この段階の結果は、設計レベルのモデル、静的ビュー、状態機械ビュー、及び相互作用ビューによって表される。設計の活動によってアプリケーションのアーキテクチャがもたらされ、これは、ソフトウェアコンポーネントへのその分解、これらのソフトウェアコンポーネント間の接続、相互作用機構、及びアプリケーションの設計を知らせる案内原理を含めて、このアプリケーションの組織的な構造である。
Grady Boochの本「Object−Oriented Analysis and Design with Applications」、3rd Edition−Cased、Addison−Wesley(2007)、ISBN 9780201895513
多くの著者は(ソフトウェア)コンポーネントベースのアプリケーションの構築を案内するためのいくつかの方法を記載しているが、これらの方法には、主に次の2つの欠点がある。これらの方法は、完全に手動式であり、正しいコンポーネントを見つけ、アセンブルするプロセスは、構築すべきアプリケーションの仕様から直接には導出されず、この仕様は、アプリケーションがカバーしなければならない機能的及び非機能的な要件を記述する。
本発明の目的は、アプリケーション仕様のセマンティック分析によって、及びそのアプリケーション設計(即ちソリューションのアーキテクチャ)をアプリケーション仕様のテキストで表される要件間の関係(即ち問題のアーキテクチャ)から導出することができると考えることによって、既製のソフトウェアコンポーネントからアプリケーションを自動的に構築するための新しい方法及び対応する装置を提案することである。
このために、本発明は、仕様及び(「既製の」)ソフトウェアコンポーネントからアプリケーションを構築するための方法を提供し、構築すべきアプリケーションを記述する仕様を受信するたびに、
・仕様のテキストから基本の要件(elementary requirement)、及びこれらの基本の要件間のリンクを抽出するために、この仕様のセマンティック分析を行うステップであって、これらのリンクの組が以下「仕様の全体的な構造」と呼ばれる、ステップ、次いで
・基本の要件ごとに、それが備える適切な用語を抽出し、基本の要件ごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築するステップ、次いで
・各コンポーネントが「セマンティックソフトウェアコンポーネント」として登録され、記述される(これは、各コンポーネントが、このソフトウェアコンポーネントが実行することができる各パブリック操作を定義するために、少なくとも1つの適切な用語を備える「セマンティック記述」に関連付けられることを意味する)少なくとも1つのコンポーネントリポジトリにアクセスして、抽出された基本の要件ごとに、この基本の要件のセマンティクスとコンポーネントのセマンティック記述とを比較することによって、どのコンポーネントが前記抽出された基本の要件をカバーすることができるかを決定するステップ、及び
・仕様の全体的な構造に従って、これらの決定されたソフトウェアコンポーネントを最終的にアセンブルして、アプリケーションを構築するステップ
から成る。
そのため、セマンティック記述を基本の要件及びソフトウェアコンポーネントに関連付けることができ、
・基本の要件のセマンティック記述が決定され、基本の要件自体のテキスト、即ち、基本の要件の表現を構成するセンテンスに関連付けられ、
・以下で詳しく説明されるように、ソフトウェアコンポーネントのセマンティック記述が決定され、このコンポーネントが実行することができるパブリック操作に関連付けられる。
本発明による方法は、別々に考えられる、又は結合される追加の特徴を含むことができ、とりわけ、
・ソフトウェアコンポーネントのセマンティック記述のうちの少なくともいくつかは、i)ソフトウェアコンポーネントが実行することができる操作の目的、ii)操作の目的及びこの操作の入力/出力パラメータを記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子、及びiii)これらの入力/出力パラメータに関連付けられる適切な用語及び/又は特定のメタデータを備えることができ、
・抽出された基本の要件ごとに、そのセマンティック記述と格納されたソフトウェアコンポーネントのそれぞれのセマンティック記述との間の意味的な距離を決定することができ、次いで、最小の意味的な距離に対応する格納されたソフトウェアコンポーネントを選択することができ、従って、この選択されたソフトウェアコンポーネントが基本の要件を実施するためのものであり、
・以下「syn−uplet」と呼ばれる、例えば同義語など、単語の一次的なn−upletを、基本の要件の各適切な用語に関連付けることができ、次いでこのsyn−upletが以下「req−uplet」と呼ばれ、同じ方法で、syn−upletを各ソフトウェアコンポーネントの各パブリック操作の目的の各適切な用語に関連付けることもでき、次いでこのsyn−upletが以下「comp−uplet」と呼ばれ、これらのreq−upletのそれぞれをこれらのcomp−upletのそれぞれと比較して、各基本の要件と各格納されたソフトウェアコンポーネントとの間の意味的な距離を決定することができ、
・各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定することができ、基本の要件ごとに、例えば「sem−uplet」と呼ばれ、req−upletのそれぞれとcomp−upletのそれぞれとの間の意味的な近さを表す二次的なn−upletを構築することができ、各二次的なn−upletが意味的な距離を定義し、次いで、最小の意味的な距離を定義する二次的なn−upletに対応する格納されたソフトウェアコンポーネントを選択することができ、
・アプリケーションの構造を最適化するために、抽出された基本の要件に対応する選択された格納されたソフトウェアコンポーネント間の仕様の全体的な構造を定義するものと同じ適切なリンクを確立することができ、
・仕様のこの全体的な構造を決定するために、基本の要件の各対のreq−upletに共通の単語の数を表す意味的な近さを決定することができ、基本の要件ごとに、そのreq−upletと他の基本の要件のそれぞれとの間の意味的な近さを備える「sem−uplet」と呼ばれる二次的なn−upletを構築することができ、各sem−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件間の適切なリンクを確立することができる。
また、本発明は仕様及びソフトウェアコンポーネントからアプリケーションを構築し、
・セマンティックソフトウェアコンポーネントを格納するための格納手段であって、セマンティックソフトウェアコンポーネントのそれぞれが、このソフトウェアコンポーネントが実行することができる各パブリック操作を定義するための少なくとも1つの適切な用語を備えるセマンティック記述に関連付けられたソフトウェアコンポーネントから成る、格納手段、
・構築すべきアプリケーションを記述する仕様が受信されるたびに、i)仕様のテキストから基本の要件、及びこれらの基本の要件の間のリンクを抽出するために、この仕様のセマンティック分析を行い、これらのリンクの組が以下「仕様の全体的な構造」と呼ばれ、次いでii)基本の要件ごとに、それが備える適切な用語を抽出し、基本の要件ごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築し、次いでiii)格納手段にアクセスして、抽出された基本の要件ごとに、この基本の要件のセマンティクスとコンポーネントのセマンティック記述とを比較することによって、どのコンポーネントがこの抽出された基本の要件をカバーすることができるかを決定(選択)するように構成された分析手段、及び
・仕様の全体的な構造に従って、決定されたソフトウェアコンポーネントをアセンブルして、アプリケーションを構築するための処理手段
を備える装置も提供する。
本発明による装置は、別々に考えられる、又は結合される追加の特徴を含むことができ、とりわけ、
・分析手段を、抽出された基本の要件ごとに、そのセマンティック記述と格納されたソフトウェアコンポーネントのそれぞれのセマンティック記述との間の意味的な距離を決定し、次いで、最小の意味的な距離に対応する格納されたソフトウェアコンポーネントを選択するように構成することができ、従って、この選択されたソフトウェアコンポーネントが基本の要件を実施するためのものであり、
・分析手段を、以下「syn−uplet」と呼ばれる、例えば同義語など、単語の一次的なn−upletを、基本の要件の各適切な用語に関連付け、次いでこのsyn−upletが以下「req−uplet」と呼ばれ、これらのreq−upletのそれぞれを各comp−uplet(各ソフトウェアコンポーネントの各パブリック操作の目的の各適切な用語に関連付けられるsyn−uplet)と比較して、各基本の要件と各格納されたソフトウェアコンポーネントとの間の意味的な距離を決定するように構成することができ、
・分析手段を、i)各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定し、ii)基本の要件ごとに、例えば「sem−uplet」と呼ばれ、req−upletのそれぞれとcomp−upletのそれぞれとの間の意味的な近さを表す二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、iii)最小の意味的な距離を定義する二次的なn−upletに対応する格納されたソフトウェアコンポーネントを選択するように構成することができ、
・処理手段を、アプリケーションの構造を最適化するために、抽出された基本の要件に対応する選択された格納されたソフトウェアコンポーネント間の仕様の全体的な構造を定義するものと同じ適切なリンクを確立するように構成することができ、
・全体的な構造を決定するために、分析手段を、i)基本の要件の各対のreq−upletに共通の単語の数を表す意味的な近さを決定し、ii)基本の要件ごとに、そのreq−upletと他の基本の要件のそれぞれとの間の意味的な近さを備える二次的なn−uplet(又は「sem−uplet」)を構築し、各sem−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件間の適切なリンクを確立するように構成することができる。
本発明の他の特徴及び利点は以下の詳細な明細書及び添付の図面を検討すれば明らかになり、唯一の図は本発明による装置の実施形態の例を図示する。
添付の図面は本発明を完成させるだけではなく、必要に応じて、その定義に貢献するのにも役立ち得る。
図1は、本発明による装置例の図である。
本発明は、既製のソフトウェアコンポーネントを使用することによって、それらの仕様のテキストからアプリケーションを自動的に構築するための装置及び関連の方法を提供することを目的とする。
本発明は、仕様によって記述され、既製のソフトウェアコンポーネントのアセンブリから構築することができる任意のタイプのアプリケーションに取り組む。
「アプリケーション」という用語は、ここでは、1組の相互に関連のある(ソフトウェア)コンポーネントを意味し、コンポーネントのそれぞれは、操作と呼ばれる少なくとも1つのパブリック関数の組として表される機能を有し、それ自体のデータを包み、管理する。この定義は、オブジェクト指向から導出されたコンポーネントパラダイムであり、開発の今日の標準である。
さらに、「既製のソフトウェアコンポーネント」という表現は、ここでは、ファイル管理機構、データベースアクセス、GUI表示機構、テキスト翻訳、変換モジュール、URLからのHTMLページの読み取り、テキスト処理のための初等関数など、正確な初等関数(即ち、機能の原子)を実施するための1つの実行可能コードを意味する。
唯一の図に図示されるように、本発明による装置Dは、少なくとも格納手段SM、分析モジュールAM、及び処理モジュールPMを備える。
格納手段SMは、少なくともセマンティックソフトウェアコンポーネントSSCを格納するためのものである。各セマンティックソフトウェアコンポーネントSSCは、セマンティック記述SDに関連付けられるソフトウェアコンポーネントSCから成る。
「ソフトウェアコンポーネントのセマンティック記述」という表現は、ここでは、関連のソフトウェアコンポーネントSCが実行することができるパブリック操作(又は関数)の目的を定義する少なくとも1つの適切な用語を備える記述を意味する。この目的は、好ましくは、自然言語の形で(即ち適切な用語によって)簡単に表され、コンポーネントSCが実際には何を行うか、その関数が何であり、どのデータをそれが操作するか(即ちその操作の入力/出力)を明確に記述する。好ましくは、各コンポーネントのセマンティック記述(例えば、「セマンティックカード」と呼ばれる)SDは、各操作を記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子も含む。
例えば、ソフトウェアコンポーネントの各セマンティック記述SDは、入力及び出力データが次の3つの主な属性で記述されるXML表現である。
・データ名(又は識別子)
・データに関連付けられ、データのセマンティクスを指定するために、外部オントロジ(external ontology)又は外部の辞書又は用語辞典にクラスとして定義された概念を参照して表される概念(又は適切な用語)。ここでは、オントロジとは、例えば、コンポーネントSCによってアドレス指定され、その名前がセマンティックカードのヘッダーで言及されるドメインを指す。
・セマンティックデータ型のデータのステレオタイプを表し、データの性質を指定するデータのセマンティックタグ(例えば「semTag」と呼ぶ)。このsemTagは、以下で説明するように、コンポーネントの相互作用を決定し、最適化するのに有用である。
セマンティックソフトウェアコンポーネントSSCを格納することができ、当業者から知られている任意のタイプの格納手段SMを使用することができ、とりわけ、データベース、フラッシュメモリ、ROM、RAM、フラットファイルシステム、及び任意の他の種類のリポジトリとすることができる。
分析モジュールAMは、その装置Dが構築すべきアプリケーションAPを記述する仕様ASを受信するたびに介入するように構成される。
「アプリケーション仕様」という表現は、ここでは、所望のアプリケーションが満たすべき少なくとも1つの要件を定義する少なくとも1つのセンテンスを意味する。より正確には、アプリケーション要件は、アプリケーションAPが何を行うか、及びその機能的及び非機能的特徴が何であるかを記述する。これらの要件は、好ましくは自然言語で表されるが、任意の形式的又は非形式的な本文の表現の形で表されてもよい。
分析モジュールAMは、アプリケーション仕様ASが受信されるたびに、
・この受信されたアプリケーション仕様ASのセマンティック分析を順に実行して、
・例えば文法分析器によって仕様ASのテキストから基本の要件SR、及びこれらの基本の要件SR間のリンクを抽出し、これらのリンクの組が以下「仕様の全体的な構造(又は論理アセンブリ)」と呼ばれ、次いで
・基本の要件SRごとに、それが備える適切な用語を抽出し、基本の要件SRごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築し、次いで
・格納手段SMにアクセスして、この基本の要件SRのセマンティクスとコンポーネントのセマンティック記述SDとを比較することによって、抽出された基本の要件SRごとに、どのコンポーネントがこの抽出された基本の要件SRをカバーすることができるかを決定する(選択する)
ためのものである。
分析モジュールAMを2つのサブモジュールに分割することができることに留意することは重要であり、第1のものは、セマンティック分析を実行するためのものであり、第2のものは、格納手段(又はコンポーネントリポジトリ)SMにおいて、第1のサブモジュールによって抽出された基本の要件SRをカバーすることができるコンポーネントを決定するためのものである。
言い換えれば、分析モジュールAMは、基本の要件SRを表す各センテンスの意味(即ち、そのセマンティクス)を決定し、それを適切な計算可能なデータ構造で表す。着想は、後でこの構造を、格納されたソフトウェアコンポーネントSCの等価のセマンティックデータ構造と比較して、どのコンポーネントがどの(基本の)要件SRをカバーすることができるかを決定するために、機能のすべてのセマンティック原子を、その適切なセマンティックデータ構造で示すことである。実際には、それ自体のセマンティックデータを受信するために、各センテンス(又は要件の原子)を評価し、マークすることができる。このプロセスは、ソフトウェア要件仕様といくつかのドメインオントロジとの間のマッピングを確立することができるドメインオントロジ技術にソフトウェア要件分析方法が基づくオントロジベースの要件分析手法とは異なることに留意することは重要である。オントロジは、所与のドメインにおいて操作される概念の、及びこれらの概念の間の関係の形式的な記述であることに留意されたい。本発明において、セマンティクスがテキスト自体から抽出されるため、要件分析を助けるために、外部オントロジは使用されない。
操作の目的のセマンティクスは、好ましくは、例えば以下のものなど、正確なルールで定義される。
・目的は特定の単語を使用して自然言語で表される。
・これらの特定の単語は、セマンティックカードSDに組み込まれ、目的を書くために使用されるように適切な単語を要約する「概念のリスト」に属する。
・これらの「概念のリスト」は、例えば外部オントロジにおいて、即ち、セマンティックカードSDにおいて参照される関連のドメインの形式的な記述で記載することができ、若しくは外部の辞書又は用語辞典の定義の簡単な参照とすることができる。
こうしたルールは簡潔で明瞭な操作の目的を書くことを助ける。
以下に、RSSフィードアクセス機構コンポーネントに関連付けられたセマンティックカードSDの非制限的な例が示される。
<semCard>
<URL>http://xxx.xx.xxx.x/components/RSS/RSS_Component.asmx</URL>
<component name="RSS">
<domains>
<domain name="RSS">
<concepts list="RSS, RSS_feed, URL, news" />
</domain>
<domain name='"News">
<concepts list="news, title, titles, description, article, text, News Agency" />
</domain>
</domains>
<operation name="getAllTitles">
<goal>所与のURLによってアドレス指定されるRSSフィードのすべてのニュースのタイトルを配信する。</goal>
<inputs>
<input name="URL_RSS" concept="RSS#URL" semTag="URL" />
</inputs>
<output name="titles" concept="News#title" semTag="text" />
</operation>
<operation name="getDescriptionOfTitle">
<goal>所与のURLによってアドレス指定されるRSSフィードの1つのニュースのタイトルの記述を配信する。</goal>
<inputs>
<input name="URL_RSS" concept="RSS#URL" semTag="URL" />
<input name="title" concept="News#title" semTag="short_text" />
</inputs>
<output name="description_of_title" concept=" N ews#description"
semTag="text" />
</operation>
</component>
</semCard>.
要件SRの適切な用語の論理アセンブリ(又は全体的な構造)は、適切な用語とその間の論理的な順序との間の適切なリンクにある。例えば、「ファイル『Parameters.txt』からスクリプトを生成するために、またこのスクリプトを実行するために、アプリケーションがインターネットにアクセスする必要がある」というセンテンスにおいて、要件を表す適切な用語(又は概念)は、「インターネットにアクセスする」、「スクリプトを生成する」、「ファイル『Parameters.txt』」、及び「スクリプトを実行する」であり、これらの適切な用語の論理的な順序は、「インターネットにアクセスする」、「ファイル『Parameters.txt』を読み取る」、「スクリプトを生成する」、及び「スクリプトを実行する」である。
分析モジュールAMが仕様の基本の要件SR間の論理的なアセンブリを決定するように構成されることに留意することは重要である。実際には、仕様ASを構成する基本の要件SRの組において、要件SRは論理的に互いにリンクされると仮定する。これは、2つの異なる要件間のリンクがこれらの要件を実施するコンポーネント間のリンクをもたらすという事実に起因する(2つの要件は、両方が対象のアプリケーションAPの所与のデータ、制約、機能、又は特徴について話すとき、互いにリンクされる)。ここで、いくつかの適切なリンクが要件SR間に存在する場合、同じ適切なリンクがこれらの要件SRを実施するコンポーネントSC間に存在すると仮定する。そのため、「要件のネットワーク」は、問題を記述するアプリケーション仕様ASの全体的な構造を決定するために、要件(又は要件の原子)SR間のリンクを分析することによって決定される。言い換えれば、問題の構造はソリューションの構造と同形である。
例えば、納品伝票のVATを計算するためのアプリケーションについて考察し、アプリケーション仕様ASのテキストは、VAT計算に関する2つの異なるパラグラフを含み、第1のものはVATを計算するための一般的な方法を説明し、第2のものは(おそらく、仕様ASにおいて数ページ後にある)製品カテゴリに従って異なるVATレートを提供すると仮定する。これら2つのパラグラフは、同じデータを扱うため、結合される2つの要件SRである。従って、これらの要件SRを実施する2つのコンポーネントSCは、結合する必要がある。というのは、所与の製品についてのVATの計算は、VAT量を計算するための一般的な方法を必要とするからである。
分析モジュールAMが、受信されたアプリケーション仕様ASの「要件SRのセマンティクス」、及びこれらの要件SRの論理的なアセンブリを決定するたびに、そのセマンティック記述SDが要件のセマンティクスに対応するセマンティックソフトウェアコンポーネントSSCを選択するために、格納手段SMにアクセスする。
このために、分析モジュールAMは、アプリケーション仕様ASから抽出された要件の意味を、コンポーネントのセマンティックカードSDの一部である各コンポーネントの目的と比較する必要がある。これは、要件をカバーすることを目的とするために、このコンポーネントSCを選択することができるようにするために行われる。
上述したように、この比較は、仕様テキストの意味の決定を必要とする。ここで、意味は、仕様テキストの各センテンスを構成するすべての適切な用語の基本の意味の連結から成ると考えられる。そのため、2つの異なるテキストの意味を比較することは、これらは意味的に近いかどうかを決定するために、異なる用語又は概念(2つずつ)を比較することを含意する。
従って、この比較を処理することができるように、基本の用語の意味を自由に表す方法を有する必要がある。そのために、用語辞典で見つけることができる用語の同義語によって一次的なn−upletを構築することが可能である。こうした一次的なn−upletは、以下「syn−uplet」と呼ばれる。
例えば、用語「battle」、「war」及び「peace」のsyn−upletは、それぞれ以下とすることができる。
- battle = {fight, clash, combat, encounter, skirmish, scuffle, melee, conflict,
confrontation, fracas, fray, action; struggle, crusade, war, campaign,
drive, wrangle, engagement},
- war = {conflict, combat, warfare, fighting, confrontation, hostilities, battle;
campaign, struggle, crusade; competition, rivalry, feud}, and
- peace = {concord, peacetime, amity, harmony, armistice, reconciliation,
ceasefire, accord, goodwill; agreement, pact, pacification,
neutrality, negotiation}.
syn−upletは、要件SRの用語のために構築された場合、「req−uplet」と呼ぶことができ、ソフトウェアコンポーネントSCのパブリック操作の目的の用語のために構築された場合、「comp−uplet」と呼ぶことができることに留意されたい。
syn−upletにおいて、即ちreq−uplet及びcomp−upletにおいて、以下の関数、
・syn(word)は、用語「word」のsyn−upletである
・N1は、「word1」のsyn−upletを指定し、N2は、「word2」のsyn−upletを指定し、N1=syn(wordl)及びN2=syn(word2)である
・card(N1)は、syn−uplet N1の基数であり、即ち、N1内の同義語の数である。
・common(N1,N2)は、N1及びN2に共通の同義語の数である
・avg(N1,N2)は、N1及びN2の基数の平均である
を定義することができ、次いで、syn−upletの上述した例で、card(common(syn(”battle”),syn(”war”)))=9である。言い換えると、「battle」及び「war」に共通の同義語が9つある。
また、例えば2つのsyn−uplet、syn(T1)及びsyn(T2)内の共通の同義語を考慮に入れて比率を計算することによって、2つの用語T1とT2との間の意味的な近さを定義することも可能である。
こうした意味的な近さ(例えば「semProx」と呼ばれる)は、例えば、以下の式によって得ることができる。
semProx(T1, T2) = 100 * card(common(synT1), synT2))) / avg(synT1), synT2)).
syn−upletの上述した例で、「battle」及び「war」のsyn−upletの意味的な近さは、semProx(”battle”,”war”)=100*9/0.5*(19+13)=900/16=56.25によって得られる。言い換えると、「battle」及び「war」の同義語の組の結合において、要素の56.25%が二重にある。別のサンプルとして、「war」及び「peace」のsyn−upletの意味的な近さは、論理的なsemProx(”war”,”peace”)=0によって得られる。
意味的な近さは、2つの用語の間の近接比を表す。例えば、意味的な近さが最初に選択された閾値A(例えば50)を上回る、又は100に近い場合、2つの用語は意味的に近いと考える。逆に、意味的な近さが2番目に選択された閾値B(例えば10)を下回る、又は0に近い場合、2つの用語は意味的に遠いと考える。閾値A及びBの値は、処理すべきテキストのカテゴリに従って「調整」することができる。
例えば、所与のセンテンスの意味の決定は、以下の通り行うことができる。
第1のステップで、センテンスが分析され、適切な用語(単語)が抽出される。冠詞、前置詞、接続詞などの非適切な単語は無視される。
第2のステップで、適切な用語(単語)ごとに、対応のsyn−upletが構築される。
最後に、第3のステップで、センテンスに含まれる適切な単語のすべてのsyn−upletをアセンブルすることによって、センテンス全体のグローバルなn−upletが構築される。こうしたグローバルなn−upletを「phrase−uplet」と呼ぶことができる(これは、super−n−uplet、即ち複数のn−upletのうちの1つのn−upletとみなすことができる)。
一例として、電話管理システムの仕様ASから抽出された要件SRが「呼出側が受信側に電話をかけ、電話の件名を含むメッセージを作成して、同時に受信側に発信される」である場合、適切な用語は、呼出側、電話、電話をかける、受信側、メッセージ、件名、及び発信である。この要件SRのphrase−upletは、以下のsyn−upletの連結とすることができる。
- caller = {phone caller, telephone caller, visitor, guest, company},
- call = {phone call, telephone call, buzz, bell, ring; demand, request, plea,
appeal, bid, invitation},
- make a call = {phone, make a demand, send a request},
- receiver = {recipient, heir, addressee, beneficiary, inheritor, heritor},
- message = {communication, memo, memorandum, note, letter, missive,
dispatch},
- subject = {topic, theme, focus, subject matter, area under discussion,
question, issue, matter, business, substance, text; field, study,
discipline, area},
- submit = {offer, present, propose, suggest, tender}.
仕様ASの1つのセンテンスS1の、ソフトウェアコンポーネントSDに関連付けられたセマンティック記述(又はカード)SDの2つの他のセンテンスS2及びS3との比較は、それらのphrase−upletを比較することによって行うことができる。この比較は、以下で説明するように、センテンス間の意味的な距離を計算するために使用することができる結果を提供する。phrase−uplet比較ステップは、以下の通りとすることができる。
・2つのphrase−upletの内部syn−upletは、2つずつ比較される。言い換えると、S1のphrase−upletのすべてのsyn−upletは、S2及びS3のphrase−upletのすべてのsyn−upletと比較される。
・意味的な近さ(semProx)は、syn−upletの対ごとに計算される。
・例えば「sem−uplet」と呼ばれる整列された二次的なn−upletが構築される。各セマンティックn−uplet(又はsem−uplet)は、S1の各syn−upletとS2又はS3のそれぞれとの間の意味的な近さを備え、意味的な距離を定義する。
・最小の意味的な距離を提供するセマンティックn−upletは抑制され、このセマンティックn−upletが関係するセンテンスS2又はS3は、S1に意味的に近いと考えられ、従って、その対応する格納されているソフトウェアコンポーネントSCが選択される。
以下に示される表は、要件SR「呼出側が受信側に電話をかけ、電話の件名を含むメッセージを作成して、同時に受信側に発信される」とコンポーネントリポジトリSMに格納されたコンポーネントセットのサンプルとの間の対応関係を検索する非制限的な例である。要件の適切な用語は、{呼出側、電話、電話をかける、受信側、メッセージ、件名、発信}である。以下の表の最後の右列に示されるsem−upletは、これらの適切な用語のsyn−upletと、コンポーネントの目的から計算されるものとの間の比較の結果である。これらのsem−upletの迅速な表示は、要件を満たすことができるコンポーネントSCを容易に決定するのを助ける。
Figure 0005319694
Figure 0005319694
Figure 0005319694
処理モジュールPMは、所望のアプリケーションAPを構築するために、仕様の論理的アセンブリ(即ち、分析モジュールAMによって決定された全体的な仕様構造)に従って、決定されたセマンティックソフトウェアコンポーネントSSCのソフトウェアコンポーネントSCをアセンブルするように構成される。
上述したように、このアセンブルは、アプリケーション仕様AS(又は問題)の要件間の適切なリンクが、決定されたソフトウェアコンポーネントSSC(ソリューションのブロック)間のリンクとの類似の対応関係を有するという仮定に基づく。
そのため、処理モジュールPMは、アプリケーションASの初期アーキテクチャを構成するために、要件のセマンティック原子との意味的な距離が最も短い、選択されたコンポーネントSCを編成する。この初期アーキテクチャは、問題の構造(又は要件のネットワーク)を複製し、問題の原子(又は要件)の代わりにソリューション原子(又はコンポーネントSC)を使用することによって行われる。
上述したように、仕様の要件間の適切なリンクを要約し、表す要件のネットワークは分析モジュールAMによって決定される。このために、分析モジュールAMは、要件(又は要件の原子)間の適切なリンクを明らかにするために、上述したsem−uplet(二次的なn−uplet)手法を使用することができる。仕様ASのセンテンスは、phrase−uplet+sem−upletの手法を使用することによって、意味的に2つずつ比較される。より正確には、仕様ASの要件R1と、同じ仕様ASの2つの他の要件R2及びR3との間の比較の場合、
・2つのphrase−upletの内部syn−upletは、2つずつ比較される。言い換えると、R1のphrase−upletのすべてのsyn−upletは、R2及びR3のphrase−upletのすべてのsyn−upletと比較される。
・意味的な近さ(semProx)は、対ごとに計算される。
・整列された二次的なn−uplet(セマンティックn−uplet、sem−upletと呼ばれる)が構築される。各sem−upletは、R1の各syn−upletとR2又はR3のそれぞれとの間の意味的な近さを備え、意味的な距離を定義する。そのため、意味的な距離に関して、他に対する各要求のリンクを表す1組のn−upletを取得する。意味的な距離のレベルを「調整して」、意味的な近さに関して「最高の」sem−uplet、即ち、所与の要件について最も意味的に適切なリンクのみを保持することが可能である。これは、各要件が有限数の意味的に最も近い他の要件を有すると仮定することを意味する。そのため、意味的に最も近い他の要件を表す限られた組のsem−upletによって、全体的な仕様ASの文脈内で、要件を形式的に記載することができると考える。
例えば、R2は、R1及びR3にリンクされており、しかしsem−uplet(R2,R3)>sem−uplet(R2,R1)である場合、R2−R3のリンクのみが最後のモデルに保持される。これは、最適化の問題である。モデルを調整することは、2つのsem−uplet間の最大限容認できるギャップを決定することによって可能である。例えば、diff(sem−uplet(R2,R3),sem−uplet(R2,R1))>10の場合、R2−R3のリンクのみが保持されると考えることができ、式中、「diff()」は、関数の差(減算)である。変形体において、関数「diff()」の制限(又は閾値)は、問題のカテゴリ又は要件の種類に応じて、5又は15に等しくてよい。別の変形において、最小臨界レベルより大きい関数diff()に対応するすべてのリンクは、問題のモデル(又は要件のネットワーク)において保持することができ、従って、ソリューションモデルに複写することができる。
ソリューション「分子」は、問題「分子」と同じ空間構造を有するが、これらは同じ種類の原子を含まず、使用しない。問題原子は要件であり、ソリューション原子はコンポーネントSCである。問題原子は同じ概念を共有し、同じ要件に対処するため、結合され、ソリューション原子は同じデータを共有し、又は交換するため、結合される。しかし、要件間の適切なリンクを含む要件のネットワーク(又は問題分子)はアプリケーションアーキテクチャ(又はソリューション)と同じリンクを含む。
これら2種類の原子は異なっており、正確には同じ性質を有しておらず、要件のネットワークにおいて適切なリンクは、最初のコンポーネント構造において適切ではない場合がある。実際には、2つの要件が同じ概念を共有するという事実は、必ずしも2つの対応するコンポーネントが共に相互作用を有することを含意するわけではない。そのため、アプリケーションASの初期アーキテクチャを最適化するために、より正確には、最高のコンポーネント相互作用モデルを決定するために、処理モジュールPMを構成することができる。
最適化プロセスは、問題の構造から引き継いだ最も有用なリンク、即ち、2つのコンポーネントSC(Comp1及びComp2)間の実際のデータ交換に対応する関連のみを保持することを目的とし、この場合、コンポーネントComp1の出力は、Comp2の入力であり、又はその逆である。
この最適化プロセスはセマンティックメタデータとしてコンポーネントの操作(及びより正確にはそれらの入力及び出力)のデータ記述に添付されるセマンティックタグを使用して、選択されたコンポーネントSC間の相互作用を決定し、最適化することができる。
これらのセマンティックタグが適切に選択され、設定されている場合、コンポーネントSCは、接続することができ、その接続は、形式的に表すことができる。例えば、Comp1.operation_A()の出力がComp2.operation_B()の入力に意味的に合う場合、Comp1は、「Aの出力」と「Bの入力」とのリンクを介してComp2に接続することができ、これは、以下のように書くことができる。
out_A = Comp1.operation_A(A_parameters);
out_B = Comp2.operation_B(out_A);
又はより直接的には、以下の通りである。
out_B = Comp2.operation_B(Comp1.operation_A(A_parameters)).
これは、2つの接続されたデータが同じ意味的「次元」を有する、即ち、これらが互いに意味的に合う(又はこれらが処理の互換性がある)ことを意味する。というのは、これらは、同じデータ型だけではなく、データの同じ性質も共有するからである。このセマンティックデータ型は、UMLタグ付き値に似ており、セマンティック記述(又はセマンティックカード)SD内の入力及び出力に添付されたパラメータ「semTag」によって表すことができる。
Comp1及びComp2は、互いに意味的に合うので(例えば、Comp1はテキストを生成し、Comp2はテキストを消費する)、Comp1の出力及びComp2の入力を接続することができるという事実は、Comp2が、例えばテキストを生成する別のコンポーネントであるComp4の出力の代わりにComp1の出力を事実上待っていることを必ずしも含意するわけではない。実際に、ソリューション構造に存在するリンクをたどることによって相互作用が構築されるため、Comp1−Comp2の接続は証明される。Comp4がテキストを生成する場合でさえ、これは、Comp2に直接リンクされない。従って、それらの入力−出力を結合しようとする理由はない。
SemTagは、コンポーネントのインターフェイスの整合性を保証し、この理由で、コンポーネントの相互作用を最適化するために重要な要素である。UMLによる意味として、コンポーネントSCのインターフェイスが、それらのパラメータを含むそのパブリック操作の組から成ることに注意されたい。例えば、Comp1.operation_A()は、テキストを提供し、Comp2.operation_B()は、コンポーネントTranslatorの操作translate()であると仮定する。それはテキストを翻訳することを意味するので、Comp1.operation_A()の出力は、Translator.translate()の入力と合わなければならない。しかし、Comp1.operation_A()が所与の会社の銘柄記号を提供すると仮定すると、この記号及びTranslator.translate()によって入力として取得されたテキストは、同じデータ型(String)を有することはできるが、これらは意味的に等価ではない。というのは、これは、銘柄記号を翻訳しようとすることを意味しないからである。従って、これら2つのデータに添付されるセマンティック情報は、異なっており、従って2つの操作でなければならず、それら2つのコンポーネントSCは接続できない(又はリンクできない)。
以下に、semTagの有用性を示すために、コンポーネントTranslatorのセマンティックカードSCの非制限的な例が示される。
<semCard>
<URL>http://xxx.xx.xxx.x/components/Translation/Translator.asmx</URL>
<component name="Translator">
<domains>
<domain name="Translation">
<concepts list="translation, version, language, source language, target language, result" />
</domain>
<domain name="Text">
<concepts list="text, chapter, paragraph, sentence,, phrase, word, language" />
</domain>
</domains>

<operation name="translate">
<inputs>
<input name="text_to_translate" concept="Text#Text" semtag="text" />
<input name=" source_language"
concept="Translation#SourceLanguage" semtag="language" />
<input name="target_language"
concept="Translation#TargetLanguage" semtag="language" />
</inputs>
<output name="translated_text" concept=" Text#Text "
semtag="text" />
<goal> The goal of the operation is to provide a translated text written in a given target language as a result of the translation of a given text_to_translate written in a source_language.
</goal>
</operation>
</component>
</semCard>.
例えば、コンポーネントSCがWebサービスであるとき、それらのセマンティック記述(セマンティックカード)SDはサービスのWSDL(Webサービス記述言語)から生成することができる。しかし、セマンティックタグを自動的に設定するために、唯一の図で示すように、装置Dのオプションの及び特定のセマンティックモジュールSSMを使用することができる。このモジュールSSMは処理モジュールPMの一部とすることができる。
このセマンティックモジュールSSMは、WDSLで記述される操作のパラメータの名前及びタイプを分析することができ、特定のオントロジにおける意味的な対応関係を検索することができる。
この特定のオントロジは通常プログラマが使用する通りの入力及び出力データの現在の名前及びタイプのセマンティクスと対応するセマンティックタグとの間のリンクを含む。
例えば、「text」、「content」、「translated_page」又は「description」という名前の「string」型のデータは、セマンティックタグ「text」を有することができる。というのは、データは、テキストの「次元」を有するからである。「Date」型又は「String」型の「date」又は「current_date」という名前のデータは、セマンティックタグ「date」などを有することができる。
こうした特定のオントロジは、セマンティックカードSD内のセマンティックタグを自動的に設定するためのものであり、簡単な対応表として表すことができる。以下に、こうした対応表の一例を示す。
Figure 0005319694
こうした特定のオントロジは、当業者によって容易に構築することができ、プログラマの習慣を示す発行されたコンポーネントインターフェイスのコンテンツを分析し、次いで、その良好な使用をまとめることによって、累進的に向上させることができる。
以下に、自動コンポーネント相互作用モデルを構築するために、セマンティックタグがどのように考慮に入れられるかを示す一例を示す。
この非制限的な例において、仕様ASの要件(自然言語で表される)が、アプリケーションAPはニュースフィードの翻訳バージョンを生成するためのものであることを示すと仮定する。さらに、sem−uplet+コンポーネント発見手法は、この要件に2つのコンポーネントSC、RSS−アクセス機構コンポーネント及びTranslatorコンポーネントを割り振ったと仮定する(セマンティックカードSDの例は上述した)。
例えば、RSSアクセス機構コンポーネントは、インターネットを介してアクセス可能なRSSフィードから情報を集めることを目的としており、そのインターフェイスは、2つの操作を含み、getAllTitles()は、所与のURLについてフィードの主なタイトルのすべてを取得し、getDescriptionOfTitle()は、このタイトルについて短い記事のテキストを取得する。
例えば、Translatorコンポーネントは、その操作translate()が、所与のソース言語(入力パラメータ)で書かれたテキスト(入力パラメータとして提供される)を宛先言語(入力パラメータ)で書かれた翻訳されたテキスト(出力)に変換する古典的なものである。
現在、問題は、仕様要件を満たす(即ち、ニュースフィードの翻訳バージョンを提供する)ために、これら2つのコンポーネント、即ち3つの操作を自動的及び論理的にアセンブルすることである。このために、2つの点を考慮に入れなければならない。
第1の点は、セマンティックタグを、データの代わりにコンポーネント操作の入力及び出力としてみなすことにある。これによって、いくつかの可能な接続を現すことが可能になるが、正確には、十分に整合性のある構成を作るのに十分ではない。
第2の点は、どのコンポーネント操作がその入力を提供することができるかを見つけるために目的のコンポーネントアセンブリの主な出力を考慮に入れ、これらの操作についてこのプロセスを反復すること、即ちどの他の操作がそれらの入力を提供することができるかを探すことにある。次いで、主な出力からその生成に必要な入力データに漸進的に戻り、これを行う際に、それらの出力と入力とをリンクすることによって、異なるコンポーネント操作を自動的にアセンブルする。
同時に、リンクを、操作の呼出を表す擬似コードの形でFILO(先入れ、後出し)のスタックに格納することができる。このプロセスの最後に、スタックの中身は選択されたコンポーネント間の正しい相互作用を表す。
コンポーネントアセンブリの主な出力は仕様要件の表現によって提供される。この例で、翻訳バージョンが望まれる場合、主な出力は、翻訳されたテキスト、即ち、操作Translator.translate()の出力である。そのため、目的のコンポーネントアセンブリによって表される関数の「戻り」として表される、この主な出力をスタックに押し込むことができる。
translated_text = Translator.translate(text_to_translate, src_lang, dest_lang);
return translated_text.
ここで、そのそれぞれのセマンティックタグが「language」、「language」及び「text」であるこの操作の入力に戻る場合、セマンティックタグ「text」付きのデータが操作RSS.getDescriptionOfTitle()によって提供されることがわかる。そのため、この操作をTranslator.translate()に接続することができ、操作RSS.getDescriptionOfTitle()の呼出を、以下のように、交換されたパラメータの名前を介してTranslator.translate()とリンクして、スタックに追加することができる。
text_to_translate = RSS.getDescriptionOfTitle(site_address, title);
translated_text = Translator.translate(text_to_translate, src_lang, dest_lang);
return translated_text.
そのセマンティックタグが「URL」及び「title」であるRSS.getDescriptionOfTitle()の入力に戻る場合、セマンティックタグ「title」付きのデータが操作RSS.getAllTitles()によって提供されることがわかる。そのため、新しい操作の呼出をスタックに押し込むことによってこれら2つの操作を接続することもできる。
titles = RSS.getRSSTitles(adr_site);
text_to_translate = RSS.getDescriptionOfTitle(site_address, title);
translated_text = Translator.translate(text_to_translate, src_lang, dest_lang);
return translated_text.
仕様要件に割り当てられるすべてのコンポーネントSCが使用され、結合され、スタックは、ここで、ほぼ実行可能な擬似コードの形で、コンポーネントアセンブリの一般的な構造を含む。しかし、それを実行する前に、この擬似コードに改良をもたらすことが好ましい。以下に、これらの改良の一部が列挙される。
・データ型を考慮に入れる必要がある。例えば、RSS.getAllTitles()は、単一のStringではなく、Stringの配列を戻す。
・いくつかのパラメータの名前を、それらのセマンティクスを介して、即ちsemTagを用いて解決することができる。例えば、「adr_site」及び「site_address」は、同じ概念を回復し、同じsemTagを有する。
・いくつかの他のパラメータは、元の要件に含まれる何らかの有用な情報で解決することができる。例えば、要件がフランス語の翻訳を指定する場合、操作Translator.translate()のパラメータ「dest_lang」が「French」に設定されなければならない。
・いくつかの追加のコンポーネントSC又はコンポーネント操作を使用して、他のパラメータを解決することができる。例えば、ユーティリティコンポーネント「Language Finder」を使用して、所与のテキストのソース言語、又はRSSフィードコンポーネントにおける操作getSourceLanguage()を自動的に決定することによってパラメータ「src_lang」を設定することができる。
擬似コードを完了するための改良を実行するために、装置Dの別のオプションの特定のモジュールOSMを提供することができる。このモジュールOSMは、処理モジュールPMの一部分とすることができ、又は唯一の図に示されるように、処理モジュールPMに結合することができる。例えば、このモジュールOSMは、以下のものなど、ソフトウェアモジュールとすることができる。
Vector ComponentAssembly(String site_address) {
Vector result;
titles = RSS.getAllTitles(site_address);
foreach title in titles {
text_to_translate = RSS.getDescriptionOfTitle(site_address, title);
source_lang = LanguageFinder.getLanguage(text_to_translate);
translated_text = Translator.Translate(text_to_translate, source_lang,
"french");
result.add(title + translated_text);
}
return result;
}.
できる限り改良した後、擬似コードは、例えば最適化プロセスによって生成されるコンポーネントアセンブリの妥当性をテストするために、最終的に、実行可能なJavaファイルに変換することができる。
仕様ASの元のテキストのセマンティック分析が自動であるため、またソフトウェアコンポーネントSCの発見及びアセンブリが自動であることを考慮し、アプリケーション設計の最適化も自動であることを考慮し、最終的に、互換性のある実行可能なコード生成がこの最適化された設計から可能であることを考慮して、本発明はその仕様ASのテキストから直接実行可能なアプリケーションAPを生成するための手段とみなすことができる。
装置D、及びより正確には、その分析モジュールAM及び処理モジュールPM、及び場合によってはその格納手段SMは、好ましくはソフトウェアモジュールである。しかし、これらはそれぞれ、電子回路又はハードウェアモジュール、又はハードウェアモジュール及びソフトウェアモジュールの組合せで構成されてもよい。
また、本発明はソフトウェアコンポーネントSCからアプリケーションAPを構築するための方法の観点で考えることもできる。
こうした方法は、唯一の図を参照して上述したものなど、装置Dによって実施することができる。従って、その主な特徴のみ、以下で言及する。
本発明による方法は、仕様AS(構築すべきアプリケーションAPを記述する)が受信されるたびに、
・仕様ASのテキストから基本の要件SR、及びこれらの基本の要件SR間のリンクを抽出するために、この仕様ASのセマンティック分析を行うステップであって、これらのリンクの組が「仕様の全体的な構造」と呼ばれる、ステップ、次いで
・基本の要件SRごとに、それが備える適切な用語を抽出し、基本の要件SRごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築するステップ、次いで
・各コンポーネントSCが「セマンティックソフトウェアコンポーネント」SSCと登録され、記述される少なくとも1つのコンポーネントリポジトリSMにアクセスして、抽出された基本の要件SRごとに、この基本の要件SRのセマンティクスとコンポーネントのセマンティック記述SDとを比較することによって、どのコンポーネントが抽出された基本の要件SRをカバーすることができるかを決定するステップ、及び
仕様の全体的な構造に従って、これらの決定されたソフトウェアコンポーネントSCを最終的にアセンブルして、アプリケーションAPを構築するステップ
から成る。
本発明は、単に例にすぎず、上記の方法及び装置の実施形態に限定されるものではなく、以下の特許請求の範囲内で当業者が考え得るすべての代替実施形態を含む。

Claims (14)

  1. 仕様(AS)及びソフトウェアコンポーネント(SC)からアプリケーション(AP)を構築するための方法であって、装置(D)が、構築すべきアプリケーション(AP)の要件(SR)を記述する用語を含むテキストから成る仕様(AS)を受信するたびに、
    (i)基本の要件(SR)、前記基本の要件(SR)間のリンク及び前記リンク間の論理的な順序を抽出するために、前記仕様(AS)の前記テキストのセマンティック分析を行うステップであって、前記リンク及び前記リンク間の前記論理的な順序が「前記仕様の全体的な構造」を定義する、ステップ、次いで
    基本の要件(SR)ごとに、それが備える適切な用語を抽出し、基本の要件(SR)ごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築するステップ、次いで
    (ii)少なくとも1つのコンポーネントリポジトリにアクセスし、セマンティックソフトウェアコンポーネント(SSC)を格納し、セマンティックソフトウェアコンポーネントのそれぞれが、ソフトウェアコンポーネント(SC)が実行することができる各パブリック操作を定義するための少なくとも1つの適切な用語を備えるセマンティック記述(SD)に関連付けられたソフトウェアコンポーネント(SC)から成り、抽出された基本の要件(SR)ごとに、この基本の要件(SR)の前記セマンティクスと前記コンポーネントのセマンティック記述(SD)とを比較することによって、どのコンポーネント(SC)が前記抽出された基本の要件(SR)をカバーすることができるかを決定するステップ、及び
    (iii)前記仕様の前記全体的な構造に従って、これらの決定されたソフトウェアコンポーネント(SC)をアセンブルして、前記アプリケーションを構築するステップから成ることを特徴とする方法。
  2. 請求項1に記載の方法であって、前記ソフトウェアコンポーネント(SC)の前記セマンティック記述(SD)の少なくとも一部が、(i)前記ソフトウェアコンポーネント(SC)が実行することができる前記操作の目的、(ii)前記操作の目的及び前記操作の入力/出力パラメータを記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子、及び(iii)これらの入力/出力パラメータに関連付けられる適切な用語及び/又は特定のメタデータを備えることを特徴とする方法。
  3. 請求項1乃至2のいずれか1項に記載の方法であって、前記抽出された基本の要件(SR)のそれぞれについて、そのセマンティック記述(SD)と前記格納されたソフトウェアコンポーネント(SC)のそれぞれの前記セマンティック記述(SD)との間の意味的な距離を決定し、次いで最小の意味的な距離に対応する前記格納されたソフトウェアコンポーネント(SC)を選択し、従ってこの選択されたソフトウェアコンポーネント(SC)が前記基本の要件(SR)を実施するためのものであることを特徴とする方法。
  4. 請求項2及び3の組合せに記載の方法であって、「syn−uplet」と呼ばれる単語の一次的なn−upletを基本の要件(SR)の各適切な単語に関連付け、このsyn−upletが次いで「req−uplet」と呼ばれ、syn−upletを各ソフトウェアコンポーネント(SC)の各パブリック操作の目的の各適切な用語に関連付け、このsyn−upletが「comp−uplet」と呼ばれ、これらのreq−upletのそれぞれをこれらのcomp−upletのそれぞれと比較して、各基本の要件(SR)と各格納されたソフトウェアコンポーネント(SC)との間の前記意味的な距離を決定することを特徴とする方法。
  5. 請求項4に記載の方法であって、(i)各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、「sem−uplet」と呼ばれ、前記req−upletのそれぞれと前記comp−upletのそれぞれとの間の前記意味的な近さを表す二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、最小の意味的な距離を定義する前記二次的なn−upletに対応する前記格納されたソフトウェアコンポーネント(SC)を選択することを特徴とする方法。
  6. 請求項3乃至5のいずれか1項に記載の方法であって、前記アプリケーション(AP)の前記構造を最適化するために、前記抽出された基本の要件(SR)に対応する前記選択された格納されたソフトウェアコンポーネント(SC)間の前記仕様(AS)の前記全体的な構造を定義するものと同じ適切なリンクを確立することを特徴とする方法。
  7. 請求項4乃至6のいずれか1項に記載の方法であって、前記仕様の前記全体的な構造を決定するために、(i)基本の要件(SR)の各対の前記req−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、そのreq−upletと前記他の基本の要件(SR)のそれぞれとの間の前記意味的な近さを備える「sem−uplet」と呼ばれる二次的なn−upletを構築し、各sem−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件(SR)間の適切なリンクを確立することを特徴とする方法。
  8. 仕様(AS)及びソフトウェアコンポーネント(SC)からアプリケーション(AP)を構築するための装置(D)であって、
    (i)セマンティックソフトウェアコンポーネント(SSC)を格納するための格納手段(SM)であって、セマンティックソフトウェアコンポーネントのそれぞれが、前記ソフトウェアコンポーネント(SC)が実行することができる各パブリック操作を定義するための少なくとも1つの適切な用語を備えるセマンティック記述(SD)に関連付けられたソフトウェアコンポーネント(SC)から成る、格納手段(SM)、
    (ii)構築すべきアプリケーション(AP)の要件(SR)を記述する用語を含むテキストから成る仕様(AS)が受信されるたびに、
    前記仕様(AS)の前記テキストから基本の要件(SR)、前記基本の要件(SR)の間のリンク及び前記リンク間の論理的な順序を抽出するために、前記仕様(AS)のセマンティック分析を行い、前記リンク及び前記リンク間の前記論理的な順序が「前記仕様の全体的な構造」を定義し、次いで
    基本の要件(SR)ごとに、それが備える前記適切な用語を抽出し、基本の要件(SR)ごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築し、次いで前記格納手段(SM)にアクセスして、抽出された基本の要件(SR)ごとに、この基本の要件(SR)のセマンティクスと前記コンポーネントのセマンティック記述(SD)とを比較することによって、どのコンポーネント(SC)が前記抽出された基本の要件(SR)をカバーすることができるかを決定するように構成された分析手段(AM)、及び
    (iii)前記仕様の前記全体的な構造に従って、前記決定されたソフトウェアコンポーネント(SC)をアセンブルして、前記アプリケーション(AP)を構築するための処理手段(PM)を備えることを特徴とする装置。
  9. 請求項8に記載の装置であって、前記ソフトウェアコンポーネント(SC)の前記セマンティック記述(SD)の少なくとも一部が、(i)前記ソフトウェアコンポーネント(SC)が実行することができる前記操作の目的、(ii)前記操作の目的及び前記操作の入力/出力パラメータを記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子、及び(iii)これらの入力/出力パラメータに関連付けられる適切な用語及び/又は特定のメタデータを備えることを特徴とする装置。
  10. 請求項8乃至9のいずれか1項に記載の装置であって、前記分析手段(AM)が抽出された基本の要件(SR)のそれぞれについて、そのセマンティック記述と前記格納されたソフトウェアコンポーネント(SC)のそれぞれの前記セマンティック記述(SD)との間の意味的な距離を決定し、次いで最小の意味的な距離に対応する前記格納されたソフトウェアコンポーネント(SC)を選択し、この選択されたソフトウェアコンポーネント(SC)が前記基本の要件を実施するように構成されたことを特徴とする装置。
  11. 請求項9及び10の組合せに記載の装置であって、前記分析手段(AM)が、「syn−uplet」と呼ばれる単語の一次的なn−upletを基本の要件(SR)の各適切な単語に関連付け、次いでこのsyn−upletが「req−uplet」と呼ばれ、これらのreq−upletのそれぞれを各ソフトウェアコンポーネント(SC)の各パブリック操作の目的の各適切な用語に関連付けられたsyn−upletであるcomp−upletと比較して、各基本の要件(SR)と各格納されたソフトウェアコンポーネント(SC)との間の前記意味的な距離を決定するように構成されたことを特徴とする装置。
  12. 請求項11に記載の装置であって、前記分析手段(AM)が、(i)各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、「sem−uplet」と呼ばれ、前記req−upletのそれぞれと前記comp−upletのそれぞれとの間の前記意味的な近さを表す二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、最小の意味的な距離を定義する前記二次的なn−upletに対応する前記格納されたソフトウェアコンポーネント(SC)を選択するように構成されたことを特徴とする装置。
  13. 請求項10乃至12のいずれか1項に記載の装置であって、前記処理手段(PM)が、前記アプリケーション(AP)の前記構造を最適化するために、前記抽出された基本の要件(SR)に対応する前記選択された格納されたソフトウェアコンポーネント(SC)間の前記仕様(AS)の前記全体的な構造を定義するものと同じ適切なリンクを確立するように構成されたことを特徴とする装置。
  14. 請求項11乃至13のいずれか1項に記載の装置であって、前記全体的な構造を決定するために、前記分析手段(AM)が、(i)基本の要件(SR)の各対の前記req−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、そのreq−upletと前記他の基本の要件(SR)のそれぞれとの間の前記意味的な近さを備える二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件間の適切なリンクを確立するように構成されたことを特徴とする装置。
JP2010536401A 2007-12-07 2008-11-18 仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法 Expired - Fee Related JP5319694B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07301646A EP2071452A1 (en) 2007-12-07 2007-12-07 Device and method for automatically building applications from specifications and from off-the-shelf components selected by semantic analysis
EP07301646.1 2007-12-07
PCT/EP2008/065721 WO2009071440A1 (en) 2007-12-07 2008-11-18 Device and method for automatically building applications from specifications and from off-the-shelf components selected by semantic analysis

Publications (2)

Publication Number Publication Date
JP2011507061A JP2011507061A (ja) 2011-03-03
JP5319694B2 true JP5319694B2 (ja) 2013-10-16

Family

ID=39272928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010536401A Expired - Fee Related JP5319694B2 (ja) 2007-12-07 2008-11-18 仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法

Country Status (12)

Country Link
US (1) US8453105B2 (ja)
EP (1) EP2071452A1 (ja)
JP (1) JP5319694B2 (ja)
KR (1) KR101584972B1 (ja)
CN (1) CN101452392B (ja)
AU (1) AU2008333378B2 (ja)
BR (1) BRPI0820905A2 (ja)
IL (1) IL205865A (ja)
MX (1) MX2010006118A (ja)
RU (1) RU2495480C2 (ja)
TW (1) TWI446263B (ja)
WO (1) WO2009071440A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671698B2 (en) * 2009-05-26 2020-06-02 Microsoft Technology Licensing, Llc Language translation using embeddable component
US8839197B2 (en) 2010-10-11 2014-09-16 International Business Machines Corporation Automated analysis of composite applications
CN102236556A (zh) * 2011-08-01 2011-11-09 苏州万图明电子软件有限公司 一种软件产品的快速构建方法
US10282419B2 (en) * 2012-12-12 2019-05-07 Nuance Communications, Inc. Multi-domain natural language processing architecture
CN104346152B (zh) * 2013-07-31 2018-10-30 国际商业机器公司 用于代码开发的方法及其系统
CN104156202A (zh) * 2014-05-20 2014-11-19 杨圣泽 一种软件需求分析的方法
AU2016293538B2 (en) * 2015-07-16 2020-03-12 Yi YOUNG Component-based software system and development method
EP3555790B1 (en) 2016-12-19 2023-09-20 Sol1 BV Method and apparatus for real-time control loop application execution from a high-level description
TWI648682B (zh) * 2017-05-05 2019-01-21 如如研創股份有限公司 軟體的自動化產生系統
RU2691837C1 (ru) * 2018-09-20 2019-06-18 Юрий Михайлович Акаткин Способ автоматизированного проектирования приложений
RU2711003C1 (ru) * 2018-11-19 2020-01-14 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Способ формирования технологической цепочки фотограмметрической обработки космических изображений местности
WO2021245744A1 (ja) * 2020-06-01 2021-12-09 三菱電機株式会社 需要分析装置、需要分析プログラムおよび記憶媒体

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63226730A (ja) * 1987-03-17 1988-09-21 Mitsubishi Electric Corp プログラム自動作成方法
US5699507A (en) * 1995-01-17 1997-12-16 Lucent Technologies Inc. Method of identifying similarities in code segments
EP1122640A1 (en) 2000-01-31 2001-08-08 BRITISH TELECOMMUNICATIONS public limited company Apparatus for automatically generating source code
US7778817B1 (en) * 2000-09-30 2010-08-17 Intel Corporation Method and apparatus for determining text passage similarity
KR20020045343A (ko) * 2000-12-08 2002-06-19 오길록 표준화된 문장 구문구조 및 의미구조에 기반한 정보생성/검색 장치 및 그 방법
US20020152206A1 (en) * 2001-04-12 2002-10-17 International Business Machines Corporation Synonym-enabled enhancements for matching and registering internet domain names
US7149734B2 (en) * 2001-07-06 2006-12-12 Logic Library, Inc. Managing reusable software assets
US7484225B2 (en) * 2002-08-08 2009-01-27 Sun Microsystems, Inc. System and method for describing and identifying abstract software modules in peer-to-peer network environments
US8676853B2 (en) * 2003-02-27 2014-03-18 Hewlett-Packard Development Company, L.P. System and method for software reuse
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
US7890540B2 (en) * 2003-07-22 2011-02-15 Sap Ag Browsing meta data for an enterprise service framework
US7761320B2 (en) * 2003-07-25 2010-07-20 Sap Aktiengesellschaft System and method for generating role templates based on skills lists using keyword extraction
US7761858B2 (en) * 2004-04-23 2010-07-20 Microsoft Corporation Semantic programming language
US7676791B2 (en) * 2004-07-09 2010-03-09 Microsoft Corporation Implementation of concurrent programs in object-oriented languages
US8050907B2 (en) * 2004-07-30 2011-11-01 Microsoft Corporation Generating software components from business rules expressed in a natural language
US7640532B2 (en) * 2004-08-25 2009-12-29 International Business Machines Corporation Mapping software code to business logic
JP2006350729A (ja) * 2005-06-16 2006-12-28 Hitachi Ltd アプリケーションソフトウェア構築方法、アプリケーションソフトウェア構築処理プログラム及びアプリケーションソフトウェア構築装置
EP1818816A1 (fr) * 2006-01-24 2007-08-15 Alcatel Lucent Procédé de création de service, produit de programme d'ordinateur et système informatique de mise en oeuvre de ce procédé
CN100432930C (zh) * 2006-12-06 2008-11-12 武汉大学 一种软构件资源管理方法
US7783659B2 (en) * 2007-02-07 2010-08-24 International Business Machines Corporation Method and system for assessing and refining the quality of web services definitions

Also Published As

Publication number Publication date
KR101584972B1 (ko) 2016-01-13
RU2495480C2 (ru) 2013-10-10
KR20100091209A (ko) 2010-08-18
RU2010128102A (ru) 2012-01-20
BRPI0820905A2 (pt) 2015-06-23
US20090150853A1 (en) 2009-06-11
JP2011507061A (ja) 2011-03-03
EP2071452A1 (en) 2009-06-17
CN101452392B (zh) 2012-09-05
CN101452392A (zh) 2009-06-10
MX2010006118A (es) 2010-07-01
TWI446263B (zh) 2014-07-21
WO2009071440A1 (en) 2009-06-11
IL205865A (en) 2014-02-27
IL205865A0 (en) 2010-11-30
AU2008333378B2 (en) 2013-01-31
US8453105B2 (en) 2013-05-28
AU2008333378A1 (en) 2009-06-11
TW200939121A (en) 2009-09-16

Similar Documents

Publication Publication Date Title
JP5319694B2 (ja) 仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法
KR101192874B1 (ko) 서비스 생성 방법, 그 방법을 구현하기 위한 컴퓨터-판독가능한 기록 매체 및 컴퓨터 시스템
Meyer et al. Automating data exchange in process choreographies
US20090177955A1 (en) Method and system for modeling user requests, applications and components used in dynamic application assembly
US20030217044A1 (en) Method and apparatus of automatic method signature adaptation for dynamic web service invocation
US20080077565A1 (en) Method for finding at least one web service, among a plurality of web services described by respective semantic descriptions, in different forms or languages
EP1835417A1 (en) Web service with associated lexical tree
Merten et al. Requirements Communication in Issue Tracking Systems in Four Open-Source Projects.
Musyaffa et al. Minimally invasive semantification of light weight service descriptions
US20030204497A1 (en) Search network for searching services on the internet
Mohebbi et al. Contemporary semantic web service frameworks: An overview and comparisons
Ed-Douibi et al. APIComposer: Data-driven composition of REST APIs
CN115905274A (zh) 数据处理的方法、装置、电子设备及介质
Anicic et al. A semantically enabled service oriented architecture
Bechini et al. Enabling ontology-based document classification and management in ebXML registries
Rodriguez et al. An analysis of frequent ways of making undiscoverable Web Service descriptions
Kurgan et al. The WWW based data mining toolbox architecture
Anicic et al. A Research Roadmap for DERI Innsbruck
Larvet Automatic Orchestration of Web Services through Semantic Annotations.
US20090222790A1 (en) System and method for processing resource description framework data
Vaidya et al. A new phylogenetic data standard for computable clade definitions: the Phyloreference Exchange Format (Phyx)
Chitchyan Semantics-based composition for textual requirements
CN117439945A (zh) 一种路由处理方法、装置、存储介质及电子设备
Bhat et al. An Architecture for Intelligent Email Based Workflow Interface to Business Applications.
Chianese et al. Using ontologies to achieve semantic interoperability in the web: An approach based on the semantic triangle model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111014

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130524

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130711

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees