JP2011138247A - Program influence range verification method and device - Google Patents

Program influence range verification method and device Download PDF

Info

Publication number
JP2011138247A
JP2011138247A JP2009296684A JP2009296684A JP2011138247A JP 2011138247 A JP2011138247 A JP 2011138247A JP 2009296684 A JP2009296684 A JP 2009296684A JP 2009296684 A JP2009296684 A JP 2009296684A JP 2011138247 A JP2011138247 A JP 2011138247A
Authority
JP
Japan
Prior art keywords
program
function
group
source code
module
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
JP2009296684A
Other languages
Japanese (ja)
Inventor
Akitoshi Shimura
明俊 志村
Takayuki Takesawa
隆之 武沢
Tomoyuki Mochizuki
智之 望月
Yuichi Kobayashi
悠一 小林
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 JP2009296684A priority Critical patent/JP2011138247A/en
Publication of JP2011138247A publication Critical patent/JP2011138247A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method and device for enabling a developer to easily recognize an influence range when reviewing the source code of a program. <P>SOLUTION: A verification device includes: a module extraction part; a source code characteristic determination part; and an output part. The module extraction part is configured to extract a module in which a source code is included from a program, and to define it as a first group, and to extract a module for executing processing which is the same type as that of the module in which the source code is included from the program, and to define it as a second group. The source code characteristic determination part is configured to compare the first group with the second group, and to determine the characteristics of processing where the source code is used for execution on the basis of the result of comparison, and the output part is configured to output the result of determination to a display device. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明はソフトウェア開発方法に係り、特に部分改造時における既存プログラムへの影響範囲を開発者に提示するための方法および装置に関する。   The present invention relates to a software development method, and more particularly, to a method and apparatus for presenting a developer with a range of influence on an existing program at the time of partial remodeling.

鉄道運行管理システムなどの大規模システムでは、システムが一度構築されると10〜15年間は部分的な改造や改修によって対応するため、その開発方法は信頼性や開発期間の観点から既存のソースコードに手を加えることのない継ぎ足しの開発が選択される。しかしシステム構築から10年以上経過すると、その間に有識者の異動や退職などによりシステムを俯瞰できる人材が少なくなり、結果として巨大なブラックボックスを作りこむことになる。その結果、例えばブラックボックス内の処理に障害が発生すると障害対策に多大な工数を要すると言った課題が発生する。   In large-scale systems such as railway operation management systems, once the system is built, it will be supported by partial modifications and modifications for 10 to 15 years, so the development method is based on the existing source code in terms of reliability and development period. The development of an extension that does not need to be modified is selected. However, when more than 10 years have passed since the system construction, the number of people who can overlook the system during that period due to the transfer or retirement of experts will decrease, and as a result, a huge black box will be created. As a result, for example, when a failure occurs in the processing in the black box, there arises a problem that a lot of man-hours are required for the failure countermeasure.

特に、鉄道運行管理システムのような社会インフラシステムでは現行信頼性の担保が強く求められるため、ブラックボックス化されたソースコードをホワイトボックス化して、段階的に作り直すことにより、上記の課題を解決することが現在強く求められている。ところが、継ぎ足しの開発を行ってきたシステムでは、ソースコード内の処理関数はプログラム内に冗長に散在しており、見直し対象の処理関数に関連する全ての処理関数を同時に改造する必要がある。一方、見直し工数はソースコードのステップ数が大規模になる程増大するため、人手で行うと見直し箇所を見落とすと言った問題も発生する。   In particular, social infrastructure systems such as railway operation management systems are strongly required to ensure the current reliability, so the above problem can be solved by converting the black boxed source code into a white box and re-creating it step by step. There is a strong demand now. However, in a system that has been developed for addition, the processing functions in the source code are redundantly scattered in the program, and it is necessary to simultaneously modify all the processing functions related to the processing function to be reviewed. On the other hand, the man-hours for review increase as the number of steps in the source code increases, so that the problem of overlooking the part to be reviewed also occurs when done manually.

こうした問題を鑑みて、仕様変更の過程で使用されなくなったプログラム部品を検出、除外し必要なプログラム部品のみを用いて見直しを行う方法が報告されている(特許文献1)。   In view of these problems, there has been reported a method of detecting and excluding program parts that are no longer used in the process of changing specifications and reexamining them using only necessary program parts (Patent Document 1).

特開2009-93239号公報JP 2009-93239

特許文献1ではプログラム部品の中から既に使用されなくなった部品をプログラム部品どうしの依存関係に着目して抽出し除外することでプログラム保守時の効率化を図っている。   In Patent Document 1, parts that are no longer used from among program parts are extracted and excluded by paying attention to the dependency between program parts, thereby improving efficiency during program maintenance.

ところが特許文献1では、プログラム部品どうしの依存関係が無い場合にのみ不要部品と判断するため、依存関係が存在する全てのプログラム部品はそのままプログラム内に残ることになる。鉄道運行管理システムの様な大規模システムでは、使用されていないプログラム部品も多数存在するがその殆どは継ぎ足し開発時のコピー元となった部品である。つまり継ぎ足し開発によって発生した不要なプログラム部品とはシステム開発当初から肥大化した部分が対象となるため、そもそもプログラム規模の大きいシステムでは不要プログラム部品を取り除いた所で、人手による見直し効率が向上するとは言い難い。   However, in Patent Document 1, since it is determined as an unnecessary component only when there is no dependency relationship between program components, all the program components having a dependency relationship remain in the program as they are. In a large-scale system such as a railway operation management system, there are many program parts that are not used, but most of them are parts that have been added and used as copy sources during development. In other words, the unnecessary program parts generated by the additional development are the parts that have been enlarged from the beginning of the system development, so in the first place the unnecessary program parts are removed in a system with a large program scale, and the manual review efficiency is improved. It's hard to say.

そこで本発明の課題は、依存関係をもつプログラム部品、具体的には処理関数に対して修正・削除などの見直しを行った際の既存プログラムへの影響を開発者が容易に判断するための方法及び装置を提供することである。   Accordingly, an object of the present invention is to provide a method for allowing a developer to easily determine the influence on a program component having a dependency relationship, specifically, an effect on an existing program when a processing function is revised or deleted. And providing an apparatus.

本発明は、上記課題を解決するために、検証装置が、モジュール抽出部と、ソースコード特性判断部と、出力部とを備え、モジュール抽出部により、ソースコードが含まれるモジュールをプログラムより抽出し、第1のグループとし、モジュール抽出部により、ソースコードが含まれるモジュールと同種の処理を実行するためのモジュールを、プログラムより抽出し、第2のグループとし、ソースコード特性判断部により、第1のグループと第2のグループとを比較し、比較結果に基づいて、ソースコードが実行に用いられる処理の特性を判断し、出力部により、判断結果を表示装置に出力することを特徴とする。   In order to solve the above-described problems, the present invention provides a verification apparatus that includes a module extraction unit, a source code characteristic determination unit, and an output unit. The module extraction unit extracts a module including source code from a program. , A module for executing the same type of processing as the module including the source code is extracted from the program by the module extracting unit, and the module is extracted as a second group by the module extracting unit. The group is compared with the second group, the characteristics of the process used for execution of the source code are determined based on the comparison result, and the determination result is output to the display device by the output unit.

本発明によれば、プログラム開発における利便性を向上することができる。   According to the present invention, convenience in program development can be improved.

本実施形態における影響範囲検証装置の画面構成例である。It is an example of a screen structure of the influence range verification apparatus in this embodiment. 本実施形態における影響範囲検証装置のソフトウェア構成例である。It is a software structural example of the influence range verification apparatus in this embodiment. 本実施形態における影響範囲検証装置のハードウェア構成例である。It is a hardware structural example of the influence range verification apparatus in this embodiment. 本実施形態における影響範囲検証装置の全体処理フローである。It is the whole processing flow of the influence range verification apparatus in this embodiment. 本実施形態におけるモジュールテーブルのテーブル構成例である。It is a table structural example of the module table in this embodiment. 本実施形態におけるモジュールテーブルのテーブル構成例である。It is a table structural example of the module table in this embodiment. 本実施形態におけるグループテーブルのテーブル構成例である。It is a table structural example of the group table in this embodiment. 本実施形態における改造禁止関数テーブルのテーブル構成例である。It is a table structural example of the modification prohibition function table in this embodiment.

本発明を実施するための形態について説明する。   A mode for carrying out the present invention will be described.

図1は開発者が関数改造時の影響範囲を把握するための影響範囲検証装置の画面構成例である。影響範囲検証装置100の画面は関数選択窓110と入力窓120と出力窓130とを含んで構成される。関数選択窓110には対象とするプログラムの関数構造がメイン文から木構造となるように表示されており、開発者は関数選択窓110内の木構造から改造対象の関数を選択し入力窓120に登録する。   FIG. 1 is a screen configuration example of an influence range verification device for a developer to grasp an influence range at the time of function modification. The screen of the influence range verification apparatus 100 includes a function selection window 110, an input window 120, and an output window 130. In the function selection window 110, the function structure of the target program is displayed so that it becomes a tree structure from the main sentence, and the developer selects the function to be modified from the tree structure in the function selection window 110 and inputs the input window 120. Register with.

図1では例えばメイン文の直下に関数Func1、Func2がメイン関数から呼び出される順番に配置されており、またFunc1の配下にはFunc1_1、Func1_2がFunc1から呼び出される順番で配置されている。   In FIG. 1, for example, functions Func1 and Func2 are arranged in the order in which they are called from the main function immediately below the main sentence, and Func1_1 and Func1_2 are arranged in the order in which Func1 is called from Func1.

以下、全ての関数が同様に上位の関数から呼び出される順番で配置される。尚、対象プログラムの全てのソースコードは開発者によって予め影響範囲検証装置100に入力ファイルとして登録されているものとする。これにより開発者が、登録した対象プログラムを選択することで、影響範囲検証装置100がソースコードをメイン関数から辿って木構造に関数を表示することができる。   In the following, all functions are arranged in the same order that they are called from the upper function. It is assumed that all source codes of the target program are registered as input files in the affected range verification apparatus 100 in advance by the developer. Thus, when the developer selects the registered target program, the influence range verification device 100 can trace the source code from the main function and display the function in a tree structure.

入力窓120は選択関数表示部121と追加ボタン122と選択関数リスト123と影響確認ボタン124とを含んで構成されている。選択関数表示部121には関数選択窓110で選択された関数が表示され、追加ボタン122を押下することで、選択関数リスト123に登録される。   The input window 120 includes a selection function display unit 121, an add button 122, a selection function list 123, and an influence confirmation button 124. The function selected in the function selection window 110 is displayed on the selected function display unit 121, and is registered in the selected function list 123 by pressing an add button 122.

図1では例えばFunc1_1_1が改造を検討する関数として開発者によって選択されており、追加ボタン122を押下することでFunc1_1_1が改造対象関数として選択関数リスト124に登録される。全ての改造対象関数の登録を終えると、影響範囲検証装置100は影響確認ボタン124の押下によって選択された全ての改造対象関数の特性判断、改造可否及び影響範囲について検証を開始する。   In FIG. 1, for example, Func1_1_1 is selected by the developer as a function for studying remodeling, and Func1_1_1 is registered in the selected function list 124 as a function to be remodeled by pressing the add button 122. When the registration of all the remodeling target functions is completed, the influence range verification apparatus 100 starts verification of the characteristic judgment, remodelability, and influence range of all the remodeling target functions selected by pressing the influence confirmation button 124.

出力窓130は影響範囲131と影響度132及び133、メッセージ134とを含んで構成される。影響範囲131には選択関数リスト123に登録されている全ての関数に対して例えば改造対象関数と改造対象関数の改造に影響される関数(以下、被関数と呼ぶ)との呼出し関係が木構造で表示される。   The output window 130 includes an influence range 131, influence degrees 132 and 133, and a message 134. In the influence range 131, for all the functions registered in the selected function list 123, for example, a call relationship between a function to be modified and a function affected by the modification of the function to be modified (hereinafter referred to as an operand) has a tree structure. Is displayed.

図1では改造対象関数と被関数との呼び出し関係を表示した例を示しているが、例えばデータフロー図を使って表示することで改造に伴うデータへの影響と、該データを介した他関数への影響についても把握することが可能になる。この場合、対象プログラムに対応するデータフロー図を予め影響範囲検証装置100に登録しておく必要がある。   FIG. 1 shows an example in which the call relationship between the remodeling target function and the function is displayed. For example, by displaying using a data flow diagram, the influence on the data accompanying the remodeling and other functions via the data are shown. It is also possible to understand the impact on the environment. In this case, a data flow diagram corresponding to the target program needs to be registered in the influence range verification apparatus 100 in advance.

影響度132は改造可能と判断した全ての改造対象関数を改造した時の既存プログラム全体への影響度合を表したものであり、影響度133は改造可能と判断した個々の関数を改造した時の既存プログラム全体への影響度合を表したものである。影響度132及び133により、開発者は開発期間を考慮しながら見直し対象関数を絞りこむ事が可能になる。例えば図1では影響度132に30%、影響度133に10%が表示されている。これは選択関数リスト123に登録されている関数の内、改造可能と判断した全ての関数を改造した場合の既存プログラムへの影響度は30%であり、Func1_1_1のみを改造した場合の既存プログラムへの影響度は10%であることを意味している。   The degree of influence 132 represents the degree of influence on the entire existing program when all the functions to be modified that are determined to be modifiable are modified, and the degree of influence 133 is the value when the individual functions that are determined to be modifiable are modified. It shows the degree of influence on the entire existing program. The influence levels 132 and 133 allow the developer to narrow down the functions to be reviewed while considering the development period. For example, in FIG. 1, 30% is displayed in the influence degree 132 and 10% is displayed in the influence degree 133. This is because the effect on the existing program when all the functions that are determined to be modifiable among the functions registered in the selected function list 123 are remodeled is 30%, and the existing program when only Func1_1_1 is remodeled. This means that the degree of influence is 10%.

メッセージ134には、影響度133と対で表示される改造時の注意メッセージである。例えば図1の例では影響度133は10%と小さいが、メッセージ134には入換列車との入場デッドロック処理に影響を及ぼす事が示されているため、Func1_1_1を改造する場合には信頼性担保のためにも入場デッドロックに係るテストを一通り実施することが望ましく、テスト工数に時間を要すると言った判断を行うことができる。逆に影響度133は大きいがプログラム全体に渡って共通的に使用されている例えばデータ入出力操作等の共通関数を改造する場合などは、共通関数のデータ入出力が改造前後で変わらない事が保証されれば、関係する全関数との連動テストは必ずしも必要ない。このように改造対象関数の特性に応じたメッセージを影響度133と対で表示することにより、開発者は改造対象関数を開発期間や目的に応じて正確に絞り込むことが可能になる。   The message 134 is a caution message at the time of modification displayed as a pair with the influence degree 133. For example, in the example of FIG. 1, the influence 133 is as small as 10%, but the message 134 shows that it affects the entrance deadlock process with the replacement train. It is desirable to carry out a series of tests related to admission deadlock for collateral, and it can be determined that it takes time for test man-hours. On the other hand, if the degree of influence 133 is large but the common function used for the entire program is modified, for example, when a common function such as data input / output operation is modified, the data input / output of the common function may not change before and after the modification. If guaranteed, a link test with all relevant functions is not necessarily required. Thus, by displaying the message according to the characteristic of the modification target function in a pair with the influence degree 133, the developer can accurately narrow down the modification target function according to the development period and purpose.

図2は影響範囲検証装置100のソフトウェア構成例で、画面入力部210と関連モジュール抽出部220と関数特性判断部230と改造可否判断部240と影響度計算部250と画面出力部260とを含んで構成される。   FIG. 2 shows a software configuration example of the influence range verification device 100, which includes a screen input unit 210, a related module extraction unit 220, a function characteristic determination unit 230, a modification possibility determination unit 240, an influence degree calculation unit 250, and a screen output unit 260. Consists of.

画面入力部210では影響確認ボタン124押下をイベントとして選択関数リスト123に登録された全関数と各関数の最上位関数(メイン関数直下の関数)を入力として読み込み、関連モジュール抽出部220に通知する。   The screen input unit 210 reads all functions registered in the selected function list 123 as an event when the influence confirmation button 124 is pressed and the highest function of each function (a function immediately below the main function) as inputs, and notifies the related module extraction unit 220 of them. .

関連モジュール抽出部220はモジュールテーブル221を参照する。モジュールテーブル221は、鉄道運行管理システムの機能モジュールと各機能モジュールに対応する関数構造と処理グループ識別情報との対応を表したテーブルである。処理グループとは、鉄道運行管理システムの機能モジュールにおいて入場制御や出発制御やデッドロック判断などの共通的な処理を有する機能モジュールどうしをグループ化したものである。   The related module extraction unit 220 refers to the module table 221. The module table 221 is a table showing the correspondence between the functional modules of the railway operation management system, the function structure corresponding to each functional module, and the processing group identification information. The processing group is a group of functional modules having common processing such as entrance control, departure control, and deadlock judgment in the functional modules of the railway operation management system.

モジュールテーブル221は対象プログラム毎に作成される。影響範囲検証装置100に対象プログラムを登録する際に、開発者が機能モジュールと関数構造との対応関係及び処理グループの識別情報も合わせて登録すればよい。   The module table 221 is created for each target program. When the target program is registered in the influence range verification apparatus 100, the developer may register the correspondence between the function module and the function structure and the processing group identification information together.

関連モジュール抽出部220は、画面入力部210から通知を受け付けると、画面入力部210が読み込んだ選択関数リスト123に登録されている関数と同一の関数をモジュールテーブル221に登録されている関数構造から検索し、一致した場所で対応付けられる機能モジュールを全て抽出する。また画面入力部210が読み込んだ最上位関数をモジュールテーブル221から検索し、一致した場所で対応付けられる処理グループの識別情報を1つ抽出し、関数特性判断部230に通知する。   When the related module extraction unit 220 receives the notification from the screen input unit 210, the related module extraction unit 220 uses the same function as the function registered in the selection function list 123 read by the screen input unit 210 from the function structure registered in the module table 221. Search and extract all functional modules associated with the matching location. Further, the top-level function read by the screen input unit 210 is searched from the module table 221, and one piece of processing group identification information associated with the matched location is extracted and notified to the function characteristic determination unit 230.

関数特性判断部230はグループテーブル231を参照する。グループテーブル231には複数の処理グループが登録されており、また各処理グループには鉄道運行管理システムにおいて互いに共通の処理を有する機能モジュールが登録されている。例えば、本線通過列車の単線区間における駅入場制御処理と本線停車列車の単線区間における駅入場制御処理とでは列車入場時に入場信号機を制御するという点で同様の入場制御処理を有している。こうした場合にこれら二つの機能モジュールは同じ処理グループに属することになる。   The function characteristic determination unit 230 refers to the group table 231. A plurality of processing groups are registered in the group table 231, and functional modules having processes common to each other in the railway operation management system are registered in each processing group. For example, the station admission control process in the single line section of the main line passing train and the station admission control process in the single line section of the main line stop train have the same admission control process in that the admission signal is controlled when entering the train. In such a case, these two functional modules belong to the same processing group.

関数特性判断部230は関連モジュール抽出部220から通知を受け付けると、関連モジュール抽出部220が抽出した処理グループの識別情報に基づいてグループテーブル231に登録されている処理グループ内の機能モジュール群を抽出し、関連モジュール抽出部220が抽出した機能モジュール群との集合論理から関連モジュール抽出部220が読み込んだ関数の特性を判断する。   When the function characteristic determination unit 230 receives the notification from the related module extraction unit 220, the function characteristic determination unit 230 extracts the functional module group in the processing group registered in the group table 231 based on the identification information of the processing group extracted by the related module extraction unit 220. Then, the characteristic of the function read by the related module extracting unit 220 is determined from the collective logic with the functional module group extracted by the related module extracting unit 220.

該関数を処理依存の関数と判断した場合、関数特性判断部230は判断結果を改造可否判断部240に通知する。改造可否判断部240は、改造禁止関数テーブル232を参照する。改造禁止関数テーブル232には開発者が処理の複雑性や改造リスクなどの事情で改造禁止としたい関数群が登録されている。グループテーブル231及び改造禁止関数テーブル232は対象プログラム毎に存在し、モジュールテーブル221の登録時に開発者によって一緒に登録されることとしてよい。   If the function is determined to be a process-dependent function, the function characteristic determination unit 230 notifies the determination result to the remodelability determination unit 240. The modification permission determination unit 240 refers to the modification prohibition function table 232. In the modification prohibition function table 232, a group of functions that the developer wants to prohibit modification is registered for reasons such as processing complexity and modification risk. The group table 231 and the modification prohibition function table 232 exist for each target program, and may be registered together by the developer when the module table 221 is registered.

改造可否判断部240は、該関数から関連モジュール抽出部220が読み込んだ最上位関数に向かって上位に存在する関数が、改造禁止関数テーブル232に登録されているか否かを判断する。登録されている場合には該関数を改造不可と判断し、登録されていない場合には該関数を改造可と判断して、影響度計算部250に通知する。   The remodelability determination unit 240 determines whether or not a function that exists higher in the direction from the function toward the highest function read by the related module extraction unit 220 is registered in the remodeling prohibition function table 232. If the function is registered, it is determined that the function cannot be modified. If the function is not registered, the function is determined to be modifiable, and the influence degree calculation unit 250 is notified.

関数特性判断部230は該関数を処理非依存の関数と判断した場合、改造禁止関数テーブル232を用いた判断は行わずに影響度計算部250に通知する。なお、改造可否判断部240による処理は、関数特性判断部230の処理より前に、行うこととしても良い。この場合は、まず改造可否判断部240が、改造禁止関数テーブル232を用いて該関数の改造の可否を判断し、改造可と判断した場合に、判断結果を関数特性判断部230に通知して、関数特性判断部230がグループテーブル231を用いて該関数の特性を判断する。   When the function characteristic determination unit 230 determines that the function is a processing-independent function, the function characteristic determination unit 230 notifies the influence degree calculation unit 250 without making a determination using the modification prohibition function table 232. It should be noted that the process by the remodelability determination unit 240 may be performed before the process by the function characteristic determination unit 230. In this case, first, the modification permission determination unit 240 determines whether the function can be modified using the modification prohibition function table 232, and when determining that the modification is possible, notifies the function characteristic determination unit 230 of the determination result. The function characteristic determination unit 230 determines the characteristic of the function using the group table 231.

影響度計算部250は、関数特性判断部230が処理非依存と判断した関数および改造可否判断部240が改造可と判断した関数に対して影響度を計算する。この時、該関数だけでなく該関数から最上位関数に向かって上位に存在する全ての関数も改造されるものとして影響度を計算する。画面入力部210が読み込んだ全ての関数に対して影響度計算が終了すると、最後に改造可と判断された全ての関数を改造した場合の影響度を計算し、画面出力部260に通知する。画面出力部260では、改造可否判断部240が判断した結果と影響度計算部250が計算した影響度を出力窓130に表示する。画面入力部210および画面出力部260は、影響範囲検証装置100とは異なる他の表示装置に接続して入出力を行う構成としてもよい。   The influence degree calculation unit 250 calculates the influence degree for the function that the function characteristic determination unit 230 determines to be processing-independent and the function that the remodelability determination unit 240 determines that remodeling is possible. At this time, not only the function but also all functions existing at the upper level from the function toward the highest function are calculated, and the influence degree is calculated. When the influence degree calculation is completed for all functions read by the screen input unit 210, the influence degree when all the functions finally determined to be modifiable are remodeled is calculated and notified to the screen output unit 260. The screen output unit 260 displays on the output window 130 the result determined by the modification possibility determination unit 240 and the influence calculated by the influence calculation unit 250. The screen input unit 210 and the screen output unit 260 may be configured to input / output by connecting to another display device different from the influence range verification device 100.

図3は影響範囲検証装置100のハードウェア構成例である。影響範囲検証装置100はプログラム実行等の演算を行うプロセッサ310、OS(Operating System)などの基本プログラムや基本データ、画面入力部210、関連モジュール抽出部220、関数特性判断部230、改造可否判断部240、影響度計算部250、および画面出力部260を実現するプログラムを格納するROM320、プログラム実行時の処理領域や見直し対象関数の関連特性判断結果、改造可否判断結果などのデータの一時格納領域として使用するRAM330、HDD(Hard Disk Drive)などの大容量記憶装置341と接続するための大容量記憶装置インタフェース340、キーボードやマウス、ディスプレイなどの外部デバイス361と接続するための外部デバイスインタフェース360、Ethernet(登録商標)などの通信装置351と接続するための通信インタフェース350と無線LANなどの無線通信装置371と接続するための無線通信装置インタフェース370とがバス300を介して接続されている。大容量記憶装置341や外部デバイス361を含めた構成を影響範囲検証装置100であるとしてもよい。   FIG. 3 is a hardware configuration example of the influence range verification apparatus 100. The influence range verification device 100 includes a processor 310 that performs operations such as program execution, a basic program and basic data such as an OS (Operating System), a screen input unit 210, a related module extraction unit 220, a function characteristic determination unit 230, and a modality determination unit. 240, ROM 320 for storing the program for realizing the influence degree calculation unit 250 and the screen output unit 260, as a temporary storage region for data such as a processing region at the time of program execution, a related characteristic determination result of a function to be reviewed, a remodelability determination result, etc. A RAM 330 to be used, a mass storage device interface 340 for connecting to a mass storage device 341 such as an HDD (Hard Disk Drive), and an external device interface for connecting to an external device 361 such as a keyboard, mouse, display, etc. 60, a communication interface 350 for connecting to a communication device 351 such as Ethernet (registered trademark) and a wireless communication device interface 370 for connecting to a wireless communication device 371 such as a wireless LAN are connected via a bus 300. . A configuration including the mass storage device 341 and the external device 361 may be the influence range verification device 100.

大容量記憶装置341にはモジュールテーブル221、グループテーブル231、改造禁止関数テーブル232などの各種テーブルや対象プログラムのソースコードが格納されており、ROM320に格納された各種プログラムによって読み出され利用される。あるいは、画面入力部210、関連モジュール抽出部220、関数特性判断部230、改造可否判断部240、影響度計算部250、および画面出力部260を構成するプログラムの少なくとも一部についても、大容量記憶装置341に格納されることとしてもよい。各種処理実行の際に、プロセッサ310が、RAM330に読み出してプログラムを実行する。   The large-capacity storage device 341 stores various tables such as a module table 221, a group table 231, and a modification prohibition function table 232, and source codes of target programs, which are read and used by various programs stored in the ROM 320. . Alternatively, at least a part of the programs constituting the screen input unit 210, the related module extraction unit 220, the function characteristic determination unit 230, the modification possibility determination unit 240, the influence degree calculation unit 250, and the screen output unit 260 are also stored in a large capacity. It may be stored in the device 341. When executing various processes, the processor 310 reads the data into the RAM 330 and executes the program.

外部デバイス361は開発者とのインタフェースデバイス及び外部媒体に読み書き可能なドライブ装置などである。例えば開発者は見直し対象関数をキーボードやマウスやタッチパネルなどの入力デバイスを介して選択することができる。また、外部デバイス361に着脱可能で可搬性のある記憶媒体とデータの入出力を行う。   The external device 361 is an interface device with a developer and a drive device that can read and write to an external medium. For example, the developer can select the function to be reviewed through an input device such as a keyboard, a mouse, or a touch panel. In addition, data is input / output to / from an external device 361 that is removable and portable.

通信装置351及び無線通信装置371は、ネットワークを介してサーバ装置などの他の装置と接続することができる。図3の例では、影響範囲検証装置100はPC/AT互換機などの汎用計算機を想定しているが、例えばPDA(Personal Digital Assistant)などの携帯端末や専用装置で影響範囲検証装置100を実現する場合、セキュリティやHDD容量などの理由で影響範囲検証装置100に対象プログラムのソースコードや各種テーブルを格納できない場合がある。このような場合、社内ネットワーク上に設置されたサーバ装置(図示せず)に対象プログラムのソースコードや各種テーブルなどを格納しておくことが考えられる。   The communication device 351 and the wireless communication device 371 can be connected to other devices such as a server device via a network. In the example of FIG. 3, the influence range verification apparatus 100 is assumed to be a general-purpose computer such as a PC / AT compatible machine. However, the influence range verification apparatus 100 is realized by a portable terminal such as a PDA (Personal Digital Assistant) or a dedicated device. In such a case, the source code and various tables of the target program may not be stored in the affected range verification device 100 for reasons such as security and HDD capacity. In such a case, it is conceivable to store the source code and various tables of the target program in a server device (not shown) installed on the in-house network.

通信装置351や無線通信装置371はこうしたケースを想定して構成されたものであり、影響範囲検証装置100はこれら通信装置を利用してサーバ装置に格納されたソースコードや各種テーブルにアクセスすることができる。   The communication device 351 and the wireless communication device 371 are configured assuming such a case, and the influence range verification device 100 uses these communication devices to access source codes and various tables stored in the server device. Can do.

また、各機能部を実現するプログラムは、予めROM320または大容量記憶装置341に格納されていてもよいし、必要に応じ、利用可能な媒体を介して、他の装置からROM320または大容量記憶装置341に導入されてもよい。媒体とは、例えば、外部デバイス361に着脱可能な記憶媒体、または、ネットワークや、ネットワークを伝搬する搬送波やデジタル信号などの通信媒体を指す。   A program for realizing each functional unit may be stored in the ROM 320 or the mass storage device 341 in advance, or the ROM 320 or the mass storage device from another device via an available medium as necessary. 341 may be introduced. The medium refers to, for example, a storage medium that can be attached to and detached from the external device 361, or a communication medium such as a network, a carrier wave that propagates through the network, and a digital signal.

図4は本実施形態において見直し対象関数の特性判断、改造可否、影響範囲及び影響度を判断するための全体処理フローである。以下に示す処理は、影響範囲検証装置100の備えるプロセッサ310が、RAM330で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。   FIG. 4 is an overall processing flow for determining the characteristics of the function to be reviewed, whether or not to modify, the influence range, and the influence degree in this embodiment. The processing described below is realized by a program executed by the RAM 330 by the processor 310 included in the influence range verification apparatus 100. And this program is comprised from the code | cord | chord for performing the various operation | movement demonstrated below.

画面入力部210が影響確認ボタン124からイベントを受け付けると、選択関数リストに登録された全関数と各関数の最上位関数を読み込み、関連モジュール抽出部220に通知する(ステップ401)。
関連モジュール抽出部220、関数特性判断部230、改造可否判断部240、影響度計算部250はステップ401で読み込んだ全ての関数に対して関連モジュール抽出処理、関数特性判断処理、改造可否判断処理、影響度計算処理を実行する(ステップ402)。
関連モジュール抽出部220は、読み込んだ関数と同一の関数をモジュールテーブル221から検索し、対応する機能モジュールを抽出する(ステップ403)。ステップ403の処理について、以下詳細に述べる。
When the screen input unit 210 accepts an event from the influence confirmation button 124, all the functions registered in the selected function list and the highest function of each function are read and notified to the related module extraction unit 220 (step 401).
The related module extraction unit 220, the function characteristic determination unit 230, the remodelability determination unit 240, and the influence degree calculation unit 250 perform a related module extraction process, a function characteristic determination process, a remodelability determination process for all the functions read in step 401, An impact calculation process is executed (step 402).
The related module extraction unit 220 searches the module table 221 for the same function as the read function, and extracts the corresponding functional module (step 403). The processing in step 403 will be described in detail below.

まずモジュールテーブル221を図5及び図6に示す。
図5はモジュールテーブル221のうち、鉄道運行管理システムの進路制御機能に係る機能モジュールの分類に関する部分を示しており、大分類501と小分類502とモジュール#503を含んで構成されている。鉄道運行管理システムにおける進路制御機能とは、対象とする列車や区間、駅の入場及び出発ごとに信号機やてこなどの地上設備を制御することで、列車の進路を決定するための機能であり、大きくは大分類501に示してあるように、本線通過列車と本線停車列車と入換列車ならびに単線区間と複線区間ごとの駅の入場と出発に分類される。また入場機能及び出発機能では、それぞれ他列車とのデッドロック判断処理を地上設備制御を実施する前に行う。
First, the module table 221 is shown in FIGS.
FIG. 5 shows a part related to the classification of functional modules related to the route control function of the railway operation management system in the module table 221, and includes a large classification 501, a small classification 502, and a module # 503. The route control function in the railway operation management system is a function to determine the route of the train by controlling the ground equipment such as traffic lights and levers for each target train, section, station entrance and departure, Generally, as shown in the large classification 501, the trains are classified into main line passing trains, main line stop trains, replacement trains, and station entry and departure for each single line section and double line section. In addition, in the entrance function and the departure function, deadlock judgment processing with other trains is performed before carrying out ground facility control.

例えば、本線単線通過入場機能では、入換列車、到着番線在線列車、出発番線在線列車、対向列車とのデッドロック判断が実施され、本線単線停車入場機能では、入換列車、到着番線在線列車、対向列車とのデッドロック判断が実施され、本線単線停車出発機能では入換列車、通過列車、対向列車とのデッドロック判断が実施され、本線複線通過入場機能では、入換列車、到着番線在線列車、出発番線在線列車とのデッドロック判断が実施され、本線複線停車入場機能では、入換列車、到着番線在線列車とのデッドロック判断が実施され、本線複線停車出発機能では入換列車、通過列車とのデッドロック判断が実施され、入換入場機能では本線列車と到着番線在線列車とのデッドロック判断が実施され、入換出発機能では本線列車と出発番線在線列車とのデッドロック判断が実施される。   For example, in the main line single line passing entrance function, deadlock judgment is performed with the replacement train, arrival number line existing train, departure number line existing train, oncoming train, and main line single line stop entry function is used for the replacement train, arrival number line existing train, Deadlock judgment with oncoming train is performed, deadline judgment with main line single line stop departure function is performed with exchange train, passing train, oncoming train, and main line double line passing entrance function with replacement train, arrival number line existing train The deadlock judgment with the departure train on the departure number line is carried out, and the deadlock judgment with the arrival train on the main line double line stop is carried out on the double line stop entry function on the main line, and the replacement train and passing train on the departure function on the main line double line stop The deadlock judgment between the main train and the arrival number train is performed in the replacement entrance function, and the main train and departure number in the replacement departure function. Deadlock judgment is carried out of the line train.

各入場機能及び出発機能ではこれらデッドロック判断が実施された後に、列車どうしのデッドロックが発生しないと判断すると、信号機やてこなどの地上設備を直接制御する連動装置に対して制御許可を発行する。   After each deadlock determination is made for each entry function and departure function, if it is determined that there is no deadlock between trains, control permission is issued to the interlocking device that directly controls the ground equipment such as traffic lights and levers. .

