JP6076660B2 - Program structure evaluation system, program - Google Patents

Program structure evaluation system, program Download PDF

Info

Publication number
JP6076660B2
JP6076660B2 JP2012205081A JP2012205081A JP6076660B2 JP 6076660 B2 JP6076660 B2 JP 6076660B2 JP 2012205081 A JP2012205081 A JP 2012205081A JP 2012205081 A JP2012205081 A JP 2012205081A JP 6076660 B2 JP6076660 B2 JP 6076660B2
Authority
JP
Japan
Prior art keywords
function
violation
program
access
hierarchy
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.)
Expired - Fee Related
Application number
JP2012205081A
Other languages
Japanese (ja)
Other versions
JP2014059775A (en
Inventor
鈴木 哲雄
哲雄 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Fuji Electric FA Components and Systems Co Ltd
Original Assignee
Fuji Electric Co Ltd
Fuji Electric FA Components and Systems Co 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 Fuji Electric Co Ltd, Fuji Electric FA Components and Systems Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2012205081A priority Critical patent/JP6076660B2/en
Publication of JP2014059775A publication Critical patent/JP2014059775A/en
Application granted granted Critical
Publication of JP6076660B2 publication Critical patent/JP6076660B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、プログラム構造を解析・評価する装置などに関する。   The present invention relates to an apparatus for analyzing and evaluating a program structure.

ソフトウェアの開発では、まず最初にソフトウェア全体の構造を決め、この構造に従ってプログラムの実装を行っている。
新規開発では、ソフトウェア構造に従って作成したものが作られるが、担当者によっては構造を無視して安直に他の機能の変数を書き換えたりすることがある。また、仕様書どおりの構造で作成されたプログラムが、派生開発や障害発生時の緊急対応などにより、担当者が全体構造を理解しないままその場しのぎでプログラムを修正し、その変更内容のレビューすることもなくソフトウェアを提供してしまうことがある。その結果、いわゆるスパゲッティプログラムとなることで、修正の影響範囲が分からなくなり、想定外機能の不具合が発生し、品質保証のための作業工数の増大が発生する。最悪の場合は、顧客の信用を失墜し大きな損害を与えることがある。
In software development, the structure of the entire software is first determined, and the program is implemented according to this structure.
In the new development, what is created according to the software structure is created, but depending on the person in charge, the structure may be ignored and the variables of other functions may be rewritten safely. In addition, a program created with a structure that conforms to the specifications will be revised on an ad hoc basis without any understanding of the overall structure by derivation development or emergency response in the event of a failure, and the changes will be reviewed. You may end up offering the software without any trouble. As a result, the so-called spaghetti program makes it impossible to know the scope of the effect of the modification, causes a malfunction of an unexpected function, and increases the number of work steps for quality assurance. In the worst case, the customer's credit may be lost and the damage may be caused.

本来は、全体構造を理解した上で修正し、全体構造を理解したレビューアによるレビューが望ましいことは分かっているが、実際には、以下の原因により実施されないことも多い
・開発メンバーの入替りで、全体構造(初期の設計思想)を十分理解できていない
・短納期により、有識者によるレビューをしていない
・レビューアが忙しく、レビューができない
ここで、プログラムを解析管理または点数評価する技術として、例えば特許文献1、2に記載の従来技術が知られている。
Originally, it is known that a review by a reviewer who understands the overall structure and corrects it is desirable, but in practice, it is often not implemented due to the following reasons. However, the overall structure (the initial design concept) is not fully understood.-Due to quick delivery, the review is not conducted by experts.-The reviewer is too busy to review. This is a technique for analyzing and managing programs or evaluating scores. For example, conventional techniques described in Patent Documents 1 and 2 are known.

特許文献1の従来技術は、プログラム中における共通構造を解析することにより、共通部分を明示したプログラム構造図の生成や、プログラム構造における共通部分の再利用化を容易なものとする。   The prior art of Patent Document 1 makes it easy to generate a program structure diagram that clearly shows a common part and to reuse the common part in the program structure by analyzing the common structure in the program.

また、特許文献2の従来技術は、各評価指標を点数評価することにより品質向上が必要とされる順に優先度付けし、精度が高く効率的な品質評価と、効率的且つ効果的な品質向上作業を図ることができる。上記点数評価は、チェックリスト件数密度、不良件数密度、カバレージ率、規模、難易度、不良の重要度や不良分析コード等の各々の評価項目単位に、評価点数算出基準に従い評価点数を算出するものである。   The prior art of Patent Document 2 prioritizes each evaluation index in the order in which quality improvement is required, and provides accurate and efficient quality evaluation and efficient and effective quality improvement. Work can be planned. The above score evaluation is to calculate the evaluation score according to the evaluation score calculation standard for each evaluation item unit such as checklist number density, defect number density, coverage rate, scale, difficulty, defect importance and defect analysis code. It is.

特開2007−115155号公報JP 2007-115155 A 特開2000−56961号公報JP 2000-56961 A

ここで、従来より、プログラム自体を品質特性に従って点数化するツールは存在する(例えばオージス総研の「Adqua(アドクア;登録商標)」や、東陽テクニカ等の「eXquto(登録商標)」等)。例えばAdqua(アドクア)は、組込みソフトウェアの品質を定量的に評価できるツールである。具体的には、ソフトウェアを「信頼性」「効率性」「保守性」「移植性」「再利用性」の5つの品質特性の観点で得点化する。   Here, conventionally, there are tools for scoring the program itself according to quality characteristics (for example, “Adqua (registered trademark)” of OGIS Research Institute, “eXquot (registered trademark)” of Toyo Technica, etc.). For example, Adqua is a tool that can quantitatively evaluate the quality of embedded software. Specifically, the software is scored in terms of five quality characteristics: “reliability”, “efficiency”, “maintainability”, “portability”, and “reusability”.

ここで、上記ソフトウェア構造の規定として、例えば、複数の機能より成るソフトウェアにおける機能間のアクセス(呼び出し等)に係る制限事項が設けられたものがある。これは、例えば関数間のアクセスに係る制限や、関数から変数へのアクセスに係る制限等である。あるいは、上記複数の機能が階層構造になっている場合には、この様な階層に係る制限事項も含まれる。   Here, as a definition of the software structure, there is, for example, a restriction item related to access (calling or the like) between functions in software including a plurality of functions. This is, for example, restrictions on access between functions, restrictions on access from function to variables, and the like. Alternatively, when the plurality of functions have a hierarchical structure, restrictions related to such a hierarchy are also included.

この様な意味でのソフトウェア構造の規定(制限)に従ってプログラムが作成する場合も、当然、何らかの理由で違反が生じることは有り得る。違反件数の多さは、品質に影響する。また、過去に作成されたプログラムを改造する場合には、少なくとも品質を落とさないようにすることが望まれる。   Even when a program is created in accordance with the definition (limitation) of the software structure in this sense, it is natural that a violation may occur for some reason. The number of violations affects quality. Moreover, when remodeling a program created in the past, it is desired to at least not deteriorate the quality.

例えば、オブジェクト指向プログラムの場合、クラス図などを作成して、これに従ってプログラム作成や継承等を行うが、古いソフトウェア等はこの様なモデル化設計思想ではなく旧来の構造化設計思想に基づいて作成されており、また、この様な古いソフトウェア(レガシー資産)を再利用するために改造を行い新規ソフトウェアとして作成する場合もある。この様な過去の古いソフトウェアに対して上記ソフトウェア構造に従った評価を行うと、違反件数が多数となる場合が少なくない。そして、この様な過去の古いソフトウェアから改造版等を作成する場合、違反であることが分かっていても修正することが困難な場合が少なくなく、現状維持(それ以上違反を増やさない)が出来ればよいとする場合がある。   For example, in the case of an object-oriented program, a class diagram is created and the program is created and inherited accordingly, but old software is created based on the traditional structured design concept instead of such a modeled design concept. Moreover, in order to reuse such old software (legacy assets), there are cases where it is created as new software by remodeling. When such old software is evaluated according to the above software structure, the number of violations often becomes large. And when creating a modified version from such old software, there are many cases where it is difficult to correct even if it is known that it is a violation, and it is possible to maintain the current status (no more violations). There is a case where it is good.

以上のことから、上述した意味でのソフトウェア構造に従ったプログラム作成が行われているか否か(例えば、最低限、現状維持できているか等)の判断を、プログラム全文をチェックして評価するような手間が掛かる作業を行う必要なく、行えるようにすることが望まれる。これは、例えば、上記違反に関して点数化を行うことで、客観的且つ的確な判断が行えるようにすることが望まれる。   Based on the above, it is assumed that the judgment of whether or not a program is created in accordance with the software structure in the above-described sense (for example, whether or not the current status can be maintained at least) is evaluated by checking the entire program text. It would be desirable to be able to do this without the need for laborious work. For example, it is desired that an objective and accurate determination can be made by scoring the violations.

一方、上述したAdqua等の既存ツールや、特許文献1,2の従来技術では、上述した意味でのソフトウェア構造の規定、すなわち上記複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限事項や階層に係る制限事項に関して、点数化して評価することは何等考えられていない。   On the other hand, in the existing tools such as the above-mentioned Adqua and the prior arts of Patent Documents 1 and 2, the definition of the software structure in the above-described meaning, that is, restrictions and hierarchies related to access between functions in the software composed of the plurality of functions. It is not considered to evaluate the restrictions related to the above by scoring.

また、上述した違反に関する点数化やソフトウェア評価の為の必要となるユーザの手間は、出来るだけ軽減されるようにすることが望まれる。あるいは、上述したレガシー資産を再利用して新規ソフトウェア作成を行った場合や、ソフトウェアのバージョンアップを行った場合に、違反の増減などを的確に(見逃すことなく)行えるようにすること等も望まれる。   In addition, it is desired that the user's effort required for scoring and software evaluation regarding violations described above should be reduced as much as possible. Or, when new software is created by reusing legacy assets mentioned above, or when software is upgraded, it is desirable to be able to accurately increase and decrease violations (without overlooking). It is.

本発明の課題は、複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限があるソフトウェア構造設計に従ったプログラム作成が行われたか否かについて、プログラムを解析・点数化することで容易に評価可能とし、更に、その為のユーザの手間を軽減でき、あるいは新規に発生したアクセス違反を見過ごすことが無くなるプログラム構造評価システム等を提供することである。   It is an object of the present invention to easily evaluate whether or not a program has been created in accordance with a software structure design that has restrictions on access between functions in software composed of a plurality of functions by analyzing and scoring the program. Further, it is possible to provide a program structure evaluation system or the like that can reduce the labor of the user for that purpose, or eliminates oversight of a newly generated access violation.

本発明のプログラム構造評価システムは、任意のソフトウェアについて所定の評価を行うためのコンピュータシステムにおいて、複数の機能より成るソフトウェアの機能間のアクセスに係る制限に従って、呼び出し元となる機能と呼び出し先となる機能の関数種別/変数種別との組み合わせである機能ペア毎に、違反の有無、または/及び、違反許容数が格納された違反有無情報を記憶する違反有無情報記憶手段と、評価対象のソフトウェアのプログラムソース文を順次参照して、任意の機能から他の機能の任意の関数/変数を呼び出す処理を検出する毎に、該呼び出し先の関数/変数の関数種別/変数種別を判別して、さらに前記違反有無情報を参照して、該呼び出しが違反か否かを判定する違反判定手段と、前記違反判定手段による判定結果に基づいて、前記各機能毎または/及び前記評価対象のソフトウェア全体の違反件数を集計する集計手段と、該集計手段による違反件数の集計結果に基づいて、前記評価対象のソフトウェア全体または/及びその各機能毎の評価点数を算出する評価点数算出手段と、予め、前記評価対象のソフトウェアに基づいて、前記違反有無情報を生成して前記違反有無情報記憶手段に記憶させる違反有無情報生成手段とを有する。   The program structure evaluation system according to the present invention is a function that becomes a call source and a call destination in accordance with restrictions on access between functions of software composed of a plurality of functions in a computer system for performing predetermined evaluation for arbitrary software. For each function pair that is a combination of a function type / variable type of a function, a violation presence / absence information storage means for storing violation presence / absence information in which violation presence / absence and the allowable number of violations are stored; Each time a process for calling an arbitrary function / variable of another function from an arbitrary function is detected by sequentially referring to a program source statement, the function type / variable type of the called function / variable is determined. Violation determination means for determining whether or not the call is a violation with reference to the violation presence / absence information, and determination by the violation determination means A totaling means for counting the number of violations of each function or / and the entire software to be evaluated based on the results, and the total software to be evaluated or / and / or based on the total number of violations by the counting means An evaluation score calculating means for calculating an evaluation score for each function; and a violation presence / absence information generating means for generating the violation presence / absence information and storing the violation presence / absence information storage means in advance based on the software to be evaluated; Have

本発明のプログラム構造評価システム等によれば、複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限があるソフトウェア構造設計に従ったプログラム作成が行われたか否かについて、プログラムを解析・点数化することで容易に評価可能とし、更に、そのためのユーザの手間を軽減でき、あるいは新規に発生したアクセス違反を見過ごすことが無くなる。   According to the program structure evaluation system and the like of the present invention, the program is analyzed and scored as to whether or not the program has been created in accordance with the software structure design with restrictions on access between functions in the software composed of a plurality of functions. By doing so, it is possible to easily evaluate, and further, it is possible to reduce the trouble of the user for that purpose, or it is possible to avoid overlooking a newly generated access violation.

本例のプログラム評価システム全体の構成図である。It is a block diagram of the whole program evaluation system of this example. ソフトウェア構造(階層と機能)の一例を示す図である。It is a figure which shows an example of a software structure (a hierarchy and a function). 階層定義テーブルのフォーマット例である。It is an example of a format of a hierarchy definition table. 階層定義テーブル(登録)の具体例である。It is a specific example of a hierarchy definition table (registration). アクセス違反例外登録ファイル(登録)の具体例である。It is a specific example of an access violation exception registration file (registration). (a)はアクセス違反計数ファイル、(b)は集計結果の具体例である。(A) is an access violation count file, and (b) is a specific example of the total result. (a)、(b)は、動作情報定義テーブルに設定される情報の一例である。(A), (b) is an example of information set in the operation information definition table. (a)は重み付け後の集計結果、(b)はアクセス違反点数化ファイルの具体例である。(A) is a totaling result after weighting, and (b) is a specific example of an access violation score file. 偏差値算出処理の具体例を示す図である。It is a figure which shows the specific example of a deviation value calculation process. 階層定義テーブルとアクセス違反例外登録ファイルの半自動作成に係る処理・作業の流れを示す図である。It is a figure which shows the flow of a process and work concerning semi-automatic creation of a hierarchy definition table and an access violation exception registration file. プログラムソースの具体例である。It is a specific example of a program source. 「階層登録&入力チェック」の設定手順の具体例である。It is a specific example of a setting procedure of “hierarchy registration & input check”. “アクセス違反例外の許可登録”の設定手順の具体例である。It is a specific example of a setting procedure of “access violation exception permission registration”. アクセス違反判別に係る作業・処理の流れを示す。The flow of work and processing related to access violation discrimination is shown. サーバメイン処理部のフローチャート図である。It is a flowchart figure of a server main process part. 定義アクセスタスク部の処理フローチャート図である。It is a process flowchart figure of a definition access task part. 定義生成タスク部の処理フローチャート図である。It is a process flowchart figure of a definition production | generation task part. (a)は“プログラム解析処理”のフローチャート図、(b)はそのステップS61の詳細フローチャート図である。(A) is a flowchart of “program analysis processing”, and (b) is a detailed flowchart of step S61. 階層登録チェック処理のフローチャート図である。It is a flowchart figure of a hierarchy registration check process. 階層違反例外検出処理のフローチャート図である。It is a flowchart figure of a hierarchy violation exception detection process. “アクセス違反例外登録ファイル作成処理”のフローチャート図であるIt is a flowchart figure of "access violation exception registration file creation processing" “階層定義テーブル比較処理” のフローチャート図である。FIG. 11 is a flowchart of “hierarchy definition table comparison process”. “アクセス例外許可ファイル比較処理”のフローチャート図である。It is a flowchart figure of "access exception permission file comparison process". 点数化タスク部12の処理フローチャート図である。FIG. 6 is a processing flowchart of the scoring task unit 12. ルールに基づくプログラム例である。It is an example of a program based on rules.

以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラム構造評価システム全体の構成図であって、特に管理サーバの機能構成を示す図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a configuration diagram of the entire program structure evaluation system of the present example, and particularly shows a functional configuration of the management server.

図示のプログラム構造評価システムは、作業者が操作するための操作端末1と、任意のプログラムに関するソフトウェア構造に係る評価(点数化等)を実行する管理サーバ10とが、ネットワーク2に接続された構成となっている。ネットワーク2は、例えばLANやインターネット等の一般的なネットワークであってよい。ネットワーク2を介して、操作端末1と管理サーバ10間でデータ/コマンド等を送受信する。   The illustrated program structure evaluation system has a configuration in which an operation terminal 1 for an operator to operate and a management server 10 that executes evaluation (scoring etc.) related to a software structure related to an arbitrary program are connected to a network 2. It has become. The network 2 may be a general network such as a LAN or the Internet. Data / commands and the like are transmitted and received between the operation terminal 1 and the management server 10 via the network 2.

但し、この例に限らない。例えば管理サーバ10単体でプログラム構造評価システムを構成するものであってもよい。勿論、この場合、操作端末1の機能も管理サーバ10が有することになる。例えば、後述する各種要求は、例えば管理サーバ10のキーボード等を開発者等が操作して所望の指示を行うことで、管理サーバ10自身がサーバメイン処理部11に対してこの指示に応じた要求を発行することになる。   However, the present invention is not limited to this example. For example, the management server 10 alone may constitute a program structure evaluation system. Of course, in this case, the management server 10 also has the function of the operation terminal 1. For example, various requests to be described later are requests that the management server 10 itself responds to this instruction to the server main processing unit 11 by a developer or the like operating the keyboard or the like of the management server 10 to give a desired instruction. Will be issued.

操作端末1は、例えば一般的なパソコン等であって、特に図示しないが作業者(ユーザ)に任意のコマンド・ボタンを選択・指定させる為の画面等を表示する機能や、ユーザが選択・指定したコマンド・ボタンに応じた要求(コマンド)を、ネットワーク2を介して管理サーバ10へと送信する機能等を有する。   The operation terminal 1 is, for example, a general personal computer or the like. Although not shown in particular, the operation terminal 1 has a function for displaying a screen for allowing an operator (user) to select and specify an arbitrary command / button, or a user selects / specifies And a function for transmitting a request (command) corresponding to the command button to the management server 10 via the network 2.

上記要求の種類としては、たとえば後述する“点数化要求”や“定義設定要求”や“定義生成要求”等がある。
管理サーバ10は、サーバメイン処理部11、点数化タスク部12、定義アクセスタスク部13、定義生成タスク部14の各種機能部を有する。これら各種機能部の処理機能は、不図示のCPU等が、不図示の記憶装置(ハードディスク、メモリ等)に予め記憶されている所定のアプリケーションプログラムを読出し・実行することにより実現される。これら各種機能部や上記各種要求に応じた処理については、後に各種フローチャート図等を参照して説明するものとする。
Examples of the type of request include “scoring request”, “definition setting request”, and “definition generation request” described later.
The management server 10 includes various functional units such as a server main processing unit 11, a scoring task unit 12, a definition access task unit 13, and a definition generation task unit 14. The processing functions of these various functional units are realized by a CPU (not shown) reading and executing a predetermined application program stored in advance in a storage device (hard disk, memory, etc.) not shown. The various functional units and the processes corresponding to the various requests will be described later with reference to various flowcharts and the like.

また、管理サーバ10は、上記記憶装置等に、偏差値計数ファイル15を記憶・保持している。
また、管理サーバ10は、上記記憶装置等に、各製品(ソフトウェア)毎に対応する各種情報/プログラムを記憶する(尚、この記憶には、一時的に生成される情報等の記憶も含まれる)。
Further, the management server 10 stores and holds the deviation value counting file 15 in the storage device or the like.
In addition, the management server 10 stores various information / programs corresponding to each product (software) in the storage device or the like (this storage includes storage of temporarily generated information and the like). ).

すなわち、図示の例では製品Aと製品Bのそれぞれについて、階層定義テーブル(作成中)21、階層定義テーブル(登録)22、動作情報定義テーブル23、アクセス違反計数ファイル24、アクセス違反点数化ファイル25、アクセス違反例外登録ファイル(作成中)26、アクセス違反例外登録ファイル(登録)27の各種テーブルと、プログラムソース28等を記憶する。プログラムソース28は、例えば製品Aを構成する複数のプログラムファイルから構成される。   That is, in the example shown in the figure, for each of product A and product B, a hierarchy definition table (under construction) 21, a hierarchy definition table (registration) 22, an operation information definition table 23, an access violation count file 24, and an access violation score file 25 Various tables of the access violation exception registration file (during creation) 26, the access violation exception registration file (registration) 27, the program source 28, and the like are stored. The program source 28 is composed of a plurality of program files constituting the product A, for example.

尚、図では製品Aについての各種情報/プログラムのみ示すが、製品Bについても略同様に、その製品に対応する各種情報/プログラムが記憶される。
サーバメイン処理部11は、操作端末1からの何らかの要求を受け付けて、この要求に応じて点数化タスク部12、定義アクセスタスク部13、定義生成タスク部14の何れかを呼び出して処理実行させる。但し、以下の説明では、サーバメイン処理部11については逐一述べずに、省略する場合もあるものとする。
In the figure, only various information / programs for the product A are shown, but for the product B, various information / programs corresponding to the product are stored in a similar manner.
The server main processing unit 11 accepts any request from the operation terminal 1 and calls any one of the scoring task unit 12, the definition access task unit 13, and the definition generation task unit 14 in accordance with this request to execute the process. However, in the following description, it is assumed that the server main processing unit 11 may be omitted without being described one by one.

点数化タスク部12は、操作端末1からの要求が任意の製品のプログラムソース28に関する評価(点数化等)であった場合に、サーバメイン処理部11から呼び出されて、当該プログラムソース28の評価(点数化等)を行い、場合によっては更に偏差値等を作成する。尚、点数化タスク部12の上記点数化等の処理に伴って、上記アクセス違反計数ファイル24、アクセス違反点数化ファイル25が生成される。詳しくは後述する。   The scoring task unit 12 is called from the server main processing unit 11 to evaluate the program source 28 when the request from the operating terminal 1 is an evaluation (scoring etc.) regarding the program source 28 of an arbitrary product. (Scoring etc.) is performed, and in some cases, a deviation value or the like is further created. The access violation counting file 24 and the access violation scoring file 25 are generated in accordance with the scoring process of the scoring task unit 12. Details will be described later.

定義アクセスタスク部13は、操作端末1からの要求などに応じて、テーブルやファイル等に対するデータアクセス(読み書き)処理を実行・管理する。
定義生成タスク部14は、操作端末1からの要求などに応じて、該当する処理(プログラム)を読み出すなどして、設定のチェックや設定データの自動生成等を実行・管理する。
The definition access task unit 13 executes and manages data access (read / write) processing for tables, files, and the like in response to a request from the operation terminal 1.
The definition generation task unit 14 executes and manages setting check, automatic generation of setting data, and the like by reading out a corresponding process (program) in response to a request from the operation terminal 1.

尚、本例では、サーバメイン処理部11が、定義アクセスタスク部13や定義生成タスク部14の管理を行うものとするが、この例に限らない。
また、上記各種テーブル/ファイルは、例えば下記のように分類される。
(a) 作業用ファイル
・階層定義テーブル(作成中)21
・アクセス違反例外登録ファイル(作成中)26
(b) 階層評価時に定義されているテーブル
・階層定義テーブル(登録)22
・動作情報定義テーブル23
(c) 階層評価を行なうために作成されるファイル
・アクセス違反例外登録ファイル(登録)27
・アクセス違反計数ファイル24
・アクセス違反点数化ファイル25
・偏差値計数ファイル15
ここで、図2に、ソフトウェア構造(階層と機能)の一例を示す。
In this example, the server main processing unit 11 manages the definition access task unit 13 and the definition generation task unit 14, but the present invention is not limited to this example.
The various tables / files are classified as follows, for example.
(A) Work file / hierarchy definition table (under construction) 21
Access violation exception registration file (under construction) 26
(B) Table and hierarchy definition table (registration) 22 defined at the time of hierarchy evaluation
-Operation information definition table 23
(C) File access violation exception registration file (registration) 27 created for hierarchical evaluation
・ Access violation count file 24
・ Access violation score file 25
Deviation value counting file 15
Here, FIG. 2 shows an example of the software structure (hierarchy and function).

図2のソフトウェア構造例は、複数の機能が階層構造となっているソフトウェア構造の一例であり、第一階層(最下層)、第二階層(中間層)、第三階層(上位層)の3階層あり、各階層毎に一例として2つの機能が存在するものとする。すなわち、第一階層には、機能1−1と機能1−2がある。同様に、第二階層には機能2−1と機能2−2があり、第三階層には機能3−1と機能3−2がある
図2のソフトウェア構造の具体例としては、例えばソフトウェアが何らかの所謂“組込みソフトウェア”である場合が考えられる。尚、よく知られているように、“組込みソフトウェア”とは、家電製品や産業機器に組み込まれた特定の機能を提供するためのコンピュータシステム(組込みシステム)上のソフトウェアである。上記Adqua等は、主に組込みソフトウェアの品質評価に用いられるものである。
The example of the software structure in FIG. 2 is an example of a software structure in which a plurality of functions have a hierarchical structure, and includes a first hierarchy (lowermost layer), a second hierarchy (intermediate hierarchy), and a third hierarchy (upper hierarchy). It is assumed that there are layers, and two functions exist as an example for each layer. That is, the first hierarchy has a function 1-1 and a function 1-2. Similarly, the second layer has functions 2-1 and 2-2, and the third layer has functions 3-1 and 3-2. As a specific example of the software structure in FIG. There may be some so-called “embedded software”. As is well known, “embedded software” is software on a computer system (embedded system) for providing a specific function incorporated in a home appliance or industrial device. The above Adqua etc. are mainly used for quality evaluation of embedded software.

ここで、組込み用のプログラムに関するソフトウェア構造の一例として、機能が、例えばアプリケーション、ミドル(ミドルウェア)、OS(ドライバ)に階層化・分類される場合がある。つまり、階層としては、アプリケーションが上位層、ミドルが中間層、OS(ドライバ)が最下層(下位層)となっている。そして、基本的には任意の階層の任意の機能が、自己と同じ階層の他の機能または1段下の階層の他の機能を呼び出すことになる。このうち1段下の階層の呼び出しに関しては、上記の例では、アプリケーションがミドルを呼び出し、ミドルがOS(ドライバ)を呼び出すものとなる。   Here, as an example of the software structure related to the program for incorporation, there is a case where functions are hierarchized and classified into, for example, an application, middle (middleware), and OS (driver). That is, as for the hierarchy, the application is the upper layer, the middle is the middle layer, and the OS (driver) is the lowermost layer (lower layer). Basically, an arbitrary function at an arbitrary level calls another function at the same level as itself or another function at a level one level below. Of these, regarding the call of the hierarchy one level below, in the above example, the application calls the middle, and the middle calls the OS (driver).

上記のことは、換言すれば、2段下の階層の機能を呼び出すことは違反となる。つまり、アプリケーションがOS(ドライバ)を呼び出すことは違反となる。更に、上位側の機能を呼び出すことも違反となる。すなわち、ミドルがアプリケーションを呼び出すことや、OS(ドライバ)がミドルやアプリケーションを呼び出すことは、違反となる。   In other words, invoking a function in the lower two layers is a violation. That is, calling an OS (driver) by an application is a violation. In addition, calling a higher-order function is also a violation. That is, it is a violation for the middle to call an application and for the OS (driver) to call a middle or an application.

尚、後述するように、任意の機能に係るローカル変数/ローカル関数を他の機能が呼ぶ出すことも違反となる。
尚、上記任意の機能から他の機能の呼び出しは、詳細には、例えば任意の機能の関数から他の機能の関数の呼び出しや、任意の機能の関数から他の機能の変数の呼び出し等となる。但し、これに限らず、自機能内での呼び出しも行われる。つまり、任意の機能の関数から同じ機能内の他の関数の呼び出しや、任意の機能の関数から同じ機能内の任意の変数の呼び出し等となる。但し、基本的に自機能内での呼び出しは違反とはならないので、本説明では自機能内での呼び出しに係る説明を省略する場合もあるものとする。
As will be described later, it is also a violation for another function to call a local variable / local function related to an arbitrary function.
In addition, the call of the other function from the above-mentioned arbitrary function is, for example, the call of the function of the other function from the function of the arbitrary function or the call of the variable of the other function from the function of the arbitrary function. . However, the present invention is not limited to this, and calling within the own function is also performed. That is, a function of an arbitrary function calls another function in the same function, or an arbitrary function calls an arbitrary variable in the same function. However, since calling within the own function does not basically violate, in this description, description related to calling within the own function may be omitted.

上記各機能は、それぞれ、プログラムソース28を構成する複数のプログラムファイルにより実現される。各プログラムファイルのプログラム記述に用いられる関数、変数の種類(種別)は、本例では図2に示すように、API関数(グローバル関数)、ローカル関数、グローバル変数、ローカル変数等であり、それぞれ下記の特徴と有する。
(i)API関数 ;機能外からでもアクセスできる関数
(ii)ローカル関数 ;その機能内でのみアクセスできる関数
(iii)グローバル変数 ;機能外からでもアクセスさせることを前提とした変数
(iv)ロ−カル変数 ;その機能内でのみ使用する変数
基本的に、任意の機能におけるローカル関数やローカル変数を、他の機能から呼び出すことは、上記階層構造に関係なく、違反となる。
Each of the above functions is realized by a plurality of program files constituting the program source 28, respectively. As shown in FIG. 2, the functions (variables) used for program description of each program file are API functions (global functions), local functions, global variables, local variables, etc., as shown in FIG. With the features of
(I) API function; function that can be accessed from outside the function (ii) local function; function that can be accessed only within the function (iii) global variable; variable that is assumed to be accessed from outside the function (iv) Cull variable: Variable used only within the function Basically, calling a local function or a local variable in any function from another function is a violation regardless of the hierarchical structure.

尚、上記API(Application Program Interface)関数やローカル関数は関数種別の一例、上記グローバル変数やローカル変数は変数種別の一例と言える。
以上、図2を用いて説明したことが、上述した「複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限事項や階層に係る制限事項」の具体例である。本システムでは、評価対象のソフトウェア(プログラムソース28)に関して、「複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限事項や階層に係る制限事項」に係る評価のための点数化を行うことができる。
The API (Application Program Interface) function and local function are examples of function types, and the global variable and local variable are examples of variable types.
As described above, what has been described with reference to FIG. 2 is a specific example of the above-mentioned “restrictions relating to access between functions and restrictions relating to hierarchies in software composed of a plurality of functions”. In this system, the evaluation target software (program source 28) can be scored for evaluation related to “restrictions related to access between functions and restrictions related to hierarchies in software consisting of a plurality of functions”. it can.

後述するように、本例では、上記関数種別/変数種別毎に違反件数の集計や評価点数の算出等を行うものであるが、この例に限らない。尚、本例では、基本的には(違反が無い限りは)、全ての関数はAPI(関数)とローカル関数の何れかに属するものであり、全ての変数はグローバル変数とローカル変数の何れかに属するものとするが、この例に限らない。   As will be described later, in this example, the number of violations is calculated and the evaluation score is calculated for each function type / variable type. However, the present invention is not limited to this example. In this example, basically (unless there is no violation), all functions belong to either an API (function) or a local function, and all variables are either global variables or local variables. However, the present invention is not limited to this example.

例えば開発者等が、事前に、上記図2に示すソフトウェア構造(階層と機能に係る制限事項)に従って、階層定義テーブル(登録)22を作成する。この階層定義テーブル(登録)22を用いて、点数化・評価等が行われることになる。ここで、階層定義テーブル(登録)22は、開発者等のユーザが手作業でデータ入力して作成してもよいが、半自動的に作成されるものであってもよい(後述するように、ユーザが手作業で入力するデータは非常に少なくてすむ)。   For example, a developer or the like creates a hierarchy definition table (registration) 22 in advance according to the software structure (restrictions related to the hierarchy and functions) shown in FIG. Using this hierarchy definition table (registration) 22, scoring / evaluation is performed. Here, the hierarchy definition table (registration) 22 may be created by manually inputting data by a user such as a developer, or may be created semi-automatically (as described later, Very little data is entered manually by the user).

