As-Isシステムをマクロなソース解析によって見える化しよう

2,090 views
2,005 views

Published on

オープンコミュニティ「要求開発アライアンス」(http://www.openthology.org)の2011年2月定例会発表資料です。
Open Community "Requirement Development Alliance" 2011/2 regular meeting of the presentation materials.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,090
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

As-Isシステムをマクロなソース解析によって見える化しよう

  1. 1. As-Isシステムをマクロなソース解析によって見える化しよう ソフトウェア資産分析の活用 要求開発アライアンス2011年2月定例会 2011年2月 株式会社 シナジー研究所 依田 智夫 yoda@synergy-res.co.jp
  2. 2. 「マクロなソース解析」とは? • 解析=ミクロ?• ミクロ=マクロ???? Copyright 2011 Synergy Research Corporation 2
  3. 3. ソフトウェア資産分析アプローチの紹介ソフトウェアのソースコードを自動的に分析して、開発や保守にかかわるミクロからマクロまで一貫性のある情報をプラットフォーム横断的に抽出し、ステークホルダーに提供 ソフトウェア資産分析 のためのカテゴリー構造を入力 • PMO • 経営者 • 管理者 • メンテナンス業務担当者 • 開発者(つくってしまった人たち)現行システムのシステム設計書、仕様書 ビジネス軸 テクニカル軸 組織軸 今回紹介するア エンジニアリング系の プローチではここ 情報 を活用 プログラム 依存関係 保 守 CRUD表 開 発 プ 画面機能量 ロ 分析 ジ 多次元データベース DB機能量 ェ ツール ク ト AIS 資産棚卸 の 改修量・明細 流 れ 評価指標・KPI算出 カテゴリー構造に対 マネジメント、ITガバナンス 応したレポートと 系の情報 ダッシュボード ソフトウェアの構造と動き Copyright 2011 Synergy Research Corporation に関する情報 3
  4. 4. ミクロからマクロまで一貫性ある情報の作り方 2008/10/31分 ステークホルダーの HOME リリース ニーズを満たすマク タスク管理 ロ的カテゴリーにな り得ない場合が多い。 ビジネス軸 連絡事項 フォルダー A カテゴリー付け お勧め商品 ルール ヘルプ メール管理 フォルダー B 承認進捗確認 NA フォルダー C 発注管理 商品別仕入推移 MailManager.java 仕入先別仕入推移 MECE(注)であること 担当者別仕入推移 フォルダー 未分類 D 技術軸 • 物理的分類構造(ディレクトリー、フォル カテゴリー付け ダー)に関わりなく、階層的カテゴリー構造 フォルダー を定義する。 D1 ルール • カテゴリー付けルールによってプログラムを カテゴリー構造に当てはめる。 フォルダー • 分類結果は、定義されたカテゴリー構造と D2 組織軸 カテゴリー付けルールによって大きく変わる。 カテゴリー付け • 3種類(ビジネス、技術、組織)の構造とMECE(ミーシーもしくはミッシー、Mutually Exclusive and Collectively ルール ルールにより、プログラムは3次元上に配置Exhaustiveの略)とは、「相互に排他的な項目」による「完全な全体集合」を意味する言葉である。 要するに「重複なく・漏れなく」という意味で されることになる。ある。(Wikipedia) Copyright 2011 Synergy Research Corporation 4
  5. 5. なぜツールを開発したのか一般的なリバースエンジニアリングツールの問題点リバース結果のカテゴリー プロジェクト固有の特徴を把 プラットフォームを横断して化・概念化の手段がない 握することが難しい データを収集できないソースコードからクラス図を プログラミング プログラミング DB開発 言語 ツール ツール つくると・・・ コーディング規約 Java ツールA ・・・ ツールB ・・・ VB (SQL SERVER) ・・・ ・・・ Perl ・・・ ・・・ ABCライブラリ C++ ツールC ・・・ (ORACLE) ・・・ ツールD ・・・ ストアド (SYBASE) ・・・ ・・・ COBOL ツールD ・・・ (DB2) ・・・ XYZフレームワーク ・・・ ・・・ ・・・ プラットフォームごとに異なるツー ・・・ ルが使われるが、ステークホル ・・・ ダーからの情報要求には、このよ ・・・ ・・・ うな垣根はない。にもかかわらずクラスがたくさんあると、四角がた ・・・ 横串を通した情報が提供できない。くさんでてくる。あたりまえだけ プロジェクト固有の特徴をねらいど・・ 打ちした調査・検索が得意ではな物理フォルダがUMLパッケージ い。そのため、ソースコードを情報なってありがたいか? の宝庫として活用できない。 Copyright 2011 Synergy Research Corporation 5
  6. 6. カテゴリー型CRUD表 よりマクロな情報 CRUD C: Create (生成) カテゴリー型CRUD表 R: Refer (参照) カテゴリー構造とカテゴリー付けルールで様相が変化する U: Update (更新) D: Delete (削除) テーブル テーブル/カラム テーブル カテゴリープ プ カ プロ ロ テ ログ グ ゴ グラ ラ リ ラム ム ー ム ドリルアップ C R ドリルダウン あるプログラ C R U D U D ムは、ある テーブルを、 1 2 ビジネス軸 カテゴリー付け 技術軸 カテゴリー付け 組織軸 カテゴリー付け 2つのSELECT ルール ルール ルール 文で参照して 2 1 1 ビジネス軸 技術軸 組織軸 いる。 カテゴリー カテゴリー カテゴリー Copyright 2011 Synergy Research Corporation 6
  7. 7. プログラムを検索する Perl TABLE CRUD表の縦軸 文字列で CRUD表の横軸 CGI SQL文を TABLE 生成して PHP 実行 TABLE Java TABLE ストアドプロシージャWEBクライアント Perl 文字列を ST1 TABLEバッチ 生成して ストアドプ SQL文を CGI ST2 実行 TABLE ロシー ジャを実 PHP 行 ST3 TABLE Java ST4 TABLE DB Copyright 2011 Synergy Research Corporation 7
  8. 8. データ処理とモデリング作業の関係 ソース プログラム 入出力に着目し たモデリング データ中心的に 構築されたシス 検索結果の連立 テム構造を、プロ 方程式を解く グラム側とデータ 側に適用 モ デ リ A ン システム全体構造 I グ作 S業 プログラム デ ー カテゴリー付け ルール タ 処 理 テーブル台帳 (カテゴリー付き) カテゴリー型CRUD表 ツールからの 出力情報 Copyright 2011 Synergy Research Corporation 8
  9. 9. UMLによるAS-ISモデル+マクロ的ソース解析のメリット• モデリング側から – モデリングされた要素の重み、実体(プログラム、データベース)を反映できる • 手をつけやすいところ • まずは避けた方が無難なところ • 錯綜したところ• ソース解析(ソフトウェア資産分析)側から – 詳細データをマクロ化するための視点を設定しやすい。視点の根拠が明確。• カテゴリーという緩衝地帯があるために、トップダウン、ボトムアップどち らが先行しても、結果として整合性のあるモデルを構築できる。• モデルから、プログラム1本までドリルダウン可能。• プログラムの改修作業量など、メンテナンス活動の量も、プログラム単位、 カテゴリー単位に把握できる。• 刷新プロジェクト、システム構築、システム改修の見積もりにもつなげや すい – カテゴリー別・言語別ステップ数、改修量、機能量 Copyright 2011 Synergy Research Corporation 9

×