日本ソフトウェア科学会第 40 回大会 (2023 年度) 講演論文集

段階的再構築における依存関係分析を用いた
費用対効果の試算
横井 一輝

崔 恩瀞

吉田 則裕

岡田 譲二

肥後 芳樹

数十年稼働してきたソフトウェアシステムを刷新する，モダナイゼーションの需要は大きい．モダナイゼーションの失敗リスクを低減する戦略として，システムの一部を切り出す段階的再構築が提案されている．しかし段階的再構築
では，旧システムと新システムを組み合わさることによる複雑性が生じるため，再構築コストが増大する傾向がある．さらに，企業におけるモダナイゼーションでは，事前に再構築の効果を顧客に説明する必要があるため，計画段階で段階的再構築の費用対効果を見積もることが重要である．そこで，本稿ではシステムの依存関係分析を通じて段階的再構築における費用対効果を事前に試算する手法を提案する．提案手法は，システムの規模と依存関係の情報を考慮し，費用として再構築に必要な工数を，効果として削減可能な保守開発工数を試算する．評価実験では，過去に段階的再構築を実施した事例に提案手法を適用し，実際の工数と比較した．

で，旧システムと新システムが組み合わさることに

1 はじめによる複雑性が生じるため，再構築コストが増大する

数十年稼働してきたソフトウェアシステムを刷新傾向がある．さらに，企業におけるモダナイゼーショ

し，ビジネス上の変化への迅速な対応や保守コスト

ンでは，事前に再構築の効果を顧客に説明する必要がの削減を目的とするモダナイゼーションの需要は大あるため，計画段階で段階的再構築の費用対効果を見きい．対象となるシステムは，ビジネス上重要である

積もることが重要である．

場合が多く，失敗が許されない場合が多い．モダナイ

しかし，段階的再構築の費用対効果を計画段階で見ゼーションの失敗リスクを低減する戦略として，シス積もることは困難である．なぜなら，開発前の計画段テムの一部を切り出す段階的再構築が提案されてい階では設計書がまだ存在しないため，開発に必要な費る [2]．段階的再構築では，徐々に旧システムを新シ用や得られる効果を正確に把握できないためである．

ステムに置き換えることで，移行失敗のリスクを抑え

また，段階的再構築の困難さを早期に定量的に把握すながらモダナイゼーションを完了できる．

ることが難しく，再構築コストが計画段階よりも大き

段階的再構築は移行失敗のリスクを低減する一方

く超過してしまう．著者らが所属する企業における再構築プロジェクトにおいても同様の問題により，計画∗

Estimating Cost-Eﬀectiveness Using Dependency
Analysis in Incremental Modernization
This is an unrefereed paper. Copyrights belong to
the Authors.
Kazuki Yokoi, 株式会社 NTT データグループ, NTT
DATA Group Corporation.
Eunjong Choi, 京都工芸繊維大学, Kyoto Institute ofTechnology.
Norihiro Yoshida, 立命館大学, Ritsumeikan University.
Jouji Okada, 株 式 会 社 NTT デ ー タ グ ル ー プ, NTT
DATA Group Corporation.
Yoshiki Higo, 大阪大学, Osaka University.

段階より再構築コストが大きく超過した事例が存在する．
そこで，本稿ではシステムの依存関係分析を通じて
段階的再構築における費用対効果を事前に試算する
手法を評価する．過去に段階的再構築を実施した金融系基幹システムを対象に，費用と効果を試算することで，依存関係分析を用いた見積手法の実績値との乖離率を検証する．
以降，2 章では，本研究の背景について述べる．3

章では，本研究で評価対象とした段階的再構築を実施

2. 2 見積もりしたシステムについて述べる．4 章では，本研究にお見積りでは，時期によって最終的な実績値と比較しける見積手法について述べる．5 章では，評価実験にて誤差が発生する．特に開発初期の計画段階ではプロついて述べる．6 章では，関連研究について述べる．

ジェクト全体に不明確な点が多いため，誤差が大きく

最後に，7 章でまとめと今後の課題について述べる．

なる傾向にある．しかし，予算獲得などのおおよその計画を立てるために，早い時期での見積りは必要であ

2 背景

る．そのため，見積りの不確実性を事前に評価して関2. 1 段階的な再構築

係者の間で共有し，適切なタイミングで再見積もりを

