EP1922613A2 - Method and device for automatically evaluating a software source code quality - Google Patents

Method and device for automatically evaluating a software source code quality

Info

Publication number
EP1922613A2
EP1922613A2 EP06792612A EP06792612A EP1922613A2 EP 1922613 A2 EP1922613 A2 EP 1922613A2 EP 06792612 A EP06792612 A EP 06792612A EP 06792612 A EP06792612 A EP 06792612A EP 1922613 A2 EP1922613 A2 EP 1922613A2
Authority
EP
European Patent Office
Prior art keywords
source code
metrics
quality
evaluation rules
rules
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.)
Withdrawn
Application number
EP06792612A
Other languages
German (de)
French (fr)
Inventor
Günther BLASCHEK
Christian Körner
Reinhold PLÖSCH
Gustav Pomberger
Stefan Schiffer
Stephan Storck
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of EP1922613A2 publication Critical patent/EP1922613A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Definitions

  • the invention relates to a method and an apparatus for the automated assessment of the quality of a software source code.
  • Improving the quality of software code is a constant endeavor in the development of software, i. H. Programs for computers. This applies not only to ensuring the functionality of the software, but also, for example, in terms of its maintainability and portability. Sufficiently good quality of software is particularly difficult to achieve when the amount of source code is large - which, however, is required to cover the desired functionality. In addition, there is often a large amount of explicit and implicit informal requirements that are not known to the same extent to the developers involved and are therefore not sufficiently considered in the development. Furthermore, the time pressure is often great to complete the software and deliver.
  • Such a quality model contains, for example, the German industry standard, DIN, ISO 9126, Information technology - Assessment of
  • this standard defines metrics that measure and report the quality of the software.
  • object-oriented metrics are listed below: Depth of Inheritance Tree, DIT, Number of Children, NOC, Coupling between Objects, CBO, Weighted Methods per Class, WMC, Response for Class, RFC, Message Passing Coupling, MPC, Lack of Cohesion in Methods, LCOM, etc. These metrics can be used to measure properties of object-oriented software at the level of classes and methods.
  • Metrics are indicators of software errors and often have limited meaning. They depend on the technical constraints of the computer systems used, such as storage capacities, response times, throughputs, etc., and on implicit requirements of the application domain, e.g. a real-time system. For a reliable assessment of the software quality, it is therefore necessary to additionally assess the quality of the software by experts who manually read at least parts of the source code in a more or less structured manner. In the process, potential sources of error are discussed, documented and suggestions for improvement are made, which then preferably lead to the correction of the errors in the software. However, this approach is increasingly impractical and prone to errors due to rapidly growing volumes of source code, high network interconnectivity of the systems with their respective application environment, short development times, often locally distributed development capabilities, and not least expert shortages.
  • the present invention has for its object to enable an automated assessment of a quality of software in a simple manner.
  • this object is achieved by a method or a device for the automated evaluation of the quality of a software source code having the features of patent claims 1 and 9, respectively.
  • evaluation rules and / or metrics for assessing the quality of the source code are prescribed.
  • the Source code in particular its quality, is checked by means of a set of evaluation rules and / or metrics, the sentence having at least part of the predetermined evaluation rules and / or metrics.
  • the set of validation rules and / or metrics used to validate the source code is examined in response to evaluating the source code's validation for at least one predetermined criterion to form an adjusted set of evaluation rules and / or metrics other than the set is.
  • the source code is then checked by means of the adjusted set of evaluation rules and / or metrics.
  • control means arranged to allow verification of the source code by means of a set of evaluation rules and / or metrics, the sentence covering at least part of the predetermined rating rules and / or metrics.
  • control means is arranged to control an adaptation of the set of evaluation rules and / or metrics used to verify the source code. This is done in response to an evaluation of the performed verification of the source code with respect to at least one predetermined criterion. The result is an adjusted set of evaluation rules and / or metrics that is different from the sentence.
  • the control means makes it possible to check the source code by means of the adapted set of evaluation rules and / or metrics.
  • the control means is in particular designed so that it allows an implementation of the method according to the invention.
  • a multiplicity of different evaluation rules and / or metrics are specified as quality indicators with which the quality of different Software source code rated and error sources and problems in the source code can be detected.
  • the software is guided to the quality goal by predetermining and appropriately adapting the set of evaluation rules and / or metrics and advantageously by limiting values for determining the evaluation rules and / or metrics.
  • a targeted control of the evaluation and in particular also an improvement of the quality of the source code can be made possible.
  • the rating of the quality is reliable, repeatable and can be used advantageously especially for large to very large software systems.
  • the quality of the executable software can be effectively guaranteed. Due to the high level of automation, created versions of the source code can be checked promptly for creation and with limited technical and economic effort. Thus, a fast, targeted decision-making aid is provided for assessing the quality and, in particular, also for pointing out errors and also for possibilities for improvement.
  • Adjusting the set of rating rules and / or metrics used to verify the source code, and the overlay Checking the source code using the adjusted set of evaluation rules and / or metrics is advantageously repeated until a predetermined state for the at least one criterion is reached.
  • the set of evaluation rules and / or metrics is thus adjusted so that the composition of the evaluation rules and / or metrics in the (adjusted) sentence can be optimized successively and iteratively. This is done with regard to the at least one predetermined criterion, the z. B. can be specified by a requirement profile for creating the software.
  • the at least one predefined criterion when evaluating the performed checking of the source code contains a criterion of an achieved degree of automation, a criterion of achieved coverage of the source code when verifying and / or a criterion of achieved coverage of an underlying given quality model when checking.
  • the quality model may be determined based on a particular business model for the software. This means that the quality model z. B. derived from the life and field of use of the software or the product in which the software is used.
  • the set of evaluation rules and / or metrics can be particularly well suited, in particular to existing resources and goals, such. Project goals.
  • Quality model set with several quality characteristics Quality features of such a quality model can be, for example, maintainability, complexity, reliability, usability, efficiency, portability, comprehensibility, productivity, security, analyzability and / or effectiveness of the source code.
  • quality features of the quality model for reviewing used which can be examined by static analysis methods.
  • the individual evaluation rules and / or metrics can advantageously be assigned to certain quality characteristics.
  • an overall quality assessment of the quality of the source code is determined by means of individual quality assessments which are based on checking the source code by means of the individual evaluation rules and / or metrics of the set used for checking.
  • the overall quality assessment and the individual quality assessments can each be represented by key figures.
  • the quality can advantageously be displayed clearly and quickly recorded.
  • the overall quality assessment is added to a quality history in which the overall
  • Quality ratings of various versions of the source code are included. For the different versions, this results in a sequence of comparable quality assessments.
  • This sequence of quality evaluations can advantageously be statistically evaluated in order to identify systematic or sporadic sources of error, for example in the form of a trend analysis. In particular, this can affect specific weaknesses of the code that are made visible by the code and enable direct countermeasures.
  • a dynamic test is carried out during the execution of the software in order to check the effect of a correction of the source code carried out for a detected quality defect and / or to prioritize a performance of a plurality of corrections. This occurs in particular if abnormalities are present in the quality history for which correction options are to be identified by means of detailed analyzes.
  • the dynamic test By means of the dynamic test, the influence of the correction possibility on the code can be analyzed.
  • their implementation can be prioritized. For example, in the case where a policy violation is to ensure that this rule is adhered to in the source code, the dynamic test helps to focus or prioritize the corrections to the most frequently used source code locations.
  • the dynamic test can capture the actual impact of each violation on the software. This detection can be done mainly with regard to the size of the loaded source code in the main memory (footprint) and / or the reactivity of the software (time for the software to respond to an input).
  • Figure 1 is a schematic representation of an embodiment of a method according to the invention for the automated evaluation of the quality of a software source code
  • Figure 2 is a schematic representation of an embodiment of a device according to the invention for the automated evaluation of the quality of a software source code.
  • Fig. 1 shows schematically an embodiment of the method according to the invention for the automated evaluation of the quality of a software source code.
  • Starting points for carrying out the method are the source code to be evaluated and to be improved, which is represented in FIG. 1 by the method component with the reference numeral 1.
  • a process component 2 represents a set of evaluation rules and metrics that can be used to verify the source code.
  • the valuation rules are documented, ie the valuation rules store attributes that enable or support selection of valuation rules and metrics.
  • the process component 2 further represents a predetermined quality goal indicating a desired quality that the software should have.
  • the quality objective is based on a given quality model, to which a multitude of quality characteristics is assigned.
  • the quality characteristics can be checked and evaluated by means of the evaluation rules and metrics. be judged. This also means that errors or sources of problems in the source code that do not meet the quality characteristics in the source code can be detected by means of the evaluation rules and metrics.
  • One of the quality features for example, the maintainability of the
  • the maintainability corresponds to an extent in which the software, i. H. the source code, can be changed. These changes include fixes as well as enhancements and adjustments to changes in the environment, requirements, and / or functional specification.
  • the maintainability can by other criteria, such. Simplicity or readability, will be further described.
  • the simplicity can be described, for example, by a metric CBOR, "high coupling through type use”.
  • This metric CBOR examines the coupling of a class with other classes.
  • a class coupled with many other classes is inherently complex, i. H. hard to understand because at least some of the classes used must be understood in order to understand the class itself. Therefore, this CBOR per class metric counts the number of different types for attributes, local variables, and return values.
  • the process components 1 and 2 thus represent predetermined conditions for carrying out the method according to the invention.
  • the source code is checked in a method step 3 by means of an automatic source code checking and metric tool by means of a set of the predetermined evaluation rules and metrics.
  • the part of predetermined evaluation rules and metrics used for checking is selected beforehand, for example, by a developer of the software or an expert according to specific, in particular project-specific criteria, so that only a part of the predetermined evaluation rules and metrics is used.
  • individual quality assessments are set, which are based on checking the source code by means of the individual evaluation rules and / or metrics of the set used for checking.
  • the individual quality assessments are advantageously each represented by key figures.
  • a review and evaluation of the results of the verification method step 3 is performed. In particular, it checks which evaluation rules and / or metrics are necessary and valid depending on the programming language, the application domain and the quality objective. This check can be automated. Alternatively or additionally, checking by an expert is also advantageous.
  • a decision is made on the basis of method step 4 as to whether at least one predefined criterion is satisfied when evaluating the checking of the source code that has been carried out. In particular, such can be an achieved degree of automation and / or achieved coverage of the source code during checking. If the at least one criterion is not fulfilled, then the method according to the invention branches to a method step 6. In this method step 6, the set of evaluation rules and / or metrics is adapted.
  • the method according to the invention then branches again to method step 3, in which the source code is checked by means of the adapted set of evaluation rules and metrics and of the automatic source code checking and metric tool.
  • the loop given by method steps 3, 4, 5, 6 and 8 is run through until it is determined in method step 5 that the at least one predefined criterion is fulfilled.
  • the method branches from method step 5 to method step 9, in which the results of the check carried out in method step 3 are summarized on the basis of the underlying quality model.
  • a method step 10 new evaluation rules and metrics in the quality model can be added.
  • the rating of the rating rules and metrics can be adjusted according to the quality objective.
  • the summarization of the results in method step 9 takes place in such a way that an overall quality assessment of the quality of the source code is determined by suitably combining the individual quality evaluations generated in method step 3 for the individual evaluation rules and / or metrics.
  • a mapping function can be defined, with which the individual quality evaluations for the individual evaluation rules and / or metrics are linked to one another in a weighted manner.
  • the overall quality rating is also represented by a measure for the sake of simplicity.
  • the summary of the assessment for the overall quality assessment carried out in method step 9 can be checked by the expert, in particular on the basis of a plausibility check.
  • a final evaluation of this current version of the software is then available.
  • the automatically generated individual evaluations of the quality of the software are advantageously additionally secured by the expert examination, which ensures a high reliability of the evaluation.
  • the final score is added to a quality history in a step 13.
  • This quality history contains overall quality ratings of various versions of the source code.
  • the development of the software, and in particular the structure of its functionality, is done by version. This means that the different versions build on each other and usually a new version improves the functionality, performance and quality of a previous version. Since the summarized assessments of the different versions of the software are included in the quality history, it is possible to compare this sequence of quality scores. This takes place in method step 13.
  • evaluation rules or metrics added in the course of checking newer versions are applied to quality evaluations of older predecessor versions contained in the quality history. As a result, these predecessor versions are also examined by means of these new rules or metrics, so that further individual quality evaluations are created, which can additionally be used to assess certain trends in the development of the software.
  • correction options are identified in a procedural step 14 in case of abnormalities in the quality history. This is done by analyzing details of the software. For this purpose, additional dynamic tests can be performed during the operation of the software in order to determine the flow of certain corrections to the quality of the software. In the dynamic tests, the software is parameterized and the test system is created in order to be able to determine the concrete evaluation code for the corrected software. In method step 14, it is likewise possible to prioritize the execution of several correction options. When applying rules that take into account conflicting constraints, it is preferable to choose a procedure that ensures that changes made will converge towards the overall quality objective.
  • Controlling the quality of the software by identifying and testing the correction possibilities can be supported by means of an existing solution library. This is illustrated in FIG. 1 by method step 15.
  • identified correction options are then incorporated into the source code in order to improve and expand the software. In the case of a prioritization of the correction options, these are incorporated according to their priority.
  • method step 17 an improved new software version is then available. This is then forwarded to the automatic source code verification and metric tool previously described in step 3. The test of the new software version then takes place in the manner described above.
  • the device according to the invention here is a computer 20.
  • the computer 20 has a screen 21 and an input means, which here is a keyboard 22.
  • the computer 20 further includes a control device 23, which controls the operations of the computer 20 and in particular the execution of the inventive method.
  • the controller 23 includes a processor and a memory in which a suitable program, i. H. a software is stored that can be executed by the processor to perform the inventive method.
  • the control device 23 contains a software memory 24, in which the source code of the software is stored, whose quality is to be evaluated. The controller 23 thus accesses the memory 24 during the evaluation and checking of the source code.

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

