JP2010186378A - Difference display system and method between versions of software - Google Patents

Difference display system and method between versions of software Download PDF

Info

Publication number
JP2010186378A
JP2010186378A JP2009030983A JP2009030983A JP2010186378A JP 2010186378 A JP2010186378 A JP 2010186378A JP 2009030983 A JP2009030983 A JP 2009030983A JP 2009030983 A JP2009030983 A JP 2009030983A JP 2010186378 A JP2010186378 A JP 2010186378A
Authority
JP
Japan
Prior art keywords
software
difference
source code
explanatory
syntax
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.)
Pending
Application number
JP2009030983A
Other languages
Japanese (ja)
Inventor
Yasushi Hoshino
康 星野
Masahiro Tsumura
昌洋 津村
Daisuke Takatani
大輔 高谷
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009030983A priority Critical patent/JP2010186378A/en
Publication of JP2010186378A publication Critical patent/JP2010186378A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve the upgrading of software without damaging the usability of a user. <P>SOLUTION: A difference display system includes: a syntax difference extraction part configured of a series of steps of: syntax analysis, difference extraction by line unit, the mapping of the difference of the line unit and syntax elements, and the propagation of a hierarchical difference to the upper layer following the hierarchy of the syntax elements with respect to the source code before the upgrading of software and the source code after the upgrading of software; a UI extraction part for generating a calling relation tree concerning changed functions, and for retrieving UI elements linked to the calling of the changed functions by tracing the calling relation tree; and an explanation UI component insertion procedure part for specifying a proper UI component for explanation by detecting the pattern of the type and change of an UI element, and for embedding the specified component in a source code. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、特にソフトウェアのバージョン間の差分を表示する技術に関する。   The present invention particularly relates to a technique for displaying a difference between software versions.

ソフトウェアの差分を抽出して表示するための技術として、ソースコードの行単位のみを比較するのみでなく、ソースコードの構文に基づく階層構造を利用して比較する技術がある(非特許文献1)。これは、階層構造を利用することにより、下位階層の要素の差分を上位階層へと伝搬させるものである。これにより、開発者がバージョン間の差分を理解しようとする場面において、構文的に粒度が粗い上位階層の要素から順に差分を理解することが可能となる。   As a technique for extracting and displaying software differences, there is a technique that not only compares line units of source code but also uses a hierarchical structure based on the syntax of the source code (Non-Patent Document 1). . This uses a hierarchical structure to propagate a difference between elements in a lower hierarchy to an upper hierarchy. As a result, in a scene where the developer wants to understand the difference between the versions, it is possible to understand the difference in order from the element of the upper layer having a coarser granularity.

diffを用いたソフトウェア構成要素の階層化差分、日本ソフトウェア科学会FOSE’02 pp.171-174(2002/11)Hierarchical difference of software components using diff, Japan Software Science Society FOSE’02 pp.171-174 (2002/11)

近年、Webサーバ上に展開されているソフトウェアを、ユーザがWebブラウザからアクセスして用いるというシステム形態が普及している。このシステム形態の場合、ユーザに知らせることなく、サーバ側でソフトウェアのバージョンアップが行われる。このときユーザは、バージョンアップによる変更内容を理解しながら利用することを強いられる。非特許文献1に記載される技術は、開発者がソフトウェアのバージョン間の差分を理解するのに有益であり、ソフトウェア利用者としての一般のユーザを想定したものではない。一般のユーザは、システムを利用するにあたって、ソースコードの粒度でソフトウェアを理解する必要はなく、一般的にソースコードはユーザへ開示されない。   In recent years, a system form in which a user accesses and uses software deployed on a web server from a web browser has become widespread. In the case of this system form, the software is upgraded on the server side without notifying the user. At this time, the user is forced to use the contents while understanding the contents of the change due to the version upgrade. The technology described in Non-Patent Document 1 is useful for developers to understand the difference between software versions, and is not intended for general users as software users. A general user does not need to understand the software at the granularity of the source code when using the system, and the source code is generally not disclosed to the user.

一般に、ソフトウェアのバージョン間の差分は、マニュアル上の変更履歴やヘルプ等の文書において一覧で表示されることが多い。しかし、バージョン変更の際には、多くのユーザは過去に既にソフトウェアを使っていた経験があり、差分についての文書を読むことなく使用する傾向にある。このとき、ユーザがバージョン間の差分に遭遇すると、ユーザはそのソフトウェアの使用性について悪い印象を持ち、以後の利用を止める等の悪影響が生じる可能性がある。   In general, differences between software versions are often displayed in a list in a document such as a manual change history or help. However, when changing versions, many users have already used software in the past, and tend to use them without reading a document about differences. At this time, when the user encounters a difference between versions, the user may have a bad impression about the usability of the software, and there may be an adverse effect such as stopping the subsequent use.

