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