システム全体を一度で再構築する戦略であるビッグ

実施することが重要である．本研究では，開発初期のバンアプローチは，移行失敗のリスクが高い．ビッグ計画段階における見積りを対象とする．

バンアプローチの移行失敗のリスクを回避するため，見積もり作業では，規模，工数，工期，品質（信頼Brodie らは Chicken-Little 戦略という段階的な移行性，性能など），コストなどのさまざまな要素を見積戦略を提案した [2]．Chicken-Little 戦略の中心的なもる [15]．見積もりは，類推法，積み上げ法，パラメ

考え方は，旧システムと新システムからなる複合シス

トリック法の 3 つに大きく分類される．

テムを構築することである．この旧システムと新シ

類推法とは，過去の類似プロジェクトの実績を基礎

ステムは，ゲートウェイを介して連携する．最初に，に見積る方法である．類推方は簡便でシステム開発初

旧システムの一部が新システムに置き換えられ，ゲー期の見積りに適している一方で，過去の実績プロジェ

トウェイが新システムにリクエストをルーティングす

クトについてその背景や制約，特徴などが明らかでなる．そして，徐々に旧システムを新システムに置き換

いと適用が困難である．情報処理推進機構が開発規える割合を増やしていく．これにより，新システムは

模，工数などの実績値を公開している [16] が，段階的徐々に拡大し，段階的な移行が実現する．

再構築の分類がなく，類推法を使った段階的再構築のChicken-Little 戦略は移行失敗のリスク低減する一方で，複合システムとしての複雑性に伴うリスクが増大する．そのリスクを次に示す．

1. 旧システムと新システム間の通信制御が複雑になる．

2. 旧システムと新システムのデータ整合性の維持が困難になる．

見積は難しい．
積み上げ法は，プロジェクトの成果物の構成要素を洗い出し，それぞれに必要な工数などを見積って積み上げる方法である．積み上げ法は見積もり精度が高い一方で，プロジェクトの構成要素としての作業項目
を WBS（Work Breakdown Structure），成果物の構成要素としてのサブシステムやコンポーネントなこれらリスクに対応するため，旧システムと新システ

どを事前に洗い出しておく必要がある．したがって，ムを連携するグルーコードが必要になる．グルーコー

不確実なものが多い初期見積りでは難しい．

ドとは，異なるソフトウェアコンポーネントやシステ

パラメトリック法は，工数などを目的変数として，

ム間での連携を可能にするコード片やスクリプトを説明変数に規模や要因などを設定し，数学的な関数と指す．これにより，独立して開発されたコンポーネン

して表す方法である．パラメトリック法では，工数とトやシステムを連携して機能するようにできる．段階

規模が正比例（工数 = α × 規模）するもの，工数と的再構築では，旧システムと新システムで異なる技

規模の累乗が比例（工数 = α × 規模 ）するものが主

術スタックやプラットフォーム間の連携が必要になるに利用されている．工数と規模の累乗が比例する関係

ため，グルーコードによってシステム間の通信制御や式は，COCOMO 法でも採用されている．独立行政データ整合性制御が必要である．そのため，段階的再法人情報処理推進機構では，工数と規模が正比例する構築ではグルーコードの開発コストが追加で発生し，パラメトリック法の考え方に則ってソフトウェア開発

システム全体での開発コストの合計は増大する．

の定量データを収集，分析し，公開している [16]．本β項では，このデータを用いてパラメトリック法で工数を見積もる方法を説明する．

テスト規模は値が小さいほど影響範囲が小さいことを示し，保守性が向上していることを示す．開発生
産性は値が大きいほど 1 人月あたりの実装行数が大3 ケーススタディ：段階的再構築を実施した
システム

きいことを示しており，保守性が向上していることを示す．再構築前後で開発要件は一致しない．そのため

本研究では，過去に段階的再構築を実施したシステ

再構築前後で 1 案件あたりの開発要件に違いが大きムを対象に評価を行った．再構築前のシステム概要は

いと，1 案件あたりの開発工数の統計値を比較した際

以下のとおりである．

に，開発要件の影響を受ける懸念がある．そのため，

概要 金融系基幹システム

本研究では開発工数を製造規模で割った開発生産性をシステム区分 バッチシステムおよびオンラインシ

比較する．結合テスト 2 規模の中央値では増減率がステム