本発明は、上記のようにソフトウェアのバージョンアップがサーバ上でなされる場合において、ユーザの使用性を損ねないバージョンアップを実現させる。   The present invention realizes a version upgrade that does not impair the usability of the user when the software version is upgraded on the server as described above.

上記の課題を解決するためのシステムを、以下に示す。ソフトウェアのバージョンアップ前のソースコードとバージョンアップ後のソースコードに対して、構文解析、行単位での差分抽出、行単位の差分と構文要素とのマッピング、構文要素の階層に従った差分の上位層への伝播、という一連のステップからなる構文差分抽出部を備える。変更のあった関数に関して呼び出し関係木を生成し、呼び出し関係木を辿って変更のあった関数の呼び出しに繋がるUI(User Interfaceの略。以下UIと呼ぶ。)要素を探索する、該当UI抽出手続き部を備える。次に、UI要素の種類及び変更のパターンを検出して適切な説明用UI部品を選定し、これをソースコードに埋め込む、説明用UI部品挿入手続き部を備える。   A system for solving the above problems will be described below. For the source code before and after the software upgrade, syntactic analysis, line-by-line difference extraction, line-by-line difference and syntax element mapping, high-level differences according to the syntax element hierarchy It includes a syntax difference extraction unit consisting of a series of steps of propagation to the layer. Corresponding UI extraction procedure that generates a call relation tree for a function that has changed, and traces the call relation tree to search for a UI (User Interface). A part. Next, an UI component insertion procedure unit for explanation is provided, which detects the type of UI element and the change pattern, selects an appropriate explanation UI component, and embeds it in the source code.

本発明によれば、ソフトウェアのバージョン間の変更に対応するUI要素の周辺に、変更内容の説明を行うための説明用UI部品を機械的に埋め込める。これにより、開発者は変更内容の説明文を入力するのみで変更部分をユーザへ示せるようになるため、開発工数を削減することができる。また、ユーザは、変更のあったUI要素を使用する際に、変更内容を適時に理解できるようになるので、ユーザの使用性を損ねない、ソフトウェアのバージョンアップを実現できる。   According to the present invention, it is possible to mechanically embed an explanatory UI component for explaining the contents of change around a UI element corresponding to a change between software versions. As a result, the developer can show the changed portion to the user only by inputting an explanatory note of the changed content, and therefore the development man-hour can be reduced. Further, since the user can understand the change contents in a timely manner when using the changed UI element, the software can be upgraded without impairing the user's usability.

システム構成図である。It is a system configuration diagram. 実施例1の処理フロー図である。FIG. 3 is a process flow diagram of the first embodiment. 説明用UI部品の挿入前のユーザ画面例の図である。It is a figure of the example of a user screen before insertion of UI parts for description. 説明用UI部品の挿入後のユーザ画面例の図である。It is a figure of the example of a user screen after insertion of UI components for description. バージョンアップ前のソースファイル例の図である。It is a figure of the example of a source file before version upgrade. バージョンアップ後のソースファイル例の図である。It is a figure of the example of a source file after version upgrade. バージョンアップ後のソースファイル例の図である。It is a figure of the example of a source file after version upgrade. 説明用UI部品挿入後のソースファイル例の図である。It is a figure of the example of a source file after UI parts for explanation are inserted. 実施例3の処理フロー図である。FIG. 10 is a process flow diagram of Embodiment 3. 実施例3の処理フロー図である。FIG. 10 is a process flow diagram of Embodiment 3.

プログラミング言語Java(登録商標)を例とし、また変更のあった機能と関連するUI要素としてWebブラウザにおけるボタンがあったときの場合の実施例を示す。プログラミング言語Javaを例とした以下の実施例は、他のプログラミング言語においても同様に実施可能であり、また、変更のあった機能と関連するUI要素が他の要素であっても実施可能である。   A programming language Java (registered trademark) is taken as an example, and an embodiment in the case where there is a button in a Web browser as a UI element related to the changed function will be described. The following example using the programming language Java as an example can be implemented in other programming languages as well, and can be implemented even if the UI element associated with the changed function is another element. .

