DE102005042129A1 - Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes - Google Patents

Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes Download PDF

Info

Publication number
DE102005042129A1
DE102005042129A1 DE102005042129A DE102005042129A DE102005042129A1 DE 102005042129 A1 DE102005042129 A1 DE 102005042129A1 DE 102005042129 A DE102005042129 A DE 102005042129A DE 102005042129 A DE102005042129 A DE 102005042129A DE 102005042129 A1 DE102005042129 A1 DE 102005042129A1
Authority
DE
Germany
Prior art keywords
quality
source code
distance
sequence
refactoring
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
Application number
DE102005042129A
Other languages
English (en)
Inventor
Horst Eckardt
Andreas Dr. Hennig
Christian Körner
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
Priority to DE102005042129A priority Critical patent/DE102005042129A1/de
Priority to US11/512,177 priority patent/US8037455B2/en
Publication of DE102005042129A1 publication Critical patent/DE102005042129A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

Die Erfindung betrifft ein Verfahren und eine Vorrichtung (1) zum automatisierten Bewerten der Qualität eines Software-Quellcodes (10), bei dem ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist (12). Dabei werden eine aktuelle Qualität des Quellcodes (10) und eine Distanz der aktuellen Qualität des Quellcodes (10) zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes ermittelt (16). Aufgrund der Erfindung können vorteilhafterweise große Mengen an Quellcode automatisiert hinsichtlich ihrer Qualität bewertet und insbesondere auch verbessert werden.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes.
  • 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 Verständlichkeit. Eine ausreichend gute Qualität von Software ist insbesondere dann schwierig zu erreichen, wenn der Umfang der Software, d. h. die Menge des Quellcodes, groß ist, um insbesondere die gewünschte Funktionalität abzudecken. Darüber hinaus ist häufig eine große Menge an expliziten und impliziten informellen 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.
  • 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 von Softwareprodukten, Qualitätsmerkmalen und Leitfaden zu deren Verwendung, 1991. In dieser Norm werden Metriken definiert, mit denen die Qualität der Software gemessen und angegeben werden soll. Über diese Norm hinaus sind im Folgenden Beispiele für Objekt-orientierte Metriken aufgeführt: Depth of Inheritance Tree, DIT, Number of Children, NOC, Coupling between Objects, CBO, Weighted Methods per Class, WMC, Re sponse for Class, RFC, Message Passing Coupling, MPC, Lack of Cohesion in Methods, LCOM, etc. Mit diesen Metriken lassen sich Eigenschaften von Objekt-orientierter Software auf der Ebene von Klassen und Methoden messen.
  • Metriken sind Indikatoren für in der Software enthaltene Fehler und häufig nur beschränkt aussagekräftig. Sie sind sehr stark abhängig von den technischen Randbedingungen der verwendeten Computersysteme, wie Speicherkapazitäten, Reaktionszeiten, Durchsätzen, Wiederanlaufmöglichkeiten nach einem Stoppen des Ablaufes, Möglichkeiten, Updates einzuspielen, etc. Es ist 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. Dieses 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 fehleranfällig.
  • Aus Martin Fowler, "Refactorings: Improving the design of Code", Addison-Wesley, New York, 1999, sind sogenannte Refactorings oder Refactoring-Schritte bekannt. Refactoring-Schritte sind funktionserhaltende Transformationen des Quellcodes, die zu einer Verbesserung der Verständlichkeit des Quellcodes führen können. Solche Refactoring-Schritte sind beispielsweise: Extract Method, um eine Methode (Unterprogramm) aus dem Code herauszunehmen; Inline Method, um eine Methode in den Code einzufügen; Move Method, um eine Methode von einer zu einer anderen Klasse zu verschieben; Move Attribute, um ein Attribut von einer zu einer anderen Klasse zu verschieben; Extract Class, um eine neue Klasse zu generieren und einige kohäsive Attribute und Methoden zu dieser neuen Klasse zu verschieben; Inline Class, um die Mitglieder einer Klasse in eine andere zu verschieben und die alte Klasse zu löschen, etc.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein automatisiertes Bewerten einer Qualität von Software-Quellcode auf technisch einfache Weise zu ermöglichen.
  • Erfindungsgemäß wird diese Aufgabe durch ein Verfahren oder eine Vorrichtung mit den Merkmalen der Patentansprüche 1 bzw. 7 gelöst.
  • Verfahrensseitig werden eine aktuelle Qualität des Quellcodes und eine Distanz der aktuellen Qualität des Quellcodes zu einem vorgegebenen Qualitätsziel für die Qualität des Quellcodes ermittelt. Vorrichtungsseitig sind ein Ermittlungsmittel zum Ermitteln einer aktuellen Qualität des Quellcodes und ein Steuermittel zum Ermitteln einer Distanz der aktuellen Qualität des Quellcodes zu einem vorgegebenen Qualitätsziel für die Qualität des Quellcodes vorhanden. Das Steuermittel ist dabei insbesondere so ausgestaltet, dass es ein Ausführen des erfindungsgemäßen Verfahrens ermöglicht. Durch die Ermittlung der Distanz kann ein Maß für den Aufwand festgestellt werden, der zu betreiben ist, um die durch das Qualitätsziel festgelegte gewünschte Qualität des Quellcodes zu erhalten. Der Aufwand kann vorteilhafterweise auf der Basis einer Beurteilung von vorgegebenen Kriterien zum Erreichen des Qualitätszieles, wie z. B. der aufzuwendenden Zeit und/oder dem aufzuwendenden Geld, angegeben werden. Das Ermitteln der Distanz zum Qualitätsziel kann auf der Grundlage einer Skala erfolgen. Eine solche Skala kann insbesondere eine Nominal-, Ordinal-, Intervall-, Verhältnis- und/oder Absolutskala umfassen. Aspekte, die sowohl für die Vorgabe des Qualitätszieles als auch für das Ermitteln der aktuellen Qualität des Quellcodes relevant sein können, können Wartbarkeit, Komplexität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Übertragbarkeit, Verständlichkeit, Produk tivität, Sicherheit und/oder Effektivität des Quellcodes sein.
  • Gemäß einer bevorzugten Weiterbildung der Erfindung wird automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festgelegt, mittels der die Distanz ermittelt werden kann. Eine solche Sequenz umfasst ein insbesondere sequentielles Ausführen von einzelnen Refactoring-Schritten. Die Refactoring-Schritte sind funktional äquivalente Transformationen des Quellcodes hin zu einem besseren Zustand des Quellcodes. Die Beurteilung des besseren Zustandes des Quellcodes ist insbesondere auf ein bestimmtes Qualitätsmodell bezogen. Die festgelegte Sequenz der Refactoring-Schritte zeigt darüber hinaus vorteilhafterweise einen Weg auf, auf dem das Qualitätsziel ausgehend von dem aktuellen Qualitätszustand des Quellcodes erreicht werden kann. Es wird somit gleichzeitig ein Vorschlag für eine Verbesserung der Qualität der Software aufgezeigt. Zusätzlich kann es für einen Entwickler oder Experten möglich sein, implizite Anforderungen und informelle Randbedingungen beim Festlegen der Sequenz zu deren Auswahl einzubringen und damit auf einfache Weise zur Verbesserung der Qualität des Quellcodes beizutragen. Vorteilhafterweise ist es somit möglich, insbesondere große Mengen an Quellcode automatisiert und effektiv zu verbessern. Die Beurteilung der Distanz mittels der Sequenz von Refactoring-Schritten stellt darüber hinaus einen Vorschlag für die automatisierte Verbesserung des Quellcodes mittels dieser Sequenz von Refactoring-Schritten dar. Ebenso ist die Ermittlung der Distanz als Qualitätsmaß nachvollziehbar, objektivierbar und reproduzierbar, da die Erklärung an Hand von Verbesserungsvorschlägen, d. h. der Sequenz von Refactoring-Schritten, angegeben wird.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung der Erfindung wird eine Menge von mehreren Sequenzen und für diese mehreren Sequenzen jeweils eine Distanz ermittelt. Dabei umfassen die mehreren Sequenzen jeweils mehrere Refactoring- Schritte. Mit dieser ermittelten Menge von Sequenzen lässt sich das Qualitätsziel auf geeignete Weise erreichen. Zumindest kann dem Qualitätsziel mit diesen Sequenzen hinreichend nahe gekommen werden. Das Zusammenstellen der Menge von Sequenzen kann vorteilhafterweise im Hinblick auf ein Qualitätsmodell und das Qualitätsziel erfolgen. Dadurch ist es möglich, auf besonders effektive Weise eine geeignete Grundlage zum Festlegen der Sequenz zu bilden.
  • Besonders bevorzugt wird die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von möglichen Sequenzen von Refactoring-Schritten ausgewählt. Diese Auswahl erfolgt vorteilhafterweise ebenfalls automatisiert. Dadurch kann sichergestellt werden, dass eine optimierte Sequenz von Refactoring-Schritten ausgewählt wird, die gleichzeitig eine besonders günstige Möglichkeit der Verbesserung der Qualität des Quellcodes angibt. Es ist möglich, die einzelnen Refactoring-Schritte in vielen unterschiedlichen Varianten miteinander zu einer Sequenz zu kombinieren, um dadurch die optimale Sequenz zu erhalten.
  • In einer weiteren, besonders bevorzugten Ausgestaltung der Erfindung wird für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß dem Qualitätsziel bezogen auf den einzelnen Refactoring-Schritt ermittelt. Die Summe der Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten bestimmt eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten. Bei mehreren Sequenz-Distanzen von mehreren Sequenzen entspricht dann vorteilhafterweise die günstigste dieser Sequenz-Distanzen der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Zum Bestimmen der Schritt-Distanzen muss nicht der vollständige Quellcode transformiert werden. Vielmehr ist es ausreichend, die einzelnen Refactoring-Schritte auf einer übergeordneten Ebene auf solche Teile der Software anzuwenden, die insbesondere für ein Bestimmen einer oder mehrerer Metriken relevant sind. Das Bestimmen der Qualitätsmetriken kann vorteilhafterweise ebenfalls automatisiert erfolgen.
  • Gemäß einer weiteren, bevorzugten Weiterbildung der Erfindung ist ein Qualitätsmodell vorgegeben. Weiterhin wird die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelt. Dadurch kann die Erfindung geeignet an unterschiedliche Qualitätsansprüche angepasst werden. Ein solches Qualitätsmodell kann beispielsweise der DIN-Norm ISO 9126 entnommen werden. Es sind allerdings auch andere Qualitätsmodelle einsetzbar.
  • Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind der Beschreibung unter Bezugnahme auf die Zeichnung entnehmbar.
  • Die Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnung angegebenen Ausführungsbeispiele näher erläutert. Es zeigen dabei:
  • 1 eine schematische Darstellung eines Ausführungsbeispieles einer erfindungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes und
  • 2 eine schematische Darstellung eines Ausführungsbeispieles eines erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software-Quellcodes.
  • 1 zeigt schematisch ein Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes. Diese erfindungsgemäße Vorrichtung ist hier ein Computer 1. Der Computer 1 weist einen Bildschirm 2 und ein Eingabemittel auf, das hier eine Tastatur 3 ist. Der Computer 1 enthält des Weiteren eine Steuereinrichtung 4, die mehrere Komponenten aufweist. Zwei dieser Komponenten sind ein Ermittlungsmittel 5 und ein Steuermittel 6. Die Steuereinrichtung 4 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 4 enthält weiterhin einen Software-Speicher 7, in dem die Software abgespeichert ist, deren Qualität bewertet werden soll. Mit dem Computer 1 und insbesondere der Ausgestaltung der Steuereinrichtung 4 mitsamt ihrer Komponenten 5 und 6 kann das erfindungsgemäße Verfahren zum automatisierten Bewerten der Qualität des Software-Quellcodes durchgeführt werden. Dieses wird nun an Hand der 2 beschrieben.
  • 2 zeigt schematisch ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software-Quellcodes. Dieser Software-Quellcode ist in dem Speicher 7 des Computers 1 abgespeichert. Die Software, die den Ablauf des erfindungsgemäßen Verfahrens steuert, ist in der Steuereinrichtung 4 enthalten. Ausgangspunkte für die Durchführung des Verfahrens sind der zu bewertende und zu verbessernde Quellcode, der in der 2 durch die Verfahrenskomponente mit dem Bezugszeichen 10 repräsentiert ist. Eine Verfahrenskomponente 11 repräsentiert eine Menge von einzelnen Refactoring-Schritten, die für die Bewertung des Quellcodes eingesetzt werden können. Eine Verfahrenskomponente 12 repräsentiert 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. Die Verfahrenskomponenten 10, 11 und 12 repräsentieren vorgegebene Bedingungen zum Durchführen des erfindungsgemäßen Verfahrens.
  • Mittels dieser vorgegebenen Bedingungen Quellcode, Refactoring-Schritte und Qualitätsziel wird in einem Verfahrens schritt 13 wenigstens eine Metrik berechnet, die insbesondere Anhaltspunkte für die aktuelle Qualität des Software-Quellcodes gibt. Dies ist Grundlage für ein Zuweisen von einzelnen Distanzen, d. h. von Schritt-Distanzen, zu den einzelnen Refactoring-Schritten in einem Verfahrensschritt 14. Die Schritt-Distanzen entsprechen Abstandsmaßen der aktuellen Quellcodequalität zu der durch das Qualitätsziel definierten gewünschten Quellcodequalität bezogen auf die jeweiligen einzelnen Refactoring-Schritte. Das Berechnen der wenigstens einen Metrik im Verfahrensschritt 13 ist ebenfalls Grundlage für ein Zusammenstellen von verschiedenen Sequenzen von Refactoring-Schritten in einem Verfahrensschritt 15. In einem Verfahrensschritt 16 wird mittels der im Verfahrensschritt 14 zugewiesenen Schritt-Distanzen zu den einzelnen Refactoring-Schritten und der im Verfahrensschritt 15 zusammengestellten Sequenzen von Refactoring-Schritten eine geeignete Sequenz von Refactoring-Schritten ausgewählt. Dabei werden die jeweiligen Schritt-Distanzen der zu einer der Sequenzen zusammengestellten einzelnen Refactoring-Schritte zu Sequenz-Distanzen für die jeweiligen Sequenzen aufsummiert und miteinander verglichen. Die günstigste Sequenz wird dann ausgewählt. Die Sequenz-Distanz dieser ausgewählten Sequenz entspricht dabei der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Ein Experte oder ein Entwickler, der den Quellcode verfasst hat und/oder weiter bearbeitet, hat die Möglichkeit, in einer Verfahrenskomponente 17 manuell auf die Auswahl der Sequenz von Refactoring-Schritten Einfluss zu nehmen. Der Experte oder Entwickler kann insbesondere implizite Anforderungen und informelle Randbedingungen berücksichtigen. In einem Verfahrensschritt 18 wird die ausgewählte Sequenz von Refactoring-Schritten in einem Refactoring-Editor auf den Quellcode angewendet. Der Refactoring-Editor kann beispielsweise ein Programm mit der Bezeichnung Eclipse sein. Dadurch entsteht dann ein fehlerbereinigter Quellcode, der gemäß des gewählten Qualitätsmodells gegenüber dem Quellcode, wie er gemäß der Verfahrens komponente 10 vorhanden ist, eine verbesserte Qualität aufweist. Der fehlerbereinigte Quellcode ist in der 2 durch eine Verfahrenskomponente 19 repräsentiert.
  • Aufgrund der Erfindung ist es vorteilhafterweise möglich, eine Bewertung der aktuellen Qualität des Software-Quellcodes vorzunehmen, wie er gemäß der Verfahrenskomponente 10 vorhanden ist. Dies erfolgt mittels der Sequenz von Refactoring-Schritten, wie sie im Verfahrensschritt 16 ausgewählt wird. Gleichzeitig dient diese Sequenz zur direkten und automatisierten Verbesserung der Qualität des Quellcodes, da die Sequenz direkt auf den Quellcode angewendet werden kann.
  • Die Steuereinrichtung 4 des Computers 1 gemäß dem Ausführungsbeispiel nach 1 ist hier so ausgestaltet, dass das Ermittlungsmittel 5 zum Ermitteln der aktuellen Qualität des Quellcodes dient. Im Ermittlungsmittel 5 wird somit insbesondere der Verfahrensschritt 13 ausgeführt. Das Steuermittel 6 dient zum Ermitteln der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Im Steuermittel 6 wird somit insbesondere der Verfahrensschritt 18 ausgeführt. Das Steuermittel 6 dient des Weiteren zum automatisierten Auswählen und Festlegen der Sequenz von Refactoring-Schritten aus der im Verfahrensschritt 15 vorgegebenen Menge von möglichen Sequenzen von Refactoring-Schritten. Außerdem ermittelt das Steuermittel 6 für die einzelnen Refactoring-Schritte die jeweilige Schritt-Distanz, wobei die Summe der Schritt-Distanzen der einzelnen, zu einer der Sequenzen zusammengeschlossenen Refactoring-Schritte die Sequenz-Distanz dieser Sequenz bestimmt. Insofern werden mittels des Steuermittels 6 ebenfalls die Verfahrensschritte 14, 15 und 16 durchgeführt.
  • Obgleich die vorliegende Erfindung vorstehend anhand bevorzugter Ausführungsbeispiele beschrieben wurde, ist sie dar auf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar.

Claims (12)

  1. Verfahren zum automatisierten Bewerten der Qualität eines Software-Quellcodes (10), bei dem ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist (12) und das Verfahren die folgenden Schritte aufweist: Ermitteln (13) einer aktuellen Qualität des Quellcodes (10) und Ermitteln (16) einer Distanz der aktuellen Qualität des Quellcodes (10) zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes (10).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festgelegt (16) und die Distanz mittels der festgelegten Sequenz von Refactoring-Schritten ermittelt wird.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass eine Menge von mehreren Sequenzen ermittelt wird (15) und für diese mehreren Sequenzen jeweils eine Distanz ermittelt wird (16), wobei die mehreren Sequenzen jeweils mehrere Refactoring-Schritte umfassen.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von Sequenzen von Refactoring-Schritten ausgewählt wird (15, 16).
  5. Verfahren nach wenigstens einem der Ansprüche 2–4, dadurch gekennzeichnet, dass für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß des Qualitätszieles bezogen auf den einzelnen Refactoring-Schritt ermittelt wird (14) und die Summe von Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten bestimmt (16).
  6. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein Qualitätsmodell vorgegeben ist und die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelt wird.
  7. Vorrichtung (1) zum automatisierten Bewerten der Qualität eines Software-Quellcodes, wobei ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist und die Vorrichtung aufweist: ein Ermittlungsmittel (5) zum Ermitteln einer aktuellen Qualität des Quellcodes und ein Steuermittel (6) zum Ermitteln einer Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes.
  8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass das Steuermittel (6) so ausgestaltet ist, dass automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festlegbar und die Distanz mittels der festgelegten Sequenz von Refactoring-Schritten ermittelbar ist.
  9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass das Steuermittel (6) des Weiteren so ausgestaltet ist, dass es eine Menge von mehreren Sequenzen und für die mehreren Sequenzen jeweils eine Distanz ermittelt, wobei die mehreren Sequenzen jeweils mehrere Refactoring-Schritte umfassen.
  10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass das Steuermittel (6) des Weiteren so ausgestaltet ist, dass die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von Sequenzen von Refactoring-Schritten auswählbar ist.
  11. Vorrichtung nach wenigstens einem der Ansprüche 8–10, dadurch gekennzeichnet, dass das Steuermittel (6) des Weiteren so ausgestaltet ist, dass für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß des Qualitätszieles bezogen auf den einzelnen Refactoring-Schritt ermittelbar ist, wobei die Summe von Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten bestimmt.
  12. Vorrichtung nach wenigstens einem der Ansprüche 7–11, dadurch gekennzeichnet, dass ein Qualitätsmodell vorgegeben ist und das Steuermittel (6) so ausgestaltet ist, dass die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelbar ist.
