オブジェクトの進化モデル構築に向けて - S

オブジェクト の進化モデル構築に向けて
中谷
多哉子
玉 井 哲 雄
オブジェクト指向システムは,保守性が高く利用者の要求を満足し続けることができると言われて
いる.しかし,開発者は,要求変更に対応するためにクラスの作り替えや新しいクラスへ置き換える
といった設計変更を繰り返しながら,特定のクラスを再利用可能なクラスにするために,クラスの分
割や統合,継承構造の変更といった設計変更を行っている.従来から,再利用可能なクラスについて,
その定性的な特徴については評価されてきたが,本稿では,システムに定義されたクラスを 種に分
類し,それぞれの種について,システムの成長に従って変化する様子を定量的に捉え,その再利用可
能性について議論することを試みる.
調査の結果は,開発者や管理者が特定のクラスの再利用可能性を判断するための情報として役立て
ることができるだろう.
はじめに
ソフトウェアは利用者の要求に基づいて開発され
ムの再利用には次のような種類がある.
システムを作り替える際に行われる,古いシス
テムに定義されていたクラスの再利用
るが,利用者の要求は,ソフトウェア導入の影響を
同一の問題領域を対象とするプ ロジェクト間で
受けて変化するという性質を持っている .そのた
行われるクラスの再利用
め,開発の初期に確定した要求だけを満たしたソフ
特定の問題領域に依存せずに行われるクラスの
トウェアは,利用者を満足させ続けることはできな
再利用
い.そこで,継続的に開発を進める漸進的開発が推
開発されたすべてのクラスが上記の再利用の対象
奨されるようになった .漸進的開発では,保守を
となるわけではなく,クラスによっては短期間で新
開発と区別する必要はなく,継続的な開発の一部と
しいクラスに置き換えられて破棄されるものもあ
捉える.
る.このような議論は,これまで定性的になされて
オブジェクト指向システムでも漸進的開発は一般
きた.我々は,特定のクラスが再利用可能か否かを
的に行われている .しかし,開発の過程では,利
判断するためには,再利用されるクラスと再利用さ
用者要求の変化だけでなく,その後の再利用性にも
れないクラスとで,変化の過程にどのような違いが
配慮しなければならない.オブジェクト指向システ
あるかを定量的に調査する必要があると考える.
東京大学大学院総合文化研究科広域科学専攻
調査では,継続的な設計の変化をクラスという個
体の進化と捉える.そして,システムに定義された
クラスの種類によってどのように進化の過程に差異
が生じるかを明らかにし,再利用可能なクラスの特
収集した計測が,いずれも小さな値に最頻値を持ち,
徴を定量的に示す.
右に尾を引く分布になることを明らかにした
.ま
本稿は次の構成になっている. で,定量的な観
た,個々のクラスについては,クラス階層の組み替
で
えなどの設計変更によって計測値の値が減少すると
測を行うためのメト リクスについて説明し,
システム内で果たす役割に基づいて分類したクラ
いう傾向も観測した
スの種と,クラスに変化を起こす要因について議論
で,クラスの種別ごとの進化過程を,事
する.
例システムで観測された結果を示しながら検討し,
では,クラスの種に基づいて,クラスの進化過
程がどのような段階を経て進むかをまとめる.
.
に着目してクラ
本稿ではクラスの複雑度
スの変化とクラスの再利用性との関係について議
論する.計測値をもとにクラスの変化率を求める
際,たとえば第
版から第 版へシステムが成長
するとき,クラスの複雑度の変化率
版のメソッド 数
観測の方法
は,第
と第 版のメソッド 数
を用いて,次の式で表す.
メト リクス
システムに定義されているクラスの変化を定量的
に計測するために,静的メトリクスと動的メトリク
スを適用する
クラスの種と変化の要因
.静的メトリクスは,
らのオブジェクト指向設計メトリクス(以降
クラスの分類
メ
システムは利用者の要求を満足するために変化
トリクスと略す)に基づいて定義する .ただし,
(
し,また将来の利用者要求に対応するために変化す
)にはメソッド 数を ,また,クラス階
る.これらのシステムの変化はクラスの変化へ還
クラスの複雑度を表す
層の深さを表す
(
)
には,ライブラリクラスから計測するクラスまでの
深さの値を用いる
.更に,
メトリクスの他の
元することができる.オブ ジェクト指向では,
を伴う多くのアプリケーションプログラムで
(
)アーキテクチャ に基づ
静的メトリクスとして,クラスの行数とクラス木の
くフレームワークが採用されている .このフレー
数を追加する.
ムワークが採用されている理由は,利用者の要求変
メトリクスのうちクラス間の結合度を表わす
更の
以上を占める と言われている利用者イン
)は動
タフェースの変更に対して,特定のクラスだけで対
的メトリクスを適用した計測値から求める.動的メ
処できる構造をアプリケーションプログラムに持た
トリクスは,プログラム実行時に収集したプロファ
せることができるためである.
イルデータから,あるインスタンスが他のインスタ
クの
ンスに送ったメッセージの種類と回数をクラスごと
ンタフェースの変更要求をこれらのクラスの変更に
に求めた集計結果に対して次のように定義する.
よって対処する役割を持っている.
(
各クラスが受信したメッセージ名とメッセージ
クラスと
フレームワー
クラスは,利用者イ
最近のフレームワークでは,
と
の送信元のクラス名の組みに対する受信回数
を つのクラスとして定義する場合が多いが,特定
送信したメッセージ名と受信先のクラス名の組
の問題領域に依存せずに再利用できる部品として
みに対する送信回数
実績がある.
クラスは,問題領域のクラスと
動的メトリクスを適用して計測した値から,クラス
して定義されるものであり,このクラスの中には同
間の結合度
一の問題領域を対象とするプロジェクト間で再利用
の他に,計測対象のクラスの受
動的,あるいは能動的な役割の特徴を求めることが
されるクラスも含まれる.そこで,以上の
できる.
および
計測結果のまとめ方
過去の我々の研究では,静的メトリクスを用いて
として分類されるクラス
について,システムの成長に伴う変化の様子を調査
し,再利用可能なクラスと再利用の対象とはならな
いクラスとの変化の差を求めることにした.
調査に当たり,システムに定義されているクラ
スを,すでに再利用実績のある汎用クラス群と,
クラスおよび
クラスを含
スを適用して定量化した.調査では,必要に応じて
開発者へのインタビューも行っている.
観測対象の概要
調査対象として選択した システムについて,開
むその他のクラスに分類し,それぞれのクラス群を
発概要を以下に示す.システムの最終的な規模は,
クラスの種として定義する.以下に進化の調査を
システムに定義されていたクラスの数,メソッド の
行ったクラスの種を示す.
数,行数の計測値と,それぞれの値に対する第 版
汎用領域種:汎用クラスに相当するクラス群
境界領域種:
と
に該当するク
ラス群
問題領域種:
に該当するクラスおよび上
システム
版数
計測期間: か月
開発者の人数:
開発言語:
開発プロセス:漸進型
記以外のクラス群
クラスの変更要因
クラスの変更要因として,利用者の要求変更と,
再利用性や拡張性,可読性の向上を目的とした設計
変更を考えることができる.これらの要因を利用要
因,開発要因と呼ぶことにする.
利用要因
利用要因には,利用者の要求変更の他に,システ
ムを取り巻く他のシステムのインタフェースの変
更などを含む.しかし,ハード ウェア構成の変更や
言語の変更は含まないことにする.ハード ウェア構
成や言語の変更がシステムに及ぼす影響は大きく,
システムの進化や世代交代
との差を倍率で表した.
として論じる規模に
なるためである.
開発要因
利用要因でクラスを変更する際,開発者は,再利
用性や拡張性を意識してクラスを拡張/縮小した
り,分割/統合したり,継承構造を変更したり,新
しいクラスへ置き換えたりする.ひとつの要求変更
に対して,これらの設計案からどの設計案を選択
するかは開発者の意思で決まる.また,開発者は,
システム概要:シミュレーションを構成するためのエディタ
システム規模:第 版のクラス数,メソッド 数,行数はそれ
ぞれ
倍,
,
,
で,第
倍であった.
版のそれらの
倍,
システム
版数:
計測期間: か月
開発者の人数:
開発言語:
開発プロセス:漸進型
システム概要:入金消し込みシステム
システム規模:システム規模:第 版のクラス数,メソッ
ド 数,行数はそれぞれ ,
れらの
倍,
倍,
,
で,第
倍であった.
版のそ
システム
版数
計測期間: か月
開発者の人数:
開発言語:
開発プロセス:ウォータフォール型
システム概要:証券管理システム
システム規模:第
版のクラス数,メソッド 数,行数はそ
れぞれ
,
,
で,第
倍,
倍であった.
システム
と
版のそれらの
倍,
は,毎月顧客にシステムを提供
システム開発を進めるに従って問題領域の理解を深
し,その後に要求変更を受け付けて漸進的に開発を
め,その問題領域に固有の要求変更の特徴を認識
進めた.システム
し,それが次の設計案の選択を左右することもあ
売することを目標に開発されていたシステムであ
る.したがって,開発要因には,開発者が持ってい
り,計測期間中に利用者の要求変更を受け付けるこ
る設計に対する意図の他に,開発者のシステムに対
とはなく, 週間ごとに収集した開発途中の成果物
する理解の深さを含む.
を計測対象とした.
進化の観測
つのシステムについて,システムの成長に従っ
て変化するクラスの様子を,先に説明したメトリク
はソフトウェア製品として販
計測結果
システム
, に定義されていた各クラスが,シ
ステムの成長期間に増減させた複雑度
の変
化率を調査した結果,クラスによって変化の大きさ
や変化する時期に差があることがわかった.
表
クラス群別の変化率
システム
中央値
標準偏差
最小
最大
標本数
システム
表
無変化のクラスの割合
システム
の分布
境界領域種
問題領域種
再利用可能
クラス数
境界領域種
システム
問題領域種
再利用可能
クラス数
汎用領域種
汎用領域種
クラス数
汎用領域種
クラス数
問題領域種
中央値
標準偏差
最小
最大
標本数
システム
システム
境界領域種
境界領域種
問題領域種
汎用領域種
中央値
最小
最大
標本数
システム
中央値
標準偏差
最小
最大
標本数
システム
境界領域種
問題領域種
汎用領域種
問題領域種
境界領域種
問題領域種
汎用領域種
境界領域種
問題領域種
汎用領域種
汎用領域種
中央値
標準偏差
最小
最大
標本数
いのに対して,問題領域種では
に達するクラ
スで変化が観測されていない.このことから,シス
テム
では,境界領域種の方が他の種に比べてク
ラスによる変化率の値に差があり,全体として不安
ここで,システム
および
の,境界領域種,
問題領域種,汎用領域種に属するクラスに対して,
変化率の分布を求めた結果を表 に示す.また,表
には, システムで観測を行った各期間において,
定な期間が継続していることがわかる.
そこで,このような種による差異がどのような要
因によって発生するかを調べた.インタビュー調査
から,システム開発終盤の
から
にかけ
変化しなかったクラスの割合を示した.ただし,シ
て将来の変更のための設計変更を行わなかったこと
ステム
の境界領域種は利用者インタ
が確認できたので,これらの差異が開発要因のよっ
の境
て発生したと言うことはできない.したがって,境
界領域種はデータベースとのインタフェースを担う
界領域種が不安定な期間を継続させたのは,利用要
クラス群である.
因の影響と考えてよいだろう.クラスが変化し続け
および
フェースを担うクラス群であり,システム
境界領域種の進化過程
ている場合,クラスの仕様も揃っておらず,再利用
表 では,境界領域種は他の種に比べて計測値に
散らばりが大きく,また表 によると,
間で境界領域種の
後の変更が多発する可能性が高いという点で,汎用
の期
性は低いと思われる.したがって,ここで観測され
のクラスが変化していな
た境界領域種の不安定さは,再利用に不適切なクラ
スの状態を表わしていると考えられる.
システム
り替えられるときも再利用されるか否かは不明であ
では,境界領域種は最終版でも クラ
スしかない.実際の利用者インタフェースは
の
る.しかし,以上のクラスの進化過程から,システ
や
ムのフレームワークが
と呼ばれる再利用環境
といった開発
の初期段階で確定することを確認できた.そして,
で定義されているから,システム固有のクラスを定
フレームワークが確定した後,管理制御クラスが安
義する必要はなかったようである.システム
定段階に達し,更にその他の問題領域種が安定期へ
で
も同様の開発方針が選択され,利用者インタフェー
向かう経過を観測できた.
スを担う境界領域種は定義されていなかった.
再利用可能な問題領域種の進化過程
システム
問題領域種の進化過程
の再利用可能な問題領域種は, クラ
の問題領域種は,管理,制御の
スのうち
クラスが
から
へ至る過程で
役割を持つオブジェクトと,それ以外の静的なデー
複雑度が
増えたのを除いて,
まで全く変化
タを保持するオブ ジェクト とに分類することがで
がない.この傾向は汎用領域種の特徴と似ている.
きる.管理制御クラスとして,動的メト リクスを
システム
用いた計測結果から
つ以上のクラスと双方向の
や定形的な計算を行うクラスである.このようなク
メッセージ送受信を行っているクラスを抽出し,開
ラスは利用要因を受けることはないから,開発当初
発者にも確認を依頼して分類を確定した.そして,
から汎用的な性質を持っていたと考えられる.
システム
システム
と
と
の問題領域種に対してこの分類を
の再利用可能な問題領域種は,物理量
システム
の再利用可能な問題領域種には,開
適用し,それぞれの変化率の分布を求めて表 に示
発当初,再利用を意識しないクラスとして開発さ
した.表 では,システム
の管理制御クラ
れ,後に再利用可能なクラスとして登録されたもの
スが,他のクラスよりも先に安定する傾向を共通に
も含まれている.表 で見られるように,後で説明
観察できる.
する汎用領域種に比べて,再利用可能な問題領域種
システム
と
の管理制御クラスが行っていたメッ
のクラス群は
から
へ至る過程の変化率
から
へ至る過程で
セージ送受信に動的メトリクスを適用したところ,
が大きい.しかし,
送信したメッセージ名と受信先のクラス名の組みか
は,汎用領域種と同様に変化率は
ら,ここには多相メッセージが用いられていること
のように変化率が変化する原因として, つの要因
がわかった.多相メッセージのインタフェースを確
を考えることができる.まず,再利用性が意識され
定すれば,システムが成長するに従ってメッセージ
ない時期には利用要因による影響を受け,そして,
の送信先が多様化してもメッセージを送出する管理
再利用性を高める際,利用要因の影響下から切り離
制御クラスを変更する必要はない.このような設
すという開発要因の影響を受ける.
計は,管理制御クラスを利用要因から切り離すた
になった.こ
汎用領域種の進化過程
めに有効な手段である.これはテンプレートメソッ
汎用領域種は,その起源によって 種類に分ける
ド と呼ばれるデザインパターンを用いたフレーム
ことができる.汎用領域種 は,多くの評価を受け
ワークに該当する.
たとは言えない他の開発者が別のシステム開発で
システム
の管理制御クラスは,利用者インタ
作ったクラス群で,汎用領域種 は,システムの開
フェースの部品と問題領域のオブジェクトやデータ
発者が所属する部署で開発され,すでにいくつか
ベースとを接続し,利用者の操作によってオブジェ
のプロジェクトで利用された実績を持つクラス群で
クト のデ ータ管理を行うクラスである.ここでも
ある.
制御管理クラスはそれ以外のクラスと共にアプ リ
ケーション固有のフレームワークを構成しており,
このフレームワークの構造は
の開発時から変
化していない.
これらのフレームワークが,今後,システムが作
汎用領域種を 種類に分類した結果,表 に示す
ように,汎用領域種 および汎用領域種 は,安定
した傾向を示している.これらの安定傾向は,利
用要因の影響を受けなかったシステム
における
(開発開始 か月後)以降のクラスの傾向と
表
模の大きい変化が起こることもある.この点に関し
問題領域種の変化率の分布
ては,利用実績と汎用領域種の再利用時の変化につ
システム
中央値
標準偏差
最小
最大
標本数
システム
:管理制御クラス
いて,更に調査を行う必要がある.
汎用領域種 の進化過程
表
システム
:管理制御クラス以外
中央値
標準偏差
最小
最大
標本数
システム
:管理制御クラス
再利用可能な問題領域種
システム
汎用領域種
システム
汎用領域種
中央値
最小
最大
標本数
中央値
最小
最大
標本数
:管理制御クラス以外
中央値
標準偏差
最小
最大
標本数
システム
同様である.この比較データから,汎用領域種が安
持っているためと結論できる.
の再利用可能な問題領域種
および汎用領域種 , ,システム
の再利用可能
再利用可能な問題領域種
中央値
最小
最大
標本数
システム
定しているのは,利用要因の影響を受けない性質を
表 に,システム
の分布
平均
最小
最大
標本数
中央値
標準偏差
最小
最大
標本数
システム
再利用可能な種の変化率
汎用領域種( )
中央値
最小
最大
標本数
な問題領域種,汎用領域種 の変化率の分布を示し
た.それぞれの起源による汎用領域種の変化の過程
システム
の汎用領域種 はシステム
でも再
を比較し,汎用領域種の特徴を詳細に調査した結果
利用されていた.いずれの例も導入当初に小さな
について,次に議論しよう.
変化がある.表 で観察できるように,システム
のクラスに起きていた変化は増加傾向を持っている
汎用領域種 の進化過程
システム
の汎用領域種 は
至る期間で使われ,
から
へ
では削除された.開発者
が,システム
のクラスの変化は減少傾向を持っ
ている.したがって,両者は異なる変更である.シ
へインタビューしたところ,再利用したクラスの
ステム ,
仕様が大きすぎたため,必要最小限の機能をメソッ
これらの変化は,休業日の設定や営業日の判定方法
ド として既存のクラスに組み込んでいたことがわ
などの例外処理の追加や不具合の解消によるもの
かった.
であった.以上の調査結果から,導入時の変化は,
これは,汎用領域種でも開発要因へ対処する必要
があり,システムの中で破棄される可能性もあると
いう例を表わしている.また,再利用実績が少ない
汎用領域種は,新しいシステムに導入された際に規
の開発者にインタビューしたところ,
再利用するシステムの利用要因および開発要因へ
対処するための変化と考えられる.
議
汎用領域種の再利用
論
汎用領域種は,多くのクラスからメッセージを受
境界領域種の再利用
けるので,設計変更,特にメッセージインタフェー
境界領域種,特に利用者とのインタフェースを担
スの変更は他のクラスへ与える影響が大きい.その
うクラスは,利用者の要求変更の影響を直接受けて
ため,システム
開発期間中に変化が継続し,クラスによってその変
に完成され,それ以降変化しなかったように,汎用
化の差も大きいことを観測した.
領域種は開発の初期に仕様を決定し,以降の変更を
この種のクラスが再利用性を高める例はまだ観測
できていないが,システム
やシステム
の汎用領域種が
版ですで
避ける設計でなければならない.
で利用
計測結果でも,汎用領域種が新しいソフトウェア
者インタフェースが再利用部品を組み合わせるこ
へ移植されたときは,そのソフトウェア固有の利用
とによって構築されていたことを考えると,利用要
要因や開発要因に対処するために多少変化するこ
因に対処して変化が継続して起こる境界領域種と,
ともあるが,基本的に各要因に起因する変化の影響
利用要因の影響下にない境界領域種が存在するこ
を受けない性質を持っていることが確認できた.
とになる.
オブ ジェクト の進化モデル構築に向けて
アプリケーションプログラムが開発されるときに
クラスというオブジェクトの進化過程の調査結果
は,アプリケーションフレームワークが使用される
をもとに,オブジェクトの進化モデルの構築を試み
が,システム
た.オブジェクトの進化の特徴として次のことが明
で採用した
のアプ
リケーションフレームワークの構造自体は安定して
おり,開発要因によって変化するものではなかった.
問題領域種の再利用
らかになった.
・境界領域種は利用要因の影響を強く受けて変化
を繰り返すが,アプ リケーションから独立した再利
理論的には,問題領域種を利用要因へ対処し続け
用可能な境界領域種も存在する.今回の調査では
る部分と,利用要因の影響を受けない部分とに切り
両者を繋ぐ 進化過程を観測することはできなかった
離すことができれば,後者を再利用可能なクラスと
が,両者を繋ぐ 進化の経路は必ず存在すると思わ
して進化させることができるはずである.さらに再
れる.
利用可能なクラスは,問題領域に特殊化したクラ
・問題領域種は境界領域種よりも小さな変化を繰
スと問題領域に依存しないクラスとに分類できる.
り返す傾向を持ち,問題領域から独立したり問題領
いずれもクラスも,システム
域に特殊化して再利用性を高めるとクラスは安定
に見られた再利用
可能な問題領域種で観測された物理量を保持する
クラスといった要求変更が起こりえない場合を除い
て,漸進的開発を繰り返す過程で徐々に進行する.
システム
の問題領域種が
から
にか
けて安定した理由が利用要因の影響下から脱した
ことを意味しているとは一概に結論できないが,少
なくとも,このような定量的な計測で不安定な状
し,定量的な変化が観測されなくなる.
・アプリケーションに依存した問題領域種の中に
はド メインフレームワークが形成される.フレーム
ワークは,メッセージインタフェースの安定からク
ラスの安定といった進化の過程を経て成長する.
・特定のアプ リケーションに依存しない
が提供しているフレームワークなどのアプ
態を表わすクラスは再利用には向かない.しかし,
リケーションフレームワークは,問題領域に依存
のように利用要因の変動がない場合は,
せず,利用要因や開発要因の影響を受けることはな
システム
クラスが安定していたもどのクラスが再利用可能
かを客観的に判断することはできない.
したがって,問題領域種を再利用する際には,そ
のクラスの仕様だけでなく,現在どの程度,変化の
要因の影響下から切り離されているかといった進化
の過程を定量的に参照する必要がある.
く,変化しない.
・汎用領域種はすべての影響を受けにくい位置に
あり,再利用時に多少変化することはあっても,大
きな変化を起こさない.
以上の各種の進化過程は,利用要因の影響を受け
る平面と開発要因の影響を受ける平面で囲まれた,
変化率
大
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAA
AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA
開発要因
利用要因
アプリケーション
から独立?
境界領域種
問題領域種
アプリケーション
プログラム依存部分
問題領域に
特殊化
ドメインフレームワーク
問題領域からの独立
再利用可能な
クラス
利用要因の
影響度
低い
その問題領域で再利
用可能な問題領域種
再利用可能な境界領域種
低い
問題領域との依存性
アプリケーション
フレームワーク
(Workbench,
MVCなど)
図
汎用領域種
問題領域非依存のクラス
オブ ジェクトの進化モデル
問題領域との依存性を表わす軸,利用要因の影響度
の大きさを表わす軸,変化率の大きさを表わす軸を
持つ図に表現することができる.図 にオブジェク
トの進化過程を示した.
ま
と
め
本稿では,クラスを つの種に分類し,それらの
進化過程について開発事例を用いて観測した.その
結果,オブジェクト指向システムにおいて,アプリ
ケーションのクラスが再利用可能なクラスへ進化す
るには,様々な影響を受けて変化を繰り返すことが
明らかとなった.今後開発されるクラスには,本稿
で示したような定量的な変化の経歴を添付するこ
とによって,再利用を円滑に進めることができるよ
うになると期待する.
謝
辞
本研究は,通商産業省ならびに情報処理振興事業協会
の推進する独創的情報技術育成事業の一環として行われ
たものである.研究の機会を与えてくださった同事業関
係者の皆様に感謝いたします.また,進化の計測に際し
て,ご協力いただきました(株)
の友枝敦氏,松田
晴美氏,近藤博次氏に感謝いたします.
参 考 文 献
中谷多哉子 玉井哲雄 友枝敦 酒匂寛 オブ ジェ
クト指向によるシステムの進化を表すメトリクスの
検討 ソフトウェアシンポジウム論文集
中谷多哉子 玉井哲雄 友枝敦 酒匂寛 オブジェク
ト指向システムの進化プロセスの定量的分析 日本
回大会論文集
ソフトウェア科学会第
友枝敦 松田晴美 玉井哲雄 中谷多哉子 オブジェ
独創
クトの組織化と進化に関する研究報告書
的先進的情報技術に係わる研究 情報処理振興事業
協会