図1は、本実施例のシステムの構成図である。本実施例は、図2に示す処理フローを実現するソフトウェア開発用計算機103に関するものであるが、ユーザ用計算機101及びソフトウェア実行用計算機102を含めた構成図を示す。ソフトウェア開発用計算機103は、CPU110c、主記憶装置112c、二次記憶装置113、及び、これらを相互に接続するバス111cからなる。主記憶装置112cは、構文差分抽出部121、該当UI抽出部122、説明用UI部品挿入部123を保持する。二次記憶装置113は、バージョンアップ前のソースファイル124、バージョンアップ後のソースファイル125、各部の処理を経て得る説明用UI部品挿入後のソースファイル126、そしてこれをコンパイルして得る実行ファイル127aを保持する。ただし、各部及びファイルは、必ずしも図1の構成を取らずとも、ソフトウェア開発用計算機103として処理可能であればどこに存在してもよい。   FIG. 1 is a configuration diagram of a system according to the present embodiment. The present embodiment relates to the software development computer 103 that realizes the processing flow shown in FIG. 2, but shows a configuration diagram including the user computer 101 and the software execution computer 102. The software development computer 103 includes a CPU 110c, a main storage device 112c, a secondary storage device 113, and a bus 111c that interconnects them. The main storage device 112c holds a syntax difference extraction unit 121, a corresponding UI extraction unit 122, and an explanation UI component insertion unit 123. The secondary storage device 113 includes a source file 124 before version upgrade, a source file 125 after version upgrade, a source file 126 after insertion of explanatory UI parts obtained through the processing of each part, and an execution file 127a obtained by compiling this Hold. However, each unit and file may exist anywhere as long as they can be processed as the software development computer 103 without necessarily having the configuration shown in FIG.

ソフトウェア実行用計算機102は、CPU110b、主記憶112b、及びそれらを接続するバス111bからなる。主記憶装置112bには、ソフトウェア開発用計算機103からLAN105を介して転送及び複製された実行ファイル127bが存在する。実行ファイル127bは、ユーザ用計算機101からWWW104を介して受けたリクエストに対してレスポンスを返す。ユーザ用計算機101は、CPU110a、主記憶112a、そしてそれらを接続するバス111aからなる。主記憶装置112aは、ブラウザ120を有し、WWW104を介してソフトウェア実行用計算機102へリクエストを送信する。   The software execution computer 102 includes a CPU 110b, a main memory 112b, and a bus 111b connecting them. The main storage device 112b includes an execution file 127b transferred and copied from the software development computer 103 via the LAN 105. The execution file 127b returns a response to the request received from the user computer 101 via the WWW 104. The user computer 101 includes a CPU 110a, a main memory 112a, and a bus 111a for connecting them. The main storage device 112 a has a browser 120 and transmits a request to the software execution computer 102 via the WWW 104.

図3は、本実施例のシステムにおいて想定するユーザ用計算機101の画面例(表示装置の図示略)である。ユーザがブラウザ120で開いたブラウザ画面301を用いて、サーバ(ソフトウェア実行用計算機102)上に展開されたソフトウェアを利用している、という場面を想定する。図3では、日記302、メッセージ303、アルバム304、スケジュール305を基本機能として有するSNS(Social Network Service)を想定しており、図3に示した基本機能は、ブラウザ画面上301ではボタンのUI要素として配置されている。また、図3の下部には友人リスト306、日記一覧307、サイト情報308を有することを想定する。一般的に、バージョン間の変更履歴はサイト情報308等の場所で一覧表示されるが、ユーザはこれを見ることなく使用を開始しようとする。   FIG. 3 is a screen example (not shown of the display device) of the user computer 101 assumed in the system of the present embodiment. It is assumed that the user uses the software developed on the server (software execution computer 102) using the browser screen 301 opened by the browser 120. 3 assumes an SNS (Social Network Service) having a diary 302, a message 303, an album 304, and a schedule 305 as basic functions. The basic function shown in FIG. Is arranged as. Further, it is assumed that the lower part of FIG. 3 has a friend list 306, a diary list 307, and site information 308. In general, the change history between versions is displayed in a list at a site such as the site information 308, but the user tries to start using it without seeing it.

図4に、説明用UI部品の挿入後の、実行ファイル127bのレスポンスとして与えられるユーザのブラウザ画面401の様子を示す。ここでは、バージョン間の差分として、ユーザ自身のスケジュールを友人と共有する機能が追加されたことを想定している。説明用UI部品の挿入により、ユーザがスケジュールのボタン405にマウスカーソル410を合わせたときに、追加された機能について説明するポップアップ画面409を表示するといったことが可能になる。これを実現する処理の流れを以下に示す。   FIG. 4 shows a state of the user's browser screen 401 given as a response to the execution file 127b after the insertion of the explanatory UI component. Here, it is assumed that a function for sharing a user's own schedule with a friend is added as a difference between versions. By inserting the explanation UI component, when the user moves the mouse cursor 410 to the schedule button 405, a pop-up screen 409 explaining the added function can be displayed. The flow of processing for realizing this is shown below.