正に，開発生産性の平均値と中央値はどちらも増減率

言語区分 オープン COBOL

が負になっており，必ずしも段階的再構築により保守

システム規模 約 4.6MSLOC（COBOL のみ対象）性が向上したとは確認できない．

再構築では，上記のシステムから約 870KLOC を

計画時点の試算結果を実績値が超過したことと，段一部機能を Java プログラムとして切り出し，段階的階的再構築による保守性向上効果が充分に得られな再構築を実施した．しかし，当プロジェクトでは段階かった経験から，当社では段階的再構築の費用および的再構築の複合システムとしての複雑性リスクを計画

効果を計画段階で試算することに課題を抱えている．

時点で十分に認識できておらず，計画時点の試算結果

しかし，情報処理推進機構など社外の公開情報を調査

を実績値が 27.5%超過することとなった．また，保守しても，段階的再構築の開発事例は公開されていな性が向上することを目的として段階的再構築を実施

い．また，見積り手法やリファクタリングの費用対効したが，再構築前後の開発実績を比較したところ必ず

果試算に関する既存研究はいくつかあるが，段階的

しも保守性が向上したとは言い難い結果が得られた．

再構築における費用対効果試算の研究は行われてい再構築前後の開発実績の統計値を表 1 に示す．本研

ない．そこで本研究では，段階的再構築案件では現行

究では，再構築前 21 件，再構築後 10 件の保守開発

システムのソースコードを入手できることに着目し，案件を集計対象とした．再構築前では COBOL の基

ソースコード上の依存関係分析により費用対効果を幹システム，再構築後では切り出し対象となったサブ

試算する方法を調査した．

システムを保守対象とする案件に絞り込み，そこから製造規模，テスト規模，開発生産性が正しく記録され4 本研究における見積手法ていない案件を除外した．

本研究では，依存関係分析によりプログラム間の依開発実績では，以下の 3 項目に対して平均値と中央値の両方で集計した．
結合テスト 1 規模 1 回目の結合テストでテスト対象となるソースコード規模．1 回目は 2 回目より

存グラフを作成し，作成した依存グラフをもとに段階的再構築の費用と効果を試算する．本章では最初に依存グラフについて説明し，費用試算，効果試算について説明する．

レベルが小さく，単体テストに近い．
結合テスト 2 規模 2 回目の結合テストでテスト対象となるソースコード規模．2 回目は 1 回目よりレベルが大きく，システムテストに近い．

4. 1 依存グラフ
まず本稿で用いる依存グラフについて述べる．ソフトウェアの構成要素であるコードエンティティ（メ開発生産性 製造規模あたりの開発工数．単位はソッドや関数など）やデータエンティティ（データKLOC/人月．開発工数は基本設計からシステム

ベースのテーブルやグローバル変数など）をノードとテストまでの工数の合計．

し，ノード間の依存関係を辺（本稿では，辺はすべて

表1

段階的再構築前後の開発実績の統計値

再構築前

再構築後

21 件

10 件

-

結合テスト１規模 [KLOC]

22.75

21.24

-7%

結合テスト 2 規模 [KLOC]

24.04

23.28

-3%

開発生産性 [KLOC/人月]

0.27

0.19

-30%

結合テスト１規模 [KLOC]

14.78

13.53

-8%

結合テスト 2 規模 [KLOC]

17.77

21.49

+21%

開発生産性 [KLOC/人月]

0.24

0.19

-21%

案件数
平均値

中央値

増減率

有向辺）とするグラフ構造で表したものを依存グラる依存関係 d の本数，Ld は依存関係 d1 本あたりのフと呼ぶ [13]．依存関係には，コール依存やデータ依

グルーコードの実装行数，α は生産性（人月/規模）

存など様々な種類があり，この種類を「関係タイプ」を意味する．これらを，依存関係の種類 d ごとに合

と呼ぶ．

計する．
新システムを旧システムから切り出す場合，新シ

4. 2 費用試算

ステムと旧システム間の依存関係が分断される．例

費用試算では，段階的再構築する際の開発工数を試えば，切り出し前は関数呼び出しでつながっていた場

算する．工数見積もりでは，試算した工数に対して人合，切り出し後はネットワーク経由の通信となる．そ

月単価を掛け合わせることで金額に換算することがのため通信方式を変換するための連携部品を開発す可能である．

るコストが発生する．

システム全体を再構築する場合，システム全体の規「依存関係 1 本あたりのグルーコード実装行数」と模に対して再構築の生産性を掛けることでパラメト「生産性」は，既存システムと新システムのアーキテリック法に従い開発工数を試算する．段階的再構築でクチャにより変動する．これらの試算は，過去の開発

はシステムの一部を切り出して再構築するが，切り出実績を元に試算したり，PoC でグルーコードを開発

す範囲の規模に生産性を掛けるだけでは，工数見積もしてデータを集めたりすることで数値を決定する．

りが実績値より少ない試算値となった事例があった．
そこで本研究では，新システム，旧システム，グルー

4. 3 効果試算

コードの開発工数の合計によって段階的再構築の開発

モダナイゼーションの効果はさまざまなものがある
が，本研究では段階的再構築後の保守開発工数の削減

工数を求める手法を提案する．
新システムと既存システムは，切り出し前のシステ率を効果として試算する．保守開発工数を削減する

ム規模と開発生産性により，開発工数を求める．一方ことで，保守開発期間の短期化や保守開発コストので，グルーコードの開発工数の見積もりに，依存グラ削減につながる．これにより，1 回あたりの保守開発

フを用いる．本稿では，グルーコードの開発工数の見期間が短くなることで開発アジリティが向上したり，積もり方を中心に説明する．

保守開発コストの削減されることで他の IT 分野へ投4. 2. 1 費用試算の手順

資が行いやすくなったりなど，モダナイゼーションのグルーコードの開発工数 E は，次の式で求める．

効果につながる．

E =α×

∑
d∈D

効果試算では，段階的再構築の後に 1 回あたりのN d Ld(1)

ここでは，Nd は新システムと旧システムをまたが保守開発工数をどれだけ削減できるかを効果として試算する．
一般に，ソフトウェア保守では理解とテストの労力が大きいと言われており [7] [4] [10] [6]，その労力が影は弱くなりテストが行いやすくなる．そのため影響範響範囲に強い影響を受けることがわかっている [8] [1]．

囲の期待値は小さくなる．

そのため，保守開発工数の削減率は影響範囲の削減率
から大きな影響を受けると考えられる．
影響範囲とは，一部のプログラムを変更した場合

以上により，再構築前と再構築後の影響範囲の期待値の縮小率から，保守開発工数の削減率を効果として求めることができる，に，その変更が他のプログラムにも影響を及ぼす範囲を意味する．影響範囲が広いほど，プログラムを理解

5 評価実験

しテストする範囲が広がるため，保守開発工数も増大

5. 1 評価目的とリサーチクエスチョン

する．段階的再構築によってシステムを切り出すこと

評価目的は，本研究で提案する見積りモデルがどれで，この影響範囲の縮小率を求め，それによる保守開だけ正確か調査することである．4 章で説明した見積

発工数の削減率を効果として見積もる．

手法のことを，以降では提案手法という．

4. 3. 1 効果試算の手順
保守開発工数の削減率 R は，次の式で求める．

そこで，本実験では次の 2 つのリサーチクエスチョンを設定した．

∑
Pm Imp′m
R = 1 − ∑m∈M

RQ1 費用試算結果と実績値の乖離はどれくらm∈M

RQ2 効果試算結果と実績値の乖離はどれくら(2)Pm Impm
ここでは，M はシステム全体のモジュール集合，
Pm はモジュール集合 M に含まれるあるモジュール

いか？

いか？

m が一度の保守開発で変更される確率，Impm は再

この 2 つのリサーチクエスチョンを解くことで，費構築前のモジュール m の影響範囲，Imp′m は再構築

用試算と効果試算の 2 つの観点から依存関係分析を後のモジュール m の影響範囲を意味する．

用いた見積手法の正確性を評価する．

式 2 では，あるモジュールが変更される確率とそのモジュールの影響範囲をかけあわせることで，シス

5. 2 評価方法

テム全体での影響範囲の期待値を求める．なぜなら，5. 2. 1 評価 1：費用試算結果の評価

1 回の保守開発で全てのモジュールが変更されること

RQ1 に回答するため，過去に段階的再構築を行っはないからである．たとえば，頻繁に変更されるモたシステムに対して提案手法を適用して開発規模をジュールは影響範囲を小さくする効果は高く，めった

試算し，実績値との乖離を評価する．

