Weitere ähnliche Inhalte Ähnlich wie As-Isシステムをマクロなソース解析によって見える化しよう (20) Mehr von Kent Ishizawa (20) Kürzlich hochgeladen (11) As-Isシステムをマクロなソース解析によって見える化しよう2. 「マクロなソース解析」とは?
• 解析=ミクロ?
• ミクロ=マクロ????
Copyright 2011 Synergy Research Corporation 2
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. なぜツールを開発したのか
一般的なリバースエンジニアリングツールの問題点
リバース結果のカテゴリー プロジェクト固有の特徴を把 プラットフォームを横断して
化・概念化の手段がない 握することが難しい データを収集できない
ソースコードからクラス図を プログラミング プログラミング 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. カテゴリー型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. プログラムを検索する
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. データ処理とモデリング作業の関係
ソース
プログラム
入出力に着目し
たモデリング
データ中心的に
構築されたシス
検索結果の連立
テム構造を、プロ
方程式を解く
グラム側とデータ
側に適用
モ
デ
リ A
ン システム全体構造
I
グ
作 S
業 プログラム デ
ー
カテゴリー付け
ルール
タ
処
理
テーブル台帳
(カテゴリー付き) カテゴリー型CRUD表
ツールからの
出力情報
Copyright 2011 Synergy Research Corporation 8
9. UMLによるAS-ISモデル+マクロ的ソース解析のメリット
• モデリング側から
– モデリングされた要素の重み、実体(プログラム、データベース)を反映できる
• 手をつけやすいところ
• まずは避けた方が無難なところ
• 錯綜したところ
• ソース解析(ソフトウェア資産分析)側から
– 詳細データをマクロ化するための視点を設定しやすい。視点の根拠が明確。
• カテゴリーという緩衝地帯があるために、トップダウン、ボトムアップどち
らが先行しても、結果として整合性のあるモデルを構築できる。
• モデルから、プログラム1本までドリルダウン可能。
• プログラムの改修作業量など、メンテナンス活動の量も、プログラム単位、
カテゴリー単位に把握できる。
• 刷新プロジェクト、システム構築、システム改修の見積もりにもつなげや
すい
– カテゴリー別・言語別ステップ数、改修量、機能量
Copyright 2011 Synergy Research Corporation 9