図2は、ソフトウェア開発用計算機103による処理フロー図である。大別して構文差分抽出部121と、該当UI抽出部122と、説明用UI部品挿入部123で構成される。以下、図5、図6、図7、及び図8に示す各ソースファイル例と、図2の処理フロー図を用いて、処理の流れを示す。   FIG. 2 is a processing flow diagram of the software development computer 103. It is roughly divided into a syntax difference extraction unit 121, a corresponding UI extraction unit 122, and an explanation UI component insertion unit 123. Hereinafter, the flow of processing will be described using the example of each source file shown in FIG. 5, FIG. 6, FIG. 7, and FIG. 8 and the processing flow diagram of FIG.

図5に示すソースファイル例501は、バージョンアップ前のソースファイル124の一例である。ここでは簡略化のため、UI要素として一つのボタン”buttonA”502をもつGUIを想定している。図6に示すソースファイル例601は、バージョンアップ後のソースファイル125の一例であり、図5に示したソースファイル例501からのバージョンアップであることを想定する。構文差分抽出部121におけるステップ201では、図5及び図6のソースコードの構文解析を行う。これにより、関数と関数内の各処理等といった階層関係を把握する。ステップ202では、図5及び図6のソースコードを行単位で比較し、差分を抽出する。これにより、図5と図6の例では、図5の処理503と図6の処理602とで異なる処理行になっていることが判明する。ステップ203では、行単位の差分と構文要素とのマッピングを行う。図6の例では、差分として抽出された行602と関数内の処理としての構文要素とのマッピングを行う。ステップ204では、構文要素の階層に従い、階層の差分を上位層に伝播する。図6の例では、処理としての602の上位構文である関数”functionA”603に差分を伝播させることで、図5と図6のバージョン間では、関数”functionA”603に変更があったと認識することができる。   A source file example 501 shown in FIG. 5 is an example of the source file 124 before version upgrade. Here, for simplification, a GUI having one button “buttonA” 502 as a UI element is assumed. A source file example 601 shown in FIG. 6 is an example of the source file 125 after version upgrade, and is assumed to be a version upgrade from the source file example 501 shown in FIG. In step 201 in the syntax difference extraction unit 121, syntax analysis of the source code shown in FIGS. 5 and 6 is performed. Thereby, a hierarchical relationship such as a function and each process in the function is grasped. In step 202, the source codes of FIGS. 5 and 6 are compared in units of lines, and differences are extracted. Accordingly, it is found that in the example of FIGS. 5 and 6, the process 503 in FIG. 5 and the process 602 in FIG. 6 have different process rows. In step 203, line-by-line differences and syntax elements are mapped. In the example of FIG. 6, the mapping between the line 602 extracted as the difference and the syntax element as the processing in the function is performed. In step 204, the hierarchy difference is propagated to an upper layer in accordance with the hierarchy of syntax elements. In the example of FIG. 6, the difference is propagated to the function “functionA” 603 which is the upper syntax of 602 as the processing, so that the function “functionA” 603 is recognized to have changed between the versions of FIG. 5 and FIG. be able to.

構文差分抽出部121の次に、該当UI抽出部122による処理を行う。図7の変更後ソースファイル701を用いて、該当UI抽出手続きの様子を示す。ステップ205では、変更のあった関数の呼び出し関係木を作成する。本実施例では、変更のあった関数”functionA”702に関する呼び出し関係木を作成する。ステップ206では、ステップ205で作成した呼び出し関係木を辿ることで、変更のあった関数の呼び出しに繋がるUI要素を探索する。図7の例では、関数”functionA”の呼び出し704が関数”buttonA”703と繋がっており、これが検出される。図7の例は簡略化されているため”functionA”への直接の呼び出し704が検出されるが、呼び出し関係木を何段も辿って検出する場合もある。   Next to the syntax difference extraction unit 121, the corresponding UI extraction unit 122 performs processing. The state of the corresponding UI extraction procedure is shown using the changed source file 701 in FIG. In step 205, a call relation tree of the function that has been changed is created. In this embodiment, a call relation tree for the function “functionA” 702 that has been changed is created. In step 206, the UI element that leads to the call of the changed function is searched by tracing the call relation tree created in step 205. In the example of FIG. 7, the call 704 of the function “functionA” is connected to the function “buttonA” 703, and this is detected. Since the example of FIG. 7 is simplified, a direct call 704 to “functionA” is detected. However, there are cases where the call relation tree is detected by tracing the call relation tree many times.

該当UI抽出部122の次には、説明用UI部品挿入部123による処理を行う。図8に示す、説明用UI部品挿入後のソースファイル126の例801を用いて、説明用UI部品挿入手続き123の様子を示す。ステップ207では、ステップ206までで抽出したUI要素の種類、及び変更のパターンを検出する。図8の例では、探索したUI要素である”buttonA”の種類はボタンであり、変更のパターンとしては、”ボタンが押されたときの動作内容の変更”である。ステップ208では、ステップ207で得たUI要素の種類及び変更のパターンに従い、適切な説明用UI部品を埋め込む。図8の例では、ボタンにマウスカーソルを合わせたときに説明用のポップアップUI部品を表示すべく、説明用UI部品の宣言802、説明用UI部品の生成803、そして、説明用UI部品の動作804をそれぞれ挿入する。今回示した説明用UI部品の例はマウスカーソルを合わせた時のポップアップ表示であるが、初めから表示しておくことや、アニメーション表示など、ステップ207において検出したUI要素の種類及び変更のパターンに応じて、それぞれ適切な説明用UI部品を挿入する。具体的には、画面操作に必要なカーソルの形状やその意味を変更した場合には、ユーザは操作前にUI要素の種類としてのカーソルとその変更パターン(形状やその意味)を知る必要があるので、説明用UI部品を初めから表示しておく。また変更前後の状況をユーザに分かり易く示す一方法として、説明用UI部品としてアニメーション表示を用いる。   Following the corresponding UI extraction unit 122, processing by the explanatory UI component insertion unit 123 is performed. The state of the explanatory UI component insertion procedure 123 is shown using an example 801 of the source file 126 after the explanatory UI component is inserted as shown in FIG. In step 207, the type of UI element extracted in step 206 and the change pattern are detected. In the example of FIG. 8, the type of “buttonA” that is the searched UI element is a button, and the change pattern is “change of operation content when the button is pressed”. In step 208, appropriate UI parts for explanation are embedded in accordance with the type and change pattern of the UI element obtained in step 207. In the example of FIG. 8, in order to display a pop-up UI component for explanation when the mouse cursor is moved to a button, a description UI component declaration 802, a description UI component generation 803, and an operation of the explanation UI component Insert 804 respectively. The example of the UI component for explanation shown this time is a pop-up display when the mouse cursor is moved, but the UI element type and change pattern detected in step 207, such as displaying it from the beginning or displaying an animation, etc. In response, appropriate UI components for explanation are inserted. Specifically, when the cursor shape and its meaning necessary for screen operation are changed, the user needs to know the cursor as the UI element type and its change pattern (shape and its meaning) before the operation. Therefore, the UI parts for explanation are displayed from the beginning. In addition, as a method for easily showing the situation before and after the change to the user, animation display is used as an explanatory UI component.

以上のステップを経た上で最後に、開発者は説明用UI部品の中身の文章を埋めるステップ209を行う。その後ソースファイルをコンパイルすることで実行ファイル127aを得ることができ、一般的にはこれをソフトウェア実行用計算機102へ配備する。   Finally, after the above steps, the developer performs step 209 to fill in the contents of the explanation UI component. Thereafter, the execution file 127a can be obtained by compiling the source file, and this is generally deployed in the computer 102 for software execution.

以上のように実施することで、開発者は説明用UI部品の上で説明内容を埋めるのみで、バージョン間の差分の情報をユーザに適時に提示できる効果を得る。   By carrying out as described above, the developer only has to fill in the explanation content on the explanation UI component, and the effect of being able to present the difference information between the versions to the user in a timely manner is obtained.

図9は、本実施例におけるソフトウェア開発用計算機103による処理フロー図である。本実施例では、図1で示したシステム構成図において、変更履歴DB903が二次記憶装置113にさらに含まれ、また、変更履歴DB903を操作するための変更内容操作部が主記憶装置112cにさらに含まれる構成となる。   FIG. 9 is a processing flow diagram of the software development computer 103 in this embodiment. In the present embodiment, in the system configuration diagram shown in FIG. 1, a change history DB 903 is further included in the secondary storage device 113, and a change content operation unit for operating the change history DB 903 is further included in the main storage device 112c. It is included.

変更履歴DB903は、変更履歴テーブル904を保持する。変更履歴テーブル904は、ソフトウェアのバージョン905と、説明用UI部品及び説明文を含む変更内容906とを対にして保持する。そして、構文差分抽出部121を実行する前に、ステップ901によって変更履歴DB903を参照することで過去のバージョンの説明用UI部品を認識し、ソースコードから削除する。また、開発者が説明用UI部品の中身の文章を埋めるステップ209を経た後に、最新バージョンでの変更内容を変更履歴テーブル904に挿入する。   The change history DB 903 holds a change history table 904. The change history table 904 holds a software version 905 and a change content 906 including a UI component for explanation and an explanatory text as a pair. Then, before executing the syntax difference extraction unit 121, the description history DB 903 is referred to in step 901 to recognize the past version explanation UI parts and delete them from the source code. In addition, after the developer goes through step 209 to fill in the contents of the explanation UI widget, the change contents in the latest version are inserted into the change history table 904.

以上により、開発者は過去の説明用UI部品を自ら削除するという工数を掛けることなく、ユーザに最新の変更内容についてのみ示すことが可能になる。   As described above, the developer can show only the latest change contents to the user without taking the man-hour of deleting the past explanatory UI parts.

図10は、本実施例におけるソフトウェア開発用計算機103による処理フロー図である。本実施例では、図1で示したシステム構成図において、さらに変更履歴DB903及び最終アクセス時刻DB1004が二次記憶装置113に含まれる構成となる。また、変更履歴DB903を操作するための変更内容操作部が主記憶装置112bに含まれる。さらに、ユーザのアクセス時に最終アクセス時刻DB1004と変更履歴DB903を操作して、最適な説明用UI部品を含める処理を行うためのアクセス時手続き部が、主記憶装置112cに含まれる構成となる。   FIG. 10 is a processing flow diagram by the software development computer 103 in this embodiment. In the present embodiment, in the system configuration diagram shown in FIG. 1, the change history DB 903 and the last access time DB 1004 are further included in the secondary storage device 113. In addition, a change content operation unit for operating the change history DB 903 is included in the main storage device 112b. In addition, the main storage device 112c includes an access time procedure unit for operating the last access time DB 1004 and the change history DB 903 at the time of user access to perform processing to include an optimal explanation UI component.

変更履歴DB903は、実施例2にて示した変更履歴テーブル904に加えて、バージョン時刻テーブル1008も保持する。バージョン時刻テーブル1008は、ソフトウェアのバージョン1009と、そのバージョン1009が展開された時刻1010とを対にして保持するテーブルである。処理ステップとしては、実施例2の説明において示したステップ901は含まず、ステップ902を含む。また、ステップ902の後に、バージョン時刻テーブル1008にバージョン1009を展開した時刻1010を書き込むステップ1011を保持する。   The change history DB 903 also stores a version time table 1008 in addition to the change history table 904 shown in the second embodiment. The version time table 1008 is a table that holds a pair of a software version 1009 and a time 1010 when the version 1009 is expanded. As processing steps, step 901 shown in the description of the second embodiment is not included, but step 902 is included. Further, after Step 902, Step 1011 is written in which the time 1010 at which the version 1009 is expanded is written in the version time table 1008.

最終アクセス時刻DB1004は、ユーザID1006と最終アクセス時刻1007とを対にして保持する最終アクセス時刻テーブル1005を保持する。ユーザのアクセス時に、ステップ1001によって、最終アクセス時刻DB1004及び変更履歴DB903を参照し、ユーザが前回最後にアクセスした最終アクセス時刻1007からの累積するバージョン変更によって生じた説明用UI部品を全て抽出する。ステップ1002によって、ステップ1001によって抽出した説明用UI部品を埋め込んだソースコードを生成する。これをコンパイルして実行ファイル127bを生成する。ステップ1003によって、最終アクセス時刻テーブル1005に保存されている最終アクセス時刻1007を更新する。   The last access time DB 1004 holds a last access time table 1005 that holds a user ID 1006 and a last access time 1007 as a pair. At the time of user access, in step 1001, the last access time DB 1004 and the change history DB 903 are referred to, and all the explanatory UI parts generated by the accumulated version change from the last access time 1007 that the user last accessed last time are extracted. In step 1002, source code in which the explanatory UI parts extracted in step 1001 are embedded is generated. This is compiled to generate an executable file 127b. In step 1003, the last access time 1007 stored in the last access time table 1005 is updated.

以上により、ユーザは最近のバージョンで変更された内容のみでなく、ユーザが最後に利用した時刻以降の全バージョンでの変更について、その内容を理解しながらソフトウェアを使用することが可能となる。   As described above, the user can use the software while understanding not only the contents changed in the latest version but also the changes in all versions after the user's last use time.

以上説明した実施形態によれば、ソフトウェアのバージョン間の変更に対応するUI要素の周辺に、変更内容の説明を行うための説明用UI部品を機械的に埋め込める。これにより、開発者は変更内容の説明文を入力するのみで変更部分をユーザへ示せるようになるため、開発工数を削減することができる。また、ユーザは、変更のあったUI要素を使用する際に、変更内容を適時に理解できるようになるので、ユーザの使用性を損ねない。   According to the embodiment described above, an explanation UI component for explaining the contents of change can be mechanically embedded around a UI element corresponding to a change between software versions. As a result, the developer can show the changed portion to the user only by inputting an explanatory note of the changed content, and therefore the development man-hour can be reduced. In addition, when the user uses the changed UI element, the user can understand the change contents in a timely manner, so that the user's usability is not impaired.

101:ユーザ用計算機、102:ソフトウェア実行用計算機、103:ソフトウェア開発用計算機、104:WWW、105:LAN、110:CPU、111:バス、112:主記憶装置、113:二次記憶装置、120:ブラウザ、121:構文差分抽出部、122:該当UI抽出部、123:説明用UI部品挿入部、124:バージョンアップ前のソースファイル、125:バージョンアップ後のソースファイル、126:説明用UI部品挿入後のソースファイル、127:実行ファイル。 101: Computer for user, 102: Computer for software execution, 103: Computer for software development, 104: WWW, 105: LAN, 110: CPU, 111: Bus, 112: Main storage device, 113: Secondary storage device, 120 : Browser, 121: Syntax difference extraction unit, 122: Applicable UI extraction unit, 123: Explanation UI part insertion part, 124: Source file before version upgrade, 125: Source file after version upgrade, 126: Explanation UI part Source file after insertion, 127: Executable file.

Claims (6)

ソフトウェアのバージョンアップ前の第1のソースコードとバージョンアップ後の第2のソースコードとを対象に構文解析して構文要素を得、前記第1のソースコードと前記第2のソースコードとの差分を行単位で抽出し、前記行単位で抽出した差分と前記構文要素とをマッピングし、前記構文要素の階層に従って前記抽出した差分を上位層へ伝播する構文差分抽出部、
前記抽出した差分にマッピングした前記構文要素を含む関数に関して呼び出し関係木を生成し、前記呼び出し関係木を辿り、前記関数の呼び出しに繋がるUI要素を探索する該当UI抽出部、及び、
前記UI要素の種類及び変更のパターンを検出し、前記検出した種類及び変更のパターンに対応する説明用UI部品を選定し、前記選定した説明用UI部品を前記第2のソースコードに埋め込む説明用UI部品挿入部を備えることを特徴とするソフトウェアのバージョン間の差分表示システム。
The first source code before the software upgrade and the second source code after the upgrade are parsed to obtain a syntax element, and the difference between the first source code and the second source code A syntax difference extraction unit that maps the difference extracted in units of lines and the syntax element, and propagates the extracted difference to an upper layer according to a hierarchy of the syntax elements;
Generate a call relation tree for the function including the syntax element mapped to the extracted difference, trace the call relation tree, and search for a UI element that leads to the function call; and
The UI element type and the change pattern are detected, an explanation UI component corresponding to the detected type and change pattern is selected, and the selected explanation UI component is embedded in the second source code A system for displaying a difference between software versions, comprising a UI part insertion unit.
前記選定した説明用UI部品の内容を保存し、前記ソフトウェアの次のバージョンアップのときに前記保存した説明用UI部品の内容を削除する変更内容操作部をさらに備えることを特徴とする請求項1記載のソフトウェアのバージョン間の差分表示システム。 The content of the selected explanatory UI widget is further stored, and a change content operation unit is further provided for deleting the stored contents of the explanatory UI widget when the software is upgraded to the next version. Difference display system between listed software versions. 前記ソフトウェアの前記バージョンアップの時刻、及び、前記バージョンアップの時の前記説明用UI部品の内容を保存する変更内容操作部、及び、ユーザの最終アクセス時刻を保存しておき、前記ユーザがアクセスしてきた時の前記バージョンアップの時刻と照合し、前記最終アクセス時刻以降に保存した説明用UI部品を挿入したソースコードを生成するアクセス時手続き部をさらに備えることを特徴とする請求項1記載のソフトウェアのバージョン間の差分表示システム。 The update time of the software, the change content operation unit that stores the contents of the explanatory UI parts at the time of the upgrade, and the user's last access time are stored, and the user accesses 2. The software according to claim 1, further comprising: an access-time procedure unit that generates a source code in which an explanatory UI component stored after the last access time is inserted by checking with the version upgrade time Difference display system between different versions. ソフトウェア開発用計算機によるソフトウェアのバージョン間差分表示方法であって、前記ソフトウェア開発用計算機は、
ソフトウェアのバージョンアップ前の第1のソースコードとバージョンアップ後の第2のソースコードとを対象に構文解析して構文要素を得、
前記第1のソースコードと前記第2のソースコードとの差分を行単位で抽出し、
前記行単位で抽出した差分と前記構文要素とをマッピングし、
前記構文要素の階層に従って前記抽出した差分を上位層へ伝播し、
前記抽出した差分にマッピングした前記構文要素を含む関数に関して呼び出し関係木を生成し、
前記呼び出し関係木を辿り、前記関数の呼び出しに繋がるUI要素を探索し、
前記UI要素の種類及び変更のパターンを検出し、
前記検出した種類及び変更のパターンに対応する説明用UI部品を選定し、
前記選定した説明用UI部品を前記第2のソースコードに埋め込むことを特徴とするソフトウェアのバージョン間の差分表示方法。
A method for displaying a difference between versions of software by a software development computer, wherein the software development computer includes:
Parsing the first source code before the software upgrade and the second source code after the version upgrade to obtain syntax elements,
Extracting the difference between the first source code and the second source code in units of lines;
Mapping the difference extracted in line units and the syntax element,
Propagating the extracted difference to an upper layer according to the hierarchy of syntax elements,
Generating a call relation tree for the function containing the syntax element mapped to the extracted difference;
Tracing the call relation tree, searching for UI elements that lead to the function call,
Detecting the type of UI element and the pattern of change;
Select explanatory UI parts corresponding to the detected type and change pattern,
The difference display method between software versions, wherein the selected explanatory UI component is embedded in the second source code.
前記選定した説明用UI部品の内容を保存し、前記ソフトウェアの次のバージョンアップのときに前記保存した説明用UI部品の内容を削除することを特徴とする請求項4記載のソフトウェアのバージョン間の差分表示方法。 5. The contents of the selected explanation UI widget are saved, and the contents of the saved explanation UI widget are deleted at the next version upgrade of the software. Difference display method. 前記ソフトウェアの前記バージョンアップの時刻、及び、前記バージョンアップの時の前記説明用UI部品の内容を保存し、ユーザの最終アクセス時刻を保存しておき、前記ユーザがアクセスしてきた時の前記バージョンアップの時刻と照合し、前記最終アクセス時刻以降に保存した説明用UI部品を挿入したソースコードを生成することを特徴とする請求項4記載のソフトウェアのバージョン間の差分表示方法。 The version upgrade time of the software and the contents of the explanatory UI parts at the time of the version upgrade are stored, the last access time of the user is stored, and the version upgrade when the user accesses 5. The method for displaying a difference between software versions according to claim 4, wherein the source code is generated by inserting the explanatory UI parts stored after the last access time.
JP2009030983A 2009-02-13 2009-02-13 Difference display system and method between versions of software Pending JP2010186378A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009030983A JP2010186378A (en) 2009-02-13 2009-02-13 Difference display system and method between versions of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009030983A JP2010186378A (en) 2009-02-13 2009-02-13 Difference display system and method between versions of software

