WO1999004337A1 - Outil de mesure de code - Google Patents
Outil de mesure de code Download PDFInfo
- Publication number
- WO1999004337A1 WO1999004337A1 PCT/GB1998/002050 GB9802050W WO9904337A1 WO 1999004337 A1 WO1999004337 A1 WO 1999004337A1 GB 9802050 W GB9802050 W GB 9802050W WO 9904337 A1 WO9904337 A1 WO 9904337A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- software
- rules
- maintainability
- rule
- code
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3616—Analysis of software for verifying properties of programs using software metrics
Definitions
- the present invention is concerned with computer systems and in particular with a system for analysing computer software so as to establish potential problems in the software.
- the present invention is particularly concerned with a management system capable of identifying or predicting in computer systems where problems are likely to occur and additionally identifying code for updating/investment and accessing the impact of changing code.
- HP index is calculated on a file and system level and is mainly a size measure and has been validated by industrial use. In accordance with the HP index source files scoring less than 65 are considered to have poor maintainability, and files scoring over 85 good maintainability. Thus it is already known to provide systems which use rules which when applied to software parameters give an indication of the maintainability of code. However, as will be described later, these rules are often contradictory.
- a concern of the present invention is to provide a system which can reliably assess the maintainability of computer software, and in particular at the file level.
- a code measurement system for determining the maintainability of software, comprising first means for deriving from a fault record of known software and a metric database of the known software a set of rules, and second means for comparing a metric database of second software not having a fault record to derive a signal indicating the maintainability of the second software.
- a method of measuring code for determining the mountability of software comprising the steps of measuring code system for determining the maintainability of software, comprising a step of deriving from a fault record of known software and a metric database of the known software a set of rules, and a step of comparing a metric database of second software not having a fault record to derive a signal indicating the maintainability of the second sof ware .
- Figure 1 shows a general overview of a known system
- FIGS. 2A and 2B show a general overview of a system in accordance with the present invention
- Figure 3 is a flow diagram showing the operation of the system of Figure 2;
- Figures 4 and 5 show typical graphical displays.
- a prediction system using rules acquired by data mining techniques builds on knowledge of changes in the past in order to carry out the necessary prediction of quality or maintainability.
- a maintainability detecting index for the code under consideration together with the amount it will have to be changed .
- These two parameters indicate the impact of potential developments .
- the very nature of the data mining techniques and the rules identified by these techniques mean that the parameters predicting possible problems have to be expressed as probabilities and frequently one rule when applied will lead to one set of probabilities whilst another rule will lead to a set of contradicting probabilities.
- the simple application of a set of rules is insufficient to give an unambiguous prediction.
- FIG. 1 of the drawings shows a general purpose computer 1 which acts as a measurement tool with regard to a set of files 2 which together comprise the software of a complex computer system.
- the files 2 are coded in C but of course they can exist in any suitable codes such as Cobol .
- a set of change records 3 are generated for each of the files in the set of files 2. These can be generated by computer 1 or by another processor (not shown).
- Table A The results of such an analysis of the files of C code, are shown in Table A, where the file names are shown on the left and the measures taken are shown under the measures heading, together with the number of detected changes and a pass or fail criterion.
- the criterion threshold can be set arbitrarily but in general will be set so as to catch the worst 25% of the files in the system. In this context worse means most heavily changed.
- the results of the analysis will be referred to as a metric database and is indicated in Figuer 1 at 20.
- Figure 2A shows part of a system in accordance with an aspect of the present invention.
- data mining software is used in a computer 1 to analyse the metrics database 20 to produce a set 21 of appropriate rules which will be defined in greater detail hereinafter.
- the number 10 indicates a set of new files of C code the maintainability of which is to be ascertained and which are measured by the measurement tools 11 in the same way as the known files were measured in Figure 1 so as to generate a metric database 12 similar to the already described Table A.
- the set of data mining rules 21 as derived from a known set of files as described with respect to Figure 2A are then applied to the metric database 12 using a general purpose computer 22 to generate predictions with regard to each of the files in the newly generated table.
- the predictions can be displayed on the screen 23 of the computer or stored at 24 for subsequent analysis.
- a rule will be generated by taking a combination of two or more of the measures shown in Table A together with the pass or fail criterion so as to generate at least two inequalities so that the rule applies when the two or more inequalities by the unknown files are satisfied.
- a rule can, using the reasons shown in Table A, consist of the two inequalities 2 ⁇ Nm ⁇ 17 and 16 ⁇ M2. As an example, if these inequalities are satisfied the rule will indicate that the file is a fail.
- the confidence factor associated with the rule will be dependent on the number of records in the database or source data to which the rule applies .
- Step S10 of this flowchart represents the files of a known software system.
- a record is made, as described with regard to Figure 1, of the file changes in the software system over a period of time.
- a metric database is set up in which selected key parameters of the known code are extracted.
- the file change record and the metric database are combined and at step S14 the data mining is applied to the combined metric database so as to generate a set of rules such as the rule previously discussed.
- the unknown code that is the code the maintainability or quality of which is to be assessed, has generated from it a metric database which corresponds to the metric database of step 12.
- step S16 The measurement of the unknown code is shown at step S16 and the generation of the metric database is shown at step S17.
- step S18 the rules derived by the data mining step S14 are applied in the prediction system shown in Figure 2 so as to generate and display or otherwise make available a series of predictions from which the maintainability or quality of the unknown code can be assessed. This is shown at step 19.
- step 19 There is, of course, no absolute necessity for the measurement of the known code to be carried out before the measurement of the unknown code with the proviso that it has to be done before step S18 can be carried out.
- This table shows a selection of rules under which the file passed and a selection of those rules under which the file failed. Naturally many more rules are examined in actual operation of the system.
- the table also shows a confidence factor (CF), expressed as a percentage, with which the prediction for pass or fail has been given.
- This confidence factor is an estimate of the probability that an individual rule will be correct in relation to any individual case.
- Table B does not really give a clear indication as to whether the new file is a pass or a fail because of the fact that under some measurements the file is a pass and under other measurements the file is a fail. Additionally the confidence factors vary for each of the predicted results. It is thus necessary to make a further judgement from Table B trying to take into account these varying factors .
- One simple method is to compare the number of pass rules with the number of fail rules so that the file passes if the pass rule number is greater than the fail rule number.
- a second method would be to sum the confidence factors (CF's) of the passes and compare this with the sum of the CF's of the fails. In the given table the sum of the CF's for pass is 229% and fail 167%. On this calculation the file is a pass.
- Yet another approach is only to take into account those rules where the CF is greater than chance value.
- Yet another method is to simply state that the best rule wins.
- the highest CF is for rule 1 and using this method the file passes.
- This procedure can be modified by adjusting the best rule to take into account the fact that as a greater percentage (70%) of the files in the source data were pass files it is more likely statistically that the best rule would be for a pass file.
- none of these approaches provides a reliable outcome as to the likelihood of the file passing or failing .
- system is adapted to carry out a calculation using the following factors:
- CF X Confidence factor associated with Rule x.
- tp Number of pass rules triggered
- tf Number of fail rules triggered
- p % of pass files in "KNOWN”
- f % of fail files in "KNOWN” .
- m Number of pass rules in role database.
- n Number of fail rules in role database.
- the adjustment factor is a factor based on the software system from which the rules were derived. They are based on the known history of the software system about which the prediction is to be made, and also the required sensitivity level of the prediction tool. The two adjustment factors should always sum to 100. h e default values used for both of adjustment factors are 50 and 50. These values would be suitable if the system being analysed is newly developed code, and if it was equally important to avoid false fails and false passes .
- the prediction technique will generally produce more false fails and fewer false passes. This can be prevented by increasing the pass adjustment factor (to 60) and reducing the fail adjustment factor (to 40).
- CMT Code Measurement Toolkit
- CMT consists of three main components:
- the Code Measurement Component utilises a code parsing and metrics tool X-RAY, developed by South Bank University, as the code parsing tool. Further code metrics are calculated from X-RAY 's output using the Qualms tool and other appropriate algorithms . In total 17 system level, 58 source file level and 44 function level measures are made (function in this context is taken as being synonymous with perform and procedure). These metrics include measurements of the following aspects of source code:
- file level measures appear in a number of statistically derived forms, max, mean, weighted mean, and average density (the average density of a metric for a portion of source code is calculated by dividing the metric value by the number of non-comment, non-blank lines of code).
- the File Change Prediction Capability which predicts the likelihood of a file changing in the future is based on the analysis of the measures produced by CMT.
- Two expert systems are used to independently analyse the measurements, a neural net and a rules based expert system. The results from the two expert systems are then compared to allow a judgement to be made.
- the two expert systems To enable the two expert systems to analyse the code measurements they first have to be trained on a set of source code which has a known change history.
- the source code is measured and the measurements and change history are analysed by a data mining engine to extract the rules for the rules based expert system and by a neural network retraining tool.
- the code and change history of release 32 of four sub-systems was used for training CMT.
- the sub-systems were of varying size and contained in total approximately 1 million lines of source code.
- the file change predictions were validated by checking the predictions of change against the amount of change that had already occurred to the code used for training. The predictions were found to be > 90% accurate.
- the prediction accuracy was also tested with a C source code system, of some 90 source files, for which the source code for the first and each subsequent release was available.
- the source code for the first release was measured.
- the predictions of change showed all the files as "Least Likely to Change", this was compared with the number of times that each file actually had been changed.
- the source code was of generally good quality and the predictions made by CMT were correct .
- CMT can then be used to make change predictions of other source code.
- the system is, as shown in Figure 2, provided with a graphical user interface .
- the file change prediction results for the set of source files measured are presented in a "File Change Predictions" window, as shown in Figure 4.
- the window is composed of three scrolled lists 20, 21 and 22.
- the top most list 25, which is red, contains all the files which have been given a FAIL rating, i.e. those files which are most likely to change in the future.
- the green bottom most list 27 contains all of the files that have been given the rating of a PASS, i.e. those files which are least likely to change in the future .
- the yellow Reasonable Maintainability list 1 shows files scoring between 65 and 85. These files are likely to be quite maintainable, though may have some difficult areas .
- the green Good Maintainability list 32 shows files scoring over 85. These files are likely to be easy to maintain.
- the prediction of likelihood of change can be used together with the maintainability measure to identify code that would be a good candidate for improvement. For example if a particular source file is likely to change a lot in the future and it is unmaintainable then it would be a good investment to improve the quality of the code so that future changes are easier to perform and involve less risk.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU82352/98A AU8235298A (en) | 1997-07-17 | 1998-07-13 | Code measure tool |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9715061.9 | 1997-07-17 | ||
| GB9715061A GB9715061D0 (en) | 1997-07-17 | 1997-07-17 | Code measure tool |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO1999004337A1 true WO1999004337A1 (fr) | 1999-01-28 |
Family
ID=10816002
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/GB1998/002050 Ceased WO1999004337A1 (fr) | 1997-07-17 | 1998-07-13 | Outil de mesure de code |
Country Status (3)
| Country | Link |
|---|---|
| AU (1) | AU8235298A (fr) |
| GB (1) | GB9715061D0 (fr) |
| WO (1) | WO1999004337A1 (fr) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6535870B1 (en) * | 2000-02-09 | 2003-03-18 | International Business Machines Corporation | Method of estimating an amount of changed data over plurality of intervals of time measurements |
| EP2007070A1 (fr) * | 2007-06-18 | 2008-12-24 | Avaya GmbH & Co. KG | Procédé destiné à la représentation d'informations de processus pour une installation de traitement de données tout comme système de traitement des données |
| US7725881B2 (en) | 2006-06-09 | 2010-05-25 | Microsoft Corporation | Automatically extracting coupling metrics from compiled code |
| RU2643045C2 (ru) * | 2013-02-01 | 2018-01-30 | Кембридж Консалтантс Лимитед | Устройство для выдачи пены |
| EP3929752A4 (fr) * | 2019-03-26 | 2022-12-07 | Siemens Aktiengesellschaft | Procédé, appareil et système d'évaluation de qualité de conception de code |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1997002528A1 (fr) * | 1995-07-06 | 1997-01-23 | Bell Communications Research, Inc. | Procede et systeme d'analyse fondee sur l'architecture, de la qualite de logiciels |
-
1997
- 1997-07-17 GB GB9715061A patent/GB9715061D0/en active Pending
-
1998
- 1998-07-13 WO PCT/GB1998/002050 patent/WO1999004337A1/fr not_active Ceased
- 1998-07-13 AU AU82352/98A patent/AU8235298A/en not_active Abandoned
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1997002528A1 (fr) * | 1995-07-06 | 1997-01-23 | Bell Communications Research, Inc. | Procede et systeme d'analyse fondee sur l'architecture, de la qualite de logiciels |
Non-Patent Citations (1)
| Title |
|---|
| PAUL OMAN ET AL.: "Metrics for Assessing a Software System's Maintainability", PROCEEDINGS OF THE CONFERENCE ON SOFTWARE MAINTENANCE 1992, 9 November 1992 (1992-11-09) - 12 November 1992 (1992-11-12), ORLANDO, FLORIDA, pages 337 - 340, XP000366358 * |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6535870B1 (en) * | 2000-02-09 | 2003-03-18 | International Business Machines Corporation | Method of estimating an amount of changed data over plurality of intervals of time measurements |
| US7725881B2 (en) | 2006-06-09 | 2010-05-25 | Microsoft Corporation | Automatically extracting coupling metrics from compiled code |
| EP2007070A1 (fr) * | 2007-06-18 | 2008-12-24 | Avaya GmbH & Co. KG | Procédé destiné à la représentation d'informations de processus pour une installation de traitement de données tout comme système de traitement des données |
| RU2643045C2 (ru) * | 2013-02-01 | 2018-01-30 | Кембридж Консалтантс Лимитед | Устройство для выдачи пены |
| EP3929752A4 (fr) * | 2019-03-26 | 2022-12-07 | Siemens Aktiengesellschaft | Procédé, appareil et système d'évaluation de qualité de conception de code |
Also Published As
| Publication number | Publication date |
|---|---|
| AU8235298A (en) | 1999-02-10 |
| GB9715061D0 (en) | 1997-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7516368B2 (en) | Apparatus, method, and computer product for pattern detection | |
| US6625589B1 (en) | Method for adaptive threshold computation for time and frequency based anomalous feature identification in fault log data | |
| CN115729761B (zh) | 一种硬盘故障预测方法、系统、设备及介质 | |
| CN106886481B (zh) | 一种系统健康度静态分析预测方法及装置 | |
| EP2384389B1 (fr) | Procédé et système de surveillance d'une opération de forage | |
| CN118981601B (zh) | 一种基于多源数据融合的隧道变形预测方法 | |
| CN111931334B (zh) | 一种用于评估电缆设备运行可靠性的方法及系统 | |
| US7552035B2 (en) | Method to use a receiver operator characteristics curve for model comparison in machine condition monitoring | |
| CN117421735A (zh) | 基于大数据漏洞挖掘的挖掘评估方法 | |
| Chen | Two-tailed Buckley fuzzy testing for operating performance index | |
| US20080275747A1 (en) | Incident/accident report analysis apparatus and method | |
| CN110008096A (zh) | 数据监测方法、装置、电子设备及计算机可读存储介质 | |
| CN114553756A (zh) | 基于联合生成对抗网络的设备故障检测方法与电子设备 | |
| CN110308713A (zh) | 一种基于k近邻重构的工业过程故障变量识别方法 | |
| WO1999004337A1 (fr) | Outil de mesure de code | |
| CN113242213A (zh) | 一种电力通信骨干网节点脆弱性诊断方法 | |
| EP3840319A1 (fr) | Détecteur d'anomalies, réseau de détection d'anomalies, procédé de détection d'activité anormale, unité de détermination de modèles, système et procédé de détermination d'un modèle de détection d'anomalies | |
| CN113656287B (zh) | 软件实例故障的预测方法、装置、电子设备及存储介质 | |
| US7366639B2 (en) | Methods for establishing alerts and/or alert limits for monitoring mechanical devices | |
| CN119250540B (zh) | 一种面向数字资产的网络安全管理方法与系统 | |
| CN106770861A (zh) | 油浸式变压器在线监控数据可用性的评价方法 | |
| CN118760573B (zh) | 基于性能的系统架构合理性评估方法和系统 | |
| CN118152994B (zh) | 一种安全因素影响计算方法 | |
| CN120336190A (zh) | 一种基于多维度数据的集成测试场景预测方法及系统 | |
| US7016809B1 (en) | Method and system for automatically interpreting computer system performance measurements |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 09125757 Country of ref document: US |
|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP Ref document number: 1999506706 Format of ref document f/p: F |
|
| NENP | Non-entry into the national phase |
Ref country code: CA |
|
| 122 | Ep: pct application non-entry in european phase |