DE102005042129A 2005-09-05 2005-09-05 Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes Ceased DE102005042129A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102005042129A DE102005042129A1 (de) 2005-09-05 2005-09-05 Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
US11/512,177 US8037455B2 (en) 2005-09-05 2006-08-30 Method and device for the automated evaluation of software source code quality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005042129A DE102005042129A1 (de) 2005-09-05 2005-09-05 Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes

Publications (1)

Publication Number Publication Date
DE102005042129A1 true DE102005042129A1 (de) 2007-03-15

Family

ID=37762919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005042129A Ceased DE102005042129A1 (de) 2005-09-05 2005-09-05 Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes

Country Status (2)

Country Link
US (1) US8037455B2 (de)
DE (1) DE102005042129A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8881112B2 (en) * 2007-12-19 2014-11-04 International Business Machines Corporation Quality measure tool for a composite application
US20100218164A1 (en) * 2008-03-19 2010-08-26 National Central University Pattern Quality Verification Model
US20090271766A1 (en) * 2008-04-29 2009-10-29 International Business Machines Corporation Methods, systems and computer program products for improving program performance by anti-refactoring
US8347272B2 (en) * 2008-07-23 2013-01-01 International Business Machines Corporation Call graph dependency extraction by static source code analysis
US8566787B2 (en) * 2008-09-15 2013-10-22 Infosys Limited System and method for improving modularity of large legacy software systems
CN103793315B (zh) * 2012-10-29 2018-12-21 Sap欧洲公司 监视和改善软件开发质量方法、系统和计算机可读介质
CN108536591A (zh) * 2018-03-27 2018-09-14 中国人民解放军海军大连舰艇学院 一种舰载指挥控制系统软件质量半量化动态评估方法
US10732962B1 (en) * 2018-04-12 2020-08-04 Amazon Technologies, Inc. End-to-end deployment infrastructure
CN112131122B (zh) * 2020-09-27 2022-09-30 北京智联安行科技有限公司 一种源代码缺陷检测工具误报评估方法及装置