に変更されないモジュールは影響範囲を小さくする

最初に，対象システムに対して依存関係解析を行効果は少ない．したがって，式 2 では各モジュールのい依存グラフを作成する．依存グラフの頂点はファイ

変更確率を考慮する．本研究において変更確率 P (m)ル，辺は呼び出し関係とする．COBOL プログラム

は，モジュール m の規模がシステム全体の規模の中では，ファイル単位でプログラムにコンパイルされ，で占める割合により求める．これは，規模が大きい

CALL 文を使って他プログラムを呼び出す．依存関モジュールは変更される確率が高く，規模が小さいモ

係解析を行うことで，どの COBOL プログラムから

ジュールは変更される確率が低いという仮定 [9] に基どの COBOL プログラムを呼び出しているかを解析づいている．

できる．

再構築後の影響範囲の期待値は，新システムと旧シ依存グラフを作成した次は，新システムとして切りステムをまたがる依存関係がなくなるものとして試出して再構築するプログラムと，旧システムとして残算する．例えば，切り出し前は関数呼び出しで依存関すプログラムに分類する．実際に評価対象システムに係のあるモジュールが，切り出し後はネットワーク経て再構築の切り出し対象として選定された COBOL

由の通信となる場合，一般的にモジュール間の結合度

プログラムを，本実験においても切り出し対象として選定した．そして，新システムとして切り出し対象のプログラムと，旧システムに残すプログラム間で跨る依存関係の本数を集計した．

表2

費用試算：段階的再構築の開発規模

最後にシステム全体の開発規模は，新システム，旧

値

乖離率

システム，グルーコードの開発規模の合計で求める．

コストモデルの試算

3,880KLOC+5.1%

新システムおよび旧システムの開発規模は，検証対象

計画時点の試算

2,675KLOC-27.5%

プロジェクトの計画時点の試算を再利用する．検証対

実績値

3,691KLOC-

象プロジェクトでは，計画時点では段階的再構築の際にグルーコードを開発する必要性を認識できておらるか評価する．効果試算結果の乖離率も，費用試算のず，新システムの旧システムの開発規模のみを試算し乖離率と同様の式で求める．

た．そのため，本評価実験では計画時点の試算を再利用する．グルーコードの開発工数は，4. 2. 1 項で述べ

5. 3 評価結果と考察た式（1）より求める．ただし，今回は工数見積もり

5. 3. 1 評価 1：費用試算結果の評価結果

ではなく規模見積りで評価するため，生産性 α は計算に含めない．

新システムから旧システムへの呼び出し関係は

3,431 本，旧システムから新システムへのよびだし関

正確性の評価では，開発規模の実績値 3,691KLOC

係は 80 本，合計してシステム間を跨る呼び出し関係

に対して，コストモデルの試算結果がどれだけ乖離しは 3,511 本となった．また，プログラム 1 個あたりのているか評価する．また，対象システムの計画段階当SLOC 規模は，343.3SLOC だった．これにより，グ時の試算 2,675KLOC と比較して，提案手法とどち

ルーコードの開発規模は，1,205SLOC と試算できる．

らが実績値との乖離率が小さいか評価する．費用試算

試算したグルーコードの開発規模と，グルーコード

結果の乖離率は次の式で求める．

を含んでいない計画時点の試算 2,675KLOC を合計

5. 2. 2

試算値 − 実績値
乖離率 =
実績値
評価 2：効果試算結果の評価することで，システム全体の開発規模は 3,880KLOC(3)という試算結果が得られた．
試算結果と実績値の比較を表 2 に示す．提案手法のRQ2 に回答するため，過去に段階的再構築を行っ

コストモデルで試算した開発規模は 3,880KLOC とたシステムに対して提案手法を適用し，テスト規模なった．実際の開発規模の実績値 3,691KLOC と比較の削減量を試算し，実績値との乖離を評価した．テ

すると，乖離率は+5.1%であった．

スト工程は開発工程の中で占める割合が大きく，開発

5. 3. 2 評価 1：費用試算結果に対する考察

工程全体へ与える影響が大きい．テスト規模に比例

表 2 より，提案手法のコストモデルで試算した開してテスト工程の工数は増減するという仮定のもと，発規模は，実際の開発規模の実績値と比較して乖離

テスト規模の削減量を試算する．

は+5.1%であった．プロジェクト計画時点の試算結果

最初に，対象システムに対して依存関係解析を行いは，実績値との乖離が-27%だったことから，提案手依存グラフを作成し，新システムとして切り出して再法を用いた方がより実績値に近い試算結果が得られ構築するプログラムと，旧システムとして残すプログ

た．計画時点では段階的再構築のコスト増大要因を認ラムに分類する．ここまでは 5. 2. 1 項と同様である．

識できておらず，グルーコードの開発規模を計画時点

そして 4. 3. 1 項で述べた式（2）より，再構築前後のの試算に入れていなかった．そのため，プロジェクト

影響範囲の期待値を求める．

計画時点の試算結果にグルーコードの開発規模を足表 1 で示した再構築前の各開発実績に対して，上で求めた削減率を掛け合わせることで，再構築後の値を試算する．その後，再構築後の各開発実績と試算結
果を比較することで，試算結果がどれだけ乖離していし合わせることで，実績値により近い試算結果が得られたと考える．


RQ1 への回答

ることで，依存関係 1 本あたりの実装行数をより精提案手法の試算結果と実績値の乖離は+5.1%で，緻に求めることができる．しかし，一般的な実開発に

プロジェクト計画時点の試算結果より乖離の少おいて計画段階で事前検証を行うことは難しい．表 2

ない試算ができた．

より，本実験の計算方法でも計画時点の試算より乖離

率が小さいことから，プログラム 1 個あたりの平均

5. 3. 3 評価 2：効果試算結果の評価結果

行数を使った試算精度であっても許容できる．

再構築前の影響範囲の期待値は 7.99KLOC，再構

効果試算モデルにおいて，乖離率の閾値を決める

築後の影響範囲の期待値は 6.99KLOC となった．式

ベースラインが存在していないため，効果試算モデル

2 より，再構築前後で保守開発工数は 13%削減できるが正確性があると判断できる乖離率の上限・加減が存という試算結果が得られた．

在しない．そのため，効果試算モデルが正確であるか

再構築後の実績値と，再構築前の実績値に対して否かの判断が難しい．

13%削減した試算結果の比較を表 3 に示す．結合テス

さらに，見積りの正確性の評価指標として乖離率以

ト 1 および 2 の規模において，提案手法の効果モデ

外の指標も存在する．本研究では実績値との乖離率をルで試算結果は実際の再構築後の実績値より小さい

もって RQ の回答としたが，別の指標を採用するこ値となった．また，開発生産性は試算結果が実績値よとでことなる結果となる可能性がある．

り大きくなった．

また，表 1 より，結合テスト 2 規模（中央値）の5. 3. 4 評価 2：効果試算結果に対する考察

増減率が正に，また開発生産性（平均値と中央値）の表 3 より，提案手法の効果モデルで試算結果は，実増減率が負になっており，むしろ再構築前と比較して際の再構築後の実績値と比較して乖離は-28%〜+68%

再構築後は悪化している．したがって，段階的再構築であった．乖離の程度はさまざまであるが，テスト規によりテスト規模の削減および保守開発工数の削減

模は実績値の方が大きく，開発生産性は実績値の方が効果が得られない懸念があり，前提から検証する可能小さいため，全てにおいて試算結果ほど効果を得るこ性が考えられる．

とはできなかった．
表 1 より，再構築前後の削減率が正である結合テ

6 関連研究スト 1（平均値と中央値）および結合テスト 2（平均Leitch らは，リファクタリングにおける依存関係値）においては，再構築後の実績値と効果モデルの試分析を用いた費用対効果の試算方法を提案した [9] ．

算結果の乖離が-10%以上と，乖離が小さくなってい

Leitch らの手法では，制御依存とデータ依存の依存

る．一方で再構築前後の削減率が負の比較項目に関し関係からリファクタリングにより削減可能なシステては，乖離率が-28%と乖離が大きくなっている．

ムの保守コストを試算する．また COCOMO II を用
RQ2 への回答

いてリファクタリングの実施コストを試算する．しか提 案 手 法 の 試 算 結 果 と 実 績 値 の 乖 離 は-77%

し，Leitch らの手法ではシステム内のリファクタリ〜+68%となった．ただし一部比較項目においングの際の投資対効果を算出することしかできず，段て，再開発前より再開発後の実績値が悪化して階的再構築の投資対効果を試算する点で異なる．

