明 細 書
ソフトウェアライフサイクル管理方法およびソフトウェアライフサイクル管理 装置
技術分野
[0001] この発明はソフトウェアライフサイクル管理技術、とくに、複数の異なるオブジェクト 集合間でデータの一貫性維持、インタフェイスの確定その他の処理をなすことのでき るソフトウェアライフサイクル管理装置およびソフトウェアライフサイクル管理方法に関 する。
背景技術
[0002] 「ソフトウェア工学」(Software Engineering)という用語は、 1968年の NATO会議で 最初に使われたといわれる。この会議において討議されたソフトウェア設計法、プロ ジェタト管理、技術者教育、ソフトウェアの価格および流通の 4つの項目は、今なお、 ソフトウェア工学の中心課題である (非特許文献 1参照)。
[0003] ソフトウェアライフサイクル管理は、要求分析'仕様、設計、実装、テスト、運用、およ び保守の各段階からなる。最初の要求分析が甘ぐ顧客の要求を取りこぼしたり、取 り違えたりすると、それ以降のシステム設計、実装に顧客の要求が正しく反映されな い。そのため、テストや運用段階で発見された不具合を修正するために、プログラム を改良したり、大規模な変更の場合はシステム設計をやり直すなど、ソフトウェアの保 守に大変な時間と労力がかかる。最悪の場合、保守に耐えられないソフトウェアは廃 棄されることもあり、最初から開発をやり直すことになる。このように、ソフトウェアの開 発プロセスの初期段階において、要求分析に時間と労力を惜しむと、保守段階にお いてコストがかかり、開発プロセスをトータルでみた場合に、全体のコストが肥大する。
[0004] ソフトウェアの伝統的なライフサイクルモデルの一つに、 1970年に提案されたゥォ 一ターフォールモデルがある。ウォーターフォールモデルでは、ソフトウェア製品は、 要求分析から始まり、システム設計、プログラム設計、プログラム実装、単体'結合テ スト、システムテスト、運用、保守に至るまでシーケンシャルに開発されるものと考え、 ソフトウェアの開発のアクティビティをモデル化している。
[0005] ウォーターフォールモデルは、直線的な開発モデルであり、ある段階は次の段階を 開始する前に完了する必要があり、複数の段階にまたがった繰り返しは想定されな い。ウォーターフォールモデルは、最初の段階ですベての要求仕様を明確に定める ことを要求し、不確実性に対応することはできない。顧客の要求が仕様の決定後や プログラムの設計段階で変更されても、ウォーターフォールモデルでは新し 、要求に 柔軟に対応することができない。通常、ソフトウェアは試行錯誤しながら多くの繰り返 しを経て開発されるため、繰り返しを前提としな 、直線的な開発モデルはおよそ現実 的ではない。そのため、ウォーターフォールモデルは今日、非常に大規模なソフトゥ エアの開発モデルとして用いられることはあっても、一般的には利用されていない。こ れらのよく知られたウォーターフォールモデルの限界は、最近米国で行われたソフト ウェアエンジニアリングに関するサーベイにおいても指摘されている(非特許文献 2 参照)。
[0006] 情報システム構築は、たとえば大手銀行の統合に伴う統合システムに典型的にみら れるように、単一大規模サイト向けから、複数分散大規模サイト向けに加速度的に移 行しつつある。ところが、その基盤技術となっている現在のソフトウェア工学、リエンジ ニアリング技術において、これに対応するための基本的枠組みとしてのエンジニアリ ングモデルが欠落している。その理由は、統合方法がモデルレベルで欠如している ために、各サイト構築担当のエンジニアが個々にモジュール群を工夫して設計'構築 している点にある。このために、モジュール群仕様がサイト毎に自ずと異なる。モジュ ール群の仕様が相互に開示されれば、再構築も可能である力 モジュールの数の組 み合わせにより指数関数的に再構築システム数が増え、いわゆる「開発工数爆発」が 生じる。しかも、実際には、企業機密保持上モジュール群の仕様が開示されない場 合のほうが多い。この場合、モジュール間のインタフェイス作成情報が開示されるもの の、インタフェイス数も組み合わせにより指数関数的に増加するので、一層「開発ェ 数爆発」の様相が顕著となる。
非特許文献 1 :シャリ 'ローレンス'プリ一ガー著,堀内泰輔訳, 「ソフトウェア工学 理 論と実践」,初版,株式会社ピアソン 'エデュケーション, 2001年 11月
非特許文献 2 : Philip A. Laplante and Colin J. Neill, "The Demise of the Waterfall M
odel Is Imminent" and Other Urban Myths, ACM QUEUE (Feb. 2004), Vol.1, No.10 , pp.10- 15.
発明の開示
発明が解決しょうとする課題
[0007] ソフトウェアの効率的な開発と保守を支援するための理論的基礎となるエンジニア リングモデルが欠如しているために、要求分析からシステム設計、実装、テスト、保守 に至るまでのソフトウェアライフサイクルのスムーズな流れが滞り、ソフトウェア開発が 遅延し、また、運用段階で不測の事態が発生しやすいためリスク管理が難しぐソフト ウェアの保守に力かるコストが増大して 、る。
[0008] 国内外には、リレーショナル 'データべ一ス(RDB)モデル、 ERモデル、タグによる XML、グラフによる UMLなどが研究され応用されている力 大規模分散情報システ ムを構築する理論的基礎としてはモデル的に完全とは 、えず、例えばモジュール間 のインタフェイス仕様力 異なるサイト間で統一的に取り扱える理論体系になっていな い。したがって、前述の「開発工数爆発」は解決できない。
[0009] また、各国において昨今の厳しい経済状況もあり、会社統合が増加の一途をたどつ ているが、異なる情報システム間で整合性をもって情報処理を自在に行えること、す なわち、情報システムのインターオペラピリティが確保されないため、情報システムの 運用と保守の費用が増大して!/ヽる。
[0010] 大規模システムのコストの半分から 2Z3は保守費用であると言われており、保守は システムを導入した企業にとって大きなコスト要因となっている。特に稼働中のシステ ムに不具合が生じた場合、保守は企業の存続に関わる問題となることもあり、大変な リスクを伴う。ソフトウェアに変更を加えるコストは、その変更が要求仕様の決定段階 あるいはシステムやプログラムの設計段階で行われるのであれば、比較的低いが、ソ フトウェアが出荷され、運用されてからの変更の場合、コストはとてつもなく大きくなる 。したがって、できるだけ早い段階で要求仕様や設計の不具合を見つけ、運用後の 変更を少なくする必要がある。また、運用'保守段階での変更は、たとえ一部の変更 であっても、他のソフトウェアの部分に影響を与えることもあり、変更は複雑で慎重を 要する作業となる。ソフトウェアの保守を効率的に行うこと力 ソフトウェアの全体コス
トを削減する上できわめて重要である。
[0011] 本発明はこうした背景力 なされたものであり、その目的は、ソフトウェア部品のイン ターオペラピリティを線形モデルとして保証して、ソフトウェアの開発、試験、および保 守の自動化を支援することのできるソフトウェアライフサイクル管理技術を提供するこ とにある。
課題を解決するための手段
[0012] 本発明のある態様はソフトウェアライフサイクル管理方法に関する。この方法は、ソ フトウェア部品集合間の線形インターオペラピリティを保証するインクリメンタリモジュ ラな抽象階層モデルを利用して、ソフトウェアの開発工程カゝら試験工程を経て、保守 工程に至るまでのライフサイクルを一貫して管理する。
[0013] 「ソフトウェア部品」は、本装置により自動生成されるソフトウェアを構成する部品で あり、ソフトウェアで利用されるデータ、ソフトウェアを構成するプログラムなどを含む。
[0014] 本発明の別の態様はソフトウェアライフサイクル管理装置に関する。この装置は、ソ フトウェア部品集合間の線形インターオペラピリティを保証するインクリメンタリモジュ ラな抽象階層モデルを利用した、ソフトウェアの開発機能ブロック、試験機能ブロック 、および保守機能ブロックを備え、ソフトウェアのライフサイクルを前記抽象階層モデ ルにもとづ 、て一貫して管理する。
[0015] この装置によれば、複数のソフトウェア部品集合の間で同値関係を規定し、その同 値関係を不変量として抽象階層間で継承しながら、各抽象階層において段階的にソ フトウェア部品集合の満たすべき仕様を設計することができる。集合レベル、位相空 間レベル、接着空間レベル、セル空間レベル、表現レベル、およびビューレベルを通 して、同値関係が保証され、最終的にソフトウェアが数学的に整合性のある形で生成 される。また、各抽象階層はモジュール化されており、ソフトウェア部品の追加、削除 、および修正などを行っても、抽象階層を上下に行き来しながら、インクリメンタルに 設計変更することができる。さらに、ソフトウェア部品集合に対してなされる操作をホ モトピーとして扱うことにより、ソフトウェア部品集合を変化前の状態と変化後の状態 の間で相互に移行させることができ、数学的な整合性を維持しながら、ソフトウェアの 部品化、再利用、デバッグなどの開発工程を支援することができる。
[0016] この装置によれば、ソフトウェアの試験に関して、開発工程により生成されたソフトゥ エアが各抽象階層にお 、て詳細化された仕様に合致する力否かをテストし、発見さ れた問題に応じていずれかの抽象階層もどって開発工程を繰り返すことができ、抽 象階層を利用して効率的な試験工程を支援することができる。さらに、ソフトウェアの 保守に関して、運用中のソフトウェアに修正もしくは機能拡張の必要があった場合に 、その修正もしくは機能拡張を行うべき抽象階層にもどって開発工程を繰り返すこと により、抽象階層を利用して効率的な保守工程を支援することができる。
[0017] なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システ ム、記録媒体、コンピュータプログラム、データ構造などの間で変換したものもまた、 本発明の態様として有効である。
発明の効果
[0018] 本発明によれば、情報システムのインターオペラピリティを保証し、ソフトウェア開発 、試験、および保守を含むソフトウェアライフサイクルの管理の効率ィ匕を図ることがで きる。
図面の簡単な説明
[0019] [図 1]2つの互いに素である位相空間から接着空間が生成される様子を説明する図 である。
[図 2]顧客と取引会社の位相空間が接着される様子を説明する図である。
[図 3]座席と支持部の位相空間が接着される様子を説明する図である。
[図 4]実施の形態に係るソフトウェア開発支援装置の構成図である。
[図 5]図 4の接着空間レベル処理ブロックの構成図である。
[図 6]図 4のセル空間レベル処理ブロックの構成図である。
[図 7]図 4の表現レベル処理ブロックの構成図である。
[図 8]図 5の接着空間レベル処理ブロックにより、 2つの位相空間が接着されて接着空 間が生成される様子を説明する図である。
[図 9]オブジェクトのセル構造を説明する図である。
[図 10]オブジェクトのセル構造を説明する図である。
[図 11]図 7の表現レベル処理ブロック〖こより、表現レベルでの不整合が調整される様
子を説明する図である。
[図 12]図 7の表現レベル処理ブロック〖こより、表現レベルでの不整合が調整される様 子を説明する図である。
[図 13]図 7の表現レベル処理ブロック〖こより、表現レベルでの不整合が調整される様 子を説明する図である。
[図 14]2つのプログラムが統合される様子を説明する図である。
[図 15]接着写像により対応づけられた 2つのモジュールの入出力インタフェイスを説 明する図である。
[図 16]プログラムモジュールが新しいバージョンに更新される様子を説明する図であ る。
[図 17]2つのプログラムモジュールが合成される様子を説明する図である。
[図 18]2つのプログラムモジュール間でデータが共有される様子を説明する図である
[図 19]2つのプログラムモジュールが結合される様子を説明する図である。
[図 20]実施の形態に係るソフトウェアライフサイクル管理装置の構成図である。
符号の説明
[0020] 20 対応要素抽出部、 22 接着写像取得部、 24 等化写像取得部、 26 手 順取得部、 28 手順記録部、 44 同値関係設定部、 52 同値関係保持部、 6 2 セル接合部、 64 セル次元調整部、 66 対応テーブル保持部、 72 表現生 成部、 74 表現形式調整部、 76 変換テーブル保持部、 100 ソフトウェア開 発支援装置、 110 ホモトビーレベル処理ブロック、 120 集合レベル処理ブロッ ク、 130 位相空間レベル処理ブロック、 140 接着空間レベル処理ブロック、 1 50 セル空間レベル処理ブロック、 160 表現レベル処理ブロック、 170 ビュー レベル処理ブロック、 190 オブジェクト集合記憶部、 600 ソフトウェアライフサイ クル管理装置、 610 開発機能ブロック、 620 試験機能ブロック、 630 保守機 能ブロック、 640 ソフトウェア記憶部。
発明を実施するための最良の形態
[0021] 以下本発明を好適な実施の形態をもとに説明する。まず、本発明者が提唱するイン
クリメンタリモジュラな抽象階層(incrementally modular abstraction hierarchy)を説明 し、その後、インクリメンタリモジュラな抽象階層を実装した情報処理装置を説明する
[0022] [1]集合論的設計
まず、サイバースペースに構築すべきオブジェクトの集まりを定義することからサイ バーワールドの設計を始める。そのような集まりに対してインテリジェントマシンとして コンピュータを使った自動操作の実行が可能であるためには、各集まりは「集合 (set) 」でなければならない。なぜなら、コンピュータは集合論的機械として構築されている 力もである。直観的に、集合 Xは、同一のプロパティ P (x)をもったすべてのオブジェ タト Xの集まりである。これを記号で表すなら、 X= {x I P (x) }である。集合に含まれる 任意のオブジェクトを元または要素(element) t 、う。要素をもたな 、集合を空集合 φ という。すべての要素が内部(interior)であるならば、その集合は開集合であるという 。集合 Xと Yが与えられたとき、コンピュータは、和 (union) X U Y、積または共通部分( intersection) Χ Π Υ、差(difference) X— Y(x\yとも書く)、否定 (negation),Xのよう な集合論的演算を施す。
[0023] 最初のサイバースペースとして集合 Xからサイバースペースアーキテクチャの設計 を始めるとしょう。未知のサイバースペース Uのすベての要素 uが与えられたとき、もし それらの要素がすべてサイバースペース Xの要素であることが確かめられたならば、 その未知のサイバースペースを Xの部分集合、すなわち Xの部分サイバースペースと 呼び、 と表記する。部分集合であるかどうかは、(Vu) (uEU→uEX)を処理 することで自動的に調べることができる。 Uの閉包(closure)
[数 1]
U
は、 Uを含む Xのすベての閉部分集合の積である。言い換えれば、 Uの閉包は、 Uの 外部(exterior)要素でない Xの要素である。 Xの部分集合 {U | のすベてから なる集合を Xの巾(べき)集合といい、 2Xと表記する。これはまた Xの離散位相(discret e topology)とも呼ばれる。離散位相はサイバースペースを部分サイバースペースから なるものとして設計する上でた 、へん有用である。
[0024] [2]位相幾何学的設計
これから、サイバースペースを Xの(複数の)部分サイバースペースとその重複(over lap)の和として設計する作業に入る。このように設計されるサイバースペースは一般 に位相(トポロジー)空間(X, T)と呼ばれる。ここで Τ 2Χである。位相空間の設計は 次の仕様により自動化される。
1) ΧΕΤかつ φ≡T;
2)任意の添え字の集合 Jに対して、
Vj ej (U £T)→U U≡T;
i j<≡J j
3) u, veT→u nveT
[0025] 上記の設計仕様の 1)は、空集合と全体集合力Tの要素であること、 2)は、 Tの要素 をいくつもってきて和をとつても Tの要素であること、 3)は、 Tの 2つの要素の積(共通 部分)も Tの要素であることを示して 、る。
[0026] Tを位相空間(X, T)の位相(トポロジー) t 、う。 Tl CT2である 2つの位相 T1と T2 が与えられたとき、 T1は T2よりも弱いまたは小さいという。逆に、 T2は T1よりも強い または大きいという。また T2は T1よりも細力ぃ、あるいは Tlは T2よりも粗いということ もある。明らかなように最も強い位相は離散位相すなわち巾集合であり、最も弱い位 相は空集合 Φである。簡単のため、あいまいさが生じないならば、位相空間を表すた めに(X, T)の代わりに Xをしばしば用いる。
[0027] 2つの位相空間(X, T)と (Υ, Τ')が与えられたとき、 V、かにして (X, Τ)と(Υ, Τ')が 同値であるということができるだろうか。コンピュータを使って、それらの空間が位相幾 何学的に同値であることを自動的に検証 (validate)するための基準をここに与える。 2 つの位相空間 (X, T)と (Υ, Τ')は、連続な関数 f : (X, Τ)→(Υ, Τ')が存在し、かつ その逆関数も存在して連続であるならば、トポロジー同値 (topologically equivalent)、 すなわち同相、同位相または位相同形 (homeomorphic)であるという。(X, T)力 (Y, Τ')と同相であることを
[数 2]
(Χ,Τ Υ,丁,)
と書く。
[0028] それでは、関数 fの連続性はどのように立証することができる力。最初に、 VB£T', 广 BETであることを調べる。ここで; ΓΒは fによる Bの逆像を意味する。次に、以下が 成り立つことを調べる。
Bが開である f_1(B)もまた Xにおいて開である。
[0029] [3]関数
関数 f :X→Yが与えられたとき、全域関数 (total lunction)と部分関数 (partial foncti on)が存在する。関数 f:X→Yに対して、 VxEX、ョ f(x)であるとき、そしてそのとき に限り、関数 fは全域関数であるという。関数 f:X'→Y I X'2Xを部分関数といい、こ のとき f(x)は必ずしもあらゆる χΕΧに対して存在しているとは限らない。
[0030] 全域関数に対して、 3つの基本的なタイプの関係あるいは写像が存在する。
1.単射 (injectiveまた ίま into)
Vx, y≡X x≠y→f(x)≠f(y)
言い換えれば、
Vx, y≡X f(x)=f(y)→x=y
2.全射 (surjectiveまたは onto)
(VyEY) (ョ xex) [f(x)=y]
3.全単射(bijective)
単射かつ全射であること
[0031] [4]同値関係
集合 X上の任意の 2項関係 R XXXに対して、 Rは、
1) (VxEX) [xRx]ならば、反射性があり、
2) (Vx, y≡X) [xRy→yRx]ならば、対称性があり、
3) (Vx, y, z≡X) [[xRy→yRz]→xRz]ならば、推移性があるという。 1)〜3)の条 件は、それぞれ反射律、対称律、推移律と呼ばれる。
[0032] Rが反射性、対称性、推移性をもっとき、 Rを同値関係 (equivalence relation)と呼び 、〜で表記する。
[0033] χΕΧが与えられたとき、 xZ〜= {yEX:X〜y}で定義される Xの部分集合を Xの同
値類 (equivalent class)と呼ぶ。ここで類 (class)は実際には集合を意味する力 伝統 的に類 (クラス)と呼ばれており、今となっては変更するのは難しい。すべての同値類 の集合 XZ〜を Xの商空間(quotient space)もしくは等化空間(identification space) という。
XZ〜= {x/〜E 2x I x£X} c 2x
推移律より、各 χΕΧ、 χΖ〜≠ φについて、以下が成り立つ。
[数 3]
X 〜 y « X /〜 = y /〜, and
X y <=z> X /〜 门 V /~ = 0
これは集合 Xが空でな 、互いに素の (すなわち共通要素をもたな 、)同値類に分割さ れる (分解されるとも 、う)ことを意味する。
[0034] 一般に、集合 Xの上に同値関係〜が定義されたとき、ある Xの要素 aに対して aに同 値である要素をすベて集めた集合を考えることができる。この Xの部分集合は、 aを代 表要素とする同値類であり、 [a]と表記される。ここで、同値類に含まれる要素のうち どれを取っても、それを代表要素とする同値類は同じ集合になる。すなわち、同値類 は代表要素の取り方によらない。同値類が反射律、対称律、および推移律を満たす ことより、各同値類は空ではなぐ aの同値類には aが属し、相異なる同値類には共通 の要素がない。したがって、同値類をすベて集めると、それらは互いに交わらず、ま た全体の和集合は Xに等しくなる。つまり、集合 Xは同値類の直和(disjoint union)に 分割される。この直和分割を集合 Xの同値関係 Rに関する類別 (classification) t ヽ 、同値類全体の集合を集合 Xの同値関係〜による商集合と呼ぶ。商集合に位相が定 義されたものを上記のように商空間という。
[0035] 簡単な例で説明する。 Xを有理整数の集合とし、 Xの要素 x、 yの関係 Rとして、「x— yが偶数である」を考えると、これは同値関係である。集合 Xをこの同値関係 Rで類別 すれば、集合 Xは、奇数の同値類と偶数の同値類の直和に分割される。
[0036] ユークリッド幾何学において、図形の集合が与えられたとき、合同関係は同値関係 であり、図形の集合全体を、商空間として、合同な図形力 なる部分集合の直和に分 割する。また、相似関係も同値関係であり、図形の集合全体を、商空間として、相似
な図形力 なる部分集合の直和に分割する。合同関係と相似関係はァフィン変換の 例である。群論における対称関係は、図形の集合全体を、商空間として、対称な図 形力 なる部分集合の直和に分割する。
[0037] 電子商取引では、「電子商品であること」は同値関係である力 「電子取引」は半順 序 (partially ordered)関係であることに留意する。集合 X上の 2項関係 Sは、次の 3つ の条件を満たすとき、半順序関係である。
D ( Vx eX) [xSx] (反射律)
2) (Vx, y≡X) [xSy, ySx→x=y] (反対称律)
3) (Vx, y, z≡X) [ [xSy→ySz]→xSz] (推移律)
[0038] 半順序関係をもつ集合を半順序集合 (partially ordered set)と呼び、頭文字を取つ て、しばしばポセット(poset)ともいう。集合の 2つの要素 x、 y力 SxSy力、 ySxのいずれ かであるとき、比較可能であるという。どの 2つの要素も比較可能な半順序集合を全 川頁序集合(totally ordered set)という。
[0039] 電子取引の関係は、売り手と買い手の関係が非対称であり、対称律を満たさず、反 対称律を満たすため、半順序関係となる。一方、電子商品であるという関係は、売り 手にとっての電子商品は買い手にとっての電子商品でもあるから、対称であり、同値 関係となる。
[0040] 同値関係について強弱を定義することができる。 1つの集合 Xにおける 2つの同値 関係 R、 Sにつ!/、て、 xRy→xSyであるとき、 Rは Sより強!ヽ、 Sは Rより ¾ ヽと!ヽぅ。また 、 Rによる類別は Sによる類別より細力 、、 Sによる類別は Rによる類別より粗いという。 最も強い同値関係は、「同じものである」という同値関係であり、最も弱い同値関係は 、 Xの任意の 2つの要素が同値であるとする同値関係である。
[0041] [5]商空間 (等化空間)
Xを位相空間とする。 fを全射かつ連続な写像であって、各点 xEXを、 Xを含む部 分集合である同値類 χΖ〜ΕΧΖ〜に写像する商写像 (quotient map) (しばしば等 ィ匕写像(identification map)とも呼ばれる)であるとする。
f : X→XZ〜
ここで、既に説明したように、「写像 f : X→Yが全射である」とは、
(VyEY) (ョ xex) [f(x)=y]
を意味する。
[0042] Xの部分集合 XG Xに対して、
X°が開である f_1(X°) | ye Aが Xにおいて開である(これは fが連続であることを 意味する)
が成り立つような全射写像 fを考えた場合、 XZ〜を商写像 (または等化写像) fによる 商空間(または等化空間)と呼ぶ。商空間が等化空間とも呼ばれる理由がある。それ は、既に述べたように、商空間は、各要素である同値類 xZ〜EXZ〜を、 xZ〜に 含まれる点 xexと同一視することにより得られるカゝらである。
[0043] [6]接着空間
さて、位相空間 Xから始めて、これに別の位相空間 Υを接着する。図 1は、 2つの互 いに素である位相空間 X、 Υから接着空間が生成される様子を説明する図である。 画
Yf=YufX = YuX/〜
は、接着写像(attaching map) fによって Yを Xに接着(attach)することにより(または、 連続写像 fにより、各点 yEY
0 I Y CYをその像 f(y) EXと同一視することにより)得 0
られる接着空間(attaching space)である。
[数 5]
U
は、直和 (別名、「排他的論理和」)を表し、しばしば記号 +が代わりに使われる。
[0044] 接着写像 fは、 f:Y→Xである連続写像である。ただし Y CYである。このように、接
0 0
着空間
[数 6]
Yf=Yux/〜 は商空間の一例であり、
[数 7]
YuX/~=YufX=YuX/(x〜f(y) I VyeY0)
である。この場合における等化写像(identification map) gは、
である。
[0045] [7]制限と包含
任意の関数 g :Y→Zに対して、 gの Χ(Χ Υ)への制限 (restriction)とは、 [数 9] g | X = g o i : x→z
である。ここで
i:X→Yは、包含(inclusion)である。すなわち
VxEX, i (x) =x
である。
[0046] [8]連続写像のエクステンションとレトラクシヨン
位相空間 X、 Yと、部分空間 ACXに対して、 f | A:A→Yを満たす連続写像 f :X→
Yを Aから Xへの写像 f | Aの連続エクステンション(または単にエクステンション)とい う。エクステンションは部分関数である。
[0047] 制限 (restriction) rは、 r:X→ Aを満たす X上の恒等写像 1 : A→ Aの連続エタステ
A
ンシヨンである。したがって、 r I A= l である。
A
[0048] ACXに対して、
[数 10]
i o r 〜 lx
を満たすレトラクシヨン(retraction)r:X→Aがあるならば、 Aを Xの変形レトラタト(defo rmation retract)と呼び、
[数 11]
X ^- ^ A
で表す。
もし、 Aがただ一つの点 A= {a} CXであるならば、 Aはレトラタト可能 (retractable)とい い、
[数 12]
[0049] [9]ホモトビー
ホモトビーはエクステンションの一例である。 X、 Yを位相空間、 f, g:X→Yを連続写 像、 1=[0, 1]とする。ホモトビーは、次のように設計される。
H:XXI→Y
ただし、 tEIに対して、
t = 0のとき、 H = f
t=lのとき、 H = g
が成り立つ。このとき、 fは gにホモトピックであるという。
[0050] ホモトビーは連続写像のエクステンションであり、
H I XX{0}=fi
0
H I XX{l}=gi
ここで
i =XX{0}→X
o
i =XX{1}→X
[0051] 位相空間 Xと Yは、ホモトピー同値 (homotopically equivalent)
[数 13]
X ^ Y
である、すなわち次の条件が満たされて ヽれば同じホモトビー型である。
[0052] 2つの関数 f、 hは、 f :X→Yおよび h:Y→Xであり、
[数 14]
h ° f ^ lx ana i ° h ^ 1Y
である。ここで 1 および 1 は恒等写像、すなわち 1 :Χ→Χ、 1 : Υ→Υである。
[0053] ホモトビー同値も同値関係の一例であるが、ホモトビー同値はトポロジー同値よりも 広い概念である。ホモトビー同値は、変化の後、位相幾何学的にはもはや同値では なくなる情報の変化を同定することができる。情報はいろいろな操作や処理により変 化するが、その操作および処理はホモトビーによって指定され、情報の変化はホモト ピー同値によって検証される。事実、不変性 (invariance)という抽象の観点からは、ホ モトピー同値は集合論的同値よりも抽象性が高い。なぜなら、与えられた集合を要素 の追加や削除によって変化させるとき、追加や削除の操作手順と追加もしくは削除さ れた要素を保存することにより、集合をホモトビー同値にすることができるからである。
[0054] [10]セル構造空間(セル空間)
セル (cell)は任意の次元 (たとえば n次元、ただし nは自然数)の閉球(閉の nセルと 呼ぶ)とトポロジー同値 (すなわち同相)である位相空間 Xである。
[0055] 閉の nセル(closed n- cell)を
[数 15]
と表記する。
[0056] 開の nセノレ (open n- cell)を
[数 16]
Int Sn = B "
と表記する(しばしば e11とも書かれる)。
[0057] 閉の nセノレ
[数 17] β ' Ά= {xeR11 , llxll< l }
【ま、 n次兀閉球体 (closed n— dimensional ball)である。ここで
[数 18]
は n次元の実数である。
[0058] 開の nセノレ
[数 19]
Int βη= B f n = {xeRn , llxllく 1}
は、 η次元開球体(open n-dimensional ball)であり、 n次元閉球体
[数 20]
の内部である。
[数 21] 一 B n = s"";
は、閉の nセルの境界であり、これは(n— 1)次元球面(sphere)Sn_1である [0059] 位相空間 Xに対して、特性写像(characteristic map)
[数 22]
r
は、連続関数
[数 23]
T: → X
であり、次を満たす。
[数 24]
Γ:έη-→^(^η), and
T(cWn) = Τ(Β( Ά) - T(Sn)
[0060] [数 25] en = Τ(&λ)
は、開の nセノレであり、
[数 26]
は、閉の nセノレである。
[0061] 位相空間 から、整数集合 Zによってインデックスが与えられた、 Xの部分空間であ るセル X
pの有限または無限の系列 {X
p I X
Pc
X) pez}を構成することができる。こ れは、フィルトレーシヨン (filtration)と呼ばれ、次の条件を満たす。 X
Pは Xの被覆(cov ering)、すなわち X= U X
Pであり、かつ、 X
Pは Xの部分空間、
2 … XP_1 ΧΡ … X (これはスケルトン(skeleton)と呼ばれる)である。最大 p次 元のスケルトンは p—スケルトンと呼ばれる。
[0062] C= {X I XPcx, p EZ}を位相空間 Xのセル分解(cell decomposition)、あるいは 、位相空間 Xの、閉セルである部分空間 XPへの分割(partition)という。(X, C)は CW 複体(CW-complex)と呼ばれる。
[0063] セル接着写像を保存しながらセル分解を行うとき、セル空間を再利用可能な資源 に変えることができる。そのような保存され、共有された情報をセルデータベース (cell ular database)と名付け、セルデータベースを管理するシステムをセルデータベース 管理ンスアム (cellular database management systemま 7こは cellular DBMS)と名付け る。
[0064] より正確には、 J. H. C. Whitehead, "Algebraic Homotopy Theory", Proceedings of International Congress of Mathematics, II, Harvard University Press, pp. 354—357, 1 950によれば、位相空間 Xが与えられたとき、
·· X
P_1 X
P … Χをもったフィルトレーシヨン X
Pを以下の条件を満たす位相空間として帰納的 に構成することができる。
(1) X CXは、その要素が Xの 0次元セルである部分空間であり、かつ
(2) XPは XP_ 1から次のようにして作られる。すなわち、 XPは、接着写像と呼ばれる全 射かつ連続な写像
によって、 XP_ 1に p次元閉球体の直和(disjoint union)
[数 28]
を接着することによって作られる。
[0065] 言 、換えれば、 Xpは、直和
を求め、
における各点 X、すなわち
を、連続写像
[数 32]
Fi = F I dS^ : ?¾p→ Χρ
(ただし、各インデックス iに対して X〜f (X)である)
によって、その像
[数 33]
と同一視 (identify)すること〖こよって、 XP_1から構成される。
[0066] このように、 XPは商空間(quotient space)あるいは等化空間(identification space)で あり、
[数 34]
Xp =XP u (ut ¾p)| (x〜F x) I VXG^¾P)
=XP uF (u
と書くことができ、これは、接着空間の一例である。写像 ^はセル
[数 35]
の接着写像の一例である。
[0067] フィルトレーシヨン空間(filtration space)は、フィルトレーシヨンとホモトビー同値な(h omotopically equivalent)空間である。
〜 X
P_ ェ ^… Χを合わせて CW空間(CW-space)と呼ぶ。セル複体としては、先に説 明したように、これは CW複体(CW-complex)と呼ばれる。
[0068] このようにして、写像
[数 36]
Ψ
を等ィ匕写像 (identification map)
の一例として得る。
[0069] 各 nセル
[数 38]
¾p = Ti!B^ G Xp
に対する特'性写像(characteristic map)
[数 39]
T
は、
[数 40]
, = r \ : → xp
と書ける。
[0070] ΧΡ_1を ΧΡの閉の部分空間として埋め込むことは
[数 41]
Τ I χρ = χρ_ 1 → χρ
と書ける。
[0071] CW空間が微分同相(diffeomorphic)であるなら、これは多様体 (manifold)空間と等 価である。
[0072] [11]表現設計
セル空間レベルでセルの次元が設計された後、表現レベルにお!、てセルの表現 (p resentation)が設計される。表現設計では、オブジェクトの属性のデータ型や桁数な どの表現形式が詳細化される。オブジェクトの属性の表現形式に不整合がある場合 、表現形式を受容表現 (Admissible Representation)に合わせる処理が行われる。ォ ブジエタトの属性の表現形式の不整合には、たとえば、データ型または桁数の違いが あり、データ型変換や桁数変換により、その違いを解消することができる。
[0073] [12]ビュー設計
表現レベルでセルの属性の表現形式が詳細化された後、ビュー (view)、すなわち ユーザが見ることのできる範囲が決められる。ユーザは、オブジェクトの集合のうち、 関心のある部分だけを適当な形式で見たいという要求がある。また、セキュリティ上の 理由などによりユーザが参照することのできる範囲を制限しなければならない。その ため、ビュー設計では、ユーザ向けに参照可能なオブジェ外の部分集合や、閲覧可 能なオブジェクトの属性を制限したビューが決められる。
[0074] [13]インクリメンタリモジュラな抽象階層
これまで述べてきたホモトビー、集合、位相空間、接着空間、セル空間、表現、ビュ 一の各抽象レベルは、インクリメンタリモジュラな抽象階層(incrementally modular abs traction hierarchy)を形成— "る。
1.ホモトピーレベル
2.集合論レベル
3.位相空間レベル
4.接着空間レベル
5.セル空間レベル
6.表現レべノレ
7. ビューレべノレ
[0075] これらの階層は、モジュールィ匕されており、各階層においてインクリメンタルに情報 を操作して 、くことが可能であり、サイバーワールドの不変量 (invariant)を示す同値 関係を階層的に継承する上できわめて有用である。
[0076] まず、複数のオブジェクト集合の特定の要素について同値にする対象が選ばれる。
次に、オブジェ外集合に位相が規定され、位相空間において同値関係が規定され ることにより、複数のオブジェ外集合は、同値類の直和である接着空間として設計さ れる。さらに、セル空間において同値セルとそれ以外のセルにセル分解されることに より、セル空間レベルまで同値関係が継承される。
[0077] さらには、受容表現にもとづいてセルの表現形式を規定することにより表現レベル まで同値関係が継承され、最後にユーザのビューが規定されることによりピューレべ ルまで同値関係が継承される。表現レベルの 1つのインスタンスとして、受容表現を 規定するための受容表現レベルを設けておけば、オブジェクトを表現レベルで同値 にすることができる。
[0078] このようにインクリメンタリモジュラな抽象階層モデルでは、同値関係を抽象階層間 で継承しながら、オブジェクトの満たすべき仕様を各階層において設計するため、情 報の追加、削除、修正をインクリメンタルに行いながら、抽象階層間を行き来してォブ ジェタトの仕様を詳細化できる。また、こうして設計されたオブジェクトは再利用可能な 形で部品化することができる。
[0079] 集合 Xの部分集合力 なる集合 Sにおいて、 Sに属するすべての集合の和集合が X に等しいとき、 Sを集合 Xの被覆 (covering)という。 n個の情報システムの統合を行うと き、「経営上の業務統合決定」は、インクリメンタリモジュラな抽象階層の上で、 n個の
集合の被覆を作ることの決定がなされたことに相当する。ここで、業務は別々の機関 のものであってもかまわない。 n個の集合は一般には重なりがある。たとえば、複数の 業務に同じ社員が参加することなどがあるからである。この n個の集合の被覆が、イン クリメンタリモジュラな抽象階層間で継承されることにより、業務統合が実装される。言 い換えれば、ホモトビーレベル、位相空間レベル、接着空間レベル、セル空間レベル 、表現レベル、およびビューレベルのそれぞれで業務の被覆が生成されることが、業 務統合になる。いったん被覆が生成されると、 n個の情報システムの間の統合および 操作は、インクリメンタリモジュラな抽象階層の上ですベて被覆を通して行われる。そ の結果、 n個の情報システムの間の統合および操作は、いずれも線形になる。このよ うに、インクリメンタリモジュラな抽象階層によれば、 n個の情報システムの間で被覆と いう線形インタフェイスを構成して線形インターオペラピリティを実現することができる
[0080] また、インクリメンタリモジュラな抽象階層モデルにおける位相空間は、ノ、ウスドルフ 空間(Hausdorff space)すなわち T位相空間に限られない。 T位相空間では、分離
2 2
公理により、異なる 2点が開集合で分離できるが、異なる 2点を開集合で分離すること のできない T位相空間や T位相空間であっても、同様に接着空間が設計できること
0 1
に留意する。したがって、抽象階層モデルは、非常に汎用性が高いものである。
[0081] 接着空間は、主要な企業や公的機関で用いられている有力な商用の情報システム に共通した特性を接着空間と!/、う形で異なる情報システム間で同値になるように抽象 化し、モデル構築する。このように、接着空間は、異種情報システムを線形統合する ことのできる斬新な情報モデルであり、統合作業量の組み合わせ爆発を避けることに 大いに貢献する。接着空間レベルにおける線形統合後の線形インタフェイス生成の 自動化のために、上記のインクリメンタリモジュラな抽象階層が用いられる。この抽象 階層によれば、同値関係が下位の階層まで継承されるため、既存の情報システムに 対するインタフェイスを与えて、統合システム規模のタスクを実行するための線形イン ターオペラピリティを実現することができる。
[0082] 比較のために、リレーショナルデータベースシステムを例に挙げて説明する。リレー ショナルデータベースシステムにおいて、リレーションはタツプルの集合である。リレー
シヨンに新たなタツプルが挿入されたり、既にあるタツプルが削除されたり、タツプルの 属性値が修正されることにより、リレーションは時間とともに変化していく。たとえば、リ レーシヨンとして「社員 (社員番号,氏名,所属,入社年度)」を考える。新しい社員が 入社した場合、リレーション「社員」にその社員を表すタツプルを挿入しなければなら ない。一方、ある社員が退職すると、リレーション「社員」にその社員を表しているタツ プルを削除しなければならない。また、配置換えにより、ある社員の配属先が変わつ た場合、その社員のタツプルにぉ 、て属性「所属」の値を修正しなければならな!/、。
[0083] このように、リレーショナルデータバースでは、タツプルの挿入、削除、修正により、リ レーシヨンが時間とともに変化していく。しかしながら、リレーションには、社員の社員 番号、氏名、所属、入社年度のデータを表しているという固有の性質があり、これは 時間に対して不変である。リレーションにはこのように時間に対して不変な構造があり 、これをリレーションスキーマと呼んでいる。
[0084] リレーショナルデータベースモデルは、集合論にもとづくものであるから、位相空間 のレベルで同値関係を定義することができない。したがって、複数の異なるデータべ ースを統合しょうとすると、 IDのつけなおしなど、データベースの再設計を行う必要が あり、工数爆発の問題が起こる。それに対して、インクリメンタリモジュラな抽象階層モ デルでは、上位概念で規定された同値関係を表現レベルまで落とし込むことができ るため、複数の異なる情報システムの統合が線形操作で可能となる。すなわち情報 システムの各要素のインタフェイスは、接着空間に一回変換するだけでとることができ 、 n要素で n回の変換でインターオペラピリティが保証され、インタフェイスの数は線形 である。
[0085] このように、本発明の抽象階層モデルに対して、従来のリレーショナルモデルは、同 値関係をモデルィ匕していないため、情報の統一的な扱いができない。せいぜい、テ 一ブル間の関係を示す別テーブルを、ノ ツチを当てる要領で設けてインタフェイスを とろうとしている力 これではインタフェイスの数が指数関数的に増える。一方、 ER(E ntity Relation)モデルを基本とする SAP、 UML(Unified Modeling Language)なども、 これらはすべて直観的なグラフ理論モデルであり、そのモデル自身が同値関係を扱 うことができないため、同様の問題が起こる。これが社会基盤情報システムの現状で
あり、システムが明確なインターオペラピリティをもたな 、ことが大きな問題となって!/ヽ る。
[0086] [14]応用例
[14. l]Web情報モデリング
通常、 Web情報マネージメントシステムのやるべき仕事は、 Webグラフィックスを用 いて情報を可視化することを通して、人間の認識との間で非常に近い相互作用をも ちながら、 Web上の情報を管理することである。 Webグラフィックスの仕事は、人間の 理解のためにグラフィックススクリーンに 、ろ 、ろなイメージを投影することである。人 間は、ディスプレイ空間に表示されたイメージを人間の認識空間における認識対象 物にリンクすることによって、表示されたイメージを理解している。しばしば、幾何学的 に正確な表示であっても、サイバーワールドでは通常は本質的な情報ではない、優 先度の低い幾何学的形状によって、人間の認識を誤りに導くことがある。 Web情報マ ネージメントに対して Webグラフィックスは、サイバーワールドの変化に合った速度で 、人間が即座に認識できるようにスクリーン上に重要なメッセージを伝えることができ なければならない。以下、簡単な例を挙げて説明する。
[0087] [14. 2]エレクトロニックファイナンスの Web情報モデリング
エレクトロニックファイナンスにおいて、顧客 Xが、 Webサーフィンしているときに、金 融取引会社 Yのホームページの Webページに投稿されている収益の期待できるファ ンド Ύを見つけたとする。この時点では、顧客 Xは Webで「ウィンドウショッピング」をし
0
ている段階であるから、顧客 Xと取引会社 Yはファンドをまだ共有していない。したが つて、 Xと Yは互いに素であり、共通要素を持たない。すなわち、
[数 42]
YUX
と表記することができる。一般化のために、 Xと Yを位相空間とする。ファンド Ύは金
0 融取引会社 Yの属性の一部であるから、 Y CYが成り立つ。図 2は、 Web上のエレク
0
トロニックファイナンスのプロセスを Webグラフィックスにおいて図示したものである。 次に、ファンドが取引のために特定された後、顧客 Xは取引会社 Yとどのようにして関 係づけられるかを述べる。ここで提案する Web情報モデルは、顧客 Xと取引会社 Yの
関係を接着写像 fによって正確に表現し、また、「ファンド Ύが取引のために特定され
0
て 、る」と 、う状況を 2つの互いに素である位相空間 X(顧客)と位相空間 Y (金融取 引会社)の接着空間として表現する。この接着空間は、顧客 Xから始めて、金融取引 会社 Yを顧客 Xに接着することにより得られる。ここで、 Yの Xへの接着は、連続写像 f を介して、各点 y£Y I γ Υをその像 f (y) exと同一視することによって行われ、
0 0
その結果、 x〜f (y) I VyEYである。このように、〜で表記される同値は、 Web情報
0
の接着空間モデルとして接着空間を作成するために、 Web情報モデリングにお 、て 中心的な役割を果たす。
[0088] 上記の接着空間モデルは、エレクトロニックマ-ュファクチャリングにおいてもまった く本質的に等しく適用することができる。エレクトロニックマ-ュファタチャリングプロセ スを管理し、表示するために正確に同一の技術が要求される。エレクトロニックマ-ュ ファタチャリングが巿場の需要に効果的に即応するためには、 V、かにして 、ろ 、ろな サイズのコンポーネントを統一したデザインで組み立てるかを指定しなければならな い。先に提示したエレクトロニックファイナンスは、顧客と取引会社をエレクトロニックマ -ュファタチャリングのコンポーネントとして組み立てることであると考えることにより、 エレクトロニックファイナンスのための Web情報マネージメントシステムと Webグラフィ ックスは、実際にエレクトロニックマ-ュファクチャリングに適用可能となる。もし、異な るアプリケーションに異なる技術を使うとなると、急成長しているサイバーワールドは、 タイムリーに Web情報マネージメントシステムで管理することも、 Webグラフィックスで 表示することもできなくなる。
[0089] [14. 3]エレクトロニックマ-ュファクチャリングの Web情報モデリング
接着空間モデルによるエレクトロニックマ-ュファクチャリングの Web情報モデリング はまったく簡単である。基本的には、エレクトロニックマ-ュファクチャリングと呼ばれる Web上のマ-ュファタチャリングは、エレクトロニックマ-ュファクチャリングの工程に 関する次の情報力 なる Web情報としてモデルィ匕される。
1)製品仕様
2)組み立て仕様
3) Web上での部品購入
4) Web上の組み立てサイトでの購入
[0090] 各ステップは、必要に応じてより細力 、サブステップに分解される。たとえば、ステツ プ 1は次のサブステップに分解できる。
1. 1)電子市場での製品のマーケット調査
1. 2)マーケット調査力 導き出される製品の要求
1. 3)要求を満たすための製品の仕様
[0091] エレクトロニックマ-ュファクチャリングのための Web技術全体の中で核となる部分 は、 Web情報モデリングとしての Web上での製品と組み立てのモデリングである。図 3は、座席と支持部という 2つのコンポーネントをもつ椅子の単純な組み立て例を用い て、最も初歩的な組み立てのモデリングを明確に図示したものである。発展したマ- ュファクチャリングとしてのエレクトロニックマニュファタチャリングにおいて、製品のコ ンポーネントは、モジュール化されており、より品質の高いコンポーネントを買うため、 最も有効なアップグレードを行うため、あるいは修理するために置き換え可能に構成 されている。
[0092] エレクトロニックファイナンスとエレクトロニックマ-ュファクチャリングが接着空間と同 値にもとづいて同一の情報モデリングを共有することは明らかである。
[0093] [15]実施例
図 4は、実施の形態に係るソフトウェア開発支援装置 100の構成を示す。オブジェ タト集合記憶部 190は、ソフトウェア開発に利用されるオブジェクトの集まりを保持す る。ソフトウェア開発に利用されるオブジェクトすなわちソフトウェア部品は、データ構 造体やプログラムモジュールである。ソフトウェア開発支援装置 100は、オブジェクト 集合記憶部 190に格納されたオブジェクトの集まりを参照する。ソフトウェア開発支援 装置 100は、オブジェクト集合記憶部 190を介さずに、ウェブ上の情報システムから オブジェクト集合を取得して参照してもよい。以下、実施の形態では、説明の便宜上 、 2つのオブジェクト集合の間に所定の対応関係またはインタフェイスを定義する場 合を説明するが、これはより一般的に複数のオブジェクト集合を参照してそれらの間 にインタフェイスを定義する場合の一例に過ぎな 、。
[0094] ソフトウェア開発支援装置 100は、ホモトビーレベル処理ブロック 110、集合レベル
処理ブロック 120、位相空間レベル処理ブロック 130、接着空間レベル処理ブロック 1 40、セル空間レベル処理ブロック 150、表現レベル処理ブロック 160、およびビュー レベル処理ブロック 170を含み、それぞれ既に述べたインクリメンタリモジュラな抽象 階層モデルにおける各階層レベルの処理を行う。
[0095] 集合レベル処理ブロック 120は、オブジェクト集合記憶部 190に格納されたォブジ ェ外の集まりに集合演算を適宜施して、設計対象となる 2つのオブジェ外集合を特 定する。位相空間レベル処理ブロック 130は、集合レベル処理ブロック 120が特定し た 2つのオブジェクト集合に対して位相を規定することで、 2つのオブジェクト集合は それぞ; |1 ^立相空間 X、 Yとして設計する。この時点で 2つの位相空間 X、 Yは互いに 素であり、これらの位相空間 X、 Yの直和あるいは排他的論理和である
[数 43]
YUX
が確定する。
[0096] 接着空間レベル処理ブロック 140は、図 5にその詳細な構成を示すように、同値関 係設定部 44、同値関係保持部 52、対応要素抽出部 20、接着写像取得部 22、等化 写像取得部 24、手順取得部 26、および手順記録部 28を含む。
[0097] 同値関係設定部 44は、 2つのオブジェクト集合に適用したい同値関係の入力をュ 一ザ力も受け付ける他、ユーザの入力をもとにして自動的に同値関係を生成する。ュ 一ザが同値関係を設定しやすいように、同値関係保持部 52は同値関係の候補があ らかじめ格納されている。また、ユーザがオブジェクト集合の要素を指定して同値関 係を記述することのできるインタフェイスを設けてもよい。
[0098] 同値関係設定部 44により設定された同値関係 (以下、目的同値関係ともいう)は、 対応要素抽出部 20へ伝えられる。対応要素抽出部 20は、 2つのオブジェクト集合に おいて対応関係を定義すべき構成要素 (以下、「対象要素」ともいう)を、目的同値関 係をもとに抽出する。その際、ユーザが 1つのオブジェクト集合において対象要素の 一方を指定し、対応要素抽出部 20が目的同値関係をもとに他方のオブジェクト集合 から対応する対象要素を抽出するようにしてもょ ヽ。
[0099] 対応要素抽出部 20により対応しあうことが判明した対象要素は、ひとつの部分位相
空間、すなわち同値類を形成し、接着空間モデルの理論的保証により、同値類の排 他的論理和として接着空間が形成される。同値類は同値関係で規定される不変量を もとに分類されるため、オブジェクト集合を客観的に分類することができ、分類の結果 にはシステム設計者による個人差が含まれない。また、一方の対象要素を決めると、 他方の対象要素が決まるため、前述のごとぐ対応関係またはインタフェイスの数が 線形になり、インターオペラピリティが保証されることになる。
[0100] 目的同値関係が決まると、対象要素間がどのような意味において対応するか、その 関係も一意に決まる。そのため、接着写像取得部 22は対象要素間の対応を示す接 着写像 fを特定することができる。接着写像 fが決まると、接着空間も、
[数 44]
Y ufx = Y u x /〜 と定まる。接着空間は、もとは共通部分をもたない位相空間 Xと Yの間に、接着写像 f を媒介として対応関係を持たせた位相空間である。
[0101] 等化写像取得部 24は、位相空間 Xと Yの単なる排他的論理和の空間から、接着写 像 fによって定まる接着空間への写像である等化写像 gを取得する。等化写像 gは、 現実には、その定義力 位相空間 X、 Yおよび接着写像 fによって記述することができ る。
[0102] 手順取得部 26は、同値関係設定部 44から目的同値関係、対応要素抽出部 20か ら対象要素、接着写像取得部 22から接着写像 f、等化写像取得部 24から等化写像 g の入力を受け、ユーザにより指定された対象要素および目的同値関係(以下、これら を「注目手順」ともいう)をホモトビーとして、一連の処理の結果で特定される、 •位相空間 X、 Y
•目的同値関係
'接着写像 f
'等化写像 g
と関連づけて手順記録部 28へ記録する。
[0103] セル空間レベル処理ブロック 150は、図 6にその詳細な構成を示すように、セル接
合部 62、セル次元調整部 64、および対応テーブル保持部 66を含む。セル空間レべ ル処理ブロック 150は、接着空間レベル処理ブロック 140において目的同値関係を もとに接着空間として設計された複数のオブジェクト集合の仕様を継承して、セル空 間レベルでオブジェクト集合の仕様を詳細化する。セル構造空間モデルは、接着空 間モデルに次元を導入したものであり、オブジェクトの属性の IDや属性の個数に関 する仕様がセル空間レベルで詳細化されることになる。
[0104] セル接合部 62は、 2つのオブジェクト集合間で目的同値関係により対応関係にある 2つの対象要素を接合し、各オブジェクト集合に属するオブジェクトの属性をセルで 表現する。セル次元調整部 64は、対応する 2つの対象要素間に属性の次元に関す る不整合がある場合、その不整合を解消するための処理を行う。セルの次元に関す る不整合として、対象要素の属性の IDや個数の違いなどがある。セル次元調整部 6 4は、必要に応じて、 2つの対象要素間で属性の IDや属性の個数の不揃いを調整し 、 2つの対象要素間の属性の対応関係を示すテーブルを対応テーブル保持部 66に 格納する。
[0105] 表現レベル処理ブロック 160は、図 7にその詳細な構成を示すように、表現生成部 72、表現形式調整部 74、および変換テーブル保持部 76を含む。表現レベル処理ブ ロック 160は、セル空間レベル処理ブロック 150においてセル空間レベルで詳細化さ れたオブジェクト集合の仕様を継承して、表現レベルでオブジェクト集合の仕様をさ らに詳細化する。表現レベルでは、セルの具体的な表現形式を決めるため、ォブジ ェ外の属性のデータ型や桁数などに関する仕様が詳細化されることになる。
[0106] 表現生成部 72は、 2つのオブジェクト集合のそれぞれに属するオブジェクトの属性 の表現を生成する。表現形式調整部 74は、目的同値関係により対応関係にある 2つ の対象要素間に表現レベルの不整合がある場合に、その不整合を調整するための 処理を行う。表現レベルの不整合として、対象要素の属性のデータ型や桁数の違い などがある。データ型には、ブール値、符号付き整数、正の整数、実数、倍精度実数 、文字型などがあり、表現形式調整部 74はこれらのデータ型を変換して対象要素の データ型を揃えてもよい。また、データ型が同じでも文字列の桁数や数値の有効桁 数などの桁数が異なる場合には、表現形式調整部 74は 2つの対象要素間で属性の
桁数を調整して揃えてもよい。その他の不整合の例として、計量や貨幣などの単位の 違いがあり、変換式を用いて、一方の単位系が他方の単位系に変換される。
[0107] 表現形式調整部 74は、位相空間 Yを位相空間 Xに接着する場合、表現レベルに お!、て、位相空間 Xのオブジェクト集合の対象要素と位相空間 Yのオブジェクト集合 の対象要素の属性のデータ型や桁数を比較して、相対的に精度が高い方の属性に 揃えて、データ型や桁数を変換する。 3つ以上のオブジェクト集合の対象要素間で属 性の表現レベルの不整合を調整する場合も同じであり、表現形式調整部 74は、複数 のオブジェクト集合の対応する対象要素の属性表現の内、最も精度の高い属性表現 を選んで、他の精度の低!、対象要素の属性表現をその精度の高 、対象要素の属性 表現に合わせるように調整する。これにより、精度の異なる対象要素の接着後に、デ ータ型変換や桁落ちなどにより元のデータが失われるのを防ぐことができる。
[0108] 表現形式調整部 74は、最大の文字数や桁数をもった受容表現をもった表現フィル タとして作用し、当該表現フィルタを通過した表現は、表現レベルで同値になる。表 現形式調整部 74は、表現の不整合の調整をした場合の変換規則を記述したテープ ルを変換テーブル保持部 76に格納する。
[0109] ビューレベル処理ブロック 170は、ユーザに合わせたビューを設定し、ビューにした 力 てオブジェクト集合をディスプレイなどに表示する。
[0110] ホモトビーレベル処理ブロック 110は、ソフトウェア開発支援装置 100の各処理ブロ ックがオブジェクト集合に対して操作を行った際、その操作によって生じるオブジェク ト集合の変化がホモトビー同値になるように保証する。ホモトビーレベル処理ブロック 110は、手順記録部 28に記録された接着空間生成に係る注目手順、対応テーブル 保持部 66に格納されたセルの次元の不整合の対応関係を示すテーブル、変換テー ブル保持部 76に格納されたセルの表現の変換規則を示すテーブルを利用し、各操 作によってオブジェクト集合にもたらされた変化を逆にたどることにより、オブジェクト 集合を変化前の状態に戻すことができる。
[0111] このようにして、集合レベル処理ブロック 120から始めて、位相空間レベル処理ブロ ック 130、接着空間レベル処理ブロック 140、セル空間レベル処理ブロック 150、表 現レベル処理ブロック 160、およびビューレベル処理ブロック 170へと、同値関係を
継承しつつ、 2つのオブジェクト集合の仕様を段階的に詳細化していくことで、 2つの オブジェクト集合が表現レベルまで同値となって出力される。このようにインクリメンタ リモジュラな抽象階層モデルにもとづくソフトウェア開発支援装置 100は、同値関係 を、集合レベル力 位相空間レベル、接着空間レベル、セル空間レベル、表現レべ ル、およびビューレベルまで保証する一貫性のあるフィルタとして機能し、フィルタを 通過したオブジェクト集合は同値関係が数学的に保証されたインスタンスとなって出 力される。
[0112] 対応づけたい構成要素が複数あれば、それぞれの構成要素について目的同値関 係を設定することによって、同様に接着写像が規定され、最終的に複数のオブジェク ト集合間で対応する要素が接着された結果が出力される。一方のオブジェ外集合が 注目する構成要素を n個もてば、その n個のそれぞれについて、他方のオブジェクト 集合のいずれかの構成要素との対応関係が特定されるため、インタフェイス数は線 形であり、工数爆発の問題が解決する。
[0113] 本実施の形態によれば、同値関係を設定すれば、複数のオブジェクト集合の構成 要素間で対応づけができ、対応していない構成要素はそのまま残しつつ、同値関係 にある構成要素については常に同じ情報をもつことができ、不変量を切り口に分類 や対応づけができるので、データ利用性が向上し、ソフトウェア開発の効率を各段に 高めることができる。
[0114] [16]具体例
以上の構成のソフトウェア開発支援装置 100によるソフトウェア開発支援手順の具 体例を説明する。ソフトウェア開発支援装置 100が各種プログラムモジュールをもと にソフトウェアを開発する際、プログラムモジュール間のインタフェイスを確定し、各プ ログラムモジュールで利用されるデータの仕様を詳細化する。 [16. 1]でデータの設 計手順を述べ、 [16. 2]でプログラムモジュールの設計手順を述べる。
[0115] [16. 1]データ設計
ソフトウェアにお 、て利用される複数のオブジェクト集合の一例として、シューズショ ップ Xのオブジェクト集合 300と、シューズメーカー Yのオブジェクト集合 200を考える 。これらのオブジェクト集合は、集合レベル処理ブロック 120によって設計され、ォブ
ジェタト集合記憶部 190に格納されている。これらのオブジェクト集合はデータベース として管理されているものであってもよい。位相空間レベル処理ブロック 130は、シュ ーズショップ Xのオブジェクト集合 300を位相空間 Xとして、シューズメーカー Yのォブ ジェタト集合 200を位相空間 Yとして設計する。この時点で、 2つの位相空間 X、 Yは 互いに素である。
[0116] 接着空間レベル処理ブロック 140は、オブジェクト集合記憶部 190に格納されたシ ユーズショップ Xのオブジェクト集合 300を位相空間 Xとして、シューズメーカー Yのォ ブジェクト集合 200を位相空間 Yとして参照し、同値関係をもとに 2つの位相空間 X、 Y力も接着空間を生成する。図 8に、接着空間レベル処理ブロック 140により 2つの位 相空間が接着される様子を示す。
[0117] V、ま、シューズメーカー Yの製造する特定の運動靴 Yをシューズショップ Xが仕入
0
れて、販売しているとする。このとき、ソフトウェアの開発者は、シューズショップ Xのォ ブジェクト集合、シューズメーカー Yのオブジェクト集合との間でこの運動靴 Yをプロ
0 グラム上では同一のオブジェクトとして扱いたい。同値関係設定部 44は、シューズメ 一力一 Yとシューズショップ Xの位相空間の間で、注目すべき対象要素である運動靴 Yを同値関係にあるものとして設定する。
0
[0118] 対応要素抽出部 20は、シューズメーカー Yの運動靴 Y (符号 202)に対応するシュ
0
ーズショップ Xの運動靴 f (Y ) (符号 302)を抽出する。接着写像取得部 22は、この
0
対応関係をもとに、接着写像 f :Y→X Yを取得する。
0 I Y
0
[0119] 等化写像取得部 24は、接着写像取得部 22が取得した接着写像 fによって、シユー ズショップ Xとシューズメーカー Yの 2つの位相空間の排他的論理和を接着空間 [数 45]
Yf =YufX
に写像する等化写像 gを取得する。すなわち、等化写像取得部 24は、等化写像 [数 46] g:YuX→YUfX
を取得する。ここで、
[数 47]
Yf =YufX=YuX/~=YuX/(x〜f(y) I VyeY0)
であり、同図に示すように、運動靴 f (Y ) (符号 402)において 2つの位相空間 X、 Y
0
が接着する。
[0120] 図 9は、シューズメーカー Yの位相空間における運動靴 202のセル構造を説明する 図である。運動靴 202は、セルの属性として、靴のブランド名 210、会社名 212、種 類 214、サイズ 216、色 218、素材 220、希望小売価格 222、製造原価 224、および 原産国 226を含む。
[0121] 図 10は、シューズショップ Xの位相空間における運動靴 302のセル構造を説明す る図である。運動靴 302は、セルの属性として、靴のブランド名 310、メーカー名 312 、種類 314、サイズ 316、色 318、素材 320、売価 322、および販売店 324を含む。
[0122] セル空間レベル処理ブロック 150のセル接合部 62は、図 9に示すシューズメーカー Yの位相空間における運動靴 202と、図 10に示すシューズショップ Xの位相空間に おける運動靴 302をセルレベルで接合するため、共通する属性を互いに対応づける 。靴のブランド名 210、 310、種類 214、 314、サイズ 216、 316、色 218、 318、素材 220、 320は属性名が一致するため、共通する属性として対応づけられる。
[0123] シューズメーカー Yの運動靴 202の会社名 212と、シューズショップ Xの運動靴 302 のメーカー名 312は、属性名は異なるが同一の要素である。そこで、セル空間レベル 処理ブロック 150のセル次元調整部 64は、シューズメーカー Y側の属性名をシユー ズショップ X側の属性名に対応づけ、接合セルにおける属性名を「メーカー名」に統 一することで不整合を調整し、シューズメーカー Y側の「会社名」をシューズショップ X 側の「メーカー名」に対応づける関係を記述したテーブルを対応テーブル保持部 66 に保持する。
[0124] シューズメーカー Yの運動靴 202とシューズショップ Xの運動靴 302をセルレベルで 接合する際、一方の位相空間に属性が存在し、他方の位相空間にはそれに対応す る属性が存在しないことがある。たとえば、シューズメーカー Yの運動靴 202には、原 産国 226という属性がある力 シューズショップ Xの運動靴 302には、それに対応する ものがない。逆に、シューズショップ Xの運動靴 302には、販売店 324という属性があ
る力 シューズメーカー Yの運動靴 202には、それに対応するものがない。このように 、 2つの対象要素間で属性の対応付けをする際、第 1の位相空間に属性 aが存在し、 第 2の位相空間にはそれに対応する属性が存在しない場合、第 1の位相空間の属性 aには対応づけられる属性がないとものして処理する力、もしくは第 2の位相空間にお いて空の属性 bを追加して第 1の位相空間の属性 aと対応づける処理を行う。たとえ ば、セル次元調整部 64は、シューズメーカー Yの運動靴 202の原産国 226について は対応づけられる属性がないとして処理し、一方、シューズショップ Xの運動靴 302 の販売店 324につ 、ては、空の属性をシューズメーカー Yの運動靴 202に追カロし、 シューズショップ Xの運動靴 302の販売店 324と対応づける処理を行 、、属性の個数 に関する不整合を調整する。
[0125] 属性の個数の調整の他の例として、一方の位相空間に「名前」という 1つの属性が あり、他方の位相空間には、「姓」と「名」という 2つの属性がある場合、実質的には両 者は同一の属性であるから、セル次元調整部 64は、「名前」という 1つの属性と、「姓」 と「名」と 、う 2つの属性を対応づけることで、属性の個数の不整合を調整することが できる。
[0126] 図 11 (a)〜(c)は表現レベルでの不整合の調整を説明する図である。シューズメー カー Y側の会社名 212は、図 11 (a)に示すように、 M桁の文字列で表現されている。 一方、シューズショップ X側のメーカー名 312は、図 11 (b)に示すように、 L桁の文字 列で表現されている。ここで、 L< Mである。表現レベル処理ブロック 70の表現形式 調整部 74は、桁数の大きい M桁に合わせて、図 11 (c)に示すように、接合セルの属 性であるメーカー名 412の表現形式を決めてもよい。
[0127] 対象要素の属性の表現形式において桁数の違いがあるときに、桁数の大きい方に 合わせて表現することは、「受容表現レベル」の一例である。表現形式調整部 74は、 所定の受容表現レベルをフィルタとして用いることにより、対象要素の属性の表現形 式の不整合を調整する。
[0128] 図 12 (a)〜(d)も表現レベルでの不整合の調整を説明する図である。シューズメー カー Y側のサイズ 216は、図 12 (a)に示すように、 inchを単位とした実数値で表現さ れている。一方、シューズショップ X側のサイズ 316は、図 12 (b)に示すように、 cmを
単位とした実数値で表現されて 、る。
[0129] ソフトウェアの設計仕様として、 cmの単位を採用する場合、表現レベル処理ブロッ ク 160の表現形式調整部 74は、図 12 (c)に示すように、接合セルの属性であるサイ ズ 416の表現形式は cmを単位とすることにし、シューズショップ X側のサイズ 316の 属性値を用いる。このとき、表現形式調整部 74は、図 12 (d)に示す変換式 516を変 換テーブル保持部 76に格納しておき、属性値の互換性を保つ。このようにいずれか の単位系に合わせることも受容表現レベルの一例である。
[0130] 図 13 (a)〜(d)も表現レベルでの不整合の調整を説明する図である。シューズメー カー Y側の色 218は、図 13 (a)に示すように整数値で表現されている。一方、シユー ズショップ X側の色 318は、図 13 (b)に示すように文字列で表現されている。これは、 シューズメーカー Yでは靴の色を細力べ識別するための番号体系を利用するのに対 して、シューズショップ Xでは靴の色を顧客が理解しやすい「紺」「紫」などの名称で記 述する力らである。この違いは、シューズメーカー Y、シューズショップ Xのそれぞれの システムにおける設計者の設計意図や顧客のニーズにより生じたものである。
[0131] ソフトウェアの設計仕様として、色の表現形式を文字列とする場合、表現レベル処 理ブロック 160の表現形式調整部 74は、図 13 (c)に示すように、接合セルの属性で ある色 418の表現形式を文字列として、シューズショップ X側の色 318の属性値を用 いる。このとき、表現形式調整部 74は、図 13 (d)に示すように、シューズメーカー Υ側 の色を識別する整数値とシューズショップ X側の色を識別する文字列との間の変換 規則を示した変換テーブルを作成して、変換テーブル保持部 76に格納し、属性値 の互換性を保つ。このように文字列の表現形式に変換することも受容表現レベルの 一例である。
[0132] 上記の例では、ソフトウェアの開発者がシューズショップ Xとシューズメーカー Υの 間で同値関係にある運動靴を指定した力 シューズショップ Xと複数のシューズメー カー Υとの間で同値関係を指定してもよい。たとえば、「素材が革である靴」という同値 関係をもとに、シューズショップ Xの位相空間と、複数のシューズメーカー Yl, Υ2, · ··, Υηのそれぞれの位相空間との間で対応する構成要素を抽出し、接着空間を生 成し、オブジェクトのデータ設計を行ってもよい。
[0133] [16. 2]プログラムモジュールの設計
オブジェクト集合の一例として、プログラムを考え、本実施の形態に係るソフトウェア 開発支援装置 100により、複数のプログラムをもとにソフトウェアを開発する手順を説 明する。
[0134] 図 14 (a)、 (b)は 2つのプログラム Xとプログラム Yが統合される様子を説明する図 である。これらのプログラムは、いずれも画像処理を行うものである力 プログラムの開 発者が異なるなどの理由で、プログラム構成が異なっているとする。これらのプロダラ ムは、いずれも画像の符号ィ匕および復号の機能をもっており、たとえば、電子商取引 で売買される商品の画像の符号ィ匕および復号を行うことができる。
[0135] 集合レベル処理ブロック 120は、複数のモジュールからなるプログラム X、 Υを集合 として設計し、位相空間レベル処理ブロック 130は、プログラム X、 Υを位相空間とし て設計する。
[0136] 接着空間レベル処理ブロック 140の同値関係設定部 44は、プログラム X、 Υを構成 するモジュールに対して、「符号化処理機能をもつ」および「復号処理機能をもつ」と いう 2つの同値関係を設定する。対応要素抽出部 20は、同値関係設定部 44により設 定された 2つの同値関係をもとにプログラム X、 Υ間の対応するモジュールを特定し、 接着写像取得部 22は、各同値関係による対応関係を与える接着写像 f 、 f を取得す
1 2 る。
[0137] これにより、プログラム Yの位相空間は、符号ィ匕処理機能をもつモジュール Yと、圧
0 縮処理機能をもつモジュール Yと、それ以外の機能をもつモジュールの直和
に分割され、一方、プログラム Xの位相空間は、符号ィ匕処理機能をもつモジュールで γに対応する f (Y )と、圧縮処理機能をもつモジュールで γに対応する f (Y )と、そ
0 0 1 1 れ以外の機能をもつモジュールの直和
[数 49]
に分割される。
[0138] 等化写像取得部 24は、図 14 (a)に示すプログラム X、 Yの 2つの位相空間の直和 を図 14 (b)に示す接着空間
に写像する等化写像 gを取得する。
[0139] 図 15 (a)、 (b)は、接着写像により対応づけられた 2つのモジュール A、 Bの入出力 インタフェイスを説明する図である。モジュール Aの入力に使われて ヽる変数は整数 型の a、 bの 2つであり、出力に使われている変数は実数型の cである。一方、モジュ ール Bの入力に使われている変数は実数型の s、 tの 2つであり、出力に使われている 変数は実数型の uである。接着空間レベル処理ブロック 140において対応づけられ た 2つのモジュール A、 B間で入力変数、出力変数の名前に違いがある力 セル空間 レベル処理ブロック 150のセル次元調整部 64は、 2つのモジュール A、 Bの入力変数 、出力変数の名前を対応が取れるように調整する。また、 2つのモジュール A、 B間で 入力変数、出力変数の個数に違いがあれば、セル次元調整部 64は、 2つのモジュ 一ル八、 Bの入力変数、出力変数の個数を対応が取れるように調整する。
[0140] 表現レベル処理ブロック 160の表現形式調整部 74は、 2つのモジュール A、 Bの入 力変数、出力変数のデータ型に違いがあれば、データ型を調整する。モジュール A の入力変数は整数型であり、モジュール Bの入力変数は実数型であるから、たとえば 、モジュール Aの入力変数を実数型に変換する。また、変数が文字型の場合は、表 現形式調整部 74は、文字列の桁数の調整を行う。
[0141] 図 16〜図 19において、ソフトウェア開発支援装置 100によって、同値関係をもとに モジュールもしくはデータが対応づけられてソフトウェアが開発される手順を説明す る。
[0142] 図 16 (a)、 (b)は、プログラムモジュールが新しいバージョンに更新される様子を説 明する図である。図 16 (a)のように、新バージョンのモジュール A と旧バージョンの
new
モジュール A があるとする。それぞれ別の開発者が設計したものであってもよい。同
old
値関係によって新バージョンのモジュール A が旧バージョンのモジュール A に対
応づけられる。また、それに伴!、、新バージョンのモジュール A の入力変数 s、 tが、 new
旧バージョンのモジュール A の入力変数 a、 bにそれぞれ対応づけられ、新バージョ old
ンのモジュール A の出力変数 uが旧バージョンのモジュール A の出力変数 cに対 new old
応づけられる。
[0143] このように同値関係で新旧バージョンのモジュールを対応づけることにより、ソフトゥ エア開発支援装置 100は、図 16 (b)のように、旧バージョンのモジュール A を新バ old 一ジョンのモジュール A に置き換えて、更新することができる。ソフトウェア開発支 new
援装置 100は、モジュールの置き換えをホモトビー同値になるように行うため、必要に 応じて新バージョンのモジュール A を旧バージョンのモジュール A に戻すことも new old
でき、ソフトウェアのデバッグを効率良く行うことができる。
[0144] 図 17 (a)、 (b)は、 2つのプログラムモジュールが合成される様子を説明する図であ る。図 17 (a)のように、モジユーノレ Aは 2つのサブモジユーノレ A 、 Aをもち、モジユー
1 2
ル Bは 2つのサブモジュール B 、 Bをもつ。同値関係によってモジュール Bのサブモ
1 2
ジュール Bがモジュール Aのサブモジュール Aに対応づけられる。また、それに伴 い、サブモジュール Bの入力変数 sとサブモジュール Aの入力変数 aが対応づけら れる。
[0145] 図 17 (b)のように、同値関係により定まる接着写像によって、モジュール Bのサブモ ジユーノレ Bがモジュール Aのサブモジュール Aと同一視されることにより、 2つのモジ ユール A、 Bが合成され、 1つのプログラムが生成される。このとき、接着写像で対応 づけられたサブモジュール Bとサブモジュール Aの入出力変数のデータ型や桁数 などが調整される。ソフトウェア開発支援装置 100は、モジュールの合成をホモトビー 同値になるように行うため、必要に応じて合成されたプログラム力も元のモジュール A 、 Bを分離して取り出すこともできる。
[0146] このように、ソフトウェア開発支援装置 100は、同値関係をもとにして複数のモジュ ールを合成したり、合成されたプログラム力 モジュールを取り出したりすることができ 、ソフトウェアの部品化を進め、再利用性を高めることができる。
[0147] 図 18 (a)、 (b)は、 2つのプログラムモジュール間でデータが共有される様子を説明 する図である。図 18 (a)のように、 2つの変数 a、 bを入力して変数 cを出力するモジュ
ール Aと、 2つの変数 s、 tを入力して変数 uを出力するモジュール Bとがあり、モジユー ル Bの入力変数 sとモジュール Aの入力変数 aが同値関係によって対応づけられ、そ れ以外の変数の間には対応関係がないとする。
[0148] 図 18 (b)のように、同値関係により定まる接着写像によって、モジュール Bの入力変 数 sがモジュール Aの入力変数 aと同一視されることにより、 2つのモジュール A、 B間 で入力変数の 1つが共有される。このように、ソフトウェア開発支援装置 100は、プロ グラムモジュール間で同値類として対応づけられるデータを共有し、データの利用性 を高めることができる。
[0149] 図 19 (a)、 (b)は、 2つのプログラムモジュールが結合される様子を説明する図であ る。図 19 (a)のように、 2つの変数 a、 bを入力して変数 cを出力するモジュール Aと、 2 つの変数 s、 tを入力して変数 uを出力するモジュール Bとがあり、モジュール Bの出力 変数 uとモジュール Aの入力変数 aが同値関係によって対応づけられ、それ以外の変 数の間には対応関係がないとする。
[0150] 図 19 (b)のように、同値関係により定まる接着写像によって、モジュール Bの出力変 数 sがモジュール Aの入力変数 aと同一視されることにより、モジュール Bとモジュール Aがこの順で結合され、 1つのプログラムが生成される。このとき、モジュール Bの出力 変数とモジュール Aの入力変数の間でデータ型や桁数などが調整される。このプログ ラムの結合は、ホモトビー同値になるように行われるため、必要に応じて結合を解除 して、モジュール Aとモジュール Bを分離することもできる。このように、ソフトウェア開 発支援装置 100は、同値関係をもとにして複数のプログラムモジュールを結合したり 、分離したりすることができ、プログラムモジュールの利用性を高めることができる。
[0151] このように、ソフトウェア開発支援装置 100によれば、同値関係にもとづいてソフトゥ エア部品の合成、置換、連結などの開発工程を線形操作で行うことができるため、ソ フトウェア部品の個数が増えても、開発工数爆発が起きることなぐソフトウェアを効 率良く開発することができる。
[0152] 上記の具体例では、プログラムモジュールの仕様を特徴づける属性として、入出力 インタフェイスを例に挙げ、対応するプログラムモジュール間で入出力インタフェイス の次元や表現形式の不整合を調整することを説明したが、これは属性の一例に過ぎ
ない。プログラムモジュールの仕様を特徴づける他の属性の例として、そのプログラム モジュールが参照する変数を考えてもよい。その場合、対応するプログラムモジユー ル間で参照変数の次元や表現形式の不整合が調整される。また、プログラムモジュ ールが利用する関数を属性として考えてもよい。その場合、対応するプログラムモジ ユール間で関数の次元、すなわち関数名や関数の個数などの不整合が調整される。 さらに、その関数の引数や戻り値の次元や表現形式の不整合が調整されてもよい。
[0153] ソフトウェア開発支援装置 100のビューレベル処理ブロック 170は、ソフトウェア開 発者毎に異なるビューを設計してもよい。たとえば、上級のソフトウェア開発者にはプ ログラムモジュールの内部変数の設計変更ができるように、プログラムモジュール内 部のデータ操作が可能なビューを設定する。一方、初級のソフトウェア開発者にはプ ログラムモジュールの外部インタフェイスの設計変更だけを許すように、プログラムモ ジュールの内部のデータ操作が不可能なビューを設定する。このように、開発者のプ ログラミングの経験や技術などのレベルに応じてビューを異ならせてもよい。また、ソ フトウェアを複数の開発者が共同開発する場合、各開発者が担当するプログラムエリ ァに限って設計変更ができるように、開発者毎にビューを異ならせてもよい。後述の ようにソフトウェア開発支援装置 100を保守工程で利用する場合は、ビューレベル処 理ブロック 170は、ソフトウェアの保守者毎に異なるビューを設計してもよい。
[0154] [17]ソフトウェアのライフサイクル管理
ソフトウェア開発のアクティビティには、要求分析、システム設計、プログラム設計、 プログラム実装、単体 ·結合テスト、システムテスト、受け入れテスト、および運用'保 守があり、これらの一連のアクティビティがライフサイクルとして管理される。要求分析 、システム設計、プログラム設計、およびプログラム実装は、ソフトウェアの開発工程 である。開発工程にぉ 、て生成されたソフトウェアのプログラムモジュールにつ!/、て 単体'結合テストが行われ、次にシステム全体の機能面についてシステムテストが行 われ、最終的にシステム出荷時の受け入れテストが行われる。これが試験工程である 。受け入れテストに合格したシステムは運用され、稼働中にシステムが保守される。こ れが保守工程である。
[0155] 図 20に示すソフトウェアライフサイクル管理装置 600は、開発工程から試験工程を
経て、保守工程に至るまでのソフトウェアのライフサイクルを管理する。開発機能プロ ック 610は、既に述べたソフトウェア開発支援装置 100の各機能を有し、抽象階層間 でソフトウェア部品集合の同値関係を不変量として継承しながら、ソフトウェア部品集 合が満たすべき仕様を抽象階層毎にインクリメンタルに詳細化することにより、与えら れた要求仕様に合致するソフトウェアをソフトウェア部品集合力 自動生成する。開 発機能ブロック 610により、ソフトウェアの要求分析力もシステム設計、プログラム設 計、プログラム実装までが実行され、開発されたソフトウェアはソフトウェア記憶部 64 0に記憶される。ソフトウェア記憶部 640は、要求仕様、開発、試験、および保守工程 におけるすべてのプログラムを保持する。
[0156] 試験機能ブロック 620は、開発機能ブロック 610により生成されたソフトウェアが各 抽象階層にお 、て詳細化された仕様に合致する力否かをテストし、問題が発見され た場合に、いずれかの抽象階層において要求条件を修正し、開発機能ブロック 610 は、要求条件が修正された抽象階層から始めて、ソフトウェア部品集合が満たすべき 仕様を抽象階層毎にインクリメンタルに詳細化する。
[0157] 開発されたソフトウェアの試験は、要求分析、システム設計、プログラム設計、およ びプログラム実装のいずれの段階でも行う必要がある。たとえば、試験機能ブロック 6
20が、要求仕様に不具合を発見して修正をしたときは、開発機能ブロック 610は、抽 象階層モデルの位相空間レベルや接着空間レベルなどの上位階層にもどって、そ の階層から設計の詳細化をやり直して不具合を解消する。また、試験機能ブロック 62 0力 プログラム実装において、関数の引数の数や変数のデータ型などに不具合を 発見した場合は、開発機能ブロック 610は、抽象階層モデルのセル空間レベルや表 現レベルなどの下位階層から設計の詳細化をやり直して不具合を解消する。いずれ の階層から作業をやり直すときでも、インクリメンタリモジュラな抽象階層にもとづくソフ トウエア開発支援装置 100によれば、新しい要求条件のもと、線形操作でソフトゥェ ァを再構成することができる。
[0158] 保守機能ブロック 630は、運用中のソフトウェアに修正もしくは機能拡張の必要が あった場合に、その修正もしくは機能拡張を反映すべき抽象階層にお ヽて要求条件 を変更し、開発機能ブロック 610は、要求条件が変更された抽象階層から始めて、ソ
フトウェア部品集合が満たすべき仕様を抽象階層毎に再度インクリメンタルに詳細化 する。
[0159] ソフトウェアの保守には、システムの障害への対処もしくは予防のために修正を行う のとして、修正保寸 (corrective maintenance)と予防保寸 (preventive maintenance) があり、システムの機能拡張を行うものとして、改善保守(perfective maintenance)と 適 J心保 (adaptive maintenance)力あ 。
[0160] 修正保守は、現行のシステムに障害が起きた場合に、障害の原因を発見して、ソフ トウエアの必要な修正を行うものである。修正保守は、ソフトウェアの残存不良を修正 する作業であり、一般には仕様の変更はしない。抽象階層モデルを利用した修正保 守は、たとえば、セル空間レベルや表現レベルなど比較的下位の階層で要求条件を 調整して行われる。
[0161] 予防保守は、現実には障害が起きてないが、潜在的な障害の可能性を発見し、シ ステムの故障を未然に防ぐために、システムのある側面を修正、変更することであり、 修正保守と同様に抽象階層モデルを利用して行うことができる。
[0162] 改善保守は、障害を回避するためにソフトウェアを変更するのではなぐシステムの ある機能や性能を向上させるためにソフトウェアの変更を行うことである。改善保守は 、ソフトウェアの仕様の変更を伴うものである。抽象階層モデルを利用した改善保守 は、たとえば位相空間レベルや接着空間レベルなど比較的上位の階層で要求条件 を調整した上で、下位の階層に向けて抽象階層を迪りながら、ソフトウェアを再設計 すること〖こよって行われる。
[0163] 適応保守は、ハードウェアやソフトウェアの技術進歩などの変化に応じてソフトゥェ ァの変更を行うものである。適応保守は、障害に対処するものではなぐ進化していく システムに適応させるために変更を行うものである。適応保守も他の保守と同様に抽 象階層モデルを利用して行うことができる。
[0164] ソフトウェアの保守工程は、新たな要求を分析し、システムとプログラムの設計を評 価し、コードをレビューし、必要に応じて修正を加える点で、ソフトウェアの開発工程 およびソフトウェアの試験工程と共通するアクティビティを含んで 、る。開発工程およ び試験工程が抽象階層モデルを利用して行われるように、保守工程も抽象階層モデ
ルを有効に利用して、効率良く行うことができ、保守の負担を軽減することができる。
[0165] 一般に、欠陥修正は別の欠陥修正を引き起こす波及効果がある。保守による手直 しがシステムの別の部分に影響を与えて、新たな障害を生み出すことがあるからであ る。一般的にソフトウェア開発は開発者依存であるため、開発者の作成した仕様書を 丹念にレビューしても保守による影響を正確に予測することは困難である。しかしな がら、本実施の形態のソフトウェアライフサイクル管理装置 600によれば、抽象階層 モデルを利用してソフトウェアの開発が行われ、開発者依存の設計要素が排除され るため、保守においても同じ抽象階層モデルを参照することで、何と何が同値関係に あるかを把握した上で、ある箇所の修正が他の箇所にどのような影響を与えるかを的 確に予測して正しい修正を効率良く行うことができる。
[0166] 修正保守において、ソフトウェアのある部分について同値関係を新たに定義する必 要が生じた場合や、最初力 定義しておくべきであった同値関係が保守段階で発見 された場合でも、抽象階層モデルを参照し、接着空間レベルで同値関係を定義し直 し、その同値関係を下位のセル空間レベルや表現レベルにまで落として実装するこ とにより、整合性を保証することができる。また、拡張保守や適応保守において、ソフ トウエアに新たな機能を追加する場合や、新たなパラメータを設定する場合でも、抽 象階層モデルにおいて適宜新たな同値関係を設定してインクリメンタルにソフトゥェ ァの再設計を行うことができる。また、予防保守において、対応する変数の間でデー タ型ゃデータ長の相違があり、不都合が生じることが予見される場合でも、抽象階層 モデルを利用して、これらの変数に同値関係を定義してその部分について不整合を 調整することができる。
[0167] このように、本実施の形態のソフトウェアライフサイクル管理装置 600によれば、抽 象階層モデルを利用することにより、保守段階で要求の変化が生じても、要求仕様に もとづいて同値関係を定め、設計および実装レベルまでその同値関係を不変量とし て継承して仕様の詳細化と具体ィ匕を図ることができ、変化に対して柔軟かつ効率良く 対応することができる。抽象階層モデルを利用することにより、保守工程におけるソフ トウエアに対する操作も、開発工程における操作と同じように、線形インターオペラビ リティが保証されるため、線形操作で新たな機能の追加や不要な機能の削除を行うこ
とがでさる。
[0168] ソフトウェアのライフサイクルモデルとして、ウォーターフォールモデル、ラピッドプロ トタイピングモデル、スパイラルモデルなどいろいろなモデルが提案されている力 本 実施の形態のソフトウェアライフサイクル管理装置 600は、 、ずれかのライフサイクル モデルに依存するものでもなぐまた、いずれかのライフサイクルモデルを前提として 適用されるものでもない。もっとも、本実施の形態のソフトウェアライフサイクル管理装 置 600を!、ずれかのライフサイクルモデルに適合させる形で用いることを妨げな!/、。 本実施の形態のソフトウェアライフサイクル管理装置 600の主要な利点は、インクリメ ンタリモジュラな抽象階層モデルを用いることにより、抽象階層間でソフトウェア部品 集合間の同値関係を不変量として継承して整合性を保証するとともに、ソフトウェア 部品集合の線形統合と線形操作を保証し、ソフトウェアの開発力 試験、保守に至る までのライフサイクルの管理に一貫性をもたせたことにある。
[0169] 以上、実施の形態を説明した。実施の形態は例示であり、さまざまな変形例が可能 であり、そうした変形例も本発明に含まれることは当業者に理解されるところである。 産業上の利用可能性
[0170] 本発明は、ソフトウェアライフサイクル管理の分野に適用することができる。