これは、管理サーバ10において、階層定義テーブル(作成中)21という階層定義テーブルの作成途中の状態を経て、最終的に階層定義テーブルが完成したら階層定義テーブル(登録)22として保存されるものである。また、アクセス違反例外登録ファイル(登録)27が作成され、このファイル27が上記階層定義テーブルの半自動生成の為に用いられる。尚、これについても、アクセス違反例外登録ファイル(作成中)26というアクセス違反例外登録ファイルの作成途中の状態を経て、最終的にアクセス違反例外登録ファイルが完成したらアクセス違反例外登録ファイル(登録)27として保存されるものである。また、アクセス違反例外登録ファイル(作成中)26は、アクセス違反の増減の判別の為に利用できる。詳しくは後述する。尚、アクセス違反例外登録ファイル(登録)27も、半自動生成されるものであり、ユーザの作業負担を軽減できる。   This is stored in the management server 10 as a hierarchy definition table (registration) 22 when the hierarchy definition table is finally completed after the hierarchy definition table 21 being created is in the process of being created. is there. Also, an access violation exception registration file (registration) 27 is created, and this file 27 is used for semi-automatic generation of the hierarchy definition table. Also in this case, after the access violation exception registration file (being created) 26 is in the process of being created, the access violation exception registration file is finally completed. Is stored as Further, the access violation exception registration file (during creation) 26 can be used for determining whether the access violation has increased or decreased. Details will be described later. Note that the access violation exception registration file (registration) 27 is also generated semi-automatically, and the work burden on the user can be reduced.

尚、開発者等による階層定義テーブルの作成作業は、操作端末1側で行っても良いし、管理サーバ10側で行っても良いが、何れの場合でも上記管理サーバ10が階層定義テーブルを半自動生成するので、入力作業の手間が軽減され、作成効率が向上する。   The creation of the hierarchy definition table by a developer or the like may be performed on the operation terminal 1 side or the management server 10 side. In any case, the management server 10 semi-automatically creates the hierarchy definition table. Since it is generated, the labor of input work is reduced, and the creation efficiency is improved.

尚、階層定義テーブル(登録)22は、例えば、複数の機能が階層構造となっているソフトウェア構造に従って、呼び出し元となる任意の機能と、呼び出し先となる任意の機能の関数種別/変数種別との組み合わせ(ペア)毎に、違反の有無や許容違反数が登録されたテーブルである。階層定義テーブル(登録)22は、アクセス違反を検出するための設定テーブルである。   The hierarchy definition table (registration) 22 includes, for example, an arbitrary function serving as a call source and a function type / variable type of an arbitrary function serving as a call destination in accordance with a software structure in which a plurality of functions have a hierarchical structure. It is a table in which the presence or absence of violations and the number of allowable violations are registered for each combination (pair). The hierarchy definition table (registration) 22 is a setting table for detecting an access violation.

ここで、図3に階層定義テーブルのフォーマット例を示す。尚、図3は、階層定義テーブル(作成中)21の具体例を示すものということもできる。つまり、未だ作成途中であり完成していない。また、図4には、階層定義テーブル(登録)22の具体例を示す。これは、作成途中ではなく、完成済みの状態を示すものと言える。尚、図3では図示の呼び出し元36について省略して示すが、実際には例えば図4に示すように呼び出し元36には各機能(図示の例では6つの機能)の機能番号が設定される。   Here, FIG. 3 shows a format example of the hierarchy definition table. Note that FIG. 3 can also be said to show a specific example of the hierarchy definition table 21 (during creation). In other words, it is still in the process of being created and has not been completed. FIG. 4 shows a specific example of the hierarchy definition table (registration) 22. This can be said to indicate a completed state, not in the middle of creation. 3 omits the caller 36 shown in the figure, but actually, for example, as shown in FIG. 4, the caller 36 is set with a function number of each function (six functions in the example shown). .

図3に示すように、階層定義テーブル(作成中)21は、例えば上記図2に示すような複数の機能が階層構造となっているソフトウェア構造に従って、呼び出し元となる任意の機能(呼び出し元36)と、“呼び出し先となる任意の各機能の各関数種別/変数種別”(呼び出し先35)との組み合わせ(ペア)が、構築されている。そして、更に、後述するようにアクセス違反例外登録ファイル(登録)27を利用することで、各ペア毎の違反の有無(図示の‘0’や‘1’)や違反許容数が自動的に登録されることで、後述する図4の階層定義テーブル(登録)22が得られることになる。   As shown in FIG. 3, the hierarchy definition table (during creation) 21 has an arbitrary function (calling source 36) as a calling source in accordance with a software structure in which a plurality of functions shown in FIG. ) And “each function type / variable type of each function as a call destination” (call destination 35). Further, by using an access violation exception registration file (registration) 27 as will be described later, the existence of violations for each pair ('0' and '1' in the figure) and the allowable number of violations are automatically registered. As a result, a hierarchy definition table (registration) 22 of FIG. 4 to be described later is obtained.

尚、上記違反の有無(図示の‘0’や‘1’)や違反許容数の登録は、自動的に限らず、例えばユーザが手作業で任意に設定するものであってもよいが、その場合には当然、ユーザの手間の削減効果が少なくなる。   The registration of the presence / absence of violation ("0" or "1" in the figure) and the allowable number of violations is not limited to automatic, and may be arbitrarily set manually by the user, for example. In this case, naturally, the effect of reducing the user's labor is reduced.

図3に示す階層定義テーブル(作成中)21における図示の機能名31、機能番号33、機能コード34は、何れも上記“呼び出し先となる任意の各機能の各関数種別/変数種別”における「任意の機能」を示すものであり、従って必ずしも3つとも必要なわけではない。また、階層番号(レイヤ)32は、上記「任意の機能」が属する階層(上記3階層の何れか)を示す番号である。   The illustrated function name 31, function number 33, and function code 34 in the hierarchy definition table (under construction) 21 shown in FIG. 3 are all “function type / variable type of each function to be called”. "Optional function" is shown, and therefore all three are not necessarily required. The hierarchy number (layer) 32 is a number indicating the hierarchy (any one of the three hierarchies) to which the “arbitrary function” belongs.

呼び出し先35は、上記各「任意の機能」毎に、その機能における上記4項目(2種類の関数種別、2種類の変数種別;API(関数)、ローカル関数、グローバル変数、ローカル変数)に分類されている。このような階層・機能毎の4項目毎に、呼び出し元による呼び出し先に対する機能間でのアクセス違反があるか否か等を、階層定義テーブル(登録)22は示していることになる。   For each “arbitrary function”, the call destination 35 is classified into the above four items (two types of function types, two types of variables; API (function), local function, global variable, local variable) for each function. Has been. The hierarchy definition table (registration) 22 indicates whether or not there is an access violation between functions for the call destination by the caller for every four items for each hierarchy and function.

尚、機能名31は、その機能の名称(予め決められて登録されている)である。機能コード34(SCI、SYS等)は、その機能の識別コード(予め決められて登録されている)である。機能コード34は、プログラムソース28による複数の機能をグループ化するためのコードであるとも言える。また、機能番号33は、その機能の階層と当該階層内での通番から成るものである。   The function name 31 is the name of the function (predetermined and registered). The function code 34 (SCI, SYS, etc.) is an identification code of the function (predetermined and registered). It can be said that the function code 34 is a code for grouping a plurality of functions by the program source 28. The function number 33 is composed of the function hierarchy and a serial number in the hierarchy.

また、階層番号(レイヤ)32と階層番号(レイヤ)32は、階層に係るデータであると言える。そして、必ずしも両方必要なわけではなく、何れか一方のみであってもよい。
また、尚、本例においては機能コード34がその機能に係わるプログラムソースファイル名や各関数/変数の名称に用いられることになっているものとする。
Further, it can be said that the hierarchy number (layer) 32 and the hierarchy number (layer) 32 are data relating to the hierarchy. Both of them are not necessarily required, and only one of them may be used.
In this example, it is assumed that the function code 34 is used as the name of a program source file or function / variable associated with the function.

ここで、上記違反の有無や違反許容数の登録内容は、例えば数値等であってもよいし、後述するA,B,C,D等のような記号であってもよい。
図4には、数値が入力される例を示しており、数値は例えば上記違反有無を示す‘0’と‘1’であり、ここでは‘0’が“違反無し”、‘1’が“違反あり”を意味するものであるが、この例に限らない。例えば、設定値が0,1,2、・・・n(n;任意の整数)であり、これらの設定値は、例えば階層違反の有無や違反の許容数(「階層違反の有無や許容情報(許容登録数というものとする)」と呼ぶ場合もあるものとする)を示しており、例えば下記のように定義されるものであってもよい。
『 0:異常として検出しない。
Here, the registration contents of the presence / absence of violation and the allowable number of violations may be numerical values, for example, or may be symbols such as A, B, C, D described later.
FIG. 4 shows an example in which numerical values are input. The numerical values are, for example, “0” and “1” indicating the presence or absence of the violation, where “0” is “no violation” and “1” is “ It means “violated”, but is not limited to this example. For example, the set values are 0, 1, 2,... N (n: an arbitrary integer), and these set values are, for example, the presence or absence of hierarchy violations and the allowable number of violations (“existence of hierarchy violations and allowable information” (It may be referred to as “the allowable number of registrations”), and may be defined as follows, for example.
“0: Not detected as abnormal.

1:違反が1個以上存在する場合、異常として検出する。
2:違反が2個以上存在する場合、異常として検出する。
3:違反が3個以上存在する場合、異常として検出する。
1: If one or more violations exist, it is detected as abnormal.
2: When two or more violations exist, it is detected as an abnormality.
3: When three or more violations exist, it is detected as an abnormality.




n:違反がn個以上存在する場合、異常として検出する。 』
例えば、過去に作成されたプログラム(レガシー資産)に基づいて作成されたプログラムの場合、違反であることが分かっていても修正困難である箇所が存在する場合がある。よって、レガシー資産において任意のペアに関して違反が2個存在すると分かっているならば、違反2件は必ず生じるのでこれは除外して考えるものとして‘3’を設定することになる(つまり、違反が3個以上存在する場合(実質的に新たな違反が1個以上存在する場合に)、新たな違反の分だけをカウントする)。



n: When there are n or more violations, they are detected as abnormal. ]
For example, in the case of a program created based on a program (legacy asset) created in the past, there may be a portion that is difficult to correct even if it is known that it is a violation. Therefore, if it is known that there are two violations for a given asset in a legacy asset, two violations will always occur, so this should be set to '3' to be considered as excluded (ie If there are three or more (if there are essentially one or more new violations), only the new violations are counted).

あるいは、上記のように、上記数値の代わりにA,B,C,D等の記号等を用いても良い。これについては特に図示しないが、例えば空白の場合には“違反なし”、下記の何らかの記号がある場合には“違反あり”であってその違反の意味は下記の通りであるものとする。   Alternatively, as described above, symbols such as A, B, C, and D may be used instead of the above numerical values. Although this is not particularly illustrated, for example, “no violation” in the case of a blank, and “violation” in the case of any of the following symbols, the meaning of the violation is as follows.

A:階層を越えてAPI(外部)関数を呼び出した。
B:外部に公開されていないローカル関数をアクセスした。
C:階層を越えてグローバル(外部アクセス用)変数を呼び出した。
A: An API (external) function was called across the hierarchy.
B: A local function that is not disclosed to the outside is accessed.
C: A global (for external access) variable was called across the hierarchy.

D:外部に公開されていないローカル変数をアクセスした。
更に、これらA〜Dだけでなく更に数値を設定してもよい。設定する値は、例えば下記の通り、違反の許容範囲(許容数)を示している。
『 0:異常として検出しない。
D: A local variable that is not disclosed to the outside is accessed.
Further, not only these A to D but also numerical values may be set. The value to be set indicates an allowable range (allowable number) of violation as follows, for example.
“0: Not detected as abnormal.

1:違反が1個以上存在する場合、異常として検出する。
2:違反が2個以上存在する場合、異常として検出する。



n:n個以上存在する場合、異常として検出する。』
尚、上記のことは下記のように表現することもできる。
1: If one or more violations exist, it is detected as abnormal.
2: When two or more violations exist, it is detected as an abnormality.



n: When there are n or more, an abnormality is detected. ]
The above can also be expressed as follows.

0:エラーを検出しない。
1:エラーを検出する。(許容するエラーなし)
2以上:エラーの許容数+1
なお、B,Dは、機能内で複数のプログラムソースファイルが分かれている場合は、機能間でのやり取りに使用する変数が存在するために、他の機能からアクセスできてしまう関数や変数、また、プログラムソースファイル内であれば、そこでしか使用できない関数や変数の設定ができるが、その宣言がされていない場合にアクセスできてしまうために、他の機能が使われることを想定している。
0: No error is detected.
1: An error is detected. (No error allowed)
2 or more: allowable number of errors + 1
Note that B and D are functions and variables that can be accessed from other functions because there are variables used for exchanges between functions when multiple program source files are separated in the function. In the program source file, functions and variables that can only be used there can be set, but it is assumed that other functions will be used because they can be accessed if they are not declared.

尚、図4に示す階層定義テーブル(登録)22の設定例は、例えば下記のルールに応じたものである。
第一階層が最下位階層、第三階層が最上位階層である。
The setting example of the hierarchy definition table (registration) 22 shown in FIG. 4 corresponds to the following rules, for example.
The first hierarchy is the lowest hierarchy and the third hierarchy is the highest hierarchy.

基本的には、グローバルな変数/関数であっても、1階層下の階層への呼び出しは出来るが、2階層下の階層や上位の階層への呼び出しは出来ない。尚、同一階層への呼び出しは当然出来るのであり、これについては逐一述べない場合もある。   Basically, even global variables / functions can be called up to the hierarchy one level below, but cannot be called up to the hierarchy two levels below or higher. Of course, calls to the same hierarchy can be made, and this may not be described one by one.

よって、第一階層は、上位階層から呼ばれるが、上位階層を呼び出すことはできない。
第二階層は、第一階層を呼び出すが、第三階層を呼び出すことはできない。
第三階層は、第二階層を呼び出すが、基本的には第1階層は呼び出しができない。但し、特殊な機能のみ呼び出しを許可することもあるので、設定により許可された場合は、その機能のみ呼び出すことができる。例えば図4に示す例では、呼び出し元が“機能3−1”で呼び出し先が機能1−2のAPI関数である場合には、上記ルールでは呼び出し不可(よって‘1’が設定されるはず)であるが、開発者等の判断により図示の通り‘0’が設定されている。尚、この設定は、最初から手作業で行っても良いが、半自動で生成されたものに対して、手作業で修正するものであってもよい。
Therefore, the first layer is called from the upper layer, but the upper layer cannot be called.
The second hierarchy calls the first hierarchy but cannot call the third hierarchy.
The third hierarchy calls the second hierarchy, but basically the first hierarchy cannot be called. However, since only a special function may be permitted to be called, only the function can be called when permitted by setting. For example, in the example shown in FIG. 4, when the caller is an API function of “function 3-1” and the callee is a function 1-2, the above rule cannot be called (thus “1” should be set). However, “0” is set as shown in FIG. This setting may be performed manually from the beginning, or may be manually corrected for a semi-automatically generated one.

尚、階層定義テーブルを設けるのは、図4に示す例のように柔軟性を設け例外を認めることを目的としており、既存製品への適合や文字列変換などの階層を越えた共通ライブラリなどを想定している。   The purpose of providing the hierarchy definition table is to allow flexibility and allow exceptions as shown in the example shown in FIG. 4. Assumed.

既存製品への適合とは、レガシー資産で構造評価を行うと多くのエラーが検出される。エラーを減らすことは困難なので、これ以上階層が壊れないように現状維持を目的として、既存のエラーの値+1を設定することにより、既存より増えた場合に点数が100点未満となることで、簡単に判断できるようにすることを考慮している。   Conformity to existing products means that many errors are detected when structural evaluation is performed on legacy assets. Since it is difficult to reduce errors, by setting the existing error value +1 for the purpose of maintaining the current status so that the hierarchy will not be broken any more, the score will be less than 100 points when increasing from the existing, Considering making it easy to judge.

図5は、アクセス違反例外登録ファイル26、27のフォーマット例である。
尚、上記の通り、アクセス違反例外登録ファイル(作成中)26は作成途中、アクセス違反例外登録ファイル(登録)27は完成済みの状態を示すので、フォーマット自体は同じである。尚、アクセス違反例外登録ファイル(登録)27は、アクセス違反を例外的に許容するものを登録したファイルである。
FIG. 5 is a format example of the access violation exception registration files 26 and 27.
As described above, the access violation exception registration file (during creation) 26 is in the process of being created, and the access violation exception registration file (registration) 27 is in a completed state, so the format itself is the same. The access violation exception registration file (registration) 27 is a file in which an access violation exceptionally allowed is registered.

図示の例のアクセス違反例外登録ファイル26、27は、参照元機能コード41、ソース名42、参照先機能コード43、検出対象名称44、検出種別コード45、例外アクセス許可フラグ46、可否判定者47の各データ項目より成る。   The access violation exception registration files 26 and 27 in the illustrated example include a reference source function code 41, a source name 42, a reference destination function code 43, a detection target name 44, a detection type code 45, an exception access permission flag 46, and a permission determination person 47. It consists of each data item.

すなわち、参照元と参照先の機能ペア毎に、検出種別コード45、例外アクセス許可フラグ46、可否判定者47が、登録されるものである。参照元と参照先の機能ペアの情報は、例えばプログラムソース28(プログラムファイル群)から抽出される。   That is, the detection type code 45, the exception access permission flag 46, and the availability determination person 47 are registered for each reference source / reference destination function pair. Information on the function pair of the reference source and the reference destination is extracted from, for example, the program source 28 (program file group).

参照元の情報は、参照元機能コード41及びソース名42である。参照元機能コード41には、参照元の機能の機能コードが格納される。ソース名42には、参照元の機能に対応するプログラムファイル名が格納される。   The reference source information includes a reference source function code 41 and a source name 42. The reference source function code 41 stores the function code of the reference source function. The source name 42 stores a program file name corresponding to the function of the reference source.

ここで、本例では、プログラムソース28を構成する各プログラムファイルは、機能単位で作成されているものとする。つまり、1つの機能に関して1つのプログラムファイルが作成されており、更に、この機能の機能コードが、プログラムファイル名に含まれるようにしている(開発者が、そのように作成していることを前提としている)。これより、このプログラムファイル名がソース名42に格納されると共に、このプログラムファイル名から抽出された機能コードが、参照元機能コード41に格納されることになる。   Here, in this example, it is assumed that each program file constituting the program source 28 is created in units of functions. That is, one program file is created for one function, and the function code of this function is included in the program file name (assuming that the developer has created such a function. ) Thus, the program file name is stored in the source name 42, and the function code extracted from the program file name is stored in the reference source function code 41.

また、参照先の情報は、参照先機能コード43と検出対象名称44であり、更に検出種別コード45も加わってもよいが、後述するように検出種別コード45は単に参照先を示すだけではない(エラー情報格納部としての役割もある)。   The reference destination information includes a reference destination function code 43 and a detection target name 44, and a detection type code 45 may be added. However, as will be described later, the detection type code 45 does not simply indicate the reference destination. (It also serves as an error information storage unit).

検出対象名称44には上記参照元の機能からのアクセス先の変数/関数が格納される。参照先機能コード43には上記参照元の機能からのアクセス先の機能(換言すれば上記アクセス先の変数/関数が属する機能)の機能コードが格納される。尚、例えば、検出対象名称44に含まれる機能コードを抽出して、これを参照先機能コード43に格納するものである。   The detection target name 44 stores an access destination variable / function from the reference source function. The reference destination function code 43 stores a function code of an access destination function (in other words, a function to which the access destination variable / function belongs) from the reference source function. For example, the function code included in the detection target name 44 is extracted and stored in the reference function code 43.

また、検出種別コード45には、基本的には(最初は)上記アクセス先の変数/関数の種別(検出種別;本例では、API関数/ローカル関数/グローバル変数/ローカル変数の4つの種別)を示すコードが格納されるが、エラーコードが格納される(あるいはエラーコードに書き換えられる)場合もある。検出種別コード45には、例えば、1〜4、0、−1〜−6の何れかの数値が格納されるものであり、これら各数値の意味は下記の通りである。   The detection type code 45 basically includes (initially) the type of the access destination variable / function (detection type; in this example, four types of API function / local function / global variable / local variable). In some cases, an error code is stored (or rewritten to an error code). The detection type code 45 stores, for example, any numerical value of 1 to 4, 0, −1 to −6, and the meaning of each numerical value is as follows.

検出種別コード: 意味 ; 具体例
1 : API関数 ;SCI_INITIAL
2 : ローカル関数 ;Sci_FifoSet
3 : グローバル変数 ;g_SciExpcntlUS
4 : ローカル変数 ;gSciSendState
0 :判定不能(ソース名規約違反などの他のエラーにより判定できない)
−1 :API関数に係るアクセス違反
−2 :ローカル関数に係るアクセス違反
−3 :グローバル変数に係るアクセス違反
−4 :ローカル変数に係るアクセス違反
−5 :規約を満たさない関数 ;例えばDebugFuncなど
−6 :規約を満たさない変数 ;例えばWorkArea、WORKCounterUSなど
また、上記例外アクセス許可フラグ46には、‘0’または‘1’が設定される。その意味は下記の通りである。尚、これらの設定は、基本的にはユーザ(管理者など)が手作業で行うものである。
Detection type code: Meaning; Specific example 1: API function; SCI_INITIAL
2: Local function; Sci_FifoSet
3: Global variable; g_SciExpcntlUS
4: Local variable; gSciSendState
0: Cannot be determined (cannot be determined due to other errors such as source name rule violation)
-1: Access violation related to API function -2: Access violation related to local function -3: Access violation related to global variable -4: Access violation related to local variable -5: Function that does not satisfy the rules; For example, DebugFunc -6 : Variable that does not satisfy the rules; for example, WorkArea, WORKCounterUS, etc. In addition, the exception access permission flag 46 is set to '0' or '1'. The meaning is as follows. These settings are basically performed manually by a user (such as an administrator).

0:アクセス違反を許容しない。
1:アクセス違反を許容する。
例外アクセス許可フラグ46に関して、詳しくは後述する。
0: Access violation is not allowed.
1: Allow access violation.
Details of the exception access permission flag 46 will be described later.

また、上記可否判定者47には、上記例外アクセス許可フラグ46を設定したユーザ(例外アクセス許容許可者)を示す情報が格納される。責任を持たせるために、例外アクセス許可フラグ46の設定者の氏名や社員番号等を、設定者に入力させる。   Further, information indicating the user (exception access permission permitter) who sets the exception access permission flag 46 is stored in the permission determination person 47. In order to take responsibility, the setter's name, employee number, etc. of the exception access permission flag 46 are entered by the setter.

既に簡単に述べたが、図2に示すソフトウェア構造の規定は、例えば下記の通りとなる。
尚、逐一述べないが、任意の機能から他の機能の呼び出しは、詳細には既に述べた通り、任意の機能に属する関数から、他の機能に属する関数または変数の呼び出しを意味する。また、これも逐一述べないが、当然、同一機能内での呼び出し(任意の関数から同じ機能内の他の関数や変数を呼び出すこと)は、基本的に全てOKである(違反とはならない)。
As already mentioned above, the definition of the software structure shown in FIG. 2 is as follows, for example.
Although not described one by one, calling another function from an arbitrary function means calling a function or variable belonging to another function from a function belonging to the arbitrary function, as already described in detail. In addition, although I will not mention this one by one, naturally, calls within the same function (calling another function or variable within the same function from any function) are basically all OK (no violation) .

第一階層の機能は、同一階層(第一階層)の機能または1段上の階層の機能から呼ばれる。換言すれば、第一階層の機能が、上位階層の機能を呼び出すことは違反となる。これより、呼び出し元36が第一階層の機能(1−1または1−2)であり、呼び出し先が第二階層または第三階層の機能である場合には、図示のように“違反なし”となるペアは1つも存在しないことになる。尚、ローカル関数やローカル変数に関しては、階層等は関係なく、他の機能から呼び出すこと自体が違反となる。   The function of the first hierarchy is called from the function of the same hierarchy (first hierarchy) or the function of the hierarchy one level higher. In other words, it is a violation for the function of the first layer to call the function of the upper layer. Thus, when the caller 36 is a function of the first hierarchy (1-1 or 1-2) and the callee is a function of the second hierarchy or the third hierarchy, “no violation” as shown in the figure. There will be no pair. For local functions and local variables, calling from other functions is a violation regardless of the hierarchy.

第二階層の機能は、同一階層(第二階層)の機能や1段下の階層である第一階層の機能を呼び出すことはできるが、上位側の階層である第三階層の機能を呼び出すことはできない。これより、例えば第二階層の機能2−1は、同一階層の他の機能である機能2−2や、第一階層の機能1−1、1−2を呼び出すことは出来るが(勿論、ローカル関数やローカル変数は呼び出せない)、第三階層の機能3−1、3−2を呼び出すことはできない。   The function of the second layer can call the function of the same layer (second layer) and the function of the first layer that is one layer below, but the function of the third layer that is the upper layer is called I can't. Thus, for example, the function 2-1 in the second hierarchy can call the function 2-2 which is another function in the same hierarchy, and the functions 1-1 and 1-2 in the first hierarchy (of course, local Functions and local variables cannot be called), and functions 3-1 and 3-2 in the third layer cannot be called.

第三階層の機能は、1段下の階層である第二階層の機能を呼び出すことはできるが、2段下の階層である第一階層の機能の呼び出しは、基本的には出来ない。これより、例えば第三階層の機能3−1は、同一階層の他の機能である機能3−2や、第二階層の機能2−1、2−2を呼び出すことは出来るが(勿論、ローカル関数やローカル変数は呼び出せない)、第一階層の機能1−1、1−2を呼び出すことはできない。   The function of the third hierarchy can call the function of the second hierarchy, which is the hierarchy one level below, but cannot basically call the function of the first hierarchy, which is the hierarchy two levels below. Thus, for example, the function 3-1 in the third layer can call the function 3-2 which is another function in the same layer and the functions 2-1 and 2-2 in the second layer (of course, local Functions and local variables cannot be called), and functions 1-1 and 1-2 in the first layer cannot be called.

但し、特殊な機能のみ呼び出しを許可することもあるので、開発者等の判断によって例外として特別に違反としないようにする(例外として‘0’が設定される)こともできる。図4に示す例では、呼び出し元が「機能3−1」で呼び出し先が「機能1−2のAPI関数」であるペアに対して、上記例外として‘0’が設定されている。これは、第三階層の機能3−1が、第一階層の機能1−2(そのAPI関数)を呼び出すものであるので、上記の通り基本的には違反となるが、例外として“違反なし”を意味する設定がされていることになる。   However, only a special function may be allowed to be called, so that it can be prevented from being specifically violated as an exception ('0' is set as an exception) at the discretion of the developer or the like. In the example illustrated in FIG. 4, “0” is set as the exception for the pair whose caller is “function 3-1” and whose callee is “API function of function 1-2”. This is because the third layer function 3-1 calls the first layer function 1-2 (its API function). The setting that means "" is done.

尚、上記階層定義テーブル(登録)22等のような定義ファイルを設けるのは、上記のように柔軟性を設け例外を認めることを目的としており、既存製品への適合や文字列変換などの階層を越えた共通ライブラリなどを想定している。   The purpose of providing a definition file such as the hierarchy definition table (registration) 22 is to allow flexibility and allow exceptions as described above. A common library that goes beyond is assumed.

尚、既存製品への適合とは、レガシー資産で構造評価を行うと多くのエラーが検出され、エラーを減らすことは困難なので、これ以上階層が壊れないようにすること(現状維持)を目的として、「“既存製品の違反件数”+1」を設定することにより(上記設定値;違反の許容範囲)、既存製品よりも違反件数が増えた場合に評価点数が100点未満となるように定義ファイルを設定することで、簡単に判断(評価)できるようにすることを考慮している。   In addition, conformity to existing products means that many errors are detected when structural evaluation is performed on legacy assets, and it is difficult to reduce errors. , By setting "" Number of violations of existing products "+ 1" (the above setting value; acceptable range of violations), the definition file will be such that the evaluation score will be less than 100 points when the number of violations increases over existing products It is considered that it can be easily judged (evaluated) by setting.

図6(a)は、アクセス違反計数ファイル24の具体例である。また、図6(b)には、図6(a)に示す例のアクセス違反計数ファイル24に基づく集計結果の具体例を示している。   FIG. 6A is a specific example of the access violation count file 24. FIG. 6B shows a specific example of the counting result based on the access violation counting file 24 in the example shown in FIG.

まず、図6(a)を参照して説明する。
図6(a)に示すように、アクセス違反計数ファイル24のデータ構造自体は、上記図4に示す階層定義テーブル(登録)22のデータ構造と略同様である。すなわち、アクセス違反計数ファイル24は、機能名51、階層番号(レイヤ)52、機能番号53、機能コード54、呼び出し先55、呼び出し元56から成る。これらは階層定義テーブル(登録)22の機能名31、階層番号(レイヤ)32、機能番号33、機能コード34、呼び出し先35、呼び出し元36と略同様であり、ここでは特に説明しないが、各呼び出し元56(機能単位)と各呼び出し先55(関数種別/変数種別単位)のペアに応じた違反計数欄が設定されている。
First, a description will be given with reference to FIG.
As shown in FIG. 6A, the data structure of the access violation counting file 24 is substantially the same as the data structure of the hierarchy definition table (registration) 22 shown in FIG. That is, the access violation counting file 24 includes a function name 51, a hierarchy number (layer) 52, a function number 53, a function code 54, a call destination 55, and a call source 56. These are substantially the same as the function name 31, the layer number (layer) 32, the function number 33, the function code 34, the call destination 35, and the call source 36 in the hierarchy definition table (registration) 22. Violation count fields corresponding to pairs of caller 56 (functional unit) and each callee 55 (function type / variable type unit) are set.

初期状態では、全ての違反計数欄(図では24×6=144個の計数欄)には、カウント値の初期値=‘0’が設定されている。そして、アクセス違反が検出される毎に該当する違反計数欄のカウント値が+1インクリメントされていく。   In the initial state, the initial value of count value = '0' is set in all the violation counting columns (24 × 6 = 144 counting columns in the figure). Each time an access violation is detected, the count value in the corresponding violation counting column is incremented by +1.

例えば評価対象の機能のプログラムソースファイルについて、そのファイルに記述されているプログラム文について先頭行から最終行まで順次参照しながら、任意の関数が他の関数あるいは変数を呼び出す箇所を見つける毎に、そのアクセスが違反か否かを階層定義テーブル(登録)22を参照して判定し、違反である場合には上記のようにアクセス違反計数ファイル24の該当する違反計数欄の値を更新(+1インクリメント)する。   For example, each time a program source file of a function to be evaluated is referred to sequentially from the first line to the last line of a program statement described in that file, each time a function calls another function or variable, It is determined whether or not the access is violated with reference to the hierarchy definition table (registration) 22, and if it is violated, the value in the corresponding violation count column of the access violation count file 24 is updated (+1 increment) as described above. To do.

ここで、以下の説明では、呼び出し先に関してはその機能を機能番号で示すものとする。つまり、例えば呼び出し先として、機能番号53が“1−1”で呼び出し先55が“API関数”であることを、「呼び出し先が“機能1−1のAPI関数”である」等と表現するものとする。   Here, in the following description, regarding the call destination, the function is indicated by a function number. That is, for example, as the call destination, the function number 53 is “1-1” and the call destination 55 is “API function” is expressed as “call destination is“ API function of function 1-1 ”” or the like. Shall.

そして、図6(a)の例では、例えば呼び出し元56が機能3−1で、呼び出し先が“機能1−1のグローバル関数”である場合には、違反が3回検出されたことになる。
そして、図6(a)に示すアクセス違反計数ファイル24に基づいて、呼び出し先を各関数/変数単位で集計したものが、図6(b)に示す集計結果である。尚、この様な集計結果もアクセス違反計数ファイル24の一部であると見做してよい。
In the example of FIG. 6A, for example, when the caller 56 is the function 3-1, and the callee is “global function of the function 1-1”, the violation is detected three times. .
Then, based on the access violation counting file 24 shown in FIG. 6A, the sum of the call destinations for each function / variable unit is the total result shown in FIG. 6B. It should be noted that such a totaling result may also be regarded as a part of the access violation counting file 24.

図示のように、この集計結果は、呼び出し元56の各機能毎に、それぞれ、呼び出し先に関しては上記4項目((2種類の関数、2種類の変数;API(関数)、ローカル関数、グローバル変数、ローカル変数)それぞれについての集計を行ったものである。   As shown in the figure, for each function of the caller 56, the total result is the above four items ((2 types of functions, 2 types of variables; API (function), local function, global variable). , Local variables).

図6(b)に示す例では、例えば呼び出し元が機能1−1である場合には、呼び出し先がAPI関数である場合の違反件数は、6つの機能全てを合計しても1件だけであったことになる。   In the example shown in FIG. 6B, for example, when the caller is the function 1-1, the number of violations when the callee is the API function is only one even if all six functions are combined. It will have been.

尚、図6(a)において、空白となっている違反計数欄は、初期値=‘0’のままであること(違反が1件もなかったこと)を意味するものとする。
また、例えば呼び出し元56が機能3−1で、呼び出し先が“機能1−1のAPI関数”である場合には、違反が5回検出されたことになるが、図6(b)に示す集計結果は3回となっている。これは、このペアに関しては図4に示す例では‘3’(=違反許容数)が設定されている為に、違反2回までは許容されており、3回目以降から違反としてカウントされるためである。
In FIG. 6 (a), the blank violation count column means that the initial value = '0' remains (no violation was found).
For example, when the caller 56 is the function 3-1, and the callee is “API function of the function 1-1”, the violation is detected five times, as shown in FIG. 6B. The total result is 3 times. This is because, for this pair, “3” (= the allowable number of violations) is set in the example shown in FIG. 4, and therefore, up to two violations are allowed, and are counted as violations from the third time onwards. It is.

図7(a)、(b)に、動作情報定義テーブル16に設定される情報の一例を示す。
図7(a)は重み付けに係わる情報であり、図7(b)は足きりの閾値である。
尚、必ずしも図7(a)、(b)の両方が必要なわけではなく、どちらか片方のみであってもよい。当然、後述する処理も、それに応じた処理となる。
(I)重み付けに関して
図7(a)に示す重み係数は、上記アクセス対象(呼び出し先)に係わる4つの評価項目(各関数種別/各変数種別;本例ではAPI(関数)、ローカル関数、グローバル変数、ローカル変数)それぞれについて、任意の重み係数(重み値)が登録されたものである。これは、例えば開発者等が任意に決定・設定するものである。
7A and 7B show examples of information set in the operation information definition table 16. FIG.
FIG. 7A shows information relating to weighting, and FIG. 7B shows a threshold threshold.
Note that both FIGS. 7A and 7B are not necessarily required, and only one of them may be used. Naturally, the process described later is also a process corresponding thereto.
(I) Regarding Weighting The weighting factor shown in FIG. 7A is obtained by comparing the four evaluation items (each function type / variable type; API (function), local function, global) related to the access target (call destination). An arbitrary weight coefficient (weight value) is registered for each of the variables and local variables. This is determined and set arbitrarily by a developer, for example.

図7(a)に示す重み係数は、4つの評価項目についての相対的なアクセス違反の重要度を示している。尚、重み係数の数値は、図示の例に限らず、例えば4つの項目の合計が100%となるような重み付けでも良い。また、重み付けを細かく行う場合には、「階層定義テーブル」に対応した機能間で個別に設定ファイルを設けても良い。   The weighting coefficient shown in FIG. 7A indicates the relative importance of the access violation for the four evaluation items. The numerical value of the weighting coefficient is not limited to the example shown in the figure, and may be weighted such that the total of four items becomes 100%, for example. Further, when the weighting is performed finely, a setting file may be provided individually between the functions corresponding to the “hierarchy definition table”.

図6(b)等に示す、各関数種別/各変数種別(上記4つの評価項目;API(関数)、ローカル関数、グローバル変数、ローカル変数)毎の違反件数の集計結果に対して、これら重み係数をそれぞれ乗算することで、集計結果を補正する。当然、API(関数)に係る集計結果に対しては、API(関数)に対する重み係数(図示の例では‘1’)を乗算することになる。他の評価項目についても略同様であり、例えばローカル変数に係る集計結果に対しては、ローカル変数に対する重み係数(図示の例では‘4’)を乗算することになる。   These weights are given to the total number of violations for each function type / variable type (the above four evaluation items; API (function), local function, global variable, local variable) shown in FIG. The count result is corrected by multiplying each coefficient. Naturally, the aggregation result related to the API (function) is multiplied by a weighting factor (“1” in the illustrated example) for the API (function). The same applies to the other evaluation items. For example, the aggregation result related to the local variable is multiplied by a weighting coefficient ('4' in the illustrated example) for the local variable.

図6(b)に示す集計結果例に対して、上記図7(a)に示す4つの評価項目毎の重み係数によって重み付け処理を行った場合、図8(a)に示す重み付け後の集計結果が得られることになる。   When the weighting process is performed on the example of the aggregation result shown in FIG. 6B using the weighting factor for each of the four evaluation items shown in FIG. 7A, the aggregation result after the weighting shown in FIG. Will be obtained.

そして、最後に、図8(a)に示すように、呼び出し元の各機能毎に、それぞれ、上記4つの評価項目それぞれの違反件数(重み付け後)の合計値を算出・登録する。例えば、機能2−1に関しては、1+0+4+12=17が、違反件数(重み付け後)の合計値となる。尚、このなかの‘12’は、元々は‘3’であったが上記ローカル変数に対する重み係数(図示の例では‘4’)を乗算したことで、違反件数(重み付け後)=3×4=12となったものである。同様に、‘4’は、元々は‘2’であったがグローバル変数に対する重み係数(=2)を乗算したことで、違反件数(重み付け後)=2×2=4となったものである。   Finally, as shown in FIG. 8A, the total number of violations (after weighting) for each of the four evaluation items is calculated and registered for each function of the caller. For example, for function 2-1, 1 + 0 + 4 + 12 = 17 is the total number of violations (after weighting). In this case, “12” was originally “3”, but the number of violations (after weighting) = 3 × 4 by multiplying the weighting coefficient (“4” in the illustrated example) for the local variable. = 12. Similarly, “4” is originally “2”, but the number of violations (after weighting) = 2 × 2 = 4 is obtained by multiplying the weighting coefficient (= 2) for the global variable. .

更に、これら各機能毎の違反件数(重み付け後)の合計値同士を加算して全体の総計値を求める(図示の例では、9+0+17+14+25+27=92)。尚、更に図示のように4つの評価項目毎(各関数種別/変数種別毎)の違反件数(重み付け後)の合計値(11,9,12,60)を求めるようにしてもよい。   Further, the total number of violations for each function (after weighting) is added together to obtain the total value (9 + 0 + 17 + 14 + 25 + 27 = 92 in the example shown). Further, as shown in the figure, the total value (11, 9, 12, 60) of the number of violations (after weighting) for each of four evaluation items (each function type / variable type) may be obtained.

尚、上記各重み係数は、4つの評価項目に対し、アクセス違反の重要度を示している。これは、4つの評価項目間での相対的な重要度を示すものと言える。本例では、重き係数の値が大きいほど重要度が高いものとなっている。従って、図示の例では、ローカル変数が最も重要度が高く、API関数が最も重要度が低い。これは、換言するならば、呼び出し先がAPI関数であるアクセス違反が多くても後述する評価点数にはそれほど影響しない(さほど下がらない)が、呼び出し先がローカル変数であるアクセス違反が多いと、後述する評価点数に大きく影響する(点数が非常に低くなる)ことを意味する。   Each of the weighting factors indicates the importance of access violation for the four evaluation items. This can be said to indicate the relative importance among the four evaluation items. In this example, the importance is higher as the value of the weight coefficient is larger. Therefore, in the illustrated example, the local variable has the highest importance, and the API function has the lowest importance. In other words, even if there are many access violations where the call destination is an API function, it does not significantly affect the evaluation score described later (not so much), but if there are many access violations where the call destination is a local variable, It means that the evaluation score described later is greatly affected (the score becomes very low).

尚、重み係数の数値は、図7(a)に示す例に限るものではなく、例えば4つの評価項目の重み係数の合計が、100%となるような重み付けでも良い。
また、重み付けを細かく行う場合には、「階層定義テーブル」に対応した機能間で個別に設定ファイルを設けても良い。
(II)足きりの閾値に関して
評価単位当たりの(例えば呼び出し元の各機能毎の)違反件数の上限として“足きりの閾値”を設定するようにしてもよい。この足きりの設定値は、開発者等が任意に決定してよく、図7(b)に示す例では“足きりの閾値”=10.0となっている。以下の説明では、この一例を用いるものとするが、当然、この例に限るわけではない。
The numerical value of the weighting coefficient is not limited to the example shown in FIG. 7A, and for example, weighting may be performed so that the sum of the weighting coefficients of the four evaluation items becomes 100%.
Further, when the weighting is performed finely, a setting file may be provided individually between the functions corresponding to the “hierarchy definition table”.
(II) Regarding the threshold value for the threshold value The threshold value for the threshold value may be set as the upper limit of the number of violations per evaluation unit (for example, for each function of the caller). The set value of the sufficient amount may be arbitrarily determined by a developer or the like, and in the example shown in FIG. 7B, “threshold threshold value” = 10.0. In the following description, this example is used, but it is not limited to this example.

違反項目は、システム(製品)によって数が異なることが予想されるため上限が分からない。そのため、点数に差が開きすぎて、違反が多い機能があると他の機能が相対的に点数が良くなり、見過ごしやすくなるので、上限を決める“足きりの閾値”を設定できるようにしている。   Since the number of violation items is expected to vary depending on the system (product), the upper limit is unknown. For this reason, if there is a function with many violations due to too many differences in the score, other functions will have a relatively good score, making it easier to overlook, so a “threshold threshold” that determines the upper limit can be set. .

点数化タスク部12は、上記図8(a)に示す重み付け後の集計結果と、これに基づく上記呼び出し元の各機能毎の違反件数(重み付け後)の合計値(以下、合計点数と言う場合もある)を求めたら、この合計値と各機能毎のプログラムステップ数とを用いて、アクセス違反点数化ファイル25を生成する。   The scoring task unit 12 is the sum of the weighted aggregation results shown in FIG. 8A and the number of violations (after weighting) for each function of the caller based on this (hereinafter referred to as the total score) Then, the access violation scoring file 25 is generated using this total value and the number of program steps for each function.

図8(b)に、アクセス違反点数化ファイル25の一例を示す。
図示の例では、アクセス違反点数化ファイル25には以下の項目があり、呼び出し元の各機能毎またはプログラムソース28全体に対して、以下の各項目に応じた数値が算出・登録される。
(i)ステップ数[LOC]
機能単位のプログラムのステップ数である。図示のように、基本的には各機能1−1〜機能3−2のプログラムステップ数は、それぞれ、異なるものであり、場合によっては大きく異なることになる。よって、上記違反件数が多いからといって単純に悪いものとは言えない(プログラムステップ数が非常に多いために、その分、違反件数も多いのかもしれない)。
(ii)単位当りの点数
KLOC(1000ステップ)当たりの違反検出数である。
FIG. 8B shows an example of the access violation score file 25.
In the example shown in the figure, the access violation scoring file 25 has the following items, and numerical values corresponding to the following items are calculated and registered for each function of the caller or the entire program source 28.
(I) Number of steps [LOC]
This is the number of steps in the program for each functional unit. As shown in the figure, basically, the number of program steps of each of the functions 1-1 to 3-2 is different and greatly varies depending on the case. Therefore, simply because the number of violations is large, it cannot simply be said to be bad (the number of program steps is so large that the number of violations may be large).
(Ii) Points per unit The number of violations detected per KLOC (1000 steps).

上記のように機能毎にステップ数が異なるため、図8(a)に示す重み付け後の合計点(合計点数)を、プログラムのステップ数で除算し、単位(1000LOC)当りの点数を算出する。   Since the number of steps differs for each function as described above, the weighted total point (total number of points) shown in FIG. 8A is divided by the number of steps of the program to calculate the number of points per unit (1000 LOC).

すなわち、上記合計点数と上記ステップ数[LOC]とを用いて、下記の式により算出されるものである。
単位当りの点数=合計点数÷(ステップ数[LOC]/1000)
={合計点数/ステップ数[LOC]}×1000
(iii)足きり後の点数
単位当りの点数が足きりの閾値を越える場合に、足きりの閾値を単位当たりの点数とする。よって、図示の例では、機能3−2に関する単位当りの点数(17.73)のみが足きりの閾値(10.0)を越えているので、17.73を10.0に補正する。他の機能についてはそのままとする。
That is, it is calculated by the following formula using the total score and the step count [LOC].
Points per unit = total points / (number of steps [LOC] / 1000)
= {Total score / number of steps [LOC]} × 1000
(Iii) Number of points after footing When the number of points per unit exceeds the threshold for footing, the threshold for footing is taken as the number of points per unit. Therefore, in the example shown in the figure, since only the number of points per unit (17.73) relating to the function 3-2 exceeds the threshold value (10.0), 17.73 is corrected to 10.0. Other functions are left as they are.

そして、単位当りの点数を、「0〜閾値⇒0〜100」に正規化することで足きり後の点数とする。換言すれば、上記単位当りの点数を、上記足きりの閾値(10.0)を100点とする点数に置き換える。尚、これは、本例では閾値が10.0であることから、単純に、上記単位当りの点数を10倍することで(10.0を乗算することで)、足きり後の点数が算出できる。また、尚、機能3−2に関しては、上記足きりを行っているので、177.3点とはならずに、図示の通り100点となっている。
(iv)評価点数
(3)の足きり後の点数のままでは、点数が0点の場合が、違反が無く、最も良い点数となるので、100点を最も良い点数とするように換算したものが、評価点数である。
Then, the score per unit is normalized to “0 to threshold ⇒ 0 to 100” to obtain the score after the completion. In other words, the number of points per unit is replaced with the number of points where the threshold value (10.0) of the above threshold is 100 points. In this example, since the threshold value is 10.0, the number of points after the addition is simply calculated by multiplying the number of points per unit by 10 (by multiplying by 10.0). it can. In addition, regarding the function 3-2, since the above-mentioned footstep is performed, the point is not 177.3 points but 100 points as illustrated.
(Iv) Evaluation score If the score after the completion of (3) remains as it is, the score is 0 so that there is no violation and the best score is obtained. Therefore, 100 points are converted to be the best score. Is the evaluation score.

すなわち、評価点数=100−“足きり後の点数”
によって評価点数を算出する。
例えば、機能1−1の場合、足きり後の点数が38.6点であるので、
機能1−1の評価点数=100−38.6=61.4点
となる。
In other words, the evaluation score = 100− “the score after setting”
The evaluation score is calculated by
For example, in the case of the function 1-1, since the score after setting is 38.6 points,
Evaluation score of function 1-1 = 100-38.6 = 61.4 points.

但し、この例に限るものではなく、足きり後の点数を、そのまま、評価点数としてもよい(評価の仕方が変わるだけである。すなわち、0点を最も良い点数とし、0点に近いほど評価が高いものとすることになる)。   However, the present invention is not limited to this example, and the score after the addition may be used as it is as the evaluation score (only the way of evaluation changes. That is, 0 is the best score, the closer to 0 the evaluation is Will be high).

また、全体としての評価点数を求めてよい。これは、例えば、上記プログラム全体の総違反件数(=92)と、プログラム全体の総ステップ数(=30121)とを用いて、上記機能毎の場合と略同様にして、まず、単位当りの点数を求め、必要に応じて足きりを行った後、評価点数へと換算する。図示の例では、単位当りの点数は3.05であり、足きりを行う必要なく、そのまま100点満点の点数系へと換算した後に(10倍した後に)評価点数へと換算した結果、全体の評価点数は‘69.5’となる。   Moreover, you may obtain | require the evaluation score as a whole. For example, the total number of violations of the entire program (= 92) and the total number of steps of the entire program (= 30121) are used in the same manner as in the case of each function. Is calculated as necessary, and then converted into an evaluation score. In the example shown in the figure, the number of points per unit is 3.05, and it is not necessary to add a footstep, and after converting it into a scoring system of 100 points as a whole (after multiplying by 10), as a result, The evaluation score is “69.5”.

但し、この例に限るものではなく、例えば、機能1−1から機能3−2までの6つの各機能の評価点数を加算して合計値を求め、この合計値を機能数(=6)で除算することで、全体としての評価点数を求めるようにしてもよい。   However, the present invention is not limited to this example. For example, the evaluation score of each of the six functions from function 1-1 to function 3-2 is added to obtain a total value, and the total value is calculated by the number of functions (= 6). By dividing, the evaluation score as a whole may be obtained.

以上のコンピュータ処理結果を用いて、例えば一例としては、上記各評価点数や全体の評価点数によって、開発者等が評価対象のプログラムの評価を行うようにしてもよい。しかしながら、例えば組込み用のプログラムの場合、図2のソフトウェア構造(階層と機能)の規定に(分かっていても)違反せざるを得ないケースが頻繁に発生するケースも有り得るので、評価点数が低いから悪いと言い切れない場合がある。   Using the above computer processing results, for example, a developer or the like may evaluate the evaluation target program based on the above-mentioned evaluation scores or the overall evaluation scores. However, for example, in the case of an embedded program, there may be a case in which it is often necessary to violate the provisions of the software structure (hierarchy and functions) in FIG. There are cases where it cannot be said that it is bad.

一方、プログラムを改良したりバージョンアップしたり流用する場合がある。また、この場合、最初の(ベースとなる)プログラムが古い場合も有り得る。この様な古いプログラムの場合、図2のソフトウェア構造(階層と機能)の規定など意識することなく作りこんでいる場合も少なくない。この様なプログラムに係るバージョンアップ版等のプログラムの場合、評価点数が高いことは期待できず、評価点数が少なくとも以前よりも低くならなければそれでよいと言うことが(最低でも現状維持とすることが)、現実的な評価基準となる場合が少なくない。   On the other hand, the program may be improved, upgraded, or diverted. In this case, the first (base) program may be old. In the case of such an old program, it is often the case that the software program (hierarchy and function) shown in FIG. In the case of a program such as an upgraded version related to such a program, it can not be expected that the evaluation score will be high, and if the evaluation score is not at least lower than before, it may be sufficient (at least keep the current status) ), But often a realistic evaluation criterion.

この様な観点から、上記評価点数を更に偏差値によって評価することが考えられる。つまり、過去の製品のデータを元に、製品毎に偏差値を出すことによって相対評価を行う。
図9に、その一例を示す。
From such a viewpoint, it can be considered that the evaluation score is further evaluated by a deviation value. That is, relative evaluation is performed by calculating a deviation value for each product based on past product data.
An example is shown in FIG.

図9は、偏差値算出処理の具体例を示す図である。
図9において、製品Aが、今回の評価対象のプログラムであるものとし、よって図示のように点数(全体の評価点数)は69.5点となっている。
FIG. 9 is a diagram illustrating a specific example of the deviation value calculation process.
In FIG. 9, it is assumed that the product A is a program to be evaluated this time, and thus the score (total evaluation score) is 69.5 points as shown in the figure.

一方、製品B〜製品Eは、製品Aに関連するプログラムであって過去に作成されていたプログラム等である。これらの製品B〜製品Eについても、それぞれ、上記製品Aと同様の処理によって点数(全体の評価点数)が求められている。   On the other hand, the products B to E are programs related to the product A and are programs created in the past. For these products B to E, the score (total evaluation score) is determined by the same processing as that for the product A.

以上の5つの製品の点数(全体の評価点数)の平均値(図示の例では38.7)を算出し、この平均値に基づいて図示のように各製品A〜製品Eそれぞれの偏差値を求める。偏差値の求め方は、よく知られているので、ここでは特に説明しないが、まず上記平均値と求め、これに基づいて標準偏差を求め、以って偏差値を求まることになる。   The average value (38.7 in the illustrated example) of the scores of the above five products (total evaluation score) is calculated, and the deviation values of the products A to E are calculated based on this average value as shown in the figure. Ask. The method of obtaining the deviation value is well known, and is not particularly described here. However, first, the average value is obtained, and the standard deviation is obtained based on the average value, whereby the deviation value is obtained.

そして、今回の評価対象の製品Aの偏差値によって、製品Aの評価を行う。
図示の例では製品Aの偏差値は‘61.9’となり、過去の製品と比べて改善していることが分かる。
Then, the product A is evaluated based on the deviation value of the product A to be evaluated this time.
In the example shown in the figure, the deviation value of the product A is “61.9”, which indicates that it is improved compared to the past products.

図10は、階層定義テーブルとアクセス違反例外登録ファイルの半自動作成に係る処理・作業の流れを示す図である。
また、図11に、プログラムソース28を構成するプログラムファイルの内容例を示す。
FIG. 10 is a diagram showing a flow of processing / work related to semi-automatic creation of a hierarchy definition table and an access violation exception registration file.
FIG. 11 shows an example of the contents of a program file that constitutes the program source 28.

図10に示すように、上記処理・作業の流れは、概略的には図示の(1)〜(6)となる。以下、これら(1)〜(6)について説明する。
(1)新規プログラムの登録
まず、任意の担当者(プログラム登録者)が、作成済みのプログラムソース28(または、各機能の雛形プログラム)を、管理サーバ10に登録する。管理サーバ10の不図示の記憶装置(ハードディスク等)に、プログラムソース28が記憶される。
As shown in FIG. 10, the flow of the processing / work is roughly (1) to (6) shown in the drawing. Hereinafter, (1) to (6) will be described.
(1) Registration of New Program First, an arbitrary person in charge (program registrant) registers the created program source 28 (or a template program for each function) in the management server 10. The program source 28 is stored in a storage device (hard disk or the like) (not shown) of the management server 10.

尚、雛形プログラムとは、外部関数のインターフェース(API)だけを宣言したプログラムのことである。ここで、階層構造のチェックは、プログラム作成(コーディング)後に行う。しかしながら、ソフトウェアの新規開発の場合は、機能毎のプログラムが並行して作成されるので、全部作成しないとチェックできない。そのため、雛形プログラムを最初に作成して、階層定義テーブルを生成可能としておくことにより、プログラムが完成していなくても、アクセス違反を検出できるようにすることができる。   The template program is a program that declares only the interface (API) of the external function. Here, the hierarchical structure is checked after creating (coding) the program. However, in the case of new software development, since programs for each function are created in parallel, it is not possible to check without creating all of them. Therefore, by creating a template program first and making it possible to generate a hierarchy definition table, it is possible to detect an access violation even if the program is not completed.

但し、以下の説明では、プログラムソース28を用いる場合を例にするものとし、雛形プログラムについては特に言及しないが、上記の通り雛形プログラムが登録されるものであってもよく、これより当然、解析対象は雛形プログラムであってもよい。
(2)プログラム解析処理
システム全体を管理している管理者(設計者)は、例えば操作端末1を操作して、ネットワーク2を介して管理サーバ10にアクセスして、以下に説明する様々な要求を管理サーバ10に送って、要求に応じた処理実行させる。尚、以下の管理サーバ10の処理の説明においては、管理者による操作端末1の操作については逐一述べない場合もあるものとする。尚、この例に限らず、管理者は管理サーバ10を直接操作して、所望の処理を実行させるものであっても構わない。また、上記要求などに対する管理サーバ10の各種処理実行は、基本的にはサーバメイン処理部11の管理の元に行われ、サーバメイン処理部11が要求に応じた処理を直接または間接的に呼び出すと共に、処理結果はサーバメイン処理部11に返されて、サーバメイン処理部11から操作端末1に返信されるものであるが、これについても逐一述べない場合もあるものとする。
However, in the following description, the case where the program source 28 is used is taken as an example, and the template program is not particularly mentioned. However, as described above, the template program may be registered. The target may be a template program.
(2) Program analysis processing An administrator (designer) who manages the entire system, for example, operates the operation terminal 1 to access the management server 10 via the network 2 and various requests described below. Is sent to the management server 10 to execute processing according to the request. In the following description of the processing of the management server 10, the operation of the operation terminal 1 by the administrator may not be described one by one. The manager is not limited to this example, and the administrator may directly operate the management server 10 to execute a desired process. In addition, the various processes executed by the management server 10 in response to the above request are basically performed under the management of the server main processing unit 11, and the server main processing unit 11 directly or indirectly calls a process according to the request. At the same time, the processing result is returned to the server main processing unit 11 and is returned from the server main processing unit 11 to the operation terminal 1. However, this may not be described one by one.

例えば、上記要求としてプログラム解析の要求を受けたサーバメイン処理部11は、定義生成タスク部14等を介してプログラム解析処理(図18など)を呼び出し、(1)で登録されたプログラムソース28から抽出した下記のデータを、階層定義テーブル(作成中)21とアクセス違反例外登録ファイル(作成中)26それぞれの該当フィールドに書き込む。   For example, the server main processing unit 11 that has received the program analysis request as the request calls the program analysis processing (FIG. 18 and the like) via the definition generation task unit 14 and the like, and from the program source 28 registered in (1). The following extracted data is written in the corresponding fields of the hierarchy definition table (under creation) 21 and the access violation exception registration file (under creation) 26, respectively.

尚、階層定義テーブルは、全データが登録済みの状態になるまでは(作成途中段階では)階層定義テーブル(作成中)21として一時的に記憶しておき、全データが登録済みの状態となったら(完成したら)階層定義テーブル(登録)22として保存するものとする。   Note that the hierarchy definition table is temporarily stored as the hierarchy definition table (during creation) 21 until all data has been registered (during creation), and all the data has been registered. When completed (when completed), it is stored as a hierarchy definition table (registration) 22.

また、例えば、データが無い状態(初期状態;デフォルト)の階層定義テーブル(換言すれば、“階層定義テーブルの雛形”)が、予め管理サーバ10の記憶装置等に格納されており、当該“(2)プログラム解析処理”の最初に、この“階層定義テーブルの雛形”のコピーを作成して、所定の記憶領域(メモリ等における作業領域など)に格納するようにしてもよい(これを階層定義テーブル(作成中)の初期状態と見做してよい)。   Further, for example, a hierarchy definition table (in other words, “hierarchy definition table template”) in a state where there is no data (an initial state; default) is stored in advance in the storage device of the management server 10, and the “( 2) At the beginning of the “program analysis process”, a copy of the “layer definition table template” may be created and stored in a predetermined storage area (such as a work area in a memory). This may be considered the initial state of the table (under construction)).

これは、アクセス違反例外登録ファイル(作成中)26についても同様であり、予め記憶されている“アクセス違反例外登録ファイルの雛形”のコピーを、初期状態のアクセス違反例外登録ファイル(作成中)26として、当該“(2)プログラム解析処理”の最初に作成しておく。   The same applies to the access violation exception registration file (in preparation) 26. A copy of the "access violation exception registration file template" stored in advance is copied to the access violation exception registration file (in preparation) 26 in the initial state. Is created at the beginning of the “(2) Program analysis process”.

尚、これらの例に限るものではなく、例えば所定のデータ項目名をテーブルの所定のフィールドに格納することで、上記階層定義テーブル(作成中)21の初期状態や、アクセス違反例外登録ファイル(作成中)26の初期状態を生成する処理等であってもよい。   Note that the present invention is not limited to these examples. For example, by storing a predetermined data item name in a predetermined field of the table, the initial state of the hierarchy definition table (under construction) 21 or an access violation exception registration file (created) Medium) 26 initial state generation processing or the like may be used.

そして、該当フィールドに下記のデータを書き込む処理は、これら初期状態のテーブル(作成中)21、ファイル(作成中)26に対して行われることになる。更に、当該“(2)プログラム解析処理”によって下記のデータが書き込まれたテーブル(作成中)21に対して、後述する“(3)階層登録&入力チェック”による階層番号/機能番号の入力が行われることになる。このように、階層定義テーブル(作成中)21は、現在がどの処理の段階であるかによってそのデータ格納内容が異なることになる。これは、アクセス違反例外登録ファイル(作成中)26も同様である。   The process of writing the following data in the corresponding field is performed on the table (being created) 21 and the file (being created) 26 in the initial state. Furthermore, the layer number / function number input by “(3) Hierarchy registration & input check” described later is input to the table (under creation) 21 in which the following data is written by the “(2) Program analysis process”. Will be done. As described above, the data storage contents of the hierarchy definition table 21 (being created) differ depending on which processing stage is currently performed. The same applies to the access violation exception registration file (during creation) 26.

1)階層定義テーブル(作成中)21
・ 抽出データ : 抽出元
・機能コード :プログラムファイル名
・機能名 :プログラムヘッダ
2)アクセス違反例外登録ファイル(作成中)26
・ 抽出データ : 抽出元
・参照元機能コード :プログラムファイル名
・ソース名 :プログラムファイル名
・参照先機能コード :参照している関数名、変数名から機能コードを抽出
・検出対象名称 :参照している関数名、変数名
・検出種別コード :参照している関数名、変数名によって判断する。尚、ここで抽出する検出種別コードは、>0(正の値)、あるいは−5や−6である(換言すれば、−1〜−4以外である)。
(3)階層登録&入力チェック;
システム全体を管理している管理者(設計者など)が、操作端末1を操作して、管理サーバ10と連携して以下のデータ登録や処理を実行させる。
1) Hierarchy definition table (under construction) 21
-Extraction data: Extraction source-Function code: Program file name-Function name: Program header 2) Access violation exception registration file (under construction) 26
-Extraction data: Extraction source-Reference source function code: Program file name-Source name: Program file name-Reference destination function code: Extract function code from the referenced function name and variable name-Detection target name: Refer Function name and variable name • Detection type code: Judged by the function name and variable name being referenced. The detection type code extracted here is> 0 (positive value), or -5 or -6 (in other words, other than -1 to -4).
(3) Hierarchy registration & input check;
An administrator (designer or the like) that manages the entire system operates the operation terminal 1 to execute the following data registration and processing in cooperation with the management server 10.

1)階層番号32、又は/及び、機能番号33の登録
管理サーバ10は、例えば、操作端末1からの所定の要求に応じて、階層定義テーブル(作成中)21(上記“(2)プログラム解析処理”後の状態)を所定の記憶領域から読み出し、これを操作端末1側で表示させると共に、ユーザ(設計者など)に任意のデータを入力させる。これより、ユーザは、階層番号32、又は/及び、機能番号33を任意に入力する。
1) Registration of the hierarchy number 32 or / and the function number 33 The management server 10 responds to a predetermined request from the operation terminal 1, for example, the hierarchy definition table (under construction) 21 (the above “(2) program analysis” The state after “processing” is read out from a predetermined storage area and displayed on the operation terminal 1 side, and a user (designer or the like) inputs arbitrary data. Thus, the user arbitrarily inputs the layer number 32 or / and the function number 33.

尚、階層番号32と機能番号33の両方を入力すると、機能番号33は階層番号32を含むので矛盾が生じる場合があるので、入力時にどちらか一方しか入力できないようにしても良い。勿論、両方とも入力できるようにしてもよい。更に、その場合、後述する図19のように入力チェック処理(入力された階層番号32と機能番号33とが相互に整合するか否かをチェックする処理)も行うようにしてもよい。   If both the layer number 32 and the function number 33 are input, since the function number 33 includes the layer number 32, a contradiction may occur. Therefore, only one of them may be input at the time of input. Of course, both may be input. Further, in that case, an input check process (a process for checking whether or not the input hierarchy number 32 and the function number 33 match each other) may be performed as shown in FIG.

2)管理サーバ10に書き込む;
管理サーバ10は、上記操作端末1側での階層番号32/機能番号33の入力内容を、自己が保持・管理している階層定義テーブル(作成中)21に反映させる(テーブル21を更新する)。例えば、後述する図12(a)に示す状態から、図12(b)または図12(d)の状態へと更新する。
2) Write to the management server 10;
The management server 10 reflects the input contents of the layer number 32 / function number 33 on the operation terminal 1 side in the layer definition table (in preparation) 21 held and managed by itself (updates the table 21). . For example, the state is updated from the state shown in FIG. 12A to be described later to the state shown in FIG. 12B or FIG.

3)入力のチェックを行う;
サーバメイン処理部11は、定義生成タスク部14を介して階層登録チェック処理(図19)を呼び出し、当該処理(例えば図19に示す処理)を実行させる。この処理によって定義エラー(整合エラー等)の有無が判定される。また、ユーザが階層番号32/機能番号33の何れか一方のみを入力した場合には、他方を自動生成する。更に、レコードの自動整列等を行うものであってもよい。詳しくは後に図19などで説明する。
3) Check input;
The server main processing unit 11 calls the hierarchy registration check process (FIG. 19) via the definition generation task unit 14 and causes the process (for example, the process shown in FIG. 19) to be executed. By this process, it is determined whether or not there is a definition error (such as a matching error). When the user inputs only one of the hierarchy number 32 / function number 33, the other is automatically generated. Furthermore, automatic alignment of records may be performed. Details will be described later with reference to FIG.

