Mais conteúdo relacionado
Semelhante a 疎結合設計の経済合理性判定モデルの検討 (20)
疎結合設計の経済合理性判定モデルの検討
- 4. 技術的負債とは
行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソ
フトウェア開発が引き起こす結果。
©2014
最初のコードを出荷することは、借金をしに行くことと同じ
である。小さな負債は、代価を得て即座に書き直す機会を得
るまでの開発を加速する。危険なのは、借金が返済されなかっ
た場合である。品質の良くないコードを使い続けることは借金
の利息としてとらえることができる。技術部門は欠陥のある実
装や、不完全なオブジェクト指向などによる借金を目の前にし
て、立ち尽くす羽目になる。
Ward Cunningham (1992). “The WyCash Portfolio
Management System”.
Kerievsky, Joshua (2004). Refactoring to Patterns.
- 9. 1.保守作業影響範囲算定
論理モジュール数 ……機能の大分類に相当、初期値5
疎結合度 ……モジュール化の度合、1~5
インパクト ……変化の規模、シミュレーション上は1~5の乱数
影響範囲=論理モジュール数÷疎結合度もしくはインパクトの大きい方
©2014
モデル (1/2)
(最小単位である規模1の修正が必要になった場合、疎結合度5であれば5÷5で
当該機能モジュール部分のみを修正すれば良いが疎結合度1の密結合状態の場合
は5÷1でシステム全体が改修範囲となる、という状況を想定。次頁で図解)
疎結合オーバーヘッド係数 ……分割のためのコスト増分。初期値1.1
初期単価 ……論理モジュール単位の費用
初期費用=論理モジュール数×初期単価
×(疎結合オーバーヘッド係数^(疎結合度 - 1))
(機能を分割するごとに10%の工数増を想定。疎結合シナリオの場合は、密結
合シナリオの約1.46倍の初期費用がかかる計算になる)
2.初期費用算定
- 10. 1 1 1 1 1
5
疎結合シナリオ
論理モジュール
≒機能大分類
の数を5に設定
四半期毎に発生
する要修正の規模
をインパクトとする
疎結合度5であれば規模1
のモジュールが5つ並ぶ
1~5の規模でランダムに
発生(ここでは1)
1 1 1 1 1
修正範囲部分に
対して保守単価分の
保守コストがかかる
疎結合であるため修正規
模は1で足りる
密結合シナリオ
同じ機能規模の
システムを疎結合度1
密結合で作った場合
密結合であるため規模5の
モジュールが1つだけ
上と同様のインパクト1の
修正が発生したとすると
5 密結合であるため局所的
な修正要望も広く影響
システムの範囲は同一
であるため同じ条件
で修正要望が発生
モジュールは1つだけ
だが保守コストはその
規模に応じて拡大する
- 11. ©2014
モデル (2/2)
3.複雑度とコスト算定 積算
複雑化係数 ……改修毎の改修難度の増分。初期値0.1
修正量=影響範囲×複雑化係数
複雑度=Σ[修正量]
修正単価 ……修正時の単価
修正コスト=複雑度×修正単価×影響範囲
運用単価 ……通常運用にかかる費用
追加コスト ……各期の修正コスト
基礎コスト ……各期の運用コスト(=運用単価)
コスト=初期費用+Σ[追加コスト+基礎コスト]
- 12. ©2014
結果
密結合シナリオ 初期費用5000万円
疎結合シナリオ 初期費用7320万円
共通条件 1Q毎 固定運用費 100万円
1Q毎 単位あたりの修正単価 100万円
1Q毎にインパクト1~5の修正が必ず発生(ランダム)
5年後にトータルコストで密結合シナリオが疎結合シナリオを上回る
密結合シナリオ 1億900万円疎結合シナリオ 1億400万円