JP2009230618A - 設計書作成プログラム、該装置、及び該方法 - Google Patents

設計書作成プログラム、該装置、及び該方法 Download PDF

Info

Publication number
JP2009230618A
JP2009230618A JP2008077268A JP2008077268A JP2009230618A JP 2009230618 A JP2009230618 A JP 2009230618A JP 2008077268 A JP2008077268 A JP 2008077268A JP 2008077268 A JP2008077268 A JP 2008077268A JP 2009230618 A JP2009230618 A JP 2009230618A
Authority
JP
Japan
Prior art keywords
class
log
sql
name
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008077268A
Other languages
English (en)
Other versions
JP5045517B2 (ja
Inventor
Fumiyo Haga
扶美世 芳賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008077268A priority Critical patent/JP5045517B2/ja
Publication of JP2009230618A publication Critical patent/JP2009230618A/ja
Application granted granted Critical
Publication of JP5045517B2 publication Critical patent/JP5045517B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】実行プログラムのから出力された実行ログに基づいて、オブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成する。
【解決手段】設計書作成プログラムは、実行ログから、クラス名、メソッド名、処理種別、処理内容情報の項目を選択したログを抽出し、該抽出した各ログにシーケンス番号を付与してログ抽出情報を生成し、そのログ抽出情報からSQL発行ログを抽出しデータ操作言語毎にSQLの操作対象のテーブル名とシーケンス番号とを関連付けたSQL解析情報を取得し、ログ抽出情報からSQL発行ログのクラス名を取得し、SQL解析情報からテーブル名を取得し、クラス名とテーブル名とのマトリックスを作成し、シーケンス番号に基づいて、データ操作言語を特定する記号をそのマトリックスに配置してテーブル・クラス関係表を作成することにより、上記課題の解決を図る。
【選択図】図1

Description

本発明は、アプリケーションソフトウェアの設計書作成に関する。
アプリケーションソフトの開発では、システム構造設計時、ユースケース・テーブルマトリックスやエンティティマトリックスを作成する。実際に作成したソフトウェアについては、仕様通りに動作する事かどうか試験工程で確認される。
特にWebアプリケーションソフトの多くはRDBMS(Relational DataBase Management System)を使用しており、プログラムによってデータを参照・更新するシステムがほとんどと言っても過言ではない。また、WEBアプリケーションは、サーバサイドでの改造のみで利用者の利便性の向上が図れるなどの利点がある。一方で、Webアプリケーションは、クライアント・サーバシステムに比べて、ソフトウェアの改造要求の頻度が高く、短期間での改造を求められる。
ソフトウェアの開発においては、上流工程で仕様書を作成し、画面仕様書、テーブル仕様書を作成する。そして、どの操作をすると、どのデータを参照し、どのデータを更新するかを、ソフトウェア構造設計書として設計する。試験工程では、実際に作成したソフトが仕様書の要求通りに動作するか否かを画面や帳票などに出力することで検証する。
既存のシステムの改造をする場合、そのシステム設計書を入手し、そのシステム概要を把握し、改造点を洗い出し、改造システムの設計、作成、検証を行う。この場合に使用するのは現設計の設計書、プログラムソース、出力となる画面、及び帳票であり、これらを基に既存システムを解析し、改造システムを設計する。
図10は、従来におけるソフトウェア開発の概念図である。ソフトウェアの開発は、一般的に、要求仕様、設計工程、製造工程、試験工程の流れで進んで行く。(1)は、設計工程の生産物からソースプログラムを生成する従来技術である。(2)は、ソースプログラムから設計書を生成する従来技術である。(4)は、実行ログから操作マニュアルを生成する従来技術である。
従来、オブジェクト指向プログラムの生成や解析においては、開発フレームワークのような設計書からソースプログラムを自動生成する技術およびソースプログラムから設計書を自動生成する技術がある(例えば、特許文献1〜3)。また、実行中プログラムからロギング情報を取得し、操作マニュアルを作成する技術として、「マニュアル類の自動作成、更新方法」がある(例えば、特許文献4)。また、分散DBMSの障害時のリカバリ方式として、ホストでチェックポイント時のDBMSのバックアップと、端末で実行したSQLのログを保持し、端末障害時にホストで保持するDBMSのバックアップに対し、SQLのログからロールバック、ロールフォワードを実行し、端末RDBMSを作成し直す技術として、「リカバリ方式」がある(例えば、特許文献5)。また、Job Control Language(JCL、ジョブ制御言語)に関し、プログラムとファイルの相関図を作成する技術として、「要素項目処理相関分析システム」がある(例えば、特許文献6)。
特開平11−95990号公報 特開平10−198556号公報 特開2000−112742号公報 特開平6−67864号公報 特開昭63−183746号公報 特開昭61−015234号公報
従来の方式では、検証方法が画面や帳票などを確認することであり、各検証の記録は試験項目の合否として管理される。しかしながら、このような過去の検証の証拠を全て記憶、記録することは大変難しい。
また、システムの改造においては、現在稼動中のシステムのソフトウェア構造を把握するところから作業が始まる。しかしながら、ソフトウェア構造の把握において膨大な設計書を理解したり、設計書に不足や不備があれば更に膨大なソースを解析する事になる。
このようなソース解析においては、従来技術のソースプログラムから設計書を自動生成する技術は有効である。例えば、ソースプログラムからオブジェクトの関連を静的に把握する事は可能である。しかしながら、プログラムロジック等により動的に生成されるSQL命令や、RDBMSに格納されたデータによって動的に変化する内容を自動解析する方法はなく、ソースコードを読んで解析するしかない。このソースコードの解読は、非常に時間がかかると同時に、解読結果に誤りが発生する可能性が高い。
また、実行中プログラムからロギング情報を取得して操作マニュアルを作成する技術として、特許文献4がある。ところが、特許文献4では、実行時のロギング情報から作成する対象が操作マニュアルであり、ソフトウェアの構造設計書を作成する事はできない。よって改造時等の構造分析に必要な情報を取得することができない。
特許文献5の技術は、障害時にDBMS自体をどの時点まで再作成可能とするかの手法である。この手法において、ロギングしたSQLは、ロールバック、ロールフォワードの為に使用するものであり、SQL文を構文解析してどのテーブルを変更したかを解析するものではない。
特許文献6の技術は、JCLの定義により静的にプログラムとファイルの相関関係を提供する手段である。この手法は、前述のソースプログラムからクラス関連図を静的に出力する技術と同様に、静的解析には有効ではある。しかしながら、JCLという規定の定義言語に依存した技術であるため、オンラインWebアプリケーション開発におけるオブジェクトとテーブルの相関関係を取得する事はできない。
また、図10において、(2)はプログラムソースと設計との整合を確認できるものでるが、実動作と設計との整合を確認できなかった。また、(4)は実行ログから仕様書レベルの操作マニュアルを作成するものであるが、ソフトウェア構造設計書を生成するものではなかった。このように、従来、(3)実行ログから設計書を生成する技術はなかった。
また、従来のソースプログラムの解析において、ソースコードは静的なものであり、クラス関連の解析結果は網羅的であるが、プログラムロジックにより動的に生成するSQL文を知ることはできない。そのため、クラス・エンティティマトリックスを生成する事はできなかった。
このように、従来、ソースコードなどから仕様書を自動的に生成する技術があるが、SQL文など、実行時の値を見なければ、どの処理が、どのファイルを操作しているかの判断できない部分については、ソースコードから仕様書を生成することができない。
上記課題に鑑み、実行プログラムのから出力された実行ログに基づいて、実際に実行されたオブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成することを目的とする。さらに、そのオブジェクト間遷移の関係、または操作ユーザと操作ユーザによりアクセスされたテーブルとの関係を示す設計書を容易に作成することを目的とする。
本明細書で開示のソフトウェアの設計書の作成をコンピュータに実行させる設計書作成プログラムは、少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得処理と、前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出処理と、前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析処理と、前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成処理と、を、コンピュータに実行させることを特徴とする。
このように構成することにより、実行プログラムから出力された実行ログに基づいて、実際に実行されたオブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成することができる。
前記設計書作成プログラムの前記設計書作成処理は、さらに、前記テーブル・クラス関係表に基づいて、少なくとも、前記テーブル名に対応するテーブルを図式化したテーブルオブジェクトと、前記クラス名に対応するクラスを図式化したクラスオブジェクトと、前記各SQLデータ操作言語に対応し該オブジェクト間を接続する図式化されたコネクタと、に基づいて、前記テーブル・クラス関係表を図式化することを特徴とする。
このように構成することにより、前記テーブルとクラスとの関係が視覚的により分かりやすい設計書を作成することができる。
前記設計書作成プログラムにおいて、前記テーブルオブジェクトに対する前記SQLデータ操作言語については、前記コネクタの始点、終点、及び該テーブルオブジェクトとの接点位置の組み合わせによって定義され、前記クラスオブジェクトに対する該SQLデータ操作言語については、該コネクタの始点、終点、及び該クラスオブジェクトとの接点位置との組み合わせによって定義された図式化接点定義に基づいて、前記設計書作成処理は、前記テーブル・クラス関係表を図式化することを特徴とする。
このように構成することにより、図式化接点定義に基づいて、前記テーブル・クラス関係表を図式化することができる。
前記設計書作成プログラムは、さらに、前記ログ抽出情報から前記処理種別が操作開始または処理開始を示す情報を有するログを抽出し、該各ログから前記シーケンス番号と前
記クラス名と該処理種別と前記処理内容情報とのデータ項目を選択したログを、クラスの遷移を解析するためのクラス遷移情報として取得するクラス解析処理、をコンピュータに実行させ、前記設計書作成処理は、さらに、前記クラス遷移情報から前記クラス名を重複なく取得し、前記クラス遷移情報から前記処理内容情報を取得し、該クラス名と該処理内容情報との組み合わせを表すマトリックスを作成し、該クラス遷移情報内の前記処理種別を前記シーケンス番号順に検索して該処理種別に操作開始が現れる毎に該各検索した処理種別に対応するクラス名に採番し、前記作成したマトリックスの対応する位置に該採番した番号を配置することにより、前記設計書としてクラス遷移表を作成することを特徴とする。
このように構成することにより、実行プログラムから出力された実行ログに基づいて、実際に実行されたオブジェクト間遷移の関係を示す設計書を容易に作成することができる。
前記ログ抽出情報には、さらに、前記操作開始の要求の指示をしたユーザ名が含まれ、前記設計書作成処理は、さらに、前記ログ抽出情報から前記SQLを含む前記ログの有する前記ユーザ名を重複なく取得し、前記SQL解析情報から前記テーブル名を重複なく取得し、該ユーザ名と該テーブル名との組み合わせを表すマトリックスを作成し、該ユーザ名毎に、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・ユーザ関係表を作成することを特徴とする。
このように構成することにより、実行プログラムから出力された実行ログに基づいて、操作ユーザと操作ユーザによりアクセスされたテーブルとの関係を示す設計書を容易に作成することができる。
本明細書で開示のソフトウェアの設計書の作成を支援する設計書作成装置は、少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得手段と、前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出手段と、前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析手段と、前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成手段と、を備えることを特徴とする。
このように構成することにより、実行プログラムから出力された実行ログに基づいて、実際に実行されたオブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成することができる。
本明細書で開示のソフトウェアの設計書の作成をする設計書作成方法は、少なくとも、
クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得し、前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成し、前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得し、前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する、ことを特徴とする。
このように構成することにより、実行プログラムから出力された実行ログに基づいて、実際に実行されたオブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成することができる。
本明細書で開示のプログラムを用いることにより、実行プログラムから出力された実行ログに基づいて、実際に実行されたオブジェクトとそのオブジェクトで使用するテーブルとの関係を示す設計書を容易に作成することができる。さらに、そのオブジェクト間遷移の関係、または操作ユーザと操作ユーザによりアクセスされたテーブルとの関係を示す設計書を容易に作成することができる。
図1は、本実施形態における実行ログによるエンティティマトリックス自動生成処理システムの全体のフローを示す。従来技術として、ソース解析処理部102により、ソースプログラム101の網羅的な解析によるクラス関連図103が生成される手法は存在していた。
本実施形態では、以下のことを実現する。まず、ソースプログラム101をビルドして、実行形式プログラム105を作成し、運用システムのサーバ104に搭載する。サーバ104は、クライアント端末107からの所定の操作を受け付けると、運用システム用RDBMS106を参照/更新し、その要求に対する処理を行う。
その操作に応じてサーバ104が処理を実行した後、実行ログ109が出力される。ログとして出力する項目については、ログ出力レベル定義108で実行時の定義レベルを調整することにより、出力の有無指定が可能である。
ここで、実行ログ109は、オブジェクトメソッドの開始時、SQL発行時、メソッドの終了時、の最低3箇所で出力されるように、所定のコードがソースプログラム101に実装されている。
さらに、実行時に与えられるセッションIDやユーザIDなどと共に、所定の出力項目をログとして出力するようにソースプログラム101に実装している。そのように出力項目を選択する理由は、後述の解析の入力となるデータを出力させるためである。
エンティティマトリックス自動生成システム110は、実行ログ定義ファイル111、ログ解析処理部(ログ抽出処理部)112、解析用RDBMS113、クラス解析処理部114、SQL解析処理部115、設計書作成処理部116、図式化接点定義710を有する。
ログ解析処理部(ログ抽出処理部)112は、実行ログ定義ファイル111に基づいて、実行ログ109を解析して所定のログを抽出し、その抽出したログをログ抽出情報として解析用RDBMS113に格納する。
実行ログ定義ファイル111には、実行ログ109のフォーマットを読み取るための実行ログ定義情報が、実行ログ109の出力結果に合わせて定義されている。ログ解析処理部112は、実行ログ109と実行ログ定義情報を読み込み、実行ログ定義情報に従って解析に必要であるとして定義された項目のみを抽出する。それから、ログ解析処理部112は、その抽出したログに対して時系列にシーケンス番号を付加し、ログ抽出情報として解析用RDBMS113に格納する。
クラス解析処理部114は、ログ抽出情報に基づいて、クラス遷移に関する情報を解析する。通常、Webアプリケーションは、クライアントからの要求を受け付ける操作受付クラスが実装されている。クラス解析処理部114は、操作受付クラスの操作名に始まって、クライアントに要求内容を返すまでのクラス遷移を解析する。
SQL解析処理部115は、ログ抽出情報に基づいて、発行されたSQL文を解析し、SQL文の構文解析を行う。SQL解析処理部115は、SQL文構文解析を行うことにより、アクセスするテーブル名、フィールド名、アクセス対象レコードを分析する。SQL文の構文は、使用するRDMSの種類により多少の構文の違いはある。そこで、SQL解析処理部115は、実行プログラム中で使用されたRDBMSの仕様におうじた構文解析処理を行う。本実施形態では、SQLの構文解析によりアクセスするテーブル名、フィールド名を取得する例を後述する。
設計書作成処理部116は、ログ解析処理部112、クラス解析処理部114、及びSQL解析処理部115の処理結果からシーケンス番号によって結合されるログ抽出情報の各項目を、クラス単位、テーブル単位、ユーザ単位などのさまざまな角度から解析する。具体的には、設計書作成処理部116は、代表的にはクラス遷移図、クラス・エンティティマトリックス、ユーザ・エンティティマトリックス、及び関係図を作成する。その他にもユーザ毎に、いつ、だれが、どのデータをどのようにアクセスしたか等の追跡や、利用者と利用操作の関連など各種解析もすることができる。
設計書作成処理部116は、クラス遷移作成処理部116a、マトリックス作成処理部116b、図式化処理部116cからなる。クラス遷移作成処理部116aは、クラス遷移図117を作成する。マトリックス作成処理部116bは、所定のマトリックス118を作為する。図式化処理部116cは、作成されたマトリックス118を図式化(119)して出力する。
上述の通り、実行ログ定義ファイル111に基づいてログ解析処理部112により抽出されたログ抽出情報から、クラス解析処理部114、SQL解析処理部115、および設計書作成処理部116により、クラス遷移図117およびマトリックス118等の設計書が作成される。
なお、上述の機能の実装の形態としては、オンラインシステムに組み込む形態でもよい
し、単純にオフラインで実行する形態のいずれでもよい。いずれかの形態においてもソフトウェア設計書レベルのドキュメントを作成することができる。また、セキュリティの監査の記録としてのユーザアクセス履歴のエビデンスを提供することもできる。
図1によれば新規アプリケーションの作成時には、エンティティマトリックス自動生成装置110の存在を前提としたプログラム開発を実施し、実行ログを用いて動作検証を行うに際して、確実な検証を容易に行うことができる。これにより、ソフトウェア開発期間短縮、品質向上を図ることができる。
また、既存ソフトウェアにおいては、SQLの実行ログやクラス遷移の実行ログを出力しているソフトウェアであれば、実行ログ定義をカスタマイズすることにより本実施形態を部分的に適用することができるので、改造時のソフトウェア構造の把握が容易になる。
図2A及び図2Bは、本実施形態における実行ログ出力クラスのソースプログラム101への実装とログ出力例を示す。図2Aは、ソースプログラム101の構成の概要を示す。ソースプログラム101のクラスは、通常、操作受付クラス、業務処理クラス、及びSQLクラスから構成される。
操作受付クラスは、ユーザからの操作を受け付けるクラスである。業務処理クラスは、所定の業務処理を実行するクラスである。
同図では、操作受付クラスとしてクラスA,Bがある。操作受付クラスAから呼び出されるSQLクラスとしてクラスC,Dがある。操作受付クラスBから呼び出されるSQLクラスとしてクラスEがある。ディスパッチャーによりクラスに基づくディスパッチ処理が行われる。
図2Bは、図2AのクラスA,B,Cに対応するソースプログラムの実装例である。操作受付クラスのオブジェクトメソッドの開始時点(201,203)と終了時点(202,204)で、何の操作を開始・終了するかのログを出力する。業務処理クラスなどは、各メソッドの開始(205,208)と終了(207,210)をログ出力する。SQL処理クラスは、SQL命令を発行する為にSQL文の生成が完了した時点(206,209)でログを出力する。
このように、ソースプログラム101にログを出力するための実装を行う。これらのログ出力の為に、ログ出力クラス211を設ける。ログ出力クラス211は、ログ出力レベル定義108を用いて、システム動作時に環境設定情報としてログレベルを指定可能な手法とし、この環境設定に指定のログレベルにより出力するか否かを判定し出力する。
ログ出力クラス211のprintメソッドは、ログレベルを判定するものであり、「level」、「sessionID」、「userID」、「ClassName」、「MethodName」、「Process」、「inf」を引数として、「システム時刻,apllog,sessionID,userID,ClassName,MethodName,Process,inf」をファイルに出力する。引数「level」は、ログレベルを示し、検証の段階と運用の段階で解析するログデータの量の必要度を変えるものである。
Log.print(201〜210)がソースプログラム101に実装されている。このプログラムを実行させると、実行ログ109が出力される。上述の通り、Log.print(201〜210)は、オブジェクトメソッドの開始時、SQL発行時、メソッドの終了時、の最低3箇所で出力されるように、ソースプログラムにコーディングされている。ログ出力項目の形式は、このログ出力クラス211でファイル出力する時に決定し、ファイル出力する。
このように、対象のソースコード中に、実行時のSQL文の値を出力するコード(「Log.print」)を記載しておく。そして、そのソースコードをビルドしたプログラムを実行したときに、SQLのどの処理が、どのテーブルまたはファイルを操作したかに関するログファイル(実行ログ109)を出力させることができる。
図3は、本実施形態におけるログ解析処理部112で実行される処理概要を示す。ログ出力クラス211によりファイル出力された実行ログ109を解析する場合、ログ出力クラス211で決定した出力形式に合わせて作成したログ出力定義ファイル111を用いて、実行ログ109を解析する必要がある。
ログ出力定義ファイル111には、例えば、実行ログ109から目的とするログを抽出するための抽出キーワード、区切り記号定義、時刻形式定義、内容出現順定義、抽出有無定義等を設定することができる。抽出キーワードの一例として、「KeyWord=apllog」、「Proc=操作開始」、「Proc=処理開始」、「Proc=SQL文」が定義されている。
「KeyWord=apllog」は、引数「level」として「apllog」が設定されているログを抽出することを定義している。実行ログ109に当該アプリケーション以外のフレームワーク等のログが含まれる場合を想定し、アプリケーションのログのみ抽出する為に、KeyWordで指定のログのみを抽出する。上述の通り、引数「level」のログレベルを調整することにより、解析の必要度に応じて、クラス開始ログのみを抽出したり、SQLログのみを抽出することができる。
「Proc=操作開始」、「Proc=処理開始」、「Proc=SQL文」は、引数「Proc」として「操作開始」、「処理開始」、または「SQL文」が設定されているログを抽出することを定義している。
区切り記号定義の一例として、「Sprit=,」が定義されている。時刻形式定義の一例として、「TimeFormat=yyyy/mm/dd hh:mm:ss:sss」が定義されている。
内容出現順定義、抽出有無定義の一例として、「Time=No」、「KeyWord=No」( apllog)、「sessionID=Yes」(セッションID)、「userID=Yes」(ユーザID)、「ClassName=Yes」(クラス名)、「MethodName=Yes」(メソッド名)、「Proc=Yes」(処理種別)、「Inf=Yes」(情報)が定義されている。これらの定義は、1行のログの中で、ログの出現順序の定義と項目の抽出有無の定義により必要な項目のみ抽出するためのものである。
ログ解析処理部112の動作について説明する。ログ解析処理部112は、実行ログ109と実行ログ定義ファイル111を読み込む。ログ解析処理部112は、実行ログ定義ファイル111に基づいて、実行ログ109から抽出キーワードで指定されたキーワードを含む行を抽出する(S1)。
次に、ログ解析処理部112は、S1で抽出したログから、実行ログ定義ファイル111に基づいて、抽出有無定義=Yesの項目に対応する内容を取得して、ログ抽出情報として解析用RDBMS113に格納する(S2)。このとき、取得された時系列のログに対して一意のシーケンス番号(SEQ)を付加し、ログ抽出情報として解析用RDBMS113のログ抽出テーブル301に格納する。
ログ抽出テーブル301は、例えば、「SEQ」、「セッションID」、「ユーザID」、「クラス名」、「メソッド名」、「処理種別」、「情報」のデータ項目から構成される。これらのデータ項目は、実行ログ定義ファイル111で抽出有無定義=Yesとして定義された項目に対応する。
なお、図2Bで示したLog.printメソッドを実装しているプログラムであれば、過去に作成したシステムであっても、その実行ログの出力に合わせてログ定義ファイルを作成すれば解析する事ができる。
図4は、本実施形態におけるクラス解析処理部114で実行される処理概要を示す。クラス解析処理部114は、ログ抽出テーブル301を用いてクラス遷移に関係する情報を抽出する。具体的には、クラス解析処理部114は、ログ抽出テーブル301から処理種別が「操作開始」、「処理開始」のレコードを抽出し、シーケンス番号、クラス名、処理種別、情報のデータ項目からなるクラス遷移テーブル401を作成する(S11)。
図5は、本実施形態におけるSQL解析処理部115で実行される処理概要を示す。SQL解析処理部115は、ログ抽出テーブル301から処理種別が「SQL文」のレコードを解析対象とする(S21)。
次に、SQL解析処理部115は、ログ抽出テーブル301の「情報」フィールドのSQL文から、SQL文のキーワード(データ操作言語及びそのデータ操作言語において用いられる句)に基づいて、SELECT文解析処理S22−1、SELECT文解析処理S22−2、INSERT文解析処理S22−3,DELETE文解析処理S22−4等の解析処理を行う。その解析結果であるシーケンス番号と、テーブル名を抽出する(S22)。すなわち、SQL解析処理部115は、ログ抽出テーブル301に保存したSQL文からSQL文の種類、使用するテーブル、参照するフィールドを抽出する。副参照等の複雑なSQL文についても繰返し解析処理を行い、1つのSQL文で使用する全てのテーブル名を抽出する。詳細な解析を必要とする場合は、WHERE句や設定内容などの解析を追加する。
例えば、SEQ=3の「情報」フィールドに格納されているSELECT文501の場合、“SELECT”キーワードから“FROM”キーワードの間にカンマ区切りで出現するフィールド名“F1”,“F2”を取得し、“FROM”キーワードから“WHERE”キーワードの間にカンマ区切りで出現するテーブル名“T1”を取得する。また、SEQ=6の「情報」フィールドに格納されているUPDATE文502の場合、“UPDATE”キーワードから“SET”キーワードの間に出現するテーブル名“T1”を取得し、“SET”キーワードから“WHERE”キーワードの間に出現するフィールド名“F1”を取得する。
このようにして、SQL文で使用しているテーブル名、フィールド名などを各解析処理に対応するSQL解析テーブル510(SELECTテーブル511、SELECTフィールドテーブル512、UPDATEテーブル513、UPDATEフィールドテーブル514、INSERTテーブル515、DELETEテーブル516)にシーケンス番号と共に格納する。例えば、SELECT文501から抽出されたF1,2は、SEQ=3とともに、SELECTフィールドテーブル512に格納される。SELECT文501から抽出されたT1は、SEQ=3とともに、SELECTテーブル511に格納される。UPDATE文502から抽出されたF1は、SEQ=6とともに、UPDATEフィールドテーブル514に格納される。UPDATE文502から抽出されたT1は、SEQ=6とともに、UPDATEテーブル513に格納される。
図6Aは、本実施形態における設計書作成処理部116のクラス遷移作成処理部116aで実行されるクラス遷移図作成処理の概要を示す。クラス遷移作成処理部116aは、設計書フォーマット(クラス遷移図)の横軸を作成する為に、クラス遷移テーブル401から、重複のない形式でクラス名を取り出し、設計書(クラス遷移図を構成する表)に配置する(S31)。
次に、クラス遷移作成処理部116aは、設計書フォーマット(クラス遷移図)の縦軸を作成する為に、クラス遷移テーブル401の「情報」フィールドから、クラス名と操作名と重複が無い形式で操作(検索操作、登録操作)を取り出し、クラス遷移図を構成する表に配置する(S32)。
そうして、クラス遷移作成処理部116aは、シーケンス番号の順番にクラス遷移テーブル401を走査し、縦軸、横軸に該当したナンバリングを行う(S33)。すなわち、シーケンス番号順に、操作開始毎に、設計書フォーマットのクラス名が一致するものにナンバリングを行う。このようにして、クラス遷移図601が作成される。
クラス遷移図601からは、「検索操作」の場合には、クラスA、クラスCの順でクラスが遷移したことが分かる。「登録操作」の場合には、クラスA,クラスDの順でクラスが遷移したことが分かる。このように、クラス遷移図601からは、操作内容に影響するクラス及びその遷移順を把握することができる。
図6Bは、本実施形態における設計書作成処理部116のマトリックス作成処理部116bで実行されるエンティティマトリックス作成処理の概要を示す。マトリックス作成処理部116bは、用途に応じて、ログ抽出テーブル301の「SQL文」レコードの「クラス名」または「ユーザ名」等を重複の無い形式で抽出し、設計書フォーマットの横軸に配置する(S41)。ここで、「クラス名」、「ユーザ名」を横軸にした設計書をそれぞれ、クラスマトリックス602、ユーザマトリックス603という。
次に、マトリックス作成処理部116bは、SQL解析処理部115で生成したSQL解析テーブル群510から「テーブル名」を重複の無い形式で取り出し、設計書(クラスマトリックス602、ユーザマトリックス603)の縦軸に配置する(S42)。
それから、マトリックス作成処理部116bは、ログ抽出テーブル301とSQL解析テーブル群510をシーケンス番号で結合し、クラス名とテーブル名又はユーザ名が一致する場合、マトリックスの対応するセルに、S(SELECT)、U(UPDATE)、I(INSERT)、D(DELETE)の記号を記載する。
クラスマトリックス602からは、クラスCにおいてテーブルT1に対してSELECT処理が実行され、クラスDにおいてテーブルT1に対してUPDATE処理が実行され、クラスXにおいてテーブルT10に対してINSERT処理が実行され、クラスYにおいてテーブルT11に対してDELETE処理が実行されたことが分かる。このように、クラスマトリックス602からは、どのクラスがどのテーブルに対してどのような処理を行ったかを把握することができる。
ユーザマトリックス603からは、ユーザ999がテーブルT1に対してSELECT処理とUPDATE処理を行い、ユーザ001がテーブルT10に対してはINSERT処理を行い、テーブルT11に対してはDELETE処理を行ったことが分かる。このように、ユーザマトリックス603からは、どのユーザがどのテーブルに対してどのような処理を行ったかを把握することができる。したがって、セキュリティの観点から、どのユーザがそのデータを参照・更新等したかを把握することができる。
このように、ログ抽出テーブル301から、クラス遷移テーブル401及びSQL解析テーブル510を生成して、それらのデータを解析することで、クラス遷移図601、クラスマトリックス602、ユーザマトリックス603の各設計書を作成することができる。
上述したように、エンティティマトリックス自動生成システム110を用いれば、実行されたプログラムにより、ユーザ名と、クラス名と、メソッド名と、実行した処理種別と、実行したデータの操作と、SQL文が関連付けられて実行ログ109として出力される。
その実行ログ109から、「処理種別」が「操作開始」あるいは「処理開始」のレコードを抽出してクラス遷移テーブル401として記録する。
また、実行されたデータ操作が「SELECT」、「UPDATE」、「INSERT」、「DELETE」の命令であれば、どのシークエンスで、どのテーブルを参照することで行ったかを、その命令ごとに集計し、SQL解析テーブル510として記録する。
クラス遷移テーブル401から、実行したデータ操作と、その操作をどのクラスがどの順に行ったかを抽出して、クラス遷移図601として出力することができる。
また、SQL解析テーブル510とSELECTテーブル511、UPDATEテーブル513、INSERTテーブル515、DELETEテーブル516から、どのクラスが、どのテーブルをどのような操作で用いたかを関連付けたクラスマトリックス602と、どのユーザがどのテーブルをどのような操作で用いたかを関連付けたユーザマトリックス603とを出力することができる。
ところで、上記では、クラスとテーブルとの関係をマトリックスで表したが、以下では、図7A〜図7Dを用いて、クラスマトリックス602から、テーブルとクラスとの関係を図式化する方式について説明する。
図7Aは、本実施形態における図式化オブジェクトの一例を示す。符号701は、テーブルのオブジェクトを示す。符号703は、テーブル図式化オブジェクト701の接点を拡張する為の図式化オブジェクトを示す(以下、テーブル拡張子と記載。ET:Extend Tableと略す。)。符号702は、クラスの図式化オブジェクトを示す。符号704は、クラス図式化オブジェクト702の接点を拡張する為の図式化オブジェクトを示す(以下、クラス拡張子と記載。EC:Extend Classと略す。)。
符号705で示すコネクタは、DELETE処理を示す。符号706で示すコネクタは、INSERT処理を示す。符号707で示すコネクタは、UPDATE処理を示す。符号708で示すコネクタは、SELECT処理を示す。
図7Bは、本実施形態における図式化オブジェクトの図式化接点定義710を示す。図式化接点定義710では、テーブル、クラス、ET、ECの間において、なされる処理(DELETE、INSERT、UPDATE,SELECT)を、各図式化オブジェクトに対するコネクタの向きで表すことを定義している。
△は、テーブルオブジェクト(テーブル拡張子オブジェクトを含む)同士、クラスオブジェクト(クラス拡張子オブジェクト含む)同士のコネクタの開始点、終了点を示す。○は、テーブルオブジェクトとクラスオブジェクト間のコネクタ(矢印)の開始点、終了点を示す。
例えば、テーブルオブジェクト701とDELETEコネクタ705の場合、テーブルオブジェクト701の「上中点」とDELETEを示す矢印705の終了点が接することを表している。
また、例えば、クラスオブジェクト702とDELETEコネクタ705の場合、クラ
スオブジェクト702の「上中点」とDELETEを示す矢印705の開始点が接することを表している。
また、例えば、ETオブジェクト703とDELETEコネクタ705の場合、ET703の「上中点」とDELETEを示す矢印705の終了点が接し、「下中点」とDELETEを示す矢印705の開始点が接し、「右中点」とDELETEを示す矢印705の終了点が接することを表している。
図7Cは、図式化接点定義710に基づいて、テーブルオブジェクトとコネクタオブジェクト、クラスオブジェクトとコネクタオブジェクト、ETオブジェクトとコネクタオブジェクト、及びECオブジェクトとのコネクタオブジェクトを図式化した例を示す。
符号711は、テーブルオブジェクトに対してなされる処理(DELETE、INSERT、UPDATE,SELECT)を図式化したイメージ概念である。符号712は、クラスオブジェクトがテーブルオブジェクトに対して行う処理(DELETE、INSERT、UPDATE,SELECT)を図式化したイメージ概念である。
符号713は、テーブル拡張子(ET)とDELETEコネクタとの関係を図式化したイメージ概念である。符号714は、テーブル拡張子(ET)とINSERTコネクタとの関係を図式化したイメージ概念である。符号715は、テーブル拡張子(ET)とUPDATEコネクタとの関係を図式化したイメージ概念である。符号716は、テーブル拡張子(ET)とSELECTコネクタとの関係を図式化したイメージ概念である。
符号717は、クラス拡張子(EC)とDELETEコネクタとの関係を図式化したイメージ概念である。符号718は、クラス拡張子(EC)とINSERTコネクタとの関係を図式化したイメージ概念である。符号719は、クラス拡張子(EC)とUPDATEコネクタとの関係を図式化したイメージ概念である。符号720は、クラス拡張子(EC)とSELECTコネクタとの関係を図式化したイメージ概念である。
図7Dは、本実施形態におけるクラスマトリックスから、テーブルとクラスの関係を図式化するフローを示す。図7Eは、図7Dのフローに基づいて図式化されたテーブルとクラスの関係を示す。以下では、クラスマトリックス730を例に、図7Eを参照しながら、図7Dのフローを説明する。
まず、図式化処理部116cは、クラスマトリックス730の縦軸を構成する各テーブル名に対応するテーブルオブジェクトT1(741)、T10(742)、T11(743)を配置する(S51)。
次に、図式化処理部116cは、クラスマトリックス730の横軸を構成するクラス名に対応するクラスオブジェクトC(744),D(745),X(746),Y(747)を配置する(S52)。
図式化処理部116cは、クラスマトリックスの組み合わせ[n](テーブル・クラスマトリックス730の場合、n=1〜12)のうち、まず、組み合わせ[1]を処理対象とする(S53)。本例では、組み合わせ[1]=(T1,C)である。
図式化処理部116cは、組み合わせ[n]のセル内のD/I/U/Sの記号を検出する(S54)。本例では、組み合わせ[1]について、‘S’と‘U’の記号が検出される。なお、記号が検出されない場合には、S59へ進む。
S55で記号が検出された場合、図式化処理部116cは、その記号に基づいて、図式化接点定義710に従い拡張子とコネクタを追加し、図式化接点定義に従い接点結合する(S56)。この例では検出された1つ目の記号‘S’(SELECT処理)について、次の(i)〜(v)を行う。
(i)処理対象のテーブルオブジェクトに、1つのテーブル拡張子オブジェクト(ET)を追加する。本例では、T1(741)にET(751)を追加する。
(ii)その処理対象のテーブルオブジェクトとそのテーブル拡張子オブジェクト(ET)を関係付けるためのSELECTコネクタを追加する。T1(741)の下中点を開始点、T1拡張子(751)の上中点を終了点とする。既にT1のテーブル拡張子が存在する場合は、そのテーブル拡張子同士を接合する。
(iii)処理対象のクラスオブジェクトに、1つのクラス拡張子オブジェクトを追加する。本例では、C(744)に、EC(762)を追加する。
(iv)その処理対象のクラスオブジェクトとそのクラス拡張子オブジェクト(EC)を関係づけるためのSELECTコネクタを追加する。C(744)の左中点を終了点、C拡張子(752)の右中点を開始点とする。既にCのクラス拡張子が存在する場合は、そのクラス拡張子同士を接合する。
(v)処理対象のテーブルと処理対象のクラスを関係付けるためのSELECTコネクタを追加する。T1拡張子(751)の右中点を開始点、C拡張子(762)の下中点を終了点とする。
記号‘S’についてS56の処理が終了したら、図式化処理部116cは、次の記号‘U’を処理対象として(S57で「No」、S58)、S56を行う。S54で検出したすべての記号についてS56の処理が終了したら(S57で「Yes」)、図式化処理部116cは次のテーブルを処理対象とする(S59で「No」、S60)。本例では、組み合わせ[2]=(T10,C)が次の処理対象となる。この組み合わせ[2]について、S54〜59を繰り返す。組み合わせ[3]についても同様にS54〜S59を繰り返す。クラスCに対するテーブルの全組み合わせが終了したら(S59で「Yes」)、次のクラスを処理対象とする(S61で「No」、S62)。本例では、次のクラスであるクラスDが処理対象となる。このようにして、テーブルとクラスのすべての組み合わせ[1]〜[12]について処理が終了したら(S61で「Yes」)、本フローは終了する。
そうすると、図式化処理部116cは、図7Dのフローに基づいて図式化されたテーブルとクラスの関係図740を、ディスプレイまたはプリンタに出力する。このようにして、クラスマトリックスを視覚的に分かりやすくすることができる。その結果、テーブル構造変更時の影響範囲の把握が可能となる。
なお、本実施形態では、一例としてクラスマトリックスの図式化について説明したが、ユーザマトリックス、クラス遷移図、その他のマトリックスも同様の手法により図式化することができる。
図8Aは、本実施形態におけるオンライン環境下でのエンティティマトリックス自動生成処理システムの例を示す。Web AP(ウェブアプリケーション)サーバ801には、運用システム802とエンティティマトリックス自動生成処理システム110aを搭載している。同図では、エンティティマトリックス自動生成処理システム110aは、オンラインかつリアルタイムで稼動する。
運用システム802は、所定のプログラムにより実現されるシステムであって、そのソースプログラムには図2A及び図2Bで説明したようにログ出力クラス211が実装してある。
エンティティマトリックス自動生成処理システム110aは、ログ解析処理部112、解析用RDBMS113、クラス解析処理部114、SQL解析処理部115、設計書作成処理部116を有する。
運用システム802は、クライアント端末830から所定の操作を受け付けると、DBサーバ810に問い合わせを行う。その問い合わせに応じて、DBサーバ810は運用システム用RDBMS811により所定の処理を行い、その処理結果を運用システム802に返信する。運用システム802は、その処理結果をクライアント端末830に返信する。このようにして、運用システム802は稼動し、その稼動結果を実行ログ109として出力する。
実行ログ109はオンラインでリアルタイムにエンティティマトリックス自動生成処理システム110aに送られる。実行ログ取得部851は、実行ログ109を読み込む。
すると、ログ解析処理部112は、記憶部852に格納された実行ログ定義ファイル111に基づいて、実行ログ109を解析してログ抽出情報を作成する。ログ解析処理部112は、ログ抽出情報をDBサーバ820の実行ログ解析用RDBMS821に格納する。このログ抽出情報から、クラス解析処理部114、SQL解析処理部115、および設計書作成処理部116により、クラス遷移図117およびマトリックス118が作成される。また、設計書作成処理部116は、記憶部852に格納された図式化接点定義710に基づいて、図式化された関係図119等の設計書を作成する。
図8Bは、本実施形態におけるオフライン環境下でのエンティティマトリックス自動生成処理システムの例を示す。図8Aと異なり、図8Bではエンティティマトリックス自動生成システム110bはWeb APサーバ801とは独立している。そして、運用システム802とエンティティマトリックス自動生成システム110bとは通信ネットワーク等を介して接続されていない。
図8Bにおいて、運用システム802から出力された実行ログ109は、人手によりエンティティマトリックス自動生成システム110bへ入力される以外は、図8Aと同様である。
図9は、本実施形態におけるエンティティマトリックス自動生成処理システム110のハードウェア環境の構成ブロック図である。同図においてエンティティマトリックス自動生成処理システム110は、制御部902、リードオンリメモリ(ROM)903、ランダムアクセスメモリ(RAM)906、通信インターフェース(以下、インターフェースをI/Fという)904、記憶装置907、出力I/F901、入力I/F905、可搬型記憶媒体の読み取り装置908等と、これらの全てが接続されたバス909、出力I/F901に接続している出力装置910、入力I/F905に接続している入力装置911によって構成されている。
記憶装置907としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができる。このような記憶装置907またはROM903には、上記の実施形態で用いたフローのプログラムが格納されている。また、記憶装置907には、実行ログ定義ファイル111、解析用RDBMS113、図式化接点定義710が格納されている。なお、解析用RDBMS113は、外部のDBサーバに格納してもよい。RAM906は、作業用の記憶領域である。
本実施形態にかかるプログラムは、制御部902を、ログ解析処理部112、クラス解析処理部114、SQL解析処理部115、設計書作成処理部116として機能させるこ
とができる。このプログラムは、ネットワーク912を介してプログラム提供者側から提供されて、記憶装置907に格納してもよい。また、このプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体を読み取り装置908にセットし、制御部902によってそのプログラムを読み込んで実行してもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、フラッシュメモリなど様々な形式の記憶媒体を使用することができる。
また、入力装置911には、キーボード、マウス、または電子カメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力装置910には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク912は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
このように、本実施形態によれば、アプリケーションソフトウェアが生成する実行ログから、用途に応じて決定される項目に基づいて、必要なログを抽出することができる。その抽出した実行ログから実際に実行された処理ルートについてクラスの動作遷移を分析することができる。
また、抽出した実行ログから実際に実行されたSQL文を取り出し、SQL文を構文解析しアクセスしたテーブルの情報を判別し分析することができる。実動作におけるクラス遷移図やプログラム実行によりアクセスされたテーブルについて、その分析結果に基づいて、クラスとテーブルとの関連、テーブルとユーザとの関連等のマトリックス図を作成することができる。
なお、実行ログ出力はアプリケーションで生成するものであり、Java(登録商標)、VB(ビジュアルベーシック)やCなど言語には依存しない。また、本実施形態はWebアプリケーションに限定されず、クライアント・サーバシステム、バッチシステム等のシステムでも実行することができる。
従来のログは、主に各アプリケーションのロジックの履歴を残す事が中心であり、実行ログを追跡しても、どのユーザが行った操作かの判別できない場合が多い。しかしながら、本実施形態によれば、アプリケーションソフトのソースプログラムに出力ログクラスのメソッドをコーディングしている。これにより、通常のログだけでなく、プログラム構造の構成要素であるクラス名及びメソッド名、実行時に与えられる利用ユーザ名、実行時にRDBMSに命令として出力したSQL文などの規定の項目を同時に実行ログとして出力することができる。
また、従来のログ解析においては、多量のログの中から解析に必要な部分を手作業で取り出す作業を繰返し、必要な情報を全て集めてから解析を開始する事が多い。しかしながら、本実施形態によれば、プログラム動作時に生成する実行ログから、目的とする分析を行う為に必要なログ(行)を取り出して、必要な項目を抽出することができる。
そのようにして抽出されたログから、プログラム構造の構成要素であるオブジェクトクラスが、利用者の操作によって実際にどのような順番で実行されたかを分析することができる。
また、そのようにして抽出されたログの中のSQL文は、RDBMSに対するSQL命令であり、プログラムロジックで生成した結果である。よって、このSQL文を構文解析し、操作対象のテーブル情報を判定することができる。
そうして、これらのデータ(クラス解析結果とSQL文解析結果)を用いて、人が見て判りやすい表形式のマトリックス表として、クラス遷移、クラス・エンティティマトリックス、ユーザ・エンティティマトリックスなどを出力することができる。
また、本実施形態によれば、オンライン環境、オフライン環境のいずれの環境においても実行ログの解析を可能とすることができる。
本明細書で開示したシステム、または既存のシステムにおいて本明細書で開示したプログラムにより解析可能な実行ログを出力しているシステムにおいては、以下の効果がある。(1)試験工程での動作確認において、仕様との整合の明確化を図ることができる。(2)システムエンハンスなど、担当者が変わった時であっても、既存システムを正確に把握することができる。(3)テーブル構造変更時の影響範囲の把握が可能となる。(4)システム改造等において、現状動作を正しく把握し、テーブル、プログラム変更規模の見積もり精度を向上させることができる。(5)稼動中のシステムにおいては、ユーザ操作の履歴追跡が可能であり、セキュリティ上のアクセス履歴として利用できる。
本明細書に開示のシステムは、新規アプリケーションソフトウェアの開発において要求通りの動作ができているか否かを検証する場面で利用するものである。また、アプリケーションソフトウェアの改造において稼動中の既存システムの動作を把握する場面で利用するものである。
また、通常、実行ログ解析は不具合の調査や統計的利用の局面での利用される事が多い。そこで、本実施形態では、実行ログの利用シーンとして、システム構造解析やセキュリティ上のアクセス履歴追跡などソフトウェア開発の上流工程の改善のために用いることができるようにする。
また、本明細書に開示の実行ログ解析においては、実動作により実際に選択されたルートやSQL文を確実に知ることができる。しかしながら、その選択されたルートは網羅的ではなく、実際に動作したルートのみである。よって利用の場面においては、従来技術と本明細書に開示の技術との2つの解析方法の両方を適用することにより、システムの動作を短期間で確実に把握可能となる。
なお、本明細書に開示のシステムは、以上に述べた実施の形態に限定されるものではなく、本明細書に開示の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
ソフトウェアの設計書の作成をコンピュータに実行させる設計書作成プログラムであって、
少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得処理と、
前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出処理と、
前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQL
の操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析処理と、
前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成処理と、
を、コンピュータに実行させることを特徴とする設計書作成プログラム。
(付記2)
前記設計書作成処理は、さらに、
前記テーブル・クラス関係表に基づいて、少なくとも、前記テーブル名に対応するテーブルを図式化したテーブルオブジェクトと、前記クラス名に対応するクラスを図式化したクラスオブジェクトと、前記各SQLデータ操作言語に対応し該オブジェクト間を接続する図式化されたコネクタと、に基づいて、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記1に記載の設計書作成プログラム。
(付記3)
前記テーブルオブジェクトに対する前記SQLデータ操作言語については、前記コネクタの始点、終点、及び該テーブルオブジェクトとの接点位置の組み合わせによって定義され、前記クラスオブジェクトに対する該SQLデータ操作言語については、該コネクタの始点、終点、及び該クラスオブジェクトとの接点位置との組み合わせによって定義された図式化接点定義に基づいて、前記設計書作成処理は、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記2に記載の設計書作成プログラム。
(付記4)
前記設計書作成プログラムは、さらに、
前記ログ抽出情報から前記処理種別が操作開始または処理開始を示す情報を有するログを抽出し、該各ログから前記シーケンス番号と前記クラス名と該処理種別と前記処理内容情報とのデータ項目を選択したログを、クラスの遷移を解析するためのクラス遷移情報として取得するクラス解析処理、
をコンピュータに実行させ、
前記設計書作成処理は、さらに、
前記クラス遷移情報から前記クラス名を重複なく取得し、前記クラス遷移情報から前記処理内容情報を取得し、該クラス名と該処理内容情報との組み合わせを表すマトリックスを作成し、該クラス遷移情報内の前記処理種別を前記シーケンス番号順に検索して該処理種別に操作開始が現れる毎に該各検索した処理種別に対応するクラス名に採番し、前記作成したマトリックスの対応する位置に該採番した番号を配置することにより、前記設計書としてクラス遷移表を作成する
ことを特徴とする付記1に記載の設計書作成プログラム。
(付記5)
前記ログ抽出情報には、さらに、前記操作開始の要求の指示をしたユーザ名が含まれ、
前記設計書作成処理は、さらに、
前記ログ抽出情報から前記SQLを含む前記ログの有する前記ユーザ名を重複なく取得し、前記SQL解析情報から前記テーブル名を重複なく取得し、該ユーザ名と該テーブル名との組み合わせを表すマトリックスを作成し、該ユーザ名毎に、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・ユーザ関係表を作成する
ことを特徴とする付記1に記載の設計書作成プログラム。
(付記6)
前記ログ抽出処理は、少なくとも、実行ログ情報から抽出するログを特定する抽出キーワード、該抽出した各ログに含まれる項目のうちいずれを取得する抽出するかが定義され
た実行ログ定義情報に基づいて、前記取得した実行ログ情報から前記抽出情報を生成する
ことを特徴とする付記1に記載の設計書作成プログラム。
(付記7)
前記ログを出力するプログラムは、ユーザからの操作を受け付ける操作受付クラスのオブジェクトメソッドと、業務処理を行う業務処理クラスのオブジェクトメソッドと、SQLの発行処理を行うSQLクラスのオブジェクトメソッドとを構成に含むプログラムである
ことを特徴とする付記1に記載の設計書作成プログラム。
(付記8)
ソフトウェアの設計書の作成を支援する設計書作成装置であって、
少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得手段と、
前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出手段と、
前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析手段と、
前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成手段と、
を備えることを特徴とする設計書作成装置。
(付記9)
前記設計書作成手段は、さらに、
前記テーブル・クラス関係表に基づいて、少なくとも、前記テーブル名に対応するテーブルを図式化したテーブルオブジェクトと、前記クラス名に対応するクラスを図式化したクラスオブジェクトと、前記各SQLデータ操作言語に対応し該オブジェクト間を接続する図式化されたコネクタと、に基づいて、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記8に記載の設計書作成装置。
(付記10)
前記テーブルオブジェクトに対する前記SQLデータ操作言語については、前記コネクタの始点、終点、及び該テーブルオブジェクトとの接点位置の組み合わせによって定義され、前記クラスオブジェクトに対する該SQLデータ操作言語については、該コネクタの始点、終点、及び該クラスオブジェクトとの接点位置との組み合わせによって定義された図式化接点定義に基づいて、前記設計書作成手段は、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記9に記載の設計書作成装置。
(付記11)
前記設計書作成装置は、さらに、
前記ログ抽出情報から前記処理種別が操作開始または処理開始を示す情報を有するログを抽出し、該各ログから前記シーケンス番号と前記クラス名と該処理種別と前記処理内容情報とのデータ項目を選択したログを、クラスの遷移を解析するためのクラス遷移情報として取得するクラス解析手段、
を備え、
前記設計書作成手段は、さらに、
前記クラス遷移情報から前記クラス名を重複なく取得し、前記クラス遷移情報から前記処理内容情報を取得し、該クラス名と該処理内容情報との組み合わせを表すマトリックスを作成し、該クラス遷移情報内の前記処理種別を前記シーケンス番号順に検索して該処理種別に操作開始が現れる毎に該各検索した処理種別に対応するクラス名に採番し、前記作成したマトリックスの対応する位置に該採番した番号を配置することにより、前記設計書としてクラス遷移表を作成する
ことを特徴とする付記8に記載の設計書作成装置。
(付記12)
前記ログ抽出情報には、さらに、前記操作開始の要求の指示をしたユーザ名が含まれ、
前記設計書作成手段は、さらに、
前記ログ抽出情報から前記SQLを含む前記ログの有する前記ユーザ名を重複なく取得し、前記SQL解析情報から前記テーブル名を重複なく取得し、該ユーザ名と該テーブル名との組み合わせを表すマトリックスを作成し、該ユーザ名毎に、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・ユーザ関係表を作成する
ことを特徴とする付記8に記載の設計書作成装置。
(付記13)
前記ログ抽出手段は、少なくとも、実行ログ情報から抽出するログを特定する抽出キーワード、該抽出した各ログに含まれる項目のうちいずれを取得する抽出するかが定義された実行ログ定義情報に基づいて、前記取得した実行ログ情報から前記抽出情報を生成する
ことを特徴とする付記8に記載の設計書作成装置。
(付記14)
前記ログを出力するプログラムは、ユーザからの操作を受け付ける操作受付クラスのオブジェクトメソッドと、業務処理を行う業務処理クラスのオブジェクトメソッドと、SQLの発行処理を行うSQLクラスのオブジェクトメソッドとを構成に含むプログラムである
ことを特徴とする付記8に記載の設計書作成装置。
(付記15)
ソフトウェアの設計書の作成をする設計書作成方法であって、
少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得し、
前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成し、
前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得し、
前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する、
ことを特徴とする設計書作成方法。
(付記16)
前記設計書作成方法は、さらに、
前記テーブル・クラス関係表に基づいて、少なくとも、前記テーブル名に対応するテーブルを図式化したテーブルオブジェクトと、前記クラス名に対応するクラスを図式化したクラスオブジェクトと、前記各SQLデータ操作言語に対応し該オブジェクト間を接続する図式化されたコネクタと、に基づいて、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記15に記載の設計書作成方法。
(付記17)
前記テーブルオブジェクトに対する前記SQLデータ操作言語については、前記コネクタの始点、終点、及び該テーブルオブジェクトとの接点位置の組み合わせによって定義され、前記クラスオブジェクトに対する該SQLデータ操作言語については、該コネクタの始点、終点、及び該クラスオブジェクトとの接点位置との組み合わせによって定義された図式化接点定義に基づいて、前記テーブル・クラス関係表を図式化する
ことを特徴とする付記16に記載の設計書作成方法。
(付記18)
前記設計書作成方法において、さらに、
前記ログ抽出情報から前記処理種別が操作開始または処理開始を示す情報を有するログを抽出し、該各ログから前記シーケンス番号と前記クラス名と該処理種別と前記処理内容情報とのデータ項目を選択したログを、クラスの遷移を解析するためのクラス遷移情報として取得し、
前記クラス遷移情報から前記クラス名を重複なく取得し、前記クラス遷移情報から前記処理内容情報を取得し、該クラス名と該処理内容情報との組み合わせを表すマトリックスを作成し、該クラス遷移情報内の前記処理種別を前記シーケンス番号順に検索して該処理種別に操作開始が現れる毎に該各検索した処理種別に対応するクラス名に採番し、前記作成したマトリックスの対応する位置に該採番した番号を配置することにより、前記設計書としてクラス遷移表を作成する
ことを特徴とする付記15に記載の設計書作成方法。
(付記19)
前記ログ抽出情報には、さらに、前記操作開始の要求の指示をしたユーザ名が含まれ、
前記ログ抽出情報から前記SQLを含む前記ログの有する前記ユーザ名を重複なく取得し、前記SQL解析情報から前記テーブル名を重複なく取得し、該ユーザ名と該テーブル名との組み合わせを表すマトリックスを作成し、該ユーザ名毎に、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・ユーザ関係表を作成する
ことを特徴とする付記15に記載の設計書作成方法。
(付記20)
前記ログの抽出において、少なくとも、実行ログ情報から抽出するログを特定する抽出キーワード、該抽出した各ログに含まれる項目のうちいずれを取得する抽出するかが定義された実行ログ定義情報に基づいて、前記取得した実行ログ情報から前記抽出情報を生成する
ことを特徴とする付記15に記載の設計書作成方法。
(付記21)
前記ログを出力するプログラムは、ユーザからの操作を受け付ける操作受付クラスのオブジェクトメソッドと、業務処理を行う業務処理クラスのオブジェクトメソッドと、SQLの発行処理を行うSQLクラスのオブジェクトメソッドとを構成に含むプログラムである
ことを特徴とする付記15に記載の設計書作成方法。
本実施形態における実行ログによるエンティティマトリックス自動生成処理システムの全体のフローを示す。 本実施形態におけるソースプログラム101の構成の概要を示す。 図2AのクラスA,B,Cに対応するソースプログラムの実装例である。 本実施形態におけるログ解析処理部112で実行される処理概要を示す。 本実施形態におけるクラス解析処理部114で実行される処理概要を示す。 本実施形態におけるSQL解析処理部115で実行される処理概要を示す。 本実施形態における設計書作成処理部116のクラス遷移作成処理部116aで実行されるクラス遷移図作成処理の概要を示す。 本実施形態における設計書作成処理部116のマトリックス作成処理部116bで実行されるエンティティマトリックス作成処理の概要を示す。 本実施形態における図式化オブジェクトの一例を示す。 本実施形態における図式化オブジェクトの図式化接点定義710を示す。 図式化接点定義710に基づいて、テーブルオブジェクトとコネクタオブジェクト、クラスオブジェクトとコネクタオブジェクト、ETオブジェクトとコネクタオブジェクト、及びECオブジェクトとのコネクタオブジェクトを図式化した例を示す。 本実施形態におけるクラスマトリックスから、テーブルとクラスの関係を図式化するフローを示す。 図7Dのフローに基づいて図式化されたテーブルとクラスの関係を示す。 本実施形態におけるオンライン環境下でのエンティティマトリックス自動生成処理システムの例を示す。 本実施形態におけるオフライン環境下でのエンティティマトリックス自動生成処理システムの例を示す。 本実施形態におけるエンティティマトリックス自動生成処理システム110のハードウェア環境の構成ブロック図である。 従来におけるソフトウェア開発の概念図である。
符号の説明
101 ソースプログラム
108 ログ出力レベル定義
109 実行ログ
110 エンティティマトリックス自動生成システム
111 実行ログ定義ファイル
112 ログ解析処理部
113 解析用RDBMS
114 クラス解析処理部
115 SQL解析処理部
116 設計書作成処理部
116a クラス遷移作成処理部
116b マトリックス作成処理部
116c 図式化処理部
301 ログ抽出テーブル
401 クラス遷移テーブル
601 クラス遷移図
602 クラスマトリックス
603 ユーザマトリックス
710 図式化接点定義
851 実行ログ取得部
852 記憶部

Claims (7)

  1. ソフトウェアの設計書の作成をコンピュータに実行させる設計書作成プログラムであって、
    少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得処理と、
    前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出処理と、
    前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析処理と、
    前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成処理と、
    を、コンピュータに実行させることを特徴とする設計書作成プログラム。
  2. 前記設計書作成処理は、さらに、
    前記テーブル・クラス関係表に基づいて、少なくとも、前記テーブル名に対応するテーブルを図式化したテーブルオブジェクトと、前記クラス名に対応するクラスを図式化したクラスオブジェクトと、前記各SQLデータ操作言語に対応し該オブジェクト間を接続する図式化されたコネクタと、に基づいて、前記テーブル・クラス関係表を図式化する
    ことを特徴とする請求項1に記載の設計書作成プログラム。
  3. 前記テーブルオブジェクトに対する前記SQLデータ操作言語については、前記コネクタの始点、終点、及び該テーブルオブジェクトとの接点位置の組み合わせによって定義され、前記クラスオブジェクトに対する該SQLデータ操作言語については、該コネクタの始点、終点、及び該クラスオブジェクトとの接点位置との組み合わせによって定義された図式化接点定義に基づいて、前記設計書作成処理は、前記テーブル・クラス関係表を図式化する
    ことを特徴とする請求項2に記載の設計書作成プログラム。
  4. 前記設計書作成プログラムは、さらに、
    前記ログ抽出情報から前記処理種別が操作開始または処理開始を示す情報を有するログを抽出し、該各ログから前記シーケンス番号と前記クラス名と該処理種別と前記処理内容情報とのデータ項目を選択したログを、クラスの遷移を解析するためのクラス遷移情報として取得するクラス解析処理、
    をコンピュータに実行させ、
    前記設計書作成処理は、さらに、
    前記クラス遷移情報から前記クラス名を重複なく取得し、前記クラス遷移情報から前記処理内容情報を取得し、該クラス名と該処理内容情報との組み合わせを表すマトリックスを作成し、該クラス遷移情報内の前記処理種別を前記シーケンス番号順に検索して該処理種別に操作開始が現れる毎に該各検索した処理種別に対応するクラス名に採番し、前記作成したマトリックスの対応する位置に該採番した番号を配置することにより、前記設計書
    としてクラス遷移表を作成する
    ことを特徴とする請求項1に記載の設計書作成プログラム。
  5. 前記ログ抽出情報には、さらに、前記操作開始の要求の指示をしたユーザ名が含まれ、
    前記設計書作成処理は、さらに、
    前記ログ抽出情報から前記SQLを含む前記ログの有する前記ユーザ名を重複なく取得し、前記SQL解析情報から前記テーブル名を重複なく取得し、該ユーザ名と該テーブル名との組み合わせを表すマトリックスを作成し、該ユーザ名毎に、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・ユーザ関係表を作成する
    ことを特徴とする請求項1に記載の設計書作成プログラム。
  6. ソフトウェアの設計書の作成を支援する設計書作成装置であって、
    少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得する実行ログ取得手段と、
    前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成するログ抽出手段と、
    前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得するSQL解析手段と、
    前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する設計書作成手段と、
    を備えることを特徴とする設計書作成装置。
  7. ソフトウェアの設計書の作成をする設計書作成方法であって、
    少なくとも、クラス名及びメソッド名と、該操作受付クラスの実行開始を示す操作開始、該業務処理クラスの実行開始を示す処理開始、及びSQLの発行を示すSQL発行のいずれかを示す処理種別と、該処理種別に対応して実行された処理内容を示す処理内容情報と、をログとして出力するように実装されたプログラムの実行によって出力された複数のログからなる実行ログ情報を取得し、
    前記取得した実行ログ情報から、少なくとも、前記クラス名、前記メソッド名、前記処理種別、及び前記処理内容情報の項目を選択したログを抽出し、該抽出した各ログに時系列順にシーケンス番号を付与した情報であるログ抽出情報を生成し、
    前記ログ抽出情報から前記処理種別が前記SQL発行を示すログを抽出し、該ログの有する処理内容情報から該SQLの内容を解析し、該SQLのデータ操作言語毎に該SQLの操作対象のテーブル名と該SQLを発行した旨を示すログに付与された前記シーケンス番号とを関連付けた情報を、SQL解析情報として取得し、
    前記ログ抽出情報から前記SQLを含むログの有する前記クラス名を取得し、前記SQL解析情報から前記テーブル名を取得し、該クラス名と該テーブル名との組み合わせを表すマトリックスを作成し、前記シーケンス番号に基づいて、前記SQLデータ操作言語を特定する記号を該マトリックスに配置することにより、前記設計書としてテーブル・クラス関係表を作成する、
    ことを特徴とする設計書作成方法。
JP2008077268A 2008-03-25 2008-03-25 設計書作成プログラム、該装置、及び該方法 Expired - Fee Related JP5045517B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008077268A JP5045517B2 (ja) 2008-03-25 2008-03-25 設計書作成プログラム、該装置、及び該方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008077268A JP5045517B2 (ja) 2008-03-25 2008-03-25 設計書作成プログラム、該装置、及び該方法

Publications (2)

Publication Number Publication Date
JP2009230618A true JP2009230618A (ja) 2009-10-08
JP5045517B2 JP5045517B2 (ja) 2012-10-10

Family

ID=41245893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008077268A Expired - Fee Related JP5045517B2 (ja) 2008-03-25 2008-03-25 設計書作成プログラム、該装置、及び該方法

Country Status (1)

Country Link
JP (1) JP5045517B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245371A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理システムおよび情報処理方法
JP2011191819A (ja) * 2010-03-11 2011-09-29 Fujitsu Ltd 情報管理プログラム、情報管理装置及び情報管理方法
JP2014225198A (ja) * 2013-05-17 2014-12-04 日本電信電話株式会社 プログラム分析装置及び方法及びプログラム
JP2018045619A (ja) * 2016-09-16 2018-03-22 富士通株式会社 解析プログラム、解析方法、及び解析装置
US10248478B2 (en) 2016-09-30 2019-04-02 Fujitsu Limited Information processing device and specification creation method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245371A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理システムおよび情報処理方法
JP2011191819A (ja) * 2010-03-11 2011-09-29 Fujitsu Ltd 情報管理プログラム、情報管理装置及び情報管理方法
JP2014225198A (ja) * 2013-05-17 2014-12-04 日本電信電話株式会社 プログラム分析装置及び方法及びプログラム
JP2018045619A (ja) * 2016-09-16 2018-03-22 富士通株式会社 解析プログラム、解析方法、及び解析装置
US10248478B2 (en) 2016-09-30 2019-04-02 Fujitsu Limited Information processing device and specification creation method

Also Published As

Publication number Publication date
JP5045517B2 (ja) 2012-10-10

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
JP5756386B2 (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
CA2684822C (en) Data transformation based on a technical design document
US20080163003A1 (en) Method and System for Autonomic Target Testing
US20120266131A1 (en) Automatic program generation device, method, and computer program
CN102804147A (zh) 执行abap源代码的代码检查的代码检查执行系统
US20110307488A1 (en) Information processing apparatus, information processing method, and program
JP5045517B2 (ja) 設計書作成プログラム、該装置、及び該方法
CN112241370B (zh) 一种api接口类的校验方法、系统及装置
JP2016045545A (ja) 影響調査システム、影響調査方法、および影響調査プログラム
JP4928848B2 (ja) 計算機システム統合管理環境におけるメッセージ変換装置
US11615016B2 (en) System and method for executing a test case
Ostrand et al. A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files.
CN111158973B (zh) 一种web应用动态演化监测方法
CN110989991B (zh) 检测应用程序中源代码克隆开源软件的方法及系统
JP5576570B2 (ja) 業務仕様からワークフローを生成する方法、プログラム及びシステム
JP6588988B2 (ja) 業務プログラム生成支援システムおよび業務プログラム生成支援方法
JP2007199800A (ja) デグレート防止支援プログラムおよびデグレート防止支援方法
US20220244975A1 (en) Method and system for generating natural language content from recordings of actions performed to execute workflows in an application
WO2000023878A2 (en) System and method for summarizing a software program
CN115203057B (zh) 低代码测试自动化方法、装置、设备及存储介质
CN115776508A (zh) 一种埋点校验方法及系统
US12001324B2 (en) Operation pattern generation apparatus, operation pattern generation method and program
JP2015176454A (ja) 回帰テスト支援システム
JP2004362495A (ja) エラーログ情報解析支援方法及び実施装置並びに処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120611

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120619

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120702

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees