JP5319694B2 - 仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法 - Google Patents
仕様及びセマンティック分析によって選択された既製のコンポーネントからアプリケーションを自動的に構築するための装置及び方法 Download PDFInfo
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims description 34
- 238000000034 method Methods 0.000 title claims description 33
- 238000012545 processing Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 206010020400 Hostility Diseases 0.000 description 1
- 101100149256 Mus musculus Sema6b gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- JTJMJGYZQZDUJJ-UHFFFAOYSA-N phencyclidine Chemical compound C1CCCCN1C1(C=2C=CC=CC=2)CCCCC1 JTJMJGYZQZDUJJ-UHFFFAOYSA-N 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software 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
・仕様のテキストから基本の要件(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つの別個の基本の要件間の適切なリンクを確立するように構成することができる。
・データ名(又は識別子)
・データに関連付けられ、データのセマンティクスを指定するために、外部オントロジ(external ontology)又は外部の辞書又は用語辞典にクラスとして定義された概念を参照して表される概念(又は適切な用語)。ここでは、オントロジとは、例えば、コンポーネントSCによってアドレス指定され、その名前がセマンティックカードのヘッダーで言及されるドメインを指す。
・セマンティックデータ型のデータのステレオタイプを表し、データの性質を指定するデータのセマンティックタグ(例えば「semTag」と呼ぶ)。このsemTagは、以下で説明するように、コンポーネントの相互作用を決定し、最適化するのに有用である。
・この受信されたアプリケーション仕様ASのセマンティック分析を順に実行して、
・例えば文法分析器によって仕様ASのテキストから基本の要件SR、及びこれらの基本の要件SR間のリンクを抽出し、これらのリンクの組が以下「仕様の全体的な構造(又は論理アセンブリ)」と呼ばれ、次いで
・基本の要件SRごとに、それが備える適切な用語を抽出し、基本の要件SRごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築し、次いで
・格納手段SMにアクセスして、この基本の要件SRのセマンティクスとコンポーネントのセマンティック記述SDとを比較することによって、抽出された基本の要件SRごとに、どのコンポーネントがこの抽出された基本の要件SRをカバーすることができるかを決定する(選択する)
ためのものである。
・目的は特定の単語を使用して自然言語で表される。
・これらの特定の単語は、セマンティックカードSDに組み込まれ、目的を書くために使用されるように適切な単語を要約する「概念のリスト」に属する。
・これらの「概念のリスト」は、例えば外部オントロジにおいて、即ち、セマンティックカード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>.
- 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(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つある。
semProx(T1, T2) = 100 * card(common(synT1), synT2))) / avg(synT1), synT2)).
- 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}.
・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が選択される。
・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の文脈内で、要件を形式的に記載することができると考える。
out_A = Comp1.operation_A(A_parameters);
out_B = Comp2.operation_B(out_A);
又はより直接的には、以下の通りである。
out_B = Comp2.operation_B(Comp1.operation_A(A_parameters)).
<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>.
translated_text = Translator.translate(text_to_translate, src_lang, dest_lang);
return translated_text.
text_to_translate = RSS.getDescriptionOfTitle(site_address, title);
translated_text = Translator.translate(text_to_translate, src_lang, dest_lang);
return translated_text.
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.
・データ型を考慮に入れる必要がある。例えば、RSS.getAllTitles()は、単一のStringではなく、Stringの配列を戻す。
・いくつかのパラメータの名前を、それらのセマンティクスを介して、即ちsemTagを用いて解決することができる。例えば、「adr_site」及び「site_address」は、同じ概念を回復し、同じsemTagを有する。
・いくつかの他のパラメータは、元の要件に含まれる何らかの有用な情報で解決することができる。例えば、要件がフランス語の翻訳を指定する場合、操作Translator.translate()のパラメータ「dest_lang」が「French」に設定されなければならない。
・いくつかの追加のコンポーネントSC又はコンポーネント操作を使用して、他のパラメータを解決することができる。例えば、ユーティリティコンポーネント「Language Finder」を使用して、所与のテキストのソース言語、又はRSSフィードコンポーネントにおける操作getSourceLanguage()を自動的に決定することによってパラメータ「src_lang」を設定することができる。
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;
}.
・仕様ASのテキストから基本の要件SR、及びこれらの基本の要件SR間のリンクを抽出するために、この仕様ASのセマンティック分析を行うステップであって、これらのリンクの組が「仕様の全体的な構造」と呼ばれる、ステップ、次いで
・基本の要件SRごとに、それが備える適切な用語を抽出し、基本の要件SRごとに、その抽出された適切な用語に基づいて「この基本の要件のセマンティクス」を表す「セマンティック記述」を構築するステップ、次いで
・各コンポーネントSCが「セマンティックソフトウェアコンポーネント」SSCと登録され、記述される少なくとも1つのコンポーネントリポジトリSMにアクセスして、抽出された基本の要件SRごとに、この基本の要件SRのセマンティクスとコンポーネントのセマンティック記述SDとを比較することによって、どのコンポーネントが抽出された基本の要件SRをカバーすることができるかを決定するステップ、及び
仕様の全体的な構造に従って、これらの決定されたソフトウェアコンポーネントSCを最終的にアセンブルして、アプリケーションAPを構築するステップ
から成る。
Claims (14)
- 仕様(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)をアセンブルして、前記アプリケーションを構築するステップから成ることを特徴とする方法。 - 請求項1に記載の方法であって、前記ソフトウェアコンポーネント(SC)の前記セマンティック記述(SD)の少なくとも一部が、(i)前記ソフトウェアコンポーネント(SC)が実行することができる前記操作の目的、(ii)前記操作の目的及び前記操作の入力/出力パラメータを記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子、及び(iii)これらの入力/出力パラメータに関連付けられる適切な用語及び/又は特定のメタデータを備えることを特徴とする方法。
- 請求項1乃至2のいずれか1項に記載の方法であって、前記抽出された基本の要件(SR)のそれぞれについて、そのセマンティック記述(SD)と前記格納されたソフトウェアコンポーネント(SC)のそれぞれの前記セマンティック記述(SD)との間の意味的な距離を決定し、次いで最小の意味的な距離に対応する前記格納されたソフトウェアコンポーネント(SC)を選択し、従ってこの選択されたソフトウェアコンポーネント(SC)が前記基本の要件(SR)を実施するためのものであることを特徴とする方法。
- 請求項2及び3の組合せに記載の方法であって、「syn−uplet」と呼ばれる単語の一次的なn−upletを基本の要件(SR)の各適切な単語に関連付け、このsyn−upletが次いで「req−uplet」と呼ばれ、syn−upletを各ソフトウェアコンポーネント(SC)の各パブリック操作の目的の各適切な用語に関連付け、このsyn−upletが「comp−uplet」と呼ばれ、これらのreq−upletのそれぞれをこれらのcomp−upletのそれぞれと比較して、各基本の要件(SR)と各格納されたソフトウェアコンポーネント(SC)との間の前記意味的な距離を決定することを特徴とする方法。
- 請求項4に記載の方法であって、(i)各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、「sem−uplet」と呼ばれ、前記req−upletのそれぞれと前記comp−upletのそれぞれとの間の前記意味的な近さを表す二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、最小の意味的な距離を定義する前記二次的なn−upletに対応する前記格納されたソフトウェアコンポーネント(SC)を選択することを特徴とする方法。
- 請求項3乃至5のいずれか1項に記載の方法であって、前記アプリケーション(AP)の前記構造を最適化するために、前記抽出された基本の要件(SR)に対応する前記選択された格納されたソフトウェアコンポーネント(SC)間の前記仕様(AS)の前記全体的な構造を定義するものと同じ適切なリンクを確立することを特徴とする方法。
- 請求項4乃至6のいずれか1項に記載の方法であって、前記仕様の前記全体的な構造を決定するために、(i)基本の要件(SR)の各対の前記req−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、そのreq−upletと前記他の基本の要件(SR)のそれぞれとの間の前記意味的な近さを備える「sem−uplet」と呼ばれる二次的なn−upletを構築し、各sem−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件(SR)間の適切なリンクを確立することを特徴とする方法。
- 仕様(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)を備えることを特徴とする装置。 - 請求項8に記載の装置であって、前記ソフトウェアコンポーネント(SC)の前記セマンティック記述(SD)の少なくとも一部が、(i)前記ソフトウェアコンポーネント(SC)が実行することができる前記操作の目的、(ii)前記操作の目的及び前記操作の入力/出力パラメータを記述する用語が定義されるドメインを指定する少なくとも1つのドメイン識別子、及び(iii)これらの入力/出力パラメータに関連付けられる適切な用語及び/又は特定のメタデータを備えることを特徴とする装置。
- 請求項8乃至9のいずれか1項に記載の装置であって、前記分析手段(AM)が抽出された基本の要件(SR)のそれぞれについて、そのセマンティック記述と前記格納されたソフトウェアコンポーネント(SC)のそれぞれの前記セマンティック記述(SD)との間の意味的な距離を決定し、次いで最小の意味的な距離に対応する前記格納されたソフトウェアコンポーネント(SC)を選択し、この選択されたソフトウェアコンポーネント(SC)が前記基本の要件を実施するように構成されたことを特徴とする装置。
- 請求項9及び10の組合せに記載の装置であって、前記分析手段(AM)が、「syn−uplet」と呼ばれる単語の一次的なn−upletを基本の要件(SR)の各適切な単語に関連付け、次いでこのsyn−upletが「req−uplet」と呼ばれ、これらのreq−upletのそれぞれを各ソフトウェアコンポーネント(SC)の各パブリック操作の目的の各適切な用語に関連付けられたsyn−upletであるcomp−upletと比較して、各基本の要件(SR)と各格納されたソフトウェアコンポーネント(SC)との間の前記意味的な距離を決定するように構成されたことを特徴とする装置。
- 請求項11に記載の装置であって、前記分析手段(AM)が、(i)各req−uplet及び各comp−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、「sem−uplet」と呼ばれ、前記req−upletのそれぞれと前記comp−upletのそれぞれとの間の前記意味的な近さを表す二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、最小の意味的な距離を定義する前記二次的なn−upletに対応する前記格納されたソフトウェアコンポーネント(SC)を選択するように構成されたことを特徴とする装置。
- 請求項10乃至12のいずれか1項に記載の装置であって、前記処理手段(PM)が、前記アプリケーション(AP)の前記構造を最適化するために、前記抽出された基本の要件(SR)に対応する前記選択された格納されたソフトウェアコンポーネント(SC)間の前記仕様(AS)の前記全体的な構造を定義するものと同じ適切なリンクを確立するように構成されたことを特徴とする装置。
- 請求項11乃至13のいずれか1項に記載の装置であって、前記全体的な構造を決定するために、前記分析手段(AM)が、(i)基本の要件(SR)の各対の前記req−upletに共通の単語の数を表す意味的な近さを決定し、(ii)基本の要件(SR)ごとに、そのreq−upletと前記他の基本の要件(SR)のそれぞれとの間の前記意味的な近さを備える二次的なn−upletを構築し、各二次的なn−upletが意味的な距離を定義し、次いで、それらのsem−upletの値が最大であるとき、2つの別個の基本の要件間の適切なリンクを確立するように構成されたことを特徴とする装置。
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)
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)
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 |
-
2007
- 2007-12-07 EP EP07301646A patent/EP2071452A1/en not_active Withdrawn
-
2008
- 2008-11-18 MX MX2010006118A patent/MX2010006118A/es active IP Right Grant
- 2008-11-18 JP JP2010536401A patent/JP5319694B2/ja not_active Expired - Fee Related
- 2008-11-18 AU AU2008333378A patent/AU2008333378B2/en not_active Ceased
- 2008-11-18 WO PCT/EP2008/065721 patent/WO2009071440A1/en active Application Filing
- 2008-11-18 KR KR1020107012172A patent/KR101584972B1/ko not_active IP Right Cessation
- 2008-11-18 BR BRPI0820905-7A patent/BRPI0820905A2/pt not_active IP Right Cessation
- 2008-11-18 RU RU2010128102/08A patent/RU2495480C2/ru not_active IP Right Cessation
- 2008-11-19 TW TW097144730A patent/TWI446263B/zh not_active IP Right Cessation
- 2008-12-05 CN CN2008101771133A patent/CN101452392B/zh not_active Expired - Fee Related
- 2008-12-05 US US12/329,107 patent/US8453105B2/en not_active Expired - Fee Related
-
2010
- 2010-05-20 IL IL205865A patent/IL205865A/en not_active IP Right Cessation
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 |