モジュール#503には小分類502に対応した識別情報が登録されている。例えば本線単線通過入場機能のデッドロック判断処理にはモジュール#1−1が、入場制御処理にはモジュール#1−2が、本線単線停車入場機能のデッドロック判断処理にはモジュール#2−1が、入場制御処理にはモジュール#2−2が、本線単線停車出発機能のデッドロック判断処理にはモジュール#3−1が、出発制御処理にはモジュール#3−2が、本線複線通過入場機能のデッドロック判断処理にはモジュール#4−1が、入場制御処理にはモジュール#4−2が、本線複線停車入場機能のデッドロック判断処理にはモジュール#5−1が、入場制御処理にはモジュール#5−2が、本線複線停車出発機能のデッドロック判断処理にはモジュール#6−1が、出発制御処理にはモジュール#6−2が、入換入場機能のデッドロック判断処理にはモジュール#7−1が、入場制御処理にはモジュール#7−2が、入換出発機能のデッドロック判断処理にはモジュール#8−1が、出発制御処理にはモジュール#8−2が各々登録されている。尚、大分類501及び小分類502で分類された機能モジュールは鉄道運行管理システムに共通する機能モジュールであるため、対象プログラム毎に生成しなくてもよい。   Identification information corresponding to the small category 502 is registered in the module # 503. For example, module # 1-1 is used for deadlock determination processing for the main line single-passage entrance function, module # 1-2 is used for entrance control processing, and module # 2-1 is used for deadlock determination processing for the mainline single-line stop entrance function. Module # 2-2 is used for the entrance control process, module # 3-1 is used for the deadlock determination process for the main line single-line stop departure function, module # 3-2 is used for the start control process, and the main line double-track passing entrance function is used. Module # 4-1 is used for the deadlock determination process, module # 4-2 is used for the entrance control process, module # 5-1 is used for the deadlock determination process of the main line double-track stop entry function, and module # 5-1 is used for the entrance control process. # 5-2 is module # 6-1 for the deadlock determination process for the main line double-track stop departure function, and module # 6-2 for the departure control process. Module # 7-1 is used for the determination process, module # 7-2 is used for the entrance control process, module # 8-1 is used for the deadlock determination process for the replacement departure function, and module # 8- is used for the departure control process. 2 is registered. In addition, since the functional module classified by the large classification 501 and the small classification 502 is a functional module common to a railway operation management system, it does not need to produce | generate for every object program.

図6は、モジュールテーブル221のうち、図5で示した各機能モジュール#503に対応する階層化した関数構造601と処理グループ602の対応の部分を示している。例えばモジュール#1−1の機能モジュールに対応する最上位関数にはFunc1が登録されており、Func1から呼び出される関数としてFunc1_1とFunc1_2が登録されている。以下同様に、呼び出される全ての関数が階層化されて登録されている。これは本線単線通過入場機能がFunc1とその配下に存在する全ての関数によって実現されることを意味する。処理グループ602には例えばグループ識別情報G#3が登録されている。グループ識別情報はグループテーブル231に登録されているグループを識別するための情報である。   FIG. 6 shows the corresponding parts of the hierarchical function structure 601 and processing group 602 corresponding to each functional module # 503 shown in FIG. For example, Func1 is registered in the highest function corresponding to the functional module of module # 1-1, and Func1_1 and Func1_2 are registered as functions called from Func1. Similarly, all functions to be called are registered in a hierarchy. This means that the main line single line entrance function is realized by Func1 and all the functions under it. For example, group identification information G # 3 is registered in the processing group 602. The group identification information is information for identifying a group registered in the group table 231.

グループテーブル231の構成例を図7に示す。グループテーブル231はグループ#701とモジュール#702を含んで構成される。グループ#701はグループ識別情報で、モジュール#702に登録される機能モジュールどうしは互いに重複した処理をもつ。例えば、グループG#1にはモジュール#1−2とモジュール#2−2とモジュール#4−2とモジュール#5−2とモジュール#7−2が登録されており、これは入場制御を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#1に登録されている全ての機能モジュールには場内信号機制御などの制御処理が共通して含まれている。   A configuration example of the group table 231 is shown in FIG. The group table 231 includes a group # 701 and a module # 702. Group # 701 is group identification information, and functional modules registered in module # 702 have overlapping processes. For example, module # 1-2, module # 2-2, module # 4-2, module # 5-2, and module # 7-2 are registered in group G # 1, and this is a function for performing entrance control. It means a group composed of modules. That is, all the functional modules registered in the group G # 1 commonly include control processing such as in-site signal control.

グループG#2にはモジュール#3−2とモジュール#6−2とモジュール#8−2が登録されており、これは出発制御を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#2に登録されている全ての機能モジュールには出発信号機制御などの制御処理が含まれている。   In the group G # 2, module # 3-2, module # 6-2, and module # 8-2 are registered, which means that the group is configured by a functional module group that performs departure control. That is, all functional modules registered in the group G # 2 include control processing such as departure signal control.

グループG#3にはモジュール#1−1とモジュール#3−1とモジュール#7−1とモジュール#8−1が登録されており、これは単線列車入場及び出発時のデッドロック判断を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#3に登録されている機能モジュールには単線区間での入換列車と本線列車の入場デッドロック処理ならびに出発デッドロック処理が含まれている。   Module # 1-1, module # 3-1, module # 7-1, and module # 8-1 are registered in group G # 3, and this is a function for performing a deadlock judgment at the time of entering and leaving a single track train It means a group composed of modules. In other words, the function modules registered in the group G # 3 include an entrance deadlock process and a departure deadlock process for a replacement train and a main line train in a single track section.

グループG#4にはモジュール#2−1とモジュール#7−1が登録されており、これは単線列車入場時のデッドロック判断を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#4に登録されている機能モジュールには単線区間での入換列車と本線列車の入場デッドロック処理が含まれている。   Module # 2-1 and module # 7-1 are registered in group G # 4, which means that the group is composed of functional module groups that perform deadlock determination when entering a single track train. That is, the function module registered in the group G # 4 includes the entrance deadlock process for the replacement train and the main train in the single track section.

グループG#5にはモジュール#4−1とモジュール#6−1とモジュール#7−1とモジュール#8−1が登録されており、これは複線列車入場及び出発時のデッドロック判断を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#5に登録されている機能モジュールには複線区間での入換列車と本線列車の入場デッドロック処理ならびに出発デッドロック処理が含まれている。   Module # 4-1, module # 6-1, module # 7-1, and module # 8-1 are registered in the group G # 5, and this is a function for performing a deadlock judgment at the time of entering and leaving a double track train. It means a group composed of modules. In other words, the function modules registered in the group G # 5 include an entrance deadlock process and a departure deadlock process for a replacement train and a main line train in a double track section.

グループG#6にはモジュール#5−1とモジュール#7−1が登録されており、これは複線列車入場時のデッドロック判断を行う機能モジュール群によって構成されたグループであることを意味する。即ち、グループG#6に登録されている機能モジュールには複線区間での入換列車と本線列車の入場デッドロック処理が含まれている。   Module # 5-1 and module # 7-1 are registered in group G # 6, which means that the group is composed of functional module groups that perform deadlock determination when entering a double-track train. That is, the function module registered in the group G # 6 includes an entrance deadlock process for the replacement train and the main train in the double track section.

ステップ403の処理の説明に戻って、関連モジュール抽出部220は、画面入力部210から読み込んだ関数として例えばFunc1_1_1を受け付けると、モジュールテーブル221の関数構造601からFunc1_1_1が登録されている機能モジュールを全て抽出する。例えば、図6ではモジュール#1−1とモジュール#7−1にFunc1_1_1が登録されていることから、モジュール#1−1とモジュール#7−1を関数グループ(F)として抽出する。   Returning to the description of the processing in step 403, when the related module extraction unit 220 receives, for example, Func1_1_1 as a function read from the screen input unit 210, all the functional modules in which Func1_1_1 are registered from the function structure 601 of the module table 221. Extract. For example, in FIG. 6, since Func1_1_1 is registered in module # 1-1 and module # 7-1, module # 1-1 and module # 7-1 are extracted as a function group (F).

また関連モジュール抽出部220は画面入力部210から読み込んだ最上位関数の1つとして例えばFunc1を受け付けると、モジュールテーブル221の関数構造601からFunc1が登録されている機能モジュールを検索し(モジュール#1−1)、モジュール#1−1が登録されている処理グループの識別情報としてG#3を抽出する。関数グループ(F)と処理グループ(P)を抽出後、関数特性判断部230に通知する。   When the related module extraction unit 220 receives, for example, Func1 as one of the highest-level functions read from the screen input unit 210, the related module extraction unit 220 searches for a functional module in which Func1 is registered from the function structure 601 of the module table 221 (module # 1). -1) G # 3 is extracted as identification information of the processing group in which module # 1-1 is registered. After extracting the function group (F) and the processing group (P), the function characteristic determination unit 230 is notified.

関数特性判断部230は、関数グループ(F)と処理グループ(P)の集合論理を確認し、確認結果に応じて関数特性を判断する(ステップ404)。
すなわち、たとえばF⊃Pなら読み込んだ関数を、特定の進路制御処理の実行のための関数ではなく、データ入出力操作など、複数の処理に共通して用いられる処理非依存の関数であると判断し、それ以外であれば特定の進路制御処理の実行のために用いられる処理依存の関数と判断する。
The function characteristic determination unit 230 confirms the set logic of the function group (F) and the processing group (P), and determines the function characteristic according to the confirmation result (step 404).
That is, for example, if F⊃P, it is determined that the read function is not a function for executing a specific route control process, but a process-independent function used in common for a plurality of processes such as data input / output operations. Otherwise, it is determined as a process-dependent function used for executing a specific course control process.

処理グループには互いに重複した処理をもつ機能モジュール群が登録されていることから、判断結果がF⊃Pである場合は、読み込んだ関数が処理グループに登録された全ての機能モジュールに使用され、またその他の機能モジュールにも使用されていることを意味する。こうした関数は、処理非依存の関数と判断できる。   Since function modules having overlapping processes are registered in the processing group, when the determination result is F⊃P, the read function is used for all the function modules registered in the processing group. It is also used for other function modules. Such a function can be determined as a process-independent function.

また処理依存の関数であっても、(F∩P≠Φ)∩(F∪P≠F、P)となる場合は、処理間で共通的に使われる例えば連動装置への制御許可や指令員への警告表示などの共通関数であると判断する。Φは空集合である。読み込んだ関数が処理グループの一部の機能モジュールで使用され、かつその他の処理グループの機能モジュールにも使用されていることを意味しており、例えば制御許可や警告表示など、各種の制御処理を行った結果を出力する共通の関数について、対象列車や単線/複線区間ごとに関数を分けた結果、(F∩P≠Φ)∩(F∪P≠F、P)なる集合論理の結果を示したものと考えることができる。   Even in the case of a process-dependent function, if (FΦP ≠ Φ) ∩ (F∪P ≠ F, P), for example, control permission to the interlocking device or commander commonly used between processes Judged to be a common function such as a warning display. Φ is an empty set. This means that the read function is used by some function modules in the processing group, and is also used by function modules in other processing groups. For example, various control processes such as control permission and warning display are performed. As a result of dividing the function for each target train and single line / double line section with respect to a common function that outputs the results, the result of the set logic of (F∩P ≠ Φ) ∩ (F∪P ≠ F, P) is shown. Can be considered.

また、こうした関数であっても、対象列車や単線/複線区間ごとに関数を区別しない場合はF⊃Pの結果となり、この場合は処理非依存の関数として判断される。   Moreover, even if it is such a function, when it does not distinguish a function for every object train or single track / double track section, it becomes a result of F⊃P, and in this case, it is determined as a process-independent function.

またF⊂PまたはF=Pとなる場合には入場制御や出発制御などで使用される処理依存の制御関数と判断する。F⊂Pの場合とは、同一の処理グループに登録されている機能モジュールどうしであっても、対象列車毎に重複する処理が異なることを意味しており、例えば入場列車のデッドロック判断として集められた機能モジュールどうしであっても、入換列車と通過列車の入場デッドロック処理と出発番線在線列車と通過列車との出発デッドロック処理とでは対象列車が異なる事からデッドロック処理も異なる。このように対象列車に注目した時に、異なる判断処理がグループ内で混在しているとF⊂Pなる結果を得る。グループテーブル231に登録する機能モジュール群を予め異なる処理が完全に混在しない様に登録しておくことで、上記の結果を回避するようにしてもよい。   When F⊂P or F = P, it is determined as a process-dependent control function used in entrance control, departure control, or the like. In the case of F 処理 P, even if the functional modules are registered in the same processing group, it means that the overlapping processing is different for each target train. Even if the function modules are different, the deadlock process is different because the target train is different between the entrance deadlock process for the replacement train and the passing train and the departure deadlock process for the departure train and the passing train. Thus, when paying attention to the target train, if different judgment processes are mixed in the group, a result of F⊂P is obtained. The above result may be avoided by registering the functional module group to be registered in the group table 231 in advance so that different processes are not completely mixed.

またF=Pになる場合とは、読み込んだ関数が処理グループ内の機能モジュール群のみに登録されていることを意味するため、デッドロックまたは入場制御または出発制御などの特定の制御処理に依存した制御関数と判断することができる。尚、機能モジュールが複数の処理グループに属している場合、全ての処理グループの論理和から機能モジュールを判断して集合論理を確認すればよい。   The case of F = P means that the read function is registered only in the function module group in the processing group, and therefore depends on a specific control process such as deadlock or entrance control or departure control. It can be determined as a control function. If the functional module belongs to a plurality of processing groups, the functional module may be determined from the logical sum of all the processing groups to confirm the collective logic.

以上の集合論理結果から、読み込んだ関数が処理非依存の関数または共通関数である場合には、関数特性判断部230は判断結果を影響度計算部250に通知する。また処理依存の制御関数である場合には、改造可否判断部240に通知し、改造可否判断部240が改造禁止関数テーブル232を用いた検証を実施する(ステップ405)。   If the read function is a process-independent function or a common function based on the above set logic result, the function characteristic determination unit 230 notifies the influence calculation unit 250 of the determination result. If it is a process-dependent control function, it is notified to the remodelability determination unit 240, and the remodelability determination unit 240 performs verification using the remodeling prohibition function table 232 (step 405).

改造禁止関数テーブル232を図8に示す。改造禁止関数テーブル232は改造禁止関数801によって構成されている。改造禁止関数801とは、開発者が改造を禁止したい関数であって、改造に伴うリスクが非常に高い事が経験上把握できている関数である。改造禁止関数801は、開発者によって予め改造禁止関数テーブル232に登録されることとしてよい。図8では例えば改造禁止関数としてFunc3、Func5_4_3、Func10_2_1などが登録されている。   A modification prohibition function table 232 is shown in FIG. The modification prohibition function table 232 includes a modification prohibition function 801. The modification prohibition function 801 is a function that a developer wants to prohibit modification, and is a function that has been understood from experience that the risk associated with modification is very high. The modification prohibition function 801 may be registered in advance in the modification prohibition function table 232 by the developer. In FIG. 8, for example, Func3, Func5_4_3, Func10_2_1, and the like are registered as remodeling prohibition functions.

改造可否判断部240は、関数グループ及び処理グループの集合論理によって制御関数と判断された関数が改造禁止関数テーブル232に登録されているか否かを検証し、登録されている場合には該関数への改造を不可と判断する。登録されていない場合、次に該関数の1つ上位の関数が改造禁止関数テーブル232に登録されているか否かを検証する。以下同様に最上位関数まで検証を進め、改造禁止関数テーブル232に上位関数が登録されている場合には、該関数の改造を不可と判断する。   The remodelability determination unit 240 verifies whether or not a function determined as a control function by the set logic of the function group and the processing group is registered in the remodeling prohibition function table 232 and, if registered, to the function. Judgment is impossible. If it is not registered, it is verified whether or not a function one level higher than the function is registered in the modification prohibition function table 232. In the same manner, the verification is advanced to the highest function, and if the upper function is registered in the modification prohibition function table 232, it is determined that the function cannot be modified.

例えば画面入力部210が読み込んだ関数がFunc1_1_1の場合、Func1_1及び最上位関数であるFunc1共に改造禁止関数テーブル232には登録されていないので、Func1_1_1の改造は可と判断される。一方、画面入力部210が読み込んだ関数がFunc3_1_1の場合、最上位関数であるFunc3が改造禁止関数テーブル232に登録されていることから、Func3_1_1は改造不可と判断される。以上述べた判断により画面入力部210が読み込んだ関数に対する改造可否の判断を終えると、改造可否判断部240はその結果を影響度計算部250に通知する。   For example, when the function read by the screen input unit 210 is Func1_1_1, Func1_1 and Func1 which is the highest function are not registered in the remodeling prohibition function table 232, and it is determined that Func1_1_1 can be remodeled. On the other hand, when the function read by the screen input unit 210 is Func3_1_1, Func3, which is the highest function, is registered in the remodeling prohibition function table 232, and it is determined that Func3_1_1 cannot be remodeled. When the determination of whether or not the function read by the screen input unit 210 has been modified is completed based on the determination described above, the modification determination unit 240 notifies the influence calculation unit 250 of the result.

影響度計算部250は、関数特性判断部230が処理非依存または共通関数と判断した場合、あるいは改造可否判断部240が関数の改造可と判断した場合、関数改造に伴うプログラムへの影響度Rを次式に従って計算する(ステップ406)。   When the function characteristic determination unit 230 determines that the function is independent of processing or a common function, or when the modification possibility determination unit 240 determines that the function can be modified, the influence degree calculation unit 250 determines the degree of influence R on the program associated with the function modification. Is calculated according to the following equation (step 406).

Figure 2011138247

ここでjは対象プログラムの中で改造対象となる全関数の数で、Nはi番目の関数直下で呼び出される全関数の数で、nはi番目の関数直下で呼び出される関数の中で改造対象となる関数の数である。αは重み係数で、0<α≦1の範囲で設定できる。
Figure 2011138247

Where j is the number of all the functions to be remodeled object in the target program, the number of all functions N i is called in the i-th function immediately below, n i is in a function to be called by the i-th function just below This is the number of functions to be modified. α is a weighting factor and can be set in the range of 0 <α ≦ 1.

式(1)は対象プログラムの関数毎に影響度(改造関数の数/呼び出される関数の数)の割合を算出し、改造対象となる全関数分の総積をとったもので、改造対象となる関数が下位階層であるほど影響度が小さくなるように導出されたものである。これは処理非依存関数>共通関数>制御関数の順番で階層が深くなりやすいためで、階層が浅い関数程影響度が高くなる傾向をもつ。また関数毎に重みを設定することで、関数毎の影響度に差を持たせることができる。これにより例えば制御関数の中で改造に対する影響が大きいと推測される関数とそうでない関数があった場合には、両関数の影響度に差を持たせる事が可能になる。影響度は開発者が開発工数を見積もるための一つの指標として利用されることから、影響度が明らかに小さいと分かっている関数に対しては予め該関数に対して重みを設定しておくとよい。これにより開発者は混乱することなく影響度に基づいて開発工数を見積もることができる。   Equation (1) calculates the ratio of the degree of influence (number of remodeling functions / number of functions to be called) for each function of the target program and takes the total product of all the functions to be remodeled. Is derived so that the lower the hierarchy is, the lower the influence is. This is because the hierarchy tends to become deeper in the order of processing-independent function> common function> control function, and the influence of the shallower function tends to increase. Also, by setting the weight for each function, it is possible to make a difference in the degree of influence for each function. As a result, for example, when there is a function that is assumed to have a great influence on the modification in the control function and a function that is not so, it is possible to make a difference in the degree of influence of both functions. Since the degree of influence is used as an index for developers to estimate the development man-hours, if a function for which the degree of influence is clearly known to be small is set in advance, Good. As a result, the developer can estimate the development man-hour based on the degree of influence without confusion.

例えばFunc1_1_1を改造する場合、モジュールテーブル221に登録されている関数の中で改造対象関数はFunc1とFunc1_1とFunc7_1とFunc7とメイン関数であり、j=5となる。またα=1、メイン直下の関数の数N=5、Func1直下の関数の数N=2、Func1_1直下の関数の数N=1、Func7直下の関数の数N=1、Func7_1直下の関数の数N=1だったとすると影響度は10%と計算される。影響度計算部250は画面入力部210が読み込んだ各関数に対して影響度を計算すると、次に画面入力部210が読み込んだ全関数の内、改造可と判断された関数全てを改造した場合の全体の影響度について式(1)を用いて計算し(ステップ407)、計算結果と、関数特性判断部230および改造可否判断部240の判断結果とを画面出力部260に通知する。 For example, when remodeling Func1_1_1, among the functions registered in the module table 221, the remodeling target functions are Func1, Func1_1, Func7_1, Func7, and the main function, and j = 5. Also, α = 1, the number of functions immediately below the main N 1 = 5, the number of functions immediately below Func 1 N 2 = 2, the number of functions immediately below Func 1_1 N 3 = 1, the number of functions directly below Func 7 N 4 = 1, Func 7_1 If the number of functions immediately below N 5 = 1, the influence is calculated as 10%. When the influence degree calculation unit 250 calculates the influence degree for each function read by the screen input unit 210, the function that is determined to be remodelable among all the functions read by the screen input unit 210 next time. Is calculated using the equation (1) (step 407), and the calculation result and the determination results of the function characteristic determination unit 230 and the modification possibility determination unit 240 are notified to the screen output unit 260.

画面出力部260は影響度計算部250からの通知を受け付けると、関数特性判断部230および改造可否判断部240の判断結果に応じてメッセージを出力する。また影響度と影響範囲を出力窓に表示する(ステップ408)。   When the screen output unit 260 receives a notification from the influence degree calculation unit 250, the screen output unit 260 outputs a message according to the determination results of the function characteristic determination unit 230 and the modification possibility determination unit 240. Further, the influence degree and the influence range are displayed on the output window (step 408).

例えば、処理非依存の関数であれば「進路制御処理への直接的な影響はありませんが、改造する関数の入出力テストは網羅的に実施してください」などのメッセージを表示する。また例えば共通関数であれば「進路制御処理への影響はありますが、改造する関数の入出力テストを網羅的に実施しておけば問題はありません」などのメッセージを表示する。また例えば処理依存の制御関数であれば「入場制御処理の改造です。入場制御の組み合わせテストは網羅的に実施してください」などのメッセージを表示する。尚、制御関数の場合は、メッセージ文中に影響範囲の処理名を明示することが望ましい。処理名の特定には関数特性判断部230が集合論理で使用した処理グループの識別情報を用いればよい。   For example, if it is a process-independent function, a message such as “There is no direct influence on the course control process, but please perform the input / output test of the function to be modified comprehensively” is displayed. For example, if it is a common function, a message such as “There is an effect on the course control processing, but if the input / output test of the function to be modified is exhaustively performed, there is no problem” is displayed. For example, if it is a process-dependent control function, a message such as “It is a modification of admission control processing. Please perform the admission control combination test comprehensively” is displayed. In the case of a control function, it is desirable to specify the process name of the affected range in the message text. The identification of the processing group used by the function characteristic determination unit 230 in the collective logic may be used to specify the processing name.

以上のように本実施形態によれば、関数改造に伴う影響度ならびに影響範囲を見直し対象関数の特性に応じてメッセージを付して開発者に提示できるため、開発者は提示内容に基づいて見直し対象関数の選択やテスト方案の作成を行うことができる。例えば改造リスクが非常に高い機能モジュールに含まれる処理依存の関数であれば、今回は改造しないで既存ソースコードのままで動作させると言った判断を容易に行うことができる。また例えば改造に伴い影響範囲がプログラム全体に及ぶような場合であっても、改造対象関数が処理非依存の共通関数であれば該関数の入出力を網羅的にテストすることで既存プログラムへの悪影響を防止できると言った判断も容易に行うことができる。   As described above, according to this embodiment, the degree of influence and the scope of influence associated with function modification can be reviewed and a message can be presented to the developer according to the characteristics of the target function. You can select target functions and create test plans. For example, in the case of a process-dependent function included in a functional module with a very high risk of modification, it is possible to easily make a judgment that the existing source code is operated without modification this time. In addition, for example, even if the affected range extends to the entire program as a result of modification, if the modification target function is a processing-independent common function, the input / output of the function can be comprehensively tested to It can be easily determined that adverse effects can be prevented.

また関数改造に伴う既存プログラムへの影響範囲を関数構造またはデータフロー図で表示することで把握できるため、開発やテストの規模を把握し開発工数を容易に見積もることが可能になる。こうした開発を段階的に行うことにより、現行信頼性を担保しつつブラックボックス化されたソースコードを見通しのよいソースコードへと移行することが可能になる。   In addition, since the range of influence on the existing program due to function modification can be grasped by displaying it in the function structure or data flow diagram, it is possible to grasp the scale of development and testing and easily estimate the development man-hours. By carrying out such development step by step, it becomes possible to transfer the source code that has been black-boxed into source code with good prospects while ensuring the current reliability.

なお、本発明は記載した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。   It should be noted that the present invention is not limited to the described embodiment, and can be modified as appropriate without departing from the spirit of the present invention.

100…影響範囲検証装置、210…画面入力部、220…関連モジュール抽出部、221…モジュールテーブル、230…関数特性判断部、231…グループテーブル、232…改造禁止関数テーブル、240…改造可否判断部、250…影響度計算部、260…画面出力部   DESCRIPTION OF SYMBOLS 100 ... Influence range verification apparatus 210 ... Screen input part 220 ... Related module extraction part 221 ... Module table 230 ... Function characteristic judgment part 231 ... Group table 232 ... Remodeling prohibition function table 240 ... Remodeling possibility judgment part , 250 ... Influence degree calculation part, 260 ... Screen output part

Claims (9)

検証装置が、プログラムに含まれるソースコードの前記プログラムへの影響を検証するプログラム影響範囲検証方法であって、
前記検証装置は、モジュール抽出部と、ソースコード特性判断部と、出力部とを備え、
前記モジュール抽出部により、前記ソースコードが含まれるモジュールを前記プログラムより抽出し、第1のグループとする第1のステップと、
前記モジュール抽出部により、前記ソースコードが含まれるモジュールと同種の処理を実行するためのモジュールを、前記プログラムより抽出し、第2のグループとする第2のステップと、
前記ソースコード特性判断部により、前記第1のグループと前記第2のグループとを比較し、前記比較結果に基づいて、前記ソースコードが実行に用いられる処理の特性を判断する第3のステップと、
前記出力部により、前記判断結果を表示装置に出力する第4のステップとを
備えることを特徴とするプログラム影響範囲検証方法。
A verification apparatus is a program influence range verification method for verifying the influence of a source code included in a program on the program,
The verification device includes a module extraction unit, a source code characteristic determination unit, and an output unit,
A first step of extracting, from the program, a module including the source code by the module extraction unit to form a first group;
A second step of extracting, from the program, a module for executing the same type of processing as the module including the source code by the module extracting unit;
A third step of comparing the first group and the second group by the source code characteristic determination unit, and determining a characteristic of a process used for execution of the source code based on the comparison result; ,
A program influence range verification method comprising: a fourth step of outputting the determination result to a display device by the output unit.
請求項1に記載のプログラム影響範囲検証方法であって、
前記比較結果に基づいて、前記ソースコード特性判断部により、前記ソースコードが、前記プログラムに含まれる他のソースコードとの連動検証が必要なコードであるか否かを判断することを特徴とするプログラム影響範囲検証方法。
The program influence range verification method according to claim 1,
Based on the comparison result, the source code characteristic determination unit determines whether the source code is a code that needs to be linked with other source codes included in the program. Program impact assessment method.
請求項1または請求項2に記載のプログラム影響範囲検証方法であって、
前記比較の結果、前記第2のグループを構成するモジュールの全てが、前記第1のグループに含まれ、かつ前記第1のグループと前記第2のグループの構成が異なる場合は、前記ソースコード特性判断部により、前記ソードコードが複数の処理の実行のために共通して用いられるコードであると判断することを特徴とするプログラム影響範囲検証方法。
The program influence range verification method according to claim 1 or 2,
As a result of the comparison, if all of the modules constituting the second group are included in the first group and the first group and the second group have different configurations, the source code characteristics A program influence range verification method, characterized in that a determination unit determines that the sword code is a code that is commonly used to execute a plurality of processes.
請求項1ないし請求項3のいずれか1つに記載のプログラム影響範囲検証方法であって、
前記比較の結果、前記第1のグループを構成するモジュールの一部が、前記第2のグループに含まれ、かつ前記第1のグループと前記第2のグループの構成が異なる場合は、前記ソースコード特性判断部により、前記ソードコードが複数の処理の実行のために共通して用いられるコードであると判断することを特徴とするプログラム影響範囲検証方法。
A program influence range verification method according to any one of claims 1 to 3,
If, as a result of the comparison, a part of the modules constituting the first group is included in the second group and the configurations of the first group and the second group are different, the source code A program influence range verification method, wherein a characteristic determination unit determines that the sword code is a code used in common for execution of a plurality of processes.
請求項1ないし請求項4のいずれか1つに記載のプログラム影響範囲検証方法であって、
前記比較の結果、前記第1のグループを構成するモジュールが、前記第2のグループに全て含まれる場合は、前記ソースコード特性判断部により、前記ソードコードが特定の処理の実行に用いられるコードであると判断することを特徴とするプログラム影響範囲検証方法。
A program influence range verification method according to any one of claims 1 to 4, comprising:
As a result of the comparison, when all the modules constituting the first group are included in the second group, the source code characteristic determination unit determines that the sword code is a code used to execute a specific process. A program influence range verification method characterized by determining that there is.
請求項1ないし請求項5のいずれか1つに記載のプログラム影響範囲検証方法であって、
前記検証装置は、さらに、影響度計算部を備え、
前記影響度計算部により、前記ソースコードの前記プログラムへの影響度を、前記前記ソースコードの前記プログラムにおける階層に基づいて計算する第5のステップを備え、
前記第4のステップにおいて、前記出力部により、さらに前記影響度を前記表示装置に出力することを特徴とするプログラム影響範囲検証方法。
A program influence range verification method according to any one of claims 1 to 5, comprising:
The verification device further includes an influence calculation unit,
A fifth step of calculating an influence degree of the source code on the program based on a hierarchy of the source code in the program by the influence degree calculation unit;
In the fourth step, the influence range is further output to the display device by the output unit.
請求項1ないし請求項6のいずれか1つに記載のプログラム影響範囲検証方法であって、
前記検証装置は、さらに、改造可否判断部を備え、
前記改造可否判断部により、前記ソースコードが、改造禁止であると予め定められたコードであるか否かを判断する第6のステップを備え、
前記第4のステップにおいて、前記出力部により、前記改造可否判断部による判断結果を前記表示装置に出力することを特徴とするプログラム影響範囲検証方法。
A program influence range verification method according to any one of claims 1 to 6, comprising:
The verification device further includes a modification possibility determination unit,
A sixth step of determining whether or not the source code is a code that is predetermined to be prohibited from being modified by the modification possibility determination unit;
In the fourth step, the program influence range verification method, wherein the output unit outputs the determination result by the remodelability determination unit to the display device.
請求項1ないし請求項7のいずれか1つに記載のプログラム影響範囲検証方法であって、
前記プログラムは、鉄道運行管理システムを実行するプログラムであり、
前記ソースコード特性判断部により、前記比較結果に基づいて、前記ソースコードが特定の列車進路制御処理に用いられるコードであるか否かを判断することを特徴とするプログラム影響範囲検証方法。
A program influence range verification method according to any one of claims 1 to 7,
The program is a program for executing a railway operation management system,
A program influence range verification method, wherein the source code characteristic determination unit determines whether or not the source code is a code used for a specific train route control process based on the comparison result.
プログラムに含まれるソースコードの前記プログラムへの影響を検証するプログラム影響範囲検証装置であって、
モジュール抽出部と、ソースコード特性判断部と、出力部とを備え、
前記モジュール抽出部が、
前記ソースコードが含まれるモジュールを前記プログラムより抽出し、第1のグループとし、
前記ソースコードが含まれるモジュールと同種の処理を実行するためのモジュールを、前記プログラムより抽出し、第2のグループとし、
前記ソースコード特性判断部が、前記第1のグループと前記第2のグループとを比較し、前記比較結果に基づいて前記ソースコードが実行に用いられる処理の特性を判断し、
前記出力部が、前記判断結果を表示装置に出力することを特徴とするプログラム影響範囲検証装置。
A program influence range verification device for verifying the influence of a source code included in a program on the program,
A module extraction unit, a source code characteristic determination unit, and an output unit;
The module extractor is
Extracting the module including the source code from the program as a first group,
A module for executing the same type of processing as the module including the source code is extracted from the program, and is set as a second group.
The source code characteristic determining unit compares the first group and the second group, and determines a characteristic of a process used for execution of the source code based on the comparison result;
The program influence range verification device, wherein the output unit outputs the determination result to a display device.
JP2009296684A 2009-12-28 2009-12-28 Program influence range verification method and device Pending JP2011138247A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009296684A JP2011138247A (en) 2009-12-28 2009-12-28 Program influence range verification method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009296684A JP2011138247A (en) 2009-12-28 2009-12-28 Program influence range verification method and device

Publications (1)

Publication Number Publication Date
JP2011138247A true JP2011138247A (en) 2011-07-14

Family

ID=44349640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009296684A Pending JP2011138247A (en) 2009-12-28 2009-12-28 Program influence range verification method and device

Country Status (1)

Country Link
JP (1) JP2011138247A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012036304A1 (en) * 2010-09-16 2012-03-22 日本電気株式会社 Operation verification support device, operation verification support method, and operation verification support program
JP2013156802A (en) * 2012-01-30 2013-08-15 Mitsubishi Electric Corp Module dependency extraction device, module dependency extraction method and program
JP2019028690A (en) * 2017-07-28 2019-02-21 日本電信電話株式会社 Layer optimization device, layer optimization method, and layer optimization program
JP2019152947A (en) * 2018-03-01 2019-09-12 日本電気株式会社 System management device, system management method, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012036304A1 (en) * 2010-09-16 2012-03-22 日本電気株式会社 Operation verification support device, operation verification support method, and operation verification support program
JP2013156802A (en) * 2012-01-30 2013-08-15 Mitsubishi Electric Corp Module dependency extraction device, module dependency extraction method and program
JP2019028690A (en) * 2017-07-28 2019-02-21 日本電信電話株式会社 Layer optimization device, layer optimization method, and layer optimization program
JP2019152947A (en) * 2018-03-01 2019-09-12 日本電気株式会社 System management device, system management method, and program
JP7102783B2 (en) 2018-03-01 2022-07-20 日本電気株式会社 System management equipment, system management methods, and programs

Similar Documents

Publication Publication Date Title
Yan et al. The current status of accessibility in mobile apps
Hall et al. A systematic literature review on fault prediction performance in software engineering
US20210279577A1 (en) Testing of Computing Processes Using Artificial Intelligence
US9710257B2 (en) System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
Besker et al. A systematic literature review and a unified model of ATD
US20160292069A1 (en) Utilizing semantic clusters to Predict Software defects
Gario et al. Model checking at scale: Automated air traffic control design space exploration
CN101908020A (en) Method for prioritizing test cases based on classified excavation and version change
Lagerström et al. Exploring the relationship between architecture coupling and software vulnerabilities
CN104699735A (en) Data processing method and device for enterprise data center
An et al. An empirical study of crash-inducing commits in Mozilla Firefox
US11176019B2 (en) Automated breakpoint creation
JP2011138247A (en) Program influence range verification method and device
CN111582645B (en) APP risk assessment method and device based on factoring machine and electronic equipment
Vargas et al. Enabling real-time feedback in software engineering
CN112948275A (en) Test data generation method, device, equipment and storage medium
Mendling Managing structural and textual quality of business process models
Zhao et al. Suzzer: A vulnerability-guided fuzzer based on deep learning
JPWO2014188638A1 (en) Shared risk group management system, shared risk group management method, and shared risk group management program
JP2014164677A (en) Specification verification support device, specification verification support method and program
CN111582649A (en) Risk assessment method and device based on user APP unique hot coding and electronic equipment
Guo et al. Pre-silicon bug forecast
Haghighatkhah Test case prioritization using build history and test distances: an approach for improving automotive regression testing in continuous integration environments
Godara et al. A review of studies on change proneness prediction in object oriented software
Nöhrer et al. Positive effects of utilizing relationships between inconsistencies for more effective inconsistency resolution (NIER track)