おり，テスト規模削減および生産性向上が前提

Cui らは，依存関係の修正方法と修正作業コストのである効果モデルの正確性の評価が難しい．



相関関係を調査した [5]．これにより，依存関係の種

5. 3. 5 妥当性の脅威
コスト試算モデルにおいて，本実験では依存関係 1本あたりの実装行数を，プログラム 1 個あたりの平均行数から試算した．実際には事前検証などを実施す

類ごとに修正作業コストを見積もることができる．ただし，依存関係の修正方法にシステム切り出しがない
点が，提案手法の費用試算とは異なる．

Rebêl らは，アスペクト指向切り出しにより，オブジェクト指向設計と比較して，設計上の安定性と保守表3

効果試算：段階的再構築前後の比較

実績値（再構築後） 効果モデルの試算
平均値

中央値

乖離率

結合テスト１規模 [KLOC]

21.24

19.79

-7%

結合テスト 2 規模 [KLOC]

23.28

20.91

-10%

開発生産性 [KLOC/人月]

0.19

0.32

+68%

結合テスト１規模 [KLOC]

13.53

12.86

-5%

結合テスト 2 規模 [KLOC]

21.49

15.46

-28%

開発生産性 [KLOC/人月]

0.19

0.27

+42%

作業の関係性を調査した [11]．これにより，アスペクを試算する提案手法と異なる．

ト指向切り出しによる保守開発コストの削減効果を試算できる．ただし，アスペクト指向切り出しではな
く，別システムに切り出す点で，提案手法の効果試算とは異なる．

7 まとめと今後の課題
段階的再構築の戦略を採用することで，ソフトウェ
アシステムのモダナイゼーション失敗リスクを軽減

Cai らは，ソースコード，アーキテクチャ情報，バー

できるが，再構築コストが計画段階より大きく増大

ジョン履歴をもとに，リファクタリングの費用対効果する傾向がある．また，段階的再構築の効果の定量化を判断するフレームワークを開発した [3]．費用対効が難しく，再構築の投資判断が進まない現状がある．

果を判断するフレームワークとして，提案手法と類似

そこで本研究では，書くの段階的再構築を実施したシしている．一方で費用試算の具体的な試算方法は示さ

ステムに対して，依存関係分析を用いた費用対効果試

れていない．また効果試算は影響範囲に着目しておら算の見積手法を適用し，実績値との乖離度合いを比ず，過去のリファクタリング作業との相関関係により較した．評価の結果，費用試算は実績値と乖離率が小試算する点で，提案手法とは異なる．

さかったのに対し，効果試算は実績値との乖離が大き

Xiao らは，アーキテクチャの技術的負債と保守開かった．

発コストとの相関関係を調査した [12]．これにより，今後の課題として，以下の 3 点が挙げられる．

技術的負債の存在による保守開発コストの増加量を評価結果の信頼性向上 現時点では 1 つの案件で試算できる．ただし，システム切り出しによって保守のみ評価を行なった．評価対象のシステムを増や開発工数の削減量を試算しない点で，提案手法とは異して交差検証を行うなど，評価結果の信頼性を向なる．

上させることは今後の課題である．

小林らは，システム障害予測の精度向上を目的とし依存関係の拡充 本研究ではプログラムの呼び出して，変更の影響波及量を定量化するメトリクスを提案

関係のみを依存関係として解析した．他にもデーした [13]．依存グラフを用いて変更の影響範囲を見極

タベースアクセスなど，依存関係の種類は存在す

める点で，提案手法と類似しているが，障害予測の精る．依存関係の種類を増やし，試算結果の精度が度向上を目的としており開発工数の削減量試算を目向上するのかといった評価は今後の課題である．

的としていない点で，提案手法と異なる．

他言語への適用 本研究では，COBOL 言語を対

早瀬らは，保守開発作業の労力見積りに用いること

象に試算を行った．COBOL 以外の言語でも提を目的として，影響波及解析を使ったメトリクスを提案手法を適用して試算結果が得られるのか，今後案した [14]．依存グラフを用いて変更の影響範囲を見の課題である．

極める点で，提案手法と類似している．しかし早瀬ら

謝辞 本論文の執筆に際し助言および議論していたの手法は，特定のプログラムの保守コストの試算のみ

だいた井上 克郎氏 (南山大学)，松下 誠氏 (大阪大学)，

実施しており，システム全体での保守コストの削減率

上田 永樹氏 (NTT データグループ) に感謝する．

参 考 文 献[ 1 ] Briand, L., Labiche, Y., and Soccar, G.: Automating impact analysis and regression test selection based on UML designs, International Conference on Software Maintenance, 2002. Proceedings.,
2002, pp. 252–261.
[ 2 ] Brodie, M. L., Stonebraker, M., and Ai, S.:DARWIN: On the Incremental Migration of Legacy
Information Systems, 1993.
[ 3 ] Cai, Y., Kazman, R., Silva, C. V., Xiao, L.,
and Chen, H.-M.: Chapter 6 - A Decision-Support
System Approach to Economics-Driven Modularity
Evaluation, Economics-Driven Software Architecture, Mistrik, I., Bahsoon, R., Kazman, R., andZhang, Y.(eds.), Morgan Kaufmann, Boston, 2014,
pp. 105–128.
[ 4 ] Corbi, T. A.: Program understanding: Challenge for the 1990s, IBM Systems Journal, Vol. 28,
No. 2(1989), pp. 294–306.
[ 5 ] Cui, D., Fan, L., Chen, S., Cai, Y., Zheng, Q.,
Liu, Y., and Liu, T.: Towards characterizing bug
ﬁxes through dependency-level changes in ApacheJava open source projects, Science China Information Sciences, Vol. 65(2022).
[ 6 ] Harrold, M. J., Jones, J. A., Li, T., Liang, D.,Orso, A., Pennings, M., Sinha, S., Spoon, S. A., andGujarathi, A.: Regression Test Selection for Java
Software, Proceedings of the 16th ACM SIGPLAN
Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA ’01,
New York, NY, USA, Association for Computing
Machinery, 2001, pp. 312–326.
[ 7 ] K., F. R.: Application program maintenancestudy : Report to our respondents, GUIDE,
Vol. 48(1983).
[ 8 ] Ko, A., Aung, H. H., and Myers, B.: Eliciting design requirements for maintenance-oriented

IDEs: a detailed study of corrective and perfective
maintenance tasks, Proceedings. 27th International
Conference on Software Engineering, 2005. ICSE
2005., 2005, pp. 126–135.
[ 9 ] Leitch, R. and Stroulia, E.: Assessing the Maintainability Beneﬁts of Design Restructuring Using
Dependency Analysis, Proc. of the 9th International
Symposium on Software Metrics, 2003, pp. 309.
[10] McClure, C. L.: The three Rs of software automation : re-engineering, repository, reusability,
Prentice Hall, 1992.
[11] Rebêl, H., Lima, R. M. F., Kulesza, U., Ribeiro,
M., Cai, Y., Coelho, R., Sant’Anna, C., and Mota,
A.: Quantifying the eﬀects of Aspectual Decompositions on Design by Contract Modularization:a Maintenance Study, Int. J. Softw. Eng. Knowl.
Eng., Vol. 23, No. 7(2013), pp. 913–942.
[12] Xiao, L., Cai, Y., Kazman, R., Mo, R., andFeng, Q.: Detecting the Locations and Predicting
the Maintenance Costs of Compound Architectural
Debts, IEEE Transactions on Software Engineering, Vol. 48, No. 9(2022), pp. 3686–3715.
[13] 小林健一, 松尾明彦, 井上克郎, 早瀬康裕, 上村学, 吉野利明: 大規模ソフトウェア保守のための影響波及量尺
度インパクトスケール, 情報処理学会論文誌, Vol. 54,
No. 2(2013), pp. 870–882.
[14] 早瀬康裕, 松下誠, 楠本真二, 井上克郎, 小林健一, 吉
野利明: 影響波及解析を利用した保守作業の労力見積りに用いるメトリックスの提案, 電子情報通信学会論文誌
D, Vol. J90-D, No. 10(2007), pp. 2736–2745.
[15] 独立行政法人情報処理推進機構: ソフトウェア開発
見積りガイドブック 〜IT ユーザとベンダにおける定量的見積りの実現〜, オーム社.
[16] 独立行政法人情報処理推進機構: ソフトウェア開発分
析データ集 2022, 2023-7-1. https://www.ipa.go.jp/
digital/chousa/metrics/metrics2022.html，（参照
2023-8-10）.