学位論文要旨



No 113166
著者(漢字) 中谷,多哉子
著者(英字)
著者(カナ) ナカタニ,タカコ
標題(和) オブジェクトの組織化と進化に関する研究
標題(洋)
報告番号 113166
報告番号 甲13166
学位授与日 1998.03.30
学位種別 課程博士
学位種類 博士(学術)
学位記番号 博総合第164号
研究科 総合文化研究科
専攻
論文審査委員 主査: 東京大学 教授 玉井,哲雄
 東京大学 教授 川合,慧
 東京大学 教授 丹羽,清
 東京大学 助教授 山口,和紀
 東京大学 助教授 山口,泰
内容要旨

 オブジェクト指向技術は1990年中期以降、急速に企業での導入が進められている.企業への導入が促進されたのは,オブジェクト指向自身が提供する新しいシステム開発の枠組み,分析/設計方法論,そして再利用部品の新しい形態が提案されたことによる.企業へのオブジェクト指向適用が促進されると,今後,少なからぬオブジェクト指向ソフトウェアがエンドユーザへ提供されるようになるであろう.ある種のソフトウェアシステムは製品提供後も利用者の要求変更に対応するための継続的な開発を避けることができない.また,ソフトウェアシステムが利用者要求変更に適合し続けるためには,漸進型開発形態が適しているとも言われている.漸進型開発形態は,オブジェクト指向でも自然な開発形態として導入されているが[2],最近のオブジェクト指向技術に関する研究は,いずれも新規システム開発のための提案であり,漸進的な開発では,その第一段階を支援対象としているにすぎない.したがって,初期開発後のシステム開発過程に着目した研究はもっと重視されるべきである.

 本論文では,オブジェクトが定義され,変更される過程に生物学のアナロジを適用し,オブジェクトの組織化過程と進化過程について議論する.

 システムが漸進的に開発されるとき,オブジェクト指向システム開発者は新しい利用者要求に対応するためにクラスを変更するだけでなく,次の開発へ向けて,クラスを拡張容易な構造にするといった設計変更も行う[1].このようなクラスの設計変更をクラスの側から観察すると,開発状況や利用者の要求変更といったクラスを取り巻く状況の変化に対応して,クラスがその構造や仕様を変更させているように見える.ここで生物学のアナロジをクラスの仕様変更へ適用すると,クラスは,利用者要求変更や開発者の設計意図の変更といった環境変化に適応するために進化すると言える.本研究では,漸進型開発に焦点を当て,クラスの仕様やクラス継承木,システムの進化を定量的に観測し,それらの

 1.進化過程

 2.進化パターン

 3.ソフトウェアアーキテクチャの評価手段としての進化モデルの有効性を示すことを試みた.

 研究は,オブジェクトの進化過程を定量的に表現する手段として進化メトリクスを定義して実際のシステム開発事例に適用し,システムの開発に沿って時系列で収集した後,オブジェクトの進化の特徴を分析した.定量的な分析では,あわせて定性的な分析や開発者へのインタビューも行い,開発者の設計意図と計測結果とを関連づけた.

 本研究のもうひとつの課題は,オブジェクトが組織を形成する過程に関する研究である.オブジェクトの進化を考慮した組織化は,どのように進めるのが好ましいのであろうか.ここで再び生物学のアナロジを用いて,進化に適したオブジェクトの組織化の過程を考える.生物は,過去の原始的な生物から現在に至るまでに経た進化の過程を再現しながら組織が形成されると言われている.オブジェクトが,システムの1要素として機能する組織を形成する際にも,生物のような組織化の過程を適用することができる.オブジェクトが進化する主な原動力は利用者要求であるから,オブジェクトを組織化する際にも,進化の過程を模倣して,利用者要求をひとつづつオブジェクトの組織に取り込ませながら,段階的に組織化を進めることが可能である.これは,利用者要求を個々に独立した視点で定め,それぞれの要求を満足するオブジェクトの組織を定義し,最終的に個々の組織を統合してオブジェクトの組織を完成させる手法として考えることができる.

 システムに将来要求される利用者の要求を完全に予知することは不可能であるが,多面的に検討した構造をオブジェクトに定義すれば,単一の視点からモデル化するオブジェクトよりも,新しい要求への適用範囲を広げることができる.適用範囲の広い組織は,オブジェクトの進化にも適した組織となるであろう.本論文では,多視点を用いて,従来の分析方法論を拡張することを試みる.

 オブジェクトの進化過程を利用者環境変化および技術的環境変化と関連づけて捉えて評価した結果,クラスの行数やメソッド数,メソッドの行数といった計測値の分布が,左に最頻値を持ち右に尾を引く形状を持ち,システム進化によらず変化しない性質を持っていることを明らかにできた.また,この分布には,例外的な大きな規模を持ち,他のオブジェクトに比べて早く進化するオブジェクトも存在する.このようなオブジェクトは,開発者が問題箇所として注目し,設計変更の対象として抽出していたオブジェクトと一致していた.以上の調査から,分布から特異な進化を示すオブジェクトを定量的に発見すれば,設計変更候補のオブジェクトを抽出できることが明らかとなった.

 クラス継承木の進化過程に関する調査では,クラス継承木には1メソッド当たりの行数の値を保持し続ける傾向を発見できた.図1(a)にその例を示す.図1(a)の横軸はクラスに定義されたメソッド数を表わし,縦軸はクラスの行数を表わす.散布図の点の散らばりから明らかなように,クラスのメソッド数と行数には正の強い創刊関係があり,ここで観測されるような直線の傾きは,クラス継承木ごとに異なっていることが統計的に検証できた.