The invention relates to a method and device (1) for automatically evaluating a software source code (10) quality, wherein evaluation rules and/or metrics for evaluating the software source code (1) are pre-set (2). The source code (1) is inspected (3) with the aid of a set of evaluation rules and/or metrics, wherein said set contains at least one part of pre-set evaluation rules and/or metrics. In addition, the set of evaluation rules and/or metrics used for inspecting the source code (1) is adapted (6) according to the evaluation (4, 5) of an performed inspection of the source code (1) with respect to at least one predefined criterion for forming (8) an adapted set of evaluation rules and/or metrics different from the first set. In addition, the source code (1) is inspected (3) by means of the adapted set of evaluation rules and/or metrics. Said invention makes it possible to evaluate advantageously and automatically a large number of source codes with respect to the quality and the improvement thereof and to adapt the set of evaluation rules and/or metrics and, thereby the quality inspection to specific requirements, for example, related to projects. The invention makes it possible to carry out a modern control of the internal software quality taking into consideration a business model and requirements related to the internal software quality or the quality of use. Modifications and extensions necessary for a software development process can be taken into consideration in a particularly flexible manner.

Description

Beschreibungdescription
Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-QuellcodesMethod and apparatus for automatically evaluating the quality of a software source code
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum automatisierten Bewerten der Qualität eines Software- Quellcodes .The invention relates to a method and an apparatus for the automated assessment of the quality of a software source code.
Die Verbesserung der Qualität von Softwarecode ist ein ständiges Bestreben bei der Entwicklung von Software, d. h. Programmen für Computer. Dies gilt nicht nur in Bezug auf das Sicherstellen der Funktionalität der Software, sondern beispielsweise auch in Bezug auf deren Wartbarkeit und Portabi- lität. Eine ausreichend gute Qualität von Software ist insbesondere dann schwierig zu erreichen, wenn die Menge des Quellcodes groß ist - was jedoch erforderlich ist, um die gewünschte Funktionalität abzudecken. Darüber hinaus ist häufig eine große Menge an expliziten und impliziten infor- mellen Anforderungen vorhanden, die den beteiligten Entwicklern nicht in gleichem Maße bekannt sind und daher bei der Entwicklung nicht ausreichend berücksichtigt werden. Weiterhin ist häufig der Zeitdruck groß, um die Software fertig zu stellen und auszuliefern.Improving the quality of software code is a constant endeavor in the development of software, i. H. Programs for computers. This applies not only to ensuring the functionality of the software, but also, for example, in terms of its maintainability and portability. Sufficiently good quality of software is particularly difficult to achieve when the amount of source code is large - which, however, is required to cover the desired functionality. In addition, there is often a large amount of explicit and implicit informal requirements that are not known to the same extent to the developers involved and are therefore not sufficiently considered in the development. Furthermore, the time pressure is often great to complete the software and deliver.
Zum Beurteilen der Qualität der Software wurden bereits Qualitätsmodelle entwickelt, mit denen sich die Qualität nach vorgegebenen Kriterien beurteilen lässt. Ein solches Qualitätsmodell enthält beispielsweise die Deutsche Industrie Norm, DIN, ISO 9126, Informationstechnik - Beurteilen vonTo assess the quality of the software, quality models have already been developed, with which the quality can be judged according to given criteria. Such a quality model contains, for example, the German industry standard, DIN, ISO 9126, Information technology - Assessment of
Softwareprodukten, Qualitätsmerkmalen und Leitfaden zu deren Verwendung, 1991. In dieser Norm werden neben den Qualitätsmerkmalen auch Metriken definiert, mit denen die Qualität der Software gemessen und angegeben werden soll. Über diese Norm hinaus sind im Folgenden Beispiele für objektorientierte Metriken aufgeführt: Depth of Inheritance Tree, DIT, Number of Children, NOC, Coupling between Objects, CBO, Weighted Methods per Class, WMC, Response for Class, RFC, Message Passing Coupling, MPC, Lack of Cohesion in Methods, LCOM, etc. Mit diesen Metriken lassen sich insbesondere Eigenschaften von objekt-orientierter Software auf der Ebene von Klassen und Methoden messen.Software Products, Quality Characteristics and Guidance on their Use, 1991. In addition to quality characteristics, this standard defines metrics that measure and report the quality of the software. Beyond this standard, examples of object-oriented metrics are listed below: Depth of Inheritance Tree, DIT, Number of Children, NOC, Coupling between Objects, CBO, Weighted Methods per Class, WMC, Response for Class, RFC, Message Passing Coupling, MPC, Lack of Cohesion in Methods, LCOM, etc. These metrics can be used to measure properties of object-oriented software at the level of classes and methods.
Metriken sind Indikatoren für in der Software enthaltene Fehler und häufig nur beschränkt aussagekräftig. Sie sind abhängig von den technischen Randbedingungen der verwendeten Computersysteme, wie Speicherkapazitäten, Reaktionszeiten, Durchsätzen, etc und von impliziten Erfordernissen der Anwendungsdomäne, z.B. einem Echtzeitsystem. Für eine zuverlässige Beurteilung der Softwarequalität ist es daher notwendig, die Qualität der Software zusätzlich von Experten beurteilen zu lassen, die zumindest Teile des Quellcodes mehr oder weniger strukturiert manuell durchlesen. Dabei werden potentielle Fehlerquellen erörtert, dokumentiert und Verbesserungsmöglichkeiten vorgeschlagen, die dann vorzugsweise zur Korrektur der Fehler in der Software führen. Die- ses Vorgehen ist allerdings aufgrund von schnell wachsenden Mengen an Quellcode, hoher Vernetzung der Systeme mit ihrem jeweiligen Anwendungsumfeld, kurzen Entwicklungszeiten, häufig örtlich verteilten Entwicklungskapazitäten und nicht zuletzt Expertenmangel zunehmend unpraktikabel und fehleran- fällig.Metrics are indicators of software errors and often have limited meaning. They depend on the technical constraints of the computer systems used, such as storage capacities, response times, throughputs, etc., and on implicit requirements of the application domain, e.g. a real-time system. For a reliable assessment of the software quality, it is therefore necessary to additionally assess the quality of the software by experts who manually read at least parts of the source code in a more or less structured manner. In the process, potential sources of error are discussed, documented and suggestions for improvement are made, which then preferably lead to the correction of the errors in the software. However, this approach is increasingly impractical and prone to errors due to rapidly growing volumes of source code, high network interconnectivity of the systems with their respective application environment, short development times, often locally distributed development capabilities, and not least expert shortages.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein automatisiertes Bewerten einer Qualität einer Software auf einfache Weise zu ermöglichen.The present invention has for its object to enable an automated assessment of a quality of software in a simple manner.
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren oder eine Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes mit den Merkmalen des Patentanspruches 1 bzw. 9 gelöst.According to the invention, this object is achieved by a method or a device for the automated evaluation of the quality of a software source code having the features of patent claims 1 and 9, respectively.
Verfahrensseitig sind Bewertungsregeln und/oder Metriken zum Beurteilen der Qualität des Quellcodes vorgegeben. Der Quellcode, insbesondere dessen Qualität, wird mittels eines Satzes von Bewertungsregeln und/oder Metriken überprüft, wobei der Satz wenigstens einen Teil der vorgegebenen Bewertungsregeln und/oder Metriken aufweist. Anschließend wird der zum Überprüfen des Quellcodes eingesetzte Satz von Bewertungsregeln und/oder Metriken in Abhängigkeit von einem Bewerten des durchgeführten Überprüfens des Quellcodes hinsichtlich wenigstens eines vorgegebenen Kriteriums überprüft, um einen angepassten Satz von Bewertungsregeln und/oder Metriken zu bilden, der von dem Satz verschieden ist. Des Weiteren wird dann der Quellcode mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken überprüft .In terms of the method, evaluation rules and / or metrics for assessing the quality of the source code are prescribed. Of the Source code, in particular its quality, is checked by means of a set of evaluation rules and / or metrics, the sentence having at least part of the predetermined evaluation rules and / or metrics. Subsequently, the set of validation rules and / or metrics used to validate the source code is examined in response to evaluating the source code's validation for at least one predetermined criterion to form an adjusted set of evaluation rules and / or metrics other than the set is. Furthermore, the source code is then checked by means of the adjusted set of evaluation rules and / or metrics.
Vorrichtungsseitig sind Bewertungsregeln und/oder Metriken zum Beurteilen der Qualität des Quellcodes vorgegeben und es ist ein Steuermittel vorhanden, das so ausgestaltet ist, dass es ein Überprüfen des Quellcodes mittels eines Satzes von Bewertungsregeln und/oder Metriken ermöglicht, wobei der Satz wenigstens einen Teil der vorgegebenen Bewertungsregeln und/oder Metriken aufweist. Des Weiteren ist das Steuermittel so ausgestaltet, dass es ein Anpassen des zum Überprüfen des Quellcodes eingesetzten Satzes von Bewertungsregeln und/oder Metriken steuert. Dies erfolgt in Abhängigkeit von einem Bewerten des durchgeführten Überprüfens des Quellcodes hinsichtlich wenigstens eines vorgegebenen Kriteriums. Das Ergebnis ist ein angepasster Satz von Bewertungsregeln und/oder Metriken, der von dem Satz verschieden ist. Zusätzlich ermöglicht das Steuermittel ein Überprüfen des Quellco- des mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken. Das Steuermittel ist dabei insbesondere so ausgestaltet, dass es ein Ausführen des erfindungsgemäßen Verfahrens ermöglicht.On the device side, assessment rules and / or metrics are provided for judging the quality of the source code, and there is a control means arranged to allow verification of the source code by means of a set of evaluation rules and / or metrics, the sentence covering at least part of the predetermined rating rules and / or metrics. Furthermore, the control means is arranged to control an adaptation of the set of evaluation rules and / or metrics used to verify the source code. This is done in response to an evaluation of the performed verification of the source code with respect to at least one predetermined criterion. The result is an adjusted set of evaluation rules and / or metrics that is different from the sentence. In addition, the control means makes it possible to check the source code by means of the adapted set of evaluation rules and / or metrics. The control means is in particular designed so that it allows an implementation of the method according to the invention.
Erfindungsgemäß ist eine Vielzahl von unterschiedlichen Bewertungsregeln und/oder Metriken als Qualitätsindikatoren vorgegeben, mit denen die Qualität von unterschiedlichen Software-Quellcodes bewertet und Fehlerquellen und Probleme im Quellcode detektiert werden können. Durch das Bilden des Satzes von Bewertungsregeln und/oder Metriken ist es möglich, das Überprüfen der Qualität individuell auf den Zweck und die gewünschte Funktionalität der Software abzustimmen. Es kann somit ein projektspezifischer Regel- und Metrikensatz erstellt werden. In die Bewertungsregeln lassen sich insbesondere auch Korrektheitsbeweise einbinden, sofern solche für spezielle Algorithmen existieren.According to the invention, a multiplicity of different evaluation rules and / or metrics are specified as quality indicators with which the quality of different Software source code rated and error sources and problems in the source code can be detected. By forming the set of evaluation rules and / or metrics, it is possible to tailor quality checking individually to the purpose and desired functionality of the software. Thus, a project-specific rule and metric set can be created. In particular, correctness proofs can be included in the evaluation rules, provided that they exist for special algorithms.
Erfindungsgemäß erfolgt somit ein Hinleiten des Entwickeins der Software auf das Qualitätsziel durch ein Vorgeben und geeignetes Anpassen des Satzes von Bewertungsregeln und/oder Metriken und vorteilhafterweise von Grenzwerten für das Bestimmen der Bewertungsregeln und/oder Metriken.Thus, according to the invention, the software is guided to the quality goal by predetermining and appropriately adapting the set of evaluation rules and / or metrics and advantageously by limiting values for determining the evaluation rules and / or metrics.
Gemäß der vorliegenden Erfindung kann vorteilhafterweise eine zielgerichtete Steuerung der Bewertung und insbesondere auch einer Verbesserung der Qualität des Quellcodes ermög- licht werden. Das Bewerten der Qualität erfolgt zuverlässig, wiederholbar und kann vor allem bei großen bis sehr großen Softwaresystemen vorteilhaft eingesetzt werden. Eine Sicherung und Steuerung der internen Qualität der Software, d. h. der Qualität während des Erstellens des Quellcodes, der An- forderungen und der Kommentare, und indirekt auch der externen Qualität, d. h. der Qualität der lauffähigen Software, kann auf effektive Weise gewährleistet werden. Aufgrund des hohen Automatisierungsgrades können erstellte Versionen des Quellcodes zeitnah zur Erstellung und mit begrenztem techni- schem und wirtschaftlichem Aufwand überprüft werden. Es wird somit eine schnelle, zielgerichtete Entscheidungshilfe zum Beurteilen der Qualität und insbesondere auch zum Aufzeigen von Fehlern und auch von Verbesserungsmöglichkeiten zur Verfügung gestellt.Advantageously, according to the present invention, a targeted control of the evaluation and in particular also an improvement of the quality of the source code can be made possible. The rating of the quality is reliable, repeatable and can be used advantageously especially for large to very large software systems. A backup and control of the internal quality of the software, d. H. the quality during the creation of the source code, the requirements and the comments, and indirectly also the external quality, d. H. The quality of the executable software can be effectively guaranteed. Due to the high level of automation, created versions of the source code can be checked promptly for creation and with limited technical and economic effort. Thus, a fast, targeted decision-making aid is provided for assessing the quality and, in particular, also for pointing out errors and also for possibilities for improvement.
Das Anpassen des zum Überprüfen des Quellcodes eingesetzten Satzes von Bewertungsregeln und/oder Metriken und das Über- prüfen des Quellcodes mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken wird vorteilhafterweise wiederholt, bis ein vorgegebener Zustand für das wenigstens eine Kriterium erreicht ist. Der Satz von Bewertungsregeln und/oder Metriken wird somit angepasst, so dass sukzessive und iterativ die Zusammenstellung der Bewertungsregeln und/oder Metriken in dem (angepassten) Satz optimiert werden kann. Dies erfolgt im Hinblick auf das wenigstens eine vorgegebene Kriterium, das z. B. von einem Anforderungsprofil für das Erstellen der Software vorgegeben sein kann.Adjusting the set of rating rules and / or metrics used to verify the source code, and the overlay Checking the source code using the adjusted set of evaluation rules and / or metrics is advantageously repeated until a predetermined state for the at least one criterion is reached. The set of evaluation rules and / or metrics is thus adjusted so that the composition of the evaluation rules and / or metrics in the (adjusted) sentence can be optimized successively and iteratively. This is done with regard to the at least one predetermined criterion, the z. B. can be specified by a requirement profile for creating the software.
In einer weiteren, besonders bevorzugten Ausgestaltung der Erfindung enthält das wenigstens eine vorgegebene Kriterium beim Bewerten des durchgeführten Überprüfens des Quellcodes ein Kriterium eines erreichten Automatisierungsgrades, ein Kriterium einer erreichten Abdeckung des Quellcodes beim Ü- berprüfen und/oder ein Kriterium einer erreichten Abdeckung eines zugrunde liegenden vorgegebenen Qualitätsmodells beim Überprüfen. Das Qualitätsmodell kann insbesondere auf der Grundlage eines bestimmten Geschäftsmodells für die Software festgelegt sein. Dies bedeutet, dass das Qualitätsmodell z. B. aus der Lebensdauer und dem Einsatzfeld der Software oder des Produktes, in dem die Software eingesetzt ist, abgeleitet ist. Durch diese Kriterien kann der Satz von Bewertungs- regeln und/oder Metriken besonders gut, insbesondere an bestehende Ressourcen und Ziele, wie z. B. Projektziele, ange- passt werden.In a further, particularly preferred embodiment of the invention, the at least one predefined criterion when evaluating the performed checking of the source code contains a criterion of an achieved degree of automation, a criterion of achieved coverage of the source code when verifying and / or a criterion of achieved coverage of an underlying given quality model when checking. In particular, the quality model may be determined based on a particular business model for the software. This means that the quality model z. B. derived from the life and field of use of the software or the product in which the software is used. Through these criteria, the set of evaluation rules and / or metrics can be particularly well suited, in particular to existing resources and goals, such. Project goals.
Besonders bevorzugt wird der Satz von Bewertungsregeln und/oder Metriken in Abhängigkeit von einem vorgegebenenParticularly preferred is the set of evaluation rules and / or metrics depending on a given
Qualitätsmodell mit mehreren Qualitätsmerkmalen festgelegt. Qualitätsmerkmale eines solchen Qualitätsmodells können beispielsweise Wartbarkeit, Komplexität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Übertragbarkeit, Verständlichkeit, Produktivität, Sicherheit, Analysierbarkeit und/oder Effektivität des Quellcodes sein. Vorteilhafterweise werden solche Qualitätsmerkmale des Qualitätsmodells für das Überprü- fen verwendet, die durch statische Analysemethoden untersucht werden können. Die einzelnen Bewertungsregeln und/oder Metriken können dabei vorteilhafterweise bestimmten Qualitätsmerkmalen zugeordnet sein.Quality model set with several quality characteristics. Quality features of such a quality model can be, for example, maintainability, complexity, reliability, usability, efficiency, portability, comprehensibility, productivity, security, analyzability and / or effectiveness of the source code. Advantageously, such quality features of the quality model for reviewing used, which can be examined by static analysis methods. The individual evaluation rules and / or metrics can advantageously be assigned to certain quality characteristics.
Gemäß einer bevorzugten Weiterbildung der Erfindung wird eine Gesamt-Qualitätsbewertung der Qualität des Quellcodes mittels einzelner Qualitätsbewertungen festgelegt, die auf dem Überprüfen des Quellcodes mittels der einzelnen Bewer- tungsregeln und/oder Metriken des zum Überprüfen verwendeten Satzes basieren. Die Gesamt-Qualitätsbewertung und die einzelnen Qualitätsbewertungen können jeweils durch Kennzahlen repräsentiert sein. Dadurch kann die Qualität vorteilhafterweise übersichtlich dargestellt und schnell erfasst werden. Des Weiteren ist es auf einfache Weise möglich, die jeweilige Qualitätsbewertung zur Problemanalyse einzusetzen und zum Verbessern der Qualität der Software zu verwenden.According to a preferred development of the invention, an overall quality assessment of the quality of the source code is determined by means of individual quality assessments which are based on checking the source code by means of the individual evaluation rules and / or metrics of the set used for checking. The overall quality assessment and the individual quality assessments can each be represented by key figures. As a result, the quality can advantageously be displayed clearly and quickly recorded. Furthermore, it is easily possible to use the respective quality assessment for problem analysis and to use it to improve the quality of the software.
Besonders bevorzugt wird die Gesamt-Qualitätsbewertung einer Qualitätshistorie hinzugefügt, in der die Gesamt-Most preferably, the overall quality assessment is added to a quality history in which the overall
Qualitätsbewertungen verschiedener Versionen des Quellcodes enthalten sind. Für die verschiedenen Versionen entsteht somit eine Folge von miteinander vergleichbaren Qualitätsbewertungen. Diese Folge von Qualitätsbewertungen kann vor- teilhafterweise statistisch ausgewertet werden, um beispielsweise in Form einer Trendanalyse systematische oder sporadische Fehlerquellen zu identifizieren. Dies kann insbesondere für das Projekt spezifische Schwächen des Codes betreffen, die dadurch sichtbar gemacht werden und ein di- rektes Gegensteuern ermöglichen.Quality ratings of various versions of the source code are included. For the different versions, this results in a sequence of comparable quality assessments. This sequence of quality evaluations can advantageously be statistically evaluated in order to identify systematic or sporadic sources of error, for example in the form of a trend analysis. In particular, this can affect specific weaknesses of the code that are made visible by the code and enable direct countermeasures.
In einer weiteren, besonders bevorzugten Ausgestaltung der Erfindung wird bei einer Anpassung des Satzes von Bewertungsregeln und/oder Metriken, insbesondere in demjenigen Fall, in dem neue Bewertungsregeln und/oder Metriken demIn a further, particularly preferred embodiment of the invention, in an adaptation of the set of evaluation rules and / or metrics, in particular in the case in which new valuation rules and / or metrics the
Satz hinzugefügt wurden, eine in der Qualitätshistorie enthaltene Gesamt-Qualitätsbewertung für eine andere Quellcode- version in Abhängigkeit von der Anpassung der Bewertungsregeln und/oder Metriken verändert. Dies trägt vorteilhafterweise dazu bei, diesbezügliche negative Trends schon beim Erstellen des Quellcodes frühzeitig erkennen und abstellen zu können. Das Anpassen der Gesamt-Qualitätsbewertungen muss nicht notwendigerweise für alle Versionen der Software erfolgen. Vielmehr reicht es je nach Anwendung aus, ausgewählte Versionen einer Gesamtbeurteilung zu unterziehen.Added a quality-of-quality score for another source code contained in the quality history. version depending on how the rating rules and / or metrics are adjusted. This advantageously contributes to be able to recognize and put an end to negative trends in this regard as early as when the source code is created. Adjusting the overall quality ratings does not necessarily have to be done for all versions of the software. Rather, depending on the application, it is sufficient to subject selected versions to an overall assessment.
Gemäß einer weiteren, bevorzugten Weiterbildung der Erfindung wird ein dynamischer Test während des Ausführens der Software durchgeführt, um eine Auswirkung einer auf einen detektierten Qualitätsmangel hin vorgenommenen Korrektur des Quellcodes zu überprüfen und/oder eine Durchführung von meh- reren Korrekturen zu priorisieren. Dies erfolgt insbesondere sofern Auffälligkeiten in der Qualitätshistorie vorhanden sind, für die mittels Detailanalysen Korrekturmöglichkeiten identifiziert werden sollen. Mittels des dynamischen Tests kann der Einfluss der Korrekturmöglichkeit auf den Code ana- lysiert werden. Darüber hinaus kann bei mehreren vorhandenen Korrekturmöglichkeiten deren Durchführung priorisiert werden. Beispielsweise hilft der dynamische Test in dem Fall, in dem bei einer Regelverletzung sichergestellt werden soll, dass diese Regel im Quellcode eingehalten wird, die Korrek- turen auf die am häufigsten verwendeten Stellen des Quellcodes zu fokussieren oder zu priorisieren. Des Weiteren kann beispielsweise bei einer Verletzung einer Längenmetrik, wie z. B. der Längenmetrik "Anzahl der Anweisungen eines Moduls", der Verletzung einer Komplexitätsmetrik, wie z. B. der Komplexitätsmetrik "Anzahl unabhängiger Pfade", oder der Verletzung einer anderen kontextabhängigen Metrik der dynamische Test die konkreten Auswirkungen der jeweiligen Verletzung auf die Software erfassen. Dieses Erfassen kann vor allem hinsichtlich der Größe des geladenen Quellcodes im Hauptspeicher (Footprint) und/oder der Reaktivität der Software (Zeit für die Reaktion der Software auf eine Eingabe) erfolgen. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind der Beschreibung unter Bezugnahme auf die Zeichnung entnehmbar .In accordance with a further preferred development of the invention, a dynamic test is carried out during the execution of the software in order to check the effect of a correction of the source code carried out for a detected quality defect and / or to prioritize a performance of a plurality of corrections. This occurs in particular if abnormalities are present in the quality history for which correction options are to be identified by means of detailed analyzes. By means of the dynamic test, the influence of the correction possibility on the code can be analyzed. In addition, with several existing correction options, their implementation can be prioritized. For example, in the case where a policy violation is to ensure that this rule is adhered to in the source code, the dynamic test helps to focus or prioritize the corrections to the most frequently used source code locations. Furthermore, for example, in case of violation of a length metric, such. As the length metric "number of statements of a module", the violation of a complexity metric, such. For example, the complexity metric "Number of independent paths," or the violation of another context-sensitive metric, the dynamic test can capture the actual impact of each violation on the software. This detection can be done mainly with regard to the size of the loaded source code in the main memory (footprint) and / or the reactivity of the software (time for the software to respond to an input). Advantageous embodiments and further developments of the invention are the description with reference to the drawing removable.
Die Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnung angegebenen Ausführungsbeispiele näher erläutert. Es zeigen dabei:The invention will be explained in more detail with reference to the exemplary embodiments indicated in the schematic figures of the drawing. It shows:
Figur 1 eine schematische Darstellung eines Ausführungsbeispieles eines erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software- Quellcodes undFigure 1 is a schematic representation of an embodiment of a method according to the invention for the automated evaluation of the quality of a software source code and
Figur 2 eine schematische Darstellung eines Ausführungsbeispieles einer erfindungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software- Quellcodes .Figure 2 is a schematic representation of an embodiment of a device according to the invention for the automated evaluation of the quality of a software source code.
Fig. 1 zeigt schematisch ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software-Quellcodes . Ausgangspunkte für die Durchführung des Verfahrens sind der zu bewertende und zu verbessernde Quellcode, der in der Fig. 1 durch die Verfah- renskomponente mit dem Bezugszeichen 1 repräsentiert ist. Eine Verfahrenskomponente 2 repräsentiert einen Bestand an Bewertungsregeln und Metriken, die für ein Überprüfen des Quellcodes eingesetzt werden können. Die Bewertungsregeln sind dokumentiert, d. h. mit den Bewertungsregeln sind Att- ribute gespeichert, die eine Auswahl der Bewertungsregeln und Metriken ermöglichen oder unterstützen. Die Verfahrenskomponente 2 repräsentiert des Weiteren ein vorgegebenes Qualitätsziel, das eine gewünschte Qualität angibt, die die Software haben soll. Das Qualitätsziel basiert auf einem vorgegebenen Qualitätsmodell, dem eine Vielzahl von Qualitätsmerkmalen zugeordnet ist. Die Qualitätsmerkmale können mittels der Bewertungsregeln und Metriken überprüft und be- urteilt werden. Dies bedeutet auch, dass Fehler oder Problemquellen im Quellcode, bei denen die Qualitätsmerkmale im Quellcode nicht eingehalten werden, mittels der Bewertungsregeln und Metriken aufgedeckt werden können. Eines der Qua- litätsmerkmale kann beispielsweise die Wartbarkeit desFig. 1 shows schematically an embodiment of the method according to the invention for the automated evaluation of the quality of a software source code. Starting points for carrying out the method are the source code to be evaluated and to be improved, which is represented in FIG. 1 by the method component with the reference numeral 1. A process component 2 represents a set of evaluation rules and metrics that can be used to verify the source code. The valuation rules are documented, ie the valuation rules store attributes that enable or support selection of valuation rules and metrics. The process component 2 further represents a predetermined quality goal indicating a desired quality that the software should have. The quality objective is based on a given quality model, to which a multitude of quality characteristics is assigned. The quality characteristics can be checked and evaluated by means of the evaluation rules and metrics. be judged. This also means that errors or sources of problems in the source code that do not meet the quality characteristics in the source code can be detected by means of the evaluation rules and metrics. One of the quality features, for example, the maintainability of the
Quellcodes sein. Die Wartbarkeit entspricht einem Ausmaß, in dem die Software, d. h. der Quellcode, geändert werden kann. Zu diesen Änderungen zählen Korrekturen sowie Verbesserungen und Anpassungen an Änderungen der Umgebung, der Anforderun- gen und/oder der funktionalen Spezifikation. Die Wartbarkeit kann durch weitere Kriterien, wie z. B. Einfachheit oder Lesbarkeit, weiter beschrieben werden. Die Einfachheit kann beispielsweise durch eine Metrik CBOR, "Hohe Kopplung durch Typ-Verwendung", beschrieben werden. Diese Metrik CBOR un- tersucht die Kopplung einer Klasse mit anderen Klassen. Eine Klasse, die mit vielen anderen Klassen gekoppelt ist, ist inhärent komplex, d. h. schwer zu verstehen, da zumindest ansatzweise auch alle verwendeten Klassen verstanden werden müssen, um die Klasse selbst verstehen zu können. Daher zählt diese Metrik CBOR pro Klasse die Anzahl unterschiedlicher Typen für Attribute, lokale Variablen und Rückgabewerte. Die Verfahrenskomponenten 1 und 2 repräsentieren somit vorgegebene Bedingungen zum Durchführen des erfindungsgemäßen Verfahrens .Be source code. The maintainability corresponds to an extent in which the software, i. H. the source code, can be changed. These changes include fixes as well as enhancements and adjustments to changes in the environment, requirements, and / or functional specification. The maintainability can by other criteria, such. Simplicity or readability, will be further described. The simplicity can be described, for example, by a metric CBOR, "high coupling through type use". This metric CBOR examines the coupling of a class with other classes. A class coupled with many other classes is inherently complex, i. H. hard to understand because at least some of the classes used must be understood in order to understand the class itself. Therefore, this CBOR per class metric counts the number of different types for attributes, local variables, and return values. The process components 1 and 2 thus represent predetermined conditions for carrying out the method according to the invention.
Auf der Grundlage der vorgegebenen Bedingungen Quellcode, Qualitätsmodell, Bewertungsregeln und Metriken wird in einem Verfahrensschritt 3 mittels eines automatischen Quellcode- Überprüfungs- und Metrikwerkzeuges der Quellcode mittels ei- nes Satzes der vorgegebenen Bewertungsregeln und Metriken überprüft. Der zum Überprüfen verwendete Teil von vorgegebenen Bewertungsregeln und Metriken wird zuvor beispielsweise von einem Entwickler der Software oder einem Experten nach bestimmten, insbesondere projektspezifischen Kriterien aus- gewählt, so dass nur ein Teil der vorgegebenen Bewertungsregeln und Metriken eingesetzt wird. Es ist allerdings auch möglich, alle vorgegebenen Bewertungsregeln und Metriken zum Überprüfen einzusetzen. Im Verfahrensschritt 3 werden einzelne Qualitätsbewertungen festgelegt, die auf dem Überprüfen des Quellcodes mittels der einzelnen Bewertungsregeln und/oder Metriken des zum Überprüfen verwendeten Satzes ba- sieren. Die einzelnen Qualitätsbewertungen sind vorteil- hafterweise jeweils durch Kennzahlen repräsentiert. In einem Verfahrensschritt 4 wird ein Überprüfen und Bewerten der Ergebnisse des Überprüfungs-Verfahrensschrittes 3 vorgenommen. Dabei wird insbesondere geprüft, welche Bewertungsregeln und/oder Metriken abhängig von der Programmiersprache, der Anwendungsdomäne und dem Qualitätsziel notwendig und gültig sind. Dieses Überprüfen kann automatisiert erfolgen. Alternativ oder zusätzlich ist auch ein Überprüfen durch einen Experten vorteilhaft. In einem Verfahrensschritt 5 wird auf der Grundlage des Verfahrensschrittes 4 entschieden, ob wenigstens ein vorgegebenes Kriterium beim Bewerten des durchgeführten Überprüfens des Quellcodes erfüllt ist. Ein solches kann insbesondere ein erreichter Automatisierungsgrad und/oder eine erreichte Abdeckung des Quellcodes beim Über- prüfen sein. Ist das wenigstens eine Kriterium nicht erfüllt, so verzweigt das erfindungsgemäße Verfahren zu einem Verfahrensschritt 6. In diesem Verfahrensschritt 6 wird der Satz von Bewertungsregeln und/oder Metriken angepasst. Dies erfolgt abhängig von der im Verfahrensschritt 4 vorgenomme- nen Überprüfung des Satzes von Bewertungsregeln und Metriken und der im Verfahrensschritt 5 vorgenommenen Überprüfung des Erfülltseins des vorgegebenen Kriteriums. Das Anpassen des Satzes erfolgt projektspezifisch, so dass kontextrelevante, werkzeuggestützt prüfbare Bewertungsregeln und Metriken, die insbesondere der spezifischen Anwendung der Software entstammen, hinzugefügt und zuvor eingesetzte Bewertungsregeln und Metriken, die nicht anwendbar sind, nunmehr ausgeschlossen werden. Das Anpassen kann vorteilhafterweise durch Vorgabe von weiteren manuellen Bewertungsregeln, die insbeson- dere auf der Erfahrung eines Entwicklers oder Experten beruhen, erfolgen. Dies ist in der Fig. 1 durch einen Verfahrensschritt 7 dargestellt. Durch das Anpassen im Verfahrens- schritt 6 entsteht ein angepasster Satz von Bewertungsregeln und Metriken. Dies ist durch einen Verfahrensschritt 8 angegeben. Das erfindungsgemäße Verfahren verzweigt anschließend erneut zu dem Verfahrensschritt 3, in dem der Quellcode mit- tels des angepassten Satzes von Bewertungsregeln und Metriken und des automatischen Quellcode-Überprüfungs- und Metrikwerkzeuges geprüft wird. Die durch die Verfahrensschritte 3, 4, 5, 6 und 8 gegebene Schleife wird solange durchlaufen, bis in dem Verfahrensschritt 5 festgestellt wird, dass das wenigstens eine vorgegebene Kriterium erfüllt ist.On the basis of the prescribed conditions source code, quality model, evaluation rules and metrics, the source code is checked in a method step 3 by means of an automatic source code checking and metric tool by means of a set of the predetermined evaluation rules and metrics. The part of predetermined evaluation rules and metrics used for checking is selected beforehand, for example, by a developer of the software or an expert according to specific, in particular project-specific criteria, so that only a part of the predetermined evaluation rules and metrics is used. However, it is also possible to use all given rating rules and metrics Check to insert. In method step 3, individual quality assessments are set, which are based on checking the source code by means of the individual evaluation rules and / or metrics of the set used for checking. The individual quality assessments are advantageously each represented by key figures. In a method step 4, a review and evaluation of the results of the verification method step 3 is performed. In particular, it checks which evaluation rules and / or metrics are necessary and valid depending on the programming language, the application domain and the quality objective. This check can be automated. Alternatively or additionally, checking by an expert is also advantageous. In a method step 5, a decision is made on the basis of method step 4 as to whether at least one predefined criterion is satisfied when evaluating the checking of the source code that has been carried out. In particular, such can be an achieved degree of automation and / or achieved coverage of the source code during checking. If the at least one criterion is not fulfilled, then the method according to the invention branches to a method step 6. In this method step 6, the set of evaluation rules and / or metrics is adapted. This takes place as a function of the verification of the set of evaluation rules and metrics carried out in method step 4 and the check carried out in method step 5 on the fulfillment of the specified criterion. The sentence is customized on a project-by-project basis so that context-relevant, tool-validated rating rules and metrics, especially those derived from the specific application of the software, are added, and previously used rating rules and metrics that are not applicable are now excluded. The adaptation can advantageously take place by specifying further manual evaluation rules, which are based, in particular, on the experience of a developer or expert. This is illustrated in FIG. 1 by a method step 7. By adjusting in the process Step 6 creates an adjusted set of evaluation rules and metrics. This is indicated by a method step 8. The method according to the invention then branches again to method step 3, in which the source code is checked by means of the adapted set of evaluation rules and metrics and of the automatic source code checking and metric tool. The loop given by method steps 3, 4, 5, 6 and 8 is run through until it is determined in method step 5 that the at least one predefined criterion is fulfilled.
Ist dies der Fall, so verzweigt das Verfahren von dem Verfahrensschritt 5 zu einem Verfahrensschritt 9, in dem die Ergebnisse der im Verfahrensschritt 3 durchgeführten Über- prüfung auf der Basis des zugrunde liegenden Qualitätsmodells zusammengefasst werden. Vor dem Durchführen des Verfahrensschrittes 9 können in einem Verfahrensschritt 10 neue Bewertungsregeln und Metriken in dem Qualitätsmodell ergänzt werden. Des Weiteren kann die Bewertung der Bewertungsregeln und Metriken entsprechend des Qualitätszieles angepasst werden. Das Zusammenfassen der Ergebnisse im Verfahrensschritt 9 erfolgt auf solche Weise, dass eine Gesamt- Qualitätsbewertung der Qualität des Quellcodes festgelegt wird, indem die in dem Verfahrensschritt 3 erzeugten einzel- nen Qualitätsbewertungen für die einzelnen Bewertungsregeln und/oder Metriken auf geeignete Weise zusammengefasst werden. Dazu kann eine Abbildungsfunktion definiert sein, mit der die einzelnen Qualitätsbewertungen für die einzelnen Bewertungsregeln und/oder Metriken gewichtet miteinander ver- knüpft sind. Die Gesamt-Qualitätsbewertung ist ebenfalls einfachheitshalber durch eine Kennzahl repräsentiert. In einem weiteren Verfahrensschritt 11 kann die im Verfahrensschritt 9 vorgenommene Zusammenfassung der Bewertung zu der Gesamt-Qualitätsbewertung von dem Experten insbesondere auf der Grundlage einer Plausibilitätsprüfung überprüft werden. In einem Verfahrensschritt 12 steht dann eine endgültige Bewertung dieser aktuellen Version der Software zur Verfügung. Bei dieser Qualitätsbewertung der aktuellen Version der Software sind die automatisiert erstellten einzelnen Bewertungen der Qualität der Software vorteilhafterweise zusätzlich durch die Expertenprüfung abgesichert, was eine hohe Zuverlässigkeit der Bewertung gewährleistet.If this is the case, the method branches from method step 5 to method step 9, in which the results of the check carried out in method step 3 are summarized on the basis of the underlying quality model. Before carrying out the method step 9, in a method step 10 new evaluation rules and metrics in the quality model can be added. Furthermore, the rating of the rating rules and metrics can be adjusted according to the quality objective. The summarization of the results in method step 9 takes place in such a way that an overall quality assessment of the quality of the source code is determined by suitably combining the individual quality evaluations generated in method step 3 for the individual evaluation rules and / or metrics. For this purpose, a mapping function can be defined, with which the individual quality evaluations for the individual evaluation rules and / or metrics are linked to one another in a weighted manner. The overall quality rating is also represented by a measure for the sake of simplicity. In a further method step 11, the summary of the assessment for the overall quality assessment carried out in method step 9 can be checked by the expert, in particular on the basis of a plausibility check. In a method step 12, a final evaluation of this current version of the software is then available. In this quality assessment of the current version of the software, the automatically generated individual evaluations of the quality of the software are advantageously additionally secured by the expert examination, which ensures a high reliability of the evaluation.
Die endgültige Bewertung wird in einem Verfahrensschritt 13 einer Qualitätshistorie hinzugefügt. In dieser Qualitätshistorie sind Gesamt-Qualitätsbewertungen verschiedener Versio- nen des Quellcodes enthalten. Die Entwicklung der Software, und insbesondere der Aufbau ihrer Funktionalität, erfolgt versionsweise. Dies bedeutet hier, dass die verschiedenen Versionen aufeinander aufbauen und üblicherweise eine neue Version die Funktionalität, Leistung und Qualität einer Vor- gängerversion verbessert. Da die zusammengefassten Bewertungen der verschiedenen Versionen der Software in der Qualitätshistorie enthalten sind, ist es möglich, diese Folge von Qualitätsbewertungen miteinander zu vergleichen. Dies erfolgt im Verfahrensschritt 13. Zusätzlich werden im vorlie- genden Ausführungsbeispiel auf in der Qualitätshistorie enthaltene Qualitätsbewertungen älterer Vorgängerversionen im Laufe des Überprüfens neuerer Versionen hinzugekommene Bewertungsregeln oder Metriken angewendet. Dadurch werden diese Vorgängerversionen ebenfalls mittels dieser neuen Regeln oder Metriken untersucht, so dass weitere einzelne Qualitätsbewertungen entstehen, die zusätzlich für die Beurteilung von bestimmten Trends bei der Entwicklung der Software eingesetzt werden können.The final score is added to a quality history in a step 13. This quality history contains overall quality ratings of various versions of the source code. The development of the software, and in particular the structure of its functionality, is done by version. This means that the different versions build on each other and usually a new version improves the functionality, performance and quality of a previous version. Since the summarized assessments of the different versions of the software are included in the quality history, it is possible to compare this sequence of quality scores. This takes place in method step 13. In addition, in the present exemplary embodiment, evaluation rules or metrics added in the course of checking newer versions are applied to quality evaluations of older predecessor versions contained in the quality history. As a result, these predecessor versions are also examined by means of these new rules or metrics, so that further individual quality evaluations are created, which can additionally be used to assess certain trends in the development of the software.
Das Ergebnis des Vergleiches in Verfahrensschritt 13 und die Auswertung der Qualitätshistorie können dann für die gezielte Verbesserung der Qualität der Software eingesetzt werden. Dazu werden dann in einem Verfahrensschritt 14 bei Auffälligkeiten in der Qualitätshistorie Korrekturmöglichkeiten identifiziert. Dies erfolgt mittels Analysen von Details der Software. Dazu können zusätzlich dynamische Tests während des Betriebes der Software durchgeführt werden, um den Ein- fluss von bestimmten Korrekturen auf die Qualität der Software festzustellen. Bei den dynamischen Tests wird die Software parametriert und das Testsystem erstellt, um die konkrete Bewertungskennzahl für die korrigierte Software fest- stellen zu können. Im Verfahrensschritt 14 kann ebenfalls das Durchführen von mehreren Korrekturmöglichkeiten priori- siert werden. Beim Anwenden von Regeln, die widersprüchlichen Randbedingungen Rechnung tragen, ist vorzugsweise eine Vorgehensweise zu wählen, die sicherstellt, dass vorgenomme- ne Änderungen gegen das generelle Qualitätsziel konvergieren. Das Steuern der Qualität der Software mittels Identifizieren und Testen der Korrekturmöglichkeiten kann mittels einer vorhandenen Lösungsbibliothek unterstützt werden. Dies ist in der Fig. 1 durch den Verfahrensschritt 15 darge- stellt. In einem Verfahrensschritt 16 werden dann identifizierte Korrekturmöglichkeiten in den Quellcode eingearbeitet, um die Software zu verbessern und zu erweitern. Bei einer zuvor vorgenommenen Priorisierung der Korrekturmöglichkeiten werden diese entsprechend ihrer Priorität eingearbei- tet . Im Verfahrensschritt 17 steht dann eine verbesserte neue Softwareversion zur Verfügung. Diese wird dann dem bereits zuvor bei Verfahrensschritt 3 beschriebenen automatischen Quellcode-Überprüfungs- und Metrikwerkzeug zugeleitet. Die Prüfung der neuen Softwareversion erfolgt dann auf die oben beschriebene Weise.The result of the comparison in method step 13 and the evaluation of the quality history can then be used for the targeted improvement of the quality of the software. For this purpose, correction options are identified in a procedural step 14 in case of abnormalities in the quality history. This is done by analyzing details of the software. For this purpose, additional dynamic tests can be performed during the operation of the software in order to determine the flow of certain corrections to the quality of the software. In the dynamic tests, the software is parameterized and the test system is created in order to be able to determine the concrete evaluation code for the corrected software. In method step 14, it is likewise possible to prioritize the execution of several correction options. When applying rules that take into account conflicting constraints, it is preferable to choose a procedure that ensures that changes made will converge towards the overall quality objective. Controlling the quality of the software by identifying and testing the correction possibilities can be supported by means of an existing solution library. This is illustrated in FIG. 1 by method step 15. In a method step 16, identified correction options are then incorporated into the source code in order to improve and expand the software. In the case of a prioritization of the correction options, these are incorporated according to their priority. In method step 17, an improved new software version is then available. This is then forwarded to the automatic source code verification and metric tool previously described in step 3. The test of the new software version then takes place in the manner described above.
Aufgrund der Erfindung ist es vorteilhafterweise möglich, auf einfache Weise und mit ausreichend genauem und wirtschaftlich vertretbarem Aufwand eine automatisierte Bewer- tung der aktuellen Qualität des Software-Quellcodes vorzunehmen. Das Verknüpfen von automatisierten Quellcode- Überprüfungen und das Zusammenfassen deren Ergebnisse auf der Grundlage des zugrunde liegenden Qualitätsmodells zu einer quantifizierten, insbesondere in dem speziellen Projekt vergleichbaren Gesamtaussage ermöglicht eine besonders effektive und einfach zu veranschauende Qualitätsbewertung und -Verbesserung. Projektspezifische Schwächen können durch Qualitätsvergleiche, insbesondere mittels der Qualitätshistorie, sichtbar gemacht und zielgerichtet ausgeräumt werden.Due to the invention, it is advantageously possible to carry out an automated evaluation of the current quality of the software source code in a simple manner and with sufficiently precise and economically justifiable expenditure. Linking automated source code reviews and summarizing their results based on the underlying quality model to a quantified overall statement, particularly in the specific project, allows for a particularly effective and easy-to-visual quality assessment and improvement. Project specific weaknesses can be caused by Quality comparisons, in particular by means of the quality history, made visible and cleared purposefully.
Fig. 2 zeigt schematisch ein Ausführungsbeispiel einer er- findungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes . Mit dieser Vorrichtung lässt sich das erfindungsgemäße Verfahren zum automatisierten Bewerten der Qualität eines Software-Quellcodes, wie es an Hand der Fig. 1 beschrieben wurde, ausführen. Die erfin- dungsgemäße Vorrichtung ist hier ein Computer 20. Der Computer 20 weist einen Bildschirm 21 und ein Eingabemittel auf, das hier eine Tastatur 22 ist. Der Computer 20 enthält des Weiteren eine Steuereinrichtung 23, die die Abläufe des Computers 20 und insbesondere das Ausführen des erfindungsgemä- ßen Verfahrens steuert. Die Steuereinrichtung 23 enthält insbesondere einen Prozessor und einen Speicher, in dem ein geeignetes Programm, d. h. eine Software, abgespeichert ist, das von dem Prozessor ausgeführt werden kann, um das erfindungsgemäße Verfahren durchzuführen. Die Steuereinrichtung 23 enthält einen Software-Speicher 24, in dem der Quellcode der Software abgespeichert ist, deren Qualität bewertet werden soll. Die Steuereinrichtung 23 greift somit während des Bewertens und Überprüfens des Quellcodes auf den Speicher 24 zu.2 schematically shows an exemplary embodiment of an inventive device for the automated evaluation of the quality of a software source code. With this device, the method according to the invention for the automated evaluation of the quality of a software source code, as described with reference to FIG. 1, can be executed. The device according to the invention here is a computer 20. The computer 20 has a screen 21 and an input means, which here is a keyboard 22. The computer 20 further includes a control device 23, which controls the operations of the computer 20 and in particular the execution of the inventive method. In particular, the controller 23 includes a processor and a memory in which a suitable program, i. H. a software is stored that can be executed by the processor to perform the inventive method. The control device 23 contains a software memory 24, in which the source code of the software is stored, whose quality is to be evaluated. The controller 23 thus accesses the memory 24 during the evaluation and checking of the source code.
Obgleich die vorliegende Erfindung vorstehend anhand bevorzugter Ausführungsbeispiele beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar . Although the present invention has been described above with reference to preferred embodiments, it is not limited thereto, but modifiable in a variety of ways.

