...

Legacy Transformation to SOA 技術動向 渋谷テクニカルナイト

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Legacy Transformation to SOA 技術動向 渋谷テクニカルナイト
渋谷テクニカルナイト
®
IBM Global Business Service
Legacy Transformation to SOA
技術動向
2009年6月19日
日本アイ・ビーエム株式会社 EAテクノロジー
ITアーキテクト 石川雄一
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
目次
1. システムの課題
2. システム再構築
3. 現行の業務、システム把握
4. IBMソリューション
5. 現行リソース分析、設計支援のステップ
6. まとめ
2
2
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
1. システムの課題
ƒ
ビジネスの変革、技術の変革によって、基幹システムが様々な課題を持ち、再構築が
必要となる場合があります。現在はホストシステムだけでなく、クライアント/サーバーが
新たに「レガシー」システムとなっています。
ビジネス変革・変化
技術の変革
ビジネス要件の変化
H/W,S/W
サポート切れ
これ以上の
増築は無理・・
システムの変更
以前の技術の
技術者不足
設計図?
ビジネスの変化の
サポートが不十分
障害対応・保守が困難
システムが複雑化、
保守が困難
アプリケーション再構築
H/W, S/Wインフラの移行
柔軟なシステム
3
3
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
2. システム再構築
ƒ ビジネスの変化をサポートするために、拡張性と変更性に富んだシステムを構築する
ための考え方がSOA(サービス指向アーキテクチャー)です。SOAでもSOAでないシス
テムでも、ゴールであるTo Be モデルを実現するためには、スタート地点である現行
業務の課題、現行システムを明確にする事から始める必要があります。
ゴール地点
スタート地点
To Be モデル
新システム
現行業務/現行システム
の把握
ƒ システムを再構築するメソドロジーの中で、現行システムを理解し、設計につなげる
手法をLegacy To SOAと呼んでいます。
新ビジネス要件の定義
+
現行業務/システム把握
設計
新システム
の実装・テスト
新システム
現行システム
SOA
Legacy to SOA
4
SOA以外のシステム
4
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
2-1. システム再構築のステップ
To Be モデル / 新システム
現行業務/現行システムの把握
課題の
明確化
ビジネス課題
システム課題
新ビジネス
要件の定義
現行業務
システム把握
設計
実装
テスト
移行
ビジネス
の把握
新システム
要件の定義
システム
の把握
業務からの分析
(トップダウン分析)
現行のデータ、
プログラムの
スリム化、洗練
現行システムの分析
(ボトムアップ分析)
5
5
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
2-2 現行システム分析の進め方
ƒ
設計情報が不足している現行システムを理解しようとする場合は、不足情報を
補完するためには、二つのアプローチの両方が必要です。
業務の分析
(トップダウン分析)
ソースコードなどの現行リソースからの分析 (ボトムアップ分析)
現行システムの理解度
不足情報補完のアプローチ
現行システムが
全て文書化され
把握されている
現行システム
理解度
業務からの分析
(トップダウン分析)
不足情報
不足情報
文書化され
把握された
情報
全く文書化されて
おらずシステムが
把握されていない
ソースコードなどの
現行リソースの分析
(ボトムアップ分析)
文書化され
把握された
情報
現行システム
文書化率
6
6
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
3. 現行の業務、システム把握
ƒ 現在は、情報システムは業務の一部に組み込まれています。
ƒ 業務上の特殊な例外処理や、詳細な計算方法などが明文化されておらず、
プログラムの中に埋め込まれたロジックだけが唯一の情報とになっている
ことも少なくありません。これらが業務の把握の障害となります。
業務フロー
システムによる業務処理
システムによる業務処理
(ブラックボックス?)
(ブラックボックス?)
ƒ こうした場合は、業務の不明な部分を現行システムを分析することで補完する必要
があります。
7
7
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
3-1. 現行システムを理解する際の典型的課題
•システムの実質規模が不明確
• システムに課題があるが
保守がベンダー任せで
現状が把握できていない。
•システムが複雑になり、影響範囲特定が困難
・他のシステムとの依存関係が不明確
現状 全体構造
が不明 が不明
改善
方法が
不明
•システムを再構築または保守の改善をしたいが
全体の構造、システム間の関連を示す設計書が無い
詳細構造
が不明
•プログラムの詳細設計書が無く、 現行の機能
把握が困難、保守に苦労している
•システムを有効に活用
して最適化しつつ再構築したい。
しかし、どのようにしたら良いか不明
8
8
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
3-2. 現行システム把握が困難な複雑化したシステム
システムが複雑化してくると、全体構造の理解が難しくなります。現行システムを再構築するた
めにはシステムを可視化し、現行システムを正しく理解する必要があります。
システム
複雑なデータアクセス構造
⇒サブシステム境界が不明
⇒保守時の影響範囲が不明
コピー
非稼働資源が不明
(使用していないプログラム)
受注DB
⇒実質の保守対象が不明
コピーして作成された
重複プログラムの
重複保守
プログラムの
階層化が崩れている
(呼出し関係が複雑化)
在庫DB
コピー
+修正
顧客DB
商品DB
売上DB
コピー
コピー
+修正
9
可視化されて
いないため
以下の線の
システム間の
関係が不明
コール
コピー
+修正
9
更新
参照
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
3-3 システムの可視化のイメージ (資源分析とコール分析の例)
稼働ログとコール分析
結果から非稼働資源
(使用されていない
プログラム)候補を抽出
類似プログラム分析
非稼働資源
コピー
+修正
不要なプログラムを排除、
実質の保守対象を把握、
アプリケーションのスリム化
に使用する。
プログラムのコール
関係を把握する。
コピー
+修正
コピー
コピー
実質プログラム量の
参考資料となる。
アプリケーションの
スリム化、共通化
検討候補となる。
コール
コピー
関係分析
画面操作から順番に
動くプログラムを追い
機能理解の参考となる。
コピー
+修正
コピーして作られた
部分を分析する。
コピー部分の割合
を類似率として分析。
コピー
コピー
+修正
プログラム階層化の
適切度を分析する。
コピー
+修正
10
10
コピー
+修正
コールが循環しており
不適切な階層化である。
コール
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
3-4. システムの可視化のイメージ (データアクセスの例)
CRUD表
プログラムからの
データベース、
ファイルなどのデータ
アクセスを可視化。
A
PGM
受
注
顧
客
A
U
R
B
U
U
C
R
U
D
D
U
R
E
E
R
U
DB
B
以下の目的に使用
コピー
+修正
C
顧客DB
• 影響範囲分析
• データアクセスの
適正化検討資料
• 新システムへの
データ移行の検討
• 段階的移行の
際にサブシステム
間結合度から
移行グループを
検討
(Create / Read / Updated / Delete)
受注DB
コピー
F
F
在庫DB
G
H
G
在
庫
売
上
R
R
R
R
R
H
コピー
商
品
U
U
I
R
R
商品DB
コピー
+修正
I
売上DB
11
11
多数のプログラム
から更新されるDB
はデータアクセス設計
が不適切である
可能性が高い
更新
U
参照
R
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
4. IBMソリューション
ƒ
IBMでは現行システム分析、設計支援のために、製品およびサービスをご提供しています。
ƒ
本資料では、Legacy To SOAサービスでご提供している内容を中心にご説明いたします。
IBMサービス 主に現行システム・再構築のためのシステム分析サービスをご提供します。
Legacy To SOAサービス
(レガシー・トゥー SOAサービス)
ツール群
ARCツール
*ARC (Analysis & Renovation Catalyst)ツールは、
IBMがグローバルにサービスでSOAの推進に使用して
いる多言語解析用のプログラム可能な分析ツールです
IBM製品 システム保守のための影響分析等をお客様ご自身で実施する場合に
IBM製品をご提供しています。
RAA
WSAA
(Rational
Asset Analyzer)
(WebSphere
Studio
Asset Analyzer)
12
12
RTW
(Rational
Transformation
Workbench)
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
4-1. Legacy To SOAサービス (現行システム分析サービス)
システムを可視化し、設計を支援し、システムの再構築や拡張、保守をご支援します。
お客様のソースコード、システムの標準、設計書を参照しながら、お客様の課題にそって
現行のホストシステム、クライアント/サーバーシステムを分析します。
システムをSOA化する場合もそうでない場合も有用なアプローチです。
システム の棚卸をし、実質規模を把握
システム全体分析結果から、
課題と原因の関係を検証
システム を診断
計
設
データ項目の洗練、
スリム化
ム
シス テ
可視
化
診断
全体
分析
設計
支援
詳細
分析
プログラムを再利用する際に
洗練、スリム化
システムの俯瞰的全体構造を分析し、
具体的計画、設計を支援
システムのインターフェースを明確にする
サブシステム、プログラムとデータの
関係の分析
プログラム機能理解のため、対象アプリケーション
の必要な見方にそって、ロジックを抽出
13
13
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
4-2. 分析対象環境
ƒ 複数の言語、ミドルウェア環境に対して分析をしています。
未対応言語にも、機能拡張をして対応しています。
言語(ホスト系)
言語(オープン系)
ミドルウェア
リソース
¾ COBOL
¾ Java
¾ DB2
¾ JCL
¾C
¾ Oracle
¾ SMF
¾ C++
¾ CICS
¾ CICS Log
¾ Delphi (*)
¾ IMS
¾ CICS定義
¾ IBM COBOL
¾ 富士通COBOL
¾ 日立COBOL
¾ Micro Focus
COBOL
¾ PL/I (*)
¾ FORTRAN (*)
¾ Natural
¾ Easy
¾ RPG II
¾ PLSQL (*)
¾ IMS定義
¾ FORTE (4GL)
¾ VSAMカタログ
¾ YPS (4GL)
¾ 画面定義体
(各種)
¾ Shell
¾ JSP
¾ その他お客様固
有リソース
¾ EPS
(*)は、拡張中
ƒ 世界各国の実績では、上記に加えてSCOBOL, TAL, PowerBuilder, Business Basicなど各国のベンダー言
語を含む多数の言語を分析しています。
14
14
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
4-3. 複雑化したメインフレームの言語とオブジェクト指向言語の差
スパゲティ・コード
VS
15
15
マカロニ・コード
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
5. 現行リソース分析、設計支援のステップ
準備
(必要な場合)未対応の言語、未対応のミドルウェア用ツール拡張
診断
全体
分析
設計
支援
詳細
分析
既存設計資料の確認、アーキテクチャーの理解
リソースの整合性チェック
アセット
インベントリー
全体分析
棚卸(実質コード量の把握)
非稼動資源分析
類似性分析等
全体分析結果を元に診断
俯瞰的全体構造の分析
JCLとプログラム、ファイルの関係の分析
プログラム間のCALL分析
プログラムとDB、ファイルのアクセスの分析 (CRUD分析)
業務視点でのグルーピングを検証
サブシステムの結合度を分析
詳細分析
ロジック抽出のための分析 (プログラムの特性毎に方法を選択)
コメント抽出 (コメントが標準化されており一定の信頼性がある場合)
変数名、プログラム名を辞書で置換し、可読性を向上させる
データ項目別、導出、編集項目条件と処理の抽出
エラーメッセージ発行、固有APIアクセス条件の抽出等
設計支援
データ項目の洗練
(同音異義、異音同義の整理、スリム化)
プログラムの共通化、精錬
16
16
診断
業務
分析
マッチング
補完
(トップ
ダウン
分析)
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
5-1. アセットインベントリー
準備
アセット
インベントリー
既存設計資料の確認、アーキテクチャーの理解
リソースの整合性チェック
棚卸(実質コード量の把握)
非稼動資源分析
類似性分析等
全体分析
業務
分析
(トップ
ダウン
分析)
詳細分析
設計支援
17
17
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
非稼働資源分析
ƒ 長期間保守してきたシステムでは、使用されていないプログラム(非稼働資源)が増加する傾
向にあります。これらを識別し、実質のシステムのサイズを把握することは大切です。
ƒ 稼動ログとプログラムの呼び出し関係から非稼動候補を抽出します。
プログラム名
プログラム名
機能対応表から
得た日本語名称
プログラム
SEQ
メンバー名
日本語名称
年間プログラム
稼働回数
プログラムのサイズ情報
稼動情報
オリジナル・ソース情報
稼動
2006年
/非稼動 稼動回数
サブシステム名
プログラム全体
PROCEDURE DIVISION以前
PROCEDURE DIVISION以降
定義Line数 有効Line数 コメント行数 定義Line数 有効Line数 コメント行数 定義Line数 有効Line数 コメント行数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BCE5010P
BCE5231P
BCE5240P
BCE5241P
BCE5250P
BCE5260P
BCE5261P
BCE52B0P
BCE52D0P
BCE5300P
BCE5310P
BCE5320P
BCE5330P
BCE5340P
BCE5410P
BCE5420P
BCE5430P
BCE5440P
BCE5450P
BCE5460P
QSNO仕掛り工程問合せ
仕分在庫指示変更(2)
仕分倉庫場所・段入力処理
仕分倉庫場所段(2)
仕分倉庫段入力処理(BNO単位)
仕分搬入バーコード処理
仕分搬入処理
在庫指示自動決定処理
置場実績受入れ
在庫マップ
検査予定品内容分析表
仕分倉庫搬出予定明細表
○特ライン扱い後在庫指示リスト
仕分倉庫トータル在庫表
搬出予定品決定変更(場所単位)
搬出予定品決定変更(BNO単位)
船名コード指定浜出し予定リスト
仕分倉庫払出し指示表作成処理
仕分倉庫出荷立会指示表
台車積み明細決定処理
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
稼動
3,689
2
2,607
1,437
18
1
1
1
1
5,820
1,784
17
4
10
16
2,899
32
133
18,695
28
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
仕分・出荷
18
2,101
2,867
2,320
2,808
578
2,761
1,760
1,643
626
2,300
4,468
2,308
2,269
584
1,577
1,473
1,804
6,382
5,776
2,296
18
1,780
2,654
2,108
2,455
512
2,560
1,629
1,353
540
2,017
4,189
2,063
2,032
505
1,482
1,367
1,660
6,072
5,348
2,163
321
213
212
353
66
201
131
290
86
283
279
245
237
79
95
106
144
310
428
133
609
462
367
276
156
449
436
361
276
469
665
620
684
120
235
271
623
1,953
1,472
513
593
455
360
262
148
441
427
348
264
458
649
607
644
114
222
255
617
1,915
1,383
505
16
7
7
14
8
8
9
13
12
11
16
13
40
6
13
16
6
38
89
8
1,492
2,405
1,953
2,532
422
2,312
1,324
1,282
350
1,831
3,803
1,688
1,585
464
1,342
1,202
1,181
4,429
4,304
1,783
1,187
2,199
1,748
2,193
364
2,119
1,202
1,005
276
1,559
3,540
1,456
1,388
391
1,260
1,112
1,043
4,157
3,965
1,658
305
206
205
339
58
193
122
277
74
272
263
232
197
73
82
90
138
272
339
125
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
類似性分析
26
30
87
42
26
30
30
36
42
66
30
36
ABCDE036
33
80
30
36
33
ABCDE035
71
33
26
30
ABCDE034
30
36
42
ABCDE033
26
30
ABCDE032
ABCDE029
33
ABCDE030
ABCDE028
ABCDE024
ABCDE003
ABCDE002
ABCDE027
11
ABCDE026
12
ABCDE025
10
ABCDE000
11
10
ABCAE004
11
11
11
ABCAE003
#Block #Sttmt
8 2,934
10 4,388
10 3,820
7 2,146
8 4,350
7 2,338
10 4,342
5 1,221
7 5,905
5 1,532
8 5,069
6 4,380
7 5,114
5 1,190
6 3,561
8 4,653
6 3,955
6 1,365
4
691
7 1,920
5 1,700
11 11,421
6 3,464
ABCAE002
ABCAD000
ABCAE000
ABCAE002
ABCAE003
ABCAE004
ABCDE000
ABCDE002
ABCDE003
ABCDE024
ABCDE025
ABCDE026
ABCDE027
ABCDE028
ABCDE029
ABCDE030
ABCDE032
ABCDE033
ABCDE034
ABCDE035
ABCDE036
ABCDE037
ABCDE200
ABCDE202
ABCAE000
プログラム
類似性分析
(クローン
ブロック数%)
ABCAD000
„類似性の高いプログラムが多数存在している場合、機能追加・変更が生じると
重複して保守すべきプログラムの範囲が広くなります。
12
11
11
11
23
23
33
26
30
71
33
30
36
33
80
42
26
30
30
36
33
26
30
30
36
87
42
42
66
26
30
83
30
36
42
83
30
30
19
19
30
42
30
50
40
30
36
50
40
30
36
15
36
14
16
15
36
14
16
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
5-2. 全体分析
準備
アセット
インベントリー
全体分析
俯瞰的全体構造の分析
プログラムとトランザクションの関連分析
JCLとプログラム、ファイルの関係の分析
プログラム間のCALL分析
プログラムとDB、ファイルのアクセスの分析 (CRUD分析)
業務視点でのグルーピングを検証
サブシステムの結合度を分析
業務
分析
マッチング
補完
(トップ
ダウン
分析)
詳細分析
設計支援
20
20
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
モジュール構造図
構成プログラ
モジュール
SEQ.NO
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
5
5
5
6
6
6
7
7
8
8
8
8
9
9
10
10
10
10
10
11
11
12
12
12
12
12
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
5
5
5
6
6
6
7
7
8
8
8
8
9
9
10
10
10
10
10
11
11
12
12
12
12
12
1
2
3
4
5
1
2
3
4
1
2
3
4
1
2
3
1
2
3
1
2
3
1
2
1
2
3
4
1
2
1
2
3
4
5
1
2
1
2
3
4
5
モジュール名
ライブラリ名
メンバー名
プログラムID
トランザクション
トランザクション名称
MX0265
MX0265
MX0265
MX0265
MX0265
MXB020
MXB020
MX0265
MXD265
MXD265
MXD265
MXD265
MXD265
MXD020
MXD020
MXH265
MXE330
MXE330
MXE330
MXE340
MXE340
MXE340
MXG265
MXG265
MXH265
MXH265
MXH265
MXH265
MXH020
MXH020
MXH570
MXH570
MXH570
MXH570
MXH570
MXI265
MXI265
MXI020
MXI020
MXI020
MXI020
MXI020
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
APM1.ROTLIB
MX0265
MX0265
MX0265
MX0265
MX0265
MXB020
MXB020
MX0265
MXD265
MXD265
MXD265
MXD265
MXD265
MXD020
MXD020
MXH265
MXE330
MXE330
MXE330
MXE340
MXE340
MXE340
MXG265
MXG265
MXH265
MXH265
MXH265
MXH265
MXH020
MXH020
MXH570
MXH570
MXH570
MXH570
MXH570
MXI265
MXI265
MXI020
MXI020
MXI020
MXI020
MXI020
MX0265
MX0265
MX0265
MX0265
MX0265
MXB020
MXB020
MX0265
MXD265
MXD265
MXD265
MXD265
MXD265
MXD020
MXD020
MXH265
MXE330
MXE330
MXE330
MXE340
MXE340
MXE340
MXG265
MXG265
MXH265
MXH265
MXH265
MXH265
MXH020
MXH020
MXH570
MXH570
MXH570
MXH570
MXH570
MXI265
MXI265
MXI020
MXI020
MXI020
MXI020
MXI020
LS01
LS01
LS01
LS01
LS01
MF02
MF02
MF02
MF02
LP01
LP01
LP01
LP01
LP02
LP02
LP02
LP03
LP03
LP03
LP04
LP04
LP04
MG01
MG01
MK01
MK01
MK01
MK01
MK02
MK02
MK03
MK03
MK03
MK03
MK03
MI01
MI01
MI02
MI02
MI02
MI02
MI02
受注入力処理
受注入力処理
受注入力処理
受注入力処理
受注入力処理
受注検証
受注検証
受注検証
受注検証
在庫確認
在庫確認
在庫確認
在庫確認
在庫引当処理
在庫引当処理
発注1サイクル入力処理
期間特定処理
期間特定処理
期間特定処理
前特別指定
前特別指定
前特別指定
受注全情報問合せ
受注全情報問合せ
発注3サイクル入力処理
発注3サイクル入力処理
発注3サイクル入力処理
発注3サイクル入力処理
納品計上処理
納品計上処理
発注1K回転チェック
発注1K回転チェック
発注1K回転チェック
発注1K回転チェック
発注1K回転チェック
在庫一覧
在庫一覧
受領書作成
受領書作成
受領書作成
受領書作成
受領書作成
21
21
構造番号
0
1
2
1
2
0
1
1
1
0
1
2
1
0
1
1
0
1
2
0
1
1
0
1
0
1
1
2
0
1
0
1
1
1
1
0
1
0
1
1
1
1
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
コール関係 レポート例
ƒ プログラム間のコールの関連を分析するのは、どの言語の解析でも基本です。
以下はJavaのプログラム間のコールを、パッケージ間のコール関係でまとめた
ものです。
パッケージの依存関係が網目状に複雑になっています
22
22
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
コール関係分析
コール関係を表形式で出力します。
図によってコール関係のレポートを出力します。
Call Sequence
プログラムの個別の分析をする際には、呼び出し元と呼び出し先の
プログラがわかっていると分析しやすくなります。
23
23
1
2
3
4
5
6
co.ibm.abc.sub1.screen.entry07.Order
co.ibm.abc.order.entry.VimSmallSin
co.ibm.abc.order.entry.VimItemEntity
co.ibm.abc.order.entry.VimItem
co.ibm.abc.order.entry.VimItemoSetInfoEntity
co.ibm.abc.order.entry.VimItemoSetInfo
co.ibm.abc.order.entry.VimCheckParent
co.ibm.abc.order.entry.VimCheck
co.ibm.abc.order.es.biz.VimCheck
co.ibm.abc.order.en.bi
co.ibm.abc.order.entry.VimCheck
co.ibm.abc.order.entry.VimCheckSumParent
co.ibm.abc.order.entry.VimCheckSum
co.ibm.abc.order.es.biz.VimCheck
co.ibm.abc.order.entry.VimCheckSum
co.ibm.abc.order.entry.VimCheckSumSuchi
co.ibm.abc.order.tk.bizdata.VimCh
co.ibm.abc.order.tk.bizdata.VimCheckBCance
co.ibm.abc.order.tk.bizdata.VimCheckBOnlyP
co.ibm.abc.order.entry.VimCheckSuchi
co.ibm.abc.order.entry.DomCollect
co.ibm.abc.order.entry.MaintMtgyoNo
co.ibm.abc.order.entry.CheckData
co.ibm.abc.order.entry.CheckData
co.ibm.abc.order.entry.StatusVimCheckMaint
co.ibm.abc.order.entry.StatusVimCheckSumMaint
co.ibm.abc.order.entry.utility.VimCheck
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
コール関係分析
評価関数でソートした結果
多数から呼ばれるプログラムが
右側に寄せられます。
左側は他を呼ぶプログラムを
寄せます。
他から呼ばれない
プログラム
ただしプログラムのコールが
循環していると対角線の左下
側にコールがでてきます。
B→C
C→B
呼出先
A
呼
出
元
B
C
A
B
C
業務共通
X
システム共通
X
24
24
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
データアクセス 分析
C
CR
UR
R
UR
TEFB020 契約窓口
営業員別
TECB880 売上成績
TECB856 営業員管理
R
TECB823 月別売上集計
R
R
TECB817 売上
TECB816 商品代替品
R
R
R
C
R
R
TECB02K 価格マスター
顧客別
TECB017 購買実績
TECB016 住所マスター
TECB00Q顧客マスター
CRU
URD
TECB02J 商品マスター
受注登録
受注照会・変更
割引率計算
受注集計
日時受注帳票印刷
顧客登録
顧客照会・変更
実績登録
商品マスター登録
商品マスター変更、削除
商品集計
日次売上集計
月次売上集計
営業員別生成計算
契約管理
TECB00H 受注集計
プログラム
ABC100
ABC110
ABC120
ABC150
ABC200
ACR105
ACR200
ACR210
APM100
APM200
APM300
AVX100
AVX1015
AVZ220
AWF400
テーブル
CRUD
TECB00F 受注
„ 同一テーブルへ複数のプログラムからのデータ作成、更新処理があります。
この例ではサブシステムの機能の責任範囲が曖昧です
U
R
CR
UR
CU
CU
CU
CU
URD URD URD
R
R
CUR
U
R
25
CUR CUR
UR
CUR
25
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
ビジネスとシステムリソース分析のマッチング例
更新されていない古い仕様書
設計当初の業務名称と
変数名の対応表が
ついているが、今は保守
されておらず、現状と
異なっている。
組み合わせ一致度評価
によるマッチング
ビジネス上の用語と
システム内部の名前のギャップ
稼動中の現行リソース
現行画面定義
(Web画面)
英語名称と断片的に
古い業務名称が書いてあるが
全体は何の項目か不明
ID
名称
画面外部定義設計書
No.
1
2
3
4
5
6
7
8
9
10
11
12
項目説明
項目名
ORDER-NO
KUBUN-NO
DAICHO-NO
TANTO-NAME
KUBUN
PROD1
PROD2
NAIYOSELECT
BANKEY1
BANKEY2
TANTO-TEAM1
TANTO-TEAM2
受注分番号
区分番号
台帳番号
担当氏名
区分
製品名1
製品名2
内容選択ID
製品名キー1
製品名キー2
担当課
担当課
マッチング結果
要調査
true
桁数
8
8
1
1
1
50
50
2
10
10
20
20
26
全角
開始 終了
半角
A
A
A
A
A
G
G
A
A
A
A
G
26
要確認項目には
マークをつける
作成者 ARC生成
ORD3020
受注登録画面
設定
規定値
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
WEB(入力)
‘1’入力
更新者
項目見出し
‘1’入力
'*'入力
'*'入力
'*'入力
作成日
更新日
1.リクエスト項目
備考
IN-FLD011
IN-FLD012
IN-FLD014
IN-FLD015
IN-FLD016
IN-FLD017
IN-FLD019
IN-FLD020
IN-FLD021
IN-FLD022
IN-FLD023
IN-FLD024
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
5-3. 詳細分析
準備
アセット
インベントリー
分析対象のシステムのアーキテクチャーを理解し、オンライン、バッチ、共
通APIの使い方などの、プログラムの特性を利用し、特徴的にロジックを抽
出する方法を決めてツールによって分析します。
業務分析結果、例えばビジネスユースケース、ビジネスルール分析
結果と、このロジック分析結果を突合せることで検証、補完をします。
業務
分析
全体分析
(トップ
ダウン
分析)
ロジック抽出のための分析 (プログラムの特性毎に方法を選択)
詳細分析
•コメント抽出 (コメントが標準化されており一定の信頼性がある場合)
•変数名、プログラム名を辞書で置換し、可読性を向上させる
•データ項目別、導出、編集項目条件と処理の抽出
マッチング
•エラーメッセージ発行、固有APIアクセス条件の抽出等
補完
設計支援
27
27
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
ロジック分析例 - 画面操作とエラーメッセージの関係から分析 (Java)
このオンライン分析の例では、画面のエラーメッセージに着目することで、整合性チェック条件、
およびDBのビジネスデータにセットされる内容を抽出しています。
エラーメッセージ
エラーメッセージ
Web画面
Webフレームワーク
入力
整合性
ビジネスデータ
ボタン
イベント処理
チェック
チェック
(DB) 更新
画面からのフレームワーク毎の
入力チェックルールを抽出
チェックルールを抽出
一連の動作を分析
ビジネスデータとして
セットされる内容を抽出
Web業務処理チェック一覧
画面ID
xxxAPM05001
画面名称
受注入力
ボタン/リンク
チェック項目
「実行」ボタン 受注氏名コード
xxxAPM05001
受注入力
「実行」ボタン
xxxAPM05002
受注内容検索確定 「確認」ボタン
xxxAPM0500
受注内容修正
xxxAPM05002
チェック内容
sessCommon != null
AND data.isKKKK受注氏名コード()
MESSAGE-ID
エラーメッセージ
共通データがセットされていません
OK
sessCommon != null
AND NOT (data.is受注氏名コード())
xxx91NN
氏名コードが登録されていません
setsProdCategory != "1"
AND wSearchDetail == null
xxxNN01
商品名が間違っていなす
code != ""
AND NOT (vali.xxxShozokuCheck(code))
AND ((data.get処理区分() == "KESSAI")
OR (data.get処理区分() == "KESSAI_TORIKESHI"))
xxx90NN
詳細番号が確定されていません
受注内容検索確定 「確認」ボタン
(setsubiJutsyuCategory == "1")
AND wSearchDetail == null
xxxNN01
記入漏れ項目かあります
xxxAPM05002
受注内容検索確定 「確認」ボタン
(setsubiJutsyuCategory == "1")
AND wSearchDetail == null
xxxNN01
記入漏れ項目かあります
xxxBPM4700
在庫検索一覧
((((wProd受注.geValueT_区分コード() == "1")
OR (wProd受注.geValueT_区分コード() == "2")
OR (wProd受注.geValueT_区分コード() == "9")
OR (wProd受注.geValueT_区分コード() == ""))
AND (("受注-kick" != strShoriCategory
AND sessCommon != null)
OR ("受注-kick" == strShoriCategory)))
OR (wProd受注.geValueT_区分コード() != "1"
AND wProd受注.geValueT_区分コード() != "2"
AND (strShoriCategory == "KOUKA")
AND wProd受注.get新訂区分名() != "削除"
AND model == null
xxxN001
対象在庫が、例外在庫引き当てにより既にありません
「実行」ボタン
「完了」ボタン
受注氏名コード
管理者確認コード
28
28
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
ロジック抽出例 – 導出/編集条件抽出の例 (COBOL)
このバッチの例では、以下のような処理にそってビジネスデータがどのような条件で更新されるかを
網羅的に抽出します。
データ
条件式で処理の
各仕分け条件で値を
データ
読み取り
仕分け
導出、編集
出力
②着目するデータ毎
に仕分け条件を抽出
③各条件で導出、編
集する値を抽出
①出力するビジネス
データに着目
データ導出/編集ルール
プログラム
FMPR200
変数
CUSTOM-AV
条件ID 条件
250 ---- MAIN0 ---COM-A-IVENT = '2'
---- FSUB--MAIN-K ---COM-M-PTRN(1) <> SPACE
---- LOOP SB1=1 BY 1 UNTIL @821 ---(SB1 <= WKTBL
AND KUBUN-MKT <> '1')
AND COM-M-PTRN(SB1) = 'I'
---- FMPR70-KAKUNIN ------- FMPR71-PRG-ENTRY ----
値
ABC-CUSTOM-AV
行
セクション
843 FMR2-PQC5-ENTRY
CST-ADDR
251 ---- MAIN0 ---COM-A-IVENT = '2'
---- FSUB--MAIN-K ---COM-M-PTRN(1) <> SPACE
---- LOOP SB1=1 BY 1 UNTIL @821 ---(( SB1 <= WKTBL
AND KUBUN-MKT <> '1')
AND COM-M-PTRN(SB1) = 'U')
COM-ADDR
1250 FMR2-PQC5-ENTRY
CST-KUBUN
252 ---- MAIN0 ---COM-A-IVENT = '2'
---- FSUB--MAIN-K ---COM-M-PTRN(1) <> SPACE
---- LOOP SB1=1 BY 1 UNTIL @821 ---((SB1 <= WKTBL
AND KUBUN-MKT <> '1')
AND COM-M-PTRN(SB1) = 'I')
FL1-KUBUN
2397 FMR2-PQC5-ENTRY
29
29
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
5-4. 設計支援
準備
アセット
インベントリー
業務
分析
全体分析
(トップ
ダウン
分析)
詳細分析
設計支援
データ項目の洗練
(同音異義、異音同義の整理、スリム化)
プログラムの共通化、精錬
30
30
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Confidential
IBM Software Group | WebSphere software
データ項目の洗練
用語洗練ツール入力ファイル
【用語仮名称】
既存辞書の取り込み
既存データ項目のシンボル名・日本語名称
・属性などを取り込む
COPY句
辞書
既存用語:システム情報
既存用語
単語分解
用語を構成する単語に分解する
ファイル仕様書
既存単語
新規名称付与
既存単語に対して、正しい日本語
名称,シンボル名を付与する
新規単語
用語の組み立て
既存用語を新規単語で置き換え新規
用語を組み立てる
ベース新規用語
31
31
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
6. まとめ
ƒ システムを再構築する、あるいは保守品質を改善するなど、多く
のシーンで現行システムを分析し、理解するアプローチは有用
です。
ƒ Legacy To SOAの現行システム分析、設計支援は、システムを
SOA化する、しないに関わらず適用できるアプローチです。
32
32
© 2009 IBM Corporation
© 2008 IBM Corporation
IBM Software Group | WebSphere software
IBM Confidential
ご静聴ありがとうございました
33
33
© 2009 IBM Corporation
© 2008 IBM Corporation
Fly UP