Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

疎結合設計の経済合理性判定モデルの検討

962 views

Published on

システムダイナミクスを利用した、疎結合-密結合のトレードオフの検討。技術的負債に対する、『良い設計』のオーバーヘッドについて。

Published in: Software
  • Be the first to comment

  • Be the first to like this

疎結合設計の経済合理性判定モデルの検討

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

×