4)定義エラーがあれば、上記1)〜3)の処理を繰り返し、定義エラーが無ければ、階層定義テーブル(作成中)21を更に更新する(例えば、後述する図12(c)に示す状態へと更新する)。   4) If there is a definition error, the processes 1) to 3) are repeated, and if there is no definition error, the hierarchy definition table (during creation) 21 is further updated (for example, the state shown in FIG. 12C described later) To update).

図12には、上記「(3)階層登録&入力チェック」の設定手順の具体例を示している。以下の設定手順(11)、(12)について説明する。尚、以下の説明ではユーザが機能番号33と階層番号(レイヤ)32の何れか一方のみを入力する場合を想定している。
(11)ユーザが機能番号を入力するケース;
図12(a)に示す状態の階層定義テーブル(作成中)21が読み出されて表示され、ユーザが手作業で図12(b)に示すように機能番号33を入力した場合は、サーバが自動的に、機能番号33に含まれる階層番号を階層番号(レイヤ)32を反映すると共に、各レコードを機能番号順に整列する。これによって、図12(c)に示す状態となる。つまり、このケースではユーザが機能番号33を入力すると、階層番号(レイヤ)32は自動的に生成・登録されると共に、機能番号33に基づくレコード整列が行われる。これより、階層定義テーブル(作成中)21は図12(c)に示す状態へと更新される。
FIG. 12 shows a specific example of the setting procedure of “(3) Hierarchy registration & input check”. The following setting procedures (11) and (12) will be described. In the following description, it is assumed that the user inputs only one of the function number 33 and the layer number (layer) 32.
(11) A case where the user inputs a function number;
When the hierarchy definition table (under construction) 21 in the state shown in FIG. 12A is read and displayed, and the user manually inputs the function number 33 as shown in FIG. The hierarchy number included in the function number 33 is automatically reflected in the hierarchy number (layer) 32, and the records are arranged in the order of the function number. As a result, the state shown in FIG. That is, in this case, when the user inputs the function number 33, the hierarchy number (layer) 32 is automatically generated and registered, and the records are aligned based on the function number 33. As a result, the hierarchy definition table (during creation) 21 is updated to the state shown in FIG.

尚、機能番号33は“階層番号−階層内の通番”の形となっているので、“−(ハイフン)”の前の番号を取得してこれを階層番号(レイヤ)32に登録すればよい。また、上記機能番号順に整列とは、例えば、上記“階層番号−階層内の通番”に基づいて、まず階層番号が小さいもの(ここでは‘1’が最も小さい)から順に整列させ、更に階層番号が同じもの同士に関して階層内の通番が小さいもの(ここでは‘1’が最も小さい)から順に整列させるものである。
(12)ユーザが階層番号(レイヤ)を入力するケース;
図12(a)に示す状態の階層定義テーブル(作成中)21が読み出されて表示され、ユーザが手作業で図12(d)に示すように階層番号(レイヤ)32を入力した場合は、下記のように処理することで、階層定義テーブル(作成中)21は、例えば図12(e)、(f)に示す状態を経て、図12(c)に示す状態へと更新される。
・ユーザが階層番号(レイヤ)32を入力した場合は、各機能のレイヤ内の位置(順番;通番)が未定なので、下記のように通番の決定やテーブル32の各レコードの整列を行って、機能番号33を自動生成する。
Since the function number 33 is in the form of “hierarchy number-sequential number in the hierarchy”, the number before “-(hyphen)” may be acquired and registered in the hierarchy number (layer) 32. . The ordering by function number is, for example, based on the above-mentioned “hierarchy number-serial number in the hierarchy”, in order from the lowest hierarchical number (here, “1” is the smallest), and further, the hierarchical number Are arranged in order from the one with the smallest serial number in the hierarchy (here, “1” is the smallest).
(12) A case where the user inputs a layer number (layer);
When the hierarchy definition table (in preparation) 21 in the state shown in FIG. 12A is read and displayed, and the user manually inputs the hierarchy number (layer) 32 as shown in FIG. 12D By processing as described below, the hierarchy definition table (during creation) 21 is updated to the state shown in FIG. 12C through the state shown in FIGS. 12E and 12F, for example.
When the user inputs the layer number (layer) 32, the position (order: serial number) in the layer of each function is undecided, so the serial number is determined and the records in the table 32 are arranged as follows. A function number 33 is automatically generated.

(一)各レコードを、レイヤ(階層番号32)が小さいもの(ここでは‘1’が最も小さい)から順に整列する。
(二)各レイヤ毎に、機能コード34の先頭文字のアルファベット順にレコードを整列する。
(1) The records are arranged in order from the one with the smallest layer (hierarchy number 32) (here, “1” is smallest).
(2) Records are arranged in alphabetical order of the first character of the function code 34 for each layer.

(三)各レコード毎に、その階層番号(レイヤ)32とレイヤ内の順番に基づいて、機能番号33を自動生成する。
・ユーザが各機能のレイヤ内の位置を設計時に決めていない場合は、上記(一)〜(三)で自動的に整列・生成したものを、そのまま登録する(ケースA)。
・ユーザが各機能のレイヤ内の位置を設計時に決めている場合には、上記のように自動的に整列したものが、自己が決めているものと異なる場合には、自己が決めていたものと合うように調整し(手作業で入力等し)、再度自動的に整列した後に登録する(ケースB)。尚、当然、上記のように自動的に整列したものが、自己が決めているものと同じとなっている場合には、ケースAと同様に、上記のように自動的に整列・生成したものを、そのまま登録する。
(3) For each record, the function number 33 is automatically generated based on the layer number (layer) 32 and the order in the layer.
If the user has not decided the position of each function in the layer at the time of designing, the one automatically arranged and generated in the above (1) to (3) is registered as it is (Case A).
・ When the user determines the position of each function in the layer at the time of design, if the automatically aligned one is different from the one determined by the user, the one determined by the user So that they are aligned with each other (input manually, etc.), and after being automatically aligned again, they are registered (case B). As a matter of course, in the case where what is automatically aligned as described above is the same as that determined by itself, as in case A, it is automatically aligned and generated as described above. Are registered as they are.

以下、上述した(一)〜(三)の処理について、図12に示す具体例を参照しながら更に説明する。
ユーザが例えば図12(d)に示すように階層番号32を手作業で入力すると、上述した処理が開始される。すなわち、まず、上記(一)に従ってテーブル12のレコードを整列することで、階層番号(レイヤ)32が小さいもの(ここでは‘1’が最も小さい)から順に整列される。更に、レイヤ内の順番を決定・整列する。これは、階層番号(レイヤ)32が同じレコード同士の順番を、例えば上記(二)に従って機能コード34のアルファベット順に整列する。これらの処理を行うことで、階層定義テーブル(作成中)21は、レコードの順番に関しては、図12(d)に示す状態から図12(e)に示す状態となる(但し、この段階では未だ機能番号33は未登録である)。
Hereinafter, the processes (1) to (3) described above will be further described with reference to a specific example shown in FIG.
When the user manually inputs the hierarchy number 32 as shown in FIG. 12D, for example, the above-described processing is started. That is, first, the records in the table 12 are arranged according to the above (1), and the records are arranged in order from the one having the smallest layer number (layer) 32 (here, “1” is smallest). Further, the order in the layers is determined and arranged. This arranges the order of records having the same layer number (layer) 32 in alphabetical order of the function code 34 according to (2) above, for example. By performing these processes, the hierarchy definition table (under construction) 21 changes from the state shown in FIG. 12D to the state shown in FIG. Function number 33 is unregistered).

例えば階層番号(レイヤ)32が‘2’のレコードに関しては、機能コード34が“COM”と“SYS”であるので、図12(e)に示すように“COM”のレコードの方が先となる。   For example, for the record whose layer number (layer) 32 is “2”, since the function code 34 is “COM” and “SYS”, the record of “COM” is the first as shown in FIG. Become.

そして、階層番号(レイヤ)32と階層内での順番とによって上記“階層番号−階層内の通番”の形の機能番号33を自動的に生成・登録することができる(上記(三))。これによって、図12(e)に示す状態とすることができる。上記ケースAの場合には、図12(e)に示す状態をそのまま階層定義テーブル(作成中)21の更新版として保存することになる。   Then, the function number 33 in the form of “hierarchy number−serial number in the hierarchy” can be automatically generated and registered based on the hierarchy number (layer) 32 and the order in the hierarchy (above (3)). As a result, the state shown in FIG. In the case A, the state shown in FIG. 12E is stored as an updated version of the hierarchy definition table 21 (being created) as it is.

一方、上記ケースBの場合であって、仮に開発者等が設計時に階層‘1’に関してはSCIはRTCより順番を先にすべきものと決めていた場合には、図12(e)に示す状態では順番が逆になっていることになる。よって、この場合には、ユーザが手作業で図12(f)に示すように機能番号33を修正することで、管理サーバ10は機能番号33に従ってレコードを再整列する処理を行う。これによって図12(c)に示す状態となり、これが階層定義テーブル(作成中)21の更新版として保存されることになる。   On the other hand, in the case of the above case B, if the developer or the like decides that the order of the hierarchy “1” should be prior to the RTC at the time of design, the state shown in FIG. Then the order is reversed. Therefore, in this case, when the user manually corrects the function number 33 as shown in FIG. 12 (f), the management server 10 performs the process of rearranging the records according to the function number 33. As a result, the state shown in FIG. 12C is obtained, and this is saved as an updated version of the hierarchy definition table 21 (being created).

尚、ユーザ等が予めレイヤ内の通番を決めている場合は(11)機能番号入力、決めていない場合は(12)階層番号(レイヤ)入力を想定している。但し、決めていない場合でも順番を変更したい場合があるので、順番を手作業で入れ替えられるようにする。   It is assumed that (11) function number input when the user or the like has previously determined a serial number in the layer, and (12) layer number (layer) input when the user or the like has not. However, the order may be changed even if it is not decided, so that the order can be changed manually.

尚、図12には示していないが、上記図12(c)に示す状態となった後、更に、機能番号33を(図示の整列順に)呼び出し先36に格納するようにしてもよい。これによって、呼び出し先36には、例えば図4に示すように、機能1−1〜機能3−2まで整列順に機能番号が格納されることになる。   Although not shown in FIG. 12, after the state shown in FIG. 12C is obtained, the function number 33 may be further stored in the call destination 36 (in the order of arrangement in the drawing). As a result, the function numbers are stored in the call destination 36 in the order of the functions 1-1 to 3-2 as shown in FIG. 4, for example.

以上、図10に示す“(3)階層登録&入力チェック”の処理・作業について説明した。
次に、以下、図10に示す“(4)アクセス違反抽出&正常を削除”の処理・作業について説明する。
(4)アクセス違反抽出&正常を削除
システム全体を管理している管理者(設計者など)は、操作端末1を操作して、定義生成タスク部14を介して階層違反例外検出処理(図20)を呼び出す。この処理では、上記(3)で更新後の階層定義テーブル(作成中)21を参照して、アクセス違反例外登録ファイル(作成中)26における各レコードのうちアクセス違反であるアクセス(ペア)が記録されたレコードを検出し、その検出種別コード45を書き換える(検出種別コード45の1〜4を、アクセス違反がある場合は−1〜−4にする)。さらに、正常である(アクセス違反ではない)レコードを削除する。
The processing and work of “(3) Hierarchy registration & input check” shown in FIG. 10 has been described above.
Next, the processing and work of “(4) Access violation extraction & normal deletion” shown in FIG. 10 will be described.
(4) Access Violation Extraction & Normal Delete An administrator (designer, etc.) who manages the entire system operates the operation terminal 1 and performs a hierarchy violation exception detection process via the definition generation task unit 14 (FIG. 20). ). In this process, referring to the updated hierarchy definition table (during creation) 21 in (3) above, the access (pair) that is an access violation among the records in the access violation exception registration file (during creation) 26 is recorded. The detected record is detected and the detection type code 45 is rewritten (1 to 4 of the detection type code 45 is changed to -1 to -4 if there is an access violation). Furthermore, normal records (not access violations) are deleted.

図13には、上記(4)“アクセス違反抽出&正常を削除”処理の設定手順の具体例を示している。これは、例えば下記の(21)、(22)のようになる。
尚、アクセス違反例外登録ファイル(作成中)26は、本処理の開始時には、上記(2)の処理(図18の処理等)によって例えば図13(a)に示す状態になっている場合、本処理によって図13(b)の状態を経て図13(c)の状態がアクセス違反例外登録ファイル(作成中)26の更新版として保存されることになる。
(21)アクセス違反を抽出
階層定義テーブル(作成中)21を参照して、アクセス違反例外登録ファイル(作成中)26の登録されている各レコードに記録される各アクセス(ペア)のアクセス違反の有無を判定し、アクセス違反のレコードはその検出種別コード45をマイナスの値(−1〜−4)にする(処理フローは図20のS201参照)。
(22)正常を削除
検出種別コード45が正常(>0)であるレコードを全て削除する(処理フローは図20のS202参照)。
FIG. 13 shows a specific example of the setting procedure of the (4) “access violation extraction & normal deletion” process. This is, for example, the following (21) and (22).
It should be noted that the access violation exception registration file (during creation) 26 is stored in the state shown in FIG. 13A, for example, by the process (2) (the process shown in FIG. 18) at the start of this process. Through the processing, the state of FIG. 13C is stored as an updated version of the access violation exception registration file (under construction) 26 through the state of FIG. 13B.
(21) Extracting access violation Referring to the hierarchy definition table (under construction) 21, the access violation of each access (pair) recorded in each record registered in the access violation exception registration file (under creation) 26 The presence / absence is determined, and the record of access violation sets the detection type code 45 to a negative value (−1 to −4) (see S201 of FIG. 20 for the processing flow).
(22) Delete normal Delete all records whose detection type code 45 is normal (> 0) (see S202 of FIG. 20 for the processing flow).

以上の処理によって更新後のアクセス違反例外登録ファイル(作成中)26は、プログラムソース28においてアクセス違反となる関数/変数のアクセスに係る箇所が、全て抽出されて登録されたに等しい状態となる。そして、後述する(5)によって、ユーザ(開発者等)が、上記登録されたアクセス違反のなかから任意のアクセス違反(複数あってもよいし全てであってもよい)を、例外とするように指定することができる。
(5)アクセス違反例外の許可登録
システム全体を管理している管理者(設計者など)は、アクセス違反例外の許可登録を行うために、操作端末1で以下の指示操作を行うことで、管理サーバ10のアクセス違反例外登録ファイル(作成中)26を更新させる。尚、本処理については特にフローチャート図等は作成していない。
Through the above processing, the updated access violation exception registration file (during creation) 26 is in a state where all the locations related to access to functions / variables that cause access violations in the program source 28 are extracted and registered. Then, according to (5) described later, the user (developer, etc.) makes an exception of any access violation (may be plural or all) from among the registered access violations. Can be specified.
(5) Access violation exception permission registration Administrators (such as designers) who manage the entire system perform the following instruction operations on the operation terminal 1 in order to register permission for access violation exceptions. The access violation exception registration file (during creation) 26 of the server 10 is updated. Note that a flowchart or the like is not particularly created for this processing.

1)アクセス違反例外登録ファイル(作成中)26を読み出して、操作端末1の画面上に表示させる。尚、この画面上ではファイル26の内容を任意に編集(追加、変更、削除など)することができる。また、尚、このときのアクセス違反例外登録ファイル(作成中)26は、上記(4)“アクセス違反抽出&正常を削除”処理後の状態となっている(従って、検出種別コード45が正の値(>0)のレコードは、存在しないはずである)。   1) The access violation exception registration file (during creation) 26 is read out and displayed on the screen of the operation terminal 1. It should be noted that the contents of the file 26 can be arbitrarily edited (added, changed, deleted, etc.) on this screen. In addition, the access violation exception registration file (being created) 26 at this time is in a state after the above (4) “access violation extraction & normal deletion” processing (therefore, the detection type code 45 is positive). There should be no record with value (> 0)).

2)上記管理者は、上記画面上でファイル26に対して、例外的なアクセス許可の可否(例外アクセス許可フラグ46)の登録を行うと共に、この可否登録をした人物が特定できるように自己の名前(可否判定者47)を入力する。尚、本例では、アクセス許可する場合には、例外アクセス許可フラグ46に‘1’を設定させるものとするが、この例に限らない。   2) The administrator registers whether or not to allow exceptional access permission (exception access permission flag 46) for the file 26 on the screen, and also allows the person who has made this permission registration to be identified. Enter the name (Availability Judge 47). In this example, when the access is permitted, the exception access permission flag 46 is set to “1”, but the present invention is not limited to this example.

尚、可否判定者47は、上記のように名前を直接入力しても良いが、操作端末1にログインした時のIDなどを自動登録するものであってもよい。また、本例以外に、判定理由等を入力させるようにしてもよい。判定理由等は、上記画面上で直接入力してもよいし、判定理由の選択項目(“システムエラー情報収集”、“障害解析用トレース情報”など)等を予め用意して選択させてもよい。   The availability determination person 47 may directly input the name as described above, or may automatically register the ID when logging in to the operation terminal 1. In addition to this example, a determination reason or the like may be input. The determination reason or the like may be directly input on the above screen, or selection items for the determination reason (such as “system error information collection”, “trace information for failure analysis”) may be prepared and selected in advance. .

3)上記編集作業後のアクセス違反例外登録ファイル(作成中)26を管理サーバ10側で保存させる(ファイル26を更新させる)。
上記のように、アクセス違反例外登録ファイル(作成中)26に登録された各アクセス違反のなかで、管理者等の判断により例外扱い(違反としない)するものが手作業で登録される。そして、この様な例外登録済みのアクセス違反例外登録ファイル(作成中)26を用いて、図10に示す下記の(6)の処理を行うことで、階層定義テーブルの半自動作成が完了することになる(階層定義テーブル(登録)22として保存する)。その後は、保存された階層定義テーブル(登録)22を用いて、上述した点数化・評価処理が行われることになる。
3) The access violation exception registration file (being created) 26 after the editing operation is saved on the management server 10 side (the file 26 is updated).
As described above, among the access violations registered in the access violation exception registration file (during creation) 26, those that are handled as exceptions (not determined as violations) by the administrator's judgment are manually registered. Then, the semi-automatic creation of the hierarchy definition table is completed by performing the following process (6) shown in FIG. 10 using such an exception registered access violation exception registration file (being created) 26. (Stored as a hierarchy definition table (registration) 22). Thereafter, the scoring / evaluation process described above is performed using the saved hierarchy definition table (registration) 22.

以下、図10に示す“(6)階層違反許容の登録”処理について説明する。
(6)階層違反許容の登録
システム全体を管理している管理者(設計者)は、操作端末1を操作して、定義生成タスク部14を介して階層違反許容の登録処理(図21)を呼び出す。この処理では、アクセス違反例外登録ファイル(作成中)26から上記例外的にアクセス許可されたもの以外のレコード(例外アクセス許可フラグ46=‘0’のレコード)を全て削除して、これをアクセス違反例外登録ファイル(登録)27として保存する。
Hereinafter, the “(6) Hierarchy violation permission registration” process shown in FIG. 10 will be described.
(6) Registration of Hierarchy Violation Allowance An administrator (designer) who manages the entire system operates the operation terminal 1 and performs a registration process of hierarchy violation allowance (FIG. 21) via the definition generation task unit 14. call. In this process, all records other than those that are exceptionally permitted to access (records with exception access permission flag 46 = '0') are deleted from the access violation exception registration file (during creation) 26, and this is regarded as an access violation. Saved as an exception registration file (registration) 27.

つまり、上記処理によってアクセス違反例外登録ファイルが実質的に完成したものとなり、アクセス違反例外登録ファイル(登録)27として保存する。
そして、アクセス違反例外登録ファイル(登録)27を用いて、階層定義テーブル(作成中)21における未登録部分の自動設定、すなわち「階層違反の有無や許容情報(許容登録数)」の自動設定を行うことで、階層定義テーブルを完成させる(階層定義テーブル(登録)22として保存する)。
That is, the access violation exception registration file is substantially completed by the above processing, and is stored as the access violation exception registration file (registration) 27.
Then, using the access violation exception registration file (registration) 27, automatic setting of an unregistered portion in the hierarchy definition table (during creation) 21, that is, automatic setting of “existence of hierarchy violation and allowable information (allowable registration number)” is performed. By doing so, the hierarchy definition table is completed (stored as the hierarchy definition table (registration) 22).

上記自動設定の際に、アクセス違反例外登録ファイル(登録)27を参照することで上記“許容登録数”を求めることができる。これについては後に図21を参照して説明する。   In the automatic setting, the “allowable registration number” can be obtained by referring to the access violation exception registration file (registration) 27. This will be described later with reference to FIG.

上記のように、本手法では、階層定義テーブルの半自動作成を実現することができるが、更に、新規に発生したアクセス違反を見過ごすことが無くなるようにできる。これは、アクセス違反例外登録ファイルを利用することで実現できる。上記のようにアクセス違反例外登録ファイルには各アクセス違反内容が登録されるので、例えばアクセス違反が1つ増加し1つ減少することでトータルのアクセス違反数は変わらない場合でも、アクセス違反の増加と減少があったことを判別できる。   As described above, in this method, semi-automatic creation of a hierarchy definition table can be realized, but it is also possible to avoid overlooking a newly generated access violation. This can be realized by using an access violation exception registration file. As described above, the contents of each access violation are registered in the access violation exception registration file. For example, even if the total number of access violations does not change by increasing the number of access violations by one, the number of access violations increases. It can be determined that there was a decrease.

尚、本特徴に関しては、今回の解析対象のプログラムソース28は、例えばバージョンアップ版等であり、過去に作成済みのプログラムソース28(旧バージョン等)をベースにして作成されたものであり、且つ、過去のプログラムソース28(旧バージョン等)についても上述した処理等によってアクセス違反例外登録ファイル(前回のアクセス違反例外登録ファイルとする)が既に作成済みであるものとする。そして、今回の解析対象のプログラムソース28についてもアクセス違反例外登録ファイル(今回のアクセス違反例外登録ファイルとする)等が作成されたら、これを前回のファイルと比較することで、アクセス違反の増加または減少があったことを判別できる。   Regarding this feature, the program source 28 to be analyzed this time is, for example, an upgraded version, which is created based on a program source 28 (such as an old version) that has been created in the past, and It is assumed that an access violation exception registration file (referred to as the previous access violation exception registration file) has already been created for the past program source 28 (old version or the like) by the above-described processing or the like. Then, when an access violation exception registration file (this access violation exception registration file) is also created for the program source 28 to be analyzed this time, by comparing this with the previous file, an increase in access violations or It can be determined that there was a decrease.

図14に、この様なアクセス違反判別に係る作業・処理の流れを示す。
上述したように、この様な処理によって、新規に発生したアクセス違反を見過ごすことが無くなる(保守性維持)という効果が得られる。あるいは、機能の追加/削除が正しくされているのかユーザが確認できるという効果も得られる。
FIG. 14 shows a flow of work / processing related to such access violation discrimination.
As described above, such processing provides an effect of not overlooking a newly generated access violation (maintaining maintainability). Alternatively, it is possible to obtain an effect that the user can confirm whether the addition / deletion of the function is correct.

以下、図14に示す処理手順(31)、(32)、(33)について説明する。
(31)テーブル作成
今回の解析対象のプログラムソース28に対する上記プログラム評価処理に伴って、階層定義テーブル21または22と、アクセス違反例外登録ファイル26または27を作成する。尚、これらのテーブルの作成は、上述した(2)〜(6)の処理によって実現できるので、ここでは説明を省略する。
(32)機能コードの差分抽出
今回の処理対象プログラムについて上記(31)の処理で作成された階層定義テーブル(作成中)21(但し、階層定義テーブル(登録)22であっても構わない)と、前回のプログラム評価の際に作成してあった階層定義テーブル(登録)22との比較処理を行い、両者の機能コードの違い(差分)を検出する。例えば、比較処理のプログラム(階層定義テーブル比較処理(図22))を呼び出し、上記差分の検出結果(機能コードの追加/削除)を格納するテーブル(階層定義テーブル(差分)29”))を作成する。
Hereinafter, the processing procedures (31), (32), and (33) illustrated in FIG. 14 will be described.
(31) Table creation The hierarchy definition table 21 or 22 and the access violation exception registration file 26 or 27 are created along with the program evaluation process for the program source 28 to be analyzed this time. Note that the creation of these tables can be realized by the processes (2) to (6) described above, and therefore the description thereof is omitted here.
(32) Function code difference extraction The hierarchy definition table (being created) 21 created in the process (31) for the current processing target program (however, it may be the hierarchy definition table (registration) 22) and Then, a comparison process with the hierarchy definition table (registration) 22 created at the previous program evaluation is performed, and a difference (difference) between the function codes of the two is detected. For example, a comparison process program (hierarchy definition table comparison process (FIG. 22)) is called, and a table (hierarchy definition table (difference) 29 ″)) for storing the above-described difference detection result (addition / deletion of function code) is created. To do.

尚、上記前回のプログラム評価とは、例えば今回の評価対象のプログラムの前のバージョン(旧バージョン)について、過去に行われたプログラム評価を意味する。このときに作成された階層定義テーブルとアクセス違反例外登録ファイルを保存しておくことで、本処理を実現できる。   The previous program evaluation means, for example, a program evaluation performed in the past for the previous version (old version) of the program to be evaluated this time. This process can be realized by saving the hierarchy definition table and the access violation exception registration file created at this time.

上記今回と前回の階層定義テーブル同士の比較を行い、機能コードに変化があった場合には、差分のみを例えば操作端末1に表示する。これより、システム管理者等は、機能の追加/削除が正しくされているのか内容を確認することができる。そして、もし間違いあるならば、例えばプログラムソース28の内容を修正する等の何らかの対応をとることができる。
(33)アクセス違反の差分抽出
今回の処理対象プログラムのプログラム評価で作成されたアクセス違反例外登録ファイル(作成中)26と、前回のプログラム評価の際に作成されていたアクセス違反例外登録ファイル(作成中)26との比較処理(アクセス違反例外登録ファイル比較処理(図23))を起動する。
The current hierarchy definition table is compared with the previous hierarchy definition table, and if the function code is changed, only the difference is displayed on the operation terminal 1, for example. As a result, the system administrator or the like can confirm the content of whether the addition / deletion of the function is correct. If there is a mistake, for example, some measures such as correcting the contents of the program source 28 can be taken.
(33) Access violation difference extraction The access violation exception registration file (during creation) 26 created in the program evaluation of the program to be processed this time, and the access violation exception registration file (created in the previous program evaluation) A comparison process (access violation exception registration file comparison process (FIG. 23)) is started.

上記比較の結果、異なる部分がある場合には、その部分を抽出して表示する。その際、抽出した“異なる部分”(相違点)を格納するテーブル(アクセス違反例外登録ファイル(差分)29’)を作成して、これに基づいて操作端末1への表示等を行うようにしてもよい。   If there is a different part as a result of the comparison, the part is extracted and displayed. At that time, a table (access violation exception registration file (difference) 29 ′) for storing the extracted “different parts” (differences) is created and displayed on the operation terminal 1 based on this table. Also good.

この様にすることで、システム管理者等が、アクセス違反の増加/減少を個別に認識でき、以って新規に発生したアクセス違反を見過ごすことが無くなる。先願(特願2011−281584号)では、例えば、アクセス違反が1つ増加して1つ減少した場合には、トータルではプラマイゼロとなり、アクセス違反の新規発生を判別できないことが有り得る。尚、アクセス違反の新規発生は、例えば後述する通知を表示する等してユーザが通知内容を参照することで、ユーザが判断するものとするが、この例に限らない。   By doing so, the system administrator or the like can individually recognize the increase / decrease in the access violation, and thus, it is not possible to overlook the newly generated access violation. In the prior application (Japanese Patent Application No. 2011-281484), for example, when the access violation increases by one and decreases by one, the total becomes plus zero, and it may not be possible to determine the new occurrence of the access violation. Note that a new occurrence of an access violation is determined by the user by referring to the notification content, for example, by displaying a notification to be described later, but is not limited to this example.

ここで、上記比較処理に用いる前回のファイル(作成中)26と今回のファイル(作成中)26は、作成中の状態であれば何でも良いわけでなく、図13(c)の状態であることが望ましい。よって、前回のプログラム評価の際に、図13(c)の状態のアクセス違反例外登録ファイル(作成中)26を保存しておく必要がある。また、当該処理は、今回のプログラム評価の際に、アクセス違反例外登録ファイル(作成中)26が図13(c)の状態になったときに実行することが望ましい。これによって、管理者等は、上記比較処理の結果(任意のアクセス違反の追加など)を参考にしながら、図13(d)に示すフラグ46の設定等を行うことができ、より適切な設定が行われることが期待できる。   Here, the previous file (being created) 26 and the current file (being created) 26 used for the comparison process are not limited as long as they are being created, and are in the state shown in FIG. Is desirable. Therefore, it is necessary to save the access violation exception registration file (being created) 26 in the state shown in FIG. 13C at the previous program evaluation. In addition, it is desirable to execute this processing when the access violation exception registration file (during creation) 26 is in the state shown in FIG. As a result, the administrator or the like can set the flag 46 shown in FIG. 13D while referring to the result of the comparison process (addition of an arbitrary access violation, etc.). Expect to be done.

上述した各種処理について、以下、図15以降の各図面(特にフローチャート図)を参照して更に詳細に説明する。
図15は、サーバメイン処理部11のフローチャート図である。
Hereinafter, the various processes described above will be described in more detail with reference to the drawings (particularly, flowcharts) from FIG.
FIG. 15 is a flowchart of the server main processing unit 11.

サーバメイン処理部11は、ネットワーク2経由で操作端末1から送信されてくる下記の何れかの要求に従って、下記の当該要求に対応するタスクを呼び出し、実行完了を待ち、実行完了したら処理結果を操作端末1に通知する。尚、これらの要求は、例えば上記管理者等による任意の操作に応じて、操作端末1が生成・送信するものであるが、この例に限らない。
・点数化要求 :“点数化タスク12”
・定義設定要求 :“定義アクセスタスク13”
・定義生成要求 :“定義生成タスク14”
すなわち、サーバメイン処理部11は、操作端末1からの任意の要求待ち状態で(ステップS11)任意の要求を受信したら、当該要求が点数化要求である場合には(ステップS12,YES)、点数化タスク部12を起動し(ステップS15)、点数化タスク部12の処理完了を待ち(ステップS16)、処理完了したら処理結果を操作端末1に返信する。
The server main processing unit 11 calls a task corresponding to the following request in accordance with any of the following requests transmitted from the operation terminal 1 via the network 2, waits for the completion of execution, and operates the processing result when the execution is completed. The terminal 1 is notified. Note that these requests are generated and transmitted by the operation terminal 1 in accordance with, for example, an arbitrary operation by the administrator or the like, but are not limited to this example.
・ Scoring request: “Scoring task 12”
Definition request: “Definition access task 13”
Definition generation request: “Definition generation task 14”
That is, the server main processing unit 11 receives an arbitrary request while waiting for an arbitrary request from the operation terminal 1 (step S11). If the request is a scoring request (step S12, YES), the score is given. The activation task unit 12 is activated (step S15), the process completion of the scoring task unit 12 is awaited (step S16), and the process result is returned to the operation terminal 1 when the process is completed.

尚、点数化タスク部12の処理フローチャート図は、図24に示し、後に説明する。
また、受信した要求が、テーブル/ファイル等に対するアクセス(リード/ライト)に係る要求(まとめて、定義設定要求というものとする)である場合には(ステップS13,YES)、定義アクセスタスク部13を起動し(ステップS17)、定義アクセスタスク部13の処理完了を待ち(ステップS18)、処理完了したら処理結果を操作端末1に返信する。
A process flowchart of the scoring task unit 12 is shown in FIG. 24 and will be described later.
If the received request is a request related to access (read / write) to a table / file or the like (collectively referred to as a definition setting request) (step S13, YES), the definition access task unit 13 (Step S17), waits for the processing of the definition access task unit 13 to be completed (step S18), and returns the processing result to the operation terminal 1 when the processing is completed.

また、受信した要求が、上記テーブル/ファイル等に対するアクセス(リード/ライト)以外の何らかの処理の要求(特に、上記テーブル/ファイルの自動編集/チェック等に係る処理;まとめて、定義生成要求というものとする)である場合には(ステップS14,YES)、定義生成タスク部14を起動して(ステップS19)、要求された処理の呼び出しと実行を行わせる。そして、定義生成タスク部14の処理完了を待ち(ステップS20)、処理完了したら処理結果を操作端末1に返信する。   In addition, the received request is a request for some processing other than access (read / write) to the table / file etc. (particularly, processing related to automatic editing / checking of the table / file; collectively a definition generation request) (Step S14, YES), the definition generation task unit 14 is activated (Step S19), and the requested process is called and executed. Then, it waits for the processing of the definition generation task unit 14 to be completed (step S20), and returns the processing result to the operation terminal 1 when the processing is completed.

尚、例えば、各要求のコマンドには、その要求が上記点数化要求、定義設定要求、定義生成要求の何れに分類される要求であるのかを示す何らかの識別情報が含まれており、サーバメイン処理部11は、この識別情報を参照することで、上記ステップS12、S13、S14の判定処理を行うものであるが、この例に限るわけではない。   Note that, for example, each request command includes some identification information indicating whether the request is a request classified into the above-described scoring request, definition setting request, or definition generation request. The unit 11 refers to the identification information to perform the determination processes in steps S12, S13, and S14. However, the present invention is not limited to this example.

図16は、定義アクセスタスク部13の処理フローチャート図である。
本処理では、受信した上記要求(コマンド)に基づいて、定義内容(例えば、リード/ライト対象のデータの種類やファイル名やテーブル名など)を判定し、この定義内容に該当するテーブル/ファイルにアクセス(読み書き)する処理を行うものである。
FIG. 16 is a processing flowchart of the definition access task unit 13.
In this process, based on the received request (command), the definition content (for example, the type of read / write target data, file name, table name, etc.) is determined, and the table / file corresponding to this definition content is determined. Access (read / write) is performed.

すなわち、まず、上記定義内容を判別する(ステップS31)ことで、定義内容に該当するテーブル/ファイルにアクセスする。
例えば、定義内容が“階層定義テーブル”であれば、階層定義テーブル(21or22)にアクセスする(ステップS32)。例えば、定義内容が“重み計数”や“足きりの閾値”であれば、動作情報定義テーブル23にアクセスする(ステップS33)。尚、ここでは、これらの判定のために必要な情報(特に説明しない)が、予め記憶されているものとするが、この例に限らない。
That is, first, the definition contents are discriminated (step S31), thereby accessing a table / file corresponding to the definition contents.
For example, if the definition content is “layer definition table”, the layer definition table (21 or 22) is accessed (step S32). For example, if the definition content is “weight count” or “threshold threshold”, the operation information definition table 23 is accessed (step S33). Here, it is assumed that information (not specifically described) necessary for these determinations is stored in advance, but the present invention is not limited to this example.

上記の例以外にも、定義内容に応じて、“評価対象製品のプログラム”にアクセスする場合や(ステップS34)、アクセス違反例外登録ファイル(26or27)にアクセスする場合(ステップS35)等があるが、アクセス先が不明であれば要求エラーを操作端末1へ返信する(ステップS36)。   In addition to the above example, there are a case of accessing the “evaluation target product program” (step S34) and a case of accessing the access violation exception registration file (26or27) (step S35) depending on the definition contents. If the access destination is unknown, a request error is returned to the operation terminal 1 (step S36).

また、リード要求である場合には(ステップS37,YES)、上記該当するアクセス先から読み出したデータを操作端末1へ返信する(ステップS38)。ライト要求である場合には(ステップS37,NO)、上記該当するアクセス先に対する処理結果(書込みの成功/不成功等)を操作端末1へ返信する(ステップS39)。   If the request is a read request (step S37, YES), the data read from the corresponding access destination is returned to the operation terminal 1 (step S38). If the request is a write request (NO in step S37), the processing result (successful / unsuccessful writing) for the corresponding access destination is returned to the operation terminal 1 (step S39).

尚、例えば、階層定義テーブル(作成中)21やアクセス違反例外登録ファイル(作成中)26に対して、管理者等が上述した任意の情報(例えば階層番号(レイヤ)32、機能番号33、例外アクセス許可フラグ46、可否判定者47等)を入力して更新させる際には、図16の処理が行われることになる。   For example, for the hierarchy definition table (being created) 21 and the access violation exception registration file (being created) 26, the administrator or the like has described any information (for example, the hierarchy number (layer) 32, the function number 33, the exception). When inputting and updating the access permission flag 46, the permission determination person 47, etc., the process of FIG. 16 is performed.

図17は、定義生成タスク部14の処理フローチャート図である。
構造評価用のテーブルやファイルを作成するために、操作端末1側から管理サーバ10側に対して要求を行なう場合の処理であり、本実施例では、管理サーバ10側で実行しているが、操作端末1側で処理してもかまわない。
FIG. 17 is a process flowchart of the definition generation task unit 14.
This is processing when a request is made from the operation terminal 1 side to the management server 10 side in order to create a table and file for structure evaluation. In this embodiment, the processing is executed on the management server 10 side. Processing may be performed on the operation terminal 1 side.

本処理では、受信した要求の種類を判別し(ステップS41)、それに応じた処理(プログラム)を呼び出す。呼び出す処理(プログラム)には、例えば下記のものがある。尚、判別方法は既存技術であり特に述べないが、例えば要求(コマンド)には判別に必要な情報(識別コード等)が含まれているものである。勿論、この例に限らない。
・プログラム解析処理(ステップS42;例えば図18の処理を実行するプログラム)
・階層登録チェック処理(ステップS43;例えば図19の処理を実行するプログラム)
・階層違反例外検出処理(ステップS44;例えば図20の処理を実行するプログラム)
・階層違反許容の登録処理(ステップS45;例えば図21の処理を実行するプログラム)
・階層定義テーブル比較処理(ステップS46;例えば図22の処理を実行するプログラム)
・アクセス違反例外登録ファイル比較処理(ステップS47;例えば図23の処理を実行するプログラム)
そして、上記何れかの処理を実行完了したら、処理完了をサーバメイン処理部11に通知する(ステップS49)。
In this process, the type of received request is determined (step S41), and a process (program) corresponding to the request is called. Examples of processing (program) to be called include the following. The determination method is an existing technique and is not particularly described. For example, a request (command) includes information (identification code or the like) necessary for determination. Of course, the present invention is not limited to this example.
Program analysis process (step S42; for example, a program for executing the process of FIG. 18)
Hierarchy registration check process (step S43; for example, a program for executing the process of FIG. 19)
Hierarchy violation exception detection process (step S44; for example, a program for executing the process of FIG. 20)
Hierarchy violation allowable registration process (step S45; for example, a program for executing the process of FIG. 21)
Hierarchy definition table comparison process (step S46; for example, a program for executing the process of FIG. 22)
Access violation exception registration file comparison process (step S47; for example, a program for executing the process of FIG. 23)
When the execution of any of the above processes is completed, the server main processing unit 11 is notified of the completion of the process (step S49).

尚、未定義の要求であれば要求エラーを操作端末1へ返信する(ステップS48)。
以下、上記ステップS42〜S47の各処理について、図18〜図23のフローチャート図を参照して説明する。
If the request is undefined, a request error is returned to the operation terminal 1 (step S48).
Hereafter, each process of said step S42-S47 is demonstrated with reference to the flowchart figure of FIGS.

図18(a)は、“プログラム解析処理”のフローチャート図である。
図18(b)は、ステップS61の“検出種別コードの作成処理”の詳細フローチャート図である。
FIG. 18A is a flowchart of “program analysis processing”.
FIG. 18B is a detailed flowchart of the “detection type code creation process” in step S61.

図示の例では、プログラムのファイル名とプログラムコードから、階層定義テーブル(作成中)21とアクセス違反例外登録ファイル(作成中)26を、以下の手順で作成する(尚、(作成中)21,26とは作成途中の状態を意味し(換言すれば、未完成の状態を意味し)、完成すると(登録)22,27として保存されることになる。よって、上記「以下の手順で作成する」と言っても、作成完了を意味するわけではない(未だ作成途中の状態となっている)。   In the example shown in the drawing, a hierarchy definition table (under creation) 21 and an access violation exception registration file (being created) 26 are created from the program file name and program code in the following procedure (note that (under creation) 21, 26 means a state in the middle of creation (in other words, an incomplete state), and when completed, it is saved as (registration) 22 and 27. "Does not mean that the creation is complete (it is still in the process of being created).

まず、の階層定義テーブル21(作成中)とアクセス違反例外登録ファイル(作成中)26のデフォルト版を、新規に作成する(ステップS51)。
尚、例えば、階層定義テーブル21(作成中)とアクセス違反例外登録ファイル(作成中)26の雛形(各データ項目はあるが、データは一切無い状態)が、予め記憶されており、上記ステップS51の処理は、これら各テーブルをコピーすると共に、解析対象のプログラムファイル名に基づくテーブル識別番号(または名称)を生成・付与するものである。これによって、解析対象のプログラムソース28に応じた階層定義テーブル21(作成中)とアクセス違反例外登録ファイル(作成中)26のデフォルト版(初期状態)が、新規に作成されることになる。
First, a new default version of the hierarchy definition table 21 (during creation) and the access violation exception registration file (during creation) 26 is created (step S51).
For example, the hierarchy definition table 21 (being created) and the access violation exception registration file (being created) 26 templates (there are data items but no data) are stored in advance, and the above step S51. In the process, each table is copied and a table identification number (or name) based on the program file name to be analyzed is generated and assigned. As a result, a default version (initial state) of the hierarchy definition table 21 (being created) and the access violation exception registration file (being created) corresponding to the program source 28 to be analyzed is newly created.

上記のように、解析対象のプログラムソース28(プログラムファイル群等)に応じたテーブル(作成中)21,ファイル(作成中)26のデフォルト版を生成したら、各プログラムファイル毎に下記の処理を繰り返し実行する(ステップS52−S52’間のループ処理)。   As described above, when the default versions of the table (under creation) 21 and the file (under creation) 26 corresponding to the program source 28 (program file group etc.) to be analyzed are generated, the following processing is repeated for each program file. Execute (loop processing between steps S52 and S52 ′).

すなわち、まず、解析対象のプログラムファイルに関して、そのファイル名から機能コードを抽出し、これを階層定義テーブル(作成中)21の機能コード34のフィールドに格納する(ステップS53)。尚、本例では、当然、ファイル名に機能コードが含まれる規定となっている場合を前提としている。   That is, first, regarding the program file to be analyzed, a function code is extracted from the file name and stored in the field of the function code 34 of the hierarchy definition table (under construction) 21 (step S53). In this example, it is naturally assumed that the file name is defined to include a function code.

また、プログラムヘッダから機能名を抽出し、これを階層定義テーブル(作成中)21の機能名31のフィールドに格納する(ステップS54)。これは、例えば、プログラムヘッダにおいて、機能名であることを示すキーワードから抽出する。キーワードは、図11に示す例では、「@brief」である。「機能名 : xxxx」などを予め規約として決めておき、これに従った抽出処理を開発者等が予め作成することで本処理は実現できる。   Further, the function name is extracted from the program header and stored in the function name 31 field of the hierarchy definition table (under construction) 21 (step S54). For example, this is extracted from a keyword indicating a function name in the program header. The keyword is “@brief” in the example shown in FIG. This function can be realized by predetermining “function name: xxxx” or the like as a rule and creating an extraction process according to this rule in advance by a developer or the like.

そして、プログラム本文の全行について、各行毎に下記の解析処理を行う(ステップS55−S55’間のループ処理)。
すなわち、まず、参照先(アクセス先)の変数/関数が、機能内共通(ローカル)の変数/関数、又は、グローバルな変数/関数であるか否か判定する(ステップS56)。これは、例えば後述する図18(b)の処理説明で示す各種関数/変数の判定方法により、何れかに該当する場合には、ステップS56の判定はYESであるものとする。
Then, the following analysis processing is performed for each line of all lines of the program text (loop processing between steps S55 and S55 ′).
That is, first, it is determined whether or not the variable / function at the reference destination (access destination) is a common variable / function within the function (local) or a global variable / function (step S56). This is determined to be YES in step S56 if any of the functions / variable determination methods shown in the description of the process in FIG.

参照先(呼び出し先)が、機能内共通の変数/関数(ローカル変数/ローカル関数)、又は、グローバルな変数/関数(グローバル変数/API関数)であり(ステップS56,YES)、且つ、ファイル(作成中)26に初めて登録する変数/関数(未登録(新規登録)の変数/変数)である場合には(ステップS57,YES)、当該変数/関数へのアクセスに関して下記のアクセス違反例外登録ファイル(作成中)26への登録処理(ステップS58〜S61)を行う。   The reference destination (call destination) is a variable / function (local variable / local function) common within the function or a global variable / function (global variable / API function) (step S56, YES), and a file ( If it is a variable / function (unregistered (newly registered) variable / variable) to be registered for the first time in step 26 (YES in step S57), the following access violation exception registration file for access to the variable / function (Registering) Registration processing (steps S58 to S61) 26 is performed.

すなわち、まず、プログラムファイル名をソース名42に格納すると共に、このプログラムファイル名から機能コードを抽出して参照元機能コード41に格納する(ステップS58)。つまり、例えば、解析対象のプログラムファイルのファイル名をアクセス違反例外登録ファイル(作成中)26のソース名42に格納する。また、このファイル名に含まれる機能コードを抽出して(S53で抽出したものを使用しても良い)、これをアクセス違反例外登録ファイル(作成中)26の参照元機能コード41に格納する。   That is, first, the program file name is stored in the source name 42, and the function code is extracted from the program file name and stored in the reference source function code 41 (step S58). That is, for example, the file name of the program file to be analyzed is stored in the source name 42 of the access violation exception registration file (during creation) 26. Further, the function code included in the file name is extracted (the one extracted in S53 may be used) and stored in the reference source function code 41 of the access violation exception registration file (under construction) 26.

尚、本説明では、プログラムソース28を構成する各プログラムファイルは、機能単位で作成されているものとする。つまり、1つの機能に対応して1つのプログラムファイルが作成されている。従って、1つのプログラムファイルに関して、参照先(呼び出し先)は様々であっても(様々な機能、関数、変数が有り得る)、参照元(呼び出し元)の機能は1つであり、その機能コードはプログラムファイル名を参照すれば分かるようになっている。勿論、これは一例であり、この例に限るわけではない。   In this description, each program file constituting the program source 28 is created in units of functions. That is, one program file is created corresponding to one function. Therefore, even if there are various reference destinations (call destinations) for one program file (there can be various functions, functions, and variables), there is only one reference source (call source) function, and its function code is It can be understood by referring to the program file name. Of course, this is only an example, and the present invention is not limited to this example.

また、上記ステップS56で得られた参照先の変数/関数の変数名/関数名から、参照先の機能コードを抽出して、これをファイル26の参照先機能コード43に格納する(ステップS59)。また、この変数名/関数名を、検出対象名称44に格納する(ステップS60)。   Further, the function code of the reference destination is extracted from the variable name / function name of the reference destination variable / function obtained in step S56 and stored in the reference function code 43 of the file 26 (step S59). . The variable name / function name is stored in the detection target name 44 (step S60).

更に、上記参照先の変数/関数に応じた検出種別コードを生成して、これをファイル26の検出種別コード45に格納する(ステップS61)。
上記ステップS61の詳細を、図18(b)に示す。
Further, a detection type code corresponding to the reference destination variable / function is generated and stored in the detection type code 45 of the file 26 (step S61).
Details of step S61 are shown in FIG.

尚、上記プログラムファイル名や関数名/変数名に関しては、予め決められた下記の規約に従った名称が付けられるものとし、図18(b)にはこの規約例に従った処理例を示すが、この例に限るものではない。
*各関数/変数の規約例
尚、下記の具体例は、機能コードが“SCI”の例を示す。
(a)機能コードの判定
本例では、プログラムファイル名の先頭部分が、機能コードの大文字+“_”(アンダースコア)となっているものとする。よって、この例では“_”の前の部分を機能コードと認識することになる。
Note that the program file name and the function name / variable name are given names in accordance with the following predetermined rules, and FIG. 18B shows a processing example in accordance with these example rules. However, the present invention is not limited to this example.
* Convention example of each function / variable The following specific example shows an example in which the function code is “SCI”.
(A) Determination of Function Code In this example, it is assumed that the first part of the program file name is a capital letter of the function code + “_” (underscore). Therefore, in this example, the part before “_” is recognized as a function code.

例:プログラムファイル名がSCI_Driver.cの場合には、機能コードは“SCI”
(b)API関数(グローバル関数)
関数名の先頭が、機能コードの大文字+“_”(アンダースコア)
例: SCI_Initial(void);
(c)ローカル関数
関数名の先頭が、機能コードの先頭1文字が大文字で残りが小文字+“_”(アンダースコア)
例: Sci_FifoSet(void);
(d)グローバル変数
“g_”+ 機能コードの先頭1文字が大文字で残りが小文字
例:g_SciSendState;
(e)ローカル変数
“g”+ 機能コードの先頭1文字が大文字で残りが小文字
例: gSciExpcntlUS;
図18(b)において、まず、関数か否かを判定する(ステップS71)。これは、そのプログラム言語のルールに従って判断処理を作成しておけばよい。例えばC言語の場合には、仮に関数Aを記述する場合には「A(・・・)」というように後ろに必ず括弧が付くので、後ろに括弧がある場合には関数であるものと判定する。但し、この例に限らず、例えば上記(b)、(c)に示すAPI関数(グローバル関数)またはローカル関数の規約に該当する場合に、関数であると判定するようにしてもよい。
Example: If the program file name is SCI_Driver.c, the function code is “SCI”
(B) API function (global function)
The function name starts with an uppercase letter of the function code + "_" (underscore)
Example: SCI_Initial (void);
(C) Local function The function name starts with the first letter of the function code in uppercase and the rest in lowercase + "_" (underscore)
Example: Sci_FifoSet (void);
(D) Global variable “g _” + The first character of the function code is uppercase and the rest is lowercase. Example: g_SciSendState;
(E) Local variable “g” + The first letter of the function code is uppercase and the rest is lowercase
Example: gSciExpcntlUS;
In FIG. 18B, first, it is determined whether or not it is a function (step S71). This may be determined according to the rules of the programming language. For example, in the case of C language, if a function A is described, a parenthesis is always added after it, such as “A (...)”. To do. However, the present invention is not limited to this example. For example, when the API function (global function) or local function convention shown in (b) and (c) above is satisfied, the function may be determined.

関数である場合であって(ステップS71,YES)、更に、関数名の先頭部分(“_”(アンダースコア)より前の部分)が機能コードであって且つ全て大文字である場合(ステップS72,YES)、API関数であるものと判定し(ステップS73)、当該判定結果に応じた検出種別コード(上記の例ではAPI関数は‘1’)を、ファイル26の検出種別コード45のフィールドに格納する(ステップS82)。   If it is a function (step S71, YES), and if the first part of the function name (the part before “_” (underscore)) is a function code and is all capital letters (step S72, YES), it is determined that it is an API function (step S73), and the detection type code (API function is '1' in the above example) corresponding to the determination result is stored in the field of the detection type code 45 of the file 26 (Step S82).

尚、例えば、全ての機能コードが予め登録されているものとし、これを参照することで、“_”(アンダースコア)より前の部分が機能コードであるか否かを判別できる。
また、上記機能コードが全て大文字ではなく(ステップS72,NO)、先頭1文字のみが大文字である場合には(ステップS74,YES)、ローカル関数であるものと判定し(ステップS75)、当該判定結果に応じた検出種別コード(上記の例ではローカル関数は‘2’)を、ファイル26の検出種別コード45のフィールドに格納する(ステップS82)。
For example, it is assumed that all function codes are registered in advance, and by referring to this, it is possible to determine whether or not the part before “_” (underscore) is a function code.
If the function code is not all uppercase (step S72, NO) and only the first character is uppercase (step S74, YES), the function code is determined to be a local function (step S75). The detection type code corresponding to the result (in the above example, the local function is “2”) is stored in the field of the detection type code 45 of the file 26 (step S82).

また、上記どちらの条件にも該当しない場合には(ステップS72,S74の両方ともNO)、規約を満たさない関数であるものと判定し(ステップS76)、当該判定結果に応じた検出種別コード(上記の例では規約を満たさない関数は‘−5’)を、ファイル26の検出種別コード45のフィールドに格納する(ステップS82)。   If neither of the above conditions is met (NO in both steps S72 and S74), it is determined that the function does not satisfy the rules (step S76), and the detection type code (in accordance with the determination result) In the above example, “−5” is stored in the field of the detection type code 45 of the file 26 (step S82).

また、関数ではない場合には(ステップS71,NO)、先頭が‘g_’であれば(ステップS77、YES)グローバル変数であると判定し(ステップS78)、先頭が‘g’であれば(ステップS79、YES)ローカル変数であると判定し(ステップS80)、これら判定結果に応じた検出種別コード(上記の例ではグローバル変数は‘3’、ローカル変数は‘4’)を、ファイル26の検出種別コード45のフィールドに格納する(ステップS82)。   If it is not a function (step S71, NO), if it is “g_” (step S77, YES), it is determined that it is a global variable (step S78), and if it is “g” (step S77) (Step S79, YES) It is determined that the variable is a local variable (Step S80), and the detection type code corresponding to these determination results (in the above example, the global variable is “3” and the local variable is “4”) Store in the field of the detection type code 45 (step S82).

また、先頭が‘g’でも‘g_’でもない場合には(ステップS77,S79の両方ともNO)、規約を満たさない変数であるものと判定し(ステップS81)、当該判定結果に応じた検出種別コード(上記の例では規約を満たさない変数は‘−6’)を、ファイル26の検出種別コード45のフィールドに格納する(ステップS82)。   If the head is neither 'g' nor 'g_' (both NO in steps S77 and S79), it is determined that the variable does not satisfy the rules (step S81), and detection according to the determination result The type code (in the above example, the variable that does not satisfy the convention is “−6”) is stored in the field of the detection type code 45 of the file 26 (step S82).

図19は、階層登録チェック処理のフローチャート図である。
この処理では、操作端末1から要求(チェック指示)された階層定義テーブル(作成中)21を読み出して、その機能番号/階層番号を下記のようにチェック/自動生成して、階層定義テーブル(作成中)21を更新する。異常があれば操作端末1へ通知する。
FIG. 19 is a flowchart of the hierarchy registration check process.
In this process, the hierarchy definition table (during creation) 21 requested (check instruction) from the operation terminal 1 is read out, and its function number / hierarchy number is checked / automatically generated as follows, and the hierarchy definition table (creation) Middle) 21 is updated. If there is an abnormality, the operation terminal 1 is notified.

また、尚、本例では、機能番号は、xxx-yyy(“xxx“:階層番号、“−”:区切り記号、“yyy”:階層内の通番)で構成されているものとする。
まず、上記のように階層定義テーブル(作成中)21を読み出して(ステップS91)、その全機能分(全レコード)について順次、下記の処理を実行する(ステップS92−S92’間のループ処理)。
In this example, it is assumed that the function number is composed of xxx-yyy (“xxx”: hierarchy number, “−”: delimiter, “yyy”: serial number in the hierarchy).
First, the hierarchy definition table 21 (being created) is read as described above (step S91), and the following processing is sequentially executed for all functions (all records) (loop processing between steps S92 and S92 ′). .

まず、処理対象レコードにおいて機能番号33が登録済みであるか否かを判定する(ステップS93)。機能番号33が登録済みの場合には(ステップS93,YES)、更に階層番号(レイヤ)32が登録済みか否かを判定する(ステップS94)。   First, it is determined whether or not the function number 33 has been registered in the processing target record (step S93). If the function number 33 has been registered (step S93, YES), it is further determined whether or not the layer number (layer) 32 has been registered (step S94).

機能番号33と階層番号(レイヤ)32の両方が登録済みである場合には(ステップS93,S94がYES)、機能番号33と階層番号(レイヤ)32とが整合しているか否かを判定し(ステップS95)、整合していないならば(ステップS95,YES)、整合エラーを操作端末1へ通知する(ステップS96)。整合している場合には(ステップS95,NO)、そのままとする(チェックOK)。尚、機能番号は上記の例では「階層番号−階層内の通番」であるので、機能番号33における階層番号の部分(区切り記号“−”より前の部分)が、階層番号(レイヤ)32と一致すれば、整合していると判定する。   If both the function number 33 and the layer number (layer) 32 have been registered (YES in steps S93 and S94), it is determined whether or not the function number 33 and the layer number (layer) 32 are consistent. (Step S95) If not matched (Step S95, YES), a matching error is notified to the operation terminal 1 (Step S96). If they match (step S95, NO), they are left as they are (check OK). In the above example, the function number is “hierarchy number—sequential number in the hierarchy”. Therefore, the part of the layer number in the function number 33 (the part before the delimiter “−”) is the layer number (layer) 32. If they match, it is determined that they match.

機能番号は、階層番号を含むので、下記の例では矛盾があることになる。
矛盾例:機能番号33(階層番号 ― 階層内の通番): 階層番号32
( 2 ― 2 ): 1(2でない)
( 2 ― 1 ): 3(2でない)
( 1 ― 1 ): 2(1でない)
一方、機能番号のみが登録されている場合、すなわち機能番号33は登録されているが階層番号32は未登録である場合には(ステップS93がYESでステップS94がNO)、機能番号33から階層番号を抽出してこれを階層番号32のフィールドに格納する(ステップS97)。尚、上記の通り、機能番号は「階層番号−階層内の通番」であるので、階層番号の部分(−(ハイフン)より前の部分)を抽出すればよい。
Since the function number includes the hierarchy number, there is a contradiction in the following example.
Example of conflict: Function number 33 (hierarchy number-serial number in the hierarchy): hierarchy number 32
(2-2): 1 (not 2)
(2-1): 3 (not 2)
(1-1): 2 (not 1)
On the other hand, when only the function number is registered, that is, when the function number 33 is registered but the hierarchy number 32 is not registered (step S93 is YES and step S94 is NO), the function number 33 is changed to the hierarchy. A number is extracted and stored in the field of the hierarchy number 32 (step S97). As described above, since the function number is “hierarchy number—sequential number in the hierarchy”, the portion of the hierarchy number (the portion before − (hyphen)) may be extracted.

また、階層番号のみが登録されている場合、すなわち階層番号32は登録されているが機能番号33は未登録である場合には(ステップS93がNOでステップS98がYES)、レコードを階層番号順に整列すると共に(ステップS99)、機能番号を決定して機能番号33のフィールドに格納する(ステップS100)。尚、機能番号は、上記の通り「階層番号−階層内の通番」であるので、例えば「階層番号32−自然数」によって決定してもよい。但し、この例に限らず、例えば、階層内の通番は、機能コード34の先頭文字のアルファベット順に決定してもよい。   If only the hierarchy number is registered, that is, if the hierarchy number 32 is registered but the function number 33 is not registered (step S93 is NO and step S98 is YES), the records are arranged in the hierarchy number order. At the same time (step S99), the function number is determined and stored in the function number 33 field (step S100). Since the function number is “hierarchy number-serial number in the hierarchy” as described above, it may be determined, for example, by “hierarchy number 32-natural number”. However, the present invention is not limited to this example. For example, the serial numbers in the hierarchy may be determined in alphabetical order of the first character of the function code 34.

上記の例のように、例えば、まず階層番号順に整列させ、更に各階層毎に、機能番号の「階層内の通番」は機能コードのアルファベット順として付与する。そして、機能番号順に整列することで、下記の例のようになる。   As in the above example, for example, first, the layers are arranged in the order of the layer numbers, and the function numbers “sequential numbers in the layers” are assigned in alphabetical order of the function codes for each layer. Then, by arranging in order of function number, the following example is obtained.

例:機能コード ;階層番号 ― 階層内の通番
整列前
SYS ; 2 ― 2
COM ; 2 ― 1
SCI ; 1 ― 1
整列後
SCI ; 1 ― 1
COM ; 2 ― 1
SYS ; 2 ― 2
尚、機能番号33と階層番号32の両方とも入力無しの場合には(ステップS93、S98がNO)、未入力エラーを操作端末1に通知する(ステップS101)。
Example: Function code; Hierarchy number-Serial number in the hierarchy Before sorting SYS; 2-2
COM; 2-1
SCI; 1-1
After alignment SCI; 1-1
COM; 2-1
SYS; 2-2
If there is no input for both the function number 33 and the hierarchy number 32 (NO in steps S93 and S98), a non-input error is notified to the operation terminal 1 (step S101).

図20は、階層違反例外検出処理のフローチャート図である。
図20の処理は、階層定義テーブル(作成中)21を参照して、作成途中のアクセス違反例外登録ファイル(作成中)26を更新させるものである。
FIG. 20 is a flowchart of the hierarchy violation exception detection process.
The process of FIG. 20 is to update the access violation exception registration file (during creation) 26 being created with reference to the hierarchy definition table (during creation) 21.

まず、階層定義テーブル(作成中)21とアクセス違反例外登録ファイル(作成中)26を読み出す(ステップS111)。これらは、上記の通り作成途中の状態であり、階層定義テーブル(作成中)21は図18及び図19の処理後の状態、アクセス違反例外登録ファイル(作成中)26は図18の処理後の状態となっている。   First, the hierarchy definition table (during creation) 21 and the access violation exception registration file (during creation) 26 are read (step S111). These are the states in the process of being created as described above, the hierarchy definition table (being created) 21 is the state after the processing of FIGS. 18 and 19, and the access violation exception registration file (being created) 26 is the state after the processing of FIG. It is in a state.

そして、アクセス違反例外登録ファイル(作成中)26の各レコード毎に順次、以下の各処理を実行する(ステップS112−S112’間のループ処理)。
そのレコードの検出種別コード45を参照して、関数種別/変数種別を認識して(ステップS113)、それに応じてアクセス違反があるか否かを判定する。
Then, the following processes are sequentially executed for each record in the access violation exception registration file (during creation) 26 (loop process between steps S112 and S112 ′).
With reference to the detection type code 45 of the record, the function type / variable type is recognized (step S113), and it is determined whether there is an access violation accordingly.

上記判定処理によってアクセス違反と判定される場合とは、下記の場合である。尚、階層定義テーブル(作成中)21を参照することで、参照元と参照先の各機能の階層を認識できる。   The case where an access violation is determined by the determination process is as follows. By referring to the hierarchy definition table (under construction) 21, the hierarchy of each function of the reference source and the reference destination can be recognized.

(a)API関数/グローバル変数の場合;
参照元機能コード41と参照先機能コード43と階層定義テーブル(作成中)21とに基づいて、参照元の階層と参照先の階層とを認識し、参照元の階層と同一階層/1階層下をアクセスしている場合が正常であるが、参照元の階層と同一階層/1階層下以外をアクセスしている場合には(参照先が参照元より上の階層、または2階層以上下(した)の階層である場合)、アクセス違反と判定される。
(A) API function / global variable;
Based on the reference source function code 41, the reference destination function code 43, and the hierarchy definition table (during creation) 21, the reference source hierarchy and the reference destination hierarchy are recognized, and the same hierarchy as the reference source hierarchy / one hierarchy below Is normal, but when accessing other than the same hierarchy / one hierarchy below the reference source (the reference destination is higher than the reference source, or two or more levels below ( ), The access violation is determined.

(b)ローカル変数/ローカル関数;
他の機能がアクセスしている場合(参照元機能コード41と参照先機能コード43とが同一ではない場合)、アクセス違反と判定される。ローカル変数/ローカル関数は、同一機能内でのアクセスのみしか許されないからである。
(B) Local variable / local function;
When another function is accessing (when the reference source function code 41 and the reference destination function code 43 are not the same), it is determined as an access violation. This is because local variables / local functions can only be accessed within the same function.

上記(a)、(b)の何れの場合も、アクセス違反であれば、アクセス例外許可登録ファイル(作成中)26の該当する検出種別コード45を書き換える。すなわち、下記のように書き換える。   In both cases (a) and (b), if an access violation occurs, the corresponding detection type code 45 in the access exception permission registration file (in preparation) 26 is rewritten. That is, it is rewritten as follows.

1(API関数) ⇒ −1(API関数 アクセス違反)
2(ローカル関数) ⇒ −2(ローカル関数 アクセス違反)
3(グローバル変数)⇒ −3(グローバル変数 アクセス違反)
4(ローカル変数) ⇒ −4(ローカル変数 アクセス違反)
上述した処理(後述するS201の処理など)によって、アクセス違反例外登録ファイル(作成中)26は、例えば図13(a)の状態から図13(b)の状態になる。
1 (API function) ⇒ -1 (API function access violation)
2 (local function) ⇒ -2 (local function access violation)
3 (global variable) ⇒ -3 (global variable access violation)
4 (local variable) ⇒ -4 (local variable access violation)
The access violation exception registration file (during creation) 26 changes from the state shown in FIG. 13A to the state shown in FIG.

上述した処理を、各関数種別/変数種別毎に示したものが、図示のステップS114〜S123(まとめてS201の処理と言う場合もあるものとする)であり、以下、これらの処理について簡単に説明する。   The above-described processing is shown for each function type / variable type in steps S114 to S123 (also referred to collectively as processing of S201) shown below. explain.

すなわち、まず、処理対象レコードの検出種別コード45が‘1’(API関数)である場合には、このAPI関数についてアクセス違反があるか否かを判定する(ステップS114)。これは、上記のように、このレコードの参照元機能コード41と参照先機能コード43と階層定義テーブル(作成中)21とに基づいて、参照元と参照先とが同一階層である場合または参照先が参照元の1階層下である場合には、アクセス違反ではないものと判定し(ステップS114,NO)、以ってステップS122で違反なしと判定される(ステップS122,NO)。   That is, first, when the detection type code 45 of the processing target record is “1” (API function), it is determined whether or not there is an access violation for this API function (step S114). This is because, as described above, based on the reference source function code 41, the reference destination function code 43, and the hierarchy definition table (under construction) 21 of this record, the reference source and the reference destination are in the same hierarchy or reference If the destination is one layer below the reference source, it is determined that there is no access violation (step S114, NO), and therefore it is determined in step S122 that there is no violation (step S122, NO).

一方、参照先が参照元より上の階層である場合または参照先が参照元より2階層以上下(した)の階層である場合には、アクセス違反であると判定し(ステップS114,YES)、このレコードの検出種別コード45を‘−1’に書き換える(ステップS115、S123)。尚、当然、この場合はステップS122の判定はYESとなる。   On the other hand, if the reference destination is a hierarchy higher than the reference source or the reference destination is a hierarchy that is two or more levels lower than the reference source, it is determined that there is an access violation (step S114, YES), The detection type code 45 of this record is rewritten to “−1” (steps S115 and S123). Of course, in this case, the determination in step S122 is YES.

また、処理対象レコードの検出種別コード45が‘2’であった場合には、このローカル関数についてアクセス違反があるか否かを判定する(ステップS116)。これは、上記のように、このレコードの参照元機能コード41と参照先機能コード43とに基づいて、参照元と参照先とが同一の機能である場合には、アクセス違反ではないものと判定し(ステップS116,NO)、以ってステップS122で違反なしと判定される(ステップS122,NO)。一方、参照元機能コード41が参照先機能コード43と同一ではない場合には(ローカル関数が別の機能からアクセスされる場合)、アクセス違反であると判定し(ステップS116,YES)、このレコードの検出種別コード45を‘−2’に書き換える(ステップS117、S123)。尚、当然、この場合はステップS122の判定はYESとなる。   If the detection type code 45 of the processing target record is “2”, it is determined whether or not there is an access violation for this local function (step S116). As described above, based on the reference source function code 41 and the reference destination function code 43 of this record, if the reference source and the reference destination are the same function, it is determined that there is no access violation. Therefore, it is determined that there is no violation at step S122 (step S122, NO). On the other hand, when the reference source function code 41 is not the same as the reference destination function code 43 (when the local function is accessed from another function), it is determined that there is an access violation (step S116, YES), and this record The detection type code 45 is rewritten to “−2” (steps S117 and S123). Of course, in this case, the determination in step S122 is YES.

また、処理対象レコードの検出種別コード45が‘3’であった場合には、このグローバル変数についてアクセス違反があるか否かを判定する(ステップS118)。これは、上記のように、このレコードの参照元機能コード41と参照先機能コード43と階層定義テーブル(作成中)21とに基づいて、参照元と参照先とが同一階層である場合または参照先が参照元の1階層下である場合には、アクセス違反ではないものと判定し(ステップS118,NO)、以ってステップS122で違反なしと判定される(ステップS122,NO)。一方、参照先が参照元より上の階層である場合または参照先が参照元より2階層以上下(した)の階層である場合には、アクセス違反であると判定し(ステップS118,YES)、このレコードの検出種別コード45を‘−3’に書き換える(ステップS119、S123)。尚、当然、この場合はステップS122の判定はYESとなる。   If the detection type code 45 of the processing target record is “3”, it is determined whether there is an access violation for this global variable (step S118). This is because, as described above, based on the reference source function code 41, the reference destination function code 43, and the hierarchy definition table (under construction) 21 of this record, the reference source and the reference destination are in the same hierarchy or reference If the destination is one layer below the reference source, it is determined that there is no access violation (step S118, NO), and therefore, it is determined in step S122 that there is no violation (step S122, NO). On the other hand, when the reference destination is a hierarchy higher than the reference source, or when the reference destination is a hierarchy two or more levels lower than the reference source, it is determined that there is an access violation (step S118, YES), The detection type code 45 of this record is rewritten to “−3” (steps S119 and S123). Of course, in this case, the determination in step S122 is YES.

また、処理対象レコードの検出種別コード45が‘4’であった場合には、このローカル変数についてアクセス違反があるか否かを判定する(ステップS120)。これは、上記のように、このレコードの参照元機能コード41と参照先機能コード43とに基づいて、参照元と参照先とが同一の機能である場合には、違反ではないものと判定し(ステップS120,NO)、以ってステップS122で違反なしと判定される(ステップS122,NO)。   If the detection type code 45 of the processing target record is “4”, it is determined whether or not there is an access violation for this local variable (step S120). As described above, based on the reference source function code 41 and the reference destination function code 43 of this record, when the reference source and the reference destination are the same function, it is determined that it is not a violation. (Step S120, NO), therefore, it is determined that there is no violation in Step S122 (Step S122, NO).

一方、参照元機能コード41が参照先機能コード43と同一の機能ではない場合には(ローカル変数が別の機能からアクセスされる場合)、アクセス違反であると判定し(ステップS120,YES)、このレコードの検出種別コード45を‘−4’に書き換える(ステップS121、S123)。尚、当然、この場合はステップS122の判定はYESとなる。   On the other hand, when the reference source function code 41 is not the same function as the reference destination function code 43 (when the local variable is accessed from another function), it is determined that there is an access violation (step S120, YES). The detection type code 45 of this record is rewritten to “−4” (steps S121 and S123). Of course, in this case, the determination in step S122 is YES.

そして、処理対象レコードがアクセス違反ではない場合には、当該レコード(検出種別コード>0であるレコード)を削除する。すなわち、処理対象レコードの検出種別コード45が正の値(>0)である場合(換言すれば、判定不能や規約違反ではなく、且つ、上記処理によって負の値(‘−1’〜‘−4’の何れか)に書き換えられていない場合には)(ステップS124,YES)、このレコードをファイル26(作成中)から削除する(ステップS125)。尚、これらの処理をまとめてS202の処理と呼ぶ場合もあるものとする。   If the record to be processed is not an access violation, the record (record with detection type code> 0) is deleted. That is, when the detection type code 45 of the processing target record is a positive value (> 0) (in other words, it is not impossible to determine or violates the rules, and a negative value ('-1' to '- (If any of 4 'has not been rewritten) (step S124, YES), this record is deleted from the file 26 (being created) (step S125). Note that these processes may be collectively referred to as the process of S202.

上記S202の処理によって、アクセス違反例外登録ファイル(作成中)26は、例えば上記図13(b)の状態から図13(c)の状態となる。
全て完了したら(上記ループ処理を抜けたら)、そのときの状態でアクセス違反例外登録ファイル(作成中)26を保存する(ステップS126)。つまり、例えば図13(c)の状態で保存されることになる(ファイル26が更新されることになる)。
By the process of S202, the access violation exception registration file (during creation) 26 changes from the state of FIG. 13B to the state of FIG. 13C, for example.
When all the processes are completed (after exiting the loop process), the access violation exception registration file (under creation) 26 is saved in the state at that time (step S126). That is, for example, it is stored in the state of FIG. 13C (the file 26 is updated).

そして、その後に不図示の上述した設定処理が実行されることで、上記(4)の“アクセス違反例外の許可登録”における「(24)アクセス許可の設定」が行われる際に、例えば図13(c)の状態のアクセス違反例外登録ファイル(作成中)26が読み出されて表示されて、例えばユーザによる任意のアクセス許可の設定作業が行われることになる。   Then, by performing the above-described setting process (not shown) after that, when “(24) Access permission setting” in “Access violation exception permission registration” in (4) above is performed, for example, FIG. The access violation exception registration file (being created) 26 in the state (c) is read and displayed, and for example, an arbitrary access permission setting operation is performed by the user.

この設定処理のフローチャート図や設定画面例は、特に図示しないが、ユーザは、表示されるアクセス違反例外登録ファイル(作成中)26における例外アクセス許可フラグ46と可否判定者47に対応する欄に、任意の設定情報を入力することができる。例外アクセス許可フラグ46については、‘0’または‘1’を設定できる。尚、既に述べた通り、これらの数値の意味は下記の通りである。   Although the flowchart of this setting process and the setting screen example are not particularly illustrated, the user can enter the exception access permission flag 46 and the column corresponding to the permission determination person 47 in the displayed access violation exception registration file (in preparation) 26. Arbitrary setting information can be input. For the exception access permission flag 46, “0” or “1” can be set. In addition, as already stated, the meaning of these numerical values is as follows.

0:アクセス違反を許容しない
1:アクセス違反を許容する。
更に、ユーザは、可否判定者47に、任意の氏名(基本的にはユーザ自身の指名)等を入力することになる。
0: Do not allow access violation 1: Allow access violation
Further, the user inputs an arbitrary name (basically, the user's own designation) or the like to the availability determination person 47.

上記ユーザ設定作業が完了したとき、アクセス違反例外登録ファイル(作成中)26は、例えば図13(d)に示す状態となり、この状態で保存されることになる。
図21は、“階層違反許容の登録処理”のフローチャート図である。
When the user setting operation is completed, the access violation exception registration file (during creation) 26 is in the state shown in FIG. 13D, for example, and is saved in this state.
FIG. 21 is a flowchart of the “hierarchy violation registration process”.

図21の処理は、上記ユーザ設定作業によってアクセス例外許可の可否が入力済みのアクセス違反例外登録ファイル(作成中)26(例えば図13(d)に示す状態)を読み出し、このファイル26の各レコードのなかでアクセス違反であるが例外的に許容されているレコードのみを残すようにしたものを、アクセス違反例外登録ファイル(登録)27として保存する処理である。更に、図21の処理では、アクセス違反例外登録ファイル(登録)27に基づいて、階層定義テーブル(作成中)21における未登録部分の自動登録を行うことで階層定義テーブルを完成させる(階層定義テーブル(登録)22として保存する)ものである。   The process of FIG. 21 reads an access violation exception registration file (being created) 26 (for example, the state shown in FIG. 13D) in which permission of permission for access exception has been input by the user setting operation, and records in this file 26 In this process, an access violation exception registration file (registration) 27 is stored so that only records that are access violations but exceptionally allowed are left. Further, in the processing of FIG. 21, the hierarchy definition table is completed by automatically registering the unregistered portion in the hierarchy definition table (under creation) 21 based on the access violation exception registration file (registration) 27 (hierarchy definition table). (Registration) is stored as 22).

尚、本説明では、アクセス違反例外登録ファイルについて、作成途中の状態をアクセス違反例外登録ファイル(作成中)26とし、作成完了した状態をアクセス違反例外登録ファイル(登録)27として区別しているが、この様な区別を行う必要性は特にない。これは、階層定義テーブルについても同様である。   In this description, regarding the access violation exception registration file, the state in the process of being created is distinguished as an access violation exception registration file (during creation) 26, and the completed state is distinguished as an access violation exception registration file (registration) 27. There is no particular need to make such a distinction. The same applies to the hierarchy definition table.

以下、図21の処理について説明する。
まず、アクセス違反例外登録ファイル(作成中)26(例えば図13(d)に示す状態)を読み出す(ステップS131)。そして、当該ファイル(作成中)26の各レコードを順次処理対象として、ステップS133〜S135の処理を実行する)(ステップS132−S132’間のループ処理)。
Hereinafter, the process of FIG. 21 will be described.
First, the access violation exception registration file (during creation) 26 (for example, the state shown in FIG. 13D) is read (step S131). Then, the processing of steps S133 to S135 is executed for each record of the file (during creation) 26 sequentially (the loop processing between steps S132 and S132 ′).

すなわち、処理対象レコードの例外アクセス許可フラグ46を参照することで、その処理対象レコードについて(その参照元と参照先の組み合わせ)についてアクセス違反が許容されているか否かを判定する(ステップS133)。上記の通り、例外アクセス許可フラグ46=‘1’である場合、アクセス違反が許容されていることになり(ステップS133,YES)、ステップS134の処理を実行する。一方、例外アクセス許可フラグ46=‘0’である場合、アクセス違反は許容されないので(ステップS133,NO)、この処理対象レコードは削除する(ステップS135)。尚、当該ステップS135の処理は、必ずしも行わなくても構わない。削除しなくても、例えば、許容の登録が無いことを以って、後述するステップS142の判定がNOとなるようにすればよい。   That is, by referring to the exception access permission flag 46 of the processing target record, it is determined whether or not an access violation is permitted for the processing target record (a combination of the reference source and the reference destination) (step S133). As described above, when the exception access permission flag 46 = '1', access violation is permitted (step S133, YES), and the process of step S134 is executed. On the other hand, when the exception access permission flag 46 = '0', the access violation is not allowed (step S133, NO), so this process target record is deleted (step S135). Note that the processing in step S135 is not necessarily performed. Even if it is not deleted, for example, the determination in step S142 to be described later may be NO because there is no permissible registration.

ステップS134の処理では、全ての未処理レコードを検索して、処理対象レコードのアクセス形態と同一のアクセス形態(アクセス元の機能が同一で、且つ、アクセス先の機能及び検出種別(関数/変数種別)が同一)を有するレコードを全て抽出する。つまり、参照元機能コード41と参照先機能コード43及び検出種別コード44が、処理対象レコードと同一である未処理レコードを全て抽出する。更に、抽出したレコードのなかで例外アクセス許可フラグ46=‘1’であるレコードの数をカウントし、このカウント値+1を“アクセス違反の許容数”として記憶する。これは、例えば、処理対象レコードのアクセス形態(アクセス元の機能と、アクセス先の機能及び検出種別(関数/変数種別)との組み合わせ(ペア))に対応付けて、上記“アクセス違反の許容数”を登録する。   In the process of step S134, all unprocessed records are searched, and the same access form as the access form of the record to be processed (the access source function is the same and the access destination function and the detection type (function / variable type) ) Are the same)). That is, all unprocessed records whose reference source function code 41, reference destination function code 43, and detection type code 44 are the same as the processing target record are extracted. Further, the number of records with the exception access permission flag 46 = “1” among the extracted records is counted, and this count value + 1 is stored as “allowable number of access violation”. This is, for example, associated with the access form of the processing target record (the combination (pair) of the function of the access source, the function of the access destination and the detection type (function / variable type)), "".

また、上記処理対象レコード及び上記抽出したレコードは、全て、処理済み扱いとする(例えば、これら各レコードに対して、処理済みを示す不図示のフラグ等を記録しておく)。よって、以後、これらのレコードは上記未処理レコードではないものと扱われるし、上記処理対象レコードにもならないものとする。   Further, the processing target record and the extracted record are all handled as processed (for example, a flag (not shown) indicating processing is recorded for each of these records). Therefore, it is assumed that these records are not the unprocessed records and are not the processing target records.

尚、上記“カウント値+1”の+1は、処理対象レコード自体を含めるためである。これによって、上記処理対象レコードのアクセス形態について、アクセス違反が許容されているレコードの数(処理対象レコードも含まれる)が、“アクセス違反の許容数”として登録されることになる。   Note that +1 of the “count value + 1” is for including the processing target record itself. As a result, with respect to the access mode of the processing target record, the number of records in which access violation is permitted (including the processing target record) is registered as “allowable number of access violation”.

ここで、例外アクセス許可フラグ46は、上記のように管理者等が任意に決めて設定するのであるが、1つの考え方の例としては、上述したように「過去に作成されたプログラム(レガシー資産)に基づいて作成されたプログラムの場合、違反であることが分かっていても修正困難である箇所が存在する場合がある」ので、解析対象プログラムソース28に関して、任意のアクセス違反についてこの様な修正困難である箇所が仮に2箇所あった場合には、違反箇所が3箇所以上ある場合に異常として検出するように構成することが望ましい(これについては既に述べている)。尚、この例の場合、上記“アクセス違反の許容数”は‘2’となるはずである。更に、この例の場合、後述する階層定義テーブル(作成中)21における「階層違反の有無や許容情報(許容登録数)」の自動設定値は、‘3’となるはずである。この場合、上述した図4の説明中の定義により「違反が3個以上存在する場合、異常として検出する。」ものとなる。   Here, the exception access permission flag 46 is arbitrarily determined and set by an administrator or the like as described above. As an example of one idea, as described above, a “program created in the past (legacy asset In the case of a program created based on (1), there may be a portion that is difficult to correct even if it is known that it is a violation. In the case where there are two difficult places, it is desirable that an abnormality is detected when there are three or more violation places (this has already been described). In this example, the “allowable number of access violations” should be ‘2’. Further, in this example, the automatic setting value of “History violation presence / absence and allowable information (allowable registration number)” in the hierarchy definition table (under construction) 21 to be described later should be “3”. In this case, according to the definition in the description of FIG. 4 described above, “when there are three or more violations, it is detected as an abnormality”.

尚、抽出したレコードのなかで例外アクセス許可フラグ46=‘0’であるレコードは全てファイル26から削除すると共に、残りの(フラグが‘1’)のレコードは全て処理済みレコード扱いとするようにしてもよい。   Of the extracted records, all the records with the exception access permission flag 46 = “0” are deleted from the file 26, and all the remaining records (flag is “1”) are treated as processed records. May be.

上記ループ処理を抜けたら、そのときの状態のアクセス違反例外登録ファイル(作成中)26を、アクセス違反例外登録ファイル(登録)27として保存する(ステップS136)。   When the loop processing is exited, the access violation exception registration file (being created) 26 at that time is stored as an access violation exception registration file (registration) 27 (step S136).

すなわち、上記処理によってアクセス違反例外登録ファイル(作成中)26は例えば図13(e)に示す状態、すなわち例外アクセス許可フラグ46が‘1’であるレコードのみが残っている状態となっている。つまり、アクセス違反が許容されているものだけが、アクセス違反例外登録ファイル(作成中)26に残されている。ステップS136では、この状態のアクセス違反例外登録ファイル(作成中)26を、アクセス違反例外登録ファイル(登録)27として保存する。更に、上述した各アクセス形態に応じた“アクセス違反の許容数”の登録情報も、アクセス違反例外登録ファイル(登録)27に含めて保存する。   That is, the access violation exception registration file (during creation) 26 is in the state shown in FIG. 13E, for example, that is, only the record whose exception access permission flag 46 is ‘1’ remains by the above processing. That is, only the access violation permitted file is left in the access violation exception registration file (during creation) 26. In step S136, the access violation exception registration file (being created) 26 in this state is stored as an access violation exception registration file (registration) 27. Furthermore, the registration information of “allowable number of access violations” corresponding to each access mode described above is also included and stored in the access violation exception registration file (registration) 27.

その後、例えば上記“アクセス違反の許容数”等を参照することで、階層定義テーブル(作成中)21における未登録部分、すなわち「階層違反の許容情報(許容登録数)」の自動設定を行うことができ、これによって階層定義テーブルを完成させる(階層定義テーブル(登録)22として保存する)。   After that, for example, by referring to the above “allowable number of access violations” or the like, an unregistered portion in the hierarchy definition table (during creation) 21, that is, “hierarchy violation allowable information (allowable registration number)” is automatically set. Thus, the hierarchy definition table is completed (stored as the hierarchy definition table (registration) 22).

これは例えば、まず、階層定義テーブル(作成中)21を読み込む(ステップS137)。これは例えば図12(c)に示す状態(作成途中)のものを読み込むことになる。
そして、呼び出し元と呼び出し先の各機能の組み合わせ(ペア)全てについて(但し、呼び出し先については更に各検出種別について)、それぞれ、ステップS140〜S144の処理を実行することで(ステップS138−S138’間のループ処理、及び、ステップS139−S139’間のループ処理)、これら全ての組み合わせについて「階層違反の有無や許容情報(許容登録数)」が自動的に登録される。
For example, first, the hierarchy definition table 21 (under construction) is read (step S137). For example, the state shown in FIG. 12C (in the middle of creation) is read.
Then, for all combinations (pairs) of the functions of the caller and callee (however, for the callee, for each detection type), the processes of steps S140 to S144 are performed (steps S138 to S138 ′). Loop processing between steps S139 and S139 ′), “hierarchy violation existence and permissible information (allowable registration number)” are automatically registered for all of these combinations.

ステップS140〜S144の処理では、まず、処理対象の組み合わせ(ペア)がアクセス違反であるか否かを判定する(ステップS140)。これは、呼び出し先の検出種別に応じた判定処理となる。つまり、既に説明した手法を利用して、呼び出し先の検出種別がローカル変数またはローカル関数である場合には、呼び出し元の機能と呼び出し先の機能とが同一である場合にはアクセス違反ではないと判定し(ステップS140,YES)、それ以外はアクセス違反であると判定する(ステップS140,NO)。また、呼び出し先の検出種別がグローバル変数またはAPI関数である場合には、呼び出し先の機能の階層が、呼び出し元の機能の階層と同一または1つ下である場合には、アクセス違反ではないと判定し(ステップS140,YES)、それ以外はアクセス違反であると判定する(ステップS140,NO)。   In the processes of steps S140 to S144, first, it is determined whether or not the combination (pair) to be processed is an access violation (step S140). This is a determination process according to the detection type of the call destination. In other words, if the callee detection type is a local variable or local function using the method already described, it is not an access violation if the caller function and the callee function are the same. It determines (step S140, YES), and determines that it is an access violation otherwise (step S140, NO). Further, when the call destination detection type is a global variable or API function, if the callee function hierarchy is the same as or one level below the caller function hierarchy, it is not an access violation. It determines (step S140, YES), and determines that it is an access violation otherwise (step S140, NO).

アクセス違反ではないと判定された場合には(ステップS140,YES)、階層定義テーブル(作成中)21における処理対象の組み合わせに対応する「階層違反の有無や許容情報(許容登録数)」の欄に、‘0’を設定する(ステップS141)。例えば、機能番号を用いて一例について説明するならば、呼び出し元が機能1−1で、呼び出し先が機能1−1のローカル関数であるならば、呼び出し元の機能と呼び出し先の機能とが同一であるので、このペアに関してはアクセス違反ではないと判定され、例えば図4に示すように‘0’が設定されることになる。   If it is determined that it is not an access violation (step S140, YES), a column of “Hierarchy violation presence / absence and allowable information (allowable registration number)” corresponding to the combination of processing targets in the hierarchy definition table (during creation) 21 Is set to “0” (step S141). For example, if an example is described using function numbers, if the caller is the function 1-1 and the callee is a local function of the function 1-1, the caller function is the same as the callee function. Therefore, it is determined that this pair is not an access violation, and for example, “0” is set as shown in FIG.

尚、上記「参照先」は上記「呼び出し先」と同義であり、上記「参照元」は上記「呼び出し元」と同義である。
一方、アクセス違反と判定された場合には(ステップS140,NO)、処理対象のペアについて許可の登録があるか否かを判定する(ステップS142)。これは、例えば、上記アクセス違反例外登録ファイル(登録)27に含まれる、上記“アクセス違反の許容数”の登録情報を参照して判定する。上記のように、この登録情報は、アクセス違反が許容されるペア毎に“アクセス違反の許容数”が登録されているので、これらのペアの中に処理対象のペアがある場合には、許可の登録があると判定する(ステップS142,YES)。そして、この場合には、処理対象のペアに対応する上記“アクセス違反の許容数”を取得して、「“アクセス違反の許容数”+1」を、階層定義テーブル(作成中)21における処理対象のペアに対応する「階層違反の有無や許容情報(許容登録数)」の欄に設定する(ステップS143)。
The “reference destination” is synonymous with the “call destination”, and the “reference source” is synonymous with the “call source”.
On the other hand, if it is determined that there is an access violation (step S140, NO), it is determined whether there is a registration of permission for the pair to be processed (step S142). This is determined, for example, with reference to the registration information of the “allowable number of access violations” included in the access violation exception registration file (registration) 27. As mentioned above, this registration information is registered with the “allowable number of access violations” registered for each pair where access violations are allowed. Is registered (step S142, YES). In this case, the “allowable number of access violations” corresponding to the pair to be processed is acquired, and the “allowable number of access violations” +1 is set as the processing target in the hierarchy definition table (during creation) 21. Is set in the column of “Hierarchy violation presence / absence and allowable information (allowable registration number)” corresponding to the pair (step S143).

一方、許可の登録が無いと判定された場合には(ステップS142,NO)、階層定義テーブル(作成中)21における処理対象のペアに対応する「階層違反の有無や許容情報(許容登録数)」の欄に、‘1’を設定する(ステップS144)。   On the other hand, if it is determined that there is no registration of permission (NO in step S142), the presence / absence of hierarchy violation and allowable information (allowable registration count) corresponding to the pair to be processed in the hierarchy definition table (under construction) 21 "1" is set in the "" column (step S144).

上記ループ処理を抜けたら、そのときの状態の階層定義テーブル(作成中)21を、階層定義テーブル(登録)22として保存する(ステップS145)。尚、このときの階層定義テーブル(作成中)21の状態は、全ての「階層違反の有無や許容情報(許容登録数)」の欄に‘0’または‘1’あるいは‘2’以上の何れかの数値の設定が行われているはずである。つまり、階層定義テーブルが完成した状態となっているはずである。   When the loop processing is exited, the hierarchy definition table (in preparation) 21 at that time is stored as a hierarchy definition table (registration) 22 (step S145). At this time, the state of the hierarchy definition table (under construction) 21 is “0”, “1”, or “2” or more in all the columns of “History violation existence / allowance information (allowable registration number)”. It should have been set. That is, the hierarchy definition table should be complete.

尚、上記ステップS131〜S136の処理をまとめてS203の処理と呼ぶ場合もあるものとする。同様に、上記ステップS137〜S145の処理をまとめてS204の処理と呼ぶ場合もあるものとする。   Note that the processing in steps S131 to S136 may be collectively referred to as processing in S203. Similarly, the processes of steps S137 to S145 may be collectively referred to as the process of S204.

図22は、“階層定義テーブル比較処理”のフローチャート図である。
階層評価時に、前回のプログラム評価処理(旧バージョンのプログラム等)の際に登録された階層定義テーブル(登録)22(前回階層定義テーブルというものとする)と、今回の評価対象プログラムについて新規作成した階層定義テーブル(登録)22(今回階層定義テーブルというものとする)を読み込み、両者の差分情報を以下の手順で検出して通知する。
FIG. 22 is a flowchart of the “hierarchy definition table comparison process”.
At the time of hierarchy evaluation, a hierarchy definition table (registered) 22 (referred to as the previous hierarchy definition table) registered during the previous program evaluation process (an old version program, etc.) and a new evaluation target program were created. The hierarchy definition table (registration) 22 (referred to as the current hierarchy definition table) is read, and the difference information between them is detected and notified in the following procedure.

図22の処理では、まず、上記前回階層定義テーブルと今回階層定義テーブルを読み込む(ステップS151)。そして、これら2つのテーブル同士を比較することで差分をとり、機能コードの種類に変化があるか否か(例えば、前回を基準にした場合、今回で増加または減少している機能コードがあるか否か)を判定する(ステップS152,S153)。   In the process of FIG. 22, first, the previous hierarchy definition table and the current hierarchy definition table are read (step S151). Then, by comparing these two tables, a difference is obtained, and whether or not there is a change in the type of the function code (for example, if there is a function code that has increased or decreased this time, based on the previous time) (No) is determined (steps S152 and S153).

機能コードの種類に変化(増加または減少)がある場合には(ステップS153,YES)、例えば、変化があった機能コード(前回にはあるが今回には無い(削除の)機能コード、あるいは前回には無いが今回にはある(追加の)機能コード)を、全て、追加/削除の情報を含めて、操作端末1に通知する(ステップS154)。これは、例えば、変化があった機能コードと追加/削除の情報を格納した階層定義テーブル(差分)29”を作成して、これを操作端末1に送信することで通知する。   If there is a change (increase or decrease) in the type of function code (YES in step S153), for example, the function code that has changed (the function code that was in the previous but not in this time (deleted), or the previous time All of the (additional function codes) that are not present but are included in this time are notified to the operation terminal 1 including the addition / deletion information (step S154). This is notified, for example, by creating a hierarchy definition table (difference) 29 ″ storing function codes that have changed and addition / deletion information, and transmitting them to the operation terminal 1.

一方、機能コードの種類に変化(追加または削除)が無い場合には(ステップS153,NO)、正常である旨を操作端末1に通知する(ステップS155)。
図23は、“アクセス違反例外登録ファイル比較処理”のフローチャート図である。
On the other hand, when there is no change (addition or deletion) in the type of function code (step S153, NO), the operating terminal 1 is notified that it is normal (step S155).
FIG. 23 is a flowchart of the “access violation exception registration file comparison process”.

図23では、階層評価時に、前回のプログラム評価処理(旧バージョンのプログラム等)の際に登録されたアクセス違反例外登録ファイル(作成中)26(前回アクセス違反例外登録ファイルというものとする)と、今回の評価対象プログラムについて新規作成したアクセス違反例外登録ファイル(作成中)26(今回アクセス違反例外登録ファイルというものとする)を読み込み、違いがあることを以下の処理で検出し、通知する。   In FIG. 23, at the time of hierarchical evaluation, an access violation exception registration file (during creation) 26 (referred to as a previous access violation exception registration file) registered at the time of the previous program evaluation process (an old version program, etc.) The newly created access violation exception registration file (currently being created) 26 (referred to as the current access violation exception registration file) is read for the program to be evaluated this time, and it is detected and notified by the following processing that there is a difference.

尚、既に説明したように、読み込むアクセス違反例外登録ファイル(作成中)26は、前回も今回も例えば図13(c)の状態のものである。
まず、上記前回アクセス違反例外登録ファイルと今回アクセス違反例外登録ファイルとを読み込む(ステップS161)。そして、両者を比較して差分をとり(ステップS162)、変更があるか否か(例えば削除されたレコードまたは追加されたレコードがあるか否か)を判定する(ステップS163)。
As already described, the access violation exception registration file (being created) 26 to be read is in the state of FIG.
First, the previous access violation exception registration file and the current access violation exception registration file are read (step S161). Then, the two are compared to obtain a difference (step S162), and it is determined whether there is a change (for example, whether there is a deleted record or an added record) (step S163).

そして、変更がある場合(両者に違いがある場合)(ステップS163,YES)、前回アクセス違反例外登録ファイルには存在していたが今回アクセス違反例外登録ファイルでは削除されたデータがある場合には、この部分を例えば操作端末1等に通知する(ステップS164)。   If there is a change (if there is a difference between them) (step S163, YES), and if there is data that was present in the previous access violation exception registration file but deleted in the current access violation exception registration file For example, this portion is notified to the operation terminal 1 or the like (step S164).

また、今回アクセス違反例外登録ファイル(作成中)で追加されているデータがある場合には、この追加部分を(追加の違反が見過ごされることが無いようにする為に;あるいは例えば、例外許可をするか、プログラムを修正するか等をユーザに判断させるために)操作端末1に通知する(ステップS165)。   Also, if there is data added in the access violation exception registration file (under construction) this time, this additional part (in order to prevent additional violations from being overlooked; The operation terminal 1 is notified (to make the user determine whether or not to modify the program) (step S165).

一方、前回と今回とで変化がない場合は(ステップS163,NO)、正常であることを操作端末1に通知する(ステップS166)。
図24は、点数化タスク部12の処理フローチャート図である。
On the other hand, when there is no change between the previous time and the current time (step S163, NO), the operating terminal 1 is notified that it is normal (step S166).
FIG. 24 is a processing flowchart of the scoring task unit 12.

尚、ここでは、上記点数化要求には、点数化対象の製品を指定する情報が含まれているものとし、図24の処理に係る各種情報/プログラムは、この指定製品に関する各種情報/プログラムであるものとする。   Here, it is assumed that the scoring request includes information specifying the product to be scored, and the various information / programs related to the processing in FIG. 24 are the various information / programs related to the specified product. It shall be.

図24(a)はメインフロー、図24(b)はステップS171の点数化処理の詳細フロー、図24(c)は更にステップS183の処理の詳細フローを示す。
図24(a)に示すように、概略的には点数化処理を実行し(ステップS171)、正常終了した場合には(ステップS172,YES)算出結果をサーバメイン処理に通知し(ステップS173)、正常終了ではない場合には(ステップS172,NO)エラー内容をサーバメイン処理に通知する(ステップS174)。
24A shows the main flow, FIG. 24B shows the detailed flow of the scoring process in step S171, and FIG. 24C shows the detailed flow of the process in step S183.
As shown in FIG. 24 (a), the scoring process is schematically executed (step S171), and when the process ends normally (step S172, YES), the calculation result is notified to the server main process (step S173). If it is not a normal end (step S172, NO), the server main process is notified of the error content (step S174).

以下、ステップS171の点数化処理について、図24(b)、(c)を参照して説明する。
(1)処理実行可能か否かの確認
点数化タスク部12は、まず、点数化に必要な情報があるか否かを判定する(ステップS181)。これは、例えば以下の2点を判定し、2点ともOKであれば点数化に必要な情報があると判定する
・階層定義テーブル(登録)22と動作情報定義テーブル23に定義が設定されている(但し、動作情報定義テーブル23は必ずしも必要なものではない;必須ではない)。
・プログラムソース28が登録済みである。
Hereinafter, the scoring process in step S171 will be described with reference to FIGS.
(1) Confirmation of whether or not processing can be performed The scoring task unit 12 first determines whether there is information necessary for scoring (step S181). For example, the following two points are determined. If both points are OK, it is determined that there is information necessary for scoring. Definitions are set in the hierarchy definition table (registration) 22 and the operation information definition table 23. (However, the operation information definition table 23 is not necessarily required; it is not essential).
-The program source 28 has been registered.

点数化タスク部12は、点数化に必要な情報が無いと判定した場合には(ステップS181,NO)エラーとしてエラー内容をサーバメイン処理部11に返して(ステップS189)、本処理を終了する。一方、点数化に必要な情報があると判定した場合には(ステップS181,YES)、ステップS182へ進み、点数化処理を実行する。
(2)機能毎にプログラムステップ数を計数・登録する。
If the scoring task unit 12 determines that there is no information required for scoring (step S181, NO), it returns an error content to the server main processing unit 11 as an error (step S189), and ends this processing. . On the other hand, if it is determined that there is information necessary for scoring (YES in step S181), the process proceeds to step S182 to perform scoring processing.
(2) Count and register the number of program steps for each function.

まず、プログラムソース28のプログラムステップ数を計数して(例えば各機能毎に計数して)、その結果をアクセス違反点数化ファイル25に登録する(ステップS182)。尚、アクセス違反点数化ファイル25には、少なくとも評価点数算出処理の実行前には、各機能毎のステップ数(LOC)が記憶されている必要がある。   First, the number of program steps of the program source 28 is counted (for example, counted for each function), and the result is registered in the access violation scoring file 25 (step S182). The access violation score file 25 needs to store the number of steps (LOC) for each function at least before executing the evaluation score calculation process.

ここで、プログラムソース28は、複数のプログラムソースファイルより構成される。各プログラムソースファイルのファイル名は、例えば開発者等が予め決められた所定のルールに従って付与している。これは、例えば、ファイル名を参照すれば、どの機能に対応するプログラムソースファイルであるのかを判別できるようになっている。   Here, the program source 28 includes a plurality of program source files. The file name of each program source file is given according to a predetermined rule predetermined by a developer or the like, for example. For example, by referring to the file name, it is possible to determine which function corresponds to the program source file.

すなわち、プログラムソース28を構成する各プログラムソースファイルと各機能との対応関係は、本例では下記のa)の方法を想定して“階層定義テーブル”等に機能コードを登録している。但し、この例に限らず、他の方法(例えば下記の、b),c)の方法)を行っても良い。   That is, in this example, the function code is registered in the “hierarchy definition table” or the like for the correspondence relationship between each program source file constituting the program source 28 and each function, assuming the following method a). However, the present invention is not limited to this example, and other methods (for example, the following methods b) and c) may be performed.

a)ファイル名に機能コードをつける。更に階層を示す情報も付加してもよい。
一例としては例えば、“xxxx_yyyy_abcdef.c”(xxxx:階層、yyyy:機能コード)のように、プログラムの命名規約を決定しておき、プログラムソース28を構成する各プログラムソースファイルのファイル名は、この命名規約に従って付与させるようにする。尚、規約に反するプログラムはエラーとするチェック機能を別途備えるようにしてもよい。
a) Add a function code to the file name. Further, information indicating a hierarchy may be added.
As an example, for example, a program naming convention such as “xxxx_yyyy_abcdef.c” (xxxx: hierarchy, yyyy: function code) is determined, and the file name of each program source file constituting the program source 28 is Give them according to the naming convention. Note that a program that violates the rules may be provided with a check function that makes an error.

これより、例えばプログラムソース28を構成する各プログラムソースファイル毎に、そのファイルのプログラムのステップ数(行数等)をカウントすると共に、そのファイルのファイル名から上記機能コードを取得して、これらに基づいてアクセス違反点数化ファイル25に各機能毎(機能コード毎)のステップ数を登録することができる。   Thus, for example, for each program source file constituting the program source 28, the number of program steps of the file (number of lines, etc.) is counted, and the function code is obtained from the file name of the file, Based on this, the number of steps for each function (for each function code) can be registered in the access violation scoring file 25.

尚、1つの機能に対して複数のプログラムソースファイルが存在する場合には、上記ファイル名に含まれる機能コードが同一である複数のプログラムソースファイルについてまとめて上記プログラム・ステップ数のカウント処理を行って、これらの合計値をアクセス違反点数化ファイル25に登録することになる。   When there are a plurality of program source files for one function, the program / step count process is performed for a plurality of program source files having the same function code included in the file name. Thus, these total values are registered in the access violation scoring file 25.

また、階層定義テーブル(登録)22を参照する際や、アクセス違反計数ファイル24の該当計数欄を見つける際にも、上記ファイル名を参照してその階層や機能コードを取得することになる。   Also, when referring to the hierarchy definition table (registration) 22 or when finding the corresponding counting column of the access violation counting file 24, the hierarchy and function code are acquired by referring to the file name.

b)ディレクトリ指定
ディレクトリ構造をソフトウェア階層と同じにして、その中に各プログラムソースファイルを格納する(例えばSCIというディレクトリに、機能コードがSCIである機能に係る全てのプログラムソースファイルを格納する。
b) Directory designation The directory structure is made the same as the software hierarchy, and each program source file is stored therein (for example, all program source files related to the function whose function code is SCI are stored in a directory called SCI.

c)定義ファイルに登録
階層と機能とプログラムソースファイル名との対応関係を、定義ファイル(不図示の定義マクロ、又は、定義テーブル等)に登録する。すなわち、この定義ファイルを参照すれば、どのプログラムソースファイルが、どの階層のどの機能に対応するものであるか判別できるようにする。
(3)アクセス違反を計数する。
c) Register in the definition file
The correspondence relationship between the hierarchy, the function, and the program source file name is registered in a definition file (a definition macro (not shown) or a definition table). That is, by referring to this definition file, it is possible to determine which program source file corresponds to which function in which hierarchy.
(3) Count access violations.

評価対象の製品のプログラムソース28について、階層定義テーブル(登録)22を参照してアクセス違反を判定して、アクセス違反の数をアクセス違反計数ファイル24上で計数する(ステップS183)。これは、例えば上記4つの評価項目を対象とするものであるが、この例に限らない。   For the program source 28 of the product to be evaluated, an access violation is determined with reference to the hierarchy definition table (registration) 22, and the number of access violations is counted on the access violation counting file 24 (step S183). This is intended for the above four evaluation items, but is not limited to this example.

これは、上記の通り、階層定義テーブル(登録)22には、呼び出し元36(機能単位)と呼び出し先35(各機能毎の関数種別/変数種別単位)のペア毎に、例えば“違反なし”か“違反あり”が登録されている(あるいは、更に、違反の許容数が登録されている)。一方、プログラムソース28に係わる機能コードや関数/変数の種類(種別)は、例えば上述した方法によって識別可能である。これより、プログラムソース28に関して呼び出し元の機能と呼び出し先の機能及び関数種別/変数種別とを認識し、階層定義テーブル(登録)22を参照することで、違反の有無等を判別できる。尚、ステップS183の処理の詳細については、後に図24(c)に示す詳細フローを参照して説明するものとする。
(4)違反の計数結果に対して重み付けを行う。
As described above, the hierarchy definition table (registration) 22 includes, for example, “no violation” for each pair of the caller 36 (function unit) and the callee 35 (function type / variable type unit for each function). Or “violated” is registered (or an allowable number of violations is registered). On the other hand, the function code and function / variable type (type) related to the program source 28 can be identified by the above-described method, for example. As a result, the function of the caller, the function of the callee, and the function type / variable type with respect to the program source 28 are recognized, and the presence / absence of violation can be determined by referring to the hierarchy definition table (registration) 22. Details of the process in step S183 will be described later with reference to a detailed flow shown in FIG.
(4) Weight the violation count results.

動作情報定義テーブル23に含まれる上記4つの評価項目に対する重み係数を用いて、上記ステップS183によって得られた違反件数集計結果を補正することで、重み付け後の集計結果を求める(ステップS184)。つまり、例えば、アクセス違反計数ファイル24の集計値に、動作情報定義テーブル23の重み計数値を乗算した結果を、不図示の重み付け後の集計結果ファイルに登録する。
(5)アクセス違反を点数化する。
Using the weighting coefficients for the four evaluation items included in the motion information definition table 23, the total number of the violations obtained in step S183 is corrected to obtain a weighted total result (step S184). That is, for example, the result obtained by multiplying the total value in the access violation count file 24 by the weight count value in the operation information definition table 23 is registered in a weighted total result file (not shown).
(5) The access violation is scored.

例えば上述した評価点数を算出する(ステップS185)。
評価点数の算出方法については、既に一例を用いて説明済みであるので、ここでは以下に簡単に説明するのみとする。
For example, the above-described evaluation score is calculated (step S185).
Since the evaluation score calculation method has already been described using an example, only a brief description will be given here.

すなわち、上記“重み付け後の集計結果”を、プログラムステップ数(KLOC)で除算して更に所定単位(例えば1000)を乗算することで、上記”単位当たりの点数“を求め、これを動作情報定義テーブル23の上記“足きりの閾値”で必要に応じて足きりした後に“足きりの閾値”を100点満点とする点数系に換算することで上記“足きり後の点数”を求め、「100−“足きり後の点数”」を上記“評価点数”とする。   That is, the above “weighted count result” is divided by the number of program steps (KLOC) and further multiplied by a predetermined unit (for example, 1000) to obtain the “points per unit”, which is defined as motion information definition After adding the “footing threshold” in the table 23 as necessary, the “footing threshold” is converted to a score system with the “footing threshold” being a perfect score of 100, thereby obtaining the “point after footing”. 100— “Point after stepping” is set as the “evaluation point”.

上記“評価点数”としては、(呼び出し元となる)各機能毎の評価点数や、プログラムソース28全体としての評価点数等を求めることになる。
(6)偏差値を算出する
上記算出した評価点数を記憶すると共に、過去に他の製品等に関して上記“評価点数”が算出されて記憶されていた場合には、当該評価点数が記憶(登録)されている製品数が、予め任意に設定されている所定値以上(本例では5以上)であれば(ステップS186,YES)、偏差値を算出する(ステップS187)。
As the “evaluation score”, an evaluation score for each function (to be a caller), an evaluation score for the entire program source 28, and the like are obtained.
(6) Calculate the deviation value. The calculated evaluation score is stored, and if the “evaluation score” is calculated and stored for other products in the past, the evaluation score is stored (registered). If the number of products that are set is equal to or greater than a predetermined value that is arbitrarily set in advance (5 or more in this example) (YES in step S186), a deviation value is calculated (step S187).

尚、偏差値の算出処理については、既に説明済みであるので、ここでは説明しない。
尚、評価点数算出・登録済みの製品数が所定値未満(5未満)である場合には(ステップS186,NO)、そのままステップS188の処理へ移行する。
(7)処理結果をサーバメイン処理に返す。
The deviation value calculation processing has already been described and will not be described here.
If the number of products for which the evaluation score has been calculated and registered is less than the predetermined value (less than 5) (NO in step S186), the process proceeds to step S188 as it is.
(7) Return the processing result to the server main processing.

上記算出結果すなわち評価点数や偏差値等を、サーバメイン処理部11に返す(ステップS188)。
プログラム開発担当者等は、任意のプログラムを作成すると、上記管理サーバ10によってそのプログラム構造を解析・点数化させることで、その評価点数、偏差値等によって、プログラムがソフトウェア構造設計通りに作成できたか、あるいは少なくとも過去の他製品に比べてレベルダウンしていないこと等を確認することができる。これは、数値化・点数化が行われたことで、客観的な分かり易い評価基準が示されるので、容易に的確な評価・判断を行うことができることになる。そして、たとえば、もし、レベルダウンしていると判断されるならば、開発担当者等は、プログラムの見直しを行うことになる。
The calculation result, that is, the evaluation score, the deviation value, and the like are returned to the server main processing unit 11 (step S188).
When a program developer or the like creates an arbitrary program, the management server 10 analyzes and scores the program structure, so that the program can be created according to the evaluation score, deviation value, and the like according to the software structure design. Or, at least, it can be confirmed that the level is not down compared to other past products. Since numerical evaluation and scoring are performed, an objective and easy-to-understand evaluation standard is shown, so that accurate evaluation and determination can be easily performed. For example, if it is determined that the level is down, the person in charge of development will review the program.

尚、上記ソフトウェア構造設計とは、既に述べた通り、例えば、複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限があるソフトウェア構造設計である。これに、更に、階層構造に係る制限も加わってもよい。階層構造に係る制限については、例えば一例を図2等で説明したように、複数の機能が階層化されたソフトウェア構造において、少なくとも相対的に下位側の機能から上位側の機能を呼び出すことは違反である、等の制限がある。これに加えて更に、上位側の機能から下位側の機能を呼び出す場合であっても、2段以上(いじょう)下(した)の層の機能を呼び出すことは違反となるようにしてもよい。   Note that the software structure design is a software structure design in which there is a restriction on access between functions in software including a plurality of functions, as already described. In addition, restrictions on the hierarchical structure may be added. Regarding restrictions related to the hierarchical structure, for example, as described with reference to FIG. 2 etc., in the software structure in which a plurality of functions are hierarchized, it is illegal to call a higher-order function from at least a relatively lower-order function. There are restrictions such as. In addition to this, even when calling a lower-level function from a higher-level function, calling a function of a layer that is two or more levels lower may be a violation. .

また、管理者は評価点数が基準値(過去の製品(変更前の製品等)の評価点数)以上であることを確認するだけで、開発初期の構造が維持できる。さらに、偏差値を算出することにより、過去の製品と比較して向上を図れるようにする。点数化することで客観的に品質を評価できる。   Further, the administrator can maintain the structure at the initial stage of development simply by confirming that the evaluation score is equal to or higher than the reference value (evaluation score of the past product (product before change, etc.)). Further, by calculating the deviation value, it is possible to improve compared with past products. Quality can be objectively evaluated by scoring.

別の側面から言えば、本システムにより、以下の効果が得られるものといえる。
・プログラムそのものを見なくても、ソフトウェア構造を確認できる(開発効率化)。
・ソフトウェア構造が変わらないので、メンテナンス性を維持できる(保守性維持)。
If it says from another side, it can be said that the following effects are acquired by this system.
-The software structure can be confirmed without looking at the program itself (development efficiency).
-Since the software structure does not change, maintainability can be maintained (maintainability).

過去の製品の評価点数と比べて、点数が下がらない場合には、ソフトウェア構造が変わらない(維持できている)(品質が下がらない)と判断できる。
尚、上記のようなソフトウェア構造設計の制限は、完全に守らなくても(多少違反があっても)、直ちにソフトウェアが正常に動作しないものとなるというものではない。例えば、一応は正常に動作するが、上記制限がある程度以上守られている(少なくとも過去よりは悪くなっていない)ことを確認したい場合(品質が下がらないことを確認したい場合)等に、本システムが有効利用できることになる。
When the score does not decrease compared to the evaluation score of the past product, it can be determined that the software structure is not changed (maintained) (quality does not decrease).
It should be noted that the software structure design limitation described above does not mean that the software does not immediately operate normally even if it is not completely observed (even if there is a slight violation). For example, if you want to make sure that the above restrictions work properly (at least not worse than the past), but you want to make sure that the quality does not go down. Can be used effectively.

以下、図24(c)を参照して、上記ステップS183の処理の詳細例について説明する。尚、この例では、機能や関数種別/変数種別(4つの評価項目等)を、名称(プログラムソースファイル名、関数名、変数名)によって識別可能とした場合を示すが、この例に限らない。   Hereinafter, a detailed example of the process of step S183 will be described with reference to FIG. In this example, a case where functions and function types / variable types (four evaluation items, etc.) can be identified by names (program source file name, function name, variable name) is shown, but the present invention is not limited to this example. .

ここでは、一例として、機能やプログラムソースファイル名や関数/変数の名称が、以下のルールに従って決められているものとする。また、このルールに基づくプログラム例を図25に示す。   Here, as an example, it is assumed that functions, program source file names, and function / variable names are determined according to the following rules. An example of a program based on this rule is shown in FIG.

尚、ここでは機能コードが“SCI”である機能の例を示すが、勿論、この例に限らない。
*機能コードの判別
各プログラムソースファイルのファイル名の一部に、それが関係する機能の機能コードが含まれるようにしている。すなわち、例えば、予め決めたルールに従って、各プログラムソースファイル名の先頭が「機能コードを示す大文字+“_”(アンダースコア)」となっている。尚、ここでは、更に、機能コードは3文字であるという規定もあるものとする。
Although an example of a function whose function code is “SCI” is shown here, of course, the present invention is not limited to this example.
* Function code identification The function code of the function to which it relates is included as part of the file name of each program source file. That is, for example, according to a predetermined rule, the head of each program source file name is “capital letter indicating function code +“ _ ”(underscore)”. In this case, it is further assumed that the function code is 3 characters.

具体例: プログラムソースファイル名=SCI_Driver.c
よって、上記の例では、機能コード(機能名と見做してもよい)は“SCI”であると判定する。尚、必ずしも1つの機能に1つのプログラムソースファイルのみが対応するとは限らない。1つの機能に複数のプログラムソースファイルが対応しても構わない。換言すれば、機能コードは、複数のプログラムソースファイルをグループ化するもの(複数のプログラムソースファイルから構成される機能に対して割当てられるもの)であってもよい。上記の例で言えば上記“SCI_Driver.c”以外にもファイル名の先頭3文字が“SCI”であるプログラムソースファイルが存在するかもしれないことになる。
*API関数の判別
API関数である関数は、全て、その関数名の先頭が「機能コードの大文字+“_”(アンダースコア)」となっている。
Example: Program source file name = SCI_Driver.c
Therefore, in the above example, the function code (which may be regarded as a function name) is determined to be “SCI”. Note that one program source file does not necessarily correspond to one function. A plurality of program source files may correspond to one function. In other words, the function code may be a grouping of a plurality of program source files (assigned to a function composed of a plurality of program source files). In the above example, there may be a program source file whose first three characters are “SCI” in addition to “SCI_Driver.c”.
* Determination of API Function All functions that are API functions have the function name beginning with “capital letter of function code +“ _ ”(underscore).

具体例: SCI_Initial(void);
尚、図25には上記具体例を用いたプログラム例が示してある。
*ローカル関数の判別
ローカル関数である関数は、全て、その関数名の先頭が「機能コードの先頭1文字が大文字で残りが小文字+“_”(アンダースコア)」となっている。
Example: SCI_Initial (void);
FIG. 25 shows a program example using the above specific example.
* Distinguishing local functions All functions that are local functions have the function name beginning with "the first letter of the function code is uppercase and the rest is lowercase +" _ "(underscore)".

具体例: Sci_FifoSet(void);
尚、図25には上記具体例を用いたプログラム例が示してある。
*グローバル変数の判別
グローバル変数である変数は、全て、その変数名の先頭が「“g_”+ 機能コードの先頭1文字が大文字で残りが小文字」となっている。
Example: Sci_FifoSet (void);
FIG. 25 shows a program example using the above specific example.
* Distinguishing global variables All variables that are global variables have “g_” + the first one of the function code in upper case letters and the rest in lower case letters.

具体例: g_SciSendState;
尚、図25には上記具体例を用いたプログラム例が示してある。
*ローカル変数の判別
ローカル変数である変数は、全て、その変数名の先頭が「“g”+ 機能コードの先頭1文字が大文字で残りが小文字」となっている。
Example: g_SciSendState;
FIG. 25 shows a program example using the above specific example.
* Distinguishing local variables All variables that are local variables have “g” + the first letter of the function code as upper case letters and the rest as lower case letters.

具体例: gSciExpcntlUS;
尚、図25には上記具体例を用いたプログラム例が示してある。
尚、上記の例では、機能コードに関するルールとして「先頭にはgは使わない」を追加することが望ましい。
Example: gSciExpcntlUS;
FIG. 25 shows a program example using the above specific example.
In the above example, it is desirable to add “Do not use g at the beginning” as a rule relating to the function code.

上記のように、本手法では、プログラムソース文における関数/変数の名称には、その関数/変数の属する機能を示す情報と、その関数/変数の関数種別/変数種別を示す情報とが含まれている。これらの情報は、例えば上記一例のような所定のルールに従ったものである。このように、本手法では、関数/変数の名称を参照することで、その関数/変数の属する機能や、その関数/変数の関数種別/変数種別等を判別できる。   As described above, in this method, the name of the function / variable in the program source statement includes information indicating the function to which the function / variable belongs and information indicating the function type / variable type of the function / variable. ing. These pieces of information follow a predetermined rule as in the above example. Thus, in this method, by referring to the name of the function / variable, it is possible to determine the function to which the function / variable belongs, the function type / variable type of the function / variable, and the like.

このように、本例では、名称によって機能及び関数種別/変数種別等を区別できるため、static変数等のようなソース内でのみ区別可能なものとは異なり、例えばある機能のグローバル変数と他の機能のグローバル変数とを区別することや、ある機能の変数と、これと同一の変数名の他の機能の変数とを区別できる。   In this way, in this example, the function and function type / variable type can be distinguished by the name. Therefore, unlike those that can be distinguished only in the source such as static variables, for example, a global variable of a certain function and another variable It is possible to distinguish a global variable of a function, or a variable of a certain function and a variable of another function having the same variable name.

以下、上記一例を用いながら、図24(c)に示す詳細フローチャート図について説明する。
図24(b)において、評価対象のプログラムソース28を構成する全てのプログラムソースファイルを、順次、解析対象として(ステップS191)、解析対象のプログラムソースファイルについてステップS192〜S196の解析処理を行うことを繰り返す。そして、全プログラムソースファイルについて解析処理が完了したら、ステップS197の処理を行って、本処理は終了する。
The detailed flowchart shown in FIG. 24C will be described below using the above example.
In FIG. 24B, all program source files constituting the program source 28 to be evaluated are sequentially analyzed (step S191), and the analysis processing of steps S192 to S196 is performed on the program source file to be analyzed. repeat. When the analysis process is completed for all program source files, the process of step S197 is performed, and this process ends.

以下、まず、ステップS192〜S196の処理について説明する。
まず、解析対象のプログラムソースファイルのファイル名に基づいて、その機能コード(機能名)を判定する(ステップS192)。上記一例の場合、プログラムソースファイル名=SCI_Driver.cであることから、機能コード(機能名)は“SCI”であると判定する。また、図4に示す例では、機能コード34が“SCI”の機能の機能番号33は、「機能1−1」となっている。つまり、これが、上記階層定義テーブル(登録)22における呼び出し元36の機能番号となる。
Hereinafter, first, the processing of steps S192 to S196 will be described.
First, the function code (function name) is determined based on the file name of the program source file to be analyzed (step S192). In the above example, since the program source file name = SCI_Driver.c, it is determined that the function code (function name) is “SCI”. In the example illustrated in FIG. 4, the function number 33 of the function whose function code 34 is “SCI” is “function 1-1”. That is, this is the function number of the caller 36 in the hierarchy definition table (registration) 22.

そして、解析対象のプログラムソースファイルについて、例えば1行目〜最終行までを順次参照して、任意の関数が任意の他の関数または変数の呼び出しを行う箇所を見つける毎に、当該呼び出し先の関数または変数の名称に基づいて、その関数種別/変数種別と呼び出し先の機能とを判別する。   Then, with respect to the program source file to be analyzed, for example, the first line to the last line are sequentially referred to, and each time an arbitrary function finds a place where an arbitrary other function or variable is called, the call destination function Alternatively, based on the name of the variable, the function type / variable type and the function of the call destination are determined.

すなわち、例えば、名称の先頭部分が、gで始まり、且つ、gの次が“_”(アンダースコア)である場合には、グローバル変数であると判定し、gの次が“_”ではない場合にはローカル変数と判定する。更に、“_”またはgに続く3文字を抽出して、これを全て大文字にしたものを呼び出し先の機能の機能コードと認識する。   That is, for example, if the first part of the name starts with g and the next of g is “_” (underscore), it is determined as a global variable, and the next of g is not “_”. In this case, it is determined as a local variable. Further, three characters following “_” or g are extracted, and all of them are capitalized and recognized as a function code of the function of the call destination.

また、例えば、名称の先頭部分がg以外で始まる場合には、“_”(アンダースコア)を見つけて“_”より前の文字列を抽出し、抽出した文字全てが大文字である場合には、API関数であると判定する。また、抽出した文字列のうち先頭の文字のみが大文字である場合には、ローカル関数であると判定する。また、何れに場合でも、抽出した文字列を全て大文字にしたものを呼び出し先の機能の機能コードと認識する。   Also, for example, if the first part of the name starts with something other than g, “_” (underscore) is found, the character string before “_” is extracted, and when all the extracted characters are capital letters , It is determined to be an API function. If only the first character in the extracted character string is capitalized, it is determined to be a local function. In any case, the extracted character string in all capital letters is recognized as the function code of the call destination function.

以上の処理により、呼び出し元36の機能番号と、呼び出し先の機能コード34及び種別(呼び出し先35に示す4つの評価項目の何れか;関数種別/変数種別)のペアを判別できるので、このペアに基づいて上記階層定義テーブル(登録)22を参照して違反の有無を判定でき、更に違反であればアクセス違反計数ファイル24の該当計数欄に計数することができる(ステップS193,S194,S195,S196)。尚、その際、呼び出し先が自機能である場合には、階層定義テーブル15を参照することなく、違反なしと判定するようにしてもよい。   With the above processing, the function number of the caller 36, the function code 34 of the callee, and the type (any of the four evaluation items shown in the callee 35; function type / variable type) can be determined. Based on the above, it is possible to determine whether or not there is a violation by referring to the hierarchy definition table (registration) 22, and if it is a violation, it can be counted in the corresponding counting column of the access violation counting file 24 (steps S 193, S 194, S 195) S196). At this time, when the call destination is the own function, it may be determined that there is no violation without referring to the hierarchy definition table 15.

これより、例えば、呼び出し先が他機能のグローバル変数であれば、階層定義テーブル(登録)22を参照して違反の有無を判定し、違反であればアクセス違反計数ファイル24の該当計数欄に計数する(ステップS193)。   Thus, for example, if the call destination is a global variable of another function, the presence / absence of violation is determined with reference to the hierarchy definition table (registration) 22, and if it is a violation, it is counted in the corresponding counting column of the access violation counting file 24. (Step S193).

同様に、呼び出し先が他機能のローカル変数であれば、階層定義テーブル(登録)22を参照して違反の有無を判定し、違反であればアクセス違反計数ファイル24の該当計数欄に計数する(ステップS194)。   Similarly, if the call destination is a local variable of another function, the presence / absence of a violation is determined with reference to the hierarchy definition table (registration) 22, and if it is a violation, it is counted in the corresponding counting column of the access violation counting file 24 ( Step S194).

呼び出し先が他機能のAPI関数であれば、階層定義テーブル(登録)22を参照して違反の有無を判定し、違反であればアクセス違反計数ファイル24の該当計数欄に計数する(ステップS195)。   If the call destination is an API function of another function, the presence / absence of violation is determined with reference to the hierarchy definition table (registration) 22, and if it is a violation, it is counted in the corresponding counting column of the access violation counting file 24 (step S195). .

呼び出し先が他機能のローカル関数であれば、階層定義テーブル(登録)22を参照して違反の有無を判定し、違反であればアクセス違反計数ファイル24の該当計数欄に計数する(ステップS196)。   If the call destination is a local function of another function, the presence / absence of violation is determined with reference to the hierarchy definition table (registration) 22, and if it is a violation, it is counted in the corresponding counting column of the access violation counting file 24 (step S196). .

以上の処理を解析対象のプログラムファイルの全呼び出し処理に関して実行したら、未解析のプログラムファイルがある場合にはそれを次の解析対象として同様の処理を実行し、全てのプログラムファイルについて処理実行完了したらループを抜けてステップS197の処理へと移行する。   When the above processing is executed for all the call processing of the program file to be analyzed, if there is an unanalyzed program file, the same processing is executed for the next analysis target, and processing has been completed for all the program files. The process exits the loop and proceeds to the process of step S197.

ステップS197では、階層定義テーブル(登録)22の設定に従って、場合によっては、上記計数済みのアクセス違反計数ファイル24の内容を補正する。これは既に述べたように‘0’、‘1’以外の値(例えば‘3’)が設定されている場合には、これを違反許容数等とする上述した補正を行う。   In step S197, according to the setting of the hierarchy definition table (registration) 22, the contents of the counted access violation counting file 24 are corrected in some cases. As described above, when a value other than ‘0’ and ‘1’ (for example, ‘3’) is set, the above-described correction is performed by using this as an allowable number of violations.

上記ステップS184では、この様な補正後の集計結果を用いて、例えば上述した重み付けを行うことになる。
尚、上記図15〜図24に示すフローチャートの処理は、管理サーバ10の不図示のCPU等が、不図示の記憶装置(ハードディスク、メモリ等)に予め記憶されている所定のアプリケーションプログラムを読出し・実行することにより実現される。
In the above step S184, for example, the above-described weighting is performed using such a corrected total result.
15 to 24, the CPU (not shown) of the management server 10 reads out a predetermined application program stored in advance in a storage device (hard disk, memory, etc.) not shown. It is realized by executing.

尚、上述した処理例は、一例であり、この例に限るものではない。また、必ずしも上述した処理例の処理全てを実行する必要性があるとは限らない。例えば、階層定義テーブルの半自動生成は、例えば図10に示す(2)と(3)のみとし、上記「階層違反の有無や許容情報(許容登録数)」は、ユーザが手作業で任意に設定するものであってもよい。尚、この例の場合、アクセス違反例外登録ファイル26(27)は、必ずしも生成しなくてもよい(つまり、図10の(2)の処理では、階層定義テーブル(作成中)21のみが生成されるものであってもよい)。   Note that the above-described processing example is an example, and the present invention is not limited to this example. In addition, it is not always necessary to execute all the processes in the above-described process example. For example, the semi-automatic generation of the hierarchy definition table is performed only in (2) and (3) shown in FIG. 10, for example, and the above-mentioned “non-existence of hierarchy violation and allowable information (allowable registration number)” is arbitrarily set manually by the user. You may do. In this example, the access violation exception registration file 26 (27) does not necessarily have to be generated (that is, in the process of (2) in FIG. 10, only the hierarchy definition table (under creation) 21 is generated). May be).

以上説明したように、本発明のプログラム構造評価システム等によれば、複数の機能より成るソフトウェアにおける機能間のアクセスに係る制限があるソフトウェア構造設計に従ったプログラム作成が行われたか否かについて、プログラムを解析・点数化することで容易に評価可能とすることができる。更に、この解析・点数化のために必要となる階層定義テーブルを、半自動生成することもでき、階層定義テーブルの設定作業の手間を軽減することができる。   As described above, according to the program structure evaluation system and the like of the present invention, whether or not a program has been created according to software structure design with restrictions on access between functions in software composed of a plurality of functions. By analyzing and scoring the program, it can be easily evaluated. Furthermore, the hierarchy definition table required for the analysis and scoring can be generated semi-automatically, and the labor for setting the hierarchy definition table can be reduced.

新規に作成した製品(プログラム等)は、対応する階層定義テーブルが無いため、階層評価以前に、対応する階層定義テーブルを予め作成しなければいけない。これを手動入力してもよいが、大規模になると新規作成に非常に手間がかかる。   Since a newly created product (program or the like) does not have a corresponding hierarchy definition table, the corresponding hierarchy definition table must be created in advance before the hierarchy evaluation. This may be input manually, but it takes a lot of time to create a new one when the scale is large.

これに対して、本例では、上述したように階層定義テーブルを半自動作成できる。
また、上述したように、旧ソフトウェア(レガシー資産)を利用して改造等を行って新規ソフトウェアとして作成する場合もあるが、レガシー資産における違反は、違反であることが分かっていても修正することが困難な場合が少なくなく、現状維持(それ以上違反を増やさない)が出来ればよいとする場合がある。しかしながら、新規ソフトウェア作成の際に、違反の削除と追加が同時に発生すると、追加の違反が見過ごされる可能性がある。例えば、違反が1つ増えて1つ減った場合には、トータルの違反数は変化がないので、新規違反発生を見逃す可能性がある。
In contrast, in this example, the hierarchy definition table can be semi-automatically created as described above.
In addition, as described above, the old software (legacy assets) may be modified to create new software, but the legacy assets violations should be corrected even if they are known to be violations. In many cases, it may be difficult to maintain the current status (no more violations). However, if a violation is deleted and added at the same time as creating new software, the additional violation may be overlooked. For example, if the number of violations increases by one and decreases by one, the total number of violations does not change, so there is a possibility that a new violation will be missed.

これに対して、本手法では、階層違反の例外情報(プログラム、関数・変数名、違反内容など)を記録し、前回の情報(旧バージョンのプログラムの際に作成されていた例外情報等)と比較することで、違反が新規に発生したものがあるか判断し、新規発生であれば、既存の許容すべきものなのかを判断することにより、新規に発生した違反を見過ごさないようにする。   On the other hand, in this method, exception information (program, function / variable name, violation contents, etc.) of the hierarchy violation is recorded, and the previous information (exception information etc. created in the previous version of the program) By comparing, it is determined whether there is a new violation, and if it is new, it is determined whether the existing violation should be permitted so as not to overlook the newly generated violation.

上述したように、本発明では、上述した効果に加えて以下の効果が得られる。
(1)階層定義テーブルの半自動生成を実現できる。例えばユーザが階層定義や違反の許容の有無を設定するだけで、階層定義テーブル(登録)22が自動的に作成される(開発効率化)。
(2)新規に発生したアクセス違反を見過ごすことが無くなる。(保守性維持)
尚、上述した管理サーバ10の各種処理機能は、換言すれば、管理サーバ10は下記の各種処理機能部(不図示)を有するものと言うこともできる。
As described above, the present invention provides the following effects in addition to the effects described above.
(1) Semi-automatic generation of a hierarchy definition table can be realized. For example, the hierarchy definition table (registration) 22 is automatically created (development efficiency) simply by the user setting the hierarchy definition and whether or not the violation is permitted.
(2) It is no longer necessary to overlook new access violations. (Maintainability)
In other words, the various processing functions of the management server 10 described above can be said to have the following various processing function units (not shown).

すなわち、管理サーバ10は、下記の違反有無情報記憶部と違反判定部と集計部と評価点数算出部と違反有無情報生成部の各種処理機能部を有するものと言うこともできる。
違反有無情報記憶部は、複数の機能より成るソフトウェアの機能間のアクセスに係る制限に従って、呼び出し元となる機能と呼び出し先となる機能の関数種別/変数種別との組み合わせである機能ペア毎に、違反の有無、または/及び、違反許容数が格納された違反有無情報を記憶する。
That is, it can be said that the management server 10 includes various processing function units such as the following violation presence / absence information storage unit, violation determination unit, aggregation unit, evaluation score calculation unit, and violation presence / absence information generation unit.
Violation presence / absence information storage unit, for each function pair that is a combination of the function type / variable type of the function to be called and the function to be called, according to the restrictions on access between the functions of the software consisting of a plurality of functions, Violation presence / absence information storing the existence / non-existence of violations and / or the allowable number of violations is stored.

違反判定部は、評価対象のソフトウェアのプログラムソース文を順次参照して、任意の機能から他の機能の任意の関数/変数を呼び出す処理を検出する毎に、該呼び出し先の関数/変数の関数種別/変数種別を判別して、さらに上記違反有無情報を参照して、該呼び出しが違反か否かを判定する。   The violation determining unit sequentially refers to the program source statements of the software to be evaluated, and each time a process for calling an arbitrary function / variable of another function from an arbitrary function is detected, the function of the called function / variable The type / variable type is discriminated, and the violation presence / absence information is further referenced to determine whether the call is a violation.

集計部は、上記違反判定部による判定結果に基づいて、上記各機能毎または/及び上記評価対象のソフトウェア全体の違反件数を集計する。
評価点数算出部は、該集計部による違反件数の集計結果に基づいて、上記評価対象のソフトウェア全体または/及びその各機能毎の評価点数を算出する。
The counting unit counts the number of violations for each function or / and for the entire software to be evaluated based on the determination result by the violation determining unit.
The evaluation score calculation unit calculates the evaluation score for the entire evaluation target software and / or each function thereof based on the total number of violations by the totaling unit.

違反有無情報生成部は、予め、上記評価対象のソフトウェアに基づいて、上記違反有無情報を生成して上記違反有無情報記憶部に記憶させる。
また、例えば、上記違反有無情報生成部は、
上記評価対象のソフトウェアから各機能に係る所定のデータ項目のデータを抽出して、これを初期状態の違反有無情報に格納するプログラム解析部と、
上記プログラム解析部の処理後の上記違反有無情報に対して、階層に係るデータ項目のデータを設定させる階層データ設定部とを有するものであってもよい。
The violation presence / absence information generation unit generates the violation presence / absence information based on the software to be evaluated in advance and stores it in the violation presence / absence information storage unit.
For example, the violation presence / absence information generation unit
A program analysis unit that extracts data of predetermined data items related to each function from the evaluation target software and stores the data in the violation information in the initial state;
A hierarchy data setting unit that sets data of data items related to the hierarchy for the violation presence / absence information after processing by the program analysis unit may be included.

また、例えば、上記違反有無情報は、任意の機能の識別情報である機能名または/及び機能コードと、該機能の階層を示す階層番号、または/及び、該階層番号が含まれる機能番号の各データ項目を有し、上記抽出される、各機能に係る所定のデータ項目は、上記機能名または/及び上記機能コードであり、上記設定させる、上記階層に係る任意のデータ項目は、上記階層番号または/及び上記機能番号であってもよい。   Further, for example, the violation presence / absence information includes a function name or / and function code which is identification information of an arbitrary function, a layer number indicating a layer of the function, and / or a function number including the layer number. The predetermined data item relating to each function that has the data item and is extracted is the function name or / and the function code, and the arbitrary data item relating to the hierarchy to be set is the hierarchy number Or / and the function number may be used.

また、例えば、上記階層データ設定部は、上記階層番号と上記機能番号の両方が設定された場合には、両者が整合するか否かをチェックし、上記階層番号と上記機能番号の何れか一方が設定された場合には、該設定データに基づいて他方のデータを生成するものであってもよい。   Further, for example, when both the hierarchy number and the function number are set, the hierarchy data setting unit checks whether or not both match, and either the hierarchy number or the function number is checked. When is set, the other data may be generated based on the setting data.

また、例えば、上記プログラム解析部は、更に、上記評価対象のソフトウェアから、上記機能ペアを示すデータを抽出して、該機能ペアデータを初期状態のアクセス違反例外情報に記憶するものであってもよい。   In addition, for example, the program analysis unit may further extract data indicating the function pair from the evaluation target software and store the function pair data in the access violation exception information in the initial state. Good.

また、例えば、上記違反有無情報生成部は、
上記アクセス違反例外情報を参照して、上記記憶された機能ペア毎にアクセス違反か否かを判定し、アクセス違反ではないと判定された機能ペアは上記アクセス違反例外情報から削除し、アクセス違反であると判定された機能ペアに対して違反種別を記憶するアクセス違反判別部を更に有するものであってもよい。
For example, the violation presence / absence information generation unit
Referring to the access violation exception information, it is determined whether or not there is an access violation for each of the stored function pairs. The function pair that is determined not to be an access violation is deleted from the access violation exception information. You may further have an access violation discrimination | determination part which memorize | stores violation classification with respect to the function pair determined to exist.

また、例えば、上記違反有無情報生成部は、
上記アクセス違反判別部による処理後の上記アクセス違反例外情報の上記機能ペア毎に、そのアクセス違反を許容するか否かを任意に設定させる違反許容設定部を更に有するものであってもよい。
For example, the violation presence / absence information generation unit
For each function pair of the access violation exception information after processing by the access violation determining unit, it may further include a violation permission setting unit for arbitrarily setting whether or not to allow the access violation.

また、例えば、 上記違反有無情報生成部は、
上記違反許容設定部による設定後の上記アクセス違反例外情報を用いて、上記階層データ設定部による設定後の上記違反有無情報に対して、当該違反有無情報における上記機能ペア毎の違反の有無または/及び違反許容数を自動的に設定する違反有無情報設定部を更に有するものであってもよい。
In addition, for example, the violation existence information generation unit
Using the access violation exception information after setting by the violation allowance setting unit, the violation presence information after setting by the hierarchical data setting unit, whether there is a violation for each function pair in the violation presence information or / And a violation presence / absence information setting unit for automatically setting the allowable number of violations.

また、例えば、上記評価対象のソフトウェアに対応する上記アクセス違反例外情報と、該評価対象のソフトウェアに関連する別のソフトウェアに対応して生成済みであった上記アクセス違反例外情報である前回アクセス違反例外情報とを相互に比較して、相違がある場合には相違点を抽出する違反増減検出部を更に有するものであってもよい。   Also, for example, the previous access violation exception that is the access violation exception information that has been generated for the software to be evaluated and the other software related to the software to be evaluated. It may further include a violation increase / decrease detection unit that compares information with each other and extracts differences when there is a difference.

また、例えば、上記評価対象のソフトウェアに対応する上記違反有無情報と、該評価対象のソフトウェアに関連する別のソフトウェアに対応して生成済みであった上記違反有無情報である前回違反有無情報とを相互に比較して、登録されている機能に相違がある場合には相違点を抽出する機能変化検出部を更に有するものであってもよい。   In addition, for example, the violation presence / absence information corresponding to the evaluation target software and the previous violation presence / absence information that has been generated corresponding to another software related to the evaluation target software When there is a difference in registered functions compared to each other, a function change detection unit that extracts a difference may be further included.

また、例えば、他の複数のソフトウェアについてそれぞれ上記評価点数が算出済みである場合に、上記評価対象のソフトウェアの評価点数も含む該複数の評価点数に基づいて、上記評価対象のソフトウェアの評価点数について偏差値を算出する偏差値算出部を更に有するものであってもよい。   Further, for example, when the evaluation score has been calculated for each of a plurality of other software, the evaluation score of the evaluation target software is based on the plurality of evaluation scores including the evaluation score of the evaluation target software. You may further have a deviation value calculation part which calculates a deviation value.

1 操作端末
2 ネットワーク
10 管理サーバ
11 サーバメイン処理部
12 点数化タスク部
13 定義アクセスタスク部
14 定義生成タスク部
15 偏差値計数ファイル
21 階層定義テーブル(作成中)
22 階層定義テーブル(登録)
23 動作情報定義テーブル
24 アクセス違反計数ファイル
25 アクセス違反点数化ファイル
26 アクセス違反例外登録ファイル(作成中)
27 アクセス違反例外登録ファイル(登録)
28 プログラムソース
31 機能名
32 階層番号(レイヤ)
33 機能番号
34 機能コード
35 呼び出し先
36 呼び出し元
41 参照元機能コード
42 ソース名
43 参照先機能コード
44 検出対象名称
45 検出種別コード
46 例外アクセス許可フラグ
47 可否判定者
51 機能名
52 階層番号(レイヤ)
53 機能番号
54 機能コード
55 呼び出し先
56 呼び出し元

DESCRIPTION OF SYMBOLS 1 Operation terminal 2 Network 10 Management server 11 Server main process part 12 Pointing task part 13 Definition access task part 14 Definition production | generation task part 15 Deviation value count file 21 Hierarchy definition table (under construction)
22 Hierarchy definition table (registration)
23 Action information definition table 24 Access violation counting file 25 Access violation score file 26 Access violation exception registration file (under construction)
27 Access violation exception registration file (registration)
28 Program source 31 Function name 32 Layer number (layer)
33 Function number 34 Function code 35 Call destination 36 Call source 41 Reference source function code 42 Source name 43 Reference destination function code 44 Detection target name 45 Detection type code 46 Exception access permission flag 47 Accessibility determiner 51 Function name 52 Hierarchy number (layer )
53 Function number 54 Function code 55 Callee 56 Caller

Claims (20)

任意のソフトウェアについて所定の評価を行うためのコンピュータシステムにおいて、
複数の機能より成るソフトウェアの機能間のアクセスに係る制限に従って、呼び出し元となる機能と呼び出し先となる機能の関数種別/変数種別との組み合わせである機能ペア毎に、違反の有無、または/及び、違反許容数が格納された違反有無情報を記憶する違反有無情報記憶手段と、
評価対象のソフトウェアのプログラムソース文を順次参照して、任意の機能から他の機能の任意の関数/変数を呼び出す処理を検出する毎に、該呼び出し先の関数/変数の関数種別/変数種別を判別して、さらに前記違反有無情報を参照して、該呼び出しが違反か否かを判定する違反判定手段と、
前記違反判定手段による判定結果に基づいて、前記各機能毎または/及び前記評価対象のソフトウェア全体の違反件数を集計する集計手段と、
該集計手段による違反件数の集計結果に基づいて、前記評価対象のソフトウェア全体または/及びその各機能毎の評価点数を算出する評価点数算出手段と、
予め、前記評価対象のソフトウェアに基づいて、前記違反有無情報を生成して前記違反有無情報記憶手段に記憶させる違反有無情報生成手段と、
を有することを特徴とするプログラム構造評価システム。
In a computer system for performing a predetermined evaluation for arbitrary software,
In accordance with restrictions on access between software functions consisting of multiple functions, for each function pair that is a combination of the function type / variable type of the function to be called and the function to be called, whether there is a violation, and / or A violation presence / absence information storage means for storing violation violation presence / absence information in which the allowable number of violations is stored;
Each time a process for calling an arbitrary function / variable of another function from an arbitrary function is detected by sequentially referring to the program source statements of the software to be evaluated, the function type / variable type of the called function / variable is changed. Discriminating and referring to the violation presence / absence information to determine whether the call is a violation or not,
Based on the determination result by the violation determination unit, a totaling unit that totals the number of violations for each function or / and the entire software to be evaluated;
An evaluation score calculating means for calculating an evaluation score for the whole evaluation target software and / or each function thereof based on the total number of violations by the counting means;
Violation presence / absence information generating means for generating the violation existence / non-existence information and storing it in the violation presence / absence information storage means based on the evaluation target software in advance,
A program structure evaluation system comprising:
前記違反有無情報生成手段は、
前記評価対象のソフトウェアから各機能に係る所定のデータ項目のデータを抽出して、これを初期状態の違反有無情報に格納するプログラム解析手段と、
前記プログラム解析手段の処理後の前記違反有無情報に対して、階層に係るデータ項目のデータを設定させる階層データ設定手段とを有する、
ことを特徴とする請求項1記載のプログラム構造評価システム。
The violation presence / absence information generating means includes
Program analysis means for extracting data of predetermined data items relating to each function from the evaluation target software, and storing this in the violation information on the initial state;
Hierarchical data setting means for setting data of data items related to the hierarchy for the violation presence / absence information after the processing of the program analysis means,
The program structure evaluation system according to claim 1.
前記違反有無情報は、任意の機能の識別情報である機能名または/及び機能コードと、該機能の階層を示す階層番号、または/及び、該階層番号が含まれる機能番号の各データ項目を有し、
前記抽出される、各機能に係る所定のデータ項目は、前記機能名または/及び前記機能コードであり、
前記設定させる、前記階層に係る任意のデータ項目は、前記階層番号または/及び前記機能番号であることを特徴とする請求項2記載のプログラム構造評価システム。
The violation presence / absence information includes a function name or / and function code, which is identification information of an arbitrary function, and a data item of a layer number indicating the layer of the function or / and a function number including the layer number. And
The extracted predetermined data item relating to each function is the function name or / and the function code,
3. The program structure evaluation system according to claim 2, wherein the arbitrary data item related to the hierarchy to be set is the hierarchy number or / and the function number.
階層データ設定手段は、
前記階層番号と前記機能番号の両方が設定された場合には、両者が整合するか否かをチェックし、
前記階層番号と前記機能番号の何れか一方が設定された場合には、該設定データに基づいて他方のデータを生成することを特徴とする請求項3記載のプログラム構造評価システム。
Hierarchical data setting means
If both the hierarchy number and the function number are set, check whether they match,
4. The program structure evaluation system according to claim 3, wherein when one of the hierarchy number and the function number is set, the other data is generated based on the setting data.
前記プログラム解析手段は、更に、前記評価対象のソフトウェアから、前記機能ペアを示すデータを抽出して、該機能ペアデータを初期状態のアクセス違反例外情報に記憶することを特徴とする請求項2記載のプログラム構造評価システム。   3. The program analysis unit further extracts data indicating the function pair from the evaluation target software, and stores the function pair data in access violation exception information in an initial state. Program structure evaluation system. 前記違反有無情報生成手段は、
前記アクセス違反例外情報を参照して、前記記憶された機能ペア毎にアクセス違反か否かを判定し、アクセス違反ではないと判定された機能ペアは前記アクセス違反例外情報から削除し、アクセス違反であると判定された機能ペアに対して違反種別を記憶するアクセス違反判別手段を更に有することを特徴とする請求項5記載のプログラム構造評価システム。
The violation presence / absence information generating means includes
Referring to the access violation exception information, it is determined whether or not there is an access violation for each stored function pair. The function pair that is determined not to be an access violation is deleted from the access violation exception information. 6. The program structure evaluation system according to claim 5, further comprising an access violation determining means for storing a violation type for a function pair determined to be present.
前記違反有無情報生成手段は、
前記アクセス違反判別手段による処理後の前記アクセス違反例外情報の前記機能ペア毎に、そのアクセス違反を許容するか否かを任意に設定させる違反許容設定手段を更に有することを特徴とする請求項6記載のプログラム構造評価システム。
The violation presence / absence information generating means includes
7. A violation permission setting unit for arbitrarily setting whether or not to allow the access violation for each function pair of the access violation exception information after the processing by the access violation determination unit. The program structure evaluation system described.
前記違反有無情報生成手段は、
前記違反許容設定手段による設定後の前記アクセス違反例外情報を用いて、前記階層データ設定手段による設定後の前記違反有無情報に対して、当該違反有無情報における前記機能ペア毎の違反の有無または/及び違反許容数を自動的に設定する違反有無情報設定手段を更に有することを特徴とする請求項7記載のプログラム構造評価システム。
The violation presence / absence information generating means includes
Using the access violation exception information after setting by the violation permission setting means, with respect to the violation presence information after setting by the hierarchical data setting means, presence / absence of violation for each function pair in the violation presence information or / 8. The program structure evaluation system according to claim 7, further comprising a violation presence / absence information setting means for automatically setting the allowable number of violations.
前記評価対象のソフトウェアに対応する前記アクセス違反例外情報と、該評価対象のソフトウェアに関連する別のソフトウェアに対応して生成済みであった前記アクセス違反例外情報である前回アクセス違反例外情報とを相互に比較して、相違がある場合には相違点を抽出する違反増減検出手段を更に有することを特徴とする請求項5記載のプログラム構造評価システム。 The access violation exception information corresponding to the evaluation target software and the previous access violation exception information that is the access violation exception information that has been generated corresponding to another software related to the evaluation target software. compared to the further 5 Symbol mounting structure of a program evaluation system according to claim characterized in that it has a violation decrease detecting means for extracting a difference if there is a discrepancy. 前記評価対象のソフトウェアに対応する前記違反有無情報と、該評価対象のソフトウェアに関連する別のソフトウェアに対応して生成済みであった前記違反有無情報である前回違反有無情報とを相互に比較して、登録されている機能に相違がある場合には相違点を抽出する機能変化検出手段を更に有することを特徴とする請求項1〜9の何れかに記載のプログラム構造評価システム。   The violation presence / absence information corresponding to the software to be evaluated is compared with the previous violation presence / absence information that has been generated corresponding to another software related to the evaluation target software. 10. The program structure evaluation system according to claim 1, further comprising function change detecting means for extracting the difference when the registered functions are different. 他の複数のソフトウェアについてそれぞれ前記評価点数が算出済みである場合に、前記評価対象のソフトウェアの評価点数も含む該複数の評価点数に基づいて、前記評価対象のソフトウェアの評価点数について偏差値を算出する偏差値算出手段を更に有することを特徴とする請求項1〜10の何れかに記載のプログラム構造評価システム。   When the evaluation score is calculated for each of a plurality of other software, a deviation value is calculated for the evaluation score of the evaluation target software based on the plurality of evaluation scores including the evaluation score of the evaluation target software. The program structure evaluation system according to claim 1, further comprising a deviation value calculation unit that performs the calculation. 予め前記関数種別/変数種別毎に所定の重み値が登録された重み値記憶手段を更に有し、
前記集計手段は、前記違反件数の集計の際に前記各関数種別/各変数種別毎の集計結果に対してそれぞれ該当する重み値を乗算して補正し、
前記評価点数算出手段は、該補正後の集計結果に基づいて前記評価点数の算出を行うことを特徴とする請求項1〜10の何れかに記載のプログラム構造評価システム。
A weight value storage means in which a predetermined weight value is registered in advance for each function type / variable type;
The counting means corrects the counting result for each function type / variable type by multiplying the corresponding weight value when counting the number of violations,
The program structure evaluation system according to any one of claims 1 to 10, wherein the evaluation score calculation means calculates the evaluation score based on the corrected aggregation result.
前記評価点数算出手段は、前記各機能毎の評価点数を算出する際に、前記各関数種別/各変数種別毎の違反件数の集計結果に基づいて、単位ステップ数当りの違反件数を求め、該単位ステップ数当りの違反件数に基づいて前記評価点数を求めることを特徴とする請求項1〜11の何れかに記載のプログラム構造評価システム。   When calculating the evaluation score for each function, the evaluation score calculating means obtains the number of violations per unit step based on the total number of violations for each function type / variable type, The program structure evaluation system according to claim 1, wherein the evaluation score is obtained based on the number of violations per unit step number. 前記評価点数算出手段は、前記単位ステップ数当りの違反件数に対して予め設定される足きりの閾値を用いて足きりを行った後の値を用いて前記評価点数を求めることを特徴とする請求項12記載のプログラム構造評価システム。   The evaluation score calculating means obtains the evaluation score using a value after a sufficient threshold is set using a threshold threshold set in advance for the number of violations per unit step number. The program structure evaluation system according to claim 12. 前記各機能は、それぞれ、1または複数のプログラムソースファイルによって実現され、
前記各関数種別は、API関数、ローカル関数であり、
前記各変数種別は、グローバル変数、ローカル変数であることを特徴とする請求項1〜14の何れかに記載のプログラム構造評価システム。
Each of the functions is realized by one or more program source files,
Each function type is an API function or a local function.
15. The program structure evaluation system according to claim 1, wherein each of the variable types is a global variable or a local variable.
前記プログラムソース文における前記関数/変数の名称には、その関数/変数の属する機能を示す情報と、その関数/変数の関数種別/変数種別を示す情報とが含まれていることを特徴とする請求項15記載のプログラム構造評価システム。 The function / variable name in the program source statement includes information indicating a function to which the function / variable belongs and information indicating a function type / variable type of the function / variable. 15. Symbol mounting structure of a program evaluation system. 前記複数の機能より成るソフトウェアは、該複数の機能が階層化されたソフトウェア構造となっており、
該ソフトウェアに係る前記機能間のアクセスに係る制限事項は、少なくとも相対的に下位側の機能から上位側の機能を呼び出すことは違反であること、及び、任意の機能から他の機能の前記ローカル関数/ローカル変数を呼び出すことであることを特徴とする請求項16記載のプログラム構造評価システム。
The software composed of the plurality of functions has a software structure in which the plurality of functions are hierarchized.
The restriction on access between the functions related to the software is that it is a violation to call a higher-order function from a lower-order function at least relatively, and the local function of another function from any function 17. The system for evaluating a program structure according to claim 16, wherein the program structure is called a local variable.
前記評価対象のソフトウェアは、組込みソフトウェアであり、
前記階層化されたソフトウェア構造は、上位層がアプリケーション、中間層がミドルウェア、下位層がドライバであることを特徴とする請求項17記載のプログラム構造評価システム。
The evaluation target software is embedded software,
18. The program structure evaluation system according to claim 17, wherein in the layered software structure, an upper layer is an application, an intermediate layer is middleware, and a lower layer is a driver.
任意のソフトウェアについて所定の評価を行うためのコンピュータシステムにおいて、
端末とサーバ装置とがネットワークに接続されたシステムであって、
前記サーバ装置は、
複数の機能より成るソフトウェアの機能間のアクセスに係る制限に従って、呼び出し元となる機能と呼び出し先となる機能の関数種別/変数種別との組み合わせである機能ペア毎に、違反の有無、または/及び、違反許容数が格納された違反有無情報を記憶する違反有無情報記憶手段と、
評価対象のソフトウェアのプログラムソース文を順次参照して、任意の機能から他の機能の任意の関数/変数を呼び出す処理を検出する毎に、該呼び出し先の関数/変数の関数種別/変数種別を判別して、さらに前記違反有無情報を参照して、該呼び出しが違反か否かを判定する違反判定手段と、
前記違反判定手段による判定結果に基づいて、前記各機能毎または/及び前記評価対象のソフトウェア全体の違反件数を集計する集計手段と、
該集計手段による違反件数の集計結果に基づいて、前記評価対象のソフトウェア全体または/及びその各機能毎の評価点数を算出する評価点数算出手段と、
予め、前記評価対象のソフトウェアに基づいて、前記違反有無情報を生成して前記違反有無情報記憶手段に記憶させる違反有無情報生成手段と、
を有することを特徴とするプログラム構造評価システム。
In a computer system for performing a predetermined evaluation for arbitrary software,
A system in which a terminal and a server device are connected to a network,
The server device
In accordance with restrictions on access between software functions consisting of multiple functions, for each function pair that is a combination of the function type / variable type of the function to be called and the function to be called, whether there is a violation, and / or A violation presence / absence information storage means for storing violation violation presence / absence information in which the allowable number of violations is stored;
Each time a process for calling an arbitrary function / variable of another function from an arbitrary function is detected by sequentially referring to the program source statements of the software to be evaluated, the function type / variable type of the called function / variable is changed. Discriminating and referring to the violation presence / absence information to determine whether the call is a violation or not,
Based on the determination result by the violation determination unit, a totaling unit that totals the number of violations for each function or / and the entire software to be evaluated;
An evaluation score calculating means for calculating an evaluation score for the whole evaluation target software and / or each function thereof based on the total number of violations by the counting means;
Violation presence / absence information generating means for generating the violation existence / non-existence information and storing it in the violation presence / absence information storage means based on the evaluation target software in advance,
A program structure evaluation system comprising:
コンピュータを、
複数の機能より成るソフトウェアの機能間のアクセスに係る制限に従って、呼び出し元となる機能と呼び出し先となる機能の関数種別/変数種別との組み合わせである機能ペア毎に、違反の有無、または/及び、違反許容数が格納された違反有無情報を記憶する違反有無情報記憶手段と、
評価対象のソフトウェアのプログラムソース文を順次参照して、任意の機能から他の機能の任意の関数/変数を呼び出す処理を検出する毎に、該呼び出し先の関数/変数の関数種別/変数種別を判別して、さらに前記違反有無情報を参照して、該呼び出しが違反か否かを判定する違反判定手段と、
前記違反判定手段による判定結果に基づいて、前記各機能毎または/及び前記評価対象のソフトウェア全体の違反件数を集計する集計手段と、
該集計手段による違反件数の集計結果に基づいて、前記評価対象のソフトウェア全体または/及びその各機能毎の評価点数を算出する評価点数算出手段と、 予め、前記評価対象のソフトウェアに基づいて、前記違反有無情報を生成して前記違反有無情報記憶手段に記憶させる違反有無情報生成手段、
として機能させるためのプログラム。
Computer
In accordance with restrictions on access between software functions consisting of multiple functions, for each function pair that is a combination of the function type / variable type of the function to be called and the function to be called, whether there is a violation, and / or A violation presence / absence information storage means for storing violation violation presence / absence information in which the allowable number of violations is stored;
Each time a process for calling an arbitrary function / variable of another function from an arbitrary function is detected by sequentially referring to the program source statements of the software to be evaluated, the function type / variable type of the called function / variable is changed. Discriminating and referring to the violation presence / absence information to determine whether the call is a violation or not,
Based on the determination result by the violation determination unit, a totaling unit that totals the number of violations for each function or / and the entire software to be evaluated;
Based on the result of counting the number of violations by the counting means, the evaluation score calculating means for calculating the evaluation score for the entire evaluation target software or / and each function thereof, in advance, based on the evaluation target software, Violation presence / absence information generating means for generating violation presence / absence information and storing it in the violation presence / absence information storage means,
Program to function as.
JP2012205081A 2012-09-18 2012-09-18 Program structure evaluation system, program Expired - Fee Related JP6076660B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012205081A JP6076660B2 (en) 2012-09-18 2012-09-18 Program structure evaluation system, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012205081A JP6076660B2 (en) 2012-09-18 2012-09-18 Program structure evaluation system, program

Publications (2)

Publication Number Publication Date
JP2014059775A JP2014059775A (en) 2014-04-03
JP6076660B2 true JP6076660B2 (en) 2017-02-08

Family

ID=50616180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012205081A Expired - Fee Related JP6076660B2 (en) 2012-09-18 2012-09-18 Program structure evaluation system, program

Country Status (1)

Country Link
JP (1) JP6076660B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6215187B2 (en) * 2014-12-02 2017-10-18 株式会社東芝 Information processing system, server, and program
JP6682036B2 (en) 2017-02-16 2020-04-15 三菱電機株式会社 Scale calculation device and scale calculation program
JP6873332B2 (en) 2018-07-23 2021-05-19 三菱電機株式会社 Scoring device, scoring program and scoring method
KR102675332B1 (en) * 2022-01-18 2024-06-14 정희용 Education platform based on metaverse
KR102534785B1 (en) * 2022-11-11 2023-05-18 정희용 Virtual assetization device for software training deliverables
KR102520579B1 (en) * 2022-11-11 2023-04-10 정희용 Education system based on metaverse

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102831A (en) * 2006-10-20 2008-05-01 Hitachi Ltd Information providing device, program and information providing method
JP4920441B2 (en) * 2007-02-08 2012-04-18 三菱電機株式会社 Analysis display device for static analysis results
JP2010122907A (en) * 2008-11-19 2010-06-03 Nec Corp Layer structure system relation extracting device, layer structure system relation extracting method, and program
JP5121891B2 (en) * 2010-07-30 2013-01-16 株式会社富士通マーケティング Rule inspection device, rule inspection method and rule inspection program

Also Published As

Publication number Publication date
JP2014059775A (en) 2014-04-03

Similar Documents

Publication Publication Date Title
JP6076660B2 (en) Program structure evaluation system, program
Fan et al. Improving data quality: Consistency and accuracy
US8589884B2 (en) Method and system for identifying regression test cases for a software
US20080120601A1 (en) Information processing apparatus, method and program for deciding priority of test case to be carried out in regression test background of the invention
US20070214173A1 (en) Program, method, and apparatus for supporting creation of business process model diagram
Flöck et al. WikiWho: Precise and efficient attribution of authorship of revisioned content
JP6409577B2 (en) Test selection program, test selection method, and test selection device
CN111694612A (en) Configuration checking method, device, computer system and storage medium
CN110991065B (en) Automatic identification method for design change in building information model
JP2005301859A (en) Code search program and device
CN114661423A (en) Cluster configuration detection method and device, computer equipment and storage medium
KR100786261B1 (en) Method of automatically loading meta data in meta data repository
CN108804308B (en) Defect detection method and device for new version program
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
JP5293521B2 (en) Design rule check verification apparatus and design rule check verification method
JP5188421B2 (en) Source code analysis method and source code analysis support system
JP6668494B2 (en) Data analysis device and data analysis method
CN114791865A (en) Method, system and medium for detecting self-consistency of configuration items based on relational graph
JP7326803B2 (en) Document management device, document management method, and program
JP6217440B2 (en) Symbolic execution program, symbolic execution method, and symbolic execution device
JP2013131128A (en) Program structure evaluation system and program
JP2007199800A (en) Degradation prevention support program and degradation prevention support method
CN106293897B (en) Automatic scheduling system of subassembly
US20240160633A1 (en) Computer-readable recording medium storing information processing program, information processing method, and information processing device
US20220327096A1 (en) Computer-readable recording medium storing incompatibility detection program, incompatibility detection method, and incompatibility detection apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170111

R150 Certificate of patent or registration of utility model

Ref document number: 6076660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees