JP2006059276A - Source code evaluating system - Google Patents
Source code evaluating system Download PDFInfo
- Publication number
- JP2006059276A JP2006059276A JP2004242837A JP2004242837A JP2006059276A JP 2006059276 A JP2006059276 A JP 2006059276A JP 2004242837 A JP2004242837 A JP 2004242837A JP 2004242837 A JP2004242837 A JP 2004242837A JP 2006059276 A JP2006059276 A JP 2006059276A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- evaluation
- quality
- inspection
- engineer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011156 evaluation Methods 0.000 claims abstract description 276
- 238000007689 inspection Methods 0.000 claims abstract description 129
- 238000007726 management method Methods 0.000 claims abstract description 67
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 238000003745 diagnosis Methods 0.000 claims description 87
- 230000007704 transition Effects 0.000 claims description 79
- 238000013441 quality evaluation Methods 0.000 claims description 49
- 230000007547 defect Effects 0.000 claims description 48
- 238000012937 correction Methods 0.000 claims description 28
- 238000011161 development Methods 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 238000013461 design Methods 0.000 claims description 6
- 230000007257 malfunction Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 241000032989 Ipomoea lacunosa Species 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
本発明は、ソフトウェアにおいて、技術者のコーディング能力を評価するソースコード評価システムに関する。 The present invention relates to a source code evaluation system for evaluating an engineer's coding ability in software.
コンピュータソフトウェア(以下単に「ソフトウェア」と称する)の開発において、複数のプログラム開発を行う技術者が携わる開発を予定通り、履行するために各技術者のコーディング能力を一定水準以上に維持し、かつ向上させる必要があり、そのため各技術者のコーディング能力を随時評価する必要がある。 In the development of computer software (hereinafter simply referred to as “software”), maintain and improve the coding ability of each engineer to a certain level or higher in order to carry out the development that engineers who develop multiple programs are engaged as planned. Therefore, it is necessary to evaluate the coding ability of each engineer at any time.
なお、ここでいうコーディングとは、仕様書やフローチャートなど抽象的な設計文書の内容を、プログラミング言語を用いて具体的なソースコードに翻訳生成する作業を示す。 Note that coding here refers to the work of translating and generating the contents of abstract design documents such as specifications and flowcharts into specific source code using a programming language.
ソフトウェア開発を行う技術者のコーディング能力を把握する場合、情報処理試験や各種ベンダー試験の資格の有無や、過去に携わった開発業務の内容や年数など開発履歴を参考にする方法が知られているが、資格の有無は技術者のコーディング実務の実力、経験をそのまま示すものではなく、資格があるからといってソースコードを作成できるとは限らない。また、開発履歴は技術者の開発業務開始前の能力しか把握できない。 When grasping the coding ability of a software development engineer, there is a known method of referring to development history such as information processing test and vendor test qualifications, development work contents and years involved in the past. However, the presence or absence of qualifications does not directly indicate the ability and experience of engineers in coding practice, and just because they are qualified does not necessarily mean that source code can be created. Moreover, the development history can only grasp the ability of engineers before starting the development work.
従来知られている技術では開発作業期間中にインスペクションを行って各技術者の能力を把握し、また能力の向上を図る手法がとられている。ここで、インスペクションとはソースコードに不具合がないかをレビュアー等が解析および検討することを指す。 In the conventionally known technology, a technique is used in which inspection is performed during the development work period to grasp the ability of each engineer and to improve the ability. Here, inspection means that a reviewer or the like analyzes and examines whether there is a defect in the source code.
図29は従来実施されているインスペクションの業務フローの説明図である。
ソフトウェアの開発のために組まれたソフトウェア開発プロジェクト102において、プログラマなどソフトウェアの開発に従事する技術者(以下単に「技術者」と称する。)2901は仕様書やフローチャートなど抽象的な設計文書の内容をもとにコーディングを行い、プログラミング言語を用いて記述したソフトウェアの設計図となるソースコードを作成する。このソースコード103は、図30の模式図に示すとおり、プログラミング言語によって作成されたコンピュータに実行させるための命令群である。
FIG. 29 is an explanatory diagram of a work flow of inspection conventionally performed.
In the
また、プロジェクトとはソフトウェア開発のための業務全般を示すものであり、開発するソフトウェアの内容や規模や開発に要する期間などを問わないものとする。 In addition, the project indicates the entire business for software development, and the content and scale of the software to be developed, the time required for development, etc. are not limited.
図29に示すとおり、レビュアー2902はこのソースコード103に対してバグの有無や参照ルールが正しいかどうかを判定するインスペクションを行う。このレビュアー2902とは技術者2901の作成したプログラムの解析検討を業務とする熟練技術者専門家であり(通常は各プログラマの上長)、インスペクションは、各ソースコードをプログラミング言語やプロジェクトごとに設けられた規格や基準によって検討行われる。
As shown in FIG. 29, the
レビュアー2902はインスペクションの結果を評価し、評価結果をインスペクション結果レポートとしてまとめる。
The
図31にインスペクション結果レポート2904の一例としての模式図を示す。
インスペクション結果レポート2904には「作成者」欄2904Aにレビュアー2902の氏名が、「作成日」欄2904Bにレポート作成日が記載され、「実施内容」欄2904Cにソースコード103の種類やソースファイルの数量などインスペクションの対象や分量を特定する情報が記載される。
FIG. 31 shows a schematic diagram as an example of the
In the
「検出項目一覧」表2904Dには、インスペクションを行った日時を記入する「登録日」列2904aと、コーディングが行われたプロジェクト名を記入する「プロジェクト名」列2904bと、ソースコード103を作成した技術者2901の氏名を記入する「技術者」列2904cと、インスペクションの対象としてのソースファイル名を記入する「ソース名」列2904dと、作成されたソースコード103中から検出された不適当と思われる箇所が存在する行番号を記入する「行番号」列2904eと、不適当と思われる根拠を記載する「見直し観点」列2904fとに該当項目が記入される。また、「エラーの傾向と分析」欄2904Eには、インスペクションの結果の総括および評価としてソースコード103に確認されたエラーの傾向が記入される。
In the “Detection Item List” table 2904D, a “registration date”
図29に示すとおり、レビュアー2902のインスペクションの結果としてのインスペクション結果レポート2904は、ソフトウェア開発プロジェクト102において、プロジェクトの運営・管理に責任を持つプロジェクト管理者2205に通知される。そしてプロジェクト管理者2205はインスペクション結果レポート2904を解析検討し、見つかった不具合を取り除くために、各技術者2901に対しソースコード103の修正指示を出す。
As shown in FIG. 29, the
しかし、上記のインスペクション結果レポート2904は、レビュアー2902が「指摘項目一覧」表2904Dや「エラーの傾向と分析」欄2904Eに手作業で記載したものを所轄の技術者2901ごとに作成しなければならず、レビュアー2902の負担は大きい。
However, the above
特に、複数の技術者2901が複数の端末からなる分散開発環境で開発を行う、複数の作業工程を含むような大規模な設計開発プロジェクトにおいては、多数の技術者2901が大量のソースコード103を作成するため、ソースコード103の分量がレビュアー2902の処理能力を超えてしまい、プロジェクト中にインスペクションを継続的に行うことは困難になる場合も多い。
In particular, in a large-scale design and development project that involves multiple work processes where
一方、ソースコードによって技術者のコーディング能力を推し図ることは大規模プロジェクトにおいて品質を確保する為に重要な要素であり、現在の技術者のコーディング能力を数値として定量化し、客観的な資料として提示することが求められているが、従来のシステムにおいてはこのような情報提示が可能なシステムは存在しない。 On the other hand, promoting the coding ability of engineers using source code is an important factor for ensuring quality in large-scale projects. The coding ability of current engineers is quantified numerically and presented as objective data. However, there is no system capable of presenting such information in the conventional system.
また、大規模プロジェクトにおいてはコーディングをソフトウェア会社に委託することも多く、プロジェクトの委託者側からは、各会社単位でのコーディング能力を客観的に分析するための指標を提供するよう要求があるが、従来のソフトウェア会社について会社単位でのコーディング能力を定量的に分析し判断するための仕組み、体制や具体的なシステムなどは現時点では存在していない。 In large-scale projects, coding is often outsourced to software companies, and there is a request from the project consignor to provide an index for objectively analyzing the coding ability of each company. At present, there is no mechanism, system, or specific system for quantitatively analyzing and judging the coding ability of a conventional software company.
本発明はこのような事情に鑑みてなされたものであり、ソフトウェア技術者や技術者の属する会社のコーディング能力を客観的に評価することができるソースコード評価システムを提供することを目的とする。 The present invention has been made in view of such circumstances, and an object thereof is to provide a source code evaluation system capable of objectively evaluating the coding ability of a software engineer or a company to which the engineer belongs.
本発明に係る上記目的は、複数の端末からなる分散開発環境で開発されている複数の作業工程を含む設計開発プロジェクトにおいて、前記作業工程毎に生成されるソースコードを評価するソースコード評価システムであって、前記生成されるソースコード毎にインスペクションを行う品質検査手段と、前記品質検査手段から出力された前記インスペクションの結果と、前記ソースコードを作成した技術者に関する技術者情報を一元管理する一元管理記憶手段と、前記ソースコードの不具合の種類に関するルール情報および前記品質検査手段が過去に前記ソースコードに対して行った前記インスペクションの結果に関する診断履歴情報を有するデータ格納手段と、前記診断履歴情報と前記品質検査手段が出力した前記インスペクションの結果をもとに前記ソースコードの品質および前記技術者の前記ソースコードを作成する能力を評価する品質評価手段とを有し、前記品質評価手段は、前記データ格納手段に格納されたインスペクション結果情報に対して前記作業工程単位、前記ソースコード単位、開発者単位に前記ソースコードの品質を診断する品質診断を行い、前記診断結果に前記一元管理記憶手段を参照して、それぞれの単位毎に集計し、出力するソースコード評価システムによって達成される。 The object of the present invention is to provide a source code evaluation system for evaluating a source code generated for each work process in a design development project including a plurality of work processes developed in a distributed development environment including a plurality of terminals. A quality inspection unit that performs inspection for each generated source code, a result of the inspection that is output from the quality inspection unit, and centralized management of engineer information regarding the engineer who created the source code Management storage means, data storage means having rule information relating to the type of defect in the source code, and diagnosis history information relating to the result of the inspection performed by the quality inspection means on the source code in the past, and the diagnosis history information And the inspection result output by the quality inspection means. And quality evaluation means for evaluating the quality of the source code and the ability of the engineer to create the source code, the quality evaluation means for the inspection result information stored in the data storage means. Perform quality diagnosis for diagnosing the quality of the source code in the work process unit, the source code unit, and the developer unit, refer to the centralized management storage means for the diagnosis result, and totalize and output each unit Achieved by a source code evaluation system.
本発明によれば、品質検査手段が技術者の作成したソースコードを自動的に検査し、技術者の作成したソースコードを検査してインスペクションを自動的に行うとともに、品質評価手段がソースコードの品質および品質の推移を確認出来る評価レポートを自動的に作成することができるので、類似のエラーを何度もチェックするレビュアーの作業負担が大幅に軽減できて、中間品質の確認作業の効率化が図れる。 According to the present invention, the quality inspection means automatically inspects the source code created by the engineer, inspects the source code created by the engineer for automatic inspection, and the quality evaluation means An evaluation report that can check the quality and quality transition can be automatically created, greatly reducing the workload of reviewers who check for similar errors over and over, and improving the efficiency of checking intermediate quality. I can plan.
さらに、大量のソースコードのインスペクションや品質の評価を定期的に、また自動的に行うことが可能になるため、大規模プロジェクトに導入することによってソースコードのインスペクションや評価に対するレビュアーの負担を軽減し、大規模プロジェクトにおいても技術者に対するインスペクションを容易に継続的に行うことができる。 In addition, inspection and quality evaluation of a large amount of source code can be performed regularly and automatically, so introducing it to a large-scale project reduces the burden of reviewers on the inspection and evaluation of source code. Inspect large-scale projects easily and continuously for engineers.
さらに、継続的に行われるインスペクション結果に基づき、ソフトウェア技術者や技術者の属する会社単位でのコーディング能力を定量的に分析し判断するための指標を作成することができ、その指標によって各会社のコーディング能力を客観的に評価することができる。 In addition, based on the results of ongoing inspections, it is possible to create an index to quantitatively analyze and judge the coding ability of the software engineer and the company to which the engineer belongs. The coding ability can be evaluated objectively.
以下、本発明の一つの実施の形態について図面を参照して説明する。なお、図面で同一の記号が付された構成およびステップは、同じ構成要件および同じステップを示している。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In addition, the structure and step which attached | subjected the same code | symbol in drawing have shown the same structural requirement and the same step.
図1は、本発明の一つの実施の形態に係るソースコード評価システムを用いた、コードインスペクションを示すシステム構成図である。 FIG. 1 is a system configuration diagram showing code inspection using a source code evaluation system according to an embodiment of the present invention.
コードインスペクションシステム100Aは、ソフトウェアを開発するためのプロジェクト(以下単に「プロジェクト」と称する。)102の中で用いられる開発マシン121と、本発明に係るソースコード評価システム100と、管理端末123とを備える。ソースコード評価システム100は、ソースコード管理部101と品質検査部104と品質評価部107とデータ格納部111とを備え、品質検査部104は制御部105とソース検査部106とを有し、品質評価部107は品質診断部108と能力診断部109とを有する。
The code inspection system 100A includes a
開発マシン121はプロジェクト102の技術者2901がソースコード103を開発するために用いられる各種コンピュータ端末であって、イントラネット122を介してソースコード評価システム100に接続され、管理端末123はプロジェクト102における管理業務を行うプロジェクト管理者2205が管理業務を行うために用いられる各種コンピュータ端末であり、LAN等を介してソースコード評価システム100と接続されている。
The
このコードインスペクションシステム100Aにおいて、技術者2901は各自の開発マシン121を用いてソースコード103を記述する。開発段階または開発終了後において技術者2901は、イントラネット122を通してソースコード評価システム100のソースコード管理部101にアクセスし、開発したソースコード103と技術者2901の情報を登録する。また、プロジェクト管理者2205は、管理端末123から評価レポート110をダウンロードして内容を検討し、プロジェクト102におけるソースコード103の品質と技術者2901のコーディング能力を確認する。
In this code inspection system 100A,
図2は本発明の一つの実施形態であるソースコード評価システムの構成を示すブロック図である。
ソースコード評価システム100のデータ格納部111は外部記憶装置であり、技術者情報112とコーディング経過情報113と診断履歴情報114とルール情報115とインスペクション結果情報116が格納されている。図3については詳細フローと一緒に後述する。
FIG. 2 is a block diagram showing a configuration of a source code evaluation system according to an embodiment of the present invention.
The
図4は技術者情報112のデータ構成を示す図である。
技術者情報112はコーディングに携わった技術者2901に関するデータである。
FIG. 4 is a diagram showing a data structure of the
The
「社員番号」欄401に示される技術者2901の社員番号と、「氏名」欄402に示される技術者2901の氏名と、「会社名」欄403に示される技術者2901の所属する会社名と、「ソース種類」欄404に示されるソースコード103を作成するために用いられたプログラミング言語としてのソース種類と、「プロジェクト数」欄405に示される技術者2901が過去に携わったプロジェクト数と、「能力評価推移」406欄に示される技術者2901の作成したソースコード103に対する評価の推移および修正能力に関するデータによって構成される。なお、「能力評価推移」欄406に表示される能力評価の詳細については後述する。
The employee number of the
図5はコーディング経過情報113におけるデータ構成の具体例を示す図である。
コーディング経過情報113はプロジェクト102におけるコーディング経過の概要を記録するデータである。
FIG. 5 is a diagram showing a specific example of the data structure in the
The
「プロジェクト名」欄501に示されるソースコード103が作成されたプロジェクト102の名称と、「ソース名」欄502に示されるソースコード103に付けられたソース名と、「更新日時」欄503に示される最新のソースコード103の一覧が作成された日時を年月日時分秒単位で記録した表示と、「ソース種類」欄504に示されるソースコード103のソース種類と、「ステップ数」欄505に示されるソースコード103中に含まれるステップ数と、「社員番号」欄506に示されるソースコード103を作成した技術者2901の社員番号と、「検査日」欄507に示されるソースコード103のインスペクションが行われた日とによって構成される。
The name of the
図6は診断履歴情報114のデータ構成の具体例を示す図である。
診断履歴情報114は過去にソースコード103に対して行ったインスペクションの結果に関するデータをデータベースとして蓄積したものである。
FIG. 6 is a diagram showing a specific example of the data structure of the
The
「プロジェクト名」欄601に示されるソースコード103が作成されたプロジェクト102の名称と、「診断日」欄602に示されるインスペクションが行われた日と、「ソース名」欄603に示されるインスペクションを行ったソースコード103のソース名と、「更新日時」欄604に示される最新のソースコード103の一覧が作成された日時を年月日時分秒単位で記録した表示とによって構成される。なお、「診断日」欄602に表示される診断日とソースコードの検査日とは必ずしも一致するとは限らない。
The name of the
図7はルール情報115のデータ構成の具体例を示す構成図である。
ルール情報115はインスペクション106において確認が行われるコーディングの不具合の種類のデータを示すものである。
FIG. 7 is a configuration diagram showing a specific example of the data configuration of the
The
「ルール名」欄701に示される不具合の種類ごとに付された識別記号であるルール名と、「重要度」欄702に示される不具合がシステムに及ぼす影響度を示す重要度と、「ルール種類」欄703に示される不具合のカテゴリとしてのルール種類、「チェック内容」欄704に示される文章で表された不具合の具体的内容とによって構成される。この不具合の具体的内容とは、プログラミング言語でソースコード103を記載する際の間違いや間違いの可能性が高いと考えられる事項であり、たとえばループ内で変数を初期化している等のパフォーマンス上の記載不備や、本文が空のwhile文になっている、if条件式の中で代入が行われている等の文法的記載不備などが該当する。
The rule name, which is an identification symbol assigned to each type of defect shown in the “Rule Name”
図8は重要度を示す定義テーブルの構成を示す図である。
「重要度」欄702に表示される重要度の定義は定義テーブルとして別途設けられている。定義テーブル801は「重要度」欄801a、「修正の必要」欄801b、「システムの影響」欄801c、「評価ポイント」欄801dを有する。そして、「重要度」欄801aの記載が「最重要」のルールは、必ず修正が必要であり(「修正の必要」欄801bに「必須」と表示される。)、仮に放置した場合、システムに深刻な障害が発生する可能性がある(「システムへの影響」欄801cに「大」と表示される。)不具合を示す。
FIG. 8 is a diagram showing the structure of a definition table indicating importance.
The definition of importance displayed in the “importance”
「重要度」欄801aの記載が「重要」のルールは必ず修正が必要であり、仮に放置した場合、システムに軽度の障害が発生する可能性がある(「システムの影響」)欄801cに「小」と表示される。)不具合を示す。「重要度」欄801aが「警告」のルールは、個別に見て修正が必要であり、仮に放置した場合、システムに深刻な障害が発生する可能性がある不具合を示す。「重要度」欄801aの記載が「通知」のルールは、個別に見て修正が必要であり、仮に放置した場合、システムに軽度の障害が発生する可能性がある不具合を示す。
A rule with “important” in the “importance”
図9はルール種類の定義を示す定義テーブルの構成を示す図である。
「ルール種類」欄703に表示されるルール種類の定義も定義テーブルとして別途設けられている。
FIG. 9 is a diagram showing the structure of a definition table showing the definition of rule types.
The definition of the rule type displayed in the “rule type”
「ルール種類」欄901aに手続型プログラミング言語の代表的な記述ルールが列挙されており、この記述ルールについてのエラーの概要を「内容」欄901bに表示する。コーディングの具体的な不具合に該当するものがルール情報115に読み出される。
Representative description rules of the procedural programming language are listed in the “rule type”
図10はインスペクション結果情報116のデータ構成の具体例を示す図である。
インスペクション結果情報116はインスペクションの結果、抽出された不具合を記録したデータ群を示す。
FIG. 10 is a diagram showing a specific example of the data structure of the inspection result
The inspection result
「プロジェクト名」欄1001に示されるソースコード103が作成されたプロジェクト102の名称と、「ソース名」欄1002に示されるインスペクションを行ったソースコード103のソース名と、「更新日時」欄1003に示される最新のソースコード103の一覧が作成された日時を年月日時分秒単位で記録した表示と、「ルール名」欄1004に示される不具合の種類ごとに付された識別記号であるルール名と、「行番号」欄1005に示されるソースコード103中で不具合が検出された行番号と、「メッセージ」欄1006に示される不具合の具体的内容を文章で表したメッセージと、「検査日」欄1007に示されるインスペクションが行われた日とによって構成される。なお、「メッセージ」欄1006に示されるメッセージは図9の定義テーブルにおける「ルール種類」欄901aの表示に対応するものである。
The name of the
次に本実施の形態に係るソースコード評価システム100に適用されるソースコード103の品質評価の基準と表示方法について説明する。
Next, the quality evaluation criteria and display method of the
図11は本実施の形態に係るソースコード評価システム100の品質評価基準を示す説明図である。
ソースコード評価システム100は、図8に示すとおり、定義テーブル801の「重要度」欄801aの項目に依存して重み付けされた評価ポイントを「評価ポイント」欄801dに表示するとおりに設定している。インスペクションの結果不具合が検出された全てのソースについて、「ステップ数」欄505に表示された値に「評価ポイント」欄801dに記載された値を重み付け関数として乗じて得た値の総和をソースコード103のキロステップ単位の規模で割った値を評価ポイントと呼び、ポイントが低いほどソースコードの品質が高いことを示す。
FIG. 11 is an explanatory diagram showing quality evaluation criteria of the source
As shown in FIG. 8, the source
図11では「評価ポイント」欄1101cに示すとおり、0ポイントから30ポイントまでの評価ポイントが設けられている。一方、この評価ポイントを適当な値ごとに区分けして見やすい記号で表示したものを品質評価記号という。 In FIG. 11, as shown in the “evaluation points” column 1101c, evaluation points from 0 points to 30 points are provided. On the other hand, what these evaluation points are divided into appropriate values and displayed with easy-to-read symbols are called quality evaluation symbols.
図11では評価ポイントを5ポイントごとの合計6区域に区切り、「品質評価記号」欄1101bに示すとおり、0〜5ポイント区域に対して白星5つ、6〜10ポイント区域に対して白星4つ、・・・21〜25ポイント区域に対して白星1つ、26〜30ポイント区域に対して黒星1つをそれぞれ品質評価記号として設定し、星の数が多いほど、また黒星よりも白星の方が、ソースコード103の品質が高いことを示している。なお、図11の具体例においては、「能力評価」欄1101aに示すとおり、「評価ポイント」欄1101cに記載した評価ポイントが0〜10ポイントのものを能力評価水準A、11〜20ポイントのものを能力評価水準B、21〜30ポイントのものを能力評価水準Cと設定している。
そして、この能力評価水準に基づく能力評価推移の例を図12に示す。
In FIG. 11, the evaluation points are divided into a total of 6 areas every 5 points. As shown in the “quality evaluation symbol”
And the example of the capability evaluation transition based on this capability evaluation level is shown in FIG.
図12は能力評価推移および修正能力の判断基準の模式図である。
図12において能力は縦軸方向の評価軸(評価ポイント)と横軸方向の時間軸(時間)との相関関係によって評価される。
FIG. 12 is a schematic diagram of judgment criteria for ability evaluation transition and correction ability.
In FIG. 12, the ability is evaluated by the correlation between the evaluation axis (evaluation point) in the vertical axis direction and the time axis (time) in the horizontal axis direction.
縦軸はソースコード103の品質に関する確認項目において減点対象ごとに付加されるポイントの数がパラメータであり、能力評価水準A(0ポイント以上10ポイント未満)、能力評価水準B(10ポイント以上20ポイント未満)、能力評価水準C(20ポイント以上30ポイント未満)の3段階に区分されている。
The vertical axis is the number of points added for each deduction target in the confirmation items related to the quality of the
図12においてはソースコード103の評価はAが最高でCが最低ということになる。一方、横軸はソースコード103の作成に要する日数がパラメータであり、ソース作成開始期間である期間a、作成途中期間である期間b、作成終了期間である期間cの3期間に区分されている。そして、+修正能力記号1202aと−修正能力記号1202bとは技術者2901がソースコード103中の不具合を修正する能力としての修正能力(以下単に「修正能力」と称する。)を示したものである。
In FIG. 12, the evaluation of the
+修正能力記号1202aは、当初能力評価水準BまたはCであるソースコード103が短期間で不具合が修正されて能力評価水準Aになることを示しており、−修正能力記号1202bは当初能力評価水準BまたはCであるソースコード103の不具合が修正されて能力評価水準Aになるまでに長期間を要するか、または最後まで能力評価水準がAに至らない状態を示している。
The + corrected
能力評価推移の診断は、次の手順によって行う。まず、開始時と終了時で品質評価が変わらない場合は、能力評価記号をそのまま表示する。たとえば、プロジェクト102の開始時に評価がAで、終了時の評価がAの技術者2901は、能力評価推移Aと診断する。開始時と終了時で品質評価が変わる場合、開始時の評価と終了時の評価を並べて表示する。たとえば、プロジェクト102の開始時に評価がBで、終了時の評価がAの技術者2901は、能力評価推移BAと診断する。
Diagnosis of ability evaluation transition is performed according to the following procedure. First, when the quality evaluation does not change between the start time and the end time, the ability evaluation symbol is displayed as it is. For example, an
次に開始時と終了時で品質評価が変わる場合、次の能力評価基準まで変動した期間を計測する。 Next, when the quality evaluation changes between the start time and the end time, the period of time until the next ability evaluation standard is measured.
本実施の形態においては、説明の簡単のため、能力評価基準Aに移行する期間の平均が14日以内であれば+修正能力記号1202aを、14日以上かかったか、または最後までAにならなかった場合は、−修正能力記号1202bを記号の末尾に加えるものとする。なお、本実施の形態においては、説明の簡単のため、ソースコード103の作成が開始されてから14日経過時と28日経過時にインスペクションを行い、先のインスペクションにおける評価と後のインスペクションにおける評価を対比することで能力評価推移および修正能力を判断するものとする。
In the present embodiment, for the sake of simplicity of explanation, if the average period of transition to the ability evaluation standard A is within 14 days, the + corrected
図12は上述の基準に基づいて作成されたに能力評価推移および修正能力の判断基準の模式図である。上述の基準に基づいて作成された技術力評価推移および修正能力の判断基準例が示されている。 FIG. 12 is a schematic diagram of judgment criteria for ability evaluation transition and correction ability created based on the above-mentioned criteria. An example of criteria for judging technical ability evaluation transition and correction ability created based on the above-mentioned criteria is shown.
第1評価例1201aはコーディングの開始後14日経過時に技術力評価水準Aに達しているので「A」とのみ評価され+修正能力記号1202aも−修正能力記号1202bも表示されないことになる。
Since the first evaluation example 1201a has reached the technical skill evaluation level A when 14 days have passed since the start of coding, only “A” is evaluated, and neither the +
第2評価例1201bおよび第3評価例1201cはコーディングの開始後14日経過時に技術力評価水準Bだったものが28日経過後に技術力評価水準Aに達しているので、技術力評価推移「BA」と評価され、+修正能力記号1202aが表示される。
In the second evaluation example 1201b and the third evaluation example 1201c, since the technical evaluation level B was 14 days after the start of coding and reached the technical evaluation level A after 28 days, the technical evaluation transition “BA ”And a +
第3評価例1201cはコーディングの開始後14日経過時に技術力評価水準Cだったものが28日経過時に技術力評価水準Aに到達しているので、技術力評価推移「CA」と評価され、+修正能力記号1202aが表示される。
The third evaluation example 1201c is evaluated as the technical ability evaluation transition “CA” because the technical ability evaluation level C has reached the technical ability evaluation level A when 28 days have elapsed since 14 days have elapsed since the start of coding. A +
第4評価例1201dはコーディングの開始後14日経過後よりも28日経過後の方が評価ポイントは向上しているものの28日経過時に技術力評価水準Aに到達していないので、技術力評価推移「CB」と評価され、−修正能力記号1202bが表示される。
In the fourth evaluation example 1201d, although the evaluation point is improved after 28 days than after 14 days from the start of coding, the technical ability evaluation level A is not reached when 28 days have passed. "CB" is evaluated, and the -
第5評価例1201eはコーディングの開始後14日経過時と28日経過時のいずれも技術力評価水準Bのままであり、技術力評価推移「BB」と評価されて、−修正能力記号1202bが表示される。 In the fifth evaluation example 1201e, the technical skill evaluation level B remains at both 14th and 28th days after the start of coding, and the technical skill evaluation transition “BB” is evaluated. Is displayed.
図4の「技術力評価推移」欄406に示された表記は上記例で示すコーディングの技術力評価推移およびソースコード103の修正能力を表示したものである。
The notation shown in the “technical skill evaluation transition”
なお、本実施の形態におけるインスペクションの回数および間隔は例示であり、実施の態様に応じ、インスペクションは2回より多く行われてもよく、また、インスペクションの間隔は14日より長くても短くてもよい。 In addition, the frequency | count and interval of an inspection in this Embodiment are illustrations, Depending on the aspect, inspection may be performed more than twice, and the interval of inspection may be longer or shorter than 14 days. Good.
図3は、図2に示すソースコード評価システム100の接続構成を示すデータ構成図である。
FIG. 3 is a data configuration diagram showing a connection configuration of the source
以下、本図を参照して本実施の形態に係るソースコード評価システム100の各部の動作を説明する。
Hereinafter, the operation of each unit of the source
ソースコード管理部101は、ソースコード103を読み込む。このとき、ソースコード103に含まれるプロジェクトに関する情報や技術者2901の氏名などの情報も併せてソースコード管理部101に読み込まれて登録され、ソースコード103を作成した技術者2901の技術者情報112がソースコード管理部101に読み込まれる。なお、登録された情報は技術者情報112やコーディング経過情報113に格納される。
The source
ソースコード管理部101は複数のプロジェクト102単位でソースコード103を管理するため、技術者2901がいくつかのプロジェクト102にまたがって開発をしていた場合であってもインスペクションの対象としてのソースコード103を取得することができる。なお、このソースコード103は、図30の模式図に示す態様のものである。
Since the source
ソースコード管理部101からコーディング経過情報113に対し、技術者2901とソースコード名の対応付けが出力される。
The source
制御部105は、定期的にコーディング経過情報113として格納された各プロジェクト102ごとの情報を調査し、新規に登録されたソースコード103の一覧を作成する。そして、制御部105は、コーディング経過情報113を読み込んでソースコード103を取得する。制御部105が取得したソースコード103はソース検査部106に送られて、ソース検査部106は受け取ったソースコード103についてインスペクションを行う。制御部105は、診断したソースコード103について診断履歴情報114を出力する。ソース検査部106は、プロジェクト102毎に指定されたルール情報115を読み込んでソースコード103についてインスペクションを行い、結果を出力する。インスペクションの結果はインスペクション結果情報116において登録されて蓄積される。
The
インスペクション結果情報116は品質診断部108に読み込まれ、品質診断部108は、読み込んだインスペクション結果情報116における各不具合について、図8に示す定義テーブル801に基づいて修正の必要とシステムへの影響に鑑みた重要度を判断し、「重要度」欄801aの定義に基づいて「評価ポイント」欄801dに規定された評価ポイントを評価ポイント変数とする。品質診断部108はこの評価ポイント変数をソースコード103の規模(ステップ数)で除した値を評価ポイントとして算出する。品質診断部108はこの評価ポイントを図8に示すルールごと、ソースコード103ごと、技術者2901ごとに集計して評価レポート110として出力する。
The inspection result
品質診断部108はインスペクション結果情報116を能力診断部109にも出力し、能力診断部109は、プロジェクト102の終了時に、各技術者2901が各プロジェクト102において作成したソースコード103が所望の品質に収束するまでにどの程度の期間を要したか等に関する過去の評価の推移を技術者2901ごとに分析し、コーディングの能力の評価推移およびソースコード103の修正能力を算出して技術者情報112を更新し、処理を最初から繰り返す。技術者情報112に保存された前述の各種情報は、データ化することにより、次のプロジェクト102を行う際に各技術者2901が所望の品質のソースコード103を書くことができるのか、および所望の品質のソースコード103を書くまでにどの程度の期間を要するかを判断するための指標として用いることができる。
The
ソースコード評価システム100は評価レポート110を電子情報として出力し、管理端末123のディスプレイに表示する。
The source
以下、本発明の実施の一形態であるソースコード評価システム100から出力される評価レポート110の例について図13を参照して説明する。
Hereinafter, an example of the
図13はプロジェクト102に関する品質評価レポート1301の帳票レイアウトを示す図である。
品質評価レポート1301はタイトル表示部1302と、インスペクションによってソースコード103が診断された日を表示する診断日表示部1303と、ソースコード103が作成されたプロジェクト102の名称を表示するプロジェクト名表示部1304と、プロジェクト情報表示領域1305と、評価ポイントの推移グラフ1306と、診断結果の概要をルール単位で表示する診断結果表示領域1307とで構成されている。
FIG. 13 is a diagram showing a form layout of the
The
プロジェクト情報表示領域1305には、インスペクションおよび評価の対象となったプロジェクト102の品質評価および評価値を図12に示された基準に基づいて表示する品質評価および評価値表示部1305aが設けられ、その他に評価対象のプロジェクト102におけるソース数や、キロステップ単位で表示したソースコード103の規模や、技術者2901の数や、評価結果における検出された不具合の数の合計や重要度ごとの不具合の検出件数が表示される。
The project
診断結果表示領域1307においては、「ルール名」欄1307aにルール名、「重要度」欄1307bに定義テーブル801で定義された重要度、「ルール種類」欄1307cに定義テーブル901の「ルール種類」欄901aで定義されたルール種類、「検出内容」欄1307dに不具合として検出された定義テーブル901の「内容」欄901bで定義されたルールの内容、「検出数」欄1307eに検出された不具合の集計結果、「ソース数」欄1307fに不具合として検出されたソースコード数の集計結果が、「人数」欄1307gに不具合を作成したとして検出された技術者2901の集計結果が、それぞれルール単位で表示される。
In the diagnosis
図14はソースコードに関する品質評価レポート1401の帳票レイアウト例を示す説明図である。
品質評価レポート1401はタイトル表示部1402と、診断日表示部1303と、プロジェクト名表示部1304とプロジェクト情報表示領域1305と、評価グラフ1403と、診断結果の概要をソース単位で表示する診断結果表示領域1404とで構成されている。
FIG. 14 is an explanatory diagram showing a form layout example of the
The
診断結果表示領域1404においては、「ソース名」欄1404aにソース名、「更新日」欄1404bに更新日、「氏名」欄1404cに技術者2901の氏名、「評価」欄1404dに図11で定義した品質評価記号、「評価P」記載欄1404eに図11で定義した評価ポイント、「規模」欄1404fにはソース規模が、「ルール」欄1404g、1404g、・・・にはルールごとに検出された不具合の数、「合計」欄1404hには検出された不具合の数の合計、「必須」欄1404iには必ず直さねばならない不具合(図7の「重要度」欄702に表示された定義中「最重要」および「重要」に該当する不具合)の検出数の和、「個別」欄1404jには個別に直すべき不具合(図7の「重要度」欄702に表示された定義中「警告」および「通知」に該当する不具合)の検出数の和が、それぞれ表示される。
In the diagnosis
評価グラフ1403には「評価P」、記載欄1404eの評価ポイントが高いソースのうち上位10ソースまでが「評価ワースト10」として棒グラフで表示される。グラフの単位は「評価P」記載欄1404eと同じ評価ポイントである。
In the
図15は管理端末123のディスプレイに表示される、技術者2901に関する品質評価レポート1501の帳票レイアウト例を示す説明図である。
FIG. 15 is an explanatory diagram showing a form layout example of the
品質評価レポート1501はタイトル表示部1502と診断日表示部1303とプロジェクト名表示部1304と、プロジェクト情報表示領域1305と評価が悪い技術者2901の上位10名までの評価を示す評価グラフ1503と診断結果の概要を技術者2901単位で表示する診断結果表示領域1504とで構成されている。
The
診断結果表示領域1504にはそれぞれ以下の内容が表示される。
「技術者」欄1504aには技術者2901の氏名、「会社名」欄1504bには技術者2901の所属する会社名、「評価」欄1504cには図11で定義した品質評価記号、「評価P」欄1504dには図11で定義した評価ポイント、「規模」欄1504eにはソース規模、「ルール」欄1504f、1504f、・・・にはルールごとの不具合の検出数が「合計」欄にそれぞれ表示される。
The following contents are displayed in the diagnosis
The “engineer”
1504gには不具合の検出数の合計が表示され、「必須」欄1504hには図7の「重要度」欄702に表示された定義中「最重要」と「重要」に該当する不具合の検出数の和が表示される。
The total number of detected defects is displayed in 1504g, and the number of detected defects corresponding to “most important” and “important” in the definition displayed in the “importance”
「個別」欄1504iには図7の「重要度」欄702に表示された定義中「警告」および「通知」に該当する不具合の検出数の和が表示され、「前回の評価推移」欄1504jには前回のプロジェクト102における能力評価推移および修正能力がそれぞれ表示される。
In the “individual”
評価グラフ1503には「評価P」記載欄1504dの評価ポイントが高い技術者2901のうち上位10人までの評価が「評価ワースト10」として棒グラフで表示される。
In the
図16は、管理端末123のディスプレイに表示される、会社に関する品質評価レポート1601の帳票レイアウト例を示す説明図である。
FIG. 16 is an explanatory diagram showing a form layout example of a
品質評価レポート1601はタイトル表示部1602と診断日表示部1303とプロジェクト名表示部1304とプロジェクト情報表示領域1305と、評価が悪い会社のトップ10を示すグラフ1603と、診断結果の概要を技術者2901それぞれの所属する会社単位で表示する診断結果表示領域1604とで構成されている。
The
「会社名」欄1604aには技術者2901それぞれが所属する会社名、「評価」欄1604bには図11で定義した品質評価記号、「評価P」欄1604cには図11で定義した評価ポイント、
「規模」欄1604cにはソース規模が、「ルール」欄1604e、1604e、・・・にはルールごとに検出された不具合の数がそれぞれ表示される。
The “company name”
The “scale” column 1604c displays the source size, and the “rule” columns 1604e, 1604e,... Each display the number of defects detected for each rule.
さらに「合計」欄1604fには不具合の検出数の合計、「必須」欄1604gには図7の「重要度」欄702に表示された定義中「最重要」と「重要」に該当する不具合の検出数の和、
「個別」欄1604hには図7の「重要度」欄702に表示された定義中「警告」および「通知」に該当する不具合の検出数の和、「前回の評価推移」欄1604iには前回のプロジェクト102における能力評価推移および修正能力が、それぞれ表示される。
Furthermore, the “total” column 1604f displays the total number of defects detected, and the “required” column 1604g displays the defects corresponding to “most important” and “important” in the definition displayed in the “importance”
In the “Individual”
グラフ1603には「評価P」記載欄1604cの評価ポイントが高い会社のうち上位10社までの評価が「評価ワースト10」として棒グラフで表示される。
In the
本実施の形態においてはソースコード103の品質に加え、ソースコード103を開発する技術者2901や技術者2901の所属する会社のコーディング能力の評価を行うこともできる。
In the present embodiment, in addition to the quality of the
図17は技術評価レポート1701の帳票レイアウト例を示す説明図である。
管理端末123のディスプレイに表示される、技術者2901に関する技術評価レポート1701のレイアウトは以下の項目で構成されている。
FIG. 17 is an explanatory diagram showing a form layout example of the
The layout of the
能力評価レポート1701はタイトル表示部1702と診断日表示部1303と、技術者名および会社名表示部1703と技術者情報表示領域1704と、能力評価推移表示領域1705と、評価ポイントの推移を示す推移グラフ1706と、ルールごとの診断結果表示領域1707とで構成されている。
The
技術者情報表示領域1704にはプロジェクト情報表示領域1305と同様の項目が表示され、能力評価推移表示領域1705には前回のプロジェクト102における能力評価推移および修正能力が表示され、図7に定義されたルール種類のうち不具合としての検出数が最も多いものトップ3が「要注意分野」として出力される。
The engineer
推移グラフ1706において縦軸が評価ポイントであり、横軸がインスペクションを行った日付を指す。
技術者名および会社名表示部1703に表示された技術者2901の日ごとの評価ポイントの推移が折れ線グラフで表示される。
In the
The transition of evaluation points for each day of the
診断結果表示領域1707において、「ルール名」欄1707aにルール名、「重要度」欄1707bに図8で定義された重要度、「種類」欄1707cには図8で定義されたルール種類、「チェック内容」欄1707dには図9で定義されたルールの内容、「検出数」欄1707eには検出された不具合の数の合計、「ソース数」欄1707fには不具合として検出されたソースコードの数がそれぞれ表示される。
In the diagnosis
図18は、能力評価レポート1801の帳票レイアウト例を示す説明図である。
管理端末123のディスプレイに表示される、会社に関する能力評価レポート1801のレイアウトは以下の項目で構成されている。
FIG. 18 is an explanatory diagram showing a form layout example of the
The layout of the company
タイトル表示部1802と、診断日表示部1303と、会社名表示部1803と、会社情報の表示領域1804と、評価ポイントの推移グラフ1805と診断結果の概要を技術者2901単位で表示する診断結果表示領域1806とで構成されている。
推移グラフ1805には縦軸には評価ポイントが指標となり、横軸はインスペクションを行った日付が指標となる。
In the
会社名表示部1803に表示された会社の評価ポイントの推移が折れ線グラフで表示される。
Changes in the evaluation points of the company displayed in the company
「技術者名」欄1806aにソースコードの作成を行った技術者2901の名、「重要度」欄1806bに図8で定義された重要度、「評価P」欄1806dには図11で定義した評価ポイント、「規模」欄1806eにはソース規模、「ルール」欄1806e、1806e、・・・にはルールごとに検出された不具合の数、「合計」欄1806fには検出された不具合の数の合計、「必須」欄1806gには図7の「重要度」欄702に表示された定義中「最重要」および「重要」に該当する不具合の検出数の和、「個別」欄1806hには図7の「重要度」欄702に表示された定義中「警告」および「通知」に該当する不具合の検出数の和、「前回の評価推移」欄1806iには前回のプロジェクト102における能力評価推移および修正能力がそれぞれ表示される。
The name of the
図19はプロジェクト102に関する品質推移レポート1901の帳票レイアウト例を示す説明図である。
FIG. 19 is an explanatory diagram showing a form layout example of the
管理端末123のディスプレイに表示される、プロジェクト102に関する品質推移評価レポート1901は、タイトル表示部1902とプロジェクト名表示部1903とプロジェクトの品質推移結果表示領域1904によって構成される。
The quality
「日付」欄1904aにはインスペクションが行われた日付、「評価」欄1904bには図11で定義した品質評価記号、「評価P」欄1904cには図11で定義した評価ポイント、「規模」欄1904dにはソース規模、「ルール」欄1904e、1904e、・・・にはルールごとの不具合の検出数、「合計」欄1904fには不具合の検出数の合計、「必須」欄1904gには図7の「重要度」欄702に表示された定義中「最重要」と「重要」に該当する不具合の検出数の和、個別」欄1904hには図7の「重要度」欄702に表示された定義中「警告」および「通知」に該当する不具合の検出数の和、「推移」欄1904iには「個別」欄1904h欄に表示された不具合の検出数を50個単位で黒四角に表示するとともに「必須」欄1904gに表示された不具合の検出数を50個単位に白四角で表示して不具合の検出数の概数をあらわしたグラフが、それぞれ表示される。
“Date”
図20はソースに関する品質推移レポート2001の帳票レイアウト例を示す説明図である。管理端末123のディスプレイに表示される品質推移レポート2001は、タイトル表示部2002とソース名表示部2003とソースの品質推移結果表示領域2004とで構成される。
FIG. 20 is an explanatory diagram showing a form layout example of the
品質推移結果表示領域2004の「日付」欄2004a、「評価」欄2004b、「評価P」欄2004c、「規模」欄2004d、「ルール」欄2004e、2004e、・・・、「合計」欄2004f、「必須」欄2004g、「個別」欄2004h、「推移」欄2004iの表示内容は、図19に示すプロジェクトに関する評価レポート1901における品質推移結果表示領域1904の表示内容と同じである。
“Date”
図21は技術者2901に関する品質推移レポート2101の帳票レイアウト例を示す説明図である。
管理端末123のディスプレイに表示される品質推移レポート2101は、タイトル表示部2102と技術者名および会社名表示部2103と技術者2901の品質推移結果表示領域2104とで構成されている。
FIG. 21 is an explanatory diagram showing a form layout example of the
The
品質推移結果表示領域2104の「日付」欄2104a、「評価」欄2104b、「評価P」欄2104c、「規模」欄2104d、「ルール」欄2104e、2104e、・・・、「合計」欄2104f、「必須」欄2104g、「個別」欄2104h、「推移」欄2104iの表示内容は、図19に示すプロジェクトに関する評価レポート1901における品質推移結果表示領域1904の表示内容と同じである。
“Date”
図22は技術者2901に関する品質推移レポート2201の帳票レイアウト例を示す説明図である。
管理端末123のディスプレイに表示される品質推移レポート2201はタイトル表示部2202と会社名表示部2203と会社の品質推移結果表示領域2204とで構成されている。
FIG. 22 is an explanatory diagram showing a form layout example of the
The
そして、品質推移結果表示領域2204の「日付」欄2204a、「評価」欄2204b、「評価P」欄2204c、「規模」欄2204d、「ルール」欄2204e、2204e、・・・、「合計」欄2204f、「必須」欄2204g、「個別」欄2204h、「推移」欄2204iの表示内容は、図19に示すプロジェクトに関する評価レポート1901における品質推移結果表示領域1904の表示内容と同じである。
The “date”
図23はソースコード評価システムのソースコード管理部におけるソース管理機能の処理の流れを示すフローチャートである。 FIG. 23 is a flowchart showing the flow of processing of the source management function in the source code management unit of the source code evaluation system.
以下、このフローチャートに基づいてソースコード管理部101のソース管理のための処理動作を説明する。
Hereinafter, the processing operation for source management of the source
ソースコード管理部101は開発マシン121のディスプレイに、アクセスした技術者2901にプロジェクト102の名称と社員番号を入力するよう促す画面を表示し(ステップ2301)、ソースコード管理部101は、開発マシン121に技術者2901が入力したプロジェクト102の名称のデータを取得し(ステップ2302)、社員番号のデータを取得する(ステップ2303)。
The source
プロジェクト102の名称と社員番号を取得するとソースコード管理部101は、開発マシン121のディスプレイに技術者2901が作成した最新のソースコード103を入力するように促す画面を表示し、技術者2901が入力した最新のソースコード103を取得する(ステップ2304)。
When the name and employee number of the
次にソースコード管理部101は取得したソースコード103のファイル名と最終更新日時を調べる(ステップ2305)。ソースコード管理部101はソースコードのファイル名の拡張子からソースコードの種類を判別する(ステップ2306)。
Next, the source
ソースコード管理部101はソースコードの行数を計測する(ステップ2307)。ソースコード管理部101はデータ格納部111のコーディング経過情報113の、「プロジェクト名」欄501、「ソース名」欄502、「ファイルの更新日時」欄503、「ソース種類」欄504、「ステップ数」欄505、「社員番号」欄506に取得したソースコード103を挿入し登録する(ステップ2308)。
The source
図24はソースコード評価システム100の制御部105における命令処理機能の処理の流れを示すフローチャート図である。
FIG. 24 is a flowchart showing a process flow of the instruction processing function in the
以下、このフローチャートに基づいて制御部105の命令処理の動作を説明する。
Hereinafter, the operation of the instruction processing of the
制御部105はインスペクションの実行時間になると定期的に起動し(ステップ2401)、実行中にエラーが発生した場合に備えて実行環境をバックアップする(ステップ2402)。
The
制御部105はソースコード103をコンパイルするのに必要となるライブラリやモジュール等のコンパイル環境を読み込む(ステップ2403)。
The
制御部105はインスペクションにおける検討の規則として、プロジェクト102の状態にあったルールモジュールを選択し設定する(ステップ2404)。制御部105は、コーディング経過情報113を検索し、蓄積されたソースコード103について最新のソースコード103の一覧を作成する(ステップ2405)。
The
制御部105は現在の日付を調べ、診断履歴情報114にインスペクション対象とするソースコードのデータとして「プロジェクト名」欄601のプロジェクト名、「診断日」欄602の診断日、「ソース名」欄603のソース名、「更新日時」欄604に表示されたソースファイルの最終更新日時を挿入する(ステップ2406)。次に、制御部105は最新のソースコード103を読み込み(ステップ2407)、コンパイルする(ステップ2408)。
The
制御部105は最新のソースコード103の一覧から、前回の診断以降に更新されているファイルを選択する(ステップ2409)。制御部105は、前回の診断以降に更新されているファイルにおいて、インスペクション対象外とされている部分に目印をつけるためフィルタリングする(ステップ2410)。
The
制御部105はソース検査部106を呼び出し、インスペクションを実行する(ステップ2411)。制御部105は品質診断部108を呼び出し、インスペクションの結果を集計し、評価をつける(ステップ2412)。
The
制御部105は能力診断部109を呼び出し、コーディングの能力評価推移およびソースコード103の修正能力を分析し、評価レポート110を出力する。
The
図25はソースコード評価システム100のソース検査部106におけるインスペクション機能の処理の流れを示すフローチャート図である。
FIG. 25 is a flowchart showing the flow of processing of the inspection function in the
以下、このフローチャートに基づいてソース検査部106の動作を説明する。
Hereinafter, the operation of the
ソース検査部106はインスペクションの規則として設定されているルールモジュールを読み込む(ステップ2501)。ソース検査部106は、ソースコード評価システム100を構成するハードウェアのマシンスペックに基づいて、一度に解析するソースコード103の数を決定する(ステップ2502)。
The
ソース検査部106は、解析対象のソースコード103を幾つかのソースコード103のセットにまとめる(ステップ2503)。ソース検査部106は、全てのソースコード103のセットについて一つずつ(ステップ2504)、全てのソースコード103のセットについて実行するまで(ステップ2519)、ステップ2505からステップ2518までを実行する。
The
ソース検査部106は、全てのソースコード103について一つずつ(ステップ2505)、全てのソースコード103について実行するまで(ステップ2518)、ステップ2506からステップ2517までを実行する。
The
ソース検査部106はソースコード103を読み込み、コーディング経過情報113の対応するソースコード103の「検査日」欄507に現在日を挿入する(ステップ2506)。ソース検査部106は読み込んだソースコード103から構文木を生成する(ステップ2507)。ソース検査部106はファイルの内容を解析し、構文木に対応するファイル情報を生成する(ステップ2508)。ソース検査部106は、対応するソースコード103の中で呼ばれているネイティブコード読み込む(ステップ2509)。
The
次に、ソース検査部106は、ネイティブコードを解析し、変数や関数についての基本情報を生成する。ネイティブコードが読み込めなかった場合、リフレクションを使用し、同等の情報を生成する(ステップ2510)。ソース検査部106は、登録されているルールにつき一つずつ(ステップ2511)、全てのルールについて実行するまで(ステップ2517)、ステップ2512からステップ2516までを実行する。ソース検査部106は、構文木を辿るプログラムを走らせ、構文木のトークンについて一つずつ(ステップ2512)、全てのトークンを辿るまで(ステップ2516)、ステップ2513からステップ2515までを実行する。
Next, the
ソース検査部106は読み込んだルールモジュールを実行し、インスペクションの確認内容に引っ掛かったか判定する(ステップ2513)。
The
ソース検査部106は、井インスペクションの結果が正の場合、そのコードが記述されている行番号がインスペクション対象外としてフィルタリングされているか判定する(ステップ2514)。次に、ソース検査部106は、判定結果が否の場合、チェック結果(ステップ2515)をデータ格納部111のインスペクション結果情報116に出力し蓄積する。
When the result of the well inspection is positive, the
図26は本実施の形態におけるソースコード評価システム100の品質診断部108におけるデータ分析機能の分析処理および品質評価処理の流れを示すフローチャートである。
FIG. 26 is a flowchart showing the flow of analysis processing and quality evaluation processing of the data analysis function in the
以下、このフローチャートに基づいて品質管理部108のデータ分析処理および品質評価処理について説明する。
Hereinafter, data analysis processing and quality evaluation processing of the
品質管理部108はプロジェクト102の診断履歴情報114を読み込む(ステップ2601)、品質管理部108は「プロジェクト名」欄601に表示されたプロジェクト名と「ソース名」欄603に表示されたソース名と「更新日時」欄604に表示された更新日時に対応するソースのインスペクション結果情報116を全て読み込む(ステップ2602)。品質管理部108はコーディング経過情報113から対応するソースのデータを読み込む(ステップ2603)。
The
技術者情報112から対応する技術者2901のデータを読み込む(ステップ2604)。
品質管理部108はルール情報115を読み込む(2605)。品質管理部108は診断結果につき一つずつ(ステップ2606)、全ての日付を辿るまで(ステップ2619)、ステップ2609からステップ2608までを実行する。
The data of the
The
品質管理部108は診断日に一致するソース一覧を取得する(ステップ2607)。品質管理部108は、ソース一覧に対応するインスペクション結果情報116を取得し、以上のデータを結合し1レコードとしたコレクションを生成する(ステップ2608)。
The
品質管理部108はコレクションをプロジェクト102全体で集計する(ステップ2609)。品質管理部108はコレクションをルールごとに集計する(ステップ2610)。品質管理部108はコレクションをソースごとに集計する(ステップ2611)。品質管理部108はコレクションを技術者2901ごとに集計する(ステップ2612)。品質管理部108はコレクションを所属会社ごとに集計する(ステップ2613)。
The
品質管理部108は更新日付が最新のものか判定する(ステップ2614)。品質管理部108はステップ2614の結果が正であった場合、評価が最も悪いソースを10個選択する(ステップ2615)。
The
品質管理部108は評価が最も悪い技術者2901を10人選択する(ステップ2616)、品質管理部108は評価が最も悪い会社を10社選択する(ステップ2617)。ステップ2605の判定結果が負の場合には、品質管理部108は特段の処理は行わない。なお、ステップ2615、ステップ2616、ステップ2617においてそれぞれの評価の悪いものを選択するときの選択個個数は任意に設定することができる。
The
品質管理部108はプロジェクト102に関する品質評価レポート1301を出力し(ステップ2619)、品質管理部108はソースに関する品質評価レポート1401を出力する(ステップ2620)。
The
品質管理部108は技術者2901に関する品質評価レポート1501を出力し(ステップ2621)、品質管理部108は会社に関する品質評価レポート1601を出力する(ステップ2622)。
The
品質管理部108は技術者2901に関する能力評価レポート1701を出力する(ステップ2623)。そして、品質管理部108は会社に関する能力評価レポート1801を出力する(ステップ2624)。
The
品質管理部108はプロジェクト102に関する品質推移レポート1901を出力する(ステップ2625)。品質管理部108はソースに関する品質推移レポート2001を出力する(ステップ2626)。品質管理部108は技術者2901に関する品質推移レポート2101を出力する(ステップ2627)。品質管理部108は会社に関する品質推移レポート2201を出力する(ステップ2628)。
The
図27は、本実施の形態に係るソースコード評価システム100の品質診断部108におけるデータ集計機能の集計処理の流れを示すフローチャートである。
以下、品質診断部108のデータ集計処理の詳細をフローチャートに従って説明する。
FIG. 27 is a flowchart showing a flow of a totaling process of the data totaling function in the
Hereinafter, details of the data totaling process of the
品質診断部108はコレクションに含まれるインスペクション結果情報116のデータレコード数を取得する(ステップ2701)。品質診断部108は必須変数と個別変数とルールごとの変数を用意し、値を0に初期化する(ステップ2702)。必須変数とは図8に示す「修正の必要」欄801bにおいて修正の必要が「必須」と定義された項目を変動させる関数であり、個別変数とは図8に示す「修正の必要」欄801bにおいて「個別」と定義された項目を変動させる関数である。次に、品質診断部108は評価ポイントを格納する評価ポイント変数を用意し、値を0に初期化する(ステップ2703)。次に、品質診断部108はステップ数を格納するステップ数変数を用意し、値を0に初期化する(ステップ2704)。品質診断部108はコレクションに含まれる全てのデータに対して一つずつ(ステップ2705)、全てのデータについて実行するまで(ステップ2712)、ステップ2706からステップ2711までの処理を実行する。
The
品質診断部108はルールに対応する変数を1繰り上げる(ステップ2706)。品質診断部108はインスペクション結果情報116のルールIDからルールの重要度を検索する(ステップ2707)。品質診断部108はルールの重要度が最重要か又は重要であるか判定する(ステップ2708)。
The
ステップ2708の判定結果が正である場合、品質診断部108は必須変数を1繰り上げる(ステップ2709)。ステップ2708の判定結果が負である場合、品質診断部108は個別変数を1繰り上げる(ステップ2710)。
If the determination result in
品質診断部108はルールの重要度と対応する評価ポイントを評価ポイント変数に加算する(ステップ2711)。品質診断部108はコレクションに含まれる技術者2901の数を技術者変数に代入する(ステップ2713)。品質診断部108はコレクションに含まれる会社の数を会社変数に代入する(ステップ2714)。品質診断部108はコレクションに含まれる全てのソースに対して一つずつ(ステップ2715)、全てのソースについて実行するまで(ステップ2717)、ステップ2716の処理を実行する。
The
品質診断部108はソースの規模をステップ数変数に加算する(ステップ2716)。品質診断部108はソース変数にソースの数を代入する(ステップ2718)。品質診断部108は評価ポイント変数に対しステップ数変数によって除算を行い、得られた値を評価ポイント変数に代入する(ステップ2719)。
The
図28は本実施の形態に係るソースコード評価システム100の能力評価部109における能力評価機能の処理の流れを示すフローチャートである。
以下、このフローチャートに基づいて能力評価部109の能力評価処理を説明する。
FIG. 28 is a flowchart showing a processing flow of the capability evaluation function in the
Hereinafter, the capability evaluation process of the
能力評価部109は、プロジェクト102の終了時のみ、以降の処理を行う。能力評価部109は、プロジェクト102の期間中で最初の技術者2901の品質評価ポイントを取得し、対応する能力評価を算出する(ステップ2801)。
The
能力評価部109は、プロジェクト102の開発期間中で最後の技術者2901の品質評価ポイントを取得し、対応する能力評価を算出する(ステップ2802)。能力評価部109は最初と最後の能力評価が一致するか判定する(ステップ2803)。ステップ2803の判定結果が正の場合、能力評価部109は最初の能力評価を最終能力評価とし(ステップ2804)、技術者情報112の「社員番号」欄401に表示される社員番号と「ソース種類」欄404に表示されるソース種類と「能力評価推移」欄406に表示される能力評価推移および修正能力を更新し、プロジェクト数を1加算する(ステップ2812)。
The
一方、ステップ2803の判定結果が負の場合、能力評価部109は、最初と最後の能力評価記号を並べるとともに−修正能力記号1202bを表示する(ステップ2805)。
On the other hand, if the determination result in
能力評価部109はプロジェクト102の期間中で最初に技術者2901の評価ポイントが変化した診断日を調べる(ステップ2806)。能力評価部109はプロジェクト102の期間中で技術者2901の能力評価がAに変化した診断日を調べる(ステップ2807)。能力評価部109はステップ2807の診断日からステップ2806の診断日を引き変動期間を調査する(ステップ2808)。
The
能力評価部109は、変動期間が14日以内か判定する(ステップ2809)。ステップ2810の判定結果が正の場合、能力評価部109は能力評価記号の後ろに+修正能力記号1202aを表示する。一方、ステップ2810の判定結果が負の場合、能力評価部109は能力評価記号の後ろに−修正能力記号1202bを表示する。そして、能力評価部109はステップ2812を実行する。
The
100・・ソースコード評価システム、101・・ソースコード管理部、102・・プロジェクト、103・・ソースコード、104・・品質検査部、105・・制御部、106・・ソース検査部、107・・品質評価部、108・・品質診断部、109・・能力診断部、110・・評価レポート、111・・データ格納部、112・・技術者情報、113・・コーディング経過情報、114・・診断情報、115・・ルール情報、116・・インスペクション結果情報、121・・開発マシン、122・・イントラネット、123・・管理端末、406・・「能力評価推移」欄、801・・ルールの重要度の一例、901・・ルールの種類の一例、1101・・品質評価基準の一例、1201・・能力評価推移および修正能力の表示の一例、1301・・プロジェクトに関する評価レポートの一例、1306・・推移グラフ、1307・・ルールごとの診断結果表示領域、1401・・ソースに関する評価レポートの一例、1403・・評価が悪いソースのトップ10を示すグラフ、1404・・ソースごとの診断結果表示領域、1501・・技術者に関する評価レポートの一例、1503・・評価が悪い技術者のトップ10を示すグラフ、1504・・技術者ごとの診断結果表示領域、1601・・会社に関する品質評価レポートの一例、1604・・会社ごとの診断結果表示領域、1701・・技術者に関する能力評価レポートの一例、1705・・技術者の能力評価推移の表示領域、1706・・評価ポイントの推移グラフ、1707・・ルールごとの診断結果表示領域、1801・・会社に関する能力評価レポートの一例、1805・・評価ポイントの推移グラフ、1806・・技術者ごとの診断結果表示領域、1901・・プロジェクトに関する品質推移レポートの一例、1904・・プロジェクトの品質推移結果表示領域、2001・・ソースに関する品質評価推移レポートの一例、2004・・ソースの品質推移結果表示領域、2101・・技術者に関する品質評価推移レポートの一例、2104・・技術者の品質推移結果表示領域、2201・・会社に関する品質推移レポートの一例、2204・・会社の品質推移結果推移領域、2901・・技術者、2902・・レビュアー、2904・・インスペクション結果レポート、2905・・プロジェクト管理者
100 ... Source
Claims (5)
前記生成されるソースコード毎にインスペクションを行う品質検査手段と、
前記品質検査手段から出力された前記インスペクションの結果と、前記ソースコードを作成した技術者に関する技術者情報を一元管理する一元管理記憶手段と、
前記ソースコードの不具合の種類に関するルール情報および前記品質検査手段が過去に前記ソースコードに対して行った前記インスペクションの結果に関する診断履歴情報を有するデータ格納手段と、
前記診断履歴情報と前記品質検査手段が出力した前記インスペクションの結果をもとに前記ソースコードの品質および前記技術者の前記ソースコードを作成する能力を評価する品質評価手段とを有し、
前記品質評価手段は、
前記データ格納手段に格納されたインスペクション結果情報に対して前記作業工程単位、前記ソースコード単位、開発者単位に前記ソースコードの品質を診断する品質診断を行い、前記診断結果に前記一元管理記憶手段を参照して、それぞれの単位毎に集計し、出力する
ことを特徴とするソースコード評価システム。 In a design development project including a plurality of work processes developed in a distributed development environment composed of a plurality of terminals, a source code evaluation system for evaluating a source code generated for each work process,
Quality inspection means for performing inspection for each generated source code;
A centralized management storage means for centrally managing the inspection result output from the quality inspection means and the engineer information relating to the engineer who created the source code;
Data storage means having rule information relating to the type of defect in the source code and diagnostic history information relating to a result of the inspection performed by the quality inspection means on the source code in the past;
Quality evaluation means for evaluating the quality of the source code and the ability of the engineer to create the source code based on the diagnosis history information and the inspection result output by the quality inspection means,
The quality evaluation means includes
The inspection result information stored in the data storage means is subjected to quality diagnosis for diagnosing the quality of the source code in units of the work process, the source code, and the developer, and the unified management storage means is included in the diagnosis result. A source code evaluation system characterized in that each unit is aggregated and output with reference to
前記品質検査手段は、前記診断履歴情報を参照し前記コーディング経過情報に含まれる前記ソースコードの一覧から選択した前記ソースコードのインスペクションを行うソース検査手段と、
定期的に前記ソース検査手段に前記インスペクションを実行させる命令処理手段と
をさらに備えたことを特徴とする請求項1に記載のソースコード評価システム。 The data storage means further includes coding progress information for recording the progress of the source code creation,
The quality inspection means refers to the diagnosis history information, the source inspection means for performing inspection of the source code selected from the list of the source code included in the coding progress information;
The source code evaluation system according to claim 1, further comprising: instruction processing means for causing the source inspection means to execute the inspection periodically.
前記品質診断手段の診断結果を元に、前記技術者が前記ソースコードの前記不具合を修正する能力としての修正能力を診断する能力診断手段と
をさらに備えたことを特徴とする請求項1または2に記載のソースコード評価システム。 The quality evaluation unit aggregates the inspection result information stored in the data storage unit for each of the rule information, the source code, and the engineer, and determines the number of items detected as defects from the source code. Quality diagnosis means for diagnosing the quality of the source code using the density obtained by dividing the value based on the scale of the source code;
The capability diagnosis means which diagnoses the correction capability as the capability which the said engineer corrects the said malfunction of the said source code based on the diagnostic result of the said quality diagnostic means further, These are characterized by the above-mentioned. Source code evaluation system described in
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004242837A JP2006059276A (en) | 2004-08-23 | 2004-08-23 | Source code evaluating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004242837A JP2006059276A (en) | 2004-08-23 | 2004-08-23 | Source code evaluating system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006059276A true JP2006059276A (en) | 2006-03-02 |
Family
ID=36106679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004242837A Pending JP2006059276A (en) | 2004-08-23 | 2004-08-23 | Source code evaluating system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006059276A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176192A (en) * | 2009-01-27 | 2010-08-12 | Mitsubishi Electric Corp | Support method and apparatus for designing system collaboration platform, and design support program |
JP2010186394A (en) * | 2009-02-13 | 2010-08-26 | Hitachi Software Eng Co Ltd | Result evaluation system for system developer, system for evaluating difficulty of module development, and delay state determination system |
JP2011180811A (en) * | 2010-03-01 | 2011-09-15 | Nec Corp | Apparatus, system and method for evaluating content, method for displaying content evaluation, and program |
JP2014123246A (en) * | 2012-12-21 | 2014-07-03 | Mitsubishi Electric Corp | Software reliability evaluation device, software reliability evaluation method, and program |
JP2015146176A (en) * | 2014-09-04 | 2015-08-13 | ギノ株式会社 | Programming skill evaluation apparatus, programming skill evaluation method, recruiting information selection apparatus, and recruiting information selection method |
KR101547248B1 (en) * | 2013-12-10 | 2015-08-25 | 슈어소프트테크주식회사 | Moulde and method for producting total quality score of software, and computer readable recording medium having program the method |
JP2021163016A (en) * | 2020-03-31 | 2021-10-11 | 株式会社日本総合研究所 | Management server in system for evaluating serviceability of source code, management method and program |
US11392371B2 (en) | 2018-11-28 | 2022-07-19 | Fujitsu Limited | Identification of a partial code to be refactored within a source code |
-
2004
- 2004-08-23 JP JP2004242837A patent/JP2006059276A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176192A (en) * | 2009-01-27 | 2010-08-12 | Mitsubishi Electric Corp | Support method and apparatus for designing system collaboration platform, and design support program |
JP2010186394A (en) * | 2009-02-13 | 2010-08-26 | Hitachi Software Eng Co Ltd | Result evaluation system for system developer, system for evaluating difficulty of module development, and delay state determination system |
JP2011180811A (en) * | 2010-03-01 | 2011-09-15 | Nec Corp | Apparatus, system and method for evaluating content, method for displaying content evaluation, and program |
JP2014123246A (en) * | 2012-12-21 | 2014-07-03 | Mitsubishi Electric Corp | Software reliability evaluation device, software reliability evaluation method, and program |
KR101547248B1 (en) * | 2013-12-10 | 2015-08-25 | 슈어소프트테크주식회사 | Moulde and method for producting total quality score of software, and computer readable recording medium having program the method |
JP2015146176A (en) * | 2014-09-04 | 2015-08-13 | ギノ株式会社 | Programming skill evaluation apparatus, programming skill evaluation method, recruiting information selection apparatus, and recruiting information selection method |
US11392371B2 (en) | 2018-11-28 | 2022-07-19 | Fujitsu Limited | Identification of a partial code to be refactored within a source code |
JP2021163016A (en) * | 2020-03-31 | 2021-10-11 | 株式会社日本総合研究所 | Management server in system for evaluating serviceability of source code, management method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232024B (en) | Software automation test framework and test method | |
US7904802B1 (en) | System and method for software code review | |
US7895565B1 (en) | Integrated system and method for validating the functionality and performance of software applications | |
Felderer et al. | Integrating risk-based testing in industrial test processes | |
US20140123110A1 (en) | Monitoring and improving software development quality | |
CN112817865A (en) | Coverage precision test method and system based on componentized distributed system | |
Wen et al. | Blimp tracer: Integrating build impact analysis with code review | |
Bigonha et al. | The usefulness of software metric thresholds for detection of bad smells and fault prediction | |
Bandi et al. | Empirical evidence of code decay: A systematic mapping study | |
WO2014207644A2 (en) | Method and system for grading a computer program | |
JP2005222108A (en) | Bug analysis method and device | |
Nilson et al. | Do internal software quality tools measure validated metrics? | |
JP2006209354A (en) | Inspection system for vehicle software | |
JP2006059276A (en) | Source code evaluating system | |
Plösch et al. | The EMISQ method and its tool support-expert-based evaluation of internal software quality | |
Herraiz et al. | Impact of installation counts on perceived quality: A case study on debian | |
JP4502535B2 (en) | Software quality inspection support system and method | |
Tarhan et al. | Investigating the effect of variations in the test development process: a case from a safety-critical system | |
JP2015072644A (en) | Interactive method of predicting facility failure | |
Wang et al. | ACCA: An architecture-centric concern analysis method | |
CN116089270A (en) | Layered test system, layered test method and layered test medium | |
Tan et al. | The lifecycle of Technical Debt that manifests in both source code and issue trackers | |
CN115629956A (en) | Software defect management method and system based on interface automatic test | |
Wang et al. | Quantitative analysis of requirements evolution across multiple versions of an industrial software product | |
Doganaksoy et al. | Getting the right data up front: A key challenge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090907 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100209 |