株式会社イージフ 石井昭紀 2014 © 疎結合設計の経済合理性判定モデルの検討 2014年10月25日 経営情報学会 2014年秋季全国研究発表大会 IT資産価値研究部会
株式会社イージフ 石井昭紀
2014 ©
疎結合設計の経済合理性判定モデルの検討
2014年10月25日
経営情報学会 2014年秋季全国研究発表大会 IT資産価値研究部会
2014 ©
多くの業界において(競争)環境の変化の激化が指摘され、「変化への対応能力」の強化が求められている 稼働時には「時代遅れ」となり使われないシステムとなってしまった数多くのITプロジェクトの反省から、「早くて安い」ことがシステム企画選定の基準となっている 短納期を実現するためなアドホックな実装、対応策が「技術的負債」を生み、多くのシステム開発および運用の現場で問題を引き起こしている
検討の背景
2014 ©
狙い
IT投資に対しては、例えばForester社のTEIなどでは、一般の投資マネジメントフレームワークでも扱われるコスト・ベネフィット・リスクに加えて柔軟性を評価している。この、単なる損得(の見込み)勘定では説明しきれない要素を技術的な観点から掘り下げ、可能な限り定量的な評価を行うことでビジネスとエンジニアリングの間のギャップの解消に寄与したい
エンジニアやアーキテクトは、『良い設計』が変化に対する柔軟性、改造への強度を実現する、と考えている
2014 ©
技術的負債とは行き当たりばったりなソフトウェアアーキテクチャと、余裕のないソフトウェア開発が引き起こす結果。
最初のコードを出荷することは、借金をしに行くことと同じである。小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。危険なのは、借金が返済されなかった場合である。品質の良くないコードを使い続けることは借金の利息としてとらえることができる。技術部門は欠陥のある実装や、不完全なオブジェクト指向などによる借金を目の前にして、立ち尽くす羽目になる。
Ward Cunningham (1992). “The WyCash Portfolio Management System”. Kerievsky, Joshua (2004). Refactoring to Patterns.
2014 ©
複数のパッケージを統合して結果として疎結合なモジュールに分離される場合も、モノリシックなアーキテクチャを採用し密結合なアーキテクチャでフルスクラッチ開発を行う場合もある。 投資意思決定が、複数の実現手段を併置してシステマチックに実施されている。
検討の対象本研究では、以下の特徴を踏まえ業務アプリケーションを主な検討対象としている。
2014 ©
システムダイナミクス(英語:system dynamics)とは、1956年にマサチューセッツ工科大学のジェイ・フォレスターにより開発された、シミュレーション手法。はじめは企業行動のシミュレーションを念頭にインダストリアルダイナミックスという名前で始まり、都市計画を扱うアーバンダイナミックスなども生まれ、その後、整理統合されてシステムダイナミックスとなった。 Wikipedia
システムダイナミクスとは
ITmedia 情報システム用語事典
2014 ©
モデル
運用単価
2014 ©
モデル1.保守作業影響範囲算定
2.初期費用算定
3.複雑度とコスト算定 積算
運用単価
2014 ©
論理モジュール数 ……機能の大分類に相当、初期値5 疎結合度 ……モジュール化の度合、1~5 インパクト ……変化の規模、シミュレーション上は1~5の乱数 影響範囲=論理モジュール数÷疎結合度もしくはインパクトの大きい方
モデル (1/2)
(最小単位である規模1の修正が必要になった場合、疎結合度5であれば5÷5で当該機能モジュール部分のみを修正すれば良いが疎結合度1の密結合状態の場合は5÷1でシステム全体が改修範囲となる、という状況を想定。次頁で図解)
疎結合オーバーヘッド係数 ……分割のためのコスト増分。初期値1.1 初期単価 ……論理モジュール単位の費用 初期費用=論理モジュール数×初期単価 ×(疎結合オーバーヘッド係数^(疎結合度 - 1))(機能を分割するごとに10%の工数増を想定。疎結合シナリオの場合は、密結合シナリオの約1.46倍の初期費用がかかる計算になる)
1.保守作業影響範囲算定
2.初期費用算定
1 1 1 1 1
5
論理モジュール ≒機能大分類 の数を5に設定
四半期毎に発生 する要修正の規模 をインパクトとする
1~5の規模でランダムに発生(ここでは1)
疎結合度5であれば規模1のモジュールが5つ並ぶ
1 1 1 1 1修正範囲部分に 対して保守単価分の 保守コストがかかる
疎結合であるため修正規模は1で足りる
同じ機能規模の システムを疎結合度1 密結合で作った場合
密結合であるため規模5のモジュールが1つだけ
上と同様のインパクト1の修正が発生したとすると
5 密結合であるため局所的な修正要望も広く影響
システムの範囲は同一 であるため同じ条件 で修正要望が発生
モジュールは1つだけ だが保守コストはその 規模に応じて拡大する
疎結合シナリオ
密結合シナリオ
2014 ©
モデル (2/2)
複雑化係数 ……改修毎の改修難度の増分。初期値0.1 修正量=影響範囲×複雑化係数 複雑度=Σ[修正量]
修正単価 ……修正時の単価 修正コスト=複雑度×修正単価×影響範囲 運用単価 ……通常運用にかかる費用
追加コスト ……各期の修正コスト 基礎コスト ……各期の運用コスト(=運用単価) コスト=初期費用+Σ[追加コスト+基礎コスト]
3.複雑度とコスト算定 積算
2014 ©
結果密結合シナリオ 初期費用5000万円 疎結合シナリオ 初期費用7320万円 共通条件 1Q毎 固定運用費 100万円 1Q毎 単位あたりの修正単価 100万円 1Q毎にインパクト1~5の修正が必ず発生(ランダム)
5年後にトータルコストで密結合シナリオが疎結合シナリオを上回る
密結合シナリオ 1億900万円 疎結合シナリオ 1億400万円
2014 ©
各種係数の設定が(現段階では)あくまで恣意的 保守時の修正が「必ず発生する」モデルだが、実際には費用と期待効果のトレードオフで意思決定される システムの「効果」を無視しているため、修正の意思決定を含めることができない
本手法の限界
2014 ©
現実のメトリクスとの照合(可能であれば) 感度分析 ECM(統合文書管理)という特定ジャンルへの適用 継続的インテグレーションやチーム開発などの開発現場よりの問題領域への適用
今後の予定