Claims

Patentansprüche claims
1. Verfahren zum automatisierten Bewerten der Qualität eines Software-Quellcodes (1) , bei dem Bewertungsregeln und/oder Metriken zum Beurteilen der Qualität des Quellcodes (1) vorgegeben sind (2) und das Verfahren die folgenden Schritte aufweist :A method for automatically evaluating the quality of a software source code (1) in which evaluation rules and / or metrics for assessing the quality of the source code (1) are given (2) and the method comprises the following steps:
Überprüfen (3) des Quellcodes (1) mittels eines Satzes von Bewertungsregeln und/oder Metriken, wobei der Satz wenigs- tens einen Teil der vorgegebenen Bewertungsregeln und/oder Metriken aufweist,Checking (3) the source code (1) by means of a set of evaluation rules and / or metrics, the sentence having at least a part of the predetermined evaluation rules and / or metrics,
Anpassen (6) des zum Überprüfen des Quellcodes (1) eingesetzten Satzes von Bewertungsregeln und/oder Metriken in Abhängigkeit von einem Bewerten (4, 5) des durchgeführten Ü- berprüfens des Quellcodes (1) hinsichtlich wenigstens eines vorgegebenen Kriteriums, um einen angepassten Satz von Bewertungsregeln und/oder Metriken zu bilden (8), der von dem Satz verschieden ist, und Überprüfen (3) des Quellcodes (1) mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken.Adjusting (6) the set of evaluation rules and / or metrics used to verify the source code (1) in response to an evaluation (4, 5) of the review of the source code (1) for at least one predetermined criterion by an adjusted sentence of rating rules and / or metrics (8) other than the sentence, and checking (3) the source code (1) using the adjusted set of rating rules and / or metrics.
2. Verfahren nach Anspruch 1, da du r c h ge ke nn z e i c hn e t , dass das Anpassen (6) des zum Überprüfen des Quellcodes (1) eingesetzten Satzes von Bewertungsregeln und/oder Metriken und das Überprüfen (3) des Quellcodes mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken wiederholt wird, bis ein vorgegebener Zustand für das wenigstens eine vorgegebene Kriterium erreicht ist.2. Method according to claim 1, characterized in that the adaptation (6) of the set of evaluation rules and / or metrics used for checking the source code (1) and checking (3) of the source code by means of the adapted Set of evaluation rules and / or metrics is repeated until a predetermined state for the at least one predetermined criterion is reached.
3. Verfahren nach Anspruch 1 oder 2, da du r c h ge ke nn z e i c hn e t , dass das wenigstens eine vorgegebene Kriterium beim Bewerten (4, 5) des durchgeführten Überprüfens des Quellcodes (1) ein Kriterium eines erreichten Automatisierungsgrades, ein Kriterium einer erreichten Abdeckung des Quellcodes (1) beim Überprüfen und/oder ein Kriterium einer erreichten Abdeckung eines zugrunde liegenden vorgegebenen Qualitätsmodells beim Überprüfen enthält.3. The method according to claim 1 or 2, since it shows that the at least one predefined criterion when evaluating (4, 5) the performed checking of the source code (1) has reached a criterion of an achieved degree of automation, a criterion of one Covering the source code (1) when checking and / or a criterion of achieved coverage an underlying default quality model when reviewing contains.
4. Verfahren nach wenigstens einem der vorstehenden Ansprü- che, dadurch gekennzeichnet, dass der Satz von Bewertungsregeln und/oder Metriken in Abhängigkeit von einem vorgegebenen Qualitätsmodell mit mehreren Qualitätsmerkmalen festgelegt wird (10) .4. The method according to at least one of the preceding claims, characterized in that the set of evaluation rules and / or metrics is determined as a function of a predetermined quality model having a plurality of quality characteristics (10).
5. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass eine Gesamt-Qualitätsbewertung der Qualität des Quell- codes (1) mittels einzelner Qualitätsbewertungen festgelegt wird (9) , die auf dem Überprüfen des Quellcodes (1) mittels der einzelnen Bewertungsregeln und/oder Metriken des zum Ü- berprüfen verwendeten Satzes basieren.5. Method according to claim 1, characterized in that an overall quality assessment of the quality of the source code (1) is determined by means of individual quality assessments (9) based on checking the source code (1) by means of the individual evaluation rules and or metrics of the set used for the review.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Gesamt-Qualitätsbewertung einer Qualitätshistorie hinzugefügt wird (13) , in der die Gesamt-6. Method according to claim 5, characterized in that the overall quality assessment is added to a quality history (13), in which the total
Qualitätsbewertungen verschiedener Versionen des Quellcodes (1, 17) enthalten sind.Quality ratings of various versions of the source code (1, 17) are included.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass bei einem Anpassen (6) des Satzes von Bewertungsregeln und/oder Metriken, insbesondere in demjenigen Fall, in dem neue Bewertungsregeln und/oder Metriken dem Satz hinzugefügt wurden, eine in der Qualitätshistorie enthaltene Gesamt- Qualitätsbewertung für eine andere Quellcodeversion in Abhängigkeit von der Anpassung der Bewertungsregeln und/oder Metriken verändert wird (13) . A method according to claim 6, characterized in that when fitting (6) the set of evaluation rules and / or metrics, in particular in the case where new evaluation rules and / or metrics have been added to the sentence, a total contained in the quality history - Quality rating for another source code version is changed depending on the adaptation of the rating rules and / or metrics (13).
8. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein dynamischer Test während des Ausführens der Soft- wäre durchgeführt wird (14), um eine Auswirkung einer auf einen detektierten Qualitätsmangel hin vorgenommenen Korrektur des Quellcodes (1) zu überprüfen und/oder eine Durchführung von mehreren Korrekturen zu priorisieren.8. Method according to at least one of the preceding claims, characterized in that a dynamic test is carried out during execution of the software (14) in order to check an effect of a correction of the source code (1) made on a detected quality defect and / / or to prioritize execution of multiple corrections.
9. Vorrichtung (20) zum automatisierten Bewerten der Qualität eines Software-Quellcodes (1) , wobei Bewertungsregeln und/oder Metriken zum Beurteilen der Qualität des Quellcodes vorgegeben sind (2) und die Vorrichtung ein Steuermittel (23) aufweist, das so ausgestaltet ist, dass es Folgendes ermöglicht:9. An apparatus (20) for automatically evaluating the quality of a software source code (1), wherein rating rules and / or metrics for assessing the quality of the source code are given (2) and the device comprises a control means (23) configured in this way in that it allows:
Überprüfen (3) des Quellcodes (1) mittels eines Satzes von Bewertungsregeln und/oder Metriken, wobei der Satz wenigstens einen Teil der vorgegebenen Bewertungsregeln und/oder Metriken aufweist, Anpassen (6) des zum Überprüfen des Quellcodes (1) eingesetzten Satzes von Bewertungsregeln und/oder Metriken in Abhängigkeit von einem Bewerten (4, 5) des durchgeführten Ü- berprüfens des Quellcodes (1) hinsichtlich wenigstens eines vorgegebenen Kriteriums, um einen angepassten Satz von Be- wertungsregeln und/oder Metriken zu bilden (8), der von dem Satz verschieden ist, undChecking (3) the source code (1) by means of a set of evaluation rules and / or metrics, the sentence comprising at least part of the predetermined evaluation rules and / or metrics, adjusting (6) the set of evaluation rules used to verify the source code (1) and / or metrics responsive to evaluating (4, 5) the review of the source code (1) for at least one predetermined criterion to form an adjusted set of evaluation rules and / or metrics (8) derived from different from the sentence, and
Überprüfen (3) des Quellcodes (1) mittels des angepassten Satzes von Bewertungsregeln und/oder Metriken. Checking (3) the source code (1) using the adjusted set of rating rules and / or metrics.
EP06792612A 2005-09-05 2006-07-31 Method and device for automatically evaluating a software source code quality Withdrawn EP1922613A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005042126A DE102005042126A1 (en) 2005-09-05 2005-09-05 Method and apparatus for automatically evaluating the quality of a software source code
PCT/EP2006/064844 WO2007028676A2 (en) 2005-09-05 2006-07-31 Method and device for automatically evaluating a software source code quality