Family Cites Families (4)

* 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
US7788632B2 (en) * 2005-06-02 2010-08-31 United States Postal Service Methods and systems for evaluating the compliance of software to a quality benchmark
US7840944B2 (en) * 2005-06-30 2010-11-23 Sap Ag Analytical regression testing on a software build
US20070083859A1 (en) * 2005-10-12 2007-04-12 Velidom, Inc. Software manufacturing factory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YU, Y. et al.: Software refactoring guided by multiple soft-goals. In: The First International Workshop of REFactoring, Nov. 13, 2003, British Columbia, Canada. <http://www.cs.toronto.edu/ APPROX yijun/GoalOrientedRefactoring.html> (recherchiert am 16.05.06) *
YU, Y. et al.: Software refactoring guided by multiple soft-goals. In: The First International Workshop of REFactoring, Nov. 13, 2003, British Columbia, Canada. <http://www.cs.toronto.edu/~yiju n/GoalOrientedRefactoring.html> (recherchiert am 16.05.06)

Also Published As

Publication number Publication date
US20070055959A1 (en) 2007-03-08
US8037455B2 (en) 2011-10-11

Similar Documents

Publication Publication Date Title
DE102005042129A1 (de) Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
DE19781804B4 (de) Vorrichtung zur Simulation einer Echtzeit-Prozesssteuerung
DE102005042126A1 (de) Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
EP3082000B1 (de) Verfahren und system zum testen eines mechatronischen systems
DE102004014290A1 (de) Verfahren zur Erstellung von Abläufen zum Testen einer Software
DE10041072A1 (de) Verfahren zur automatischen Erzeugung von Programmcode
DE10256990A1 (de) Programmcodegenerator und Programm
WO2007068563A1 (de) Verfahren zur verarbeitung und erzeugung von diagnosedaten in einem softwareentwicklungsprozess
DE102010021382A1 (de) Verfahren und System zur Erzeugung eines Integrationsmodells
EP1505399B1 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
DE10322837A1 (de) Verfahren zur Projektierung eines Automatisierungssystems
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE10242916A1 (de) System zur Bereitstellung eines Standard-Frameworks für Automatisierungsgeräte
EP0708941B1 (de) Verfahren zum test eines objektorientierten programms
WO1997003389A1 (de) Verfahren zur erstellung eines anwenderspezifischen funktionsplanes für speicherprogrammierbare steuerungen (sps)
WO2018206522A1 (de) Produktreifebestimmung eines technischen systems und insbesondere eines autonom fahrenden fahrzeugs
DE10233971A1 (de) Verfahren und Vorrichtung zur Erzeugung von Software
DE10160957B4 (de) Verfahren und Vorrichtung zur Änderung der Tarife von Telefondienstleistungen
DE19546173A1 (de) Verfahren zum Testen einer Bedieneroberfläche in computergesteuerten Systemen
DE10254530A1 (de) Verfahren und System zur wissensbasierten Transformation von textuellen Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen
DE102021211620A1 (de) Verfahren und System zur automatischen Erzeugung eines eingebetteten Quellcodes für die elektronische Steuereinheit eines AD/ADAS-Strassenfahrzeugs
DE102019209541A1 (de) Verfahren und Vorrichtung zum Erfüllen einer Entwicklungsaufgabe
DE102008052534A1 (de) Softwareintegrationsprozess
DE102009033013A1 (de) Verfahren zur Modifikation und/oder Generierung eines auf Basisaktivitäten basierenden Workflows, sowie Projektunterstützungstool und Projektunterstützungsframework
DE102018117510A1 (de) Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Ermitteln eines Wirknetzes eines Fahrzeuges

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection