JP5147952B2 - システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置 - Google Patents

システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置 Download PDF

Info

Publication number
JP5147952B2
JP5147952B2 JP2010542049A JP2010542049A JP5147952B2 JP 5147952 B2 JP5147952 B2 JP 5147952B2 JP 2010542049 A JP2010542049 A JP 2010542049A JP 2010542049 A JP2010542049 A JP 2010542049A JP 5147952 B2 JP5147952 B2 JP 5147952B2
Authority
JP
Japan
Prior art keywords
model
block
graph
multidimensional data
block table
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.)
Active
Application number
JP2010542049A
Other languages
English (en)
Other versions
JPWO2010067647A1 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010542049A priority Critical patent/JP5147952B2/ja
Publication of JPWO2010067647A1 publication Critical patent/JPWO2010067647A1/ja
Application granted granted Critical
Publication of JP5147952B2 publication Critical patent/JP5147952B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置に関する。
ソフトウェアや製造業におけるシステムのモデルを、複数の視点から横断的に記述する場合に、かかわるモデルの要素の規模が大きくなると、横断的な記述のための抽出作業が非効率になることが知られている。例えば、制約を形式的に記述する手法が、従来いくつか提案されている。しかし、制約の数が大きくなると、効率的に制約を分析・編集することが困難になる。汎用グラフィカル・モデリング言語であるSysML(Systems Modeling Language)のPD(Parametric Diagrams)やVisual OCL、Constraint Diagramsは、制約と、制約を満たすべきシステム構成要素との関係を、ブロックとリンクとを用いて視覚的に記述することができる。しかし、多数のシステム構成要素がかかわる制約を記述しようとすると、ダイアグラム中に多数のブロックとリンクとがひしめきあい、複雑化するので、効率的な制約の分析と編集とが難しくなる。今日、ますます大規模で複雑なシステムが作られるようになっており、多数のモデル要素を階層的かつ複数の視点に基づいて分析・編集することが重要になる。
一方、大量のデータを対象として分析を行う手法の1つとして、OLAP(Online Analytical Processing)が知られている。OLAPでは、リレーショナルデータの構造を、スナップショットとして多次元データモデルに展開することで、データの分析を行う手法であり、最終分析結果は、Table/Matrix形式に展開されることが自然な定義となる。OLAPは、すでに業務における様々な分析に広く用いられており、手法も確立したものになっている。逆の見方をすると、表形式による大量データの効率的な分析手法は、システム記述においても有望であることが考えられる。
しかし、システムを記述するためのSysML、車載組み込みソフトウェア記述の標準であるAutosar(登録商標)(Automotive Open System Architecture)、制御システムの記述で一般的なSimulink(登録商標)等、ほとんどの言語では、一般的なグラフ構造を基本データモデルとして持っており、リレーショナル形式のデータ構造とはなっていない。したがって、Table/Matrixとして分析を行うためには、両者のデータモデルを適切に対応付けすることが必要になる。
グラフ構造を有するグラフモデルとリレーショナルモデルとの対応付けとしては、種々の方法が開示されている(例えば、特許文献1〜3)。特許文献1に記載のネットワーク型データベース問い合わせ制御システムは、ネットワーク型データベースにおけるレコード間の関係をセットを用いて定義する外部スキーマ情報と、ネットワーク型データベースを記憶装置上に格納する形態を定義する内部スキーマ情報とにしたがって、リレーショナル型データベースにおいてカラム情報及びセット情報からなるネットワークモデル情報を生成する。そして、ネットワーク型データベース問い合わせ制御システムは、このネットワークモデル情報とリレーショナル型データベースに対する問い合わせ文とからネットワーク型データベースに対する問い合わせを実行するものである。
特許文献2に記載の関連情報変換装置は、データベース用の関連情報のデータ構造を入力する入力手段と、入力手段からの情報をn次元ユークリッド空間等の距離空間内での関連情報表現にて格納する属性表現格納手段と、入力手段からの情報をノード及びアークで構成されるグラフ構造の関連情報表現にて格納するグラフ表現格納手段と、属性表現格納手段により格納された情報及びグラフ表現格納手段に格納された情報を相互変換する属性表現・グラフ表現変換手段と、属性表現格納手段に格納された情報もしくはグラフ表現格納手段に格納された情報を関連情報のデータ構造として出力する出力手段とを備えるものである。
特許文献3に記載のデータベースモデル変換方法は、ネットワークモデルによるデータベースにおけるグループそれぞれに対応させてテーブルを生成し、子グループに含まれていた子レコードに親子関連情報及び順序情報を付加してから子テーブルに格納するものである。
特開平5−274348号公報 特開平6−250896号公報 特開2000−267906号公報
しかしながら、特許文献1〜3に開示されているシステム等は、いずれもモデル変換において得られる関係データベースのテーブル同士の関係に関する情報が与えられていない。よって、特許文献1〜3に記載のシステム等は、階層的かつ複数の視点に基づくリレーショナルモデルの生成等を行うことができないものであったので、システムのモデルの分析及び編集を容易にするものではなかった。
本発明は、階層関係を表す情報を用いることでシステムのモデルの分析及び編集を容易にする、システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置を提供することを目的とする。
本発明の1つの態様として、本発明の第1の形態によると、グラフ形式のデータ構造を有し、複数のモデル要素から構成されるシステムのモデルであるグラフモデルを記憶するグラフモデル記憶部を備えたコンピュータが、多次元データモデルの構造とモデル要素を抽出する抽出クエリとに関する記述を含んだ変換処理記述の入力を受け付ける。ここで、グラフモデルは、SysML等の言語で記述できるものであり、システムの構造、振る舞い(動作)及び制約のうち少なくともいずれかがモデル化されたものである。そして、コンピュータが、入力された変換処理記述に基づき、グラフモデル記憶部に記憶されたグラフモデルから、次元が階層関係を有する多次元データモデルを生成する。多次元データモデルの構造は、スノーフレーク・スキーマを適用したものである。
本発明の第2の形態によると、第1の形態に加えて、コンピュータが、多次元データモデルの中心のテーブルであるルートブロックテーブルに対応するモデル要素を、複数のモデル要素の中から予め指定する。そして、コンピュータが、指定されたルートブロックテーブルに関連付けられたブロックテーブル、及びブロックテーブルに更に関連付けられたブロックテーブルに対して抽出クエリを順番に適用し、関連付けられたブロックテーブルが存在する間はブロックテーブルに抽出クエリを適用して、抽出したモデル要素を用いて多次元データモデルを生成する。
本発明の第3の形態によると、第1の形態に加えて、コンピュータが、生成された前記多次元データモデルから表形式のビューを生成して、生成された表形式のビューを出力する。ここで、コンピュータが、出力する特定の情報を指定するフィルタリング情報を受け付けることで、フィルタリング情報に対応した表形式のビューを出力することができる。また、ユーザにより、出力された表形式のビューに対する変更が行われた場合には、コンピュータは、変更情報を受け付け、更に多次元データモデルの更新に関するルールを示すビュー更新ルールに関する記述を含んだ前記変換処理記述の入力を受け付けることで、変換処理記述にしたがって受け付けた変更情報を、多次元データモデル反映する。更に、コンピュータは、変換処理記述にしたがって受け付けた変更情報を、グラフモデルに反映する。
本発明の第4の形態によると、第3の形態に加えて、コンピュータが、表形式のビューに基づいた制約式の記述を受け付けることで、予め定義された多次元データモデルとグラフモデルとの対応付け規則を用いて、制約式の記述からグラフモデルを更新する。
また、本発明は別の態様として、上記の方法の各ステップをコンピュータに実行させるコンピュータ・プログラムとしても提供可能である。さらに別の形態として、上記の方法を実行する装置としても提供可能である。
本発明によれば、コンピュータが、グラフ形式のデータ構造を有し、複数のモデル要素から構成されるシステムのモデルであるグラフモデルを記憶するグラフモデル記憶部を備えており、多次元データモデルの構造とモデル要素を抽出する抽出クエリとに関する記述を含んだ変換処理記述の入力を受け付けるステップと、入力された変換処理記述に基づき、グラフモデル記憶部に記憶されたグラフモデルから、次元が階層関係を有する多次元データモデルを生成するステップと、を含むシステムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置を提供することができる。よって、多数のモデル要素からなるグラフモデルから次元が階層関係を有する多次元データモデルを生成することで、システムのモデルの分析及び編集を容易にし、多数のモデル要素を階層的かつ複数の視点に基づいて分析・編集することができる。
本実施形態に係るモデル変換装置の全体構成を示す図である。 本実施形態に係るシステムのモデルの例を示す図である。 本実施形態に係る多次元データモデルの構造及び構造に従うテーブルの例を示す図である。 本実施形態に係るブロック抽出クエリの例を示す図である。 本実施形態に係る多次元データモデル生成のフローチャートである。 本実施形態に係るユーザに提示される表形式のビューの例を示す図である。 本実施形態に係るビュー更新ルールの例を示す図である。 本実施形態に係るビューの変更によるモデル更新のフローチャートである。 本実施形態に係るビューの変更によるモデル更新のフローチャートである。 本実施形態に係るビューの変更によるモデル更新のフローチャートである。 本実施形態に係るグラフ構造のシステムのモデルと、多次元データモデルと、表形式のビューとの間の変換の概略を示す図である。 本実施形態に係るSysML PDの作成のフローチャートである。 本実施形態に係るシステムのモデルの例を示す図である。 本実施形態に係る多次元データモデルの構造とその付加情報の例を示す図である。 本実施形態に係る多次元データモデルに従うテーブルの内容の例を示す図である。 本実施形態に係るユーザに提示されるテーブルの例を示す図である。 本実施形態に係るモデル変換装置のハードウェア構成を示す図である。
以下、本発明の実施形態について図を参照しながら説明する。なお、これらはあくまでも一例であって、本発明の技術的範囲はこれらに限られるものではない。
[全体構成]
図1は、本実施形態に係るモデル変換装置1の全体構成を示す図である。モデル変換装置1は、グラフモデル記憶部2、多次元データモデル記憶部3、データ変換部4、表提示部5及び処理記述入力部6を備える。
グラフモデル記憶部2は、SysMLやUML(Unified Modeling Language)等の、グラフ形式のデータ構造(グラフ構造ともいう)を有する対象システムの構造、振る舞い、及び制約のモデルからなるシステムのモデル(グラフモデル)を記憶する。ここで、システムの振る舞いとは、動作や状態遷移を表すものをいう。
多次元データモデル記憶部3は、グラフモデル記憶部2のシステムのモデルと、処理記述入力部6から入力を受け付けた情報である変換処理記述とから生成される多次元データモデルを記憶する。
データ変換部4は、グラフモデル記憶部2に記憶したシステムのモデルから、多次元データモデル記憶部3に記憶可能な多次元データモデルを生成する制御部である。また、データ変換部4は、多次元データモデルをもとに、ユーザが欲する情報を表の形式で表現した表形式のビューを作成する。更に、データ変換部4は、表形式のビューが変更された際には、多次元データモデル記憶部3に記憶された多次元データモデルと、グラフモデル記憶部2に記憶されたシステムのモデルとにその変更を反映する。また、データ変換部4は、表形式のビューを参照して記述された制約式等の情報から、対応するグラフモデル記憶部2に記憶されたシステムのモデルを更新する。
表提示部5は、データ変換部4により作成された表形式のビューを出力する出力制御部である。また、表提示部5は、出力した表形式のビューがユーザによって操作して変更されたことに応じて、変更情報を受け付ける。更に、表提示部5は、表形式のビューを参照してユーザにより記述された制約式の情報を受け付ける。
処理記述入力部6は、設計者が入力した、システムに関する変換処理記述の情報として、多次元データモデルの構造と、その付加情報とを受け付ける。付加情報とは、多次元データモデルの構造の付加情報であり、グラフ構造のシステムのモデルから抽出するモデル要素を指定するモデル要素抽出クエリと、多次元データモデルの更新に関するルールであるビュー更新ルールとをいう。なお、各機能の詳細は、後述で説明する。
図2は、本実施形態に係るシステムのモデルの例を示す図である。図3は、多次元データモデルの構造及び構造に従うテーブルの例を示す図である。
[システムのモデル例]
図2には、FF車・X配管方式2系統油圧ブレーキの車輪に関するグラフ形式のデータ構造を有するシステムのモデルであるグラフモデル20が示されている。グラフモデル20は、左前輪w1と右前輪w2との2つのブロック(モデル要素)が、前車軸p1のブロックとステアリングs1のブロックとにつながっており、右後輪w3と左後輪w4との2つのブロックが、後車軸p2のブロックにつながっていることを示す。また、グラフモデル20は、故障に備えた二重化を考慮して、油圧配管A(t1)及び油圧配管B(t2)の2つのブレーキ油圧配管のブロックを有することを示す。油圧配管A(t1)及び油圧配管B(t2)の2つのブレーキ油圧配管のブロックは、油圧配管A(t1)のブロックが、左前輪w1のブロック及び右後輪w3のブロックにつながり、油圧配管B(t2)のブロックが、右前輪w2のブロック及び左後輪w4のブロックにつながっており、それぞれ前輪と後輪とを1つずつ互い違いに結んでいる。グラフモデル20は、前車軸p1と後車軸p2とのブロックが、車体Au1のブロックに、油圧配管A(t1)と油圧配管B(t2)とのブロックが、ブレーキマスターシリンダm1のブロックに、それぞれ上位のブロックに対してつながっていることを示す。なお、図2では、記載を省略しているが、図中の左前輪w1、右前輪w2、右後輪w3及び左後輪w4、等の各ブロックは、重さや名称等のプロパティを有する。
図2のグラフモデル20は、グラフモデル記憶部2に予め記憶されている。以降、グラフモデル20から多次元データモデルを生成する例を説明する。
[多次元データモデルの構造例]
図3(1)は、多次元データモデルの構造30である。構造30は、多次元データモデルを生成するのに必要な情報であり、設計者が、図2に例示したグラフモデル20を参照した上で、処理記述入力部6から与える。図3(1)に示す構造30は、図2のグラフモデル20を、車輪wの観点を中心に、車軸p、ステアリングs、油圧配管tの異なる3つの視点で分析するためのスキーマである。車軸pは、車体uを下位に有しており、車輪w−車軸p−車体uといった階層的な分析が可能になる。構造30は、車輪wを中心にして、車輪wにつながる次元が階層化されて放射状に広がる構造をしている。そして、構造30のような、次元が階層化されて放射状に広がる構造をしたスキーマを、スノーフレーク・スキーマという。
[多次元データモデルの構造に従うテーブルの例]
図3(2)は、多次元データモデルの構造30に従うテーブル32の例を示す。テーブル32は、ルートブロックテーブル33と、ブロックテーブル34〜37とから構成される。このテーブル32を生成することが、多次元データモデルの生成であり、テーブル32は、多次元データモデルを表す。ルートブロックテーブル33は、スノーフレーク・スキーマにおけるFactテーブルであり、分析・編集の中心となるブロックの集合である。本実施形態の場合には、車輪wが分析・編集の中心となるブロックの集合である。ブロックテーブル34〜37は、スノーフレーク・スキーマにおける次元テーブルであり、中心になるルートブロックテーブル33が、システムのモデルにおいて関連しているブロックの集合を保持する。
[付加情報例1]
次に、テーブル32を生成するために必要な情報であり、設計者が、処理記述入力部6に入力する付加情報である抽出クエリについて説明する。図4は、本実施形態に係るブロック抽出クエリQの例を示す図である。ブロック抽出クエリQは、多次元データモデルのブロックテーブルごとに設計者が付与する。ブロック抽出クエリQは、対象のブロックテーブルのレコードとして、例えば、グラフモデル20等のグラフ構造のシステムのモデルから、どのブロックを抽出するかを指定するクエリである。ブロック抽出クエリQは、Q=(Qb,Qp)によって構成される。クエリQbは、ブロックを抽出するために用いられる。これは、ローカルクエリを仮定する。すなわち、クエリQbにマッチするかどうかは、局所的にブロックをひとつ与えれば、判定できるようなクエリであるとする。そのような言語として、例えば、抽出対象のブロック名にマッチする正規表現やパターンが考えられる。そして、ルートブロックテーブルに対応するブロックを抽出する際には、モデル全域に対してglobalなクエリを適用する。
一方で、ルートブロックテーブル以外のブロックテーブルについては、親レベル(ここではスノーフレーク・スキーマを木構造に見立てたときの親−子関係の言葉を用いている)で抽出されたブロックから辿れるブロックだけを対象に、クエリを適用する。これによって、ルートブロックテーブル以外のクエリについては、文脈に依存した問い合わせを実現することができる。文脈に依存した問い合わせとは、リンクが繋がっていることで、子レベルに向かって辿ることができる問い合わせを順に辿っていくことをいう。このように文脈に依存した問い合わせをすることで辿る範囲が決定されるため、モデル変換装置1による文脈の問い合わせは、実用に適うものになる。
クエリQpは、クエリQbによって抽出されたブロックから、どのようなプロパティを取り出すかを決める。プロパティは、例えば、プロパティ名の集合を考えることができる。
[多次元データモデル生成のフローチャート]
次に、グラフ構造のシステムのモデルから、スノーフレーク・スキーマの次元テーブルの内容を抽出する処理について説明する。図5は、本実施形態に係る多次元データモデル生成のフローチャートである。なお、以下に示す処理において、データ変換部4が制御する。
ステップS1では、整数jに0を代入し、ステップS2では、ブロックテーブルLjをブロックテーブルLとする。なお、ブロックテーブルL0は、ルートブロックテーブルを示す。
ステップS3では、ブロックテーブルLに対応するクエリQbを用いて、クエリQbにマッチする全てのブロックであるブロックbi(i=1〜n(n:整数))を取得する。なお、クエリQbは、ブロック抽出クエリQの1つであり、ブロックbiを抽出するものである。ステップS4では、1を整数iに代入し、ブロックbiをブロックbとする。
ステップS5では、ブロックテーブルLに対応するクエリQpにマッチする、ブロックbのプロパティの値v(v1,…,vk)を取得する。プロパティの値vの数にあたる整数kは、クエリQpに依存する。
ステップS6では、ブロックbのブロックテーブルLにおけるID(identifier)として、b.idを生成する。
ステップS7では、ブロックテーブルLの下位にブロックテーブルが存在するか否かを判断する。ブロックテーブルLの下位にブロックテーブルが存在する場合(ステップS7:YES)には、ステップS8に処理を移す。他方、ブロックテーブルLの下位にブロックテーブルが存在しない場合(ステップS7:NO)には、ステップS10に処理を移す。
ステップS8では、ブロックbをコンテキストにして、ブロックテーブルLの下位(子レベル)のブロックテーブルの集合L1,…,Lxに対するクエリQb1,…,クエリQbxを用いて、クエリQb1,…,クエリQbxにマッチするブロックb1,…,ブロックbxを取得する。なお、整数xは1以上の数値である。
ステップS9では、ブロックb1,…,ブロックbxのブロックテーブルL1,…,ブロックテーブルLxに対応するIDとして、b1.id,…,bx.idを生成する。
ステップS10では、レコード(b.id,b1.id,…,bx.id,v1,…,vk)を、ブロックテーブルLに追加する。なお、b1.id,…,bx.idは、ブロックテーブルLの下位にブロックテーブルL1,…,ブロックテーブルLxを有する場合にのみ存在する。
ステップS11では、iに1を加えた値を整数iに代入し、ブロックbiをブロックbとする。そして、ステップS12では、整数iが整数nより大きいか否かを判断する。ここで、整数nは、ステップS3で取得したクエリQbにマッチするブロックの数である。整数iが整数nよりも大きい場合(ステップS12:YES)には、処理をステップS13に移す。他方、整数iが整数nよりも大きくない場合(ステップS12:NO)には、処理をステップS5に移す。
ステップS13では、jに1を加えた値を整数jに代入し、ステップS14では、ブロックテーブルLjが存在するか否かを判断する。ブロックテーブルLjが存在する場合(ステップS14:YES)には、処理をステップS2に移す。他方、ブロックテーブルLjが存在しない場合(ステップS14:NO)には、本処理を終了する。
この一連の処理により、ユーザが、多次元データモデルの構造と、モデル要素を抽出するクエリとを入力して与えることで、データ変換部4は、グラフ形式のデータ構造を有するシステムのモデルから、次元が階層関係を有する多次元データモデルを自動的に生成することができる。
[多次元データモデル生成のフローチャートの使用例]
次に、図5で説明したフローチャートを使用して、多次元データモデルを生成する例を説明する。ここでは、図2のグラフモデル20から、処理記述入力部6が受け付けた図3(1)の構造30と、図4のブロック抽出クエリQとを用いて、多次元データモデル記憶部3に記憶可能な図3(2)のテーブル32を作成する。
まず、図3(1)の構造30を参照して、データ変換部4は、ルートブロックテーブルである車輪wについて処理をする(図5のステップS1、S2)。車輪wに対応するクエリQbは、図4よりQb=“w*”であり、これは“w”で始まるブロックを抽出することを意味する。よって、データ変換部4は、図2から左前輪w1、右前輪w2、右後輪w3及び左後輪w4の計4つのブロックを取得する(図5のステップS3)。
次に、左前輪w1のブロックについて処理を行う(図5のステップS4)。車輪wに対応するクエリQpにマッチする、左前輪w1のブロックのプロパティとして、左前輪w1の重さ(weight)を取得する(図5のステップS5)。なお、ここでは、グラフモデル20に示されるべき左前輪w1、右前輪w2、右後輪w3及び左後輪w4の重さが、いずれも5kgであるとする。そして、左前輪w1のidとして「w1」を生成する(図5のステップS6)。
図3(1)を参照すると、車輪wの下位には、車軸p、ステアリングs、油圧配管tの3つのブロックテーブルが存在するので(図5のステップS7がYES)、左前輪w1のブロックをコンテキストにして、車軸p、ステアリングs、油圧配管tに対するクエリQb(図4参照)にマッチする前車軸p1、ステアリングs1、油圧配管A(t1)の各ブロックを取得する(図5のステップS8)。そして、前車軸p1、ステアリングs1、油圧配管t1の各ブロックのidとして「p1,s1,t1」を生成する(図5のステップS9)。そして、レコード(w1,p1,s1,t1,5kg)を車輪wに追加する(図5のステップS10)。
次に、右前輪w2のブロックについて、左前輪w1のブロックと同様に処理を行う(図5のステップS12がNO)。まず、車輪wに対応するクエリQpにマッチする右前輪w2のブロックのプロパティである重さを取得する。そして、右前輪w2のブロックをコンテキストにして、車軸p、ステアリングs、油圧配管tに対するクエリQbにマッチする前車軸p1、ステアリングs1、油圧配管B(t2)の各ブロックを取得する(図5のステップS8)。よって、レコード(w2,p1,s1,t2,5kg)を得る。
同様に、右後輪w3のブロックは、レコード(w3,p2,,t1,5kg)を、左後輪w4のブロックは、レコード(w4,p2,,t2,5kg)を、それぞれ得る。よって、図3(2)のテーブル32のルートブロックテーブル33に示すように、ルートブロックテーブル33にレコードが挿入される。
次に、ルートブロックテーブルの車輪wに対して下位のブロックテーブルである車軸pについて処理を行う(図5のステップS14がYES)。車軸pに対応するクエリQbは、図4よりQb=“p*”であり、これは“p”で始まるブロックを抽出することを意味する。よって、データ変換部4は、図2から前車軸p1,後車軸p2の計2つのブロックを取得する(図5のステップS3)。
次に、前車軸p1のブロックについて処理を行う(図5のステップS4)。車軸pに対応するクエリQpにマッチする、前車軸p1のブロックのプロパティとして、前車軸p1の名前(name)と重さとを取得する(図5のステップS5)。なお、ここでは、グラフモデル20に示されるべき前車軸p1と後車軸p2の重さが、いずれも50kgであるとする。そして、前車軸p1のidとして「p1」を生成する(図5のステップS6)。
車軸pの下位には、車体uのブロックテーブルが存在するので(図5のステップS7がYES)、前車軸p1のブロックをコンテキストにして、車体uに対するクエリQbにマッチする車体Au1のブロックを取得する(図5のステップS8)。そして、車体Au1のブロックのidとして「u1」を生成する(図5のステップS9)。レコード(p1,u1,前車軸,50kg)を車軸pに追加する。同様に、後車軸p2のブロックは、レコード(p2,u1,後車軸,50kg)を得るので、図3(2)のブロックテーブル34に示すように、ブロックテーブル34にレコードが挿入される。
同様に、ステアリングs、油圧配管t、車体uについても処理を行うことで、図3(2)に示すテーブル32が生成できる。このように、図5のフローチャートに示したアルゴリズムを用いることで、図3(2)に示すルートブロックテーブル33及び各ブロックテーブル34〜37にレコードが挿入されたテーブル32を生成することができる。
[ビューの例]
図6は、本実施形態に係るユーザに提示される表形式のビュー60の例を示す図である。上記の処理により、多次元データモデルのテーブル32が生成できると、データ変換部4は、そのテーブル32に含むルートブロックテーブル33及び各ブロックテーブル34〜37を結合(Join)することで、図6に示す表形式のデータ構造を作成できる。これが、表形式のビュー60である。
表形式のビュー60は、表提示部5によりユーザに提示される。ユーザは、提示された表形式のビュー60を参照したり、表形式のビュー60の値を更新したりすることができる。表形式のビュー60は、ユーザによるデータの扱いが容易な形式で提示されるので、ユーザによる分析及び編集を容易なものにすることができる。例えば、ユーザが興味のある項目やその内容をフィルタリング情報として指定することで、ユーザが必要な情報を取り出すことができる。
[付加情報例2]
次に、表形式のビュー60をユーザが更新した場合に、グラフモデル20やテーブル32にユーザの更新を反映させるために必要な付加情報であるビューの更新ルールについて説明する。図7は、本実施形態に係るビュー更新ルールURの例を示す図である。ビュー更新ルールURは、設計者が処理記述入力部6から入力する。ビュー更新ルールURは、ブロックテーブルごとに付与される。ビュー更新ルールURは、表形式のビュー60に対して、ユーザが行の追加や削除に関する操作を行った場合に、対象になるブロックを複製したり削除したりするか否かを決めるためのフラグであり、真偽値で表現される。ビュー更新ルールURが「True」である場合には、行の挿入時に、対応するブロックを複製し、行の削除時に、対応するブロックを消去することを表す。また、ビュー更新ルールURが「False」である場合には、行の挿入時や削除時に、対応するブロックを複製したり消去したりしない。ビュー更新ルールURにしたがった処理により、表形式のビュー60のセルには、同じ複数の項目が表示される場合があるが、実際には、同一のブロックを指していることになる。
[ビュー変更による多次元データモデル更新のフローチャート]
次に、表形式のビューにおける変更を、多次元データモデル及びグラフ構造のシステムのモデルに反映させる処理について説明する。図8から図10は、本実施形態に係るビューの変更によるモデル更新のフローチャートである。なお、以下に示す処理は、記載がある場合を除き、データ変換部4が制御する。
(セルの変更)
図8のステップS21では、表提示部5は、表形式のビューのセルに対する変更を受け付けたか否かを判断する。表形式のビューのセルに対する変更を受け付けた場合(ステップS21:YES)には、表提示部5は、処理をステップS22に移す。他方、表形式のビューのセルに対する変更を受け付けていない場合(ステップS21:NO)には、表提示部5は、処理を図9のステップS31に移す。
ステップS22では、セルが位置するビュー上の列をcとし、列cを定義しているブロックテーブルをLとし、セルが位置するビュー上の行に該当するブロックテーブルLの行をrとする。そして、行rに対応するモデル要素をeとする。
ステップS23では、ブロックテーブルLの付加情報Mのブロック抽出クエリQ=(Qb,Qp)に関して、列cに対応付けられたクエリQpの要素をpとする。ステップS24では、モデル要素eのプロパティpに、更新されたセルの値を代入する。その後、本処理を終了する。
この一連の処理により、ユーザが入力して与えたブロック抽出クエリQを用いて、データ変換部4は、表提示部5が受け付けたセルの変更に関する情報を、次元が階層関係を有する多次元データモデルと、グラフ形式のデータ構造を有するシステムのモデルとに反映できる。
(行の追加)
図9のステップS31では、表提示部5は、表形式のビューの行の追加を受け付けたか否かを判断する。表形式のビューの行の追加を受け付けた場合(ステップS31:YES)には、表提示部5は、処理をステップS32に移す。他方、表形式のビューの行の追加を受け付けていない場合(ステップS31:NO)には、表提示部5は、処理を図10のステップS51に移す。
ステップS32では、ユーザが行を追加する際にベースとして選んだビュー上の行をRとする。行を追加する際にベースとして選ぶとは、ユーザが既存の行をコピー&ペーストして行を追加することを示す。新規に作成する場合には、行Rには、何も指定されていない。
ステップS33では、行Rに既存の行が指定されているか否かを判断する。行Rに既存の行が指定されている場合(ステップS33:YES)には、処理をステップS34に移す。他方、行Rに既存の行が指定されていない場合、つまり、何も指定されていない場合(ステップS33:NO)には、処理をステップS40に移す。
ステップS34では、各ブロックテーブルLiの行Rに対応する行をRiとする。ステップS35では、ブロックテーブルLiの付加情報Miのビュー更新ルールURiを参照して、ビュー更新ルールURiがTrueであるか否かを判断する。ビュー更新ルールURiがTrueである場合(ステップS35:YES)には、処理をステップS36に移し、ビュー更新ルールURiがFalseである場合(ステップS35:NO)には、処理をステップS38に移す。
ステップS36では、ブロックテーブルLiのプライマリキーを新たに生成して、そのプライマリキーをKiとする。ステップS37では、ブロックテーブルLiに行を挿入して、行Niとする。そして、行NiのプライマリキーをKiにして、それ以外の部分には、行Riの値を複製する。その後、処理をステップS39に移す。ステップS38では、行RiのプライマリキーをKiにして、行NiをNullにする。
ステップS39では、各ブロックテーブルLiに対して処理を行ったか否かを判断する。各ブロックテーブルLiに対して処理を行った場合(ステップS39:YES)には、処理をステップS43に移す。他方、各ブロックテーブルLiに対して処理を行っていない場合(ステップS39:NO)には、処理をステップS35に移して、処理をしていないブロックテーブルLiについて処理を行う。
ステップS40では、ブロックテーブルLiのプライマリキーを新たに生成して、そのプライマリキーをKiとする。ステップS41では、ブロックテーブルLiに行を挿入して、行Niとする。そして、行NiのプライマリキーをKiにして、それ以外の部分をNullにする。
ステップS42では、各ブロックテーブルLiに対して処理を行ったか否かを判断する。各ブロックテーブルLiに対して処理を行っていた場合(ステップS42:YES)には、処理をステップS43に移す。他方、各ブロックテーブルLiに対して処理を行っていない場合(ステップS42:NO)には、処理をステップS40に移して、処理をしていないブロックテーブルLiについて処理を行う。
ステップS43では、多次元データモデルの構造Sにおいて、各ブロックテーブルLiの下位にある各ブロックテーブルLjに対して、行Ni≠Nullの場合に、ブロックテーブルLjへの外部キーになっている行Niのフィールドに、ブロックテーブルLjのプライマリキーKjを格納する。
ステップS44では、各ブロックテーブルLjに対して処理を行ったか否かを判断する。各ブロックテーブルLjに対して処理を行った場合(ステップS44:YES)には、処理をステップS45に移す。他方、各ブロックテーブルLjに対して処理を行っていない場合(ステップS44:NO)には、処理をステップS43に移して、処理をしていないブロックテーブルLjについて処理を行う。
ステップS45では、各行Niに対して、システムのモデルの中に、行Niに該当するノードCiを作成する。
ステップS46では、行Niを含むブロックテーブルLiの下位にある各ブロックテーブルLjに対して、行Niにより参照されているブロックテーブルLj中の行を行Mjとし、行Mjに該当するシステムのモデルの中のノードをノードCjとする。そして、システムのモデルの中のノードCiとノードCjとの間に、関連を追加する。
ステップS47では、各行Niに対して処理を行ったか否かを判断する。各行Niに対して処理を行った場合(ステップS47:YES)には、本処理を終了する。他方、各行Niに対して処理を行っていない場合(ステップS47:NO)には、処理をステップS45に移して、処理をしていない各行Niについて処理を行う。
(行の削除)
図10のステップS51では、表提示部5は、表形式のビューの行の削除を受け付けたか否かを判断する。表形式のビューの行の削除を受け付けた場合(ステップS51:YES)には、表提示部5は、処理をステップS52に移す。他方、表形式のビューの行の削除を受け付けていない場合(ステップS51:NO)には、表提示部5は、本処理を終了する。
ステップS52では、ユーザが削除対象として選んだビュー上の行を行Rとする。ステップS53では、ブロックテーブル上で削除した行を記憶する集合である集合Dを、空集合で初期化する。
ステップS54では、整数kに0を代入し、ブロックテーブルLkをブロックテーブルLiとする。なお、ブロックテーブルL0は、ルートブロックテーブルを示す。ステップS55では、ブロックテーブルLiの行Rに対する行をRiとする。
ステップS56では、ブロックテーブルLiがルートブロックテーブルであるか否かを判断する。ブロックテーブルLiがルートブロックテーブルである場合(ステップS56:YES)には、処理をステップS58に移す。他方、ブロックテーブルLiがルートブロックテーブルではない場合(ステップS56:NO)には、処理をステップS57に移す。
ステップS57では、「ブロックテーブルLiの付加情報Miのビュー更新ルールURiを参照して、その値がTrue」であり、かつ「ブロックテーブルLiの親ブロックテーブルLj中に行Riを参照している行が存在しない」か否かを判断する。ビュー更新ルールURiがTrueかつブロックテーブルLiの親ブロックテーブルLj中に行Riを参照している行が存在しない場合(ステップS57:YES)には、処理をステップS58に移す。他方、ビュー更新ルールURiがFalseであるか、又はブロックテーブルLiの親ブロックテーブルLj中に行Riを参照している行が存在する場合(ステップS57:NO)には、処理をステップS59に移す。
ステップS58では、行Riを削除して、集合Dに行Riを追加する。
ステップS59では、ブロックテーブルの親子関係のツリー上の深さ優先順位で処理を行うように、kに1を加えた値を整数kに代入して、ブロックテーブルLkをブロックテーブルLiとする。そして、処理をステップS60に移す。
ステップS60では、各ブロックテーブルLiに対して処理を行ったか否かを判断する。各ブロックテーブルLiに対して処理を行っていた場合(ステップS60:YES)には、処理をステップS61に移す。他方、各ブロックテーブルLiに対して処理を行っていない場合(ステップS60:NO)には、処理をステップS55に移す。
ステップS61では、集合Dの各要素Diに対して、システムのモデルから、要素Diに該当するノードCi及びノードCiにつながっている関連を削除する。要素Diは、集合Dに記憶されたブロックテーブルで削除した行の1つである。その後、本処理を終了する。
この一連の処理により、ユーザが入力して与えたビュー更新ルールURを用いて、データ変換部4は、表提示部5が受け付けた行の追加や削除に関する情報を、次元が階層関係を有する多次元データモデルと、グラフ形式のデータ構造を有するシステムのモデルとに反映できる。
[ビュー変更によるモデル更新のフローチャートの使用例]
次に、図8から図10で説明したフローチャートを使用して、モデルを更新する例を説明する。最初に、表提示部5が提示した図6の表形式のビュー60のセル61を、「前車軸」から「前車軸2」に更新した場合を例に説明する。
まず、セル61の列を定義しているブロックテーブルLを、車軸pのブロックテーブルして、車軸pの該当の行をrとする。すなわち、前車軸p1の行をrとする。そして、行rに対応するモデル要素である、p1を取得する(図8のステップS22)。
次に、図4を参照して、車軸pのブロック抽出クエリの、セル61の列に対応付けられたクエリQpの要素である{name}を取得して、取得したp1のプロパティである車軸名称に、更新されたセルの値を代入する(図8のステップS23、S24)。
本処理によって、図3(2)に示すブロックテーブル34のp1のレコードの「前車軸」は、「前車軸2」に更新される。同時に、p1がマップされているビュー60のセル63も、「前車軸」から「前車軸2」に更新される。
次に、表提示部5が提示した図6の表形式のビュー60の行62を削除した場合を例に説明する。これは、4輪自動車から、前車輪が1つの3輪自動車にした場合の例である。
まず、行62である右前輪w2の行をRにして、集合Dを空集合で初期化する(図10のステップS52、S53)。
次に、車輪wのブロックテーブルから右前輪w2を削除して、集合Dに右前輪w2を追加する(図10のステップS56がYES、ステップS58)。
次に、車軸pのブロックテーブルに関して処理を行う。車軸pのブロックテーブルは、ビュー更新ルールはTrueである(図7)。また、車軸pのブロックテーブルの親である車輪wのブロックテーブルの中には、前車軸p1を参照する左前輪w1があるので、削除行を参照している行がある(図10ステップS57がNO)。よって、車軸pのブロックテーブルからは何も削除しない。
同様に、ステアリングs、油圧配管t、車体uの各ブロックテーブルは、ビュー更新ルールがいずれもFalseである(図7)ので(図10ステップS57がNO)、ステアリングs、油圧配管t、車体uの各ブロックテーブルからは何も削除しない。
ここまでの処理によって、多次元データモデルに対する削除処理が終了した。また、集合Dの右前輪w2のノードと、その関連とを削除する(図10のステップS61)。この処理で、システムのモデルに対する削除処理が終了する。
[多次元データモデルの更新をシステムのモデルに書き戻す処理]
次に、多次元データモデルの更新をグラフ構造のシステムのモデルに書き戻す処理について説明する。多次元データモデルから表形式のビューを生成することで、表形式のビューを参照して、例えば、図2の車輪のモデルに関する例において、車軸視点と油圧配管視点による制約の記述が可能である。制約の具体例として、
(制約1)SUM(「油圧配管A=t1」である車輪の制動力)>車輪にかかる最大トルク
(制約2)SUM(「油圧配管B=t2」である車輪の制動力)>車輪にかかる最大トルク
(制約3)SUM(「前車軸=p1」である車輪の最大荷重)>定数K
が挙げられる。制約1は、油圧配管A(t1)のみでも制動可能でなければならないことを表し、制約2は、油圧配管B(t2)のみでも制動可能でなければならないことを表す。また、制約3は、前輪2つの最大荷重が一定値より大きくなければならないことを表す。この制約3は、フロントにあるエンジンの重量を考慮した制約である。このように、多次元データモデルは、複数の視点に基づいた分析・記述において有用である。この制約は、例えば、SQLクエリを用いて記述できる。
次に、このような制約を図11に示すSysMLのParametric Diagram(PD)に変換する方法を示す。図11は、本実施形態に係るグラフ構造のシステムのモデルと、多次元データモデルと、表形式のビューとの間の変換の概略を示す図である。なお、制約をSysML PDに変換する処理では、制約式自身の変換を対象にしていない。例えば、スプレッドシートの式によって制約が記述されている場合には、本来ならば、SysMLにおいては、制約記述言語であるOCLやJava(登録商標)等の制約式で記述することが好ましいこともあるが、そのような変換は対象にしない。後述する処理は、事前に定義されたOCLやJava等の個々の制約表現とスプレッドシート内の式との対応付け規則を利用して、SysML PDのセルとセルの範囲とのそれぞれに対応するConstraint PropertyとConstraint Blockと、それに割り当てられるConstraint要素を生成することである。
[グラフ構造のシステムのモデルへの変換例]
図11に示す対象になるグラフモデル20は、IBD(Internal Block Diagram)であるとする。そして、図5の処理によって、IBDをもとに表形式のビュー60が作成される(図中(1))。この表形式のビュー60に対して、例えば、全ての車輪の重さの合計がある値(例えば、○○kg)以下である、等の制約式が記述されている場合に、その制約式を選択することで、SysML PDへの変換を行う(図中(2))。
図12は、本実施形態に係るSysML PDの作成のフローチャートである。なお、以下に示す処理において、データ変換部4が制御する。
ステップS71では、ユーザによって選択された制約式を取り出す。制約式は、表形式のビューに対して予め記述されている。ステップS72では、制約式が参照されている表のセルの集合を取り出す。ステップS73では、各々の表のセルに対応するプロパティ70に対するConstraint Property71が未作成であれば、それを作成する。そして、Constraint Property71の集合をノードC1とする。
ステップS74では、Constraint Block72を生成する。そして、生成したConstraint Block72にはノードC1を割りつけ、更に選択された制約式をConstraint73として設定する。その後、本処理を終了する。
本発明によって、モデル変換装置1は、複雑なグラフ構造のシステムのモデルに対して多次元データモデルを生成し、表形式のビューを提示するので、表を用いて階層的かつ複数の視点に基づく分析・編集を行うことができるようになる。SysML等の汎用的なグラフィカル・モデリング言語では、制約を記述する際に、制約に関係する全てのプロパティに対して、関連を記述する必要がある。例えば、多数のコンポーネントに対して働く制約を記述することは、非常に労力がかかる仕事となる。本発明では、モデル変換装置1は、複雑なグラフ構造のシステムのモデルに対して、スノーフレーク・スキーマを適用することで、OLAPの技法を元に、適切に表形式を作成することができる。そして、モデル変換装置1は、表形式上では、多数のプロパティが関与する制約式を記述することが容易になる。なぜなら、表の列や行の単位でプロパティを集計することが出来るためである。更に、この表形式では、編集も可能である。すなわち、多数のプロパティを表形式で一覧してモデルを編集することが可能である。
[大規模なシステムのモデルへの適用例]
次に、本発明を、大規模なシステムのモデルの分析・編集に使用する例として、車載ソフトウェアコンポーネント(SWC)の車載通信バス(BUS)へのアサインについて検討する。図13は、本実施形態に係るグラフモデル80の例を示す図である。
図13のグラフモデル80は、自動車に搭載されている数万個のSWCと、BUSと、ECU(Engine Control Unit)とから構成されるグラフ構造のシステムのモデルである。グラフモデル80は、ECUを表すブロックECU0,ECU1,ECU2,…に、SWCを表すブロックSWC1,SWC2,SWC3,…が、ECUにはバスBUS1,BUS2,…が各々接続されている。一方で、各SWCは、コンフィギュレーションConf1,Conf2,…によって、どのBUSを用いて通信を行うかが指定されている。
次に、グラフモデル80を、SWCとBUSとに関する必要帯域幅の必要/許容関係の観点で分析・編集する例を示す。図14は、本実施形態に係る多次元データモデルの構造とその付加情報の例を示す図である。図15は、本実施形態に係る多次元データモデルに従うテーブルの内容の例を示す図である。図16は、本実施形態に係るユーザに提示されるテーブルの例を示す図である。
図14には、多次元データモデルの構造を示すスノーフレーク・スキーマと、その付加情報として、ブロック抽出クエリと、ビュー更新ルールとが示されている。このスキーマは、SWC,コンフィギュレーション,BUSを抽出するブロックテーブルとしてSWCs,Confs,BUSesが定義されており、分析の中心となるルートブロックテーブルはSWCsである。各テーブルには、SWC,コンフィギュレーション,BUSを抽出するための情報が、ブロック抽出クエリQ=(Qb,Qp)として与えられている。また、各テーブルには、上位テーブルでレコードの追加・削除があったときにそのテーブルで追加・削除を実行すべきかの情報が、ビュー更新ルールURとして与えられている。この例におけるビュー更新のルールは、SWCを追加/削除した場合には、対応するコンフィギュレーションのレコードも追加/削除を行うが(Confsテーブルのビュー更新ルールUR=T)、BUSのレコードについては追加/削除を行わない(BUSesテーブルのビュー更新ルールUR=F)というものである。
前述の図5のフローチャートを用いることで、図15に示すように、SWCs,Confs,BUSesテーブルにレコードが挿入される。このテーブルを結合することで、図16のような表形式のビュー90が得られる。
この表形式のビュー90において、例えば、BUS2に接続しているSWCを全て表示して、必要バス帯域(bwidth)の合計を調べることができる。調査結果により、例えば、BUS2の許容量を大きく下回っている場合は、ユーザは、BUS2の帯域幅を下げてコスト削減を図ること等の対応を行うことができる。また、例えば、BUS1とBUS2とにそれぞれ接続しているSWCの必要バス帯域の合計を比較して、SWC間でBUS帯域幅の融通をきかせたりするような分析・編集も可能である。
このように、表において特定の条件で絞り込んだ範囲を参照することで、異なる視点からシステムのモデルを分析し、それを参照した集約的制約等を効率的に記述することができる。
この例の場合は、同一テーブル(BUSes)内の検索条件でマッチする対象がBUS1かBUS2か、という意味で視点が異なるものであった。一般には、図6における車軸と油圧配管との関係のように、テーブルをまたがった条件を指定することで、様々な視点での分析・編集が可能である。
[モデル変換装置1のハードウェア構成]
図17は、本実施形態に係るモデル変換装置1のハードウェア構成を示す図である。以下は、モデル変換装置1を、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、専用機や組み込み型装置の場合、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
モデル変換装置1は、CPU(Central Processing Unit)1010、バスライン1005、通信I/F1040、メインメモリ1050、BIOS(Basic Input Output System)1060、パラレルポート1080、USBポート1090、グラフィック・コントローラ1020、VRAM1024、音声プロセッサ1030、I/Oコントローラ1070、ならびにキーボード及びマウス・アダプタ1100等の入力手段を備える。I/Oコントローラ1070には、フレキシブル・ディスク(FD)ドライブ1072、ハードディスク1074、光ディスク・ドライブ1076、半導体メモリ1078等の記憶手段を接続することができる。
グラフィック・コントローラ1020には、表示装置1022が接続されている。また、音声プロセッサ1030には、増幅回路1032、及びスピーカ1034が接続される。
BIOS1060は、モデル変換装置1の起動時にCPU1010が実行するブートプログラムや、モデル変換装置1のハードウェアに依存するプログラム等を格納する。FD(フレキシブル・ディスク)ドライブ1072は、フレキシブル・ディスク1071からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハードディスク1074に提供する。図17には、モデル変換装置1の内部にハードディスク1074が含まれる例を示したが、バスライン1005又はI/Oコントローラ1070に外部機器接続用インタフェース(図示せず)を接続し、モデル変換装置1の外部にハードディスクを接続又は増設してもよい。
光ディスク・ドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、BD(Blu−ray Disk)−ROMドライブ等を使用することができる。この際は各ドライブに対応した光ディスク1077を使用する必要がある。光ディスク・ドライブ1076は光ディスク1077からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハードディスク1074に提供することもできる。
モデル変換装置1に提供されるコンピュータ・プログラムは、フレキシブル・ディスク1071、光ディスク1077、又はメモリカード等の記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ1070を介して、記録媒体から読み出され、又は通信I/F1040を介してダウンロードされることによって、モデル変換装置1にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
前述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク1071、光ディスク1077、又はメモリカードの他に、MD等の光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハードディスク又は光ディスク・ライブラリ等の記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムをモデル変換装置1に提供してもよい。
以上の例は、モデル変換装置1について主に説明したが、コンピュータに、情報処理装置で説明した機能を有するプログラムをインストールして、そのコンピュータを情報処理装置として動作させることにより上記で説明した情報処理装置と同様な機能を実現することができる。したがって、本発明において1つの実施形態として説明した情報処理装置は、方法及びそのコンピュータ・プログラムによっても実現可能である。
本装置は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。係る場合、該所定のプログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明に係る処理を実行させる。このプログラムは、任意の言語、コード、又は表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、又は(1)他の言語、コード、もしくは表記への変換、(2)他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、RAM、M−RAM(Magnetoresistive RAM)、フラッシュメモリ等の任意のコンピュータ可読媒体に格納することができる。係るプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、係るプログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。
以上、本発明を実施形態に則して説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態又は実施例に記載されたものに限定されるものではない。
1 モデル変換装置
2 グラフモデル記憶部
3 多次元データモデル記憶部
4 データ変換部
5 表提示部
6 処理記述入力部
20,80 グラフモデル
30 構造
32 テーブル
33 ルートブロックテーブル
34,35,36,37 ブロックテーブル
60,90 表形式のビュー
Q ブロック抽出クエリ
Qb,Qp クエリ
L ブロックテーブル

Claims (12)

  1. コンピュータによって、システムのモデルの分析及び編集を容易にするためのシステムのモデルを変換する方法であって、
    前記コンピュータが、グラフ形式のデータ構造を有し、複数のモデル要素から構成される前記システムのモデルであるグラフモデルを記憶するグラフモデル記憶部を備えており、
    多次元データモデルの構造と前記モデル要素を抽出する抽出クエリとに関する記述を含んだ変換処理記述の入力を受け付けるステップと、
    入力された前記変換処理記述に基づき、前記グラフモデル記憶部に記憶された前記グラフモデルから、前記多次元データモデルを生成するステップとを含み、
    前記多次元データモデルが、ルートブロックテーブルと、前記ルートブロックテーブルから階層化されて広がる複数のブロックテーブルから構成されており、前記多次元データモデルの前記ルートブロックテーブル及び各前記ブロックテーブルにそれぞれ当該テーブルのレコードとして前記グラフモデルからどのブロックを抽出するかを指定するブロック抽出クエリが付与されており、
    前記ルートブロックテーブル及び各前記ブロックテーブルごとに、前記付与されたブロック抽出クエリに基づき抽出した前記グラフモデルのブロックをレコードに追加するステップをさらに含む、
    システムのモデルを変換する方法。
  2. 前記多次元データモデルの中心のテーブルであるルートブロックテーブルに対応する前記モデル要素を、前記グラフモデルを構成する前記複数のモデル要素の中から予め指定するステップを含み、
    前記多次元データモデルを生成するステップが、指定された前記ルートブロックテーブルに関連付けられたブロックテーブル、及び前記ブロックテーブルに更に関連付けられたブロックテーブルに対して前記抽出クエリを順番に適用し、関連付けられたブロックテーブルが存在する間は前記ブロックテーブルに前記抽出クエリを適用して、抽出した前記モデル要素を用いて前記多次元データモデルを生成する、
    請求項1に記載のシステムのモデルを変換する方法。
  3. 前記変換処理記述の入力を受け付けるステップが、スノーフレーク・スキーマを適用した前記多次元データモデルの構造に関する記述の入力を受け付ける、
    請求項1に記載のシステムのモデルを変換する方法。
  4. 前記グラフモデルは、前記システムの構造、振る舞い及び制約のうち少なくともいずれかに関するものである、
    請求項1に記載のシステムのモデルを変換する方法。
  5. 前記多次元データモデルを生成するステップにより生成された前記多次元データモデルから表形式のビューを生成するステップと、
    前記表形式のビューを生成するステップにより生成された前記表形式のビューを出力するステップと、
    を含む請求項1に記載のシステムのモデルを変換する方法。
  6. 前記表形式のビューを出力するステップが、出力する特定の情報を指定するフィルタリング情報を受け付け、
    前記表形式のビューを出力するステップが、前記フィルタリング情報に基づいて前記表形式のビューを出力する、
    請求項5に記載のシステムのモデルを変換する方法。
  7. 前記表形式のビューを出力するステップにより出力された前記表形式のビューに対する変更情報の入力を受け付けるステップと、
    前記多次元データモデルの更新に関するルールであるビュー更新ルールに関する記述を含んだ前記変換処理記述の入力を受け付けるステップと、
    前記多次元データモデルを生成するステップにより生成された前記多次元データモデルに、前記変換処理記述にしたがって前記変更情報の内容を反映するステップと、
    を含む請求項5に記載のシステムのモデルを変換する方法。
  8. 前記表形式のビューを出力するステップにより出力された前記表形式のビューに対する変更情報の入力を受け付けるステップと、
    前記多次元データモデルの更新に関するルールであるビュー更新ルールに関する記述を含んだ前記変換処理記述の入力を受け付けるステップと、
    前記グラフモデル記憶部に記憶された前記グラフモデルに、前記変換処理記述にしたがって前記変更情報の内容を反映するステップと、
    を含む請求項5に記載のシステムのモデルを変換する方法。
  9. 前記変更情報の入力を受け付けるステップにより受け付けた前記変更情報が、前記表形式のビューに対するセルの値の変更に関するものであることに応じて、前記多次元データモデルに反映するステップが、前記変換処理記述として前記抽出クエリを用い、
    前記変更情報の入力を受け付けるステップにより受け付けた前記変更情報が、前記表形式のビューに対する行の追加又は削除に関するものであることに応じて、前記多次元データモデルに反映するステップが、前記変換処理記述として前記ビュー更新ルールを用いる、
    請求項7に記載のシステムのモデルを変換する方法。
  10. 前記表形式のビューを出力するステップにより出力された前記表形式のビューに基づいた制約式の記述を受け付けるステップと、
    予め定義された前記多次元データモデルと前記グラフモデルとの対応付け規則を取得するステップと、
    受け付けた前記制約式の記述から、前記対応付け規則を用いて前記グラフモデル記憶部に記憶された前記グラフモデルを更新するステップと、
    を含む請求項5に記載のシステムのモデルを変換する方法。
  11. 請求項1から請求項10までのいずれか1項に記載の方法のステップをコンピュータに実行させるためのコンピュータ・プログラム。
  12. システムのモデルの分析及び編集を容易にするためのシステムモデル変換装置であって、
    グラフ形式のデータ構造を有し、複数のモデル要素から構成される前記システムのモデルであるグラフモデルを記憶するグラフモデル記憶部と、
    多次元データモデルの構造と前記モデル要素を抽出する抽出クエリとに関する記述を含んだ変換処理記述の入力を受け付ける処理記述入力部と、
    前記処理記述入力部から入力された前記変換処理記述に基づき、前記グラフモデル記憶部に記憶された前記グラフモデルから、前記多次元データモデルを生成するデータ変換部とを備え、
    前記多次元データモデルが、ルートブロックテーブルと、前記ルートブロックテーブルから階層化されて広がる複数のブロックテーブルから構成されており、前記多次元データモデルの前記ルートブロックテーブル及び各前記ブロックテーブルにそれぞれ当該テーブルのレコードとして前記グラフモデルからどのブロックを抽出するかを指定するブロック抽出クエリが付与されており、
    前記データ変換部は、前記ルートブロックテーブル及び各前記ブロックテーブルごとに、前記付与されたブロック抽出クエリに基づき抽出した前記グラフモデルのブロックをレコードに追加する、
    システムモデル変換装置。
JP2010542049A 2008-12-11 2009-08-31 システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置 Active JP5147952B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010542049A JP5147952B2 (ja) 2008-12-11 2009-08-31 システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008315655 2008-12-11
JP2008315655 2008-12-11
PCT/JP2009/065224 WO2010067647A1 (ja) 2008-12-11 2009-08-31 システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置
JP2010542049A JP5147952B2 (ja) 2008-12-11 2009-08-31 システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置

Publications (2)

Publication Number Publication Date
JPWO2010067647A1 JPWO2010067647A1 (ja) 2012-05-17
JP5147952B2 true JP5147952B2 (ja) 2013-02-20

Family

ID=42242640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542049A Active JP5147952B2 (ja) 2008-12-11 2009-08-31 システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置

Country Status (6)

Country Link
US (1) US8583707B2 (ja)
EP (1) EP2378443A4 (ja)
JP (1) JP5147952B2 (ja)
KR (1) KR101572299B1 (ja)
CN (1) CN102246173B (ja)
WO (1) WO2010067647A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134221B2 (en) 2009-03-10 2015-09-15 The Regents Of The University Of California Fluidic flow cytometry devices and particle sensing based on signal-encoding
US9020792B2 (en) * 2010-09-17 2015-04-28 International Business Machines Corporation Coupling architectural and implementation/behavioral models of a computer-based system
US10024819B2 (en) 2010-10-21 2018-07-17 The Regents Of The University Of California Microfluidics with wirelessly powered electronic circuits
US10528897B2 (en) * 2011-04-28 2020-01-07 Intuit Inc. Graph databases for storing multidimensional models of software offerings
US9116932B2 (en) * 2012-04-24 2015-08-25 Business Objects Software Limited System and method of querying data
CN110579435B (zh) 2012-10-15 2023-09-26 纳诺赛莱克特生物医药股份有限公司 颗粒分选的系统、设备和方法
US9098215B2 (en) 2013-01-02 2015-08-04 International Business Machines Corporation Migration between model elements of different types in a modeling environment
US20140201706A1 (en) * 2013-01-14 2014-07-17 International Business Machines Corporation Creating pluggable analysis viewpoints for an optimization system model
US10048972B2 (en) * 2014-06-17 2018-08-14 Continental Automotive Gmbh Method for model-based generation of startup configurations of embedded systems
CN104951598A (zh) * 2015-01-09 2015-09-30 中国核工业二三建设有限公司 基于pdms生成管道应力分析用命令流的装置及方法
US10909138B2 (en) * 2015-03-10 2021-02-02 Microsoft Technology Licensing, Llc Transforming data to share across applications
CN107783939B (zh) * 2017-09-30 2020-09-25 中国人民解放军战略支援部队航天工程大学 一种模型驱动的多项式相位信号自适应时频变换方法
US20190311045A1 (en) * 2018-04-05 2019-10-10 Products Up GmbH Method for depicting and altering data connections by means of a graphical user interface
JP6775740B1 (ja) * 2019-06-20 2020-10-28 昭和電工マテリアルズ株式会社 設計支援装置、設計支援方法及び設計支援プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297602A (ja) * 2001-03-30 2002-10-11 Toshiba Corp 構造化文書検索方法および構造化文書検索装置および構造化文書管理装置およびプログラムおよび記録媒体
WO2007088982A2 (ja) * 2006-02-03 2007-08-09 Maeda Construction 情報処理装置、情報処理方法、プログラム、データ構造、および媒体

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201046A (en) * 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
JPH05274348A (ja) 1992-03-25 1993-10-22 Nec Corp ネットワーク型データベース問い合わせ制御システム
JP3132606B2 (ja) 1993-02-25 2001-02-05 日本電気株式会社 関連情報変換装置
JP4155363B2 (ja) * 1997-06-19 2008-09-24 富士通株式会社 データ表示装置、データ表示方法、およびデータ表示用プログラムを記録した記録媒体
US6628312B1 (en) * 1997-12-02 2003-09-30 Inxight Software, Inc. Interactive interface for visualizing and manipulating multi-dimensional data
JP2000267906A (ja) 1999-03-19 2000-09-29 Mitsubishi Electric Corp データベースモデル変換方法
US7644366B1 (en) * 1999-07-30 2010-01-05 Computer Associates Think, Inc. Method and system for displaying a plurality of discrete files in a compound file
US7185016B1 (en) * 2000-09-01 2007-02-27 Cognos Incorporated Methods and transformations for transforming metadata model
IES20010131A2 (en) * 1999-12-20 2001-05-30 Headway Res Ltd System and method for computer-aided graph-based dependency analysis
US20020091681A1 (en) * 2000-04-03 2002-07-11 Jean-Yves Cras Report then query capability for a multidimensional database model
US7222130B1 (en) * 2000-04-03 2007-05-22 Business Objects, S.A. Report then query capability for a multidimensional database model
US6704740B1 (en) * 2000-08-10 2004-03-09 Ford Motor Company Method for analyzing product performance data
EP1370976A1 (en) * 2001-03-19 2003-12-17 Exie AS Methods and system for handling mulitple dimensions in relational databases
US7650607B2 (en) 2001-06-22 2010-01-19 Invensys Systems, Inc. Supervisory process control and manufacturing information system application having a layered architecture
US7343365B2 (en) * 2002-02-20 2008-03-11 Microsoft Corporation Computer system architecture for automatic context associations
US7574652B2 (en) * 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US7970795B2 (en) * 2002-12-10 2011-06-28 Accenture Global Services Limited Data model development tool
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
CA2429907A1 (en) * 2003-05-27 2004-11-27 Cognos Incorporated Modelling of a multi-dimensional data source in an entity-relationship model
US7167865B1 (en) * 2003-06-30 2007-01-23 Mvalent, Inc. Collaborative environment for producing software products
US20050010386A1 (en) * 2003-06-30 2005-01-13 Mvalent, Inc. Method and system for dynamically modeling resources
CN1658234B (zh) * 2004-02-18 2010-05-26 国际商业机器公司 生成语义网络的分层可视化的方法和装置
US20050283494A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Visualizing and manipulating multidimensional OLAP models graphically
US20060079983A1 (en) * 2004-10-13 2006-04-13 Tokyo Electron Limited R2R controller to automate the data collection during a DOE
JP4764663B2 (ja) 2005-05-30 2011-09-07 富士通株式会社 仮想3次元座標空間における幾何形状の自動認識方法、その3次元cadシステム及び3次元cadプログラム
US7661076B2 (en) * 2006-03-31 2010-02-09 Microsoft Corporation Two dimensional trees to edit graph-like diagrams
US7580944B2 (en) * 2006-07-27 2009-08-25 Yahoo! Inc. Business intelligent architecture system and method
US8239778B2 (en) * 2007-02-08 2012-08-07 Kgmp Trust Graphical database interaction system and method
US20080270381A1 (en) * 2007-04-24 2008-10-30 Interse A/S Enterprise-Wide Information Management System for Enhancing Search Queries to Improve Search Result Quality
US20090006150A1 (en) * 2007-06-29 2009-01-01 Sap Ag Coherent multi-dimensional business process model
US8386996B2 (en) * 2007-06-29 2013-02-26 Sap Ag Process extension wizard for coherent multi-dimensional business process models
US8856182B2 (en) * 2008-01-25 2014-10-07 Avaya Inc. Report database dependency tracing through business intelligence metadata
US8659604B2 (en) * 2009-09-29 2014-02-25 International Business Machines Corporation Dimensional reduction mechanisms for representing massive communication network graphs for structural queries
US20110209081A1 (en) * 2010-02-23 2011-08-25 Honeywell International Inc. Methods and systems for constructing multi-dimensional data models for distribution networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297602A (ja) * 2001-03-30 2002-10-11 Toshiba Corp 構造化文書検索方法および構造化文書検索装置および構造化文書管理装置およびプログラムおよび記録媒体
WO2007088982A2 (ja) * 2006-02-03 2007-08-09 Maeda Construction 情報処理装置、情報処理方法、プログラム、データ構造、および媒体

Also Published As

Publication number Publication date
US20120011097A1 (en) 2012-01-12
EP2378443A4 (en) 2016-03-30
CN102246173B (zh) 2013-04-17
EP2378443A1 (en) 2011-10-19
CN102246173A (zh) 2011-11-16
KR20110098802A (ko) 2011-09-01
WO2010067647A1 (ja) 2010-06-17
US8583707B2 (en) 2013-11-12
KR101572299B1 (ko) 2015-11-26
JPWO2010067647A1 (ja) 2012-05-17

Similar Documents

Publication Publication Date Title
JP5147952B2 (ja) システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置
JP6609262B2 (ja) キー指定される実体の属性のマッピング
US7702622B2 (en) Advanced techniques for SQL generation of performancepoint business rules
KR101644418B1 (ko) 데이터 요소 간의 관계의 시각화 및 데이터 요소 속성의 그래픽 표현
US8010909B1 (en) Derived hierarchy methods and system for definition, visualization and editing of data
US10579678B2 (en) Dynamic hierarchy generation based on graph data
US9852153B2 (en) Graphically representing programming attributes
US8090677B2 (en) Method and system for altering the configuration of a data warehouse
CN104662535A (zh) 数据模型中的实体映射
US20100114355A1 (en) Method and system for management of manufacturing information
WO2009095981A1 (ja) 表からツリー構造データを構築する方法及び装置
JP2006172446A (ja) 複合データアクセス
US20070083543A1 (en) XML schema template builder
JP5535062B2 (ja) ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム
JP5090481B2 (ja) データモデリング方法及び装置及びプログラム
US20150213154A1 (en) Transitioning cad model data into variant configurations
JP2007087216A (ja) 階層型辞書作成装置、プログラムおよび階層型辞書作成方法
JP3797821B2 (ja) オントロジー構築支援装置
CN116226112A (zh) 数据清洗方法、装置、存储介质及电子设备
CN113297300A (zh) 数据表布局视图生成方法和装置,数据表输出方法和装置
CN115757904A (zh) 适用于多场景分散模型浏览的轻量化数据存取方法及系统
US20140136257A1 (en) In-memory analysis scenario builder
US20140067874A1 (en) Performing predictive analysis
Zhao et al. ASM-based design of data warehouses and on-line analytical processing systems
US20080141215A1 (en) Computer Readable Medium and Methods for Filtering A Dynamic Comparison Model

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120530

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121127

R150 Certificate of patent or registration of utility model

Ref document number: 5147952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3