Publications (1)

Publication Number Publication Date
JP2010186378A true JP2010186378A (en) 2010-08-26

Family

ID=42766990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009030983A Pending JP2010186378A (en) 2009-02-13 2009-02-13 Difference display system and method between versions of software

Country Status (1)

Country Link
JP (1) JP2010186378A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065267A (en) * 2011-09-20 2013-04-11 Nec Corp Source code comparison device, source code comparison method, and source code comparison program
CN107291428A (en) * 2016-03-31 2017-10-24 晨星半导体股份有限公司 Source code error detecting device and debugging method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065267A (en) * 2011-09-20 2013-04-11 Nec Corp Source code comparison device, source code comparison method, and source code comparison program
CN107291428A (en) * 2016-03-31 2017-10-24 晨星半导体股份有限公司 Source code error detecting device and debugging method

Similar Documents

Publication Publication Date Title
EP3342145B1 (en) Deep linking to mobile application states through programmatic replay of user interface events
JP5911594B2 (en) Providing translation support for application localization
US7526753B2 (en) System and method for creating, managing and using code segments
US9471204B2 (en) System and method for data-driven web page navigation control
US10078709B2 (en) Managing a display of results of a keyword search on a web page by modifying attributes of a DOM tree structure
US9122762B2 (en) Method and system to maintain a web page
US9524279B2 (en) Help document animated visualization
Hellman Android programming: Pushing the limits
US8661416B2 (en) Method and apparatus for defining and instrumenting reusable Java server page code snippets for website testing and production
US9311077B2 (en) Identification of code changes using language syntax and changeset data
US20080235660A1 (en) Depicting Changes to Structures in an Integrated Development Environment
CN107832052B (en) Method and device for displaying preview page, storage medium and electronic equipment
Murphy et al. Beginning Android 3
JP2011100447A (en) Entity morphing in metamodel-based tool
Allen et al. Beginning Android 4
US20150160820A1 (en) Drag and drop portlet deployment
Gassner Flash Builder 4 and Flex 4 Bible
JP2010186378A (en) Difference display system and method between versions of software
CN110737588A (en) automatic point burying method, device, medium and electronic equipment
CN107077484B (en) Generating a web browser view of an application
Lerner et al. C3: An Experimental, Extensible, Reconfigurable Platform for {HTML-based} Applications
Diment et al. The Definitive Guide to Catalyst: Writing Extensible, Scalable and Maintainable Perl-Based Web Applications
JP2014081886A (en) File management device and computer program
JP2017091027A (en) System development support system
Duldulao et al. Spring Boot and Angular: Hands-on full stack web development with Java, Spring, and Angular