博 士 ( 工 学 ) 持 田 泰 昭
学 位 論 文 題 名
ソフトウェアシステム設計構造の 位相的解析方法に関する研究
学位論文内容の要旨
今日 ,イ ンタ ーネ `ソ トの 普 及に よりIT(Information Technology)革命やeビジ ネ ス な ど と ぃ う よ う に 情 報 シ ス テ ム を 取 り 巻 く 環 境 の 変 化 は 著 し ぃ .こ の変 化に タ イ ム り に 適 応 す る よ う に 情 報 シ ス テ ム を 進 化 さ せ る べ く 再 構 築 す る機 会は 増加 の 一 途 を た ど っ て お り , 今 後 と も 情 報 シ ス テ ム の ラ イ フ サ イ ク ル は より 一層 短縮 化 さ れ る 傾 向 に あ る . 外 部 環 境 の 変 化 な ど に 合 わ せ て 既 存 の ソ フ ト ウェ アシ ステ ム を 再 生 す る ため の― ー連 のプ ロセ スの こと をソ フト ウェ ア・ リエ ン ジニ アリ ング と い う , ま た , こ れ は ソ フ ト ウ ェ ア の 「 適 応 保 守 」 で あ り , 情 報 シ ステ ムの 再構 築 作 業 は 保 守 に 位 置 づ け ら れ る , こ の よ う な 保 守 で は , 新 規 開 発 を 前提 とし た従 来 的 開 発 プ ロ セ ス に 加 え て , @ 既 存 シ ス テ ム 仕 様 や 構 造 の 解 析 ・ 理 解, ◎ソ フト ウ ェ ア 仕 様 や ソ ー ス コ ー ド な ど の 修 正 や 変 更 を 検 証 す る た め の 変 更 確認 テス ト,
と い う ニ つ の プ ロ セ ス を 追 加 す る 必 要 が あ る . 本 論 文 で は , 特 に こ れら ニつ の重 要 な 追 加 プ ロ セ ス に 着 目 す る と と も に , 効 率 的 な ソ フ 卜 ウ ェ ア シ ス テム 増改 築方 法 の 確 立 を 目 的 と し て 具 体 的 に は 次 の 方 法 を 主 題 と し て 論 じ る , ・ ソフ 卜ウ ェア シス テム 設 計構 造の 骨格 理解 方法
・ 変更 確認 テス ト範 囲の 形 式的 抽出 方法
・ オ ブ ジ ェ ク ト 指 向 モ デ リ ン グ に お け る ク ラ ス 図 の 分 割 方 法 こ れ ら の 背 景 に は , 次 に 述 べ る こ と が あ る . 従 来 , ソ フ ト ウ ェ ア 構造 理解 方法 に 関 す る 議 論 に は , ソ ー ス コ ー ド の 逐 次 的 解 析 を 基 に ソ フ ト ウ ェ ア シス テム の局 所 的 構 造 や イ ン プ リ メ ン ト 構 造 の 解 析 を 目 的 と し て い る も の が 非 常 に多 い. しか し , ソ フ ト ウ ェ ア シ ス テ ム 全 体 の 設 計 構 造 や そ の 骨 格 を 理 解 す る た めの 方法 に関 す る も の は 少 な ぃ . こ れ を 理 解 し な ぃ 限 り , 構 造 的 整 合 性 を 考 慮 し た効 率的 なソ フ ト ウ ェ ア 再 利 用 も 実 現 で き な ぃ . ま た , ソ フ 卜 ウ ェ ア の 部 分 的 変 更が 構造 的に シ ス テ ム 全 体 に 及 ぼ す 影 響 範 囲 を 網 羅 す る よ う な 変 更 確 認 テ ス ト を 実施 しな けれ ば シ ス テ ム 品 質 を 保 証 で き な ぃ . 他 方 , オ ブ ジ ェ ク ト 指 向 技 術 の 浸 透に よっ て,
今 後 は オ ブ ジ ェ ク ト 指 向 に よ っ て 設 計 ・ 開 発 し た ソ フ ト ウ ェ ア が 保 守 の 対 象 と な って くる .
上記の方法では,モジュールを構成単位とするソフ卜ウェアシステム設計構造 をグラフで表現したうえで,グラフ理論を応用した従来的な1 次元的解析のみな らず,グラフを平面に埋め込まれた2 次元的図形と見なしてトポ口ジー的にグラ フ構造を解析するというアプ口ーチをとる.本論文では,これを「位相的解析」
と呼ぷ,これは,保守によるソフトウェアシステム再構成を支援するための形式 的解析方法である.その効果としては,ソフトウェア保守プロセスにおぃてコス ト比率が大きぃソフトウェア理解コストと変更確認テストコストの低減を期待で きる.さらには,大規模システムの保守コストはライフサイクル全コストの50 % 以上を占めている場合が多く,保守コスト削減はライフサイクル全体コスト削減 にも大き〈寄与する.また,変更確認テストもれ防止により,事後対処による手 戻ルコスト 削減を図るとともに変更後システムの信頼性も確保可能となる.
本論文の各章の要旨は以下のとおりである.
第1 章の序論では,ソフトウェアシステム再構築の背景と課題について述べる.
第
2章では,有向グラフと平面グラフに関する定義について述べる.特に有向 グラフについては,従来の連結の型(強連結,半強連結,準強連結,弱連結)に 加えて,新たな連結の型として輪半強連結,輪弱連結を定義できることと共に,
これら新旧の連結の型には連結の強さに関して順序付け可能なことを明らかにす る.この順序付けは,ソフトウェアシステム全体構造の解析におぃて構成要素間 の 連 結 性 が 強 い 範 囲 を 形 式 的 に < く り だ す た め の 効 果 的 基 準 と な る.
第
3章では,ソフトウェア・リエンジニアリングに向けたシステム再構造化の ためのーつの方法について述べる.そこでは,ソフトウェアシステム設計構造を 有向グラフで表現したうえで有向グラフの連結の強さ(輪弱連結)とブロ・ソク分 割を応用し,有向グラフに対して擬ブ口ック分割を定義する.この分割によって,
ソ フ ト ウ ェ ア シ ス テ ム 設 計 構 造 の 骨 格 を 抽 出 す る こ と が 可 能 と な る.
第
4章では,前章と同様にソフトウェアシステム設計構造を有向グラフで表現 する.その上で,有向グラフの連結の強さという観点から従来の変更テスト範囲 抽出基準を明らかにするとともに,連結の強さの順序付けを基準として従来テス ト範囲を拡張できることを示す.この拡張によって,変更確認テストもれを未然 に防止することができる.
第
5章では,まずはソフトウェアシステム設計構造を平面グラフで表現する,
次に,平面グラフの点の絡み閉歩道を応用することにより境界近傍を定義するこ とによって,変更確認テストにおける回帰統合テスト範囲を平面グラフ上で抽出 する方法を述べる,この方法により,従来は多分に当て推量的であった回帰統合 テスト範囲選択基準を明確化できるとともに,範囲抽出の半自動化も可能となる,
第6 章では,オブジェクト指向モデリングにおぃてシステム設計構造を表現す るための中心的な図であるクラス図を平面グラフで表現する.次に,平面グラフ を2 次元的図形と見なすとともに,同じ絡み閉歩道をもつ点すべてを同一視する
とぃう基準のもとで平面グラフの点を分類し,平面グラフ全体を分割するための
‑ 183―
位相 的分割と呼ぷ方法を述べる.この方法では,大規模ソフトウェアシステムの 構成管理を容易化するために,その全体をバ`ソケ―ジとぃう単位に分割できる.
最後に,第7章では結論と今後の課題について述べる.
‑ 184―
学位論文審査の要旨
学 位 論 文 題 名
ソフトウェアシステム設計構造の 位相的解析方法に関する研究
今日の情報システム開発は、外部環境の変化に適応するように既存システムを進化させ るための適応保守が多い。特に、ソフトウェアシステムを対象とした適応保守の一連のプ ロセス(工程作業全体)をソフトウェア・リエンジニアリングといい,そこでは新規開発 を前提とした従来的開発プロセスに加えて、既存システム仕様や構造を解析し理解するた めのプロセス、および、ソフトウェア仕様やソースコードなどの修正や変更を検証するた めの変更確認テストのプロセスが必要になる。現状のソフトウェア保守では、これらニつ のプロセスのコスト比率が高いものの、これらを効率化するための方法は各々のシステム や経験に依存したものが多く、必ずしも標準的で共通的な方法が確立されているとは言え なぃ。また、今後はオブジェクト指向によって設計・開発したソフトウェアが保守の対象 となってくることも予想され、効率的なソフ卜ウェアシステム増改築方法の確立が急務と なっている。
本論文は、このような背景から、ソフトウェア保守効率化と保守後システムの信頼性確 保を目的に、ソフ卜ウェアシステム設計構造の骨格理解方法および変更確認テスト範囲の 形式的抽出方法、オブジェクト指向モデリングにおけるクラス図の分割方法について論じ ている。ここでは、ソースコード一行単位ではなく、モジュールや関数などの単位を構成 要素とするソフトウェアシステム全体の設計構造をグラフで表現した上で、グラフ理論を 応用した従来的な一次元的解析のみならず、グラフを平面に埋め込んだ二次元的図形と見 なして、位相的にグラフ構造を解析する新しい方法を取っている。これを「位相的解析方 法」と名づけ、この方法により、現状で はライフサイクル全コス卜の50%以上を占める と い う 保 守 コ ス ト の 低 減 が 期 待 で き る こ と を 明 ら か に し て い る 。 以下に本論文の構成を示す。
第1章 で は 、 ソ フ ト ウ ェ ア シ ス テ ム 再 構 築 の 背 景 と 課 題 に つ い て 述べ てい る。
第2章では 、ソフトウェアシステム設計構造解析の準備として、有向グラフの連結性に ついて、従来の強連結、半強連結、準強連結、弱連結に加えて、新たに輪半強連結および 輪弱連結を定義するとともに、これら新旧の連結性には強さの順序付けが可能なことを明 らかにしている。
第3章では 、リエンジニアリングによるソフトウェアシステム再構造化のーつの方法と して、ソフトウェアシステム設計構造を有向グラフで表現した上で、有向グラフの連結の
―185―
勝 惇
明 次
政
香
保
達
腰
内
新 伊
宮 栃
授
授
授
授
教
教
教
教
査
査
査
査
主
副
副
副
強さ(輪弱連結)とブロック分割を応用することによって、有向グラフに対して擬ブロツ ク分割を定義している。また、この分割でソフトウェアシステム設計構造の骨格構造が抽 出可能であることを適用例により確認している。
第4章では、有 向グラフにおける連結の強さという観点から、従来の変更テスト範囲抽 出基準を明らかにしている。それとともに、変更確認テスト漏れを未然に防止するために、
連結の強さの順序付けを基準とすることにより、従来テスト範囲を形式的に拡張可能な方 法を示している。
第5章では、ソ フトウェアシステム設計構造を平面グラフで表現し、平面グラフの点の 絡み閉歩道を応用するとともに、境界近傍を定義することによって、変更確認テス卜にお ける回帰統合テスト範囲を平面グラフ上で抽出する方法を示している。これにより、従来 は当て推量的であった回帰統合テスト範囲抽出基準を明確化している。また、この方法に より回帰統合テス卜範囲抽出の半自動化が可能になることを適用例により実証している。
第6章では、オ ブジェクト指向モデリングにおいて、システム設計構造を表現するため の中心的な図であるクラス図を平面グラフで表現し、平面グラフを二次元的図形と見なす とともに、同じ絡み閉歩道を持つ点すべてを同一視するという基準で平面グラフの点を分 類し、平面グラフ全体を分割するための位相的分割と呼ぶ方法を示している。また、この 方法を実際のクラス図に適用することにより、クラスをパッケージという単位に統合可能 であることを確認している。
第7章では、本研究で得た成果の総括を行っている。
これを要するに、著者は、保守効率化のために有効なソフトウェア・リエンジニアリン グ技法として、グラフ理論のみならず位相数学を応用したソフトウェアシステム設計構造 の数理的解析方法を提案し、実例による検証を行ったものであり,数理情報工学ならびに ソフトウェア工学の分野に寄与するところ大なるものがある。よって著者は、北海道大学 博士(工学)の学位を授与される資格あるものと認める。
‑ 186ー