Publications (1)

Publication Number Publication Date
EP1922613A2 true EP1922613A2 (en) 2008-05-21

Family

ID=37719334

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06792612A Withdrawn EP1922613A2 (en) 2005-09-05 2006-07-31 Method and device for automatically evaluating a software source code quality

Country Status (4)

Country Link
US (1) US20090055804A1 (en)
EP (1) EP1922613A2 (en)
DE (1) DE102005042126A1 (en)
WO (1) WO2007028676A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080834A (en) * 2019-10-31 2020-04-28 北京航天自动控制研究所 Method for configuring criteria for polling data of test and launch control software by using index

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402757B1 (en) * 2007-03-16 2019-09-03 Devfactory Fz-Llc System and method for outsourcing projects
US8627287B2 (en) * 2007-11-29 2014-01-07 Microsoft Corporation Prioritizing quality improvements to source code
US8875118B1 (en) * 2008-05-14 2014-10-28 Bank Of America Corporation Application configuration managment
US20100070949A1 (en) * 2008-09-15 2010-03-18 Infosys Technologies Limited Process and system for assessing modularity of an object-oriented program
CA2734199C (en) * 2010-03-18 2017-01-03 Accenture Global Services Limited Evaluating and enforcing software design quality
US20110321007A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Targeting code sections for correcting computer program product defects using records of a defect tracking system
US9507940B2 (en) 2010-08-10 2016-11-29 Salesforce.Com, Inc. Adapting a security tool for performing security analysis on a software application
US8701198B2 (en) * 2010-08-10 2014-04-15 Salesforce.Com, Inc. Performing security analysis on a software application
DE102011006215A1 (en) * 2010-11-09 2012-05-10 Siemens Aktiengesellschaft Method and device for determining a quality rating of a software code with determination of the evaluation coverage
US8584079B2 (en) * 2010-12-16 2013-11-12 Sap Portals Israel Ltd Quality on submit process
US9286187B2 (en) * 2012-08-30 2016-03-15 Sap Se Static enforcement of process-level security and compliance specifications for cloud-based systems
US9378477B2 (en) 2013-07-17 2016-06-28 Bank Of America Corporation Framework for internal quality analysis
US9286394B2 (en) 2013-07-17 2016-03-15 Bank Of America Corporation Determining a quality score for internal quality analysis
US9813450B1 (en) 2015-02-16 2017-11-07 Amazon Technologies, Inc. Metadata-based verification of artifact quality policy compliance
US9619363B1 (en) * 2015-09-25 2017-04-11 International Business Machines Corporation Predicting software product quality
FR3042291B1 (en) * 2015-10-09 2017-11-17 Centre Nat D'etudes Spatiales C N E S DEVICE AND METHOD FOR VERIFYING SOFTWARE
US10268824B2 (en) 2016-03-01 2019-04-23 Wipro Limited Method and system for identifying test cases for penetration testing of an application
CN108121656A (en) * 2016-11-30 2018-06-05 西门子公司 A kind of software evaluation method and apparatus
US11157844B2 (en) * 2018-06-27 2021-10-26 Software.co Technologies, Inc. Monitoring source code development processes for automatic task scheduling
US11138366B2 (en) 2019-02-25 2021-10-05 Allstate Insurance Company Systems and methods for automated code validation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7669180B2 (en) * 2004-06-18 2010-02-23 International Business Machines Corporation Method and apparatus for automated risk assessment in software projects

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007028676A2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080834A (en) * 2019-10-31 2020-04-28 北京航天自动控制研究所 Method for configuring criteria for polling data of test and launch control software by using index

Also Published As

Publication number Publication date
DE102005042126A1 (en) 2007-03-15
US20090055804A1 (en) 2009-02-26
WO2007028676A3 (en) 2007-11-08
WO2007028676A2 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
EP1922613A2 (en) Method and device for automatically evaluating a software source code quality
DE69720821T2 (en) Debugging system for programs with a graphical user interface
EP3082000B1 (en) Method and system for testing a mechatronic system
DE102006046203A1 (en) Software source code evaluating method, involves classifying detected errors, assigning errors to error class from set of error classes, and assigning specification, which specifies errors of respective error classes to each error class
DE102006056432A1 (en) Method for testing a computer program
DE102004024262A1 (en) Knowledge-based diagnostic system for a complex technical system with two separate knowledge bases for processing technical system data and processing customer complaints
DE102011014830A1 (en) METHOD AND DEVICE FOR ANALYZING SOFTWARE
DE102014102551A1 (en) Machine and method for evaluating failed software programs
WO2023041458A2 (en) Computer-implemented method, modules, and system for detecting anomalies in industrial manufacturing processes
DE102010033861A1 (en) On a formal analysis based development of requirements specifications
DE102005042129A1 (en) Method and apparatus for automatically evaluating the quality of a software source code
DE112009000211T5 (en) Program tester and program
EP3232327B1 (en) Method for testing a control program of a control unit in a simulation environment on a computer
DE102011014831A1 (en) METHOD AND DEVICE FOR ANALYZING SOFTWARE WITH A CALIBRATED VALUE
EP3306295A1 (en) Method and device for testing electronic controls, in particular for testing of automobile control systems
CN114546864A (en) Software quality evaluation method, device, equipment and storage medium
DE102009004531B4 (en) Method for verifying a manufacturing process
DE102020206327A1 (en) Method and device for testing a technical system
EP3657411A1 (en) Method for risk-based testing
DE102022201856A1 (en) AUTOMATICALLY GENERATE A FUZZING PLAN FOR FUZZING A PROGRAMMING CODE
EP1237118B1 (en) Method for specifiying, executing and analysing processes during recognition
DE102020215387A1 (en) Method for optimizing a test set for automatic qualification of a virtual model for an automotive component
DE102020205526A1 (en) Method and device for testing a technical system
DE102020211519A1 (en) EVALUATION OF ALERT MESSAGES IN STATIC CODE ANALYSIS
DE102021211830A1 (en) Procedure for reviewing a complex regulatory situation

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080212

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

17Q First examination report despatched

Effective date: 20091019

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS AKTIENGESELLSCHAFT

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20170201