図1オブジェクトの進化過程

 本論文では,クラスの1メソッド当たりの行数をC値(Characteristic Value)と呼び,クラス継承木のC値とは,継承木内の全クラスのC値の平均値と定義する.

 クラス継承木がC値を一定に保つという傾向は,たとえば,あるクラスが継承木に追加される際,そのクラスのC値が継承木のC値に近い値を持つように設計されるか,あるいは設計変更によって,クラス継承木のC値に近い値を持つようにクラスが進化する現象として観測される.図1(a)の矢印は,設計変更によってクラス継承木のC値に近い値を持つようにクラスが変更された軌跡を示している.本研究では,クラス継承木の進化的特徴を捉えるために,C値に関するクラス継承木の進化の仮説を立て,開発事例を用いて仮説の検証を行った.

 仮説を検証した結果,C値には次の3つの特徴を持つことがわかった.

 ・C値はクラス継承木に固有の値である.

 ・C値はシステムが成長しても安定しており,クラスは,自分が属するクラス継承木のC値を持つように進化する傾向がある.

 参考文献

 ・開発者に依存せずに決定される.

 漸進的な開発では,新たに要求される仕様をシステムに取込みながら,クラスやシステムの拡張性を損なわない開発技術が要求される.このような開発技術には,オブジェクトが予測したとおりの進化の過程を進んでいるかを評価する技術も含まれる.オブジェクトの進化過程を評価した結果,ソフトウェアアーキテクチャに基づいて分類したオブジェクトの種によって,その進化過程には違いがあることを発見できた.図1(b)にオブジェクトの種によって異なる進化過程を示す.この成果は,オブジェクトの進化過程を観測することによってソフトウェアアーキテクチャの妥当性評価を行えることを意味する.

 以上述べたように,オブジェクトの進化過程を実システム開発事例をもとに調査した結果,ある時点におけるオブジェクトの構造は,オブジェクトの進化の積み重ねによって得られることが明らかとなった.利用者環境の将来の変化を予測することは困難であるが,オブジェクトの組織化過程で,利用者環境から要求される振る舞いを段階的にオブジェクトの組織へ取り入れて,その後の進化に柔軟に対応できる多面的な構造を持たせることを目指して,組織化過程の研究を行った.本論文で提唱する組織化過程は,視点ごとに問題領域を絞り込んでオブジェクトモデル構築し,システム全体のオブジェクトモデルを構築するために順次統合する.統合時に発生する問題は,個々の視点で定義されたオブジェクト間に構造や振る舞いの不一致が起こる点にある.不一致を解消するために,オブジェクトの構造と振る舞いを形式的に定義したオブジェクト辞書を用いる.また,個々の視点で定義されたオブジェクトが対応するオブジェクトであることを発見するために,モデル化されたオブジェクトが指し示す現実世界の事物や事象を,述語を用いて定義する.組織化過程は分析工程にモデル化の視点を導入したことによって,分析作業の並列化が可能となり,モデル化対象の問題領域を絞り込むことが可能である点でも,従来の方法論より優れている.

 今後は,より期間の長い開発システムに対してオブジェクトの進化過程を調査し,オブジェクトの進化モデルを精緻化するとともに,オブジェクト進化に基づく設計方法論の確立を目指したい.また,組織化過程を導入したシステムについて,その後の漸進的開発の結果,オブジェクトの進化過程がどのように変化するかも研究する予定である.

参考文献[1]Bollinger,T.B.and Pfleeger,S.L.:Economics of Reuse:Issues and Alternatives,Information and Software Technology,Vol.32,No.10,pp.643-652(1990).[2]Henderson-Selleres,B.and Edwards,J.M.:The Object-Oriented System Life Cycle,Communications of ACM,Vol.33,No.9,pp.142-159(1990).
審査要旨

 提出論文は,「オブジェクトの組織化と進化に関する研究」と題し,漸進的に開発されるソフトウェアシステムにおける開発者の設計意図と,利用者要求変更や技術的環境に適応し続けるオブジェクトの進化とを,オブジェクトの進化プロセスという視点で関連づけた研究につき,詳しく論じたものである.

 オブジェクト指向技術は浸透しつつあり,オブジェクト指向に基づくソフトウェアの開発事例は増えている.しかしこれまでのオブジェクト指向技術は,新たなシステムをいかに構築するかに主眼が置かれ,既存のシステムを保守・発展させていったり,利用者との相互作用によりシステム機能を徐々に高めていくような開発過程に対する分析や技術の蓄積は不足していた.

 論文提出者は,そのような漸進的な開発過程をオブジェクトの組織化と進化のプロセスとして捉えている.その組織化・進化プロセスを実証的に分析するために,論文提出者は実際のオブジェクト指向型の開発プロジェクトを事例研究の対象として取り上げ,定量的な分析を主とし,定性的な分析をも加えて,進化の一般的なパターンや法則を捉え,進化モデルとして提案している.さらに,オブジェクトの進化過程に基づいた要求分析手法として,多様な利用者に対応する多視点によるモデル化とその統合手順を,オブジェクトの組織化過程と名付けて提案している.

 論文全体は,序論と6章から構成されている.序論では,本研究の背景として,1980年代中期以降のオブジェクト指向技術に関する主な研究成果を概観し,本研究の目的を提示している.1990年に入り,日本におけるオブジェクト指向技術の企業への導入が進められている.これはオブジェクト指向の新しいシステム開発の枠組み,分析/設計方法論,そして再利用部品の新しい形態が提案されるといった研究成果によるところが大きい.今後は,ソフトウェア開発へオブジェクト指向技術が適用されるに従って,少なからぬオブジェクト指向ソフトウェアがエンドユーザへ提供されることになるであろう.そのような将来を見据えて,論文提出者はこの研究を,ソフトウェアがエンドユーザの要求変化と共に発展する継続的な開発過程に着目し,オブジェクトの進化過程を定量的に捉えるものであると位置づけている.

 第1章は,まず用語としてオブジェクトの進化とオブジェクトを取り巻く環境を定義し,進化を定量化するための進化メトリクスを定めている.進化メトリクスは,システムレベル,クラスレベル,メソッドレベルの各レベルに応じたものが定義される.また,調査対象とした3システムの概要もこの章で紹介され,外部から観測されたそれぞれのシステムの進化過程の概観が示される.

 第2章では,システムレベルとクラスレベルで観測された結果に基づき,それぞれのレベルにおける進化過程が議論されている.まず,システムレベルで観測される計測値の頻度分布の形状と平均値などの統計量は基本的に変化しないという観測結果が示される.一方,頻度分布の中央値から大きく外れる特異な値を持つクラスは,設計上の何らかの問題点を持つ可能性が高いことも示される.

 第3章では,クラス継承木の進化的特徴として,1メソッド当たりの行数という計数値の持つ性質について議論が行われる.この値が,クラス継承木ごとに固有であること(固有性),開発者に依存しないこと(開発者非依存性),システムが進化しても変化しないこと(安定性)を仮説として提示し,統計的な手法を用いてその検証を行っている.固有性と安定性は,3システムのいずれでも検証され,開発者非依存性については1事例のみではあるが,統計的な有意性が示されたという結果が出されている.

 第4章では,3システムで共通に用いられている設計上のフレームワークに基づいてオブジェクトを種に分類し,それぞれの種に着目した進化過程について議論がなされている.オブジェクトの種によって進化の速さに違いが生じるという予想のもとに3システムの観測を行った結果,同じ種の中でも予想される進化過程に従うオブジェクトと,多少異なった動きをするものとが認められた.これらのオブジェクトの進化過程から,開発者には,オブジェクトの進化の速度を二極分化させることによって,要求変更による設計の変更を局所化させるという設計上の意志決定の傾向があることが明らかになったとしている.

 第5章では,オブジェクトの進化過程に基づいた要求分析手法を,オブジェクトの組織化過程として提案している.オブジェクトの進化過程には,時間軸によって変化する利用者環境に適応する進化と,利用者の多様化に適応する進化とが混在している.そこで,要求分析時のモデルに利用者の多様性を包含させ,後の漸進的な開発において時間軸に沿った環境変化への適応をしやすくする分析手順を考えることに意味がある.分析手法に関しては多くの研究成果が発表されているが,利用者の多様性をモデルに取り込むための手法はこれまで開発されていない.ここで提案されている手法では,利用者の多様性に対応して問題領域に多数の視点を定義し,個々の視点に基づいてオブジェクトのモデルを構築した上で,これらのモデルを統合するという手順をとる.分析過程に視点を導入することによって,分析効率を向上させるばかりでなく,モデルの精度をも高めることが期待できる.

 以上の結果,この論文ではオブジェクト指向システムの経年的な変化を進化プロセスとして捉えることの意義を明らかにし,またそのための方法論を提案したものと評価することができる.しかも実際のシステムを観測対象として実証的な考察を行うことにより,机上の分析や手法の提案と比べより根拠のある議論を展開している.その意味で,ソフトウェア工学分野に要求される実際的な価値も認められよう.

 よって本論文は博士(学術)の学位請求論文として合格と認められる.

UTokyo Repositoryリンク http://hdl.handle.net/2261/54610