JP5936138B2 - 操作手順書を生成する装置及び方法 - Google Patents

操作手順書を生成する装置及び方法 Download PDF

Info

Publication number
JP5936138B2
JP5936138B2 JP2013128179A JP2013128179A JP5936138B2 JP 5936138 B2 JP5936138 B2 JP 5936138B2 JP 2013128179 A JP2013128179 A JP 2013128179A JP 2013128179 A JP2013128179 A JP 2013128179A JP 5936138 B2 JP5936138 B2 JP 5936138B2
Authority
JP
Japan
Prior art keywords
captured image
software
unit
information
captured
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.)
Active
Application number
JP2013128179A
Other languages
English (en)
Other versions
JP2015005010A (ja
Inventor
明日香 海野
明日香 海野
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013128179A priority Critical patent/JP5936138B2/ja
Priority to US14/275,262 priority patent/US9727331B2/en
Publication of JP2015005010A publication Critical patent/JP2015005010A/ja
Application granted granted Critical
Publication of JP5936138B2 publication Critical patent/JP5936138B2/ja
Priority to US15/670,173 priority patent/US10067759B2/en
Priority to US15/788,145 priority patent/US10289410B2/en
Priority to US16/208,490 priority patent/US10678538B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/1219Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to consumables, e.g. ink, toner, paper
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/13Digital output to plotter ; Cooperation and interconnection of the plotter with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Description

本発明は、操作手順書を生成する装置及び方法に関する。特に、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むそのソフトウェアの操作手順書を生成する装置及び方法に関する。
ソフトウェアの操作手順をそのソフトウェアが表示する画面のキャプチャ画像を用いながら文書化してソフトウェアの操作手順書を作成する作業は、様々な場面で行われている。例えば、ソフトウェアのマニュアルの作成、テストの手順書の作成、チーム内での知識の共有、開発者への問題報告での再現する手順の記述等の場面である。
ところが、ソフトウェアの操作手順書を人手で作成する作業には、非常に多くの時間と手間がかかる。また、ソフトウェアの操作手順書の作成者によって、操作手順書の書き方や詳細度に差が出てしまう。
そこで、ソフトウェアの操作手順書をコンピュータで自動生成することが求められており、操作手順書の自動生成装置は、公報記載の技術としても知られている(例えば、特許文献1、2参照)。
特許文献1は、ユーザが、ルートURLを指定すると、ルートURLが示すWebアプリケーションサーバーのWebアプリケーションの画面にアクセスする手段と、アクセスした画面を引数として画面解析処理を呼び出す手段と、画面解析処理によって、解析対象の画面のHTMLを解析し、画面中に存在する全てのリンク、フォームの情報を取得し、画面情報記憶部に登録する手段と、解析対象の画面をキャプチャし、それを画像ファイルに変換し、画面画像記憶部に保存する手段と、取得したすべてのリンク、フォームについて、アクセス、又は、フォーム送信を行い、画面遷移を行う手段等を備えたWebアプリケーションの操作手順書生成システムを開示する。
特許文献2は、アプリケーションの表示画面のデータを、アプリケーションへの操作イベントが発生する毎に取得し、作業順序や遷移レベルを示す番号を対応させて管理し、利用者が正常系の手順書を作る旨の指示を行うと、自動的に正常遷移の画面が選択され、手順書に採用され、また、異常系の遷移画面を選択することも可能であり、更に、利用者は、手動で、手順書に使用する画面を選択することも可能である操作手順書の自動生成装置を開示する。
また、ソフトウェアの操作手順書を自動生成する際に用いることが可能なプログラム製品の開発も行われている(例えば、非特許文献1、2参照)。
非特許文献1は、キャプチャ画像をタブで撮り溜めし、後から画像編集等を行うことができるマニュアル作成用キャプチャソフトを開示する。
非特許文献2は、テスト中のアプリケーションのUIで実行した各操作をテキストとしてファイルに格納する操作ログを作成できるテストケース作成支援ツールを開示する。
特開2010−79342号公報 特開2007−11532号公報 マニュアル作成用キャプチャソフト TabDeCapture、[online]、[平成25年5月15日検索]、インターネット<URL:http://www.vector.co.jp/soft/winnt/art/se462159.html> Visual Studio テストケース生成支援ツール、[online]、[平成25年5月15日検索]、インターネット<URL:http://msdn.microsoft.com/ja-jp/library/vstudio/dd421944.aspx>
特許文献1、2の発明では、アプリケーションでイベントが発生する毎に画面のキャプチャ画像を取得し、これを使用して操作手順書を自動生成している。
しかしながら、アプリケーションでイベントが発生する毎に画面のキャプチャ画像を取得したのでは、画像量が膨大になり、操作手順書のファイルサイズも大きくなってしまう。また、イベント毎の画面のキャプチャ画像が貼られた操作手順書は、読み手にとって非常に冗長に感じられる。
尚、非特許文献1、2は、ソフトウェアの操作手順書を自動生成する際に用いることが可能なプログラム製品を開示するに過ぎず、このような問題に対する解決手段を提案するものではない。
本発明の目的は、ソフトウェアが表示する画面のキャプチャ画像を含む操作手順書を生成する際に、操作手順書に含めるキャプチャ画像の量を抑えることにある。
かかる目的のもと、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むソフトウェアの操作手順書を生成する装置であって、ソフトウェアに対する複数回の操作に応じて、ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割する分割部と、複数のキャプチャ画像群の各キャプチャ画像群について各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する生成部とを含む、装置を提供する。
ここで、この装置は、ソフトウェアが表示する複数のオブジェクトに関するオブジェクト情報を取得する情報取得部を更に含み、分割部は、オブジェクト情報を用いて、複数のキャプチャ画像を複数のキャプチャ画像群に分割する、ものであってよい。その場合、情報取得部は、ソフトウェアが表示する一のオブジェクトに対する操作に応じて、一のオブジェクトとは異なる他のオブジェクトが出現したかどうかを示すオブジェクト情報を取得し、分割部は、他のオブジェクトが出現したことをオブジェクト情報が示す場合に、一のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、操作の1つ前又は1つ後の操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、複数のキャプチャ画像を複数のキャプチャ画像群に分割する、ものであってよい。或いは、情報取得部は、複数のオブジェクトのうちの2つのオブジェクトが表示される領域が重なるかどうかを示すオブジェクト情報を取得し、分割部は、2つのオブジェクトが表示される領域が重ならないことをオブジェクト情報が示す場合に、2つのオブジェクトのうちの第1のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、2つのオブジェクトのうちの第2のオブジェクトに対する操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、複数のキャプチャ画像を複数のキャプチャ画像群に分割する、ものであってもよい。
また、分割部は、ソフトウェアが表示する1つのオブジェクトに対する連続しない2回の操作に応じて取得された2つのキャプチャ画像が別々のキャプチャ画像群に属するように、複数のキャプチャ画像を複数のキャプチャ画像群に分割する、ものであってよい。
更に、分割部は、操作手順書に含めるキャプチャ画像の数の複数のキャプチャ画像の数に対する割合の指定に基づいて、複数のキャプチャ画像を複数のキャプチャ画像群に分割する、ものであってよい。
一方、生成部は、複数のキャプチャ画像群の各キャプチャ画像群について、少なくとも1回の操作のうちの最後の操作に応じて取得されたキャプチャ画像と、少なくとも1回の操作の順序を示す情報とを含む操作手順書を生成する、ものであってよい。
また、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むソフトウェアの操作手順書を生成する装置であって、ソフトウェアに対する複数回の操作に応じて、ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、ソフトウェアが表示する複数のオブジェクトの階層構造を示す階層構造情報を取得し、かつ、複数のオブジェクトのうちの一のオブジェクトに対する操作に応じて、一のオブジェクトとは異なる他のオブジェクトが出現したことを示す出現情報を取得する情報取得部と、階層構造情報に基づいて、複数のオブジェクトにそれぞれ対応する複数のノードと、複数のノードのうちの親子関係にある2つのノードを結合する複数のリンクとを含む木構造を生成する木構造生成部と、複数のリンクのうち、一のオブジェクトに対応するノードと、他のオブジェクトに対応するノードとの間にあるリンクに、出現情報を付加する付加部と、木構造において、複数のオブジェクトに対する操作の順に複数のオブジェクトにそれぞれ対応する複数のノードを走査した際に、出現情報が付加されたリンクを通過すれば、一のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、操作の1つ前又は1つ後の操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、複数のキャプチャ画像を複数のキャプチャ画像群に分割する分割部と、複数のキャプチャ画像群の各キャプチャ画像群について各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する操作手順書生成部とを含む、装置も提供する。
また、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むソフトウェアの操作手順書を生成する装置であって、ソフトウェアに対する複数回の操作に応じて、ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、ソフトウェアが表示する複数のオブジェクトの階層構造を示す階層構造情報と、複数のオブジェクトのうちの表示される領域が重ならない2つのオブジェクトを示す領域情報とを取得する情報取得部と、階層構造情報に基づいて、複数のオブジェクトにそれぞれ対応する複数のノードを含む木構造を生成する木構造生成部と、複数のノードのうち、2つのオブジェクトにそれぞれ対応する2つのノードの親のノードを、領域情報に基づいて特定する特定部と、木構造において、複数のオブジェクトに対する操作の順に複数のオブジェクトにそれぞれ対応する複数のノードを走査した際に、親のノードを通過すれば、2つのオブジェクトのうちの第1のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、2つのオブジェクトのうちの第2のオブジェクトに対する操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、複数のキャプチャ画像を複数のキャプチャ画像群に分割する分割部と、複数のキャプチャ画像群の各キャプチャ画像群について各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する操作手順書生成部とを含む、装置も提供する。
更に、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むソフトウェアの操作手順書を生成する方法であって、ソフトウェアに対する複数回の操作に応じて、ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得するステップと、複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割するステップと、複数のキャプチャ画像群の各キャプチャ画像群について各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成するステップとを含む、方法も提供する。
更にまた、本発明は、ソフトウェアが表示する画面のキャプチャ画像を含むソフトウェアの操作手順書を生成する装置として、コンピュータを機能させるプログラムであって、コンピュータを、ソフトウェアに対する複数回の操作に応じて、ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割する分割部と、複数のキャプチャ画像群の各キャプチャ画像群について各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する生成部として機能させる、プログラムも提供する。
本発明によれば、ソフトウェアが表示する画面のキャプチャ画像を含む操作手順書を生成する際に、操作手順書に含めるキャプチャ画像の量を抑えることができる。
本発明の実施の形態における操作手順書生成装置の機能構成例を示したブロック図である。 本発明の実施の形態におけるオブジェクトツリー生成部が生成した初期段階のオブジェクトツリーを示した図である。 本発明の実施の形態におけるオブジェクトツリー生成部が不要な情報を削除した後のオブジェクトツリーを示した図である。 本発明の実施の形態における出現情報付加部が出現情報を付加した後のオブジェクトツリーを示した図である。 オブジェクトツリーに含まれる複数のパネルオブジェクトの表示領域の一例を示した図である。 本発明の実施の形態における領域情報付加部が領域情報を付加した後のオブジェクトツリーを示した図である。 本発明の実施の形態における第1グルーピング部の処理開始時に操作情報記憶部に記憶されている操作情報の一例を示した図である。 本発明の実施の形態における第1グルーピング部がグルーピングを行った後の操作グループ情報を示したである。 (a),(b)は、タイプ1のリンクがある場合のセパレータの設定を説明するための図である。 (a)〜(c)は、タイプ3のリンクがある場合のセパレータの設定を説明するための図である。 本発明の実施の形態における第1グルーピング部がグルーピングを行う際の動作例を示したフローチャートである。 本発明の実施の形態における第2グルーピング部がグルーピングを行った後の操作グループ情報を示した図である。 本発明の実施の形態における第2グルーピング部が第1のグルーピングを行う際の動作例を示したフローチャートである。 本発明の実施の形態における第2グルーピング部が第2のグルーピングを行う際の動作例を示したフローチャートである。 本発明の実施の形態における第3グルーピング部がグルーピングを行った後の操作グループ情報を示した図である。 本発明の実施の形態における第3グルーピング部がグルーピングを行う際の動作例を示したフローチャートである。 本発明の実施の形態における第3グルーピング部がグルーピングを行う際の動作例を示したフローチャートである。 本発明の実施の形態におけるキャプチャ画像マージ部がキャプチャ画像をマージする際の加工処理について示した図である。 本発明の実施の形態におけるキャプチャ画像マージ部が加工処理を行う際の動作例を示したフローチャートである。 本発明の実施の形態におけるキャプチャ画像マージ部がキャプチャ画像をマージする際の別の加工処理を説明するための図である。 本発明の実施の形態におけるキャプチャ画像マージ部が別の加工処理を行う際の動作例を示したフローチャートである。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成例を示した図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。本実施の形態では、意味のあるまとまりを構成する複数ステップの操作を1ステップの操作として記述した簡潔な操作手順書を生成する。具体的には、操作毎にキャプチャ画像を取得する際に、操作対象のオブジェクトに関する情報(以下、「オブジェクト情報」という)も取得する。このオブジェクト情報は、詳しくは後述するが、オブジェクトの階層構造、表示領域、出現及び消滅のタイミング等の情報を含む。そして、このオブジェクト情報に基づいて、意味のあるまとまりを構成する複数の操作に対応するキャプチャ画像が1つのグループに属するようにグループ化し、グループ化されたキャプチャ画像をマージする。
[操作手順書生成装置の機能構成]
図1は、本実施の形態における操作手順書生成装置1の機能構成例を示したブロック図である。図示するように、操作手順書生成装置1は、キャプチャ画像/オブジェクト情報取得部10と、オブジェクト情報処理部20と、操作情報グルーピング部30と、キャプチャ画像マージ部40と、これらの各機能部への入力データ又はこれらの各機能部からの出力データを記憶する各種記憶部とを備えている。
(キャプチャ画像/オブジェクト情報取得部)
図示するように、キャプチャ画像/オブジェクト情報取得部10は、操作検出部11と、画面キャプチャ部12と、オブジェクト情報取得部13と、イベント処理部14とを含む。
操作検出部11は、操作手順書が対象とするソフトウェアが起動され、図示しない操作開始ボタンが押下されると、このソフトウェアに対するユーザ操作を検出し、操作IDと操作内容とを対応付けた操作情報を生成する。ここで、操作IDとは、ユーザ操作が発生する順に割り振られた連番であり、操作を一意に識別する情報である。操作IDは、例えば同じオブジェクトに対する複数のユーザ操作の重複が排除されたような場合であっても変化しない。尚、この操作情報は、各種記憶部の1つである操作情報記憶部15に記憶される。また、操作検出部11は、図示しない操作終了ボタンが押下されると、このソフトウェアに対するユーザ操作の検出を終了する。
画面キャプチャ部12は、操作検出部11がユーザ操作を検出する毎に、そのときソフトウェアが表示している画面をキャプチャする。ユーザ操作により画面が変更される場合は、変更前の画面をキャプチャする。そして、操作IDとキャプチャ画像とを対応付けたキャプチャ情報を生成する。尚、このキャプチャ情報は、各種記憶部の1つであるキャプチャ情報記憶部16に記憶される。本実施の形態では、複数のキャプチャ画像を取得する画像取得部の一例として、画面キャプチャ部12を設けている。
オブジェクト情報取得部13は、操作検出部11がユーザ操作を検出する毎に、操作対象のオブジェクトに関するオブジェクト情報を取得する。ここで、オブジェクト情報は、オブジェクトの階層構造を示す階層情報と、オブジェクトの表示領域を示す領域情報(座標等)とを含む。また、オブジェクト情報は、新しいオブジェクトの出現を示す出現情報も含む。更に、この出現情報には、1つ前に操作したオブジェクトがアクティブ(操作可能)かインアクティブ(操作不可能)かを示す情報や、これまでに操作したパネルオブジェクト(後述)のうち非表示になったものを示す情報も含まれ得る。尚、このオブジェクト情報は、各種記憶部の1つであるオブジェクト情報記憶部17に記憶される。本実施の形態では、オブジェクト情報を取得する情報取得部、階層構造情報と出現情報とを取得する情報取得部、階層構造情報と領域情報とを取得する情報取得部の一例として、オブジェクト情報取得部13を設けている。
イベント処理部14は、操作検出部11が検出したユーザ操作に応じたイベント処理を実行する。
尚、これらの機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、CPU90a(図21参照)が、操作検出部11、画面キャプチャ部12、オブジェクト情報取得部13、イベント処理部14を実現するプログラムを例えば磁気ディスク装置90g(図21参照)からメインメモリ90c(図21参照)に読み込んで実行することにより、これらの機能部は実現される。また、操作情報記憶部15、キャプチャ情報記憶部16、オブジェクト情報記憶部17は、例えば磁気ディスク装置90g(図21参照)により実現される。
(オブジェクト情報処理部)
図示するように、オブジェクト情報処理部20は、オブジェクトツリー生成部21と、出現情報付加部22と、領域情報付加部23とを含む。
オブジェクトツリー生成部21は、オブジェクト情報記憶部17に記憶されたオブジェクト情報に含まれる階層情報を用いて、ソフトウェアが表示する複数のオブジェクトの階層構造を表すオブジェクトツリーを生成する。具体的には、複数のオブジェクトにそれぞれ対応する複数の要素(ノード)を含み、あるオブジェクトが別のオブジェクトを含む場合に、前者のオブジェクトに対応する要素が、後者のオブジェクトに対応する要素の上位に位置付けられるオブジェクトツリーを生成する。尚、このオブジェクトツリーは、各種記憶部の1つであるオブジェクトツリー記憶部24に記憶される。また、オブジェクトツリー生成部21は、オブジェクトツリーに含まれる要素のうち、操作情報グルーピング部30で参照されない要素を、不要な情報として削除する処理も行う。本実施の形態では、木構造を生成する木構造生成部の一例として、オブジェクトツリー生成部21を設けている。
出現情報付加部22は、オブジェクト情報記憶部17に記憶されたオブジェクト情報に含まれる出現情報を、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーに付加する。具体的には、あるオブジェクトを操作することにより別のオブジェクトが出現したことを出現情報が示していれば、オブジェクトツリーにおいて、前者のオブジェクトに対応する要素から後者のオブジェクトに対応する要素までのパスに含まれるリンクに出現情報を付加する。本実施の形態では、出現情報を付加する付加部の一例として、出現情報付加部22を設けている。
領域情報付加部23は、オブジェクト情報記憶部17に記憶されたオブジェクト情報に含まれる領域情報を、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーに付加する。具体的には、あるオブジェクトの表示領域を示す領域情報を、オブジェクトツリーにおいて、そのオブジェクトに対応する要素に付加する。また、領域情報付加部23は、排他的に配置された複数の子のパネルオブジェクトを持つ親のパネルオブジェクトを特定し、このパネルオブジェクトの情報を、オブジェクトグループの情報として、領域情報に含める。本実施の形態では、親のノードを特定する特定部の一例として、領域情報付加部23を設けている。但し、領域情報付加部23は領域情報を付加する処理までを行い、親のパネルオブジェクトを特定する処理は、後述する第3グルーピング部33が行うようにしてもよい。
尚、これらの機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、CPU90a(図21参照)が、オブジェクトツリー生成部21、出現情報付加部22、領域情報付加部23を実現するプログラムを例えば磁気ディスク装置90g(図21参照)からメインメモリ90c(図21参照)に読み込んで実行することにより、これらの機能部は実現される。また、オブジェクトツリー記憶部24は、例えば磁気ディスク装置90g(図21参照)により実現される。
(操作情報グルーピング部)
図示するように、操作情報グルーピング部30は、第1グルーピング部31と、第2グルーピング部32と、第3グルーピング部33とを含む。本実施の形態では、複数のキャプチャ画像を複数のキャプチャ画像群に分割する分割部の一例として、第1グルーピング部31、第2グルーピング部32及び第3グルーピング部33を設けている。
第1グルーピング部31は、操作情報記憶部15に記憶された操作情報に対して、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーに付加された出現情報に基づくグルーピングを行い、操作情報のグループを示す情報(以下、「操作グループ情報」という)を生成する。尚、この操作グループ情報は、各種記憶部の1つである操作グループ情報記憶部34に記憶される。
第2グルーピング部32は、操作グループ情報記憶部34に記憶された操作グループ情報に対して、同じグループ内の同じオブジェクトに対する複数の操作に着目したグルーピングを行う。
第3グルーピング部33は、操作グループ情報記憶部34に記憶された操作グループ情報に対して、ユーザが指定した圧縮率と、領域情報に含められたオブジェクトグループの情報とに基づくグルーピングを行う。
尚、これらの機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、CPU90a(図21参照)が、第1グルーピング部31、第2グルーピング部32、第3グルーピング部33を実現するプログラムを例えば磁気ディスク装置90g(図21参照)からメインメモリ90c(図21参照)に読み込んで実行することにより、これらの機能部は実現される。また、操作グループ情報記憶部34は、例えば磁気ディスク装置90g(図21参照)により実現される。
(キャプチャ画像マージ部)
キャプチャ画像マージ部40は、操作グループ情報記憶部34に記憶された操作グループ情報が示す操作情報のグループごとに、最後の操作IDをキーとして、キャプチャ情報記憶部16に記憶されたキャプチャ情報からキャプチャ画像を取り出し、取り出したキャプチャ画像をマージする。その際、操作情報のグループごとに、キャプチャ画像に対して、操作番号等の情報を付加する。また、新たに出現したオブジェクトをハイライトする処理を行ってもよい。本実施の形態では、各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する生成部、各キャプチャ画像群に属する一のキャプチャ画像を含む操作手順書を生成する操作手順書生成部の一例として、キャプチャ画像マージ部40を設けている。
尚、このキャプチャ画像マージ部40は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、CPU90a(図21参照)が、キャプチャ画像マージ部40を実現するプログラムを例えば磁気ディスク装置90g(図21参照)からメインメモリ90c(図21参照)に読み込んで実行することにより、このキャプチャ画像マージ部40は実現される。
[操作手順書生成装置の動作]
次に、本実施の形態における操作手順書生成装置1の動作について詳細に説明する。但し、ここでは、キャプチャ画像/オブジェクト情報取得部10の動作については、既に説明した通りなので省略し、オブジェクト情報処理部20、操作情報グルーピング部30、及び、キャプチャ画像マージ部40の動作について説明する。
(オブジェクト情報処理部)
まず、オブジェクト情報処理部20の各処理部の動作について詳細に説明する。
第一に、オブジェクトツリー生成部21の動作について詳細に説明する。
オブジェクトツリー生成部21は、オブジェクト情報記憶部17に記憶されたオブジェクト情報に含まれる階層情報を用いてオブジェクトツリーを生成する。図2は、オブジェクトツリー生成部21が生成した初期段階のオブジェクトツリーを示した図である。図において、C1,C2,C3,…と記された矩形の要素はUIコンポーネントを表し、P1,P2,P3,…と記された矩形の要素はパネルオブジェクトを表す。ここで、UIコンポーネントとは、テキストボックス、ボタン等のユーザが操作できるオブジェクトである。パネルオブジェクトとは、少なくとも1つのオブジェクトをまとめて配置するためのオブジェクトであり、例えば、ボタンとラベルをまとめて配置したオブジェクトや、複数のパネルオブジェクトを配置したウィンドウ等である。
また、図には、何も記されていない矩形の要素も示されている。これは、UIコンポーネント及びパネルオブジェクト以外のオブジェクトを表し、操作手順書の作成に不要な情報である。また、あるパネルオブジェクトと別のパネルオブジェクトとの間に分岐がない1対1の親子関係がある場合における子のパネルオブジェクト(例えば、図のP2,P8)も、操作手順書の作成に不要な情報である。そこで、オブジェクトツリー生成部21は、これらの不要な情報を削除することにより、初期段階のオブジェクトツリーを、操作手順書の作成に必要な情報のみからなる操作手順書作成用オブジェクトツリーに変換する。
図3は、オブジェクトツリー生成部21がこのような変換を行うことによって得られる操作手順書作成用オブジェクトツリーを示した図である。この図では、図2のオブジェクトツリーから、何も記されていなかった矩形の要素と、P2と記されていた矩形の要素と、P8と記されていた矩形の要素とが削除されている。
第二に、出現情報付加部22の動作について詳細に説明する。
出現情報付加部22は、図3に示したオブジェクトツリーに出現情報を付加する。ここで、出現情報は、上述したように、新しいオブジェクトが出現したことを示す情報である。但し、出現情報は、新しいオブジェクトが出現した際に、そのために操作されたオブジェクト、つまり、新しいオブジェクトの出現のトリガーとなったオブジェクト(以下、「トリガーオブジェクト」という)がアクティブ(操作可能)であるかインアクティブ(操作不可能)であるかを示す情報も含む。また、出現情報は、新しいオブジェクトが出現した際に、別のオブジェクトが非表示となっているか、つまり、消滅したかを示す情報も含む。
即ち、新しいオブジェクトが出現する場合としては、以下の3つのタイプが考えられる。
タイプ1は、トリガーオブジェクトがインアクティブになって、新しいオブジェクトが表示される、というタイプである。例えば、新しいオブジェクトとして子パネルが表示され、それまで表示されていたパネルが操作不可能な状態になる場合等がこのタイプに該当する。
タイプ2は、トリガーオブジェクトはアクティブのまま、新しいオブジェクトが表示される、というタイプである。例えば、ツリー構造のUIにおいて、親のオブジェクトをクリックすると、新しいオブジェクトとして、子のオブジェクトが表示される場合等がこのタイプに該当する。この場合、親のオブジェクトはアクティブであるので、これをクリックすることにより、子のオブジェクトを再び非表示にすることも可能である。
タイプ3は、トリガーオブジェクトはアクティブのまま、別のオブジェクトが非表示になって、新しいオブジェクトが表示される、というタイプである。例えば、タブをクリックすると、新しいオブジェクトとして、そのタブに対応するパネルが、それまで表示されていたパネルの代わりに表示される場合等がこのタイプに該当する。
そこで、出現情報付加部22は、図3に示したオブジェクトツリーにおける新たに出現したオブジェクトに対応する要素とその親要素との間のリンクに対し、出現情報を、これら3つのタイプの何れに対するものであるかが分かるように付加する。
図4は、出現情報付加部22がこのように出現情報を付加した後のオブジェクトツリーを示した図である。図中、細い破線は、タイプ1の出現情報が付加されたリンク(タイプ1のリンク)を表し、太い実線は、タイプ2の出現情報が付加されたリンク(タイプ2のリンク)を表し、太い破線は、タイプ3の出現情報が付加されたリンク(タイプ3のリンク)を表す。また、タイプ1〜3のリンクの近くに記述された「<trigger=Cm>」は、そのリンクに接続されたパネルオブジェクトのうちの下位のパネルオブジェクトが、UIコンポーネントCmに対する操作をトリガーとして出現したことを表し、タイプ3のリンクの近くに記述された「<remove=Pn>」は、そのリンクに接続されたパネルオブジェクトのうちの下位のパネルオブジェクトが出現した際に、パネルオブジェクトPnが消滅したことを表す。
即ち、図4は、UIコンポーネントC2を操作することによりUIコンポーネントC2はインアクティブになってパネルオブジェクトP4が表示されたこと、UIコンポーネントC1を操作することによりUIコンポーネントC1はインアクティブになってパネルオブジェクトP3が表示されたこと、UIコンポーネントC4を操作することによりUIコンポーネントC4はアクティブのままパネルオブジェクトP7が表示されたこと、及び、UIコンポーネントC5を操作することによりUIコンポーネントC5はアクティブのままパネルオブジェクトP9が非表示になってパネルオブジェクトP10が表示されたことを示している。
第三に、領域情報付加部23の動作について詳細に説明する。
領域情報付加部23は、図3に示したオブジェクトツリーに領域情報を付加する。ここで、領域情報は、上述したように、オブジェクトの表示領域を示す情報である。
図5は、オブジェクトツリーに含まれる複数のパネルオブジェクトの表示領域の一例を示した図である。尚、パネルオブジェクトP1,P3は同じ領域を指しているが、これは、パネルオブジェクトP1の子パネルとして、図示しないパネルオブジェクトP4を表示するために、パネルオブジェクトP3を仮想的に設定したからである。また、パネルオブジェクトP9,P10も同じ領域を指しているが、これは、これらのパネルオブジェクトとして、タブによって切り替えられるパネルを想定しているからである。
領域情報付加部23は、図3に示したオブジェクトツリーにおけるパネルオブジェクトに対応する要素に対し、そのパネルオブジェクトの表示領域を示す領域情報を付加する。
図6は、パネルオブジェクトの表示領域が図5に示すようになっている場合において領域情報付加部23が領域情報を付加した後のオブジェクトツリーを示した図である。図中、パネルオブジェクトに対応する要素の近くに記述された「<X,Y,W,H>」が領域情報を表し、このうち、Xが表示領域の左上点のX座標を、Yが表示領域の左上点のY座標を、Wが表示領域の幅を、Hが表示領域の高さを、それぞれ表す。尚、X座標は、図5の右方向が正方向となるように設定され、Y座標は、図5の下方向が正方向となるように設定される。
また、領域情報付加部23は、オブジェクトツリーに付加された領域情報に基づいて、複数の子のパネルオブジェクトが排他的に配置された親のパネルオブジェクトをオブジェクトグループとし、階層が上位のものから順に列挙する。図5及び図6の例では、パネルオブジェクトP3が、排他的に配置されたパネルオブジェクトP5,P6を子のパネルオブジェクトとして持つので、1つ目のオブジェクトグループとされる。また、パネルオブジェクトP6が、排他的に配置されたパネルオブジェクトP11,P12を子のパネルオブジェクトとして持つので、2つ目のオブジェクトグループとされる。尚、このようにして列挙されたオブジェクトグループの配列も、領域情報に含めて、オブジェクトツリー記憶部24に記憶されるものとする。
尚、図4では出現情報のみが付加されたオブジェクトツリーを示し、図6では領域情報のみが付加されたオブジェクトツリーを示した。操作情報グルーピング部30で出現情報のみを用いて操作情報のグルーピングを行うのであれば、図4に示したオブジェクトツリーをオブジェクトツリー記憶部24に記憶しておけばよいし、操作情報グルーピング部30で領域情報のみを用いて操作情報のグルーピングを行うのであれば、図6に示したオブジェクトツリーをオブジェクトツリー記憶部24に記憶しておけばよい。これに対し、操作情報グルーピング部30で出現情報及び領域情報を用いて操作情報のグルーピングを行うのであれば、出現情報及び領域情報が付加されたオブジェクトツリーをオブジェクトツリー記憶部24に記憶しておく必要がある。
(操作情報グルーピング部)
次に、このようなオブジェクトツリーがオブジェクトツリー記憶部24に記憶されているものとして、操作情報グルーピング部30の各処理部の動作について詳細に説明する。
第一に、第1グルーピング部31の動作について詳細に説明する。
図7は、第1グルーピング部31の処理開始時に操作情報記憶部15に記憶されている操作情報の一例を示した図である。図示するように、操作情報は、操作IDと操作内容とを対応付けたものとなっている。尚、以下では、操作IDが「K」の操作を操作Kと表記することにする。
第1グルーピング部31は、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーを参照しながら、操作情報記憶部15に記憶された操作情報のグルーピングを行う。具体的には、ある操作IDの操作に対応するUIコンポーネントと、次の操作IDの操作に対応するUIコンポーネントとの間のパスを、オブジェクトツリーから検索する。その際、子のオブジェクトから親のオブジェクトへのリンクについては、特別な処理を行わない。一方、親のオブジェクトから子のオブジェクトへのリンクについては、それがタイプ1〜タイプ3のリンクの何れであるかによって異なる処理を行う。即ち、それがタイプ1のリンクであれば、これら2つの操作IDの操作の間で操作情報を分ける。それがタイプ2のリンクであれば、特別な処理を行わない。それがタイプ3のリンクであれば、これら2つの操作IDのうちの1つ目の操作IDの操作とその1つ前の操作との間で操作情報を分ける。
図8は、第1グルーピング部31がこのようにしてグルーピングを行った後の操作グループ情報を示した図である。尚、ここでは、2つの操作の間にセパレータを設定することにより、これら2つの操作の間で操作情報を分けるようにしている。例えば、図4を参照すると、操作3に対応するUIコンポーネントC2から操作4に対応するUIコンポーネントC1へのパスに含まれる親から子へのリンクの中にタイプ1のリンクがある。従って、図8では、操作3と操作4の間にセパレータ611を設定している。また、操作4に対応するUIコンポーネントC1から操作5に対応するUIコンポーネントC3へのパスに含まれる親から子へのリンクの中にもタイプ1のリンクがある。従って、図8では、操作4と操作5の間にセパレータ612を設定している。一方、操作13に対応するUIコンポーネントC5から操作14に対応するUIコンポーネントC8へのパスに含まれる親から子へのリンクの中にはタイプ3のリンクがある。従って、図8では、操作13と操作14の間ではなく、操作12と操作13の間にセパレータ613を設定している。このようにセパレータ611〜613が設定された操作グループ情報は、操作グループ情報記憶部34に記憶される。
図9(a),(b)は、タイプ1のリンクがある場合のセパレータの設定を、具体的な画面例を用いて説明するための図である。ここでは、各図に示した画面は、各図内の太線で囲んだオブジェクトに対する操作に応じてキャプチャされたものとする。即ち、図9(a)では、ウィンドウ511はアクティブであり、ウィンドウ511内のボタン512をクリックすることにより、画面がキャプチャされる。また、このとき、図9(b)に示すように、ウィンドウ511はインアクティブになり、ウィンドウ513が表示され、ウィンドウ513内の何れかのオブジェクトを操作することにより、画面がキャプチャされる。この場合、図4のオブジェクトツリーにおいて、ボタン512からウィンドウ513内のオブジェクトへのパスの中にタイプ1のリンクがあるので、図9(a)の画面上で行われた操作と、図9(b)の画面上で行われた操作との間に、セパレータが設定されることになる。
図10(a)〜(c)は、タイプ3のリンクがある場合のセパレータの設定を、具体的な画面例を用いて説明するための図である。ここでも、各図に示した画面は、各図内の太線で囲んだオブジェクトに対する操作に応じてキャプチャされたものとする。即ち、図10(a)では、タブ531に対応するパネル532が表示され、パネル532内のテキストボックス533を操作することにより、画面がキャプチャされる。また、図10(b)では、タブ534をクリックすることにより、画面がキャプチャされる。更に、このとき、図10(c)に示すように、パネル532に代えてパネル535が表示され、テキストボックス536を操作することにより、画面がキャプチャされる。この場合、図4のオブジェクトツリーにおいて、タブ534からテキストボックス536へのパスの中にタイプ3のリンクがあるので、図10(a)の画面上で行われた操作と、図10(b)の画面上で行われた操作との間に、セパレータが設定されることになる。
図11は、第1グルーピング部31がこのようなグルーピングを行う際の動作例を示したフローチャートである。尚、この動作例では、操作情報記憶部15に記憶された操作情報から操作対象のオブジェクトを抽出して操作情報における順序で並べた操作オブジェクトリストが第1グルーピング部31に与えられるものとする。例えば、操作情報記憶部15に記憶された操作情報が図7に示したようなものだとすると、操作オブジェクトリストC3,C4,C2,C1,C3,…,C8,C8,C9が第1グルーピング部31に与えられる。
動作を開始すると、第1グルーピング部31は、まず、操作オブジェクトリストから0番目の要素を取り出し、要素をカウントするための変数Nに0を代入する(ステップ301)。次に、第1グルーピング部31は、操作オブジェクトリストに(N+1)番目の要素があるかどうかを判定する(ステップ302)。その結果、操作オブジェクトリストに(N+1)番目の要素がないと判定すれば、第1グルーピング部31は、処理を終了する。一方、操作オブジェクトリストに(N+1)番目の要素があると判定すれば、第1グルーピング部31は、Nを1ずつ増やしながらステップ303〜308の処理を行う。
即ち、第1グルーピング部31は、まず、操作オブジェクトリストのN番目の要素と(N+1)番目の要素との間のパスを、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーから検索する(ステップ303)。例えば、Nが2であるとすると、要素C2と要素C1との間のパスを検索することになる。また、Nが12であるとすると、要素C5と要素C8との間のパスを検索することになる。次に、第1グルーピング部31は、検索で見つかったパスに含まれるリンクのうち、親要素から子要素へのリンクをリストアップする(ステップ304)。例えば、要素C2と要素C1との間のパスが見つかったとすると、要素P1から要素P4へのリンクと、要素P4から要素C1へのリンクとがリストアップされる。また、要素C5と要素C8との間のパスが見つかったとすると、要素P6から要素P12へのリンクと、要素P12から要素P10へのリンクと、要素P10から要素C8へのリンクとがリストアップされる。
これにより、第1グルーピング部31は、リストアップされたリンクの中にタイプ1のリンクがあるかどうかを判定する(ステップ305)。その結果、タイプ1のリンクがないと判定すれば、第1グルーピング部31は、ステップ307へ処理を進める。一方、タイプ1のリンクがあると判定すれば、第1グルーピング部31は、操作オブジェクトリストのN番目の要素と(N+1)番目の要素との間にセパレータを挿入する(ステップ306)。例えば、要素C2と要素C1との間のパスが見つかったとすると、要素P1から要素P4へのリンクがタイプ1のリンクなので、要素C2に対する操作と要素C1に対する操作との間にセパレータが挿入される。
また、第1グルーピング部31は、リストアップされたリンクの中にタイプ3のリンクがあるかどうかを判定する(ステップ307)。その結果、タイプ3のリンクがないと判定すれば、第1グルーピング部31は、ステップ309へ処理を進める。一方、タイプ3のリンクがあると判定すれば、第1グルーピング部31は、操作オブジェクトリストの(N−1)番目の要素とN番目の要素との間にセパレータを挿入する(ステップ308)。例えば、要素C5と要素C8との間のパスが見つかったとすると、要素P12から要素P10へのリンクがタイプ3のリンクなので、要素C5に対する操作とその1つ前の要素C6に対する操作との間にセパレータが挿入される。
その後、第1グルーピング部31は、Nに1を加算して(ステップ309)、ステップ302へ処理を進める。
第二に、第2グルーピング部32の動作について詳細に説明する。
第2グルーピング部32は、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーとは関係なく、操作グループ情報記憶部34に記憶された操作グループ情報のグルーピングを行う。具体的には、第1のグルーピングとして、同じオブジェクトに対する操作が連続する場合に、最後の操作のみを残すことにより、操作グループ情報を圧縮する処理を行う。例えばテキストボックスに目的の文字列を入力する操作が分割して記録されている場合等に、同じオブジェクトに対する操作が連続することが起こり得るので、このような処理を行う。これは厳密にはグルーピングではないが、グループ内の要素の整理という意味でグルーピングに含めている。また、第2のグルーピングとして、同じオブジェクトに対する複数の操作が連続しないが1つのグループ内にある場合も、これらの操作が別々のグループに属することとなるようなグルーピングを行う。或いは、これらの操作のうちの少なくとも2つの操作が別々のグループに属することとなるようなグルーピングを行ってもよい。キャプチャ画像マージ部40がキャプチャ画像をマージする際に同じオブジェクトに対するハイライトが重なることを避けるために、このようなグルーピングを行う。尚、ここでは、第1のグルーピングを行った後の操作グループ情報は一旦操作グループ情報記憶部34に書き出され、第2のグルーピングを行う際に再び操作グループ情報記憶部34から読み込まれるものとする。
図12は、第2グルーピング部32がこのようにしてグルーピングを行った後の操作グループ情報を示した図である。例えば、図8では、操作6から操作10までがUIコンポーネントC6に対する操作となっており、操作14から操作16までがUIコンポーネントC8に対する操作となっていたが、第1のグルーピングにより、それぞれの最後の操作である操作10及び操作16のみを残している。また、このように操作の重複を排除しても、3番目のグループ内には、UIコンポーネントC6に対する連続しない2つの操作である操作10及び操作12が存在しているので、第2のグルーピングを行う。尚、ここでも、2つの操作の間にセパレータを設定することにより、これら2つの操作の間で操作情報を分けるようにしている。例えば、図12では、操作11と操作12の間にセパレータ614を設定している。この場合、セパレータ614は、操作10と操作12とが別々のグループに属するように設定すればよいので、操作10と操作11の間に設定してもよい。このようにセパレータ611〜614が設定された操作グループ情報は、操作グループ情報記憶部34に再び記憶される。
図13は、第2グルーピング部32が第1のグルーピングを行う際の動作例を示したフローチャートである。尚、この動作例では、操作グループ情報記憶部34に記憶された操作グループ情報から操作対象のオブジェクト及びセパレータを抽出して操作グループ情報における順序で並べた操作オブジェクトリストが第2グルーピング部32に与えられるものとする。例えば、操作グループ情報記憶部34に記憶された操作グループ情報が図8に示したようなものだとすると、操作オブジェクトリストC3,C4,C2,(セパレータ),C1,…,C8,C8,C9が第2グルーピング部32に与えられる。
動作を開始すると、第2グルーピング部32は、まず、操作オブジェクトリストから0番目の要素を取り出し、要素をカウントするための変数Nに0を代入する(ステップ321)。次に、第2グルーピング部32は、操作オブジェクトリストに(N+1)番目の要素があるかどうかを判定する(ステップ322)。その結果、操作オブジェクトリストに(N+1)番目の要素がないと判定すれば、第2グルーピング部32は、処理を終了する。一方、操作オブジェクトリストに(N+1)番目の要素があると判定すれば、第2グルーピング部32は、Nを1ずつ増やしながらステップ323〜324の処理を行う。
即ち、第2グルーピング部32は、まず、操作オブジェクトリストのN番目の要素と(N+1)番目の要素とが同じであるかどうかを判定する(ステップ323)。その結果、これらの要素が同じであると判定すれば、第2グルーピング部32は、操作オブジェクトリストからN番目の要素を削除する(ステップ324)。一方、これらの要素が同じでないと判定すれば、第2グルーピング部32は、ステップ325へ処理を進める。
その後、第2グルーピング部32は、Nに1を加算して(ステップ325)、ステップ322へ処理を進める。
図14は、第2グルーピング部32が第2のグルーピングを行う際の動作例を示したフローチャートである。尚、この動作例でも、操作グループ情報記憶部34に記憶された操作グループ情報から操作対象のオブジェクト及びセパレータを抽出して操作グループ情報における順序で並べた操作オブジェクトリストが第2グルーピング部32に与えられるものとする。例えば、操作グループ情報記憶部34に記憶された操作グループ情報が図8に示したものから連続する操作の重複を排除したものだとすると、操作オブジェクトリストC3,C4,C2,(セパレータ),C1,…,C5,C8,C9が第2グルーピング部32に与えられる。また、操作オブジェクトリストに含まれる操作対象のオブジェクト及びセパレータには、操作オブジェクトリストにおける順番を表すインデックスが付されているものとする。
動作を開始すると、第2グルーピング部32は、まず、操作オブジェクトリストLのポインタPを0に設定する(ステップ341)。次に、第2グルーピング部32は、ポインタPが、操作オブジェクトリストLにおける最後の要素のインデックスよりも大きいかどうかを判定する(ステップ342)。その結果、ポインタPが最後の要素のインデックスよりも大きいと判定すれば、第2グルーピング部32は、処理を終了する。一方、ポインタPが最後の要素のインデックスよりも大きくないと判定すれば、第2グルーピング部32は、ステップ343〜353の処理を行う。
即ち、第2グルーピング部32は、まず、操作オブジェクトリストLにおいてポインタP以降にセパレータがあれば、P以降の最初のセパレータのインデックスをポインタEに代入し、操作オブジェクトリストLにおいてポインタP以降にセパレータがなければ、操作オブジェクトリストLにおける最後の要素のインデックスをポインタEに代入する(ステップ343)。そして、第2グルーピング部32は、ポインタPとポインタEとが一致するかどうかを判定する(ステップ344)。その結果、ポインタPとポインタEとが一致すると判定すれば、第2グルーピング部32は、ポインタPを1進めて(ステップ345)、ステップ342へ処理を進める。一方、ポインタPとポインタEとが一致しないと判定すれば、第2グルーピング部32は、ポインタPが指す要素と同じ要素がポインタEまでの間に存在するかどうかを調べる処理を行う。
即ち、第2グルーピング部32は、まず、インデックスリストL’にポインタPを格納する(ステップ346)。尚、このステップの実行に先立ち、インデックスリストL’は初期化しておくものとする。次に、第2グルーピング部32は、要素L(P+1)から要素L(E)までの要素のうち、要素L(P)と同じ要素のインデックスをインデックスリストL’に追加する(ステップ347)。ここで、L(X)とは、操作オブジェクトリストLにおけるポインタXが指す要素である。こうしてインデックスリストL’が生成されると、第2グルーピング部32は、インデックスリストL’の要素の数が2以上であるかどうかを判定する(ステップ348)。その結果、インデックスリストL’の要素の数が2以上でないと判定すれば、ポインタPが指す要素と同じ要素がポインタEまでの間に存在しないので、第2グルーピング部32は、ポインタPを1進めて(ステップ349)、処理をステップ344へ進める。
一方、インデックスリストL’の要素の数が2以上であると判定すれば、ポインタPが指す要素と同じ要素がポインタEまでの間に存在するので、第2グルーピング部32は、ポインタPが指す要素とこれと同じ要素とが別々のグループに属するようにグルーピングを行う。つまり、第2グルーピング部32は、まず、インデックスリストL’の要素をカウントするための変数iに0を代入する(ステップ350)。そして、インデックスリストL’にインデックスL’(i+1)があるかどうかを判定する(ステップ351)。ここで、インデックスL’(x)とは、インデックスリストL’の変数xに対応するインデックスである。その結果、インデックスリストL’にインデックスL’(i+1)があると判定すれば、第2グルーピング部32は、操作オブジェクトリストLにおけるインデックスMの要素の後にセパレータを挿入する(ステップ352)。この場合、インデックスMは、例えば、式「M=L’(i)+INT((L’(i+1)−L’(i))/2)」によって求めるとよい。そして、第2グルーピング部32は、変数iに1を加算して(ステップ353)、ステップ351へ処理を進める。一方、インデックスリストL’にインデックスL’(i+1)がないと判定すれば、第2グルーピング部32は、ステップ343へ処理を進める。
第三に、第3グルーピング部33の動作について詳細に説明する。
第3グルーピング部33は、ユーザが指定した圧縮率と、オブジェクトツリー記憶部24に記憶されたオブジェクトグループの配列とに基づいて、操作グループ情報記憶部34に記憶された操作グループ情報のグルーピングを行う。具体的には、第3グルーピング部33は、ユーザが指定した圧縮率から、グループ内の平均の操作数を計算する。そして、その平均の操作数よりも多い操作が属するグループがあれば、そのグループを更に分けるように、操作グループ情報のグルーピングを行う。
図15は、第3グルーピング部33がこのようにしてグルーピングを行った後の操作グループ情報を示した図である。尚、ここでも、2つの操作の間にセパレータを設定することにより、これら2つの操作の間で操作情報を分けるようにしている。例えば、上述したようにオブジェクトグループとしてP3,P6が抽出されているものとし、グループ内の平均の操作数が2である場合を考える。この場合、図12の3番目のグループについては、図6のオブジェクトツリーにおいて、操作5に対応するUIコンポーネントC3から操作10に対応するUIコンポーネントC6へのパスが通過する最上位のオブジェクトが、オブジェクトグループとして抽出されたP3であるので、操作5と操作10の間にセパレータ615を設定している。また、図12の5番目のグループについては、図6のオブジェクトツリーにおいて、操作13に対応するUIコンポーネントC5から操作16に対応するUIコンポーネントC8へのパスが通過する最上位のオブジェクトが、オブジェクトグループとして抽出されたP6であるので、操作13と操作16の間にセパレータ616を設定している。
図16−1及び図16−2は、第3グルーピング部33がこのようなグルーピングを行う際の動作例を示したフローチャートである。尚、この動作例でも、操作グループ情報記憶部34に記憶された操作グループ情報から操作対象のオブジェクト及びセパレータを抽出して操作グループ情報における順序で並べた操作オブジェクトリストが第3グルーピング部33に与えられるものとする。例えば、操作グループ情報記憶部34に記憶された操作グループ情報が図12に示したようなものだとすると、操作オブジェクトリストC3,C4,C2,(セパレータ),C1,…,C5,C8,C9が第3グルーピング部33に与えられる。また、操作オブジェクトリストに含まれる操作対象のオブジェクト及びセパレータには、操作オブジェクトリストにおける順番を表すインデックスが付されているものとする。
動作を開始すると、図16−1に示すように、第3グルーピング部33は、まず、オブジェクトグループをカウントするための変数iに0を代入する(ステップ361)。次に、第3グルーピング部33は、オブジェクトグループA(i)があるかどうかを判定する(ステップ362)。その結果、オブジェクトグループA(i)がないと判定すれば、第3グルーピング部33は、処理を終了する。一方、オブジェクトグループA(i)があると判定すれば、第3グルーピング部33は、セパレータ挿入処理を実行し(ステップ363)、変数iに1を加算して(ステップ364)、ステップ362へ処理を進める。尚、オブジェクトグループA(i)は、排他的に配置された複数の子のパネルオブジェクトを持つ1つの親のパネルオブジェクトに相当する。図5及び図6を参照して説明した例では、オブジェクトグループA(0)がP3に相当し、オブジェクトグループA(1)がP6に相当する。つまり、図16−1は、オブジェクトグループP3についてセパレータ挿入処理を呼び出し、その後、オブジェクトグループP6についてセパレータ挿入処理を呼び出すことを示している。
このようにセパレータ挿入処理が呼び出されると、図16−2に示すように、第3グルーピング部33は、まず、操作オブジェクトリストLのポインタPを0に設定する(ステップ381)。次に、第3グルーピング部33は、ポインタPが、操作オブジェクトリストLにおける最後の要素のインデックスよりも大きいかどうかを判定する(ステップ382)。その結果、ポインタPが最後の要素のインデックスよりも大きいと判定すれば、第3グルーピング部33は、処理を終了する。一方、ポインタPが最後の要素のインデックスよりも大きくないと判定すれば、第3グルーピング部33は、ステップ383〜392の処理を行う。
即ち、第3グルーピング部33は、まず、操作オブジェクトリストLにおいてポインタP以降にセパレータがあるかどうかを判定する(ステップ383)。そして、操作オブジェクトリストLにおいてポインタP以降にセパレータがあると判定すれば、第3グルーピング部33は、P以降の最初のセパレータのインデックスをポインタEに代入する(ステップ384)。また、操作オブジェクトリストLにおいてポインタP以降にセパレータがないと判定すれば、第3グルーピング部33は、操作オブジェクトリストLにおける最後の要素のインデックスに1を加算した値をポインタEに代入する(ステップ385)。
次に、第3グルーピング部33は、(E−P)がグループ内の平均の操作数よりも大きいかどうかを判定する(ステップ386)。その結果、(E−P)が平均の操作数よりも大きくないと判定すれば、グループ内の操作を圧縮する必要はないので、第3グルーピング部33は、次のグループについての処理を行うために、(E+1)をポインタPに代入して(ステップ387)、ステップ382へ処理を進める。一方、(E−P)が平均の操作数よりも大きいと判定すれば、第3グルーピング部33は、ポインタPが(E−1)よりも小さいかどうかを判定する(ステップ388)。そして、ポインタPが(E−1)よりも小さくないと判定すれば、第3グルーピング部33は、次のグループについての処理を行うために、(E+1)をポインタPに代入して(ステップ387)、ステップ382へ処理を進める。また、ポインタPが(E−1)よりも小さいと判定すると、第3グルーピング部33は、グループ内の操作を圧縮する処理を行う。
即ち、第3グルーピング部33は、まず、オブジェクトツリーに含まれる部分ツリーのうち、要素L(P)及び要素L(P+1)の両方を含む最小の部分ツリーT’を取得する(ステップ389)。次に、第3グルーピング部33は、部分ツリーT’のルートオブジェクトがA(i)であるかどうかを判定する(ステップ390)。その結果、部分ツリーT’のルートオブジェクトがA(i)であると判定すれば、第3グルーピング部33は、操作オブジェクトリストLにおいて要素L(P)の後にセパレータを挿入して(ステップ391)、ステップ383へ処理を進める。一方、部分ツリーT’のルートオブジェクトがA(i)でないと判定すれば、第3グルーピング部33は、ポインタPを1進めて(ステップ392)、ステップ388へ処理を進める。
尚、以上の操作情報グルーピング部30の動作例では、操作情報に対して第1グルーピング部31によるグルーピングを行い、その結果に対して第2グルーピング部32によるグルーピングを行い、更にその結果に対して第3グルーピング部33によるグルーピングを行ったが、この限りではない。例えば、操作情報に対して第1グルーピング部31によるグルーピングのみを行ってもよいし、操作情報に対して第2グルーピング部32によるグルーピングのみを行ってもよいし、操作情報に対して第3グルーピング部33によるグルーピングのみを行ってもよい。或いは、操作情報に対して第1グルーピング部31、第2グルーピング部32及び第3グルーピング部33のうちの何れか2つによるグルーピングを行ってもよい。
また、以上の操作情報グルーピング部30の動作例では、第3グルーピング部33によるグルーピングにおいてのみ、ユーザが指定した圧縮率を考慮したが、この限りではない。例えば、第1グルーピング部31によるグルーピングにおいて、ユーザが指定した圧縮率を考慮してもよいし、第2グルーピング部32によるグルーピングにおいて、ユーザが指定した圧縮率を考慮してもよい。
(キャプチャ画像マージ部)
次いで、キャプチャ画像マージ部40の動作について詳細に説明する。尚、この動作に先立ち、操作IDとキャプチャ画像とを対応付けたキャプチャ情報がキャプチャ情報記憶部16に記憶され、例えば図15に示したような操作グループ情報が操作グループ情報記憶部34に記憶されているものとする。
図17は、キャプチャ画像マージ部40がキャプチャ画像をマージする際の加工処理について示した図である。この加工処理は、グループ内の最後のキャプチャ画像に対して行われる。具体的には、グループ内の最後のキャプチャ画像を、グループ内の各操作の対象のオブジェクトをハイライトするハイライト情報711,712,713で上書きし、各操作についてその順番を示す番号を付ける。また、1番目の操作から2番目の操作への順序を示すシーケンス情報714や、2番目の操作から3番目の操作への順序を示すシーケンス情報715を付加してもよい。
図18は、キャプチャ画像マージ部40がこのような加工処理を行う際の動作例を示したフローチャートである。尚、この動作例では、操作グループ情報記憶部34に記憶された操作グループ情報から抽出されたグループごとの操作の順序を示す番号(以下、「操作番号」という)の配列とグループごとの操作対象のオブジェクト(以下、「操作オブジェクト」という)の配列とがキャプチャ画像マージ部40に与えられるものとする。例えば、操作グループ情報記憶部34に記憶された操作グループ情報が図15に示したようなものだとすると、1番目のグループについては、操作番号の配列1,2,3と、操作オブジェクトの配列C3,C4,C2とがキャプチャ画像マージ部40に与えられる。
動作を開始すると、キャプチャ画像マージ部40は、グループ内の最後のキャプチャ画像を選択する(ステップ401)。具体的には、操作グループ情報記憶部34に記憶された操作グループ情報からグループ内の最後の操作の操作IDを取得し、キャプチャ情報記憶部16に記憶されたキャプチャ情報においてこの操作IDに紐付けられたキャプチャ画像を選択する。次に、キャプチャ画像マージ部40は、グループ内の操作番号を表す変数iに0を代入する(ステップ402)。次いで、キャプチャ画像マージ部40は、操作オブジェクトの配列に操作オブジェクトOA(i)があるかどうかを判定する(ステップ403)。その結果、操作オブジェクトOA(i)があると判定すれば、操作オブジェクトOA(i)の表示領域をハイライト情報で上書きする(ステップ404)。そして、ハイライト情報の右上部分に操作番号iを描画する(ステップ405)。その後、キャプチャ画像マージ部40は、変数iに1を加算して(ステップ406)、ステップ403へ処理を進める。
また、ステップ403で操作オブジェクトOA(i)がないと判定すれば、キャプチャ画像マージ部40は、シーケンス情報を付加するかどうかを判定する(ステップ407)。この判定は、例えば、シーケンス情報を付加するかどうかのユーザによる設定に基づいて行えばよい。その結果、シーケンス情報を付加しないと判定すれば、キャプチャ画像マージ部40は、処理を終了する。一方、シーケンス情報を付加すると判定すれば、キャプチャ画像マージ部40は、変数iに0を代入する(ステップ408)。そして、操作オブジェクトの配列に操作オブジェクトOA(i+1)があるかどうかを判定する(ステップ409)。その結果、操作オブジェクトOA(i+1)がないと判定すれば、キャプチャ画像マージ部40は、処理を終了する。一方、操作オブジェクトOA(i+1)があると判定すれば、キャプチャ画像マージ部40は、シーケンス情報として、操作オブジェクトOA(i)の表示領域から操作オブジェクトOA(i+1)の表示領域への矢印を描画する(ステップ410)。その後、キャプチャ画像マージ部40は、変数iに1を加算して(ステップ411)、ステップ409へ処理を進める。
図19(a),(b)は、キャプチャ画像マージ部40がキャプチャ画像をマージする際の別の加工処理について説明するための図である。この加工処理は、トリガーオブジェクトがアクティブのまま新しいオブジェクトが出現した場合に、ユーザの指定により、図17のキャプチャ画像における変化した領域をハイライト表示するものである。
ここでは、各オブジェクト間に、図19(a)に示したような関係があるとする。即ち、UIコンポーネントC1を操作すると、UIコンポーネントC1はアクティブのまま、UIコンポーネントC2,C3を含むパネルオブジェクトP3が表示されるものとする。また、UIコンポーネントC2を操作すると、UIコンポーネントC2はアクティブのまま、UIコンポーネントC4が表示されるものとする。
この場合、図19(b)に示すような加工処理が行われる。即ち、図17に示したのと同様に、グループ内の最後のキャプチャ画像を、グループ内の各操作の対象のオブジェクトをハイライトするハイライト情報721,722,723で上書きし、各操作についてその順番を示す番号を付ける。尚、ハイライト情報721でハイライトされたオブジェクトは図19(a)のUIコンポーネントC1に対応し、ハイライト情報722でハイライトされたオブジェクトは図19(a)のUIコンポーネントC2に対応し、ハイライト情報723でハイライトされたオブジェクトは図19(a)のUIコンポーネントC3に対応している。また、図19(b)では、これに加えて、ハイライト情報721に対応する操作により新たに出現した領域を、ハイライト情報721を吹き出し口とする吹き出し724の前面に表示し、ハイライト情報722に対応する操作により新たに出現した領域を、ハイライト情報722を吹き出し口とする吹き出し725の前面に表示することで、オブジェクトの出現の順序を分かり易くしている。そして、更に、吹き出し724に対して、「Appears after 1」という記述726を、吹き出し725に対して「Appears after 2」という記述727を、それぞれ付加してもよい。尚、吹き出し724で囲まれたオブジェクトは図19(a)のパネルオブジェクトP3に対応し、吹き出し725で囲まれたオブジェクトは図19(a)のUIコンポーネントC4に対応している。
図20は、キャプチャ画像マージ部40がこのような加工処理を行う際の動作例を示したフローチャートである。尚、この動作例では、操作グループ情報記憶部34に記憶された操作グループ情報から抽出されたグループごとの操作の順序を示す番号(操作番号)の配列とグループごとの操作対象のオブジェクト(操作オブジェクト)の配列とがキャプチャ画像マージ部40に与えられるものとする。例えば、操作グループ情報記憶部34に記憶された操作グループ情報が図15に示したようなものだとすると、1番目のグループについては、操作番号の配列1,2,3と、操作オブジェクトの配列C3,C4,C2とがキャプチャ画像マージ部40に与えられる。また、ここでは、図18に示したハイライト情報、操作番号及びシーケンス情報の付加以外の処理について説明する。
動作を開始すると、キャプチャ画像マージ部40は、グループ内の最後のキャプチャ画像を選択する(ステップ421)。具体的には、操作グループ情報記憶部34に記憶された操作グループ情報からグループ内の最後の操作の操作IDを取得し、キャプチャ情報記憶部16に記憶されたキャプチャ情報においてこの操作IDに紐付けられたキャプチャ画像を選択する。次に、キャプチャ画像マージ部40は、グループ内の操作番号を表す変数iに0を代入する(ステップ422)。次いで、キャプチャ画像マージ部40は、操作オブジェクトの配列に操作オブジェクトOA(i+1)があるかどうかを判定する(ステップ423)。その結果、操作オブジェクトOA(i+1)がないと判定すれば、キャプチャ画像マージ部40は、処理を終了する。一方、操作オブジェクトOA(i+1)があると判定すれば、キャプチャ画像マージ部40は、オブジェクトツリー記憶部24に記憶されたオブジェクトツリーにおいて、操作オブジェクトOA(i)から操作オブジェクトOA(i+1)へのパスに含まれるリンクの中にタイプ2のリンクがあるかどうかを判定する(ステップ424)。
その結果、タイプ2のリンクがあると判定すれば、キャプチャ画像マージ部40は、まず、タイプ2のリンクのリンク先のオブジェクトの表示領域Rを取得する(ステップ425)。ここで、Rは(X,Y,W,H)と表され、このうち、Xは表示領域Rの左上点のX座標を、Yは表示領域Rの左上点のY座標を、Wは表示領域Rの幅を、Hは表示領域Rの高さを、それぞれ表す。尚、X座標は、図19(b)の右方向が正方向となるように設定され、Y座標は、図19(b)の下方向が正方向となるように設定される。次に、キャプチャ画像マージ部40は、ステップ421で選択されたキャプチャ画像から表示領域Rの画像を切り取って保存する(ステップ426)。そして、キャプチャ画像マージ部40は、操作オブジェクトOA(i)の表示領域を吹き出し口とし、表示領域がR’である白塗りの吹き出しを描画する(ステップ427)。ここで、R’は(X−Δ,Y−Δ,W+2×Δ,H+2×Δ)と表され、このうち、Δは、表示領域R’の表示領域Rに対する余白の長さを表す。また、キャプチャ画像マージ部40は、ステップ426で保存した表示領域Rの画像を同じ領域に貼り付ける(ステップ428)。その後、キャプチャ画像マージ部40は、変数iに1を加算して(ステップ429)、ステップ423へ処理を進める。
一方、タイプ2のリンクがないと判定すれば、キャプチャ画像マージ部40は、吹き出しを描画する処理等を行うことなく、変数iに1を加算して(ステップ429)、ステップ423へ処理を進める。
尚、以上のキャプチャ画像マージ部40の動作例では、グループ内の最後のキャプチャ画像に対して加工処理を行ったが、この限りではない。グループ内の最後のキャプチャ画像以外の1つのキャプチャ画像を何らかの規則で選択し、この選択されたキャプチャ画像に対して加工処理を行ってもよい。
以上述べたように、本実施の形態では、操作毎にキャプチャ画像を取得し、これらのキャプチャ画像を、意味のあるまとまりを構成する複数の操作に対応するキャプチャ画像が1つのグループに属するようにグループ化し、グループ化されたキャプチャ画像をマージするようにした。これにより、操作手順書に含めるキャプチャ画像の量を削減することができるので、操作手順書のファイルサイズが小さくなる。
また、本実施の形態では、ユーザによる圧縮率の指定に基づいて、キャプチャ画像のグループ化を行うようにした。これにより、操作手順書に含めるキャプチャ画像の量をユーザがコントロールできるようになり、同じ操作情報から、粒度の異なる操作手順書を作成することが可能となる。例えば、経験の浅いエンジニアに対しては、圧縮率80%で操作手順書を作成し、経験のあるエンジニアに対しては、圧縮率30%で操作手順書を作成することができるようになる。
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。
図21は、このようなコンピュータのハードウェア構成例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
尚、図21において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
即ち、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
1…操作手順書生成装置、10…キャプチャ画像/オブジェクト情報取得部、11…操作検出部、12…画面キャプチャ部、13…オブジェクト情報取得部、14…イベント処理部、15…操作情報記憶部、16…キャプチャ情報記憶部、17…オブジェクト情報記憶部、20…オブジェクト情報処理部、21…オブジェクトツリー生成部、22…出現情報付加部、23…領域情報付加部、24…オブジェクトツリー記憶部、30…操作情報グルーピング部、31…第1グルーピング部、32…第2グルーピング部、33…第3グルーピング部、34…操作グループ情報記憶部、40…キャプチャ画像マージ部

Claims (11)

  1. ソフトウェアが表示する画面のキャプチャ画像を含む当該ソフトウェアの操作手順書を生成する装置であって、
    前記ソフトウェアに対する操作毎に当該ソフトウェアが表示する画面をキャプチャすることを複数回の操作について行うことにより、当該ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、
    前記複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割する分割部と、
    前記複数のキャプチャ画像群の各キャプチャ画像群について当該各キャプチャ画像群に属する一のキャプチャ画像を含む前記操作手順書を生成する生成部と
    を含む、装置。
  2. 前記ソフトウェアが表示する複数のオブジェクトに関するオブジェクト情報を取得する情報取得部を更に含み、
    前記分割部は、前記オブジェクト情報を用いて、前記複数のキャプチャ画像を前記複数のキャプチャ画像群に分割する、請求項1の装置。
  3. 前記情報取得部は、前記ソフトウェアが表示する一のオブジェクトに対する操作に応じて、当該一のオブジェクトとは異なる他のオブジェクトが出現したかどうかを示す前記オブジェクト情報を取得し、
    前記分割部は、前記他のオブジェクトが出現したことを前記オブジェクト情報が示す場合に、前記一のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、当該操作の1つ前又は1つ後の操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、前記複数のキャプチャ画像を前記複数のキャプチャ画像群に分割する、請求項2の装置。
  4. 前記情報取得部は、前記複数のオブジェクトのうちの2つのオブジェクトが表示される領域が重なるかどうかを示す前記オブジェクト情報を取得し、
    前記分割部は、前記2つのオブジェクトが表示される領域が重ならないことを前記オブジェクト情報が示す場合に、当該2つのオブジェクトのうちの第1のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、当該2つのオブジェクトのうちの第2のオブジェクトに対する操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、前記複数のキャプチャ画像を前記複数のキャプチャ画像群に分割する、請求項2又は請求項3の装置。
  5. 前記分割部は、前記ソフトウェアが表示する1つのオブジェクトに対する連続しない2回の操作に応じて取得された2つのキャプチャ画像が別々のキャプチャ画像群に属するように、前記複数のキャプチャ画像を前記複数のキャプチャ画像群に分割する、請求項1乃至請求項4の何れかの装置。
  6. 前記分割部は、前記操作手順書に含めるキャプチャ画像の数の前記複数のキャプチャ画像の数に対する割合の指定に基づいて、前記複数のキャプチャ画像を前記複数のキャプチャ画像群に分割する、請求項1乃至請求項5の何れかの装置。
  7. 前記生成部は、前記複数のキャプチャ画像群の各キャプチャ画像群について、前記少なくとも1回の操作のうちの最後の操作に応じて取得されたキャプチャ画像と、当該少なくとも1回の操作の順序を示す情報とを含む前記操作手順書を生成する、請求項1乃至請求項6の何れかの装置。
  8. ソフトウェアが表示する画面のキャプチャ画像を含む当該ソフトウェアの操作手順書を生成する装置であって、
    前記ソフトウェアに対する操作毎に当該ソフトウェアが表示する画面をキャプチャすることを複数回の操作について行うことにより、当該ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、
    前記ソフトウェアが表示する複数のオブジェクトの階層構造を示す階層構造情報を取得し、かつ、当該複数のオブジェクトのうちの一のオブジェクトに対する操作に応じて、当該一のオブジェクトとは異なる他のオブジェクトが出現したことを示す出現情報を取得する情報取得部と、
    前記階層構造情報に基づいて、前記複数のオブジェクトにそれぞれ対応する複数のノードと、当該複数のノードのうちの親子関係にある2つのノードを結合する複数のリンクとを含む木構造を生成する木構造生成部と、
    前記複数のリンクのうち、前記一のオブジェクトに対応するノードと、前記他のオブジェクトに対応するノードとの間にあるリンクに、前記出現情報を付加する付加部と、
    前記木構造において、前記複数のオブジェクトに対する操作の順に当該複数のオブジェクトにそれぞれ対応する複数のノードを走査した際に、前記出現情報が付加されたリンクを通過すれば、前記一のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、当該操作の1つ前又は1つ後の操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、前記複数のキャプチャ画像を複数のキャプチャ画像群に分割する分割部と、
    前記複数のキャプチャ画像群の各キャプチャ画像群について当該各キャプチャ画像群に属する一のキャプチャ画像を含む前記操作手順書を生成する操作手順書生成部と
    を含む、装置。
  9. ソフトウェアが表示する画面のキャプチャ画像を含む当該ソフトウェアの操作手順書を生成する装置であって、
    前記ソフトウェアに対する操作毎に当該ソフトウェアが表示する画面をキャプチャすることを複数回の操作について行うことにより、当該ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、
    前記ソフトウェアが表示する複数のオブジェクトの階層構造を示す階層構造情報と、当該複数のオブジェクトのうちの表示される領域が重ならない2つのオブジェクトを示す領域情報とを取得する情報取得部と、
    前記階層構造情報に基づいて、前記複数のオブジェクトにそれぞれ対応する複数のノードを含む木構造を生成する木構造生成部と、
    前記複数のノードのうち、前記2つのオブジェクトにそれぞれ対応する2つのノードの親のノードを、前記領域情報に基づいて特定する特定部と、
    前記木構造において、前記複数のオブジェクトに対する操作の順に当該複数のオブジェクトにそれぞれ対応する複数のノードを走査した際に、前記親のノードを通過すれば、当該2つのオブジェクトのうちの第1のオブジェクトに対する操作に応じて取得されたキャプチャ画像と、当該2つのオブジェクトのうちの第2のオブジェクトに対する操作に応じて取得されたキャプチャ画像とが別々のキャプチャ画像群に属するように、前記複数のキャプチャ画像を複数のキャプチャ画像群に分割する分割部と、
    前記複数のキャプチャ画像群の各キャプチャ画像群について当該各キャプチャ画像群に属する一のキャプチャ画像を含む前記操作手順書を生成する操作手順書生成部と
    を含む、装置。
  10. ソフトウェアが表示する画面のキャプチャ画像を含む当該ソフトウェアの操作手順書を生成する方法であって、
    前記ソフトウェアに対する操作毎に当該ソフトウェアが表示する画面をキャプチャすることを複数回の操作について行うことにより、当該ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得するステップと、
    前記複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割するステップと、
    前記複数のキャプチャ画像群の各キャプチャ画像群について当該各キャプチャ画像群に属する一のキャプチャ画像を含む前記操作手順書を生成するステップと
    を含む、方法。
  11. ソフトウェアが表示する画面のキャプチャ画像を含む当該ソフトウェアの操作手順書を生成する装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記ソフトウェアに対する操作毎に当該ソフトウェアが表示する画面をキャプチャすることを複数回の操作について行うことにより、当該ソフトウェアが表示する複数の画面の複数のキャプチャ画像を取得する画像取得部と、
    前記複数のキャプチャ画像を、意味のあるまとまりを構成する少なくとも1回の操作に応じて取得された少なくとも1つのキャプチャ画像が各々に属する複数のキャプチャ画像群に分割する分割部と、
    前記複数のキャプチャ画像群の各キャプチャ画像群について当該各キャプチャ画像群に属する一のキャプチャ画像を含む前記操作手順書を生成する生成部と
    して機能させる、プログラム。
JP2013128179A 2013-06-19 2013-06-19 操作手順書を生成する装置及び方法 Active JP5936138B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2013128179A JP5936138B2 (ja) 2013-06-19 2013-06-19 操作手順書を生成する装置及び方法
US14/275,262 US9727331B2 (en) 2013-06-19 2014-05-12 Generating an operating procedure manual
US15/670,173 US10067759B2 (en) 2013-06-19 2017-08-07 Generating an operating procedure manual
US15/788,145 US10289410B2 (en) 2013-06-19 2017-10-19 Generating an operating procedure manual
US16/208,490 US10678538B2 (en) 2013-06-19 2018-12-03 Generating an operating procedure manual

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013128179A JP5936138B2 (ja) 2013-06-19 2013-06-19 操作手順書を生成する装置及び方法

Publications (2)

Publication Number Publication Date
JP2015005010A JP2015005010A (ja) 2015-01-08
JP5936138B2 true JP5936138B2 (ja) 2016-06-15

Family

ID=52110475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013128179A Active JP5936138B2 (ja) 2013-06-19 2013-06-19 操作手順書を生成する装置及び方法

Country Status (2)

Country Link
US (4) US9727331B2 (ja)
JP (1) JP5936138B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811673B2 (en) * 2011-01-11 2017-11-07 International Business Machines Corporation Content object encapsulating content items for accessing content and access authorization information
JP5936138B2 (ja) 2013-06-19 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 操作手順書を生成する装置及び方法
JP6434435B2 (ja) * 2016-02-16 2018-12-05 日本電信電話株式会社 情報処理装置、操作支援方法および操作支援プログラム
JP6683042B2 (ja) * 2016-07-06 2020-04-15 富士ゼロックス株式会社 データ処理装置、システムおよびプログラム
CN108399118B (zh) * 2018-03-20 2021-11-26 Oppo广东移动通信有限公司 文件系统测试数据处理方法、装置、存储介质及终端
KR20230117257A (ko) 2018-08-31 2023-08-07 구글 엘엘씨 동적 키보드 인터페이스 내에서 애니메이션 이미지를배치하는 방법 및 시스템
US11645110B2 (en) 2019-03-13 2023-05-09 International Business Machines Corporation Intelligent generation and organization of user manuals
JPWO2020235085A1 (ja) * 2019-05-23 2021-12-23 日本電信電話株式会社 操作ログ可視化装置、操作ログ可視化方法および操作ログ可視化プログラム
US20220383215A1 (en) * 2019-11-01 2022-12-01 Nippon Telegraph And Telephone Corporation Management device, management method, and management program

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01185492A (ja) 1988-01-20 1989-07-25 Hitachi Ltd 原子力発電プラントにおける給水配管循環設備
JPH1185492A (ja) 1997-09-05 1999-03-30 Mitsubishi Electric Corp オブジェクト指向データモデル作成支援装置
JP3464159B2 (ja) 1998-01-30 2003-11-05 富士通株式会社 テスト仕様書作成装置およびそのプログラムを格納した記憶媒体
US8345105B2 (en) 2000-03-06 2013-01-01 Sony Corporation System and method for accessing and utilizing ancillary data with an electronic camera device
JP2001357010A (ja) * 2000-04-10 2001-12-26 Mitsubishi Corp インターネット上のWebサーバにおいてファイルを受託管理する方法およびこの方法に用いるファイル受託管理装置
JP2003150929A (ja) * 2001-11-08 2003-05-23 Canon Inc 撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
DE10159610B4 (de) * 2001-12-05 2004-02-26 Siemens Ag System und Verfahren zur Erstellung einer Dokumentation von Arbeitsvorgängen, insbesondere im Umfeld Produktion, Montage, Service oder Wartung
JP2003223094A (ja) * 2002-01-30 2003-08-08 Mitsubishi Heavy Ind Ltd 電子組立手順書システム、組立手順書の作成支援システムおよび組立手順書の作成方法
JP4245883B2 (ja) * 2002-09-13 2009-04-02 株式会社日立製作所 電子文書およびこれの印刷媒体の真正性管理方法およびシステム、ならびにプログラム、記録媒体
JP2004112675A (ja) * 2002-09-20 2004-04-08 Konica Minolta Holdings Inc 画像データ提供方法、記録装置及びプログラム
AU2003287495A1 (en) * 2002-11-04 2004-06-07 Deepq Technologies, A General Partnership Document processing based on a digital document image input with a confirmatory receipt output
JP2004362043A (ja) * 2003-06-02 2004-12-24 Fuji Xerox Co Ltd プロジェクト管理システム
US7791755B2 (en) * 2003-11-05 2010-09-07 Canon Kabushiki Kaisha Document creation method and document creation apparatus for reflecting a document structure of a paper document in an electronic document
US20050160194A1 (en) * 2004-01-16 2005-07-21 Bango Joseph J. Method of limiting amount of waste paper generated from printed documents
JP4756870B2 (ja) * 2005-02-03 2011-08-24 キヤノン株式会社 文書処理装置及び文書処理方法並びにプログラム
JP2007011532A (ja) * 2005-06-29 2007-01-18 Fujitsu Ltd 操作手順書の自動生成装置
US7788579B2 (en) * 2006-03-06 2010-08-31 Ricoh Co., Ltd. Automated document layout design
JP4961915B2 (ja) 2006-09-08 2012-06-27 富士電機株式会社 仕様記述支援装置および方法
JP3963932B1 (ja) * 2006-09-28 2007-08-22 システムインテグレート株式会社 情報処理装置の情報漏洩監視・管理方式
JP4777284B2 (ja) * 2006-09-29 2011-09-21 京セラミタ株式会社 画像形成装置
JP4211838B2 (ja) * 2006-11-09 2009-01-21 ソニー株式会社 撮像装置および画像処理方法
US20090116045A1 (en) * 2007-11-06 2009-05-07 Tran Barry System and method for driver-based image manipulation
JP4429353B2 (ja) * 2007-11-15 2010-03-10 Sky株式会社 キャプチャ画像記録装置とキャプチャ画像記録プログラム
US9996368B2 (en) * 2007-12-28 2018-06-12 International Business Machines Corporation Method to enable semi-automatic regeneration of manuals by saving manual creation operations as scripts
JP5066499B2 (ja) 2008-09-24 2012-11-07 株式会社日立ソリューションズ Webアプリケーションの操作手順書生成システム
BRPI0917757B1 (pt) 2008-12-18 2020-03-17 Koninklijke Philips N. V. Sistema de imagem médica e método para relatar um erro ou deficiência de desempenho associado com um módulo de processamento de imagem médica de um sistema de imagem médica
US8913285B1 (en) * 2009-06-07 2014-12-16 Apple Inc. Automated method of decomposing scanned documents
JP5202587B2 (ja) * 2010-08-03 2013-06-05 シャープ株式会社 データ処理装置、画像表示方法、コンピュータプログラム、及び記録媒体
KR20130069768A (ko) * 2010-12-13 2013-06-26 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 모바일 컴퓨팅 디바이스들의 자동 회전 기능의 디스에이블링
US8629996B2 (en) * 2010-12-13 2014-01-14 Canon Kabushiki Kaisha Printing apparatus and printing method
US10909307B2 (en) * 2011-11-28 2021-02-02 Autodesk, Inc. Web-based system for capturing and sharing instructional material for a software application
TW201346817A (zh) 2012-02-14 2013-11-16 Pei Man James She 智慧標識系統
JP5956860B2 (ja) * 2012-07-09 2016-07-27 キヤノン株式会社 画像処理装置、画像処理方法、プログラム
KR101492603B1 (ko) * 2012-07-25 2015-02-12 모글루(주) 전자문서 제작 시스템과 그 제어 방법
US8907914B2 (en) * 2012-08-31 2014-12-09 General Electric Company Methods and apparatus for documenting a procedure
CN103853576B (zh) 2012-12-06 2017-05-24 腾讯科技(深圳)有限公司 一种截图方法,及装置
US10025445B2 (en) * 2012-12-21 2018-07-17 International Business Machines Corporation Automated screen captures
JP2014220622A (ja) * 2013-05-07 2014-11-20 オリンパス株式会社 撮影機器、撮影支援方法、表示装置及び表示方法
JP5936138B2 (ja) 2013-06-19 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 操作手順書を生成する装置及び方法

Also Published As

Publication number Publication date
US20180039496A1 (en) 2018-02-08
US10067759B2 (en) 2018-09-04
US10289410B2 (en) 2019-05-14
US20190102167A1 (en) 2019-04-04
JP2015005010A (ja) 2015-01-08
US10678538B2 (en) 2020-06-09
US20140375550A1 (en) 2014-12-25
US9727331B2 (en) 2017-08-08
US20180018166A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
JP5936138B2 (ja) 操作手順書を生成する装置及び方法
JP6158623B2 (ja) データベース分析装置及び方法
US20120266131A1 (en) Automatic program generation device, method, and computer program
US9436713B2 (en) Database analyzer and database analysis method
JP2018116497A (ja) 画面判定装置及びプログラム
CN101056303A (zh) 水平树状结构可配置网络界面、其显示方法、节点处理法
EP2599042A1 (en) Systems and methods of rapid business discovery and transformation of business processes
US20200241850A1 (en) Code Management System and Code Management Method
WO2019225366A1 (ja) 画面判別装置、画面判別方法及びプログラム
CN106873982B (zh) 一种基于图形用户界面的软件搜索复用方法及系统
JP6790921B2 (ja) プログラム分析装置、プログラム分析方法及びプログラム分析プログラム
CN110908649B (zh) 一种可拆分及合并的图表绘制方法和系统
JP5219543B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP2018124901A (ja) プログラム分析装置、プログラム分析方法及びプログラム分析プログラム
JP7260150B2 (ja) Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム
JP5954742B2 (ja) 文書を検索する装置及び方法
JP2002108649A (ja) トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品
JP3785150B2 (ja) 頻出部分グラフ抽出装置、頻出部分グラフ抽出方法、ならびに、プログラム
JP2006127117A (ja) Web閲覧操作の記録・再生方法及び装置及びプログラム及びプログラムを格納した記憶媒体
JP2007279795A (ja) プログラムによって表示される画面が仕様を満たすか判断するシステム
JP2007233912A (ja) スタイルシート生成装置及びスタイルシート生成プログラム
JP2015162022A (ja) 接続関係の可視化を支援する装置及び方法
US12001324B2 (en) Operation pattern generation apparatus, operation pattern generation method and program
JP2013105286A (ja) プログラム自動生成装置およびプログラム自動生成方法
US20220164523A1 (en) Resembling transition identifying apparatus, resembling transition identifying method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151127

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160115

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160223

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: 20160405

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R150 Certificate of patent or registration of utility model

